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
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { getManifestHooks, type ManifestHooks } from "./manifest-hooks.js";
|
|
2
2
|
export { renderRuntimeTemplate } from "./runtime-template.js";
|
|
3
3
|
export { watchCompilation } from "./watch-compilation.js";
|
|
4
|
+
export { createRuntimeModule } from "./runtime-module.js";
|
|
5
|
+
export { getCompilationBuildAssets, setCompilationBuildAssets } from "./compilation-assets.js";
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
import { getManifestHooks } from "./manifest-hooks.js";
|
|
2
2
|
import { renderRuntimeTemplate } from "./runtime-template.js";
|
|
3
3
|
import { watchCompilation } from "./watch-compilation.js";
|
|
4
|
+
import { createRuntimeModule } from "./runtime-module.js";
|
|
5
|
+
import { getCompilationBuildAssets, setCompilationBuildAssets } from "./compilation-assets.js";
|
|
4
6
|
export {
|
|
7
|
+
createRuntimeModule,
|
|
8
|
+
getCompilationBuildAssets,
|
|
5
9
|
getManifestHooks,
|
|
6
10
|
renderRuntimeTemplate,
|
|
11
|
+
setCompilationBuildAssets,
|
|
7
12
|
watchCompilation
|
|
8
13
|
};
|
|
9
14
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/cli/bundler/plugins/utils/index.ts"],"sourcesContent":["export {getManifestHooks, type ManifestHooks} from \"./manifest-hooks\";\nexport {renderRuntimeTemplate} from \"./runtime-template\";\nexport {watchCompilation} from \"./watch-compilation\";\n"],"mappings":"AAAA,SAAQ,wBAA2C;AACnD,SAAQ,6BAA4B;AACpC,SAAQ,wBAAuB;","names":[]}
|
|
1
|
+
{"version":3,"sources":["../../../../../src/cli/bundler/plugins/utils/index.ts"],"sourcesContent":["export {getManifestHooks, type ManifestHooks} from \"./manifest-hooks\";\nexport {renderRuntimeTemplate} from \"./runtime-template\";\nexport {watchCompilation} from \"./watch-compilation\";\nexport {createRuntimeModule} from \"./runtime-module\";\nexport {getCompilationBuildAssets, setCompilationBuildAssets} from \"./compilation-assets\";\n"],"mappings":"AAAA,SAAQ,wBAA2C;AACnD,SAAQ,6BAA4B;AACpC,SAAQ,wBAAuB;AAC/B,SAAQ,2BAA0B;AAClC,SAAQ,2BAA2B,iCAAgC;","names":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { RuntimeGlobals } from "@rspack/core";
|
|
2
|
+
const createRuntimeModule = (readers) => {
|
|
3
|
+
return readers.map(
|
|
4
|
+
({ export: name, property }) => `export const ${name} = () => ${RuntimeGlobals.require}[${JSON.stringify(property)}];
|
|
5
|
+
`
|
|
6
|
+
).join("");
|
|
7
|
+
};
|
|
8
|
+
export {
|
|
9
|
+
createRuntimeModule
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=runtime-module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../src/cli/bundler/plugins/utils/runtime-module.ts"],"sourcesContent":["import {RuntimeGlobals} from \"@rspack/core\";\n\nimport type {RuntimeModuleReaderOptions} from \"../types\";\n\n/** Read the calling entrypoint's live runtime without initializing other features. */\nexport const createRuntimeModule = (readers: readonly RuntimeModuleReaderOptions[]): string => {\n return readers\n .map(\n ({export: name, property}) =>\n `export const ${name} = () => ${RuntimeGlobals.require}[${JSON.stringify(property)}];\\n`\n )\n .join(\"\");\n};\n"],"mappings":"AAAA,SAAQ,sBAAqB;AAKtB,MAAM,sBAAsB,CAAC,YAA2D;AAC3F,SAAO,QACF;AAAA,IACG,CAAC,EAAC,QAAQ,MAAM,SAAQ,MACpB,gBAAgB,IAAI,YAAY,eAAe,OAAO,IAAI,KAAK,UAAU,QAAQ,CAAC;AAAA;AAAA,EAC1F,EACC,KAAK,EAAE;AAChB;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import _ from "lodash";
|
|
2
|
+
import path from "path";
|
|
3
|
+
const appFilenameResolver = (app, filename, dirname) => {
|
|
4
|
+
app = _.kebabCase(app);
|
|
5
|
+
const resolve = (name) => {
|
|
6
|
+
name = name.replaceAll("[app]", app);
|
|
7
|
+
return dirname ? path.posix.join(dirname, name) : name;
|
|
8
|
+
};
|
|
9
|
+
if (!_.isFunction(filename)) {
|
|
10
|
+
return resolve(filename);
|
|
11
|
+
}
|
|
12
|
+
return (pathData, assetInfo) => {
|
|
13
|
+
return resolve(filename(pathData, assetInfo));
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export {
|
|
17
|
+
appFilenameResolver
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=app-filename.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/bundler/utils/app-filename.ts"],"sourcesContent":["import type {Filename} from \"@rspack/core\";\nimport _ from \"lodash\";\nimport path from \"path\";\n\nexport const appFilenameResolver = (app: string, filename: Filename, dirname?: string): Filename => {\n app = _.kebabCase(app);\n\n const resolve = (name: string): string => {\n name = name.replaceAll(\"[app]\", app);\n\n return dirname ? path.posix.join(dirname, name) : name;\n };\n\n if (!_.isFunction(filename)) {\n return resolve(filename);\n }\n\n return (pathData, assetInfo): string => {\n return resolve(filename(pathData, assetInfo));\n };\n};\n"],"mappings":"AACA,OAAO,OAAO;AACd,OAAO,UAAU;AAEV,MAAM,sBAAsB,CAAC,KAAa,UAAoB,YAA+B;AAChG,QAAM,EAAE,UAAU,GAAG;AAErB,QAAM,UAAU,CAAC,SAAyB;AACtC,WAAO,KAAK,WAAW,SAAS,GAAG;AAEnC,WAAO,UAAU,KAAK,MAAM,KAAK,SAAS,IAAI,IAAI;AAAA,EACtD;AAEA,MAAI,CAAC,EAAE,WAAW,QAAQ,GAAG;AACzB,WAAO,QAAQ,QAAQ;AAAA,EAC3B;AAEA,SAAO,CAAC,UAAU,cAAsB;AACpC,WAAO,QAAQ,SAAS,UAAU,SAAS,CAAC;AAAA,EAChD;AACJ;","names":[]}
|
|
@@ -1,22 +1,7 @@
|
|
|
1
|
-
import _ from "lodash";
|
|
2
1
|
import path from "path";
|
|
3
2
|
import postcss from "postcss";
|
|
4
3
|
import valueParser from "postcss-value-parser";
|
|
5
4
|
import { toPosix } from "./../../../cli/utils/path.js";
|
|
6
|
-
const compilationBuildAssets = /* @__PURE__ */ new WeakMap();
|
|
7
|
-
const appFilenameResolver = (app, filename, dirname) => {
|
|
8
|
-
app = _.kebabCase(app);
|
|
9
|
-
const resolve = (name) => {
|
|
10
|
-
name = name.replaceAll("[app]", app);
|
|
11
|
-
return dirname ? path.posix.join(dirname, name) : name;
|
|
12
|
-
};
|
|
13
|
-
if (!_.isFunction(filename)) {
|
|
14
|
-
return resolve(filename);
|
|
15
|
-
}
|
|
16
|
-
return (pathData, assetInfo) => {
|
|
17
|
-
return resolve(filename(pathData, assetInfo));
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
5
|
const addRelatedSourceMaps = (sourceMaps, related) => {
|
|
21
6
|
const sourceMap = related == null ? void 0 : related.sourceMap;
|
|
22
7
|
if (Array.isArray(sourceMap)) {
|
|
@@ -72,15 +57,18 @@ const collectResources = (compilation, chunks, sourceMaps) => {
|
|
|
72
57
|
for (const file of [...chunk.files, ...chunk.auxiliaryFiles]) {
|
|
73
58
|
const normalized = toPosix(file);
|
|
74
59
|
candidates.set(normalized, candidates.get(normalized) ?? false);
|
|
75
|
-
if (getAssetKind(compilation, normalized, sourceMaps) === "css")
|
|
60
|
+
if (getAssetKind(compilation, normalized, sourceMaps) === "css") {
|
|
61
|
+
cssFiles.add(normalized);
|
|
62
|
+
}
|
|
76
63
|
}
|
|
77
64
|
for (const module of compilation.chunkGraph.getChunkModulesIterable(chunk)) {
|
|
78
65
|
for (const file of getModuleAssetNames(module)) {
|
|
79
66
|
candidates.set(toPosix(file), true);
|
|
80
67
|
}
|
|
81
68
|
if (module.type === "css/mini-extract") {
|
|
82
|
-
for (const dependency of ((_a = module.buildInfo) == null ? void 0 : _a.fileDependencies) ?? [])
|
|
69
|
+
for (const dependency of ((_a = module.buildInfo) == null ? void 0 : _a.fileDependencies) ?? []) {
|
|
83
70
|
sourceFiles.add(path.resolve(dependency));
|
|
71
|
+
}
|
|
84
72
|
}
|
|
85
73
|
}
|
|
86
74
|
}
|
|
@@ -91,21 +79,31 @@ const collectResources = (compilation, chunks, sourceMaps) => {
|
|
|
91
79
|
).map((asset) => asset.name).sort((left, right) => right.length - left.length);
|
|
92
80
|
for (const file of cssFiles) {
|
|
93
81
|
const css = (_b = compilation.getAsset(file)) == null ? void 0 : _b.source.source().toString();
|
|
94
|
-
if (!css)
|
|
82
|
+
if (!css) {
|
|
83
|
+
continue;
|
|
84
|
+
}
|
|
95
85
|
postcss.parse(css, { from: file }).walkDecls((declaration) => {
|
|
96
86
|
valueParser(declaration.value).walk((node) => {
|
|
97
|
-
if (node.type !== "function" || node.value.toLowerCase() !== "url")
|
|
87
|
+
if (node.type !== "function" || node.value.toLowerCase() !== "url") {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
98
90
|
const argument = node.nodes[0];
|
|
99
|
-
if (!argument || argument.type !== "string" && argument.type !== "word")
|
|
91
|
+
if (!argument || argument.type !== "string" && argument.type !== "word") {
|
|
92
|
+
return false;
|
|
93
|
+
}
|
|
100
94
|
const url = argument.value.replace(
|
|
101
95
|
/\\([\da-f]{1,6}\s?|.)/gi,
|
|
102
96
|
(_match, escape) => /^[\da-f]{1,6}\s?$/i.test(escape) ? String.fromCodePoint(parseInt(escape.trim(), 16) || 65533) : escape
|
|
103
97
|
);
|
|
104
|
-
if (/^(?:data|blob):/i.test(url))
|
|
98
|
+
if (/^(?:data|blob):/i.test(url)) {
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
105
101
|
try {
|
|
106
102
|
const pathname = decodeURIComponent(new URL(url, `https://adnbn.invalid/${file}`).pathname);
|
|
107
103
|
const resource = resources.find((candidate) => pathname.endsWith(`/${candidate}`));
|
|
108
|
-
if (resource)
|
|
104
|
+
if (resource) {
|
|
105
|
+
candidates.set(resource, true);
|
|
106
|
+
}
|
|
109
107
|
} catch {
|
|
110
108
|
}
|
|
111
109
|
return false;
|
|
@@ -158,16 +156,7 @@ const collectBuildAssets = (compilation) => {
|
|
|
158
156
|
}
|
|
159
157
|
return assets;
|
|
160
158
|
};
|
|
161
|
-
const setCompilationBuildAssets = (compilation, assets) => {
|
|
162
|
-
compilationBuildAssets.set(compilation, assets);
|
|
163
|
-
};
|
|
164
|
-
const getCompilationBuildAssets = (compilation) => {
|
|
165
|
-
return compilationBuildAssets.get(compilation);
|
|
166
|
-
};
|
|
167
159
|
export {
|
|
168
|
-
|
|
169
|
-
collectBuildAssets,
|
|
170
|
-
getCompilationBuildAssets,
|
|
171
|
-
setCompilationBuildAssets
|
|
160
|
+
collectBuildAssets
|
|
172
161
|
};
|
|
173
|
-
//# sourceMappingURL=
|
|
162
|
+
//# sourceMappingURL=assets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/bundler/utils/assets.ts"],"sourcesContent":["import type {AssetInfo, Chunk, Compilation, Module} from \"@rspack/core\";\nimport path from \"path\";\nimport postcss from \"postcss\";\nimport valueParser from \"postcss-value-parser\";\n\nimport {toPosix} from \"@cli/utils/path\";\n\nimport type {EntrypointAssetsMap, EntrypointAssetsMapEntry, EntrypointAssetsFiles} from \"@typing/entrypoint\";\n\ntype AssetKind = \"asset\" | \"css\" | \"js\";\n\nconst addRelatedSourceMaps = (sourceMaps: Set<string>, related: AssetInfo[\"related\"]): void => {\n const sourceMap = related?.sourceMap;\n\n if (Array.isArray(sourceMap)) {\n sourceMap.forEach(file => sourceMaps.add(toPosix(file)));\n } else if (sourceMap) {\n sourceMaps.add(toPosix(sourceMap));\n }\n};\n\nconst getRelatedSourceMaps = (compilation: Compilation): ReadonlySet<string> => {\n const sourceMaps = new Set<string>();\n\n compilation.getAssets().forEach(({info}) => addRelatedSourceMaps(sourceMaps, info.related));\n\n return sourceMaps;\n};\n\nconst isIgnoredAsset = (file: string, info: AssetInfo, sourceMaps: ReadonlySet<string>): boolean => {\n return Boolean(info.development || info.hotModuleReplacement || sourceMaps.has(file));\n};\n\nconst classifyAsset = (file: string, info: AssetInfo, fromModuleAssets: boolean): AssetKind => {\n if (info.assetType === \"javascript\") {\n return \"js\";\n }\n\n if (info.assetType === \"css\" || info.assetType === \"extract-css\") {\n return \"css\";\n }\n\n if (info.assetType || info.sourceFilename || fromModuleAssets) {\n return \"asset\";\n }\n\n if (file.endsWith(\".js\") || file.endsWith(\".mjs\") || file.endsWith(\".cjs\")) {\n return \"js\";\n }\n\n if (file.endsWith(\".css\")) {\n return \"css\";\n }\n\n return \"asset\";\n};\n\nconst getAssetKind = (\n compilation: Compilation,\n file: string,\n sourceMaps: ReadonlySet<string>,\n fromModuleAssets = false\n): AssetKind | undefined => {\n file = toPosix(file);\n\n const asset = compilation.getAsset(file);\n\n if (!asset || isIgnoredAsset(file, asset.info, sourceMaps)) {\n return;\n }\n\n return classifyAsset(file, asset.info, fromModuleAssets);\n};\n\nconst getModuleAssetNames = (module: Module): readonly string[] => {\n return Object.keys(module.buildInfo?.assets ?? {});\n};\n\nconst collectResources = (\n compilation: Compilation,\n chunks: Iterable<Chunk>,\n sourceMaps: ReadonlySet<string>\n): readonly string[] => {\n const candidates = new Map<string, boolean>();\n const cssFiles = new Set<string>();\n const sourceFiles = new Set<string>();\n\n for (const chunk of chunks) {\n for (const file of [...chunk.files, ...chunk.auxiliaryFiles]) {\n const normalized = toPosix(file);\n\n candidates.set(normalized, candidates.get(normalized) ?? false);\n\n if (getAssetKind(compilation, normalized, sourceMaps) === \"css\") {\n cssFiles.add(normalized);\n }\n }\n\n for (const module of compilation.chunkGraph.getChunkModulesIterable(chunk)) {\n for (const file of getModuleAssetNames(module)) {\n candidates.set(toPosix(file), true);\n }\n\n if (module.type === \"css/mini-extract\") {\n for (const dependency of module.buildInfo?.fileDependencies ?? []) {\n sourceFiles.add(path.resolve(dependency));\n }\n }\n }\n }\n\n // CssExtract executes url() asset modules during the build. They are not\n // runtime chunk modules, so follow the emitted CSS references as well.\n // This only reads assets; it never rewrites CSS or its filenames.\n const resources = compilation\n .getAssets()\n .filter(\n asset =>\n getAssetKind(compilation, asset.name, sourceMaps) === \"asset\" &&\n (!asset.info.sourceFilename ||\n sourceFiles.has(\n path.resolve(compilation.compiler.context, asset.info.sourceFilename.split(/[?#]/)[0])\n ))\n )\n .map(asset => asset.name)\n .sort((left, right) => right.length - left.length);\n\n for (const file of cssFiles) {\n const css = compilation.getAsset(file)?.source.source().toString();\n\n if (!css) {\n continue;\n }\n\n postcss.parse(css, {from: file}).walkDecls(declaration => {\n valueParser(declaration.value).walk(node => {\n if (node.type !== \"function\" || node.value.toLowerCase() !== \"url\") {\n return;\n }\n\n const argument = node.nodes[0];\n\n if (!argument || (argument.type !== \"string\" && argument.type !== \"word\")) {\n return false;\n }\n\n const url = argument.value.replace(/\\\\([\\da-f]{1,6}\\s?|.)/gi, (_match, escape: string) =>\n /^[\\da-f]{1,6}\\s?$/i.test(escape)\n ? String.fromCodePoint(parseInt(escape.trim(), 16) || 0xfffd)\n : escape\n );\n\n if (/^(?:data|blob):/i.test(url)) {\n return false;\n }\n\n try {\n const pathname = decodeURIComponent(new URL(url, `https://adnbn.invalid/${file}`).pathname);\n const resource = resources.find(candidate => pathname.endsWith(`/${candidate}`));\n\n if (resource) {\n candidates.set(resource, true);\n }\n } catch {\n // External or malformed URLs do not name an emitted build resource.\n }\n\n return false;\n });\n });\n }\n\n return Array.from(candidates)\n .filter(([file, fromModuleAssets]) => {\n return getAssetKind(compilation, file, sourceMaps, fromModuleAssets) === \"asset\";\n })\n .map(([file]) => file)\n .toSorted();\n};\n\nconst collectCodeFiles = (\n compilation: Compilation,\n files: Iterable<string>,\n sourceMaps: ReadonlySet<string>\n): EntrypointAssetsFiles => {\n const css = new Set<string>();\n const js = new Set<string>();\n\n for (const rawFile of files) {\n const file = toPosix(rawFile);\n const kind = getAssetKind(compilation, file, sourceMaps);\n\n if (kind === \"js\") {\n js.add(file);\n } else if (kind === \"css\") {\n css.add(file);\n }\n }\n\n return {js: Array.from(js), css: Array.from(css)};\n};\n\nconst collectAsyncCodeFiles = (\n compilation: Compilation,\n chunks: Iterable<Chunk>,\n sourceMaps: ReadonlySet<string>,\n initialFiles: ReadonlySet<string>\n): EntrypointAssetsFiles => {\n const files = new Set<string>();\n\n for (const chunk of chunks) {\n for (const file of [...chunk.files, ...chunk.auxiliaryFiles]) {\n const normalized = toPosix(file);\n\n if (!initialFiles.has(normalized)) {\n files.add(normalized);\n }\n }\n }\n\n return collectCodeFiles(compilation, files, sourceMaps);\n};\n\nexport const collectBuildAssets = (compilation: Compilation): EntrypointAssetsMap => {\n const sourceMaps = getRelatedSourceMaps(compilation);\n const assets = Object.create(null) as Record<string, EntrypointAssetsMapEntry>;\n\n const entrypoints = Array.from(compilation.entrypoints).toSorted(([left], [right]) => left.localeCompare(right));\n\n for (const [name, entrypoint] of entrypoints) {\n const initial = collectCodeFiles(compilation, entrypoint.getFiles(), sourceMaps);\n const initialFiles = new Set([...initial.js, ...initial.css]);\n const entryChunk = entrypoint.getEntrypointChunk();\n\n assets[name] = {\n initial,\n async: collectAsyncCodeFiles(compilation, entryChunk.getAllAsyncChunks(), sourceMaps, initialFiles),\n assets: collectResources(compilation, entryChunk.getAllReferencedChunks(), sourceMaps),\n };\n }\n\n return assets;\n};\n"],"mappings":"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","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/bundler/utils/index.ts"],"sourcesContent":["export * from \"./optimization\";\nexport * from \"./
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/bundler/utils/index.ts"],"sourcesContent":["export * from \"./optimization\";\nexport * from \"./app-filename\";\nexport * from \"./assets\";\n"],"mappings":"AAAA,cAAc;AACd,cAAc;AACd,cAAc;","names":[]}
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
ContentScriptDeclarative,
|
|
9
9
|
ContentScriptMarker,
|
|
10
10
|
ContentScriptWorld
|
|
11
|
-
} from "./../../../../types/content.js";
|
|
11
|
+
} from "./../../../../types/content/index.js";
|
|
12
12
|
import { OffscreenReason } from "./../../../../types/offscreen.js";
|
|
13
13
|
import { SandboxAllow, SandboxSource } from "./../../../../types/sandbox.js";
|
|
14
14
|
import { CspSource } from "./../../../../types/csp.js";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import AbstractPluginFinder from "./AbstractPluginFinder.js";
|
|
2
2
|
import { ReadonlyConfig } from "../../../types/config.js";
|
|
3
|
-
import { ContentScriptEntrypointOptions } from "../../../types/content.js";
|
|
3
|
+
import { ContentScriptEntrypointOptions } from "../../../types/content/index.js";
|
|
4
4
|
import { EntrypointOptionsFinder, EntrypointParser, EntrypointType } from "../../../types/entrypoint.js";
|
|
5
5
|
export default class extends AbstractPluginFinder<ContentScriptEntrypointOptions> {
|
|
6
6
|
constructor(config: ReadonlyConfig);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import z from "zod";
|
|
2
2
|
import AbstractParser from "./AbstractParser.js";
|
|
3
|
-
import { ContentScriptEntrypointOptions } from "../../../types/content.js";
|
|
3
|
+
import { ContentScriptEntrypointOptions } from "../../../types/content/index.js";
|
|
4
4
|
import { EntrypointFile, EntrypointOptions } from "../../../types/entrypoint.js";
|
|
5
|
-
export default class<O extends EntrypointOptions = ContentScriptEntrypointOptions> extends AbstractParser<O> {
|
|
5
|
+
export default class ContentParser<O extends EntrypointOptions = ContentScriptEntrypointOptions> extends AbstractParser<O> {
|
|
6
6
|
protected definition(): string | string[];
|
|
7
7
|
protected schema(): z.AnyZodObject;
|
|
8
8
|
protected getOptions(file: EntrypointFile): Record<string, any>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isContentScriptFrameNavigation, resolveContentScriptIsolation } from "./../../../shared/content/index.js";
|
|
2
2
|
import z from "zod";
|
|
3
3
|
import AbstractParser from "./AbstractParser.js";
|
|
4
|
-
import {
|
|
4
|
+
import { hasContentScriptDefaultRender } from "./utils/content/default-render.js";
|
|
5
5
|
import {
|
|
6
6
|
ContentScriptDeclarative,
|
|
7
7
|
ContentScriptMarker,
|
|
@@ -9,16 +9,14 @@ import {
|
|
|
9
9
|
ContentScriptWorld,
|
|
10
10
|
ContentScriptIsolation,
|
|
11
11
|
ContentScriptShadowMode
|
|
12
|
-
} from "./../../../types/content.js";
|
|
13
|
-
class
|
|
12
|
+
} from "./../../../types/content/index.js";
|
|
13
|
+
class ContentParser extends AbstractParser {
|
|
14
14
|
definition() {
|
|
15
15
|
return ["defineContentScript", "defineContentScriptAppend"];
|
|
16
16
|
}
|
|
17
17
|
schema() {
|
|
18
18
|
const frameSchema = z.object({
|
|
19
|
-
type: z.literal(ContentScriptIsolation.Iframe)
|
|
20
|
-
width: z.union([z.number(), z.string()]),
|
|
21
|
-
height: z.union([z.number(), z.string()])
|
|
19
|
+
type: z.literal(ContentScriptIsolation.Iframe)
|
|
22
20
|
}).strict();
|
|
23
21
|
const isolationSchema = z.union([
|
|
24
22
|
z.object({ type: z.literal(ContentScriptIsolation.None) }).strict(),
|
|
@@ -68,24 +66,10 @@ class ContentParser_default extends AbstractParser {
|
|
|
68
66
|
}
|
|
69
67
|
/** Interprets generic export metadata using content render rules; Relay overrides this policy. */
|
|
70
68
|
hasDefaultRender(file) {
|
|
71
|
-
|
|
72
|
-
if (!exported) {
|
|
73
|
-
return false;
|
|
74
|
-
}
|
|
75
|
-
switch (exported.kind) {
|
|
76
|
-
case ExportValueKind.Function:
|
|
77
|
-
case ExportValueKind.Class:
|
|
78
|
-
case ExportValueKind.Jsx:
|
|
79
|
-
case ExportValueKind.Number:
|
|
80
|
-
return true;
|
|
81
|
-
case ExportValueKind.String:
|
|
82
|
-
return exported.value !== "";
|
|
83
|
-
default:
|
|
84
|
-
return exported.properties.includes("$$typeof");
|
|
85
|
-
}
|
|
69
|
+
return hasContentScriptDefaultRender(this.expressionFile(file).getDefaultExport());
|
|
86
70
|
}
|
|
87
71
|
}
|
|
88
72
|
export {
|
|
89
|
-
|
|
73
|
+
ContentParser as default
|
|
90
74
|
};
|
|
91
75
|
//# sourceMappingURL=ContentParser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/entrypoint/parser/ContentParser.ts"],"sourcesContent":["import {isContentScriptFrameNavigation, resolveContentScriptIsolation} from \"@shared/content\";\nimport z from \"zod\";\n\nimport AbstractParser from \"./AbstractParser\";\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/entrypoint/parser/ContentParser.ts"],"sourcesContent":["import {isContentScriptFrameNavigation, resolveContentScriptIsolation} from \"@shared/content\";\nimport z from \"zod\";\n\nimport AbstractParser from \"./AbstractParser\";\nimport {hasContentScriptDefaultRender} from \"./utils/content/default-render\";\n\nimport {\n ContentScriptDeclarative,\n ContentScriptEntrypointOptions,\n ContentScriptMarker,\n ContentScriptMatches,\n ContentScriptWorld,\n ContentScriptIsolation,\n ContentScriptIsolationOptions,\n ContentScriptShadowMode,\n} from \"@typing/content\";\nimport {EntrypointFile, EntrypointOptions} from \"@typing/entrypoint\";\n\nexport default class ContentParser<\n O extends EntrypointOptions = ContentScriptEntrypointOptions,\n> extends AbstractParser<O> {\n protected definition(): string | string[] {\n return [\"defineContentScript\", \"defineContentScriptAppend\"];\n }\n\n protected schema(): z.AnyZodObject {\n const frameSchema = z\n .object({\n type: z.literal(ContentScriptIsolation.Iframe),\n })\n .strict();\n\n // getOptions normalizes shorthand and defaults before validating this object contract.\n const isolationSchema = z.union([\n z.object({type: z.literal(ContentScriptIsolation.None)}).strict(),\n z\n .object({\n type: z.literal(ContentScriptIsolation.Shadow),\n mode: z.nativeEnum(ContentScriptShadowMode),\n })\n .strict(),\n frameSchema,\n frameSchema.extend({page: z.string()}),\n frameSchema.extend({src: z.string()}),\n ]) satisfies z.ZodType<ContentScriptIsolationOptions>;\n\n return this.CommonPropertiesSchema.extend({\n matches: z.array(z.string()).optional(),\n excludeMatches: z.array(z.string()).optional(),\n matchAboutBlank: z.boolean().optional(),\n includeGlobs: z.array(z.string()).optional(),\n excludeGlobs: z.array(z.string()).optional(),\n allFrames: z.boolean().optional(),\n world: z.nativeEnum(ContentScriptWorld).optional(),\n runAt: z.enum([\"document_start\", \"document_end\", \"document_idle\"]).optional(),\n matchOriginAsFallback: z.boolean().optional(),\n declarative: z.union([z.nativeEnum(ContentScriptDeclarative), z.boolean()]).optional(),\n marker: z.union([z.nativeEnum(ContentScriptMarker), z.boolean()]).optional(),\n isolation: isolationSchema,\n });\n }\n\n protected getOptions(file: EntrypointFile): Record<string, any> {\n const optionFile = this.optionFile(file);\n const declared = optionFile.getDeclaredProperties();\n const values = optionFile.getOptions();\n\n try {\n const hasRender =\n declared.has(\"render\") ||\n (isContentScriptFrameNavigation(values.isolation) &&\n !optionFile.getDefinition() &&\n this.hasDefaultRender(file));\n\n return {...values, isolation: resolveContentScriptIsolation(values.isolation, hasRender)};\n } catch (error) {\n throw new Error(\n `Invalid content isolation in \"${file.file}\": ${error instanceof Error ? error.message : String(error)}`\n );\n }\n }\n\n public options(file: EntrypointFile): O {\n const options = super.options(file);\n\n return {\n matches: ContentScriptMatches,\n runAt: \"document_idle\",\n ...options,\n };\n }\n\n /** Interprets generic export metadata using content render rules; Relay overrides this policy. */\n protected hasDefaultRender(file: EntrypointFile): boolean {\n return hasContentScriptDefaultRender(this.expressionFile(file).getDefaultExport());\n }\n}\n"],"mappings":"AAAA,SAAQ,gCAAgC,qCAAoC;AAC5E,OAAO,OAAO;AAEd,OAAO,oBAAoB;AAC3B,SAAQ,qCAAoC;AAE5C;AAAA,EACI;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OACG;AAGP,MAAO,sBAEG,eAAkB;AAAA,EACd,aAAgC;AACtC,WAAO,CAAC,uBAAuB,2BAA2B;AAAA,EAC9D;AAAA,EAEU,SAAyB;AAC/B,UAAM,cAAc,EACf,OAAO;AAAA,MACJ,MAAM,EAAE,QAAQ,uBAAuB,MAAM;AAAA,IACjD,CAAC,EACA,OAAO;AAGZ,UAAM,kBAAkB,EAAE,MAAM;AAAA,MAC5B,EAAE,OAAO,EAAC,MAAM,EAAE,QAAQ,uBAAuB,IAAI,EAAC,CAAC,EAAE,OAAO;AAAA,MAChE,EACK,OAAO;AAAA,QACJ,MAAM,EAAE,QAAQ,uBAAuB,MAAM;AAAA,QAC7C,MAAM,EAAE,WAAW,uBAAuB;AAAA,MAC9C,CAAC,EACA,OAAO;AAAA,MACZ;AAAA,MACA,YAAY,OAAO,EAAC,MAAM,EAAE,OAAO,EAAC,CAAC;AAAA,MACrC,YAAY,OAAO,EAAC,KAAK,EAAE,OAAO,EAAC,CAAC;AAAA,IACxC,CAAC;AAED,WAAO,KAAK,uBAAuB,OAAO;AAAA,MACtC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MACtC,gBAAgB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MAC7C,iBAAiB,EAAE,QAAQ,EAAE,SAAS;AAAA,MACtC,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MAC3C,cAAc,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,SAAS;AAAA,MAC3C,WAAW,EAAE,QAAQ,EAAE,SAAS;AAAA,MAChC,OAAO,EAAE,WAAW,kBAAkB,EAAE,SAAS;AAAA,MACjD,OAAO,EAAE,KAAK,CAAC,kBAAkB,gBAAgB,eAAe,CAAC,EAAE,SAAS;AAAA,MAC5E,uBAAuB,EAAE,QAAQ,EAAE,SAAS;AAAA,MAC5C,aAAa,EAAE,MAAM,CAAC,EAAE,WAAW,wBAAwB,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS;AAAA,MACrF,QAAQ,EAAE,MAAM,CAAC,EAAE,WAAW,mBAAmB,GAAG,EAAE,QAAQ,CAAC,CAAC,EAAE,SAAS;AAAA,MAC3E,WAAW;AAAA,IACf,CAAC;AAAA,EACL;AAAA,EAEU,WAAW,MAA2C;AAC5D,UAAM,aAAa,KAAK,WAAW,IAAI;AACvC,UAAM,WAAW,WAAW,sBAAsB;AAClD,UAAM,SAAS,WAAW,WAAW;AAErC,QAAI;AACA,YAAM,YACF,SAAS,IAAI,QAAQ,KACpB,+BAA+B,OAAO,SAAS,KAC5C,CAAC,WAAW,cAAc,KAC1B,KAAK,iBAAiB,IAAI;AAElC,aAAO,EAAC,GAAG,QAAQ,WAAW,8BAA8B,OAAO,WAAW,SAAS,EAAC;AAAA,IAC5F,SAAS,OAAO;AACZ,YAAM,IAAI;AAAA,QACN,iCAAiC,KAAK,IAAI,MAAM,iBAAiB,QAAQ,MAAM,UAAU,OAAO,KAAK,CAAC;AAAA,MAC1G;AAAA,IACJ;AAAA,EACJ;AAAA,EAEO,QAAQ,MAAyB;AACpC,UAAM,UAAU,MAAM,QAAQ,IAAI;AAElC,WAAO;AAAA,MACH,SAAS;AAAA,MACT,OAAO;AAAA,MACP,GAAG;AAAA,IACP;AAAA,EACJ;AAAA;AAAA,EAGU,iBAAiB,MAA+B;AACtD,WAAO,8BAA8B,KAAK,eAAe,IAAI,EAAE,iBAAiB,CAAC;AAAA,EACrF;AACJ;","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import z from "zod";
|
|
2
2
|
import ContentParser from "./ContentParser.js";
|
|
3
3
|
import { RelayAllFrames, RelayMethod } from "./../../../types/relay.js";
|
|
4
|
-
import { ContentScriptDeclarative } from "./../../../types/content.js";
|
|
4
|
+
import { ContentScriptDeclarative } from "./../../../types/content/index.js";
|
|
5
5
|
class RelayParser_default extends ContentParser {
|
|
6
6
|
definition() {
|
|
7
7
|
return "defineRelay";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ExportValueKind } from "../../../file/index.js";
|
|
2
|
+
const hasContentScriptDefaultRender = (exported) => {
|
|
3
|
+
if (!exported) {
|
|
4
|
+
return false;
|
|
5
|
+
}
|
|
6
|
+
switch (exported.kind) {
|
|
7
|
+
case ExportValueKind.Function:
|
|
8
|
+
case ExportValueKind.Class:
|
|
9
|
+
case ExportValueKind.Jsx:
|
|
10
|
+
case ExportValueKind.Number:
|
|
11
|
+
return true;
|
|
12
|
+
case ExportValueKind.String:
|
|
13
|
+
return exported.value !== "";
|
|
14
|
+
default:
|
|
15
|
+
return exported.properties.includes("$$typeof") || ["type", "props", "key"].every((property) => exported.properties.includes(property));
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
export {
|
|
19
|
+
hasContentScriptDefaultRender
|
|
20
|
+
};
|
|
21
|
+
//# sourceMappingURL=default-render.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../../../src/cli/entrypoint/parser/utils/content/default-render.ts"],"sourcesContent":["import {ExportValueKind, type ExportValue} from \"../../../file\";\n\n/** Source metadata only: the CLI never loads a UI runtime to validate frame navigation. */\nexport const hasContentScriptDefaultRender = (exported?: ExportValue): boolean => {\n if (!exported) {\n return false;\n }\n\n switch (exported.kind) {\n case ExportValueKind.Function:\n case ExportValueKind.Class:\n case ExportValueKind.Jsx:\n case ExportValueKind.Number:\n return true;\n case ExportValueKind.String:\n return exported.value !== \"\";\n default:\n // Literal elements expose their runtime tag; inferred ReactElement/JSX.Element types\n // expose the public type/props/key fields instead (including imported element values).\n return (\n exported.properties.includes(\"$$typeof\") ||\n [\"type\", \"props\", \"key\"].every(property => exported.properties.includes(property))\n );\n }\n};\n"],"mappings":"AAAA,SAAQ,uBAAwC;AAGzC,MAAM,gCAAgC,CAAC,aAAoC;AAC9E,MAAI,CAAC,UAAU;AACX,WAAO;AAAA,EACX;AAEA,UAAQ,SAAS,MAAM;AAAA,IACnB,KAAK,gBAAgB;AAAA,IACrB,KAAK,gBAAgB;AAAA,IACrB,KAAK,gBAAgB;AAAA,IACrB,KAAK,gBAAgB;AACjB,aAAO;AAAA,IACX,KAAK,gBAAgB;AACjB,aAAO,SAAS,UAAU;AAAA,IAC9B;AAGI,aACI,SAAS,WAAW,SAAS,UAAU,KACvC,CAAC,QAAQ,SAAS,KAAK,EAAE,MAAM,cAAY,SAAS,WAAW,SAAS,QAAQ,CAAC;AAAA,EAE7F;AACJ;","names":[]}
|
|
@@ -2,7 +2,7 @@ import ContentDriver from "./ContentDriver.js";
|
|
|
2
2
|
import { ContentProvider } from "./types.js";
|
|
3
3
|
import { ContentFinder } from "../../entrypoint/index.js";
|
|
4
4
|
import { ReadonlyConfig } from "../../../types/config.js";
|
|
5
|
-
import { ContentScriptEntrypointOptions } from "../../../types/content.js";
|
|
5
|
+
import { ContentScriptEntrypointOptions } from "../../../types/content/index.js";
|
|
6
6
|
import { EntrypointFile } from "../../../types/entrypoint.js";
|
|
7
7
|
export default class extends ContentFinder implements ContentProvider<ContentScriptEntrypointOptions> {
|
|
8
8
|
protected _driver?: ContentDriver<ContentScriptEntrypointOptions>;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ContentDriver as ContentDriverContract, ContentItems } from "./types.js";
|
|
2
2
|
import { AbstractPluginFinder } from "../../entrypoint/index.js";
|
|
3
|
-
import { ContentScriptEntrypointOptions } from "../../../types/content.js";
|
|
3
|
+
import { ContentScriptEntrypointOptions } from "../../../types/content/index.js";
|
|
4
4
|
import { EntrypointFile, EntrypointNameGenerator, EntrypointOptions } from "../../../types/entrypoint.js";
|
|
5
5
|
import { ManifestOptionalPermissions, ManifestPermissions } from "../../../types/manifest.js";
|
|
6
6
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import ContentName from "./ContentName.js";
|
|
2
2
|
import { ContentGroupItems, ContentProvider } from "./types.js";
|
|
3
3
|
import { ReadonlyConfig } from "../../../types/config.js";
|
|
4
|
-
import { ContentScriptEntrypointOptions, ContentScriptWorld, type ContentScriptWorldValue } from "../../../types/content.js";
|
|
4
|
+
import { ContentScriptEntrypointOptions, ContentScriptWorld, type ContentScriptWorldValue } from "../../../types/content/index.js";
|
|
5
5
|
import { EntrypointEntries, EntrypointFile } from "../../../types/entrypoint.js";
|
|
6
6
|
import { ManifestContentScripts, ManifestHostPermissions, ManifestOptionalPermissions, ManifestPermissions } from "../../../types/manifest.js";
|
|
7
7
|
export default class ContentManager {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ContentNameGenerator } from "./types.js";
|
|
2
2
|
import { NameGenerator } from "../../entrypoint/index.js";
|
|
3
3
|
import { ReadonlyConfig } from "../../../types/config.js";
|
|
4
|
-
import { ContentScriptEntrypointOptions } from "../../../types/content.js";
|
|
4
|
+
import { ContentScriptEntrypointOptions } from "../../../types/content/index.js";
|
|
5
5
|
export default class ContentName extends NameGenerator implements ContentNameGenerator<ContentScriptEntrypointOptions> {
|
|
6
6
|
protected readonly config: ReadonlyConfig;
|
|
7
7
|
protected readonly _names: Map<string, string>;
|
|
@@ -2,7 +2,7 @@ import stringify from "json-stringify-deterministic";
|
|
|
2
2
|
import { getContentScriptConfigFromOptions } from "./utils.js";
|
|
3
3
|
import { NameGenerator } from "./../../../cli/entrypoint/index.js";
|
|
4
4
|
import { EntrypointType } from "./../../../types/entrypoint.js";
|
|
5
|
-
import { ContentScriptIsolation } from "./../../../types/content.js";
|
|
5
|
+
import { ContentScriptIsolation } from "./../../../types/content/index.js";
|
|
6
6
|
class ContentName extends NameGenerator {
|
|
7
7
|
constructor(config) {
|
|
8
8
|
super(EntrypointType.ContentScript);
|
|
@@ -2,7 +2,7 @@ import RelayDriver from "./RelayDriver.js";
|
|
|
2
2
|
import { ContentProvider } from "./types.js";
|
|
3
3
|
import { RelayFinder } from "../../entrypoint/index.js";
|
|
4
4
|
import { RelayOptions } from "../../../types/relay.js";
|
|
5
|
-
import { ContentScriptEntrypointOptions } from "../../../types/content.js";
|
|
5
|
+
import { ContentScriptEntrypointOptions } from "../../../types/content/index.js";
|
|
6
6
|
import { EntrypointFile } from "../../../types/entrypoint.js";
|
|
7
7
|
export default class extends RelayFinder implements ContentProvider<ContentScriptEntrypointOptions> {
|
|
8
8
|
protected _driver?: RelayDriver;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import ContentDriver from "./ContentDriver.js";
|
|
2
2
|
import RelayFinder from "../../entrypoint/finder/RelayFinder.js";
|
|
3
|
-
import { type ContentScriptEntrypointOptions } from "../../../types/content.js";
|
|
3
|
+
import { type ContentScriptEntrypointOptions } from "../../../types/content/index.js";
|
|
4
4
|
import { type RelayEntrypointOptions } from "../../../types/relay.js";
|
|
5
5
|
import type { ManifestOptionalPermissions, ManifestPermissions } from "../../../types/manifest.js";
|
|
6
6
|
export default class extends ContentDriver<ContentScriptEntrypointOptions, RelayEntrypointOptions> {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import ContentDriver from "./ContentDriver.js";
|
|
2
|
-
import { ContentScriptDeclarative } from "./../../../types/content.js";
|
|
2
|
+
import { ContentScriptDeclarative } from "./../../../types/content/index.js";
|
|
3
3
|
import { RelayAllFrames, RelayMethod } from "./../../../types/relay.js";
|
|
4
4
|
class RelayDriver_default extends ContentDriver {
|
|
5
5
|
constructor(finder) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ResourceAccessPluginRequirement } from "../../bundler/plugins/resource-access/index.js";
|
|
2
2
|
import type { IsolatedStylesPluginFiles } from "../../bundler/plugins/isolated-styles/index.js";
|
|
3
|
-
import { ContentScriptWorld, type ContentScriptEntrypointOptions } from "../../../types/content.js";
|
|
3
|
+
import { ContentScriptWorld, type ContentScriptEntrypointOptions } from "../../../types/content/index.js";
|
|
4
4
|
/** Reject unavailable destinations and warn about likely missing query flags without changing CSS routing. */
|
|
5
5
|
export declare const validateContentStyles: (entry: string, options: ContentScriptEntrypointOptions | undefined, files: IsolatedStylesPluginFiles) => readonly string[];
|
|
6
6
|
export declare const createPageAccessRequirements: (entries: ReadonlyMap<string, ContentScriptEntrypointOptions>, pages: ReadonlyMap<string, string>) => ResourceAccessPluginRequirement[];
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { isContentScriptFrameNavigation } from "./../../../shared/content/index.js";
|
|
2
2
|
import { hasIsolatedTarget } from "./utils.js";
|
|
3
|
-
import { ContentScriptMatches, ContentScriptWorld } from "./../../../types/content.js";
|
|
3
|
+
import { ContentScriptMatches, ContentScriptWorld } from "./../../../types/content/index.js";
|
|
4
4
|
import { EntrypointType } from "./../../../types/entrypoint.js";
|
|
5
5
|
const validateContentStyles = (entry, options, files) => {
|
|
6
6
|
var _a;
|
|
@@ -7,7 +7,7 @@ import { createPageAccessRequirements, getContentChunkName, validateContentStyle
|
|
|
7
7
|
import { createRelayModule, RelayModuleName } from "./relay-module.js";
|
|
8
8
|
import { definePlugin } from "./../../../main/plugin.js";
|
|
9
9
|
import { PageFinder } from "./../../../cli/entrypoint/index.js";
|
|
10
|
-
import { getContentLayer } from "./../../../cli/bundler/
|
|
10
|
+
import { getContentLayer } from "./../../../cli/bundler/layers.js";
|
|
11
11
|
import {
|
|
12
12
|
appFilenameResolver,
|
|
13
13
|
ChunkLoaderPlugin,
|
|
@@ -18,7 +18,7 @@ import {
|
|
|
18
18
|
GenerateModulePlugin
|
|
19
19
|
} from "./../../../cli/bundler/index.js";
|
|
20
20
|
import { Command } from "./../../../types/app.js";
|
|
21
|
-
import { ContentScriptStylesRuntimeProperty, ContentScriptWorld } from "./../../../types/content.js";
|
|
21
|
+
import { ContentScriptStylesRuntimeProperty, ContentScriptWorld } from "./../../../types/content/index.js";
|
|
22
22
|
var content_default = definePlugin(() => {
|
|
23
23
|
let contentProvider;
|
|
24
24
|
let relayProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/plugins/content/index.ts"],"sourcesContent":["import type {Chunk, Configuration as RspackConfig, NormalModule, Plugins} from \"@rspack/core\";\n\nimport ContentManager from \"./ContentManager\";\nimport Content from \"./Content\";\nimport Relay from \"./Relay\";\nimport RelayDeclaration from \"./RelayDeclaration\";\nimport {hasIsolatedTarget} from \"./utils\";\nimport {createPageAccessRequirements, getContentChunkName, validateContentStyles} from \"./bundler\";\nimport {createRelayModule, RelayModuleName} from \"./relay-module\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {PageFinder} from \"@cli/entrypoint/index.js\";\nimport {getContentLayer} from \"@cli/bundler/utils/layers\";\n\nimport {\n appFilenameResolver,\n ChunkLoaderPlugin,\n EntrypointPlugin,\n onlyViaTopLevelEntry,\n IsolatedStylesPlugin,\n ResourceAccessPlugin,\n GenerateModulePlugin,\n} from \"@cli/bundler\";\n\nimport {Command} from \"@typing/app\";\nimport {ContentScriptStylesRuntimeProperty, ContentScriptWorld} from \"@typing/content\";\n\nexport default definePlugin(() => {\n let contentProvider: Content;\n let relayProvider: Relay;\n let contentManager: ContentManager;\n let relayDeclaration: RelayDeclaration;\n\n return {\n name: \"adnbn:content\",\n startup: ({config}) => {\n contentProvider = new Content(config);\n relayProvider = new Relay(config);\n\n // prettier-ignore\n contentManager = new ContentManager(config)\n .provider(contentProvider)\n .provider(relayProvider);\n\n relayDeclaration = new RelayDeclaration(config);\n },\n content: () => contentProvider.files(),\n relay: () => relayProvider.files(),\n bundler: async ({config}) => {\n relayDeclaration.dictionary(await relayProvider.dictionary()).build();\n\n let entryOptionsByName = await contentManager.entryOptions();\n\n const getModules = async () => ({\n [RelayModuleName]: createRelayModule(await relayProvider.getOptionsMap()),\n });\n const modulePlugin = new GenerateModulePlugin(await getModules());\n\n if (config.command === Command.Watch) {\n modulePlugin.watch(getModules);\n }\n\n const basePlugins: Plugins = [\n modulePlugin,\n new ResourceAccessPlugin({\n requirements: async () => {\n if (\n !Array.from(entryOptionsByName.values()).some(\n options => options.isolation?.page !== undefined\n )\n ) {\n return [];\n }\n\n const views = await new PageFinder(config).views();\n const pages = new Map(Array.from(views.values(), view => [view.alias, view.filename]));\n return createPageAccessRequirements(entryOptionsByName, pages);\n },\n }),\n ];\n\n if (await contentManager.empty()) {\n if (config.debug) {\n console.warn(\"Content script or relay entries not found\");\n }\n\n return {plugins: basePlugins};\n }\n\n const entries = await contentManager.entries();\n const getEntryWorld = (name: string): ContentScriptWorld => {\n const options = entryOptionsByName.get(name);\n\n if (!options) {\n throw new Error(`Execution world for content entrypoint \"${name}\" is unavailable`);\n }\n\n return options.world === ContentScriptWorld.Main\n ? ContentScriptWorld.Main\n : ContentScriptWorld.Isolated;\n };\n\n // prettier-ignore\n const entrypointPlugin = EntrypointPlugin.from(entries)\n .virtual(file => contentManager.virtual(file))\n .entryOptions(name => {\n const world = getEntryWorld(name);\n\n return {\n // MAIN cannot resolve an installed extension URL without crossing contexts.\n // ISOLATED keeps physical async chunks and resolves them through the extension API.\n asyncChunks: world === ContentScriptWorld.Isolated,\n layer: getContentLayer(world),\n publicPath: \"\",\n };\n });\n\n if (config.command === Command.Watch) {\n entrypointPlugin.watch(async () => {\n contentManager.clear();\n\n relayDeclaration.dictionary(await relayProvider.dictionary()).build();\n\n const entries = await contentManager.entries();\n entryOptionsByName = await contentManager.entryOptions();\n\n return entries;\n });\n }\n\n const isContentModule = onlyViaTopLevelEntry([\"content\", \"relay\"]);\n\n const createCacheGroup = (world: ContentScriptWorld) => ({\n minChunks: 2,\n name: getContentChunkName(world),\n test: (\n module: Parameters<typeof isContentModule>[0],\n context: Parameters<typeof isContentModule>[1]\n ) => {\n const normalModule = module as NormalModule;\n\n if (!normalModule.resource) {\n return false;\n }\n\n return isContentModule(module, context);\n },\n chunks: (chunk: Chunk): boolean =>\n chunk.name !== undefined &&\n entryOptionsByName.has(chunk.name) &&\n getEntryWorld(chunk.name) === world,\n enforce: false,\n reuseExistingChunk: false,\n priority: 20,\n });\n\n return {\n plugins: [\n entrypointPlugin,\n new ChunkLoaderPlugin({\n test: entry =>\n entryOptionsByName.has(entry) && getEntryWorld(entry) === ContentScriptWorld.Isolated,\n }),\n new IsolatedStylesPlugin({\n cssFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),\n cssChunkFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),\n property: ContentScriptStylesRuntimeProperty,\n test: entry => {\n const options = entryOptionsByName.get(entry);\n return options !== undefined && hasIsolatedTarget(options);\n },\n validate: (entry, files) => validateContentStyles(entry, entryOptionsByName.get(entry), files),\n }),\n ...basePlugins,\n ],\n optimization: config.commonChunks\n ? {\n splitChunks: {\n cacheGroups: {\n adnbnContentIsolated: createCacheGroup(ContentScriptWorld.Isolated),\n adnbnContentMain: createCacheGroup(ContentScriptWorld.Main),\n },\n },\n }\n : undefined,\n } satisfies RspackConfig;\n },\n manifest: async ({manifest}) => {\n // prettier-ignore\n manifest\n .setContentScripts(await contentManager.manifest())\n .appendHostPermissions(await contentManager.hostPermissions())\n .appendOptionalHostPermissions(await contentManager.optionalHostPermissions())\n .appendPermissions(await contentManager.permissions())\n .appendOptionalPermissions(await contentManager.optionalPermissions());\n },\n };\n});\n"],"mappings":"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","names":["entries"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/content/index.ts"],"sourcesContent":["import type {Chunk, Configuration as RspackConfig, NormalModule, Plugins} from \"@rspack/core\";\n\nimport ContentManager from \"./ContentManager\";\nimport Content from \"./Content\";\nimport Relay from \"./Relay\";\nimport RelayDeclaration from \"./RelayDeclaration\";\nimport {hasIsolatedTarget} from \"./utils\";\nimport {createPageAccessRequirements, getContentChunkName, validateContentStyles} from \"./bundler\";\nimport {createRelayModule, RelayModuleName} from \"./relay-module\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {PageFinder} from \"@cli/entrypoint/index.js\";\nimport {getContentLayer} from \"@cli/bundler/layers\";\n\nimport {\n appFilenameResolver,\n ChunkLoaderPlugin,\n EntrypointPlugin,\n onlyViaTopLevelEntry,\n IsolatedStylesPlugin,\n ResourceAccessPlugin,\n GenerateModulePlugin,\n} from \"@cli/bundler\";\n\nimport {Command} from \"@typing/app\";\nimport {ContentScriptStylesRuntimeProperty, ContentScriptWorld} from \"@typing/content\";\n\nexport default definePlugin(() => {\n let contentProvider: Content;\n let relayProvider: Relay;\n let contentManager: ContentManager;\n let relayDeclaration: RelayDeclaration;\n\n return {\n name: \"adnbn:content\",\n startup: ({config}) => {\n contentProvider = new Content(config);\n relayProvider = new Relay(config);\n\n // prettier-ignore\n contentManager = new ContentManager(config)\n .provider(contentProvider)\n .provider(relayProvider);\n\n relayDeclaration = new RelayDeclaration(config);\n },\n content: () => contentProvider.files(),\n relay: () => relayProvider.files(),\n bundler: async ({config}) => {\n relayDeclaration.dictionary(await relayProvider.dictionary()).build();\n\n let entryOptionsByName = await contentManager.entryOptions();\n\n const getModules = async () => ({\n [RelayModuleName]: createRelayModule(await relayProvider.getOptionsMap()),\n });\n const modulePlugin = new GenerateModulePlugin(await getModules());\n\n if (config.command === Command.Watch) {\n modulePlugin.watch(getModules);\n }\n\n const basePlugins: Plugins = [\n modulePlugin,\n new ResourceAccessPlugin({\n requirements: async () => {\n if (\n !Array.from(entryOptionsByName.values()).some(\n options => options.isolation?.page !== undefined\n )\n ) {\n return [];\n }\n\n const views = await new PageFinder(config).views();\n const pages = new Map(Array.from(views.values(), view => [view.alias, view.filename]));\n return createPageAccessRequirements(entryOptionsByName, pages);\n },\n }),\n ];\n\n if (await contentManager.empty()) {\n if (config.debug) {\n console.warn(\"Content script or relay entries not found\");\n }\n\n return {plugins: basePlugins};\n }\n\n const entries = await contentManager.entries();\n const getEntryWorld = (name: string): ContentScriptWorld => {\n const options = entryOptionsByName.get(name);\n\n if (!options) {\n throw new Error(`Execution world for content entrypoint \"${name}\" is unavailable`);\n }\n\n return options.world === ContentScriptWorld.Main\n ? ContentScriptWorld.Main\n : ContentScriptWorld.Isolated;\n };\n\n // prettier-ignore\n const entrypointPlugin = EntrypointPlugin.from(entries)\n .virtual(file => contentManager.virtual(file))\n .entryOptions(name => {\n const world = getEntryWorld(name);\n\n return {\n // MAIN cannot resolve an installed extension URL without crossing contexts.\n // ISOLATED keeps physical async chunks and resolves them through the extension API.\n asyncChunks: world === ContentScriptWorld.Isolated,\n layer: getContentLayer(world),\n publicPath: \"\",\n };\n });\n\n if (config.command === Command.Watch) {\n entrypointPlugin.watch(async () => {\n contentManager.clear();\n\n relayDeclaration.dictionary(await relayProvider.dictionary()).build();\n\n const entries = await contentManager.entries();\n entryOptionsByName = await contentManager.entryOptions();\n\n return entries;\n });\n }\n\n const isContentModule = onlyViaTopLevelEntry([\"content\", \"relay\"]);\n\n const createCacheGroup = (world: ContentScriptWorld) => ({\n minChunks: 2,\n name: getContentChunkName(world),\n test: (\n module: Parameters<typeof isContentModule>[0],\n context: Parameters<typeof isContentModule>[1]\n ) => {\n const normalModule = module as NormalModule;\n\n if (!normalModule.resource) {\n return false;\n }\n\n return isContentModule(module, context);\n },\n chunks: (chunk: Chunk): boolean =>\n chunk.name !== undefined &&\n entryOptionsByName.has(chunk.name) &&\n getEntryWorld(chunk.name) === world,\n enforce: false,\n reuseExistingChunk: false,\n priority: 20,\n });\n\n return {\n plugins: [\n entrypointPlugin,\n new ChunkLoaderPlugin({\n test: entry =>\n entryOptionsByName.has(entry) && getEntryWorld(entry) === ContentScriptWorld.Isolated,\n }),\n new IsolatedStylesPlugin({\n cssFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),\n cssChunkFilename: appFilenameResolver(config.app, config.cssFilename, config.cssDir),\n property: ContentScriptStylesRuntimeProperty,\n test: entry => {\n const options = entryOptionsByName.get(entry);\n return options !== undefined && hasIsolatedTarget(options);\n },\n validate: (entry, files) => validateContentStyles(entry, entryOptionsByName.get(entry), files),\n }),\n ...basePlugins,\n ],\n optimization: config.commonChunks\n ? {\n splitChunks: {\n cacheGroups: {\n adnbnContentIsolated: createCacheGroup(ContentScriptWorld.Isolated),\n adnbnContentMain: createCacheGroup(ContentScriptWorld.Main),\n },\n },\n }\n : undefined,\n } satisfies RspackConfig;\n },\n manifest: async ({manifest}) => {\n // prettier-ignore\n manifest\n .setContentScripts(await contentManager.manifest())\n .appendHostPermissions(await contentManager.hostPermissions())\n .appendOptionalHostPermissions(await contentManager.optionalHostPermissions())\n .appendPermissions(await contentManager.permissions())\n .appendOptionalPermissions(await contentManager.optionalPermissions());\n },\n };\n});\n"],"mappings":"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","names":["entries"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ContentScriptEntrypointOptions } from "../../../types/content.js";
|
|
1
|
+
import { ContentScriptEntrypointOptions } from "../../../types/content/index.js";
|
|
2
2
|
import { EntrypointFile } from "../../../types/entrypoint.js";
|
|
3
3
|
import { ManifestOptionalPermissions, ManifestPermissions } from "../../../types/manifest.js";
|
|
4
4
|
export interface ContentItem<O extends ContentScriptEntrypointOptions> {
|