adnbn 0.12.0 → 0.14.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/dist/cli/builders/manifest/ManifestBase.d.ts +4 -1
- package/dist/cli/builders/manifest/ManifestBase.js +14 -0
- package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
- package/dist/cli/bundler/layers.d.ts +3 -3
- package/dist/cli/bundler/layers.js +6 -7
- package/dist/cli/bundler/layers.js.map +1 -1
- package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js +42 -14
- package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js.map +1 -1
- package/dist/cli/bundler/plugins/build-assets-map/normalize.d.ts +3 -0
- package/dist/cli/bundler/plugins/build-assets-map/normalize.js +24 -0
- package/dist/cli/bundler/plugins/build-assets-map/normalize.js.map +1 -0
- package/dist/cli/bundler/plugins/build-assets-map/templates/runtime.template.d.ts +2 -0
- package/dist/cli/bundler/plugins/build-assets-map/templates.d.ts +9 -0
- package/dist/cli/bundler/plugins/build-assets-map/templates.js +32 -0
- package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js +11 -0
- package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js.map +1 -1
- package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.d.ts +1 -1
- package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js +38 -13
- package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js.map +1 -1
- package/dist/cli/bundler/plugins/isolated-styles/chunks.d.ts +5 -1
- package/dist/cli/bundler/plugins/isolated-styles/chunks.js +17 -16
- package/dist/cli/bundler/plugins/isolated-styles/chunks.js.map +1 -1
- package/dist/cli/bundler/plugins/isolated-styles/split-chunks.d.ts +4 -0
- package/dist/cli/bundler/plugins/isolated-styles/split-chunks.js +51 -0
- package/dist/cli/bundler/plugins/isolated-styles/split-chunks.js.map +1 -0
- package/dist/cli/bundler/plugins/isolated-styles/templates.js +36 -6
- package/dist/cli/entrypoint/finder/AbstractOverrideFinder.d.ts +15 -0
- package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js +20 -0
- package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/AbstractViewFinder.d.ts +6 -1
- package/dist/cli/entrypoint/finder/AbstractViewFinder.js +15 -0
- package/dist/cli/entrypoint/finder/AbstractViewFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/BookmarksFinder.d.ts +9 -0
- package/dist/cli/entrypoint/finder/BookmarksFinder.js +18 -0
- package/dist/cli/entrypoint/finder/BookmarksFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/CommandFinder.d.ts +4 -0
- package/dist/cli/entrypoint/finder/CommandFinder.js +20 -6
- package/dist/cli/entrypoint/finder/CommandFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/HistoryFinder.d.ts +9 -0
- package/dist/cli/entrypoint/finder/HistoryFinder.js +18 -0
- package/dist/cli/entrypoint/finder/HistoryFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/NewtabFinder.d.ts +9 -0
- package/dist/cli/entrypoint/finder/NewtabFinder.js +18 -0
- package/dist/cli/entrypoint/finder/NewtabFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/OptionsFinder.d.ts +2 -2
- package/dist/cli/entrypoint/finder/OptionsFinder.js +2 -2
- package/dist/cli/entrypoint/finder/OptionsFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/PageFinder.js +1 -1
- package/dist/cli/entrypoint/finder/PageFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/PopupFinder.d.ts +2 -2
- package/dist/cli/entrypoint/finder/PopupFinder.js +2 -2
- package/dist/cli/entrypoint/finder/PopupFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/SidebarFinder.d.ts +2 -2
- package/dist/cli/entrypoint/finder/SidebarFinder.js +2 -2
- package/dist/cli/entrypoint/finder/SidebarFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/ViewCspFinder.d.ts +2 -3
- package/dist/cli/entrypoint/finder/ViewCspFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/ViewPermissionsFinder.d.ts +22 -0
- package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js +43 -0
- package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/index.d.ts +5 -0
- package/dist/cli/entrypoint/finder/index.js +50 -40
- package/dist/cli/entrypoint/finder/index.js.map +1 -1
- package/dist/cli/entrypoint/name/NameGenerator.d.ts +2 -0
- package/dist/cli/entrypoint/name/NameGenerator.js +5 -1
- package/dist/cli/entrypoint/name/NameGenerator.js.map +1 -1
- package/dist/cli/entrypoint/parser/AbstractOverrideParser.d.ts +9 -0
- package/dist/cli/entrypoint/parser/AbstractOverrideParser.js +11 -0
- package/dist/cli/entrypoint/parser/AbstractOverrideParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/BackgroundParser.js +3 -6
- package/dist/cli/entrypoint/parser/BackgroundParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/BookmarksParser.d.ts +5 -0
- package/dist/cli/entrypoint/parser/BookmarksParser.js +10 -0
- package/dist/cli/entrypoint/parser/BookmarksParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/HistoryParser.d.ts +5 -0
- package/dist/cli/entrypoint/parser/HistoryParser.js +10 -0
- package/dist/cli/entrypoint/parser/HistoryParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/NewtabParser.d.ts +5 -0
- package/dist/cli/entrypoint/parser/NewtabParser.js +10 -0
- package/dist/cli/entrypoint/parser/NewtabParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/OptionsParser.js +2 -1
- package/dist/cli/entrypoint/parser/OptionsParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/PopupParser.js +2 -1
- package/dist/cli/entrypoint/parser/PopupParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/SidebarParser.js +2 -1
- package/dist/cli/entrypoint/parser/SidebarParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/ViewCspParser.d.ts +1 -1
- package/dist/cli/entrypoint/parser/ViewParser.d.ts +1 -1243
- package/dist/cli/entrypoint/parser/ViewParser.js +2 -72
- package/dist/cli/entrypoint/parser/ViewParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/index.d.ts +4 -0
- package/dist/cli/entrypoint/parser/index.js +28 -20
- package/dist/cli/entrypoint/parser/index.js.map +1 -1
- package/dist/cli/entrypoint/parser/schemas/html.d.ts +903 -0
- package/dist/cli/entrypoint/parser/schemas/html.js +64 -0
- package/dist/cli/entrypoint/parser/schemas/html.js.map +1 -0
- package/dist/cli/entrypoint/parser/schemas/permissions.d.ts +23 -0
- package/dist/cli/entrypoint/parser/schemas/permissions.js +11 -0
- package/dist/cli/entrypoint/parser/schemas/permissions.js.map +1 -0
- package/dist/cli/plugins/content/bundler.d.ts +0 -3
- package/dist/cli/plugins/content/bundler.js +4 -20
- package/dist/cli/plugins/content/bundler.js.map +1 -1
- package/dist/cli/plugins/content/index.js +2 -3
- package/dist/cli/plugins/content/index.js.map +1 -1
- package/dist/cli/plugins/index.d.ts +1 -0
- package/dist/cli/plugins/index.js +22 -20
- package/dist/cli/plugins/index.js.map +1 -1
- package/dist/cli/plugins/locale/Locale.js +5 -2
- package/dist/cli/plugins/locale/Locale.js.map +1 -1
- package/dist/cli/plugins/options/index.js +1 -1
- package/dist/cli/plugins/options/index.js.map +1 -1
- package/dist/cli/plugins/override/Override.d.ts +31 -0
- package/dist/cli/plugins/override/Override.js +112 -0
- package/dist/cli/plugins/override/Override.js.map +1 -0
- package/dist/cli/plugins/override/index.d.ts +2 -0
- package/dist/cli/plugins/override/index.js +48 -0
- package/dist/cli/plugins/override/index.js.map +1 -0
- package/dist/cli/plugins/popup/index.js +1 -1
- package/dist/cli/plugins/popup/index.js.map +1 -1
- package/dist/cli/plugins/sidebar/index.js +1 -2
- package/dist/cli/plugins/sidebar/index.js.map +1 -1
- package/dist/cli/plugins/style/index.d.ts +1 -2
- package/dist/cli/plugins/style/index.js +19 -30
- package/dist/cli/plugins/style/index.js.map +1 -1
- package/dist/cli/plugins/view/View.d.ts +1 -1
- package/dist/cli/plugins/view/View.js +2 -10
- package/dist/cli/plugins/view/View.js.map +1 -1
- package/dist/cli/plugins/view/index.js +10 -1
- package/dist/cli/plugins/view/index.js.map +1 -1
- package/dist/cli/resolvers/config.js +3 -2
- package/dist/cli/resolvers/config.js.map +1 -1
- package/dist/cli/virtual/index.js +14 -17
- package/dist/cli/virtual/virtual.d.ts +7 -127
- package/dist/entry/background/Builder.js +1 -1
- package/dist/entry/background/Builder.js.map +1 -1
- package/dist/entry/background/index.d.ts +1 -1
- package/dist/entry/background/index.js +3 -2
- package/dist/entry/background/index.js.map +1 -1
- package/dist/entry/background/resolvers/definition.d.ts +5 -1
- package/dist/entry/background/resolvers/definition.js +15 -4
- package/dist/entry/background/resolvers/definition.js.map +1 -1
- package/dist/entry/command/Builder.js +1 -1
- package/dist/entry/command/Builder.js.map +1 -1
- package/dist/entry/command/index.d.ts +1 -1
- package/dist/entry/command/index.js +3 -2
- package/dist/entry/command/index.js.map +1 -1
- package/dist/entry/command/resolvers/definition.d.ts +6 -2
- package/dist/entry/command/resolvers/definition.js +14 -4
- package/dist/entry/command/resolvers/definition.js.map +1 -1
- package/dist/entry/content/adapters/react/Builder.d.ts +4 -2
- package/dist/entry/content/adapters/react/Builder.js +13 -5
- package/dist/entry/content/adapters/react/Builder.js.map +1 -1
- package/dist/entry/content/adapters/react/Node.js +13 -8
- package/dist/entry/content/adapters/react/Node.js.map +1 -1
- package/dist/entry/content/adapters/react/definition.d.ts +2 -0
- package/dist/entry/content/adapters/react/definition.js +13 -0
- package/dist/entry/content/adapters/react/definition.js.map +1 -0
- package/dist/entry/content/adapters/react/index.d.ts +1 -1
- package/dist/entry/content/adapters/react/index.js +1 -1
- package/dist/entry/content/adapters/react/index.js.map +1 -1
- package/dist/entry/content/adapters/vanilla/Builder.d.ts +4 -2
- package/dist/entry/content/adapters/vanilla/Builder.js +14 -5
- package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
- package/dist/entry/content/adapters/vanilla/Node.js +3 -5
- package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
- package/dist/entry/content/adapters/vanilla/definition.d.ts +2 -0
- package/dist/entry/content/adapters/vanilla/definition.js +9 -0
- package/dist/entry/content/adapters/vanilla/definition.js.map +1 -0
- package/dist/entry/content/adapters/vanilla/index.d.ts +1 -1
- package/dist/entry/content/adapters/vanilla/index.js +1 -1
- package/dist/entry/content/adapters/vanilla/index.js.map +1 -1
- package/dist/entry/content/lifecycle/Builder.d.ts +10 -4
- package/dist/entry/content/lifecycle/Builder.js +107 -69
- package/dist/entry/content/lifecycle/Builder.js.map +1 -1
- package/dist/entry/content/lifecycle/MountBuilder.d.ts +6 -3
- package/dist/entry/content/lifecycle/MountBuilder.js +32 -16
- package/dist/entry/content/lifecycle/MountBuilder.js.map +1 -1
- package/dist/entry/content/lifecycle/context/ContainerRegistry.d.ts +7 -0
- package/dist/entry/content/lifecycle/context/ContainerRegistry.js +45 -0
- package/dist/entry/content/lifecycle/context/ContainerRegistry.js.map +1 -0
- package/dist/entry/content/lifecycle/context/Context.d.ts +6 -3
- package/dist/entry/content/lifecycle/context/Context.js +21 -6
- package/dist/entry/content/lifecycle/context/Context.js.map +1 -1
- package/dist/entry/content/lifecycle/context/ManagedContext.d.ts +4 -1
- package/dist/entry/content/lifecycle/context/ManagedContext.js +7 -0
- package/dist/entry/content/lifecycle/context/ManagedContext.js.map +1 -1
- package/dist/entry/content/lifecycle/context/index.d.ts +1 -0
- package/dist/entry/content/lifecycle/context/index.js +6 -4
- package/dist/entry/content/lifecycle/context/index.js.map +1 -1
- package/dist/entry/content/lifecycle/markers/AttributeMarker.js +3 -1
- package/dist/entry/content/lifecycle/markers/AttributeMarker.js.map +1 -1
- package/dist/entry/content/lifecycle/nodes/EventNode.d.ts +4 -2
- package/dist/entry/content/lifecycle/nodes/EventNode.js +7 -2
- package/dist/entry/content/lifecycle/nodes/EventNode.js.map +1 -1
- package/dist/entry/content/lifecycle/nodes/FrameNode.d.ts +2 -1
- package/dist/entry/content/lifecycle/nodes/FrameNode.js +3 -0
- package/dist/entry/content/lifecycle/nodes/FrameNode.js.map +1 -1
- package/dist/entry/content/lifecycle/nodes/MarkerNode.d.ts +1 -1
- package/dist/entry/content/lifecycle/nodes/MarkerNode.js.map +1 -1
- package/dist/entry/content/lifecycle/nodes/MountNode.d.ts +7 -3
- package/dist/entry/content/lifecycle/nodes/MountNode.js +47 -12
- package/dist/entry/content/lifecycle/nodes/MountNode.js.map +1 -1
- package/dist/entry/content/lifecycle/nodes/Node.d.ts +1 -1
- package/dist/entry/content/lifecycle/nodes/Node.js.map +1 -1
- package/dist/entry/content/lifecycle/nodes/RenderNode.d.ts +13 -4
- package/dist/entry/content/lifecycle/nodes/RenderNode.js +71 -6
- package/dist/entry/content/lifecycle/nodes/RenderNode.js.map +1 -1
- package/dist/entry/content/lifecycle/nodes/ShadowNode.d.ts +2 -1
- package/dist/entry/content/lifecycle/nodes/ShadowNode.js +3 -0
- package/dist/entry/content/lifecycle/nodes/ShadowNode.js.map +1 -1
- package/dist/entry/content/lifecycle/types.d.ts +28 -0
- package/dist/entry/content/resolvers/watch.d.ts +1 -1
- package/dist/entry/content/resolvers/watch.js +29 -14
- package/dist/entry/content/resolvers/watch.js.map +1 -1
- package/dist/entry/core/react.d.ts +6 -0
- package/dist/entry/core/react.js +16 -0
- package/dist/entry/core/react.js.map +1 -0
- package/dist/entry/core/render.d.ts +5 -0
- package/dist/entry/core/render.js +16 -0
- package/dist/entry/core/render.js.map +1 -0
- package/dist/entry/offscreen/Builder.d.ts +6 -7
- package/dist/entry/offscreen/Builder.js +12 -13
- package/dist/entry/offscreen/Builder.js.map +1 -1
- package/dist/entry/offscreen/TransportBuilder.d.ts +1 -1
- package/dist/entry/offscreen/TransportBuilder.js +4 -3
- package/dist/entry/offscreen/TransportBuilder.js.map +1 -1
- package/dist/entry/offscreen/index.d.ts +5 -2
- package/dist/entry/offscreen/index.js +8 -2
- package/dist/entry/offscreen/index.js.map +1 -1
- package/dist/entry/offscreen/resolvers/definition.d.ts +4 -0
- package/dist/entry/offscreen/resolvers/definition.js +8 -0
- package/dist/entry/offscreen/resolvers/definition.js.map +1 -0
- package/dist/entry/relay/index.js.map +1 -1
- package/dist/entry/relay/resolvers/definition.d.ts +1 -1
- package/dist/entry/relay/resolvers/definition.js +2 -10
- package/dist/entry/relay/resolvers/definition.js.map +1 -1
- package/dist/entry/sandbox/Builder.d.ts +6 -7
- package/dist/entry/sandbox/Builder.js +8 -12
- package/dist/entry/sandbox/Builder.js.map +1 -1
- package/dist/entry/sandbox/TransportBuilder.d.ts +1 -1
- package/dist/entry/sandbox/TransportBuilder.js +4 -3
- package/dist/entry/sandbox/TransportBuilder.js.map +1 -1
- package/dist/entry/sandbox/index.d.ts +7 -2
- package/dist/entry/sandbox/index.js +10 -4
- package/dist/entry/sandbox/index.js.map +1 -1
- package/dist/entry/sandbox/resolvers/definition.d.ts +4 -0
- package/dist/entry/sandbox/resolvers/definition.js +8 -0
- package/dist/entry/sandbox/resolvers/definition.js.map +1 -0
- package/dist/entry/service/index.d.ts +1 -0
- package/dist/entry/service/index.js +3 -1
- package/dist/entry/service/index.js.map +1 -1
- package/dist/entry/service/resolvers/definition.d.ts +3 -0
- package/dist/entry/service/resolvers/definition.js +8 -0
- package/dist/entry/service/resolvers/definition.js.map +1 -0
- package/dist/entry/transport/AbstractBuilder.js +1 -1
- package/dist/entry/transport/AbstractBuilder.js.map +1 -1
- package/dist/entry/transport/resolvers/definition.d.ts +7 -5
- package/dist/entry/transport/resolvers/definition.js +15 -4
- package/dist/entry/transport/resolvers/definition.js.map +1 -1
- package/dist/entry/view/{core/Builder.d.ts → Builder.d.ts} +9 -4
- package/dist/entry/view/Builder.js +62 -0
- package/dist/entry/view/Builder.js.map +1 -0
- package/dist/entry/view/adapters/react/Builder.d.ts +6 -7
- package/dist/entry/view/adapters/react/Builder.js +20 -23
- package/dist/entry/view/adapters/react/Builder.js.map +1 -1
- package/dist/entry/view/adapters/react/definition.d.ts +2 -0
- package/dist/entry/view/adapters/react/definition.js +13 -0
- package/dist/entry/view/adapters/react/definition.js.map +1 -0
- package/dist/entry/view/adapters/react/index.d.ts +2 -1
- package/dist/entry/view/adapters/react/index.js +3 -1
- package/dist/entry/view/adapters/react/index.js.map +1 -1
- package/dist/entry/view/adapters/vanilla/Builder.d.ts +5 -6
- package/dist/entry/view/adapters/vanilla/Builder.js +14 -25
- package/dist/entry/view/adapters/vanilla/Builder.js.map +1 -1
- package/dist/entry/view/adapters/vanilla/definition.d.ts +2 -0
- package/dist/entry/view/adapters/vanilla/definition.js +9 -0
- package/dist/entry/view/adapters/vanilla/definition.js.map +1 -0
- package/dist/entry/view/adapters/vanilla/index.d.ts +2 -1
- package/dist/entry/view/adapters/vanilla/index.js +3 -1
- package/dist/entry/view/adapters/vanilla/index.js.map +1 -1
- package/dist/entry/view/{core/resolvers → resolvers}/container.d.ts +1 -1
- package/dist/entry/view/resolvers/container.js.map +1 -0
- package/dist/entry/view/resolvers/definition.d.ts +3 -0
- package/dist/entry/view/resolvers/definition.js +18 -0
- package/dist/entry/view/resolvers/definition.js.map +1 -0
- package/dist/main/index.d.ts +2 -0
- package/dist/main/index.js +2 -0
- package/dist/main/index.js.map +1 -1
- package/dist/main/override.d.ts +5 -0
- package/dist/main/override.js +15 -0
- package/dist/main/override.js.map +1 -0
- package/dist/main/permissions.d.ts +1 -0
- package/dist/main/permissions.js +1 -0
- package/dist/main/view.d.ts +1 -1
- package/dist/shared/locale/index.d.ts +1 -1
- package/dist/shared/locale/index.js +3 -1
- package/dist/shared/locale/index.js.map +1 -1
- package/dist/shared/locale/messages.d.ts +4 -0
- package/dist/shared/locale/messages.js +12 -0
- package/dist/shared/locale/messages.js.map +1 -1
- package/dist/types/background.d.ts +2 -8
- package/dist/types/background.js.map +1 -1
- package/dist/types/content/common.d.ts +8 -0
- package/dist/types/content/common.js.map +1 -1
- package/dist/types/content/definition.d.ts +5 -0
- package/dist/types/entrypoint.d.ts +5 -1
- package/dist/types/entrypoint.js +3 -0
- package/dist/types/entrypoint.js.map +1 -1
- package/dist/types/locale.d.ts +3 -0
- package/dist/types/locale.js.map +1 -1
- package/dist/types/manifest.d.ts +20 -2
- package/dist/types/manifest.js.map +1 -1
- package/dist/types/offscreen.d.ts +2 -2
- package/dist/types/offscreen.js.map +1 -1
- package/dist/types/options.d.ts +3 -2
- package/dist/types/override.d.ts +22 -0
- package/dist/types/override.js +1 -0
- package/dist/types/override.js.map +1 -0
- package/dist/types/page.d.ts +1 -1
- package/dist/types/permissions.d.ts +39 -0
- package/dist/types/permissions.js +1 -0
- package/dist/types/permissions.js.map +1 -0
- package/dist/types/plugin.d.ts +4 -1
- package/dist/types/popup.d.ts +3 -2
- package/dist/types/sandbox.d.ts +2 -2
- package/dist/types/sandbox.js.map +1 -1
- package/dist/types/sidebar.d.ts +3 -2
- package/dist/types/sidebar.js.map +1 -1
- package/dist/types/view/adapters/index.d.ts +2 -0
- package/dist/types/view/adapters/index.js +1 -0
- package/dist/types/view/adapters/index.js.map +1 -0
- package/dist/types/view/adapters/react.d.ts +4 -0
- package/dist/types/view/adapters/react.js +1 -0
- package/dist/types/view/adapters/react.js.map +1 -0
- package/dist/types/view/adapters/vanilla.d.ts +1 -0
- package/dist/types/view/adapters/vanilla.js +1 -0
- package/dist/types/view/adapters/vanilla.js.map +1 -0
- package/dist/types/{view.d.ts → view/common.d.ts} +2 -14
- package/dist/types/view/common.js +1 -0
- package/dist/types/view/common.js.map +1 -0
- package/dist/types/view/definition.d.ts +15 -0
- package/dist/types/view/definition.js +1 -0
- package/dist/types/view/definition.js.map +1 -0
- package/dist/types/view/index.d.ts +4 -0
- package/dist/types/view/index.js +1 -0
- package/dist/types/view/index.js.map +1 -0
- package/dist/types/view/render.d.ts +7 -0
- package/dist/types/view/render.js +1 -0
- package/dist/types/view/render.js.map +1 -0
- package/package.json +1 -3
- package/types/client.d.ts +3 -3
- package/dist/cli/plugins/style/types.d.ts +0 -5
- package/dist/entry/background/resolvers/index.d.ts +0 -1
- package/dist/entry/background/resolvers/index.js +0 -2
- package/dist/entry/background/resolvers/index.js.map +0 -1
- package/dist/entry/command/resolvers/index.d.ts +0 -1
- package/dist/entry/command/resolvers/index.js +0 -2
- package/dist/entry/command/resolvers/index.js.map +0 -1
- package/dist/entry/content/adapters/react/resolvers/definition.d.ts +0 -2
- package/dist/entry/content/adapters/react/resolvers/definition.js +0 -12
- package/dist/entry/content/adapters/react/resolvers/definition.js.map +0 -1
- package/dist/entry/content/adapters/react/resolvers/render.d.ts +0 -2
- package/dist/entry/content/adapters/react/resolvers/render.js +0 -9
- package/dist/entry/content/adapters/react/resolvers/render.js.map +0 -1
- package/dist/entry/content/adapters/vanilla/resolvers/definition.d.ts +0 -2
- package/dist/entry/content/adapters/vanilla/resolvers/definition.js +0 -9
- package/dist/entry/content/adapters/vanilla/resolvers/definition.js.map +0 -1
- package/dist/entry/content/adapters/vanilla/resolvers/render.d.ts +0 -3
- package/dist/entry/content/adapters/vanilla/resolvers/render.js +0 -15
- package/dist/entry/content/adapters/vanilla/resolvers/render.js.map +0 -1
- package/dist/entry/content/resolvers/index.d.ts +0 -6
- package/dist/entry/content/resolvers/index.js +0 -7
- package/dist/entry/content/resolvers/index.js.map +0 -1
- package/dist/entry/transport/index.d.ts +0 -1
- package/dist/entry/transport/index.js +0 -2
- package/dist/entry/transport/index.js.map +0 -1
- package/dist/entry/transport/resolvers/index.d.ts +0 -1
- package/dist/entry/transport/resolvers/index.js +0 -2
- package/dist/entry/transport/resolvers/index.js.map +0 -1
- package/dist/entry/view/adapters/react/resolvers/render.d.ts +0 -2
- package/dist/entry/view/adapters/react/resolvers/render.js +0 -11
- package/dist/entry/view/adapters/react/resolvers/render.js.map +0 -1
- package/dist/entry/view/core/Builder.js +0 -35
- package/dist/entry/view/core/Builder.js.map +0 -1
- package/dist/entry/view/core/resolvers/container.js.map +0 -1
- package/dist/entry/view/core/resolvers/definition.d.ts +0 -3
- package/dist/entry/view/core/resolvers/definition.js +0 -12
- package/dist/entry/view/core/resolvers/definition.js.map +0 -1
- package/dist/entry/view/core/resolvers/render.d.ts +0 -3
- package/dist/entry/view/core/resolvers/render.js +0 -18
- package/dist/entry/view/core/resolvers/render.js.map +0 -1
- package/dist/entry/view/index.d.ts +0 -1
- package/dist/entry/view/index.js +0 -2
- package/dist/entry/view/index.js.map +0 -1
- package/dist/types/view.js +0 -1
- /package/dist/cli/virtual/{transport.d.ts → service.d.ts} +0 -0
- /package/dist/{cli/plugins/style → entry/content/lifecycle}/types.js +0 -0
- /package/dist/{cli/plugins/style → entry/content/lifecycle}/types.js.map +0 -0
- /package/dist/entry/view/{core/resolvers → resolvers}/container.js +0 -0
- /package/dist/{types/view.js.map → main/permissions.js.map} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type CspBuilder } from "../csp/index.js";
|
|
2
|
-
import { CoreManifest, Manifest, ManifestAccessibleResource, ManifestAccessibleResources, ManifestBackground, ManifestBuilder, ManifestCommands, ManifestContentScripts, ManifestDependencies, ManifestHostPermissions, ManifestIcons, ManifestIncognito, ManifestOptionalPermissions, ManifestOptions, ManifestPermissions, ManifestPopup, ManifestSandbox, ManifestSandboxes, ManifestSidebar, ManifestVersion, OptionalManifest } from "../../../types/manifest.js";
|
|
2
|
+
import { CoreManifest, Manifest, ManifestAccessibleResource, ManifestAccessibleResources, ManifestBackground, ManifestBuilder, ManifestCommands, ManifestContentScripts, ManifestDependencies, ManifestHostPermissions, ManifestIcons, ManifestIncognito, ManifestOptionalPermissions, ManifestOptions, ManifestOverride, ManifestPermissions, ManifestPopup, ManifestSandbox, ManifestSandboxes, ManifestSidebar, ManifestVersion, OptionalManifest } from "../../../types/manifest.js";
|
|
3
3
|
import { CspConfig } from "../../../types/csp.js";
|
|
4
4
|
import { SandboxCspConfig } from "../../../types/sandbox.js";
|
|
5
5
|
import { Browser, BrowserSpecific } from "../../../types/browser.js";
|
|
@@ -28,6 +28,7 @@ export default abstract class<T extends CoreManifest> implements ManifestBuilder
|
|
|
28
28
|
protected popup?: ManifestPopup;
|
|
29
29
|
protected sidebar?: ManifestSidebar;
|
|
30
30
|
protected options?: ManifestOptions;
|
|
31
|
+
protected urlOverride?: ManifestOverride;
|
|
31
32
|
protected sandboxes: ManifestSandboxes;
|
|
32
33
|
protected sandboxCsp: CspBuilder<SandboxCspConfig>;
|
|
33
34
|
protected csp: CspBuilder<CspConfig>;
|
|
@@ -75,6 +76,7 @@ export default abstract class<T extends CoreManifest> implements ManifestBuilder
|
|
|
75
76
|
setPopup(popup?: ManifestPopup): this;
|
|
76
77
|
setSidebar(sidebar?: ManifestSidebar): this;
|
|
77
78
|
setOptions(options?: ManifestOptions): this;
|
|
79
|
+
setOverride(override?: ManifestOverride): this;
|
|
78
80
|
addSandbox(sandbox: ManifestSandbox): this;
|
|
79
81
|
appendSandboxes(sandboxes: Iterable<ManifestSandbox>): this;
|
|
80
82
|
addSandboxCsp(csp: SandboxCspConfig): this;
|
|
@@ -117,6 +119,7 @@ export default abstract class<T extends CoreManifest> implements ManifestBuilder
|
|
|
117
119
|
protected buildContentScripts(): Partial<CoreManifest> | undefined;
|
|
118
120
|
protected buildSidebar(): Partial<CoreManifest> | undefined;
|
|
119
121
|
protected buildOptions(): Partial<CoreManifest>;
|
|
122
|
+
protected buildOverride(): Partial<CoreManifest>;
|
|
120
123
|
protected buildBrowserSpecificSettings(): Partial<Manifest> | undefined;
|
|
121
124
|
protected buildRaw(): Partial<Manifest> | undefined;
|
|
122
125
|
protected getSandboxes(): string[];
|
|
@@ -32,6 +32,7 @@ class ManifestBase_default {
|
|
|
32
32
|
popup;
|
|
33
33
|
sidebar;
|
|
34
34
|
options;
|
|
35
|
+
urlOverride;
|
|
35
36
|
sandboxes = /* @__PURE__ */ new Set();
|
|
36
37
|
sandboxCsp = new SandboxCsp();
|
|
37
38
|
csp = new Csp();
|
|
@@ -170,6 +171,10 @@ class ManifestBase_default {
|
|
|
170
171
|
this.options = options;
|
|
171
172
|
return this;
|
|
172
173
|
}
|
|
174
|
+
setOverride(override) {
|
|
175
|
+
this.urlOverride = override;
|
|
176
|
+
return this;
|
|
177
|
+
}
|
|
173
178
|
addSandbox(sandbox) {
|
|
174
179
|
this.sandboxes.add(sandbox);
|
|
175
180
|
return this;
|
|
@@ -296,6 +301,7 @@ class ManifestBase_default {
|
|
|
296
301
|
this.buildAction(),
|
|
297
302
|
this.buildSidebar(),
|
|
298
303
|
this.buildOptions(),
|
|
304
|
+
this.buildOverride(),
|
|
299
305
|
this.buildContentScripts(),
|
|
300
306
|
this.buildPermissions(),
|
|
301
307
|
this.buildOptionalPermissions(),
|
|
@@ -480,6 +486,13 @@ class ManifestBase_default {
|
|
|
480
486
|
}
|
|
481
487
|
return _.pick(this.combinedRaws, ["options_ui", "options_page"]);
|
|
482
488
|
}
|
|
489
|
+
buildOverride() {
|
|
490
|
+
if (this.urlOverride) {
|
|
491
|
+
const { page, path } = this.urlOverride;
|
|
492
|
+
return { chrome_url_overrides: { [page]: path } };
|
|
493
|
+
}
|
|
494
|
+
return _.pick(this.combinedRaws, ["chrome_url_overrides"]);
|
|
495
|
+
}
|
|
483
496
|
buildBrowserSpecificSettings() {
|
|
484
497
|
var _a, _b, _c, _d, _e, _f, _g, _h, _i;
|
|
485
498
|
const optionalSettings = this.combinedRaws.browser_specific_settings;
|
|
@@ -549,6 +562,7 @@ class ManifestBase_default {
|
|
|
549
562
|
sidebar,
|
|
550
563
|
options_ui,
|
|
551
564
|
options_page,
|
|
565
|
+
chrome_url_overrides,
|
|
552
566
|
content_scripts,
|
|
553
567
|
permissions,
|
|
554
568
|
optional_permissions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/builders/manifest/ManifestBase.ts"],"sourcesContent":["import _ from \"lodash\";\n\nimport {Csp, type CspBuilder, SandboxCsp} from \"../csp\";\n\nimport {mergeWebAccessibleResources, normalizeDataCollectionPermissions} from \"./utils\";\n\nimport {\n CoreManifest,\n Manifest,\n ManifestAccessibleResource,\n ManifestAccessibleResources,\n ManifestBackground,\n ManifestBuilder,\n ManifestCommands,\n ManifestContentScripts,\n ManifestDependencies,\n ManifestHostPermissions,\n ManifestIcons,\n ManifestIncognito,\n ManifestOptionalPermissions,\n ManifestOptions,\n ManifestPermissions,\n ManifestPopup,\n ManifestSandbox,\n ManifestSandboxes,\n ManifestSidebar,\n ManifestVersion,\n OptionalManifest,\n} from \"@typing/manifest\";\nimport {CspConfig} from \"@typing/csp\";\nimport {SandboxCspConfig} from \"@typing/sandbox\";\nimport {Browser, BrowserSpecific} from \"@typing/browser\";\nimport {Language} from \"@typing/locale\";\nimport {CommandExecuteActionName} from \"@typing/command\";\nimport {DefaultIconGroupName} from \"@typing/icon\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\nimport {ContentScriptMatches} from \"@typing/content\";\n\ntype ManifestV3 = chrome.runtime.ManifestV3;\ntype ManifestPermission = chrome.runtime.ManifestPermission;\ntype ManifestOptionalPermission = chrome.runtime.ManifestOptionalPermission;\ntype CoreManifestIcons = chrome.runtime.ManifestIcons;\n\nexport class ManifestError extends Error {\n public constructor(message: string) {\n super(\"Manifest: \" + message);\n }\n}\n\nexport default abstract class<T extends CoreManifest> implements ManifestBuilder<T> {\n protected name?: string;\n protected author?: string;\n protected homepage?: string;\n protected shortName?: string;\n protected description?: string;\n protected minimumVersion?: string;\n protected version?: string;\n protected icon?: string;\n protected incognito?: ManifestIncognito;\n protected specific?: BrowserSpecific;\n protected locale?: Language;\n protected icons: ManifestIcons = new Map();\n protected background?: ManifestBackground;\n protected popup?: ManifestPopup;\n protected sidebar?: ManifestSidebar;\n protected options?: ManifestOptions;\n protected sandboxes: ManifestSandboxes = new Set();\n protected sandboxCsp: CspBuilder<SandboxCspConfig> = new SandboxCsp();\n protected csp: CspBuilder<CspConfig> = new Csp();\n protected commands: ManifestCommands = new Set();\n protected contentScripts: ManifestContentScripts = new Set();\n protected dependencies: ManifestDependencies = new Map();\n protected permissions: ManifestPermissions = new Set();\n protected optionalPermissions: ManifestOptionalPermissions = new Set();\n protected hostPermissions: ManifestHostPermissions = new Set();\n protected optionalHostPermissions: ManifestHostPermissions = new Set();\n protected accessibleResources: ManifestAccessibleResources = new Set();\n\n protected raws: Set<OptionalManifest> = new Set();\n protected mergedRaws?: OptionalManifest;\n\n public abstract getManifestVersion(): ManifestVersion;\n\n protected abstract buildAction(): Partial<T> | undefined;\n\n protected abstract buildPermissions(): Partial<T> | undefined;\n\n protected abstract buildOptionalPermissions(): Partial<T> | undefined;\n\n protected abstract buildHostPermissions(): Partial<T> | undefined;\n\n protected abstract buildOptionalHostPermissions(): Partial<T> | undefined;\n\n protected abstract buildWebAccessibleResources(): Partial<T> | undefined;\n\n protected abstract buildSandbox(): Partial<T> | undefined;\n\n protected abstract buildCsp(): Partial<T> | undefined;\n\n protected get combinedRaws(): OptionalManifest {\n return (this.mergedRaws ??= Array.from(this.raws).reduce((result, raw) => {\n return _.mergeWith(result, raw, (objValue, srcValue) => {\n if (Array.isArray(objValue) && Array.isArray(srcValue)) {\n return objValue.concat(srcValue);\n }\n });\n }, {}));\n }\n\n protected get combinedPermissions(): ManifestPermissions {\n const result = new Set(this.permissions);\n\n if (this.combinedRaws.permissions) {\n for (const permission of this.combinedRaws.permissions) {\n result.add(permission);\n }\n }\n\n return result;\n }\n\n protected get combinedOptionalPermissions(): ManifestOptionalPermissions {\n const result = new Set(this.optionalPermissions);\n\n if (this.combinedRaws.optional_permissions) {\n for (const permission of this.combinedRaws.optional_permissions) {\n result.add(permission);\n }\n }\n\n return result;\n }\n\n protected get combinedHostPermissions(): ManifestHostPermissions {\n const result = new Set(this.hostPermissions);\n\n if (this.combinedRaws.host_permissions) {\n for (const permission of this.combinedRaws.host_permissions) {\n result.add(permission);\n }\n }\n\n return result;\n }\n\n protected get combinedOptionalHostPermissions(): ManifestHostPermissions {\n const result = new Set(this.optionalHostPermissions);\n if (this.combinedRaws.optional_host_permissions) {\n for (const permission of this.combinedRaws.optional_host_permissions) {\n result.add(permission);\n }\n }\n return result;\n }\n\n protected constructor(protected readonly browser: Browser = Browser.Chrome) {}\n\n public setAuthor(author?: string): this {\n this.author = author;\n\n return this;\n }\n\n public setHomepage(homepage?: string): this {\n this.homepage = homepage;\n\n return this;\n }\n\n public setName(name: string): this {\n this.name = name;\n\n return this;\n }\n\n public setShortName(shortName?: string): this {\n this.shortName = shortName;\n\n return this;\n }\n\n public setDescription(description?: string): this {\n this.description = description;\n\n return this;\n }\n\n public setVersion(version?: string): this {\n this.version = version;\n\n return this;\n }\n\n public setMinimumVersion(minimumVersion?: string): this {\n this.minimumVersion = minimumVersion;\n\n return this;\n }\n\n public setLocale(lang?: Language): this {\n this.locale = lang;\n\n return this;\n }\n\n public setIncognito(incognito?: ManifestIncognito): this {\n this.incognito = incognito;\n\n return this;\n }\n\n public setSpecific(settings?: BrowserSpecific): this {\n this.specific = settings;\n\n return this;\n }\n\n public mergeSpecific(settings: BrowserSpecific): this {\n this.specific = _.mergeWith({}, this.specific, settings, (objValue, srcValue) => {\n if (_.isArray(objValue) && _.isArray(srcValue)) {\n return _.union(objValue, srcValue);\n }\n });\n\n return this;\n }\n\n public setIcons(icons?: ManifestIcons): this {\n this.icons = icons || new Map();\n\n return this;\n }\n\n public setIcon(icon?: string): this {\n this.icon = icon;\n\n return this;\n }\n\n public setBackground(background?: ManifestBackground): this {\n this.background = background;\n\n return this;\n }\n\n public setCommands(commands?: ManifestCommands): this {\n this.commands = commands || new Set();\n\n return this;\n }\n\n public setContentScripts(contentScripts?: ManifestContentScripts): this {\n this.contentScripts = contentScripts || new Set();\n\n return this;\n }\n\n public setPopup(popup?: ManifestPopup): this {\n this.popup = popup;\n\n return this;\n }\n\n public setSidebar(sidebar?: ManifestSidebar): this {\n this.sidebar = sidebar;\n\n return this;\n }\n\n public setOptions(options?: ManifestOptions): this {\n this.options = options;\n\n return this;\n }\n\n public addSandbox(sandbox: ManifestSandbox): this {\n this.sandboxes.add(sandbox);\n\n return this;\n }\n\n public appendSandboxes(sandboxes: Iterable<ManifestSandbox>): this {\n for (const sandbox of sandboxes) {\n this.addSandbox(sandbox);\n }\n\n return this;\n }\n\n public addSandboxCsp(csp: SandboxCspConfig): this {\n this.sandboxCsp.add(csp);\n\n return this;\n }\n\n public appendSandboxCsp(csps: Iterable<SandboxCspConfig>): this {\n for (const csp of csps) {\n this.addSandboxCsp(csp);\n }\n\n return this;\n }\n\n public addCsp(csp: CspConfig): this {\n this.csp.add(csp);\n\n return this;\n }\n\n public appendCsp(csps: Iterable<CspConfig>): this {\n for (const csp of csps) {\n this.addCsp(csp);\n }\n\n return this;\n }\n\n public setDependencies(dependencies: ManifestDependencies): this {\n this.dependencies = dependencies;\n\n return this;\n }\n\n public addPermission(permission: ManifestPermission): this {\n this.permissions.add(permission);\n\n return this;\n }\n\n public setPermissions(permissions: ManifestPermissions): this {\n this.permissions = permissions;\n\n return this;\n }\n\n public appendPermissions(permissions: ManifestPermissions): this {\n for (const permission of permissions) {\n this.permissions.add(permission);\n }\n\n return this;\n }\n\n public addOptionalPermission(permission: ManifestOptionalPermission): this {\n this.optionalPermissions.add(permission);\n\n return this;\n }\n\n public setOptionalPermissions(permissions: ManifestOptionalPermissions): this {\n this.optionalPermissions = permissions;\n\n return this;\n }\n\n public appendOptionalPermissions(permissions: ManifestOptionalPermissions): this {\n for (const permission of permissions) {\n this.optionalPermissions.add(permission);\n }\n\n return this;\n }\n\n public addHostPermission(permission: string): this {\n this.hostPermissions.add(permission);\n\n return this;\n }\n\n public setHostPermissions(permissions: ManifestHostPermissions): this {\n this.hostPermissions = permissions;\n\n return this;\n }\n\n public appendHostPermissions(permissions: ManifestHostPermissions): this {\n for (const permission of permissions) {\n this.hostPermissions.add(permission);\n }\n\n return this;\n }\n\n public addOptionalHostPermission(permission: string): this {\n this.optionalHostPermissions.add(permission);\n\n return this;\n }\n\n public setOptionalHostPermissions(permissions: ManifestHostPermissions): this {\n this.optionalHostPermissions = permissions;\n\n return this;\n }\n\n public appendOptionalHostPermissions(permissions: ManifestHostPermissions): this {\n for (const permission of permissions) {\n this.optionalHostPermissions.add(permission);\n }\n\n return this;\n }\n\n public addAccessibleResource(accessibleResource: ManifestAccessibleResource): this {\n this.accessibleResources.add(accessibleResource);\n\n return this;\n }\n\n public appendAccessibleResources(accessibleResources: ManifestAccessibleResources): this {\n for (const accessibleResource of accessibleResources) {\n this.accessibleResources.add(accessibleResource);\n }\n\n return this;\n }\n\n public setAccessibleResource(accessibleResources: ManifestAccessibleResources): this {\n this.accessibleResources = accessibleResources;\n\n return this;\n }\n\n public raw(manifest: OptionalManifest): this {\n this.raws.add(manifest);\n\n return this;\n }\n\n public build(): T {\n const manifest = this.merge<Manifest>(\n this.buildName(),\n this.buildShortName(),\n this.buildDescription(),\n this.buildVersion(),\n this.buildManifestVersion(),\n this.buildMinimumChromeVersion(),\n this.buildAuthor(),\n this.buildHomepageUrl(),\n this.buildIncognito(),\n this.buildLocale(),\n this.buildIcons(),\n this.buildBackground(),\n this.buildCommands(),\n this.buildAction(),\n this.buildSidebar(),\n this.buildOptions(),\n this.buildContentScripts(),\n this.buildPermissions(),\n this.buildOptionalPermissions(),\n this.buildHostPermissions(),\n this.buildOptionalHostPermissions(),\n this.buildWebAccessibleResources(),\n this.buildSandbox(),\n this.buildCsp(),\n this.buildBrowserSpecificSettings(),\n this.buildRaw()\n ) as T;\n\n return manifest;\n }\n\n public get(): T {\n return this.build();\n }\n\n private merge<T extends CoreManifest>(...sources: Array<Partial<T> | undefined>): T {\n sources = sources.filter(source => source !== undefined);\n\n if (sources.length === 0) {\n throw new ManifestError(\"No sources provided for manifest merging\");\n }\n\n const result = {} as T;\n\n for (const source of sources) {\n Object.assign(result, source);\n }\n\n return result;\n }\n\n protected buildName(): Partial<CoreManifest> {\n return {name: this.name || this.combinedRaws.name || \"__MSG_app_name__\"};\n }\n\n protected buildShortName(): Partial<CoreManifest> | undefined {\n const shortName = this.shortName || this.combinedRaws.short_name;\n return shortName ? {short_name: shortName} : undefined;\n }\n\n protected buildDescription(): Partial<CoreManifest> | undefined {\n const description = this.description || this.combinedRaws.description;\n return description ? {description} : undefined;\n }\n\n protected buildVersion(): Partial<CoreManifest> {\n return {version: this.version || this.combinedRaws.version || \"0.0.0\"};\n }\n\n protected buildManifestVersion(): Partial<CoreManifest> {\n return {manifest_version: this.getManifestVersion()};\n }\n\n protected buildMinimumChromeVersion(): Partial<CoreManifest> | undefined {\n const version = this.minimumVersion || this.combinedRaws.minimum_chrome_version;\n return version ? {minimum_chrome_version: version} : undefined;\n }\n\n protected buildAuthor(): Partial<CoreManifest> | undefined {\n const author = this.author || this.combinedRaws.author;\n return author ? {author} : undefined;\n }\n\n protected buildHomepageUrl(): Partial<CoreManifest> | undefined {\n const homepage = this.homepage || this.combinedRaws.homepage_url;\n return homepage ? {homepage_url: homepage} : undefined;\n }\n\n protected buildIncognito(): Partial<CoreManifest> | undefined {\n const incognito = this.incognito || this.combinedRaws.incognito;\n return incognito !== undefined ? {incognito} : undefined;\n }\n\n protected buildLocale(): Partial<CoreManifest> | undefined {\n const defaultLocale = this.locale || this.combinedRaws.default_locale;\n return defaultLocale ? {default_locale: defaultLocale} : undefined;\n }\n\n protected buildIcons(): Partial<CoreManifest> | undefined {\n const icons = {\n ...this.combinedRaws.icons,\n ...this.getIconsByName(this.icon),\n };\n return Object.keys(icons).length ? {icons} : undefined;\n }\n\n protected buildBackground(): Partial<CoreManifest> | undefined {\n if (this.background) {\n const {entry, persistent} = this.background;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Background entry \"${entry}\" not found in dependencies`);\n }\n\n if (dependencies.js.size === 0) {\n throw new ManifestError(`Background entry \"${entry}\" has no dependencies`);\n }\n\n const scripts = Array.from(dependencies.js);\n\n return {background: {scripts, persistent: persistent || undefined}};\n }\n }\n\n protected buildCommands(): Partial<CoreManifest> | undefined {\n const internalCommands = Array.from(this.commands).reduce(\n (commands, command) => {\n return {\n ...commands,\n [command.name]: {\n suggested_key: {\n default: command?.defaultKey,\n windows: command?.windowsKey,\n mac: command?.macKey,\n chromeos: command?.chromeosKey,\n linux: command?.linuxKey,\n },\n description:\n command?.description ||\n (command.name === CommandExecuteActionName ? undefined : command.name),\n global: command?.global,\n },\n };\n },\n {} as CoreManifest[\"commands\"]\n );\n\n const commands = _.merge(this.combinedRaws.commands, internalCommands);\n\n if (Object.keys(commands).length) return {commands};\n }\n\n protected buildContentScripts(): Partial<CoreManifest> | undefined {\n const contentScripts: ManifestV3[\"content_scripts\"] = [];\n\n if (this.combinedRaws.content_scripts) {\n contentScripts.push(...this.combinedRaws.content_scripts);\n }\n\n if (this.contentScripts.size > 0) {\n for (const script of this.contentScripts.values()) {\n const {\n entry,\n matches,\n excludeMatches,\n allFrames,\n runAt,\n excludeGlobs,\n includeGlobs,\n world,\n matchAboutBlank,\n matchOriginAsFallback,\n } = script;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Content script entry \"${entry}\" not found in dependencies`);\n }\n\n const js = Array.from(dependencies.js);\n const css = Array.from(dependencies.css);\n\n if (js.length === 0 && css.length === 0) {\n throw new ManifestError(`Content script and style entry \"${entry}\" not found in dependencies`);\n }\n\n contentScripts.push({\n matches,\n exclude_matches: excludeMatches,\n js: js.length > 0 ? js : undefined,\n css: css.length > 0 ? css : undefined,\n all_frames: allFrames,\n run_at: runAt,\n exclude_globs: excludeGlobs,\n include_globs: includeGlobs,\n match_about_blank: matchAboutBlank,\n //@ts-ignore\n match_origin_as_fallback: matchOriginAsFallback,\n world,\n });\n }\n }\n\n return contentScripts.length ? {content_scripts: contentScripts} : undefined;\n }\n\n protected buildSidebar(): Partial<CoreManifest> | undefined {\n if (!this.sidebar) {\n const sidebarAction = this.combinedRaws.sidebar_action;\n const sidePanel = this.combinedRaws.side_panel;\n\n if (SidebarAlternativeBrowsers.has(this.browser)) {\n if (sidebarAction) return {sidebar_action: sidebarAction};\n } else {\n if (sidePanel) return {side_panel: sidePanel};\n }\n\n return;\n }\n\n const {path, icon, title} = this.sidebar;\n\n const commonProps = {\n open_at_install: this.browser === Browser.Firefox ? false : undefined,\n default_title: title || this.name,\n default_icon: this.getIconsByName(icon),\n };\n\n return SidebarAlternativeBrowsers.has(this.browser)\n ? {sidebar_action: {...commonProps, default_panel: path}}\n : {side_panel: {...commonProps, default_path: path}};\n }\n\n protected buildOptions(): Partial<CoreManifest> {\n if (this.options) {\n return {\n options_ui: {\n page: this.options.path,\n open_in_tab: this.options.openInTab ?? true,\n },\n };\n }\n\n return _.pick(this.combinedRaws, [\"options_ui\", \"options_page\"]);\n }\n\n protected buildBrowserSpecificSettings(): Partial<Manifest> | undefined {\n const optionalSettings = this.combinedRaws.browser_specific_settings;\n const {safari, gecko, geckoAndroid} = this.specific || {};\n\n if (this.browser === Browser.Firefox) {\n const id = gecko?.id || optionalSettings?.gecko?.id;\n const updateUrl = gecko?.updateUrl || optionalSettings?.gecko?.update_url;\n const geckoMinVersion = gecko?.strictMinVersion || optionalSettings?.gecko?.strict_min_version;\n const geckoMaxVersion = gecko?.strictMaxVersion || optionalSettings?.gecko?.strict_max_version;\n const dataCollectionPermissions = _.mergeWith(\n optionalSettings?.gecko?.data_collection_permissions,\n gecko?.dataCollectionPermissions,\n (objValue, srcValue) => {\n if (Array.isArray(objValue) && Array.isArray(srcValue)) {\n return objValue.concat(srcValue);\n }\n }\n );\n\n const androidMinVersion =\n geckoAndroid?.strictMinVersion || optionalSettings?.gecko_android?.strict_min_version;\n const androidMaxVersion =\n geckoAndroid?.strictMaxVersion || optionalSettings?.gecko_android?.strict_max_version;\n\n return {\n browser_specific_settings: {\n gecko: {\n id,\n update_url: updateUrl,\n strict_min_version: geckoMinVersion,\n strict_max_version: geckoMaxVersion,\n data_collection_permissions: normalizeDataCollectionPermissions(dataCollectionPermissions),\n },\n gecko_android:\n _.isEmpty(androidMinVersion) && _.isEmpty(androidMaxVersion)\n ? undefined\n : {\n strict_min_version: androidMinVersion,\n strict_max_version: androidMaxVersion,\n },\n },\n };\n } else if (this.browser === Browser.Safari) {\n const minVersion = safari?.strictMinVersion || optionalSettings?.safari?.strict_min_version;\n const maxVersion = safari?.strictMaxVersion || optionalSettings?.safari?.strict_max_version;\n\n if (_.isEmpty(minVersion) && _.isEmpty(maxVersion)) {\n return;\n }\n\n return {\n browser_specific_settings: {\n safari: {\n strict_min_version: minVersion,\n strict_max_version: maxVersion,\n },\n },\n };\n }\n }\n\n protected buildRaw(): Partial<Manifest> | undefined {\n const {\n name,\n short_name,\n description,\n version,\n minimum_chrome_version,\n author,\n homepage_url,\n incognito,\n default_locale,\n icons,\n background,\n commands,\n action,\n sidebar,\n options_ui,\n options_page,\n content_scripts,\n permissions,\n optional_permissions,\n host_permissions,\n optional_host_permissions,\n web_accessible_resources,\n sandbox,\n content_security_policy,\n browser_specific_settings,\n ...other\n } = this.combinedRaws;\n\n return other;\n }\n\n protected getSandboxes(): string[] {\n const sandboxes = new Set<string>();\n const rawSandbox = this.combinedRaws.sandbox as {pages?: string[]} | undefined;\n\n for (const sandbox of rawSandbox?.pages || []) {\n sandboxes.add(sandbox);\n }\n\n for (const sandbox of this.sandboxes) {\n sandboxes.add(sandbox);\n }\n\n return Array.from(sandboxes);\n }\n\n protected hasExecuteActionCommand(): boolean {\n const optionalCommands = this.combinedRaws.commands;\n\n const inInternalCommands =\n this.commands.size > 0 && Array.from(this.commands).some(({name}) => name === CommandExecuteActionName);\n const inOptionalCommands = optionalCommands && Object.keys(optionalCommands).includes(CommandExecuteActionName);\n return inInternalCommands || inOptionalCommands;\n }\n\n protected getIconsByName(name?: string): CoreManifestIcons | undefined {\n if (this.icons.size === 0) {\n return;\n }\n\n if (!name) {\n name = DefaultIconGroupName;\n }\n\n const icons = this.icons.get(name) || this.icons.get(DefaultIconGroupName) || this.icons.values().next().value;\n\n if (icons) {\n return Object.fromEntries(icons);\n }\n }\n\n public getWebAccessibleResources(): ManifestAccessibleResource[] {\n const resources: ManifestAccessibleResource[] = [...this.accessibleResources];\n\n for (const contentScript of this.contentScripts.values()) {\n const dependencies = this.dependencies.get(contentScript.entry);\n const assets = dependencies?.assets;\n\n if (assets && assets.size > 0) {\n resources.push({\n resources: Array.from(assets),\n matches: contentScript.matches || ContentScriptMatches,\n });\n }\n }\n\n for (const resource of this.combinedRaws.web_accessible_resources || []) {\n if (typeof resource === \"string\") {\n // MV2 resource lists grant access to all sites and extensions.\n resources.push({resources: [resource], matches: [\"<all_urls>\"], extensionIds: [\"*\"]});\n } else {\n resources.push({\n resources: resource.resources,\n matches: resource.matches,\n extensionIds: resource.extension_ids,\n useDynamicUrl: resource.use_dynamic_url,\n });\n }\n }\n\n return mergeWebAccessibleResources(resources);\n }\n}\n"],"mappings":"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","names":["commands"]}
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/builders/manifest/ManifestBase.ts"],"sourcesContent":["import _ from \"lodash\";\n\nimport {Csp, type CspBuilder, SandboxCsp} from \"../csp\";\n\nimport {mergeWebAccessibleResources, normalizeDataCollectionPermissions} from \"./utils\";\n\nimport {\n CoreManifest,\n Manifest,\n ManifestAccessibleResource,\n ManifestAccessibleResources,\n ManifestBackground,\n ManifestBuilder,\n ManifestCommands,\n ManifestContentScripts,\n ManifestDependencies,\n ManifestHostPermissions,\n ManifestIcons,\n ManifestIncognito,\n ManifestOptionalPermissions,\n ManifestOptions,\n ManifestOverride,\n ManifestPermissions,\n ManifestPopup,\n ManifestSandbox,\n ManifestSandboxes,\n ManifestSidebar,\n ManifestVersion,\n OptionalManifest,\n} from \"@typing/manifest\";\nimport {CspConfig} from \"@typing/csp\";\nimport {SandboxCspConfig} from \"@typing/sandbox\";\nimport {Browser, BrowserSpecific} from \"@typing/browser\";\nimport {Language} from \"@typing/locale\";\nimport {CommandExecuteActionName} from \"@typing/command\";\nimport {DefaultIconGroupName} from \"@typing/icon\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\nimport {ContentScriptMatches} from \"@typing/content\";\n\ntype ManifestV3 = chrome.runtime.ManifestV3;\ntype ManifestPermission = chrome.runtime.ManifestPermission;\ntype ManifestOptionalPermission = chrome.runtime.ManifestOptionalPermission;\ntype CoreManifestIcons = chrome.runtime.ManifestIcons;\n\nexport class ManifestError extends Error {\n public constructor(message: string) {\n super(\"Manifest: \" + message);\n }\n}\n\nexport default abstract class<T extends CoreManifest> implements ManifestBuilder<T> {\n protected name?: string;\n protected author?: string;\n protected homepage?: string;\n protected shortName?: string;\n protected description?: string;\n protected minimumVersion?: string;\n protected version?: string;\n protected icon?: string;\n protected incognito?: ManifestIncognito;\n protected specific?: BrowserSpecific;\n protected locale?: Language;\n protected icons: ManifestIcons = new Map();\n protected background?: ManifestBackground;\n protected popup?: ManifestPopup;\n protected sidebar?: ManifestSidebar;\n protected options?: ManifestOptions;\n protected urlOverride?: ManifestOverride;\n protected sandboxes: ManifestSandboxes = new Set();\n protected sandboxCsp: CspBuilder<SandboxCspConfig> = new SandboxCsp();\n protected csp: CspBuilder<CspConfig> = new Csp();\n protected commands: ManifestCommands = new Set();\n protected contentScripts: ManifestContentScripts = new Set();\n protected dependencies: ManifestDependencies = new Map();\n protected permissions: ManifestPermissions = new Set();\n protected optionalPermissions: ManifestOptionalPermissions = new Set();\n protected hostPermissions: ManifestHostPermissions = new Set();\n protected optionalHostPermissions: ManifestHostPermissions = new Set();\n protected accessibleResources: ManifestAccessibleResources = new Set();\n\n protected raws: Set<OptionalManifest> = new Set();\n protected mergedRaws?: OptionalManifest;\n\n public abstract getManifestVersion(): ManifestVersion;\n\n protected abstract buildAction(): Partial<T> | undefined;\n\n protected abstract buildPermissions(): Partial<T> | undefined;\n\n protected abstract buildOptionalPermissions(): Partial<T> | undefined;\n\n protected abstract buildHostPermissions(): Partial<T> | undefined;\n\n protected abstract buildOptionalHostPermissions(): Partial<T> | undefined;\n\n protected abstract buildWebAccessibleResources(): Partial<T> | undefined;\n\n protected abstract buildSandbox(): Partial<T> | undefined;\n\n protected abstract buildCsp(): Partial<T> | undefined;\n\n protected get combinedRaws(): OptionalManifest {\n return (this.mergedRaws ??= Array.from(this.raws).reduce((result, raw) => {\n return _.mergeWith(result, raw, (objValue, srcValue) => {\n if (Array.isArray(objValue) && Array.isArray(srcValue)) {\n return objValue.concat(srcValue);\n }\n });\n }, {}));\n }\n\n protected get combinedPermissions(): ManifestPermissions {\n const result = new Set(this.permissions);\n\n if (this.combinedRaws.permissions) {\n for (const permission of this.combinedRaws.permissions) {\n result.add(permission);\n }\n }\n\n return result;\n }\n\n protected get combinedOptionalPermissions(): ManifestOptionalPermissions {\n const result = new Set(this.optionalPermissions);\n\n if (this.combinedRaws.optional_permissions) {\n for (const permission of this.combinedRaws.optional_permissions) {\n result.add(permission);\n }\n }\n\n return result;\n }\n\n protected get combinedHostPermissions(): ManifestHostPermissions {\n const result = new Set(this.hostPermissions);\n\n if (this.combinedRaws.host_permissions) {\n for (const permission of this.combinedRaws.host_permissions) {\n result.add(permission);\n }\n }\n\n return result;\n }\n\n protected get combinedOptionalHostPermissions(): ManifestHostPermissions {\n const result = new Set(this.optionalHostPermissions);\n if (this.combinedRaws.optional_host_permissions) {\n for (const permission of this.combinedRaws.optional_host_permissions) {\n result.add(permission);\n }\n }\n return result;\n }\n\n protected constructor(protected readonly browser: Browser = Browser.Chrome) {}\n\n public setAuthor(author?: string): this {\n this.author = author;\n\n return this;\n }\n\n public setHomepage(homepage?: string): this {\n this.homepage = homepage;\n\n return this;\n }\n\n public setName(name: string): this {\n this.name = name;\n\n return this;\n }\n\n public setShortName(shortName?: string): this {\n this.shortName = shortName;\n\n return this;\n }\n\n public setDescription(description?: string): this {\n this.description = description;\n\n return this;\n }\n\n public setVersion(version?: string): this {\n this.version = version;\n\n return this;\n }\n\n public setMinimumVersion(minimumVersion?: string): this {\n this.minimumVersion = minimumVersion;\n\n return this;\n }\n\n public setLocale(lang?: Language): this {\n this.locale = lang;\n\n return this;\n }\n\n public setIncognito(incognito?: ManifestIncognito): this {\n this.incognito = incognito;\n\n return this;\n }\n\n public setSpecific(settings?: BrowserSpecific): this {\n this.specific = settings;\n\n return this;\n }\n\n public mergeSpecific(settings: BrowserSpecific): this {\n this.specific = _.mergeWith({}, this.specific, settings, (objValue, srcValue) => {\n if (_.isArray(objValue) && _.isArray(srcValue)) {\n return _.union(objValue, srcValue);\n }\n });\n\n return this;\n }\n\n public setIcons(icons?: ManifestIcons): this {\n this.icons = icons || new Map();\n\n return this;\n }\n\n public setIcon(icon?: string): this {\n this.icon = icon;\n\n return this;\n }\n\n public setBackground(background?: ManifestBackground): this {\n this.background = background;\n\n return this;\n }\n\n public setCommands(commands?: ManifestCommands): this {\n this.commands = commands || new Set();\n\n return this;\n }\n\n public setContentScripts(contentScripts?: ManifestContentScripts): this {\n this.contentScripts = contentScripts || new Set();\n\n return this;\n }\n\n public setPopup(popup?: ManifestPopup): this {\n this.popup = popup;\n\n return this;\n }\n\n public setSidebar(sidebar?: ManifestSidebar): this {\n this.sidebar = sidebar;\n\n return this;\n }\n\n public setOptions(options?: ManifestOptions): this {\n this.options = options;\n\n return this;\n }\n\n public setOverride(override?: ManifestOverride): this {\n this.urlOverride = override;\n\n return this;\n }\n\n public addSandbox(sandbox: ManifestSandbox): this {\n this.sandboxes.add(sandbox);\n\n return this;\n }\n\n public appendSandboxes(sandboxes: Iterable<ManifestSandbox>): this {\n for (const sandbox of sandboxes) {\n this.addSandbox(sandbox);\n }\n\n return this;\n }\n\n public addSandboxCsp(csp: SandboxCspConfig): this {\n this.sandboxCsp.add(csp);\n\n return this;\n }\n\n public appendSandboxCsp(csps: Iterable<SandboxCspConfig>): this {\n for (const csp of csps) {\n this.addSandboxCsp(csp);\n }\n\n return this;\n }\n\n public addCsp(csp: CspConfig): this {\n this.csp.add(csp);\n\n return this;\n }\n\n public appendCsp(csps: Iterable<CspConfig>): this {\n for (const csp of csps) {\n this.addCsp(csp);\n }\n\n return this;\n }\n\n public setDependencies(dependencies: ManifestDependencies): this {\n this.dependencies = dependencies;\n\n return this;\n }\n\n public addPermission(permission: ManifestPermission): this {\n this.permissions.add(permission);\n\n return this;\n }\n\n public setPermissions(permissions: ManifestPermissions): this {\n this.permissions = permissions;\n\n return this;\n }\n\n public appendPermissions(permissions: ManifestPermissions): this {\n for (const permission of permissions) {\n this.permissions.add(permission);\n }\n\n return this;\n }\n\n public addOptionalPermission(permission: ManifestOptionalPermission): this {\n this.optionalPermissions.add(permission);\n\n return this;\n }\n\n public setOptionalPermissions(permissions: ManifestOptionalPermissions): this {\n this.optionalPermissions = permissions;\n\n return this;\n }\n\n public appendOptionalPermissions(permissions: ManifestOptionalPermissions): this {\n for (const permission of permissions) {\n this.optionalPermissions.add(permission);\n }\n\n return this;\n }\n\n public addHostPermission(permission: string): this {\n this.hostPermissions.add(permission);\n\n return this;\n }\n\n public setHostPermissions(permissions: ManifestHostPermissions): this {\n this.hostPermissions = permissions;\n\n return this;\n }\n\n public appendHostPermissions(permissions: ManifestHostPermissions): this {\n for (const permission of permissions) {\n this.hostPermissions.add(permission);\n }\n\n return this;\n }\n\n public addOptionalHostPermission(permission: string): this {\n this.optionalHostPermissions.add(permission);\n\n return this;\n }\n\n public setOptionalHostPermissions(permissions: ManifestHostPermissions): this {\n this.optionalHostPermissions = permissions;\n\n return this;\n }\n\n public appendOptionalHostPermissions(permissions: ManifestHostPermissions): this {\n for (const permission of permissions) {\n this.optionalHostPermissions.add(permission);\n }\n\n return this;\n }\n\n public addAccessibleResource(accessibleResource: ManifestAccessibleResource): this {\n this.accessibleResources.add(accessibleResource);\n\n return this;\n }\n\n public appendAccessibleResources(accessibleResources: ManifestAccessibleResources): this {\n for (const accessibleResource of accessibleResources) {\n this.accessibleResources.add(accessibleResource);\n }\n\n return this;\n }\n\n public setAccessibleResource(accessibleResources: ManifestAccessibleResources): this {\n this.accessibleResources = accessibleResources;\n\n return this;\n }\n\n public raw(manifest: OptionalManifest): this {\n this.raws.add(manifest);\n\n return this;\n }\n\n public build(): T {\n const manifest = this.merge<Manifest>(\n this.buildName(),\n this.buildShortName(),\n this.buildDescription(),\n this.buildVersion(),\n this.buildManifestVersion(),\n this.buildMinimumChromeVersion(),\n this.buildAuthor(),\n this.buildHomepageUrl(),\n this.buildIncognito(),\n this.buildLocale(),\n this.buildIcons(),\n this.buildBackground(),\n this.buildCommands(),\n this.buildAction(),\n this.buildSidebar(),\n this.buildOptions(),\n this.buildOverride(),\n this.buildContentScripts(),\n this.buildPermissions(),\n this.buildOptionalPermissions(),\n this.buildHostPermissions(),\n this.buildOptionalHostPermissions(),\n this.buildWebAccessibleResources(),\n this.buildSandbox(),\n this.buildCsp(),\n this.buildBrowserSpecificSettings(),\n this.buildRaw()\n ) as T;\n\n return manifest;\n }\n\n public get(): T {\n return this.build();\n }\n\n private merge<T extends CoreManifest>(...sources: Array<Partial<T> | undefined>): T {\n sources = sources.filter(source => source !== undefined);\n\n if (sources.length === 0) {\n throw new ManifestError(\"No sources provided for manifest merging\");\n }\n\n const result = {} as T;\n\n for (const source of sources) {\n Object.assign(result, source);\n }\n\n return result;\n }\n\n protected buildName(): Partial<CoreManifest> {\n return {name: this.name || this.combinedRaws.name || \"__MSG_app_name__\"};\n }\n\n protected buildShortName(): Partial<CoreManifest> | undefined {\n const shortName = this.shortName || this.combinedRaws.short_name;\n return shortName ? {short_name: shortName} : undefined;\n }\n\n protected buildDescription(): Partial<CoreManifest> | undefined {\n const description = this.description || this.combinedRaws.description;\n return description ? {description} : undefined;\n }\n\n protected buildVersion(): Partial<CoreManifest> {\n return {version: this.version || this.combinedRaws.version || \"0.0.0\"};\n }\n\n protected buildManifestVersion(): Partial<CoreManifest> {\n return {manifest_version: this.getManifestVersion()};\n }\n\n protected buildMinimumChromeVersion(): Partial<CoreManifest> | undefined {\n const version = this.minimumVersion || this.combinedRaws.minimum_chrome_version;\n return version ? {minimum_chrome_version: version} : undefined;\n }\n\n protected buildAuthor(): Partial<CoreManifest> | undefined {\n const author = this.author || this.combinedRaws.author;\n return author ? {author} : undefined;\n }\n\n protected buildHomepageUrl(): Partial<CoreManifest> | undefined {\n const homepage = this.homepage || this.combinedRaws.homepage_url;\n return homepage ? {homepage_url: homepage} : undefined;\n }\n\n protected buildIncognito(): Partial<CoreManifest> | undefined {\n const incognito = this.incognito || this.combinedRaws.incognito;\n return incognito !== undefined ? {incognito} : undefined;\n }\n\n protected buildLocale(): Partial<CoreManifest> | undefined {\n const defaultLocale = this.locale || this.combinedRaws.default_locale;\n return defaultLocale ? {default_locale: defaultLocale} : undefined;\n }\n\n protected buildIcons(): Partial<CoreManifest> | undefined {\n const icons = {\n ...this.combinedRaws.icons,\n ...this.getIconsByName(this.icon),\n };\n return Object.keys(icons).length ? {icons} : undefined;\n }\n\n protected buildBackground(): Partial<CoreManifest> | undefined {\n if (this.background) {\n const {entry, persistent} = this.background;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Background entry \"${entry}\" not found in dependencies`);\n }\n\n if (dependencies.js.size === 0) {\n throw new ManifestError(`Background entry \"${entry}\" has no dependencies`);\n }\n\n const scripts = Array.from(dependencies.js);\n\n return {background: {scripts, persistent: persistent || undefined}};\n }\n }\n\n protected buildCommands(): Partial<CoreManifest> | undefined {\n const internalCommands = Array.from(this.commands).reduce(\n (commands, command) => {\n return {\n ...commands,\n [command.name]: {\n suggested_key: {\n default: command?.defaultKey,\n windows: command?.windowsKey,\n mac: command?.macKey,\n chromeos: command?.chromeosKey,\n linux: command?.linuxKey,\n },\n description:\n command?.description ||\n (command.name === CommandExecuteActionName ? undefined : command.name),\n global: command?.global,\n },\n };\n },\n {} as CoreManifest[\"commands\"]\n );\n\n const commands = _.merge(this.combinedRaws.commands, internalCommands);\n\n if (Object.keys(commands).length) return {commands};\n }\n\n protected buildContentScripts(): Partial<CoreManifest> | undefined {\n const contentScripts: ManifestV3[\"content_scripts\"] = [];\n\n if (this.combinedRaws.content_scripts) {\n contentScripts.push(...this.combinedRaws.content_scripts);\n }\n\n if (this.contentScripts.size > 0) {\n for (const script of this.contentScripts.values()) {\n const {\n entry,\n matches,\n excludeMatches,\n allFrames,\n runAt,\n excludeGlobs,\n includeGlobs,\n world,\n matchAboutBlank,\n matchOriginAsFallback,\n } = script;\n\n const dependencies = this.dependencies.get(entry);\n\n if (!dependencies) {\n throw new ManifestError(`Content script entry \"${entry}\" not found in dependencies`);\n }\n\n const js = Array.from(dependencies.js);\n const css = Array.from(dependencies.css);\n\n if (js.length === 0 && css.length === 0) {\n throw new ManifestError(`Content script and style entry \"${entry}\" not found in dependencies`);\n }\n\n contentScripts.push({\n matches,\n exclude_matches: excludeMatches,\n js: js.length > 0 ? js : undefined,\n css: css.length > 0 ? css : undefined,\n all_frames: allFrames,\n run_at: runAt,\n exclude_globs: excludeGlobs,\n include_globs: includeGlobs,\n match_about_blank: matchAboutBlank,\n //@ts-ignore\n match_origin_as_fallback: matchOriginAsFallback,\n world,\n });\n }\n }\n\n return contentScripts.length ? {content_scripts: contentScripts} : undefined;\n }\n\n protected buildSidebar(): Partial<CoreManifest> | undefined {\n if (!this.sidebar) {\n const sidebarAction = this.combinedRaws.sidebar_action;\n const sidePanel = this.combinedRaws.side_panel;\n\n if (SidebarAlternativeBrowsers.has(this.browser)) {\n if (sidebarAction) return {sidebar_action: sidebarAction};\n } else {\n if (sidePanel) return {side_panel: sidePanel};\n }\n\n return;\n }\n\n const {path, icon, title} = this.sidebar;\n\n const commonProps = {\n open_at_install: this.browser === Browser.Firefox ? false : undefined,\n default_title: title || this.name,\n default_icon: this.getIconsByName(icon),\n };\n\n return SidebarAlternativeBrowsers.has(this.browser)\n ? {sidebar_action: {...commonProps, default_panel: path}}\n : {side_panel: {...commonProps, default_path: path}};\n }\n\n protected buildOptions(): Partial<CoreManifest> {\n if (this.options) {\n return {\n options_ui: {\n page: this.options.path,\n open_in_tab: this.options.openInTab ?? true,\n },\n };\n }\n\n return _.pick(this.combinedRaws, [\"options_ui\", \"options_page\"]);\n }\n\n protected buildOverride(): Partial<CoreManifest> {\n if (this.urlOverride) {\n const {page, path} = this.urlOverride;\n\n return {chrome_url_overrides: {[page]: path}};\n }\n\n return _.pick(this.combinedRaws, [\"chrome_url_overrides\"]);\n }\n\n protected buildBrowserSpecificSettings(): Partial<Manifest> | undefined {\n const optionalSettings = this.combinedRaws.browser_specific_settings;\n const {safari, gecko, geckoAndroid} = this.specific || {};\n\n if (this.browser === Browser.Firefox) {\n const id = gecko?.id || optionalSettings?.gecko?.id;\n const updateUrl = gecko?.updateUrl || optionalSettings?.gecko?.update_url;\n const geckoMinVersion = gecko?.strictMinVersion || optionalSettings?.gecko?.strict_min_version;\n const geckoMaxVersion = gecko?.strictMaxVersion || optionalSettings?.gecko?.strict_max_version;\n const dataCollectionPermissions = _.mergeWith(\n optionalSettings?.gecko?.data_collection_permissions,\n gecko?.dataCollectionPermissions,\n (objValue, srcValue) => {\n if (Array.isArray(objValue) && Array.isArray(srcValue)) {\n return objValue.concat(srcValue);\n }\n }\n );\n\n const androidMinVersion =\n geckoAndroid?.strictMinVersion || optionalSettings?.gecko_android?.strict_min_version;\n const androidMaxVersion =\n geckoAndroid?.strictMaxVersion || optionalSettings?.gecko_android?.strict_max_version;\n\n return {\n browser_specific_settings: {\n gecko: {\n id,\n update_url: updateUrl,\n strict_min_version: geckoMinVersion,\n strict_max_version: geckoMaxVersion,\n data_collection_permissions: normalizeDataCollectionPermissions(dataCollectionPermissions),\n },\n gecko_android:\n _.isEmpty(androidMinVersion) && _.isEmpty(androidMaxVersion)\n ? undefined\n : {\n strict_min_version: androidMinVersion,\n strict_max_version: androidMaxVersion,\n },\n },\n };\n } else if (this.browser === Browser.Safari) {\n const minVersion = safari?.strictMinVersion || optionalSettings?.safari?.strict_min_version;\n const maxVersion = safari?.strictMaxVersion || optionalSettings?.safari?.strict_max_version;\n\n if (_.isEmpty(minVersion) && _.isEmpty(maxVersion)) {\n return;\n }\n\n return {\n browser_specific_settings: {\n safari: {\n strict_min_version: minVersion,\n strict_max_version: maxVersion,\n },\n },\n };\n }\n }\n\n protected buildRaw(): Partial<Manifest> | undefined {\n const {\n name,\n short_name,\n description,\n version,\n minimum_chrome_version,\n author,\n homepage_url,\n incognito,\n default_locale,\n icons,\n background,\n commands,\n action,\n sidebar,\n options_ui,\n options_page,\n chrome_url_overrides,\n content_scripts,\n permissions,\n optional_permissions,\n host_permissions,\n optional_host_permissions,\n web_accessible_resources,\n sandbox,\n content_security_policy,\n browser_specific_settings,\n ...other\n } = this.combinedRaws;\n\n return other;\n }\n\n protected getSandboxes(): string[] {\n const sandboxes = new Set<string>();\n const rawSandbox = this.combinedRaws.sandbox as {pages?: string[]} | undefined;\n\n for (const sandbox of rawSandbox?.pages || []) {\n sandboxes.add(sandbox);\n }\n\n for (const sandbox of this.sandboxes) {\n sandboxes.add(sandbox);\n }\n\n return Array.from(sandboxes);\n }\n\n protected hasExecuteActionCommand(): boolean {\n const optionalCommands = this.combinedRaws.commands;\n\n const inInternalCommands =\n this.commands.size > 0 && Array.from(this.commands).some(({name}) => name === CommandExecuteActionName);\n const inOptionalCommands = optionalCommands && Object.keys(optionalCommands).includes(CommandExecuteActionName);\n return inInternalCommands || inOptionalCommands;\n }\n\n protected getIconsByName(name?: string): CoreManifestIcons | undefined {\n if (this.icons.size === 0) {\n return;\n }\n\n if (!name) {\n name = DefaultIconGroupName;\n }\n\n const icons = this.icons.get(name) || this.icons.get(DefaultIconGroupName) || this.icons.values().next().value;\n\n if (icons) {\n return Object.fromEntries(icons);\n }\n }\n\n public getWebAccessibleResources(): ManifestAccessibleResource[] {\n const resources: ManifestAccessibleResource[] = [...this.accessibleResources];\n\n for (const contentScript of this.contentScripts.values()) {\n const dependencies = this.dependencies.get(contentScript.entry);\n const assets = dependencies?.assets;\n\n if (assets && assets.size > 0) {\n resources.push({\n resources: Array.from(assets),\n matches: contentScript.matches || ContentScriptMatches,\n });\n }\n }\n\n for (const resource of this.combinedRaws.web_accessible_resources || []) {\n if (typeof resource === \"string\") {\n // MV2 resource lists grant access to all sites and extensions.\n resources.push({resources: [resource], matches: [\"<all_urls>\"], extensionIds: [\"*\"]});\n } else {\n resources.push({\n resources: resource.resources,\n matches: resource.matches,\n extensionIds: resource.extension_ids,\n useDynamicUrl: resource.use_dynamic_url,\n });\n }\n }\n\n return mergeWebAccessibleResources(resources);\n }\n}\n"],"mappings":"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","names":["commands"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ContentScriptWorld } from "../../types/content/index.js";
|
|
2
|
-
export declare const
|
|
3
|
-
|
|
2
|
+
export declare const DefaultStylesLayer = "adnbn:css:default";
|
|
3
|
+
export declare const DocumentStylesLayer = "adnbn:css:document";
|
|
4
|
+
/** JavaScript identity depends on the execution world, never on CSS delivery. */
|
|
4
5
|
export declare const getContentLayer: (world: ContentScriptWorld) => string;
|
|
5
|
-
export declare const isContentLayer: (layer: string) => boolean;
|
|
@@ -1,12 +1,11 @@
|
|
|
1
|
-
const
|
|
2
|
-
const
|
|
1
|
+
const DefaultStylesLayer = "adnbn:css:default";
|
|
2
|
+
const DocumentStylesLayer = "adnbn:css:document";
|
|
3
3
|
const getContentLayer = (world) => {
|
|
4
|
-
return
|
|
4
|
+
return `adnbn:content:${world.toLowerCase()}`;
|
|
5
5
|
};
|
|
6
|
-
const isContentLayer = (layer) => layer.startsWith(ContentLayerPrefix);
|
|
7
6
|
export {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
7
|
+
DefaultStylesLayer,
|
|
8
|
+
DocumentStylesLayer,
|
|
9
|
+
getContentLayer
|
|
11
10
|
};
|
|
12
11
|
//# sourceMappingURL=layers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/cli/bundler/layers.ts"],"sourcesContent":["import type {ContentScriptWorld} from \"@typing/content\";\n\
|
|
1
|
+
{"version":3,"sources":["../../../src/cli/bundler/layers.ts"],"sourcesContent":["import type {ContentScriptWorld} from \"@typing/content\";\n\n// CSS classification is independent of the importing JavaScript module's layer.\n// Default styles follow each entry's delivery policy; ?unisolated always targets the document.\nexport const DefaultStylesLayer = \"adnbn:css:default\";\nexport const DocumentStylesLayer = \"adnbn:css:document\";\n\n/** JavaScript identity depends on the execution world, never on CSS delivery. */\nexport const getContentLayer = (world: ContentScriptWorld): string => {\n return `adnbn:content:${world.toLowerCase()}`;\n};\n"],"mappings":"AAIO,MAAM,qBAAqB;AAC3B,MAAM,sBAAsB;AAG5B,MAAM,kBAAkB,CAAC,UAAsC;AAClE,SAAO,iBAAiB,MAAM,YAAY,CAAC;AAC/C;","names":[]}
|
|
@@ -2,6 +2,8 @@ import { Compilation, RuntimeGlobals, RuntimeModule, sources } from "@rspack/cor
|
|
|
2
2
|
import stringify from "json-stringify-deterministic";
|
|
3
3
|
import ts from "typescript";
|
|
4
4
|
import { collectBuildAssets } from "./../../../../cli/bundler/utils/assets.js";
|
|
5
|
+
import { normalizeAssets, normalizeAssetsMap } from "./normalize.js";
|
|
6
|
+
import { renderBuildAssetsRuntime } from "./templates.js";
|
|
5
7
|
import { setCompilationBuildAssets } from "../utils/index.js";
|
|
6
8
|
import {
|
|
7
9
|
CssContentHashType,
|
|
@@ -62,7 +64,9 @@ const chunkHasCss = (compilation, chunk) => {
|
|
|
62
64
|
});
|
|
63
65
|
};
|
|
64
66
|
const chunkHasJavaScript = (compilation, chunk) => {
|
|
65
|
-
if (chunk.hasRuntime())
|
|
67
|
+
if (chunk.hasRuntime()) {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
66
70
|
return Array.from(compilation.chunkGraph.getChunkModulesIterable(chunk)).some((module) => {
|
|
67
71
|
return module.type.startsWith("javascript");
|
|
68
72
|
});
|
|
@@ -94,7 +98,7 @@ const getEntrypointRuntimeAssets = (compilation, name, cssFilename, cssChunkFile
|
|
|
94
98
|
return resolveChunkFilename(
|
|
95
99
|
compilation,
|
|
96
100
|
chunk,
|
|
97
|
-
chunk
|
|
101
|
+
chunk.canBeInitial() ? cssFilename : cssChunkFilename,
|
|
98
102
|
CssContentHashType
|
|
99
103
|
);
|
|
100
104
|
})
|
|
@@ -132,7 +136,7 @@ const entrypointRuntimeUsesFullHash = (compilation, name, cssFilename, cssChunkF
|
|
|
132
136
|
const css = chunkHasCss(compilation, chunk) && filenameRequiresFullHash(
|
|
133
137
|
compilation,
|
|
134
138
|
chunk,
|
|
135
|
-
chunk
|
|
139
|
+
chunk.canBeInitial() ? cssFilename : cssChunkFilename,
|
|
136
140
|
CssContentHashType
|
|
137
141
|
);
|
|
138
142
|
return js || css;
|
|
@@ -209,7 +213,9 @@ const collectRuntimeModuleFingerprints = (compilation) => {
|
|
|
209
213
|
};
|
|
210
214
|
const updateBuildAssetsChunkHashes = (compilation, options, runtimeModuleFingerprints, runtimes) => {
|
|
211
215
|
compilation.hooks.chunkHash.tap(PluginName, (chunk, hash) => {
|
|
212
|
-
if (!runtimes.has(chunk))
|
|
216
|
+
if (!runtimes.has(chunk)) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
213
219
|
const runtimeEntry = Array.from(compilation.entrypoints).find(([, entrypoint]) => {
|
|
214
220
|
return entrypoint.getRuntimeChunk() === chunk;
|
|
215
221
|
});
|
|
@@ -249,7 +255,7 @@ const updateBuildAssetsChunkHashes = (compilation, options, runtimeModuleFingerp
|
|
|
249
255
|
hash.update(`javascript-template:${template}`, "utf8");
|
|
250
256
|
}
|
|
251
257
|
if (chunkHasCss(compilation, referencedChunk)) {
|
|
252
|
-
const cssFilename = referencedChunk
|
|
258
|
+
const cssFilename = referencedChunk.canBeInitial() ? options.cssFilename : options.cssChunkFilename;
|
|
253
259
|
const template = resolveFilenameTemplate(
|
|
254
260
|
compilation,
|
|
255
261
|
referencedChunk,
|
|
@@ -297,7 +303,13 @@ class BuildAssetsRuntimeModule extends RuntimeModule {
|
|
|
297
303
|
generate() {
|
|
298
304
|
const runtime = RuntimeGlobals.require;
|
|
299
305
|
if (this.fullMap) {
|
|
300
|
-
return
|
|
306
|
+
return renderBuildAssetsRuntime({
|
|
307
|
+
require: runtime,
|
|
308
|
+
property: this.property,
|
|
309
|
+
value: FullMapPlaceholder,
|
|
310
|
+
envelope: FullMapEnvelopeKey,
|
|
311
|
+
full: true
|
|
312
|
+
});
|
|
301
313
|
}
|
|
302
314
|
const compilation = this.compilation;
|
|
303
315
|
if (!compilation) {
|
|
@@ -310,7 +322,13 @@ class BuildAssetsRuntimeModule extends RuntimeModule {
|
|
|
310
322
|
this.cssChunkFilename
|
|
311
323
|
);
|
|
312
324
|
const envelope = JSON.stringify({ [CurrentMapEnvelopeKey]: current });
|
|
313
|
-
return
|
|
325
|
+
return renderBuildAssetsRuntime({
|
|
326
|
+
require: runtime,
|
|
327
|
+
property: this.property,
|
|
328
|
+
value: envelope,
|
|
329
|
+
envelope: CurrentMapEnvelopeKey,
|
|
330
|
+
full: false
|
|
331
|
+
});
|
|
314
332
|
}
|
|
315
333
|
}
|
|
316
334
|
const replaceFullMapPlaceholder = (compilation, runtimeFiles, assets) => {
|
|
@@ -375,7 +393,7 @@ const validateEmbeddedMap = (compilation, fullMap, assets) => {
|
|
|
375
393
|
);
|
|
376
394
|
}
|
|
377
395
|
const embedded = extractEmbeddedMap(runtime.file, runtime.source);
|
|
378
|
-
if (stringify(embedded) !== stringify(assets)) {
|
|
396
|
+
if (stringify(normalizeAssetsMap(embedded)) !== stringify(assets)) {
|
|
379
397
|
throw new Error(
|
|
380
398
|
"Build assets changed after the runtime map was embedded; finalize entrypoint assets before processAssets begins"
|
|
381
399
|
);
|
|
@@ -390,7 +408,9 @@ const validateCurrentEntrypointMaps = (compilation, assets, fullMapEntrypoint, r
|
|
|
390
408
|
if (!entrypoint) {
|
|
391
409
|
throw new Error(`Build assets entrypoint "${name}" is unavailable`);
|
|
392
410
|
}
|
|
393
|
-
if (!runtimes.has(entrypoint.getRuntimeChunk()))
|
|
411
|
+
if (!runtimes.has(entrypoint.getRuntimeChunk())) {
|
|
412
|
+
continue;
|
|
413
|
+
}
|
|
394
414
|
const runtimeFiles = new Set(Array.from(entrypoint.getRuntimeChunk().files, toPosix));
|
|
395
415
|
const runtime = entrypointAssets.initial.js.filter((file) => runtimeFiles.has(file)).map((file) => {
|
|
396
416
|
var _a;
|
|
@@ -408,7 +428,7 @@ const validateCurrentEntrypointMaps = (compilation, assets, fullMapEntrypoint, r
|
|
|
408
428
|
initial: entrypointAssets.initial,
|
|
409
429
|
async: entrypointAssets.async
|
|
410
430
|
};
|
|
411
|
-
if (stringify(runtimeAssets) !== stringify(finalizedAssets)) {
|
|
431
|
+
if (stringify(normalizeAssets(runtimeAssets)) !== stringify(finalizedAssets)) {
|
|
412
432
|
throw new Error(
|
|
413
433
|
`Build assets changed after the runtime map for entrypoint "${name}" was embedded: ${JSON.stringify({ embedded: runtimeAssets, finalized: finalizedAssets })}`
|
|
414
434
|
);
|
|
@@ -450,9 +470,13 @@ class BuildAssetsMapPlugin {
|
|
|
450
470
|
const runtime = entrypoint.getRuntimeChunk();
|
|
451
471
|
const fullMap = name === this.options.fullMapEntrypoint;
|
|
452
472
|
const delivery = fullMap ? this.options.module.full : this.options.module.current;
|
|
453
|
-
if (!isUsed(runtime, delivery.export))
|
|
473
|
+
if (!isUsed(runtime, delivery.export)) {
|
|
474
|
+
continue;
|
|
475
|
+
}
|
|
454
476
|
validateEntrypointRuntime(compilation, name);
|
|
455
|
-
if (fullMap)
|
|
477
|
+
if (fullMap) {
|
|
478
|
+
validateFullMapEntrypoint(compilation, name);
|
|
479
|
+
}
|
|
456
480
|
selectedRuntimes.set(runtime, { name, fullMap, property: delivery.property });
|
|
457
481
|
}
|
|
458
482
|
}
|
|
@@ -461,7 +485,9 @@ class BuildAssetsMapPlugin {
|
|
|
461
485
|
filenamesValidated = true;
|
|
462
486
|
}
|
|
463
487
|
const selection = selectedRuntimes.get(chunk);
|
|
464
|
-
if (!selection || injectedRuntimes.has(chunk))
|
|
488
|
+
if (!selection || injectedRuntimes.has(chunk)) {
|
|
489
|
+
return;
|
|
490
|
+
}
|
|
465
491
|
requirements.add(RuntimeGlobals.require);
|
|
466
492
|
injectedRuntimes.add(chunk);
|
|
467
493
|
compilation.addRuntimeModule(
|
|
@@ -511,7 +537,9 @@ class BuildAssetsMapPlugin {
|
|
|
511
537
|
{ name: `${PluginName}:finalValidation`, stage: FinalValidationStage },
|
|
512
538
|
(compilation) => {
|
|
513
539
|
const runtimes = runtimeSelections.get(compilation);
|
|
514
|
-
if (runtimes)
|
|
540
|
+
if (runtimes) {
|
|
541
|
+
finalizeBuildAssets(compilation, this.options, runtimes);
|
|
542
|
+
}
|
|
515
543
|
}
|
|
516
544
|
);
|
|
517
545
|
}
|