adnbn 0.10.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/locale/LocaleBuilder.js +2 -11
- package/dist/cli/builders/locale/LocaleBuilder.js.map +1 -1
- package/dist/cli/builders/locale/index.js +1 -1
- package/dist/cli/builders/locale/index.js.map +1 -1
- package/dist/cli/builders/manifest/ManifestBase.js +17 -7
- package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
- package/dist/cli/builders/manifest/ManifestV2.js +1 -1
- package/dist/cli/builders/manifest/ManifestV3.js +12 -5
- package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
- package/dist/cli/builders/manifest/utils/data-collection-permissions.d.ts +15 -0
- package/dist/cli/builders/manifest/utils/data-collection-permissions.js +26 -0
- package/dist/cli/builders/manifest/utils/data-collection-permissions.js.map +1 -0
- package/dist/cli/builders/manifest/utils/host-patterns.d.ts +1 -0
- package/dist/cli/builders/manifest/utils/host-patterns.js +40 -0
- package/dist/cli/builders/manifest/utils/host-patterns.js.map +1 -0
- package/dist/cli/builders/manifest/utils/index.d.ts +4 -0
- package/dist/cli/builders/manifest/utils/index.js +19 -0
- package/dist/cli/builders/manifest/utils/index.js.map +1 -0
- package/dist/cli/builders/manifest/utils/permissions.d.ts +14 -0
- package/dist/cli/builders/manifest/utils/permissions.js +34 -0
- package/dist/cli/builders/manifest/utils/permissions.js.map +1 -0
- package/dist/cli/builders/manifest/utils/web-accessible-resources.d.ts +2 -0
- package/dist/cli/builders/manifest/utils/web-accessible-resources.js +92 -0
- package/dist/cli/builders/manifest/utils/web-accessible-resources.js.map +1 -0
- 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/layers.d.ts +5 -0
- package/dist/cli/bundler/layers.js +12 -0
- package/dist/cli/bundler/layers.js.map +1 -0
- package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.d.ts +14 -0
- package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js +524 -0
- package/dist/cli/bundler/plugins/build-assets-map/BuildAssetsMapPlugin.js.map +1 -0
- package/dist/cli/bundler/plugins/build-assets-map/index.d.ts +2 -0
- package/dist/cli/bundler/plugins/build-assets-map/index.js +5 -0
- package/dist/cli/bundler/plugins/build-assets-map/index.js.map +1 -0
- package/dist/cli/bundler/plugins/build-assets-map/usage.d.ts +9 -0
- package/dist/cli/bundler/plugins/build-assets-map/usage.js +31 -0
- package/dist/cli/bundler/plugins/build-assets-map/usage.js.map +1 -0
- package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.d.ts +9 -0
- package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.js +43 -0
- package/dist/cli/bundler/plugins/chunk-loader/ChunkLoaderPlugin.js.map +1 -0
- package/dist/cli/bundler/plugins/chunk-loader/index.d.ts +1 -0
- package/dist/cli/bundler/plugins/chunk-loader/index.js +5 -0
- package/dist/cli/bundler/plugins/chunk-loader/index.js.map +1 -0
- package/dist/cli/bundler/plugins/chunk-loader/templates/runtime.template.d.ts +2 -0
- package/dist/cli/bundler/plugins/chunk-loader/templates.d.ts +7 -0
- package/dist/cli/bundler/plugins/chunk-loader/templates.js +30 -0
- package/dist/cli/bundler/plugins/{EntrypointPlugin.d.ts → entrypoint/EntrypointPlugin.d.ts} +7 -2
- package/dist/cli/bundler/plugins/{EntrypointPlugin.js → entrypoint/EntrypointPlugin.js} +46 -26
- package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js.map +1 -0
- package/dist/cli/bundler/plugins/entrypoint/index.d.ts +1 -0
- package/dist/cli/bundler/plugins/entrypoint/index.js +7 -0
- package/dist/cli/bundler/plugins/entrypoint/index.js.map +1 -0
- package/dist/cli/bundler/plugins/{GenerateJsonPlugin.d.ts → generate-json/GenerateJsonPlugin.d.ts} +1 -0
- package/dist/cli/bundler/plugins/generate-json/GenerateJsonPlugin.js +73 -0
- package/dist/cli/bundler/plugins/generate-json/GenerateJsonPlugin.js.map +1 -0
- package/dist/cli/bundler/plugins/generate-json/index.d.ts +1 -0
- package/dist/cli/bundler/plugins/generate-json/index.js +5 -0
- package/dist/cli/bundler/plugins/generate-json/index.js.map +1 -0
- package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.d.ts +23 -0
- package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.js +88 -0
- package/dist/cli/bundler/plugins/generate-module/GenerateModulePlugin.js.map +1 -0
- package/dist/cli/bundler/plugins/generate-module/index.d.ts +1 -0
- package/dist/cli/bundler/plugins/generate-module/index.js +7 -0
- package/dist/cli/bundler/plugins/generate-module/index.js.map +1 -0
- package/dist/cli/bundler/plugins/index.d.ts +11 -5
- package/dist/cli/bundler/plugins/index.js +28 -10
- package/dist/cli/bundler/plugins/index.js.map +1 -1
- package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.d.ts +21 -0
- package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js +174 -0
- package/dist/cli/bundler/plugins/isolated-styles/IsolatedStylesPlugin.js.map +1 -0
- package/dist/cli/bundler/plugins/isolated-styles/chunks.d.ts +3 -0
- package/dist/cli/bundler/plugins/isolated-styles/chunks.js +32 -0
- package/dist/cli/bundler/plugins/isolated-styles/chunks.js.map +1 -0
- package/dist/cli/bundler/plugins/isolated-styles/index.d.ts +1 -0
- package/dist/cli/bundler/plugins/isolated-styles/index.js +5 -0
- package/dist/cli/bundler/plugins/isolated-styles/index.js.map +1 -0
- package/dist/cli/bundler/plugins/isolated-styles/templates/css-loader.template.d.ts +1 -0
- package/dist/cli/bundler/plugins/isolated-styles/templates/runtime.template.d.ts +7 -0
- package/dist/cli/bundler/plugins/isolated-styles/templates.d.ts +18 -0
- package/dist/cli/bundler/plugins/isolated-styles/templates.js +174 -0
- package/dist/cli/bundler/plugins/manifest/ManifestPlugin.d.ts +10 -0
- package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js +54 -0
- package/dist/cli/bundler/plugins/manifest/ManifestPlugin.js.map +1 -0
- package/dist/cli/bundler/plugins/manifest/index.d.ts +1 -0
- package/dist/cli/bundler/plugins/manifest/index.js +6 -0
- package/dist/cli/bundler/plugins/manifest/index.js.map +1 -0
- package/dist/cli/bundler/plugins/replace/ReplacePlugin.js.map +1 -0
- package/dist/cli/bundler/plugins/replace/index.d.ts +1 -0
- package/dist/cli/bundler/plugins/replace/index.js +5 -0
- package/dist/cli/bundler/plugins/replace/index.js.map +1 -0
- package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.d.ts +19 -0
- package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.js +20 -0
- package/dist/cli/bundler/plugins/resource-access/ResourceAccessPlugin.js.map +1 -0
- package/dist/cli/bundler/plugins/resource-access/index.d.ts +1 -0
- package/dist/cli/bundler/plugins/resource-access/index.js +5 -0
- package/dist/cli/bundler/plugins/resource-access/index.js.map +1 -0
- package/dist/cli/bundler/plugins/resource-access/utils.d.ts +8 -0
- package/dist/cli/bundler/plugins/resource-access/utils.js +42 -0
- package/dist/cli/bundler/plugins/resource-access/utils.js.map +1 -0
- package/dist/cli/bundler/plugins/types.d.ts +8 -0
- package/dist/cli/bundler/plugins/types.js +1 -0
- package/dist/cli/bundler/plugins/types.js.map +1 -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 +5 -0
- package/dist/cli/bundler/plugins/utils/index.js +14 -0
- package/dist/cli/bundler/plugins/utils/index.js.map +1 -0
- package/dist/cli/bundler/plugins/utils/manifest-hooks.d.ts +13 -0
- package/dist/cli/bundler/plugins/utils/manifest-hooks.js +17 -0
- package/dist/cli/bundler/plugins/utils/manifest-hooks.js.map +1 -0
- 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/plugins/utils/runtime-template.d.ts +1 -0
- package/dist/cli/bundler/plugins/utils/runtime-template.js +18 -0
- package/dist/cli/bundler/plugins/utils/runtime-template.js.map +1 -0
- package/dist/cli/bundler/plugins/utils/watch-compilation.d.ts +3 -0
- package/dist/cli/bundler/plugins/utils/watch-compilation.js +18 -0
- package/dist/cli/bundler/plugins/utils/watch-compilation.js.map +1 -0
- package/dist/cli/bundler/plugins/watch/WatchPlugin.js +16 -0
- package/dist/cli/bundler/plugins/watch/WatchPlugin.js.map +1 -0
- package/dist/cli/bundler/plugins/watch/index.d.ts +1 -0
- package/dist/cli/bundler/plugins/watch/index.js +5 -0
- package/dist/cli/bundler/plugins/watch/index.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/assets.js +162 -0
- package/dist/cli/bundler/utils/assets.js.map +1 -0
- package/dist/cli/bundler/utils/chunk-filename.d.ts +6 -0
- package/dist/cli/bundler/utils/chunk-filename.js +93 -0
- package/dist/cli/bundler/utils/chunk-filename.js.map +1 -0
- package/dist/cli/bundler/utils/index.d.ts +2 -1
- package/dist/cli/bundler/utils/index.js +2 -1
- package/dist/cli/bundler/utils/index.js.map +1 -1
- package/dist/cli/entrypoint/file/ExpressionFile.d.ts +4 -1
- package/dist/cli/entrypoint/file/ExpressionFile.js +11 -0
- package/dist/cli/entrypoint/file/ExpressionFile.js.map +1 -1
- package/dist/cli/entrypoint/file/OptionFile.d.ts +4 -2
- package/dist/cli/entrypoint/file/OptionFile.js +35 -31
- package/dist/cli/entrypoint/file/OptionFile.js.map +1 -1
- package/dist/cli/entrypoint/file/SourceFile.d.ts +18 -7
- package/dist/cli/entrypoint/file/SourceFile.js +260 -156
- package/dist/cli/entrypoint/file/SourceFile.js.map +1 -1
- package/dist/cli/entrypoint/file/index.d.ts +2 -0
- package/dist/cli/entrypoint/file/index.js +2 -0
- package/dist/cli/entrypoint/file/index.js.map +1 -1
- package/dist/cli/entrypoint/file/injectors/core.js +22 -1
- package/dist/cli/entrypoint/file/injectors/core.js.map +1 -1
- package/dist/cli/entrypoint/file/parsers/ExportParser.d.ts +14 -0
- package/dist/cli/entrypoint/file/parsers/ExportParser.js +71 -0
- package/dist/cli/entrypoint/file/parsers/ExportParser.js.map +1 -0
- package/dist/cli/entrypoint/file/parsers/NodeFinder.d.ts +2 -0
- package/dist/cli/entrypoint/file/parsers/NodeFinder.js +9 -0
- package/dist/cli/entrypoint/file/parsers/NodeFinder.js.map +1 -1
- package/dist/cli/entrypoint/file/parsers/ObjectParser.js +5 -1
- package/dist/cli/entrypoint/file/parsers/ObjectParser.js.map +1 -1
- package/dist/cli/entrypoint/file/parsers/index.d.ts +1 -0
- package/dist/cli/entrypoint/file/parsers/index.js +2 -0
- package/dist/cli/entrypoint/file/parsers/index.js.map +1 -1
- package/dist/cli/entrypoint/file/parsers/types.d.ts +16 -0
- package/dist/cli/entrypoint/file/parsers/types.js +13 -0
- package/dist/cli/entrypoint/file/parsers/types.js.map +1 -1
- package/dist/cli/entrypoint/file/resolvers/ImportResolver.d.ts +1 -0
- package/dist/cli/entrypoint/file/resolvers/ImportResolver.js +3 -0
- package/dist/cli/entrypoint/file/resolvers/ImportResolver.js.map +1 -1
- package/dist/cli/entrypoint/file/types.d.ts +26 -1
- package/dist/cli/entrypoint/finder/AbstractEntrypointFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/ContentFinder.d.ts +1 -1
- package/dist/cli/entrypoint/parser/AbstractParser.d.ts +3 -2
- package/dist/cli/entrypoint/parser/AbstractParser.js +6 -3
- package/dist/cli/entrypoint/parser/AbstractParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/CommandParser.js +1 -1
- package/dist/cli/entrypoint/parser/CommandParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/ContentParser.d.ts +7 -3
- package/dist/cli/entrypoint/parser/ContentParser.js +42 -6
- package/dist/cli/entrypoint/parser/ContentParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/RelayParser.d.ts +21 -2
- package/dist/cli/entrypoint/parser/RelayParser.js +5 -1
- package/dist/cli/entrypoint/parser/RelayParser.js.map +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/asset.js +9 -4
- package/dist/cli/plugins/asset.js.map +1 -1
- package/dist/cli/plugins/background/index.js +1 -1
- package/dist/cli/plugins/background/index.js.map +1 -1
- package/dist/cli/plugins/content/Content.d.ts +2 -2
- package/dist/cli/plugins/content/Content.js +3 -2
- package/dist/cli/plugins/content/Content.js.map +1 -1
- package/dist/cli/plugins/content/ContentDriver.d.ts +1 -1
- package/dist/cli/plugins/content/ContentManager.d.ts +8 -5
- package/dist/cli/plugins/content/ContentManager.js +79 -28
- package/dist/cli/plugins/content/ContentManager.js.map +1 -1
- package/dist/cli/plugins/content/ContentName.d.ts +2 -2
- package/dist/cli/plugins/content/ContentName.js +8 -7
- package/dist/cli/plugins/content/ContentName.js.map +1 -1
- package/dist/cli/plugins/content/Relay.d.ts +2 -2
- package/dist/cli/plugins/content/Relay.js +3 -2
- package/dist/cli/plugins/content/Relay.js.map +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 +7 -0
- package/dist/cli/plugins/content/bundler.js +47 -0
- package/dist/cli/plugins/content/bundler.js.map +1 -0
- package/dist/cli/plugins/content/index.js +121 -62
- package/dist/cli/plugins/content/index.js.map +1 -1
- package/dist/cli/plugins/content/relay-module.d.ts +3 -0
- package/dist/cli/plugins/content/relay-module.js +11 -0
- package/dist/cli/plugins/content/relay-module.js.map +1 -0
- package/dist/cli/plugins/content/types.d.ts +2 -2
- package/dist/cli/plugins/content/utils.d.ts +3 -1
- package/dist/cli/plugins/content/utils.js +8 -1
- package/dist/cli/plugins/content/utils.js.map +1 -1
- package/dist/cli/plugins/icon/declaration/IconDeclaration.d.ts +1 -1
- package/dist/cli/plugins/icon/declaration/IconDeclaration.js +6 -6
- package/dist/cli/plugins/icon/declaration/IconDeclaration.js.map +1 -1
- package/dist/cli/plugins/icon/declaration/icon.d.ts +3 -5
- package/dist/cli/plugins/icon/icon-module.d.ts +2 -0
- package/dist/cli/plugins/icon/icon-module.js +11 -0
- package/dist/cli/plugins/icon/icon-module.js.map +1 -0
- package/dist/cli/plugins/icon/index.js +5 -3
- package/dist/cli/plugins/icon/index.js.map +1 -1
- package/dist/cli/plugins/index.d.ts +1 -1
- package/dist/cli/plugins/index.js +1 -1
- package/dist/cli/plugins/locale/Locale.d.ts +9 -2
- package/dist/cli/plugins/locale/Locale.js +37 -5
- package/dist/cli/plugins/locale/Locale.js.map +1 -1
- package/dist/cli/plugins/locale/declaration/locale.d.ts +1 -1
- package/dist/cli/plugins/locale/index.js +57 -22
- package/dist/cli/plugins/locale/index.js.map +1 -1
- package/dist/cli/plugins/locale/locale-module.d.ts +4 -0
- package/dist/cli/plugins/locale/locale-module.js +16 -0
- package/dist/cli/plugins/locale/locale-module.js.map +1 -0
- package/dist/cli/plugins/offscreen/Offscreen.d.ts +2 -3
- package/dist/cli/plugins/offscreen/Offscreen.js.map +1 -1
- package/dist/cli/plugins/offscreen/index.js +5 -4
- package/dist/cli/plugins/offscreen/index.js.map +1 -1
- package/dist/cli/plugins/offscreen/offscreen-module.d.ts +3 -0
- package/dist/cli/plugins/offscreen/offscreen-module.js +11 -0
- package/dist/cli/plugins/offscreen/offscreen-module.js.map +1 -0
- package/dist/cli/plugins/output/index.d.ts +2 -0
- package/dist/cli/plugins/output/index.js +60 -0
- 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/page/declaration/PageDeclaration.js +4 -4
- package/dist/cli/plugins/page/declaration/PageDeclaration.js.map +1 -1
- package/dist/cli/plugins/page/declaration/page.d.ts +3 -3
- package/dist/cli/plugins/page/index.js +14 -10
- package/dist/cli/plugins/page/index.js.map +1 -1
- package/dist/cli/plugins/page/page-module.d.ts +2 -0
- package/dist/cli/plugins/page/page-module.js +11 -0
- package/dist/cli/plugins/page/page-module.js.map +1 -0
- package/dist/cli/plugins/popup/Popup.d.ts +1 -1
- package/dist/cli/plugins/popup/Popup.js +2 -2
- package/dist/cli/plugins/popup/Popup.js.map +1 -1
- package/dist/cli/plugins/popup/declaration/PopupDeclaration.d.ts +1 -1
- package/dist/cli/plugins/popup/declaration/PopupDeclaration.js +6 -6
- package/dist/cli/plugins/popup/declaration/PopupDeclaration.js.map +1 -1
- package/dist/cli/plugins/popup/declaration/popup.d.ts +3 -3
- package/dist/cli/plugins/popup/index.js +6 -5
- package/dist/cli/plugins/popup/index.js.map +1 -1
- package/dist/cli/plugins/popup/popup-module.d.ts +3 -0
- package/dist/cli/plugins/popup/popup-module.js +11 -0
- package/dist/cli/plugins/popup/popup-module.js.map +1 -0
- package/dist/cli/plugins/sandbox/Sandbox.d.ts +1 -2
- package/dist/cli/plugins/sandbox/Sandbox.js.map +1 -1
- package/dist/cli/plugins/sandbox/index.js +5 -4
- package/dist/cli/plugins/sandbox/index.js.map +1 -1
- package/dist/cli/plugins/sandbox/sandbox-module.d.ts +3 -0
- package/dist/cli/plugins/sandbox/sandbox-module.js +11 -0
- package/dist/cli/plugins/sandbox/sandbox-module.js.map +1 -0
- package/dist/cli/plugins/sidebar/Sidebar.d.ts +1 -1
- package/dist/cli/plugins/sidebar/Sidebar.js +2 -2
- package/dist/cli/plugins/sidebar/Sidebar.js.map +1 -1
- package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.d.ts +1 -1
- package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.js +6 -6
- package/dist/cli/plugins/sidebar/declaration/SidebarDeclaration.js.map +1 -1
- package/dist/cli/plugins/sidebar/declaration/sidebar.d.ts +3 -3
- package/dist/cli/plugins/sidebar/index.js +6 -5
- package/dist/cli/plugins/sidebar/index.js.map +1 -1
- package/dist/cli/plugins/sidebar/sidebar-module.d.ts +3 -0
- package/dist/cli/plugins/sidebar/sidebar-module.js +11 -0
- package/dist/cli/plugins/sidebar/sidebar-module.js.map +1 -0
- package/dist/cli/plugins/style/index.d.ts +2 -1
- package/dist/cli/plugins/style/index.js +52 -25
- package/dist/cli/plugins/style/index.js.map +1 -1
- package/dist/cli/plugins/style/types.d.ts +5 -0
- package/dist/cli/plugins/style/types.js +1 -0
- package/dist/cli/plugins/style/types.js.map +1 -0
- package/dist/cli/raw.d.ts +4 -0
- package/dist/cli/resolvers/bundler.js +9 -7
- package/dist/cli/resolvers/bundler.js.map +1 -1
- package/dist/cli/resolvers/config.js +2 -1
- package/dist/cli/resolvers/config.js.map +1 -1
- package/dist/cli/virtual/index.d.ts +2 -2
- package/dist/cli/virtual/index.js +11 -8
- package/dist/cli/virtual/virtual.d.ts +14 -11
- 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 -12
- package/dist/entry/content/adapters/react/Node.js +9 -25
- 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 -10
- package/dist/entry/content/adapters/vanilla/Node.js +11 -34
- 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 +5 -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.d.ts +3 -0
- package/dist/entry/content/lifecycle/context/index.js +9 -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.d.ts +3 -0
- package/dist/entry/content/lifecycle/markers/index.js +9 -0
- package/dist/entry/content/lifecycle/markers/index.js.map +1 -0
- package/dist/entry/content/{core → lifecycle/nodes}/EventNode.d.ts +5 -2
- package/dist/entry/content/{core → lifecycle/nodes}/EventNode.js +14 -2
- package/dist/entry/content/lifecycle/nodes/EventNode.js.map +1 -0
- package/dist/entry/content/lifecycle/nodes/FrameNode.d.ts +29 -0
- 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 +4 -2
- package/dist/entry/content/{core → lifecycle/nodes}/MarkerNode.js +8 -2
- package/dist/entry/content/lifecycle/nodes/MarkerNode.js.map +1 -0
- package/dist/entry/content/{core → lifecycle/nodes}/MountNode.d.ts +4 -2
- package/dist/entry/content/{core → lifecycle/nodes}/MountNode.js +8 -2
- package/dist/entry/content/lifecycle/nodes/MountNode.js.map +1 -0
- package/dist/entry/content/{core → lifecycle/nodes}/Node.d.ts +3 -2
- package/dist/entry/content/{core → lifecycle/nodes}/Node.js +5 -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/lifecycle/nodes/index.d.ts +7 -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/lifecycle/nodes/isolated-styles.d.ts +2 -0
- package/dist/entry/content/lifecycle/nodes/isolated-styles.js +14 -0
- 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 +15 -11
- 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 +32 -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/locale/adapters/react/ReactLocale.d.ts +18 -0
- package/dist/locale/adapters/react/ReactLocale.js +41 -0
- package/dist/locale/adapters/react/ReactLocale.js.map +1 -0
- package/dist/locale/adapters/react/hooks/use-locale-attributes.d.ts +7 -0
- package/dist/locale/adapters/react/hooks/use-locale-attributes.js +30 -0
- package/dist/locale/adapters/react/hooks/use-locale-attributes.js.map +1 -0
- package/dist/locale/adapters/react/hooks/use-locale.d.ts +3 -0
- package/dist/locale/adapters/react/hooks/use-locale.js +17 -0
- package/dist/locale/adapters/react/hooks/use-locale.js.map +1 -0
- package/dist/locale/adapters/react/hooks/use-native-locale.d.ts +3 -0
- package/dist/locale/adapters/react/hooks/use-native-locale.js +10 -0
- package/dist/locale/adapters/react/hooks/use-native-locale.js.map +1 -0
- package/dist/locale/adapters/react/index.d.ts +4 -2
- package/dist/locale/adapters/react/index.js +6 -4
- package/dist/locale/adapters/react/index.js.map +1 -1
- package/dist/locale/adapters/react/types.d.ts +22 -0
- package/dist/locale/adapters/react/types.js +1 -0
- package/dist/locale/adapters/react/types.js.map +1 -0
- package/dist/locale/helpers.d.ts +4 -5
- package/dist/locale/helpers.js +1 -1
- package/dist/locale/helpers.js.map +1 -1
- package/dist/locale/index.d.ts +2 -1
- package/dist/locale/index.js +1 -0
- package/dist/locale/index.js.map +1 -1
- package/dist/locale/providers/AbstractLocale.d.ts +4 -4
- package/dist/locale/providers/AbstractLocale.js +13 -94
- package/dist/locale/providers/AbstractLocale.js.map +1 -1
- package/dist/locale/providers/CustomLocale.d.ts +3 -3
- package/dist/locale/providers/CustomLocale.js +6 -5
- package/dist/locale/providers/CustomLocale.js.map +1 -1
- package/dist/locale/providers/DynamicLocale.d.ts +18 -11
- package/dist/locale/providers/DynamicLocale.js +60 -47
- package/dist/locale/providers/DynamicLocale.js.map +1 -1
- package/dist/locale/providers/NativeLocale.d.ts +4 -7
- package/dist/locale/providers/NativeLocale.js +5 -14
- package/dist/locale/providers/NativeLocale.js.map +1 -1
- package/dist/locale/providers/ObservableLocale.d.ts +35 -0
- package/dist/locale/providers/ObservableLocale.js +179 -0
- package/dist/locale/providers/ObservableLocale.js.map +1 -0
- package/dist/locale/providers/index.d.ts +2 -1
- package/dist/locale/providers/index.js +3 -1
- package/dist/locale/providers/index.js.map +1 -1
- package/dist/locale/storage/LocaleStorage.d.ts +11 -0
- package/dist/locale/storage/LocaleStorage.js +40 -0
- package/dist/locale/storage/LocaleStorage.js.map +1 -0
- package/dist/locale/storage/index.d.ts +1 -0
- package/dist/locale/storage/index.js +5 -0
- package/dist/locale/storage/index.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.d.ts +4 -0
- package/dist/main/entrypoint.js +20 -0
- package/dist/main/entrypoint.js.map +1 -0
- package/dist/main/icon.d.ts +2 -3
- package/dist/main/icon.js +2 -1
- package/dist/main/icon.js.map +1 -1
- package/dist/main/index.d.ts +1 -0
- package/dist/main/index.js +1 -0
- package/dist/main/index.js.map +1 -1
- package/dist/main/offscreen.d.ts +2 -5
- package/dist/main/offscreen.js +5 -2
- package/dist/main/offscreen.js.map +1 -1
- package/dist/main/page.d.ts +2 -4
- package/dist/main/page.js +2 -1
- package/dist/main/page.js.map +1 -1
- package/dist/main/popup.d.ts +2 -5
- package/dist/main/popup.js +3 -3
- package/dist/main/popup.js.map +1 -1
- package/dist/main/relay.d.ts +3 -3
- package/dist/main/relay.js +2 -1
- package/dist/main/relay.js.map +1 -1
- package/dist/main/sandbox.d.ts +1 -4
- package/dist/main/sandbox.js +2 -1
- package/dist/main/sandbox.js.map +1 -1
- package/dist/main/service.d.ts +1 -2
- package/dist/main/service.js.map +1 -1
- package/dist/main/sidebar.d.ts +2 -5
- package/dist/main/sidebar.js +3 -3
- package/dist/main/sidebar.js.map +1 -1
- package/dist/message/index.d.ts +2 -4
- package/dist/message/index.js.map +1 -1
- package/dist/offscreen/index.d.ts +2 -6
- package/dist/offscreen/index.js.map +1 -1
- package/dist/relay/RelayPermission.js +1 -1
- package/dist/relay/index.d.ts +2 -5
- package/dist/relay/index.js.map +1 -1
- package/dist/sandbox/index.d.ts +1 -5
- package/dist/sandbox/index.js.map +1 -1
- package/dist/service/index.d.ts +2 -6
- package/dist/service/index.js.map +1 -1
- package/dist/shared/content/index.d.ts +1 -0
- package/dist/shared/content/index.js +6 -0
- package/dist/shared/content/index.js.map +1 -0
- package/dist/shared/content/isolation.d.ts +4 -0
- package/dist/shared/content/isolation.js +63 -0
- package/dist/shared/content/isolation.js.map +1 -0
- package/dist/shared/locale/index.d.ts +5 -0
- package/dist/shared/locale/index.js +21 -0
- package/dist/shared/locale/index.js.map +1 -0
- package/dist/shared/locale/keys.d.ts +5 -0
- package/dist/shared/locale/keys.js +33 -0
- package/dist/shared/locale/keys.js.map +1 -0
- package/dist/shared/locale/language.d.ts +4 -0
- package/dist/shared/locale/language.js +23 -0
- package/dist/shared/locale/language.js.map +1 -0
- package/dist/shared/locale/messages.d.ts +3 -0
- package/dist/shared/locale/messages.js +9 -0
- package/dist/shared/locale/messages.js.map +1 -0
- package/dist/shared/locale/plural.d.ts +2 -0
- package/dist/shared/locale/plural.js +81 -0
- package/dist/shared/locale/plural.js.map +1 -0
- package/dist/shared/locale/substitutions.d.ts +10 -0
- package/dist/shared/locale/substitutions.js +32 -0
- package/dist/shared/locale/substitutions.js.map +1 -0
- package/dist/types/background.d.ts +1 -1
- package/dist/types/background.js.map +1 -1
- package/dist/types/command.d.ts +1 -1
- package/dist/types/command.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} +119 -59
- package/dist/types/{content.js → content/common.js} +23 -2
- 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/entrypoint.d.ts +20 -0
- package/dist/types/entrypoint.js +4 -0
- package/dist/types/entrypoint.js.map +1 -1
- package/dist/types/icon.d.ts +8 -0
- package/dist/types/icon.js.map +1 -1
- package/dist/types/language.d.ts +57 -0
- package/dist/types/language.js +62 -0
- package/dist/types/language.js.map +1 -0
- package/dist/types/locale.d.ts +34 -63
- package/dist/types/locale.js +62 -119
- package/dist/types/locale.js.map +1 -1
- package/dist/types/manifest.d.ts +11 -8
- package/dist/types/manifest.js.map +1 -1
- package/dist/types/message.d.ts +7 -0
- package/dist/types/message.js.map +1 -1
- package/dist/types/offscreen.d.ts +14 -1
- package/dist/types/offscreen.js.map +1 -1
- package/dist/types/page.d.ts +8 -0
- package/dist/types/popup.d.ts +9 -0
- package/dist/types/relay.d.ts +15 -7
- package/dist/types/relay.js.map +1 -1
- package/dist/types/sandbox.d.ts +12 -0
- package/dist/types/sandbox.js.map +1 -1
- package/dist/types/service.d.ts +10 -1
- package/dist/types/service.js.map +1 -1
- package/dist/types/sidebar.d.ts +9 -0
- package/dist/types/sidebar.js.map +1 -1
- package/dist/types/transport.d.ts +4 -0
- package/dist/virtual/icon.d.ts +2 -0
- package/dist/virtual/icon.js +5 -0
- package/dist/virtual/icon.js.map +1 -0
- package/dist/virtual/locale.d.ts +7 -0
- package/dist/virtual/locale.js +13 -0
- package/dist/virtual/locale.js.map +1 -0
- package/dist/virtual/modules.d.ts +41 -0
- package/dist/virtual/offscreen.d.ts +3 -0
- package/dist/virtual/offscreen.js +5 -0
- package/dist/virtual/offscreen.js.map +1 -0
- package/dist/virtual/page.d.ts +2 -0
- package/dist/virtual/page.js +5 -0
- package/dist/virtual/page.js.map +1 -0
- package/dist/virtual/popup.d.ts +3 -0
- package/dist/virtual/popup.js +5 -0
- package/dist/virtual/popup.js.map +1 -0
- package/dist/virtual/relay.d.ts +3 -0
- package/dist/virtual/relay.js +5 -0
- package/dist/virtual/relay.js.map +1 -0
- package/dist/virtual/runtime.d.ts +8 -0
- package/dist/virtual/runtime.js +9 -0
- package/dist/virtual/runtime.js.map +1 -0
- package/dist/virtual/sandbox.d.ts +3 -0
- package/dist/virtual/sandbox.js +5 -0
- package/dist/virtual/sandbox.js.map +1 -0
- package/dist/virtual/sidebar.d.ts +3 -0
- package/dist/virtual/sidebar.js +5 -0
- package/dist/virtual/sidebar.js.map +1 -0
- package/package.json +53 -23
- package/scripts/clean-dist.js +7 -0
- package/scripts/copy-dts.js +11 -1
- 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/types/client.d.ts +15 -0
- package/dist/cli/builders/manifest/utils.d.ts +0 -32
- package/dist/cli/builders/manifest/utils.js +0 -209
- package/dist/cli/builders/manifest/utils.js.map +0 -1
- package/dist/cli/bundler/plugins/EntrypointPlugin.js.map +0 -1
- package/dist/cli/bundler/plugins/GenerateJsonPlugin.js +0 -40
- package/dist/cli/bundler/plugins/GenerateJsonPlugin.js.map +0 -1
- package/dist/cli/bundler/plugins/ManifestPlugin.d.ts +0 -10
- package/dist/cli/bundler/plugins/ManifestPlugin.js +0 -78
- package/dist/cli/bundler/plugins/ManifestPlugin.js.map +0 -1
- package/dist/cli/bundler/plugins/ReplacePlugin.js.map +0 -1
- package/dist/cli/bundler/plugins/WatchPlugin.js +0 -21
- package/dist/cli/bundler/plugins/WatchPlugin.js.map +0 -1
- package/dist/cli/bundler/utils/output.d.ts +0 -2
- package/dist/cli/bundler/utils/output.js +0 -15
- package/dist/cli/bundler/utils/output.js.map +0 -1
- package/dist/cli/entrypoint/finder/tests/fixtures/options/discovery/account.options.d.ts +0 -1
- package/dist/cli/entrypoint/finder/tests/fixtures/options/discovery/advanced.options/index.d.ts +0 -1
- package/dist/cli/plugins/output.d.ts +0 -2
- package/dist/cli/plugins/output.js +0 -32
- 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/AbstractMarker.js.map +0 -1
- package/dist/entry/content/core/AttributeMarker.js.map +0 -1
- package/dist/entry/content/core/Builder.d.ts +0 -27
- package/dist/entry/content/core/Builder.js +0 -124
- package/dist/entry/content/core/Builder.js.map +0 -1
- package/dist/entry/content/core/Context.js +0 -43
- package/dist/entry/content/core/Context.js.map +0 -1
- package/dist/entry/content/core/EventEmitter.js.map +0 -1
- package/dist/entry/content/core/EventNode.js.map +0 -1
- package/dist/entry/content/core/ManagedContext.d.ts +0 -5
- package/dist/entry/content/core/ManagedContext.js.map +0 -1
- package/dist/entry/content/core/MarkerNode.js.map +0 -1
- package/dist/entry/content/core/MountBuilder.d.ts +0 -10
- package/dist/entry/content/core/MountBuilder.js +0 -40
- package/dist/entry/content/core/MountBuilder.js.map +0 -1
- package/dist/entry/content/core/MountNode.js.map +0 -1
- package/dist/entry/content/core/Node.js.map +0 -1
- package/dist/entry/content/core/WeakMarker.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/locale/adapters/react/LocaleProvider.d.ts +0 -7
- package/dist/locale/adapters/react/LocaleProvider.js +0 -58
- package/dist/locale/adapters/react/LocaleProvider.js.map +0 -1
- package/dist/locale/adapters/react/context.d.ts +0 -14
- package/dist/locale/adapters/react/context.js +0 -25
- package/dist/locale/adapters/react/context.js.map +0 -1
- package/dist/locale/utils.d.ts +0 -11
- package/dist/locale/utils.js +0 -67
- package/dist/locale/utils.js.map +0 -1
- package/dist/types/content.js.map +0 -1
- /package/dist/cli/bundler/plugins/{ReplacePlugin.d.ts → replace/ReplacePlugin.d.ts} +0 -0
- /package/dist/cli/bundler/plugins/{ReplacePlugin.js → replace/ReplacePlugin.js} +0 -0
- /package/dist/cli/bundler/plugins/{WatchPlugin.d.ts → watch/WatchPlugin.d.ts} +0 -0
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "adnbn",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "0.
|
|
4
|
+
"version": "0.12.0",
|
|
5
5
|
"description": "Addon Bone - Cross-browser web extension framework with shared code base",
|
|
6
6
|
"homepage": "https://addonbone.com",
|
|
7
7
|
"author": "Anjey Tsibylskij (https://github.com/atldays)",
|
|
@@ -36,13 +36,16 @@
|
|
|
36
36
|
"scripts",
|
|
37
37
|
"types"
|
|
38
38
|
],
|
|
39
|
-
"sideEffects": false,
|
|
40
39
|
"engines": {
|
|
41
40
|
"node": ">=22.0.0"
|
|
42
41
|
},
|
|
43
42
|
"bin": {
|
|
44
43
|
"adnbn": "bin/adnbn.js"
|
|
45
44
|
},
|
|
45
|
+
"sideEffects": false,
|
|
46
|
+
"imports": {
|
|
47
|
+
"#adnbn/*": "./dist/virtual/*.js"
|
|
48
|
+
},
|
|
46
49
|
"exports": {
|
|
47
50
|
".": {
|
|
48
51
|
"types": "./dist/index.d.ts",
|
|
@@ -60,6 +63,10 @@
|
|
|
60
63
|
"types": "./dist/entry/view/adapters/*/index.d.ts",
|
|
61
64
|
"default": "./dist/entry/view/adapters/*/index.js"
|
|
62
65
|
},
|
|
66
|
+
"./content": {
|
|
67
|
+
"types": "./dist/content/index.d.ts",
|
|
68
|
+
"default": "./dist/content/index.js"
|
|
69
|
+
},
|
|
63
70
|
"./locale": {
|
|
64
71
|
"types": "./dist/locale/index.d.ts",
|
|
65
72
|
"default": "./dist/locale/index.js"
|
|
@@ -105,26 +112,36 @@
|
|
|
105
112
|
"prepare": "husky",
|
|
106
113
|
"preinstall": "npm run check:node-version",
|
|
107
114
|
"prepublishOnly": "npm run build",
|
|
108
|
-
"build": "tsup && tsc -p tsconfig.build.json && node ./scripts/copy-dts.js && tsc-alias -p tsconfig.build.json -f -fe .js",
|
|
115
|
+
"build": "node ./scripts/clean-dist.js && tsup && tsc -p tsconfig.build.json && node ./scripts/copy-dts.js && tsc-alias -p tsconfig.build.json -f -fe .js",
|
|
109
116
|
"format": "prettier --write .",
|
|
110
|
-
"typecheck": "tsc -p tsconfig.json --noEmit
|
|
111
|
-
"
|
|
117
|
+
"typecheck": "tsc -p tsconfig.json --noEmit",
|
|
118
|
+
"prepare:integration": "npm run build && tsx tests/integration/prepare.ts",
|
|
119
|
+
"typecheck:integration": "npm run build && tsx tests/integration/typecheck.ts --prepare",
|
|
120
|
+
"test:integration": "npm run build && node scripts/test-run.mjs --selectProjects build types chrome firefox",
|
|
121
|
+
"test:integration:build": "npm run test:build --",
|
|
112
122
|
"check:node-version": "node ./scripts/check-node-version.js",
|
|
113
|
-
"test": "npm run build &&
|
|
114
|
-
"test:ci": "npm run test -- --ci --
|
|
115
|
-
"test:ci:non-browser": "npm run test -- --ci --
|
|
116
|
-
"test:watch": "
|
|
117
|
-
"test:offscreen": "
|
|
118
|
-
"test:chrome": "npm run
|
|
119
|
-
"test:
|
|
120
|
-
"test:
|
|
121
|
-
"test:
|
|
122
|
-
"test:
|
|
123
|
-
"test:
|
|
124
|
-
"test:
|
|
125
|
-
"test:
|
|
123
|
+
"test": "npm run build && node scripts/test-run.mjs",
|
|
124
|
+
"test:ci": "npm run test -- --ci --coverage",
|
|
125
|
+
"test:ci:non-browser": "npm run test -- --ci --coverage --selectProjects unit-node unit-dom build types",
|
|
126
|
+
"test:watch": "node scripts/test-run.mjs --selectProjects unit-node unit-dom --watch",
|
|
127
|
+
"test:offscreen": "node scripts/test-run.mjs --testPathPatterns=Offscreen",
|
|
128
|
+
"test:chrome": "npm run build && node scripts/test-run.mjs --selectProjects chrome",
|
|
129
|
+
"test:firefox": "npm run build && node scripts/test-run.mjs --selectProjects firefox",
|
|
130
|
+
"test:message": "node scripts/test-run.mjs --testPathPatterns=src/message",
|
|
131
|
+
"test:service": "node scripts/test-run.mjs --testPathPatterns=Service",
|
|
132
|
+
"test:relay": "npm run test -- --testPathPatterns=Relay",
|
|
133
|
+
"test:locale": "npm run test -- --testPathPatterns=Locale",
|
|
134
|
+
"test:manifest": "node scripts/test-run.mjs --testPathPatterns=src/cli/builders/manifest",
|
|
135
|
+
"test:entrypoint": "node scripts/test-run.mjs --testPathPatterns=src/cli/entrypoint",
|
|
136
|
+
"test:plugins": "npm run test -- --testPathPatterns=src/cli/plugins",
|
|
126
137
|
"release": "release-it",
|
|
127
|
-
"release:preview": "release-it --no-github.release --no-npm.publish --no-git.tag --ci"
|
|
138
|
+
"release:preview": "release-it --no-github.release --no-npm.publish --no-git.tag --ci",
|
|
139
|
+
"test:unit": "node scripts/test-run.mjs --selectProjects unit-node unit-dom --verbose=false",
|
|
140
|
+
"test:build": "npm run build && node scripts/test-run.mjs --selectProjects build",
|
|
141
|
+
"test:types": "npm run typecheck:integration && node scripts/test-run.mjs --selectProjects types",
|
|
142
|
+
"test:inventory": "node scripts/test-inventory.mjs",
|
|
143
|
+
"test:pre-push": "tsx tests/pre-push.ts",
|
|
144
|
+
"test:run": "node scripts/test-run.mjs"
|
|
128
145
|
},
|
|
129
146
|
"dependencies": {
|
|
130
147
|
"@addon-core/browser": "^0.7.2",
|
|
@@ -133,6 +150,7 @@
|
|
|
133
150
|
"@rsdoctor/rspack-plugin": "^1.5.1",
|
|
134
151
|
"@rspack/cli": "^1.7.5",
|
|
135
152
|
"@rspack/core": "^1.7.5",
|
|
153
|
+
"@rspack/lite-tapable": "^1.1.0",
|
|
136
154
|
"@svgr/webpack": "^8.1.0",
|
|
137
155
|
"await-lock": "^3.0.0",
|
|
138
156
|
"c12": "^3.3.2",
|
|
@@ -151,6 +169,7 @@
|
|
|
151
169
|
"pluralize": "^8.0.0",
|
|
152
170
|
"postcss": "^8.5.15",
|
|
153
171
|
"postcss-scss": "^4.0.9",
|
|
172
|
+
"postcss-value-parser": "^4.2.0",
|
|
154
173
|
"rspack-plugin-virtual-module": "^1.0.1",
|
|
155
174
|
"sass": "^1.83.4",
|
|
156
175
|
"sass-loader": "^16.0.4",
|
|
@@ -190,10 +209,15 @@
|
|
|
190
209
|
"glob": "^13.0.1",
|
|
191
210
|
"globby": "^14.1.0",
|
|
192
211
|
"husky": "^9.1.7",
|
|
212
|
+
"istanbul-lib-coverage": "^3.2.2",
|
|
213
|
+
"istanbul-lib-report": "^3.0.1",
|
|
214
|
+
"istanbul-reports": "^3.2.0",
|
|
193
215
|
"jest": "^30.2.0",
|
|
194
216
|
"jest-environment-jsdom": "^30.0.0",
|
|
195
217
|
"jest-webextension-mock": "^4.0.0",
|
|
196
218
|
"prettier": "^3.6.2",
|
|
219
|
+
"react": "^19.2.8",
|
|
220
|
+
"react-dom": "^19.2.8",
|
|
197
221
|
"release-it": "^19.2.3",
|
|
198
222
|
"ts-node": "10.9.2",
|
|
199
223
|
"tsc-alias": "^1.8.17",
|
|
@@ -207,10 +231,10 @@
|
|
|
207
231
|
},
|
|
208
232
|
"peerDependencies": {
|
|
209
233
|
"@types/chrome": "*",
|
|
210
|
-
"@types/react": "
|
|
211
|
-
"@types/react-dom": "
|
|
212
|
-
"react": "^
|
|
213
|
-
"react-dom": "^
|
|
234
|
+
"@types/react": "^18.0.0 || ^19.0.0",
|
|
235
|
+
"@types/react-dom": "^18.0.0 || ^19.0.0",
|
|
236
|
+
"react": "^18.0.0 || ^19.0.0",
|
|
237
|
+
"react-dom": "^18.0.0 || ^19.0.0"
|
|
214
238
|
},
|
|
215
239
|
"peerDependenciesMeta": {
|
|
216
240
|
"@types/react": {
|
|
@@ -218,6 +242,12 @@
|
|
|
218
242
|
},
|
|
219
243
|
"@types/react-dom": {
|
|
220
244
|
"optional": true
|
|
245
|
+
},
|
|
246
|
+
"react": {
|
|
247
|
+
"optional": true
|
|
248
|
+
},
|
|
249
|
+
"react-dom": {
|
|
250
|
+
"optional": true
|
|
221
251
|
}
|
|
222
252
|
},
|
|
223
253
|
"overrides": {
|
package/scripts/copy-dts.js
CHANGED
|
@@ -7,7 +7,17 @@ const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
|
7
7
|
const root = join(__dirname, "..");
|
|
8
8
|
const distRoot = join(root, "dist");
|
|
9
9
|
|
|
10
|
-
const files = await globby(
|
|
10
|
+
const files = await globby(
|
|
11
|
+
[
|
|
12
|
+
"src/**/*.d.ts",
|
|
13
|
+
"!src/**/tests/**/*",
|
|
14
|
+
"!src/**/__tests__/**/*",
|
|
15
|
+
"!src/**/__mocks__/**/*",
|
|
16
|
+
"!src/**/*.test.d.ts",
|
|
17
|
+
"!src/**/*.spec.d.ts",
|
|
18
|
+
],
|
|
19
|
+
{cwd: root, dot: true}
|
|
20
|
+
);
|
|
11
21
|
|
|
12
22
|
for (const file of files) {
|
|
13
23
|
const rel = relative("src", file);
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {readFile} from "node:fs/promises";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import coverage from "istanbul-lib-coverage";
|
|
4
|
+
import report from "istanbul-lib-report";
|
|
5
|
+
import reports from "istanbul-reports";
|
|
6
|
+
|
|
7
|
+
const files = process.argv.slice(2);
|
|
8
|
+
if (files.length < 2) throw new Error("Pass the unit and build coverage-final.json files");
|
|
9
|
+
const map = coverage.createCoverageMap({});
|
|
10
|
+
for (const file of files) map.merge(JSON.parse(await readFile(file, "utf8")));
|
|
11
|
+
const context = report.createContext({dir: path.resolve("coverage/merged"), coverageMap: map});
|
|
12
|
+
for (const format of ["json", "lcov", "text-summary"]) reports.create(format).execute(context);
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {execFileSync} from "node:child_process";
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
import * as prettier from "prettier";
|
|
4
|
+
|
|
5
|
+
const root = path.resolve(import.meta.dirname, "..");
|
|
6
|
+
const git = args => execFileSync("git", args, {cwd: root, encoding: "utf8"});
|
|
7
|
+
const changed = git(["diff", "--cached", "--name-only", "--diff-filter=ACMR", "-z"]).split("\0").filter(Boolean);
|
|
8
|
+
const unformatted = [];
|
|
9
|
+
|
|
10
|
+
for (const file of changed) {
|
|
11
|
+
const filepath = path.join(root, file);
|
|
12
|
+
const info = await prettier.getFileInfo(filepath, {ignorePath: path.join(root, ".prettierignore")});
|
|
13
|
+
if (info.ignored || !info.inferredParser) continue;
|
|
14
|
+
// Check the staged contents; never rewrite unstaged work or silently stage it.
|
|
15
|
+
const contents = git(["show", `:${file}`]);
|
|
16
|
+
if (!(await prettier.check(contents, {...(await prettier.resolveConfig(filepath)), filepath})))
|
|
17
|
+
unformatted.push(file);
|
|
18
|
+
}
|
|
19
|
+
if (unformatted.length) {
|
|
20
|
+
console.error(`Format and stage these files before committing:\n${unformatted.join("\n")}`);
|
|
21
|
+
process.exit(1);
|
|
22
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import assert from "node:assert/strict";
|
|
2
|
+
import {execFile} from "node:child_process";
|
|
3
|
+
import {existsSync} from "node:fs";
|
|
4
|
+
import path from "node:path";
|
|
5
|
+
import {promisify} from "node:util";
|
|
6
|
+
|
|
7
|
+
const execute = promisify(execFile);
|
|
8
|
+
const root = path.resolve(import.meta.dirname, "..");
|
|
9
|
+
const jest = path.join(root, "scripts/test-run.mjs");
|
|
10
|
+
const options = {cwd: root, maxBuffer: 10 * 1024 * 1024};
|
|
11
|
+
const {stdout: configuration} = await execute(process.execPath, [jest, "--showConfig"], options);
|
|
12
|
+
const projects = JSON.parse(configuration).configs.map(config => config.displayName.name);
|
|
13
|
+
const {stdout: tracked} = await execute(
|
|
14
|
+
"git",
|
|
15
|
+
["ls-files", "--cached", "--others", "--exclude-standard", "-z"],
|
|
16
|
+
options
|
|
17
|
+
);
|
|
18
|
+
const expected = new Set(
|
|
19
|
+
tracked.split("\0").filter(file => file.endsWith(".test.ts") && existsSync(path.join(root, file)))
|
|
20
|
+
);
|
|
21
|
+
const owners = new Map();
|
|
22
|
+
|
|
23
|
+
for (const project of projects) {
|
|
24
|
+
const {stdout} = await execute(
|
|
25
|
+
process.execPath,
|
|
26
|
+
[jest, "--selectProjects", project, "--listTests", "--json", "--runInBand"],
|
|
27
|
+
options
|
|
28
|
+
);
|
|
29
|
+
const files = JSON.parse(stdout);
|
|
30
|
+
console.info(`${project}: ${files.length} files`);
|
|
31
|
+
for (const filename of files) {
|
|
32
|
+
const file = path.relative(root, filename).split(path.sep).join("/");
|
|
33
|
+
assert(!owners.has(file), `${file} belongs to both ${owners.get(file)} and ${project}`);
|
|
34
|
+
owners.set(file, project);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
assert.deepEqual(new Set(owners.keys()), expected, "Every test file must belong to exactly one Jest project");
|
|
38
|
+
console.info(`${expected.size} test files, each in exactly one project`);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import {spawn} from "node:child_process";
|
|
2
|
+
import {constants} from "node:os";
|
|
3
|
+
import path from "node:path";
|
|
4
|
+
|
|
5
|
+
const root = path.resolve(import.meta.dirname, "..");
|
|
6
|
+
// Keep the workaround scoped to the environment where this project reproduces nodejs/node#62393.
|
|
7
|
+
const flags = process.platform === "darwin" && process.arch === "arm64" ? ["--no-sparkplug"] : [];
|
|
8
|
+
const child = spawn(
|
|
9
|
+
process.execPath,
|
|
10
|
+
[...flags, path.join(root, "node_modules/jest/bin/jest.js"), ...process.argv.slice(2)],
|
|
11
|
+
{stdio: "inherit"}
|
|
12
|
+
);
|
|
13
|
+
|
|
14
|
+
const forward = signal => child.kill(signal);
|
|
15
|
+
const signals = ["SIGINT", "SIGTERM", "SIGHUP"];
|
|
16
|
+
for (const signal of signals) process.on(signal, forward);
|
|
17
|
+
child.once("error", error => {
|
|
18
|
+
console.error(error);
|
|
19
|
+
process.exitCode = 1;
|
|
20
|
+
});
|
|
21
|
+
child.once("close", (code, signal) => {
|
|
22
|
+
for (const signal of signals) process.off(signal, forward);
|
|
23
|
+
if (signal) console.error(`Jest terminated with ${signal}`);
|
|
24
|
+
process.exitCode = code ?? (signal ? 128 + constants.signals[signal] : 1);
|
|
25
|
+
});
|
package/types/client.d.ts
CHANGED
|
@@ -309,3 +309,18 @@ declare module "*?asis" {
|
|
|
309
309
|
const src: string;
|
|
310
310
|
export default src;
|
|
311
311
|
}
|
|
312
|
+
|
|
313
|
+
declare module "*?isolation" {
|
|
314
|
+
const classes: Readonly<Record<string, string>>;
|
|
315
|
+
export default classes;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
declare module "*?isolation&asis" {
|
|
319
|
+
const src: string;
|
|
320
|
+
export default src;
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
declare module "*?asis&isolation" {
|
|
324
|
+
const src: string;
|
|
325
|
+
export default src;
|
|
326
|
+
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { DataCollectionPermissions } from "../../../types/browser.js";
|
|
2
|
-
import { ManifestAccessibleResource } from "../../../types/manifest.js";
|
|
3
|
-
type ManifestPermissions = chrome.runtime.ManifestPermission;
|
|
4
|
-
type ManifestOptionalPermissions = chrome.runtime.ManifestOptionalPermission;
|
|
5
|
-
type Permission = ManifestPermissions | ManifestOptionalPermissions;
|
|
6
|
-
/**
|
|
7
|
-
* Filters and adapts permissions for Manifest V2 compatibility.
|
|
8
|
-
*
|
|
9
|
-
* @param permissions - Set of permissions to filter
|
|
10
|
-
* @returns New set of permissions adapted for Manifest V2
|
|
11
|
-
*/
|
|
12
|
-
export declare const filterPermissions: <T extends Permission>(permissions: Set<T>) => Set<T>;
|
|
13
|
-
export declare const filterPermissionsForMV2: <T extends Permission>(permissions: Set<T>) => Set<T>;
|
|
14
|
-
export declare const filterPermissionsForMV3: <T extends Permission>(permissions: Set<T>) => Set<T>;
|
|
15
|
-
export declare const filterOptionalPermissions: <O extends ManifestOptionalPermissions, R extends ManifestPermissions>(optional: Set<O>, required: Set<R>) => O[];
|
|
16
|
-
export declare const filterHostPatterns: (patterns: Set<string>) => Set<string>;
|
|
17
|
-
export declare const mergeWebAccessibleResources: (resources: ManifestAccessibleResource[]) => ManifestAccessibleResource[];
|
|
18
|
-
/**
|
|
19
|
-
* Normalizes data collection permissions for the manifest.
|
|
20
|
-
*
|
|
21
|
-
* - Removes duplicate permissions.
|
|
22
|
-
* - Filters out invalid permissions not present in DataCollectionPermission enum.
|
|
23
|
-
* - Sets "none" as default if required permissions are empty.
|
|
24
|
-
* - Removes "none" if real permissions are added to required.
|
|
25
|
-
* - Removes "none" from optional permissions.
|
|
26
|
-
* - Removes any permission from optional if it's already in required.
|
|
27
|
-
* - Sorts both required and optional permissions alphabetically.
|
|
28
|
-
*
|
|
29
|
-
* @param permissions - The permissions object to normalize.
|
|
30
|
-
*/
|
|
31
|
-
export declare const normalizeDataCollectionPermissions: (permissions?: DataCollectionPermissions) => DataCollectionPermissions;
|
|
32
|
-
export {};
|
|
@@ -1,209 +0,0 @@
|
|
|
1
|
-
import _ from "lodash";
|
|
2
|
-
import { DataCollectionPermission } from "./../../../types/browser.js";
|
|
3
|
-
import { ManifestMatchSchemes, ManifestSpecialSchemes } from "./../../../types/manifest.js";
|
|
4
|
-
const filterPermissions = (permissions) => {
|
|
5
|
-
if (permissions.has("tabs")) {
|
|
6
|
-
permissions.delete("activeTab");
|
|
7
|
-
}
|
|
8
|
-
return permissions;
|
|
9
|
-
};
|
|
10
|
-
const filterPermissionsForMV2 = (permissions) => {
|
|
11
|
-
const filteredPermissions = new Set(permissions);
|
|
12
|
-
if (filteredPermissions.has("scripting")) {
|
|
13
|
-
filteredPermissions.delete("scripting");
|
|
14
|
-
filteredPermissions.add("tabs");
|
|
15
|
-
}
|
|
16
|
-
filteredPermissions.delete("offscreen");
|
|
17
|
-
return filterPermissions(filteredPermissions);
|
|
18
|
-
};
|
|
19
|
-
const filterPermissionsForMV3 = (permissions) => {
|
|
20
|
-
const filteredPermissions = new Set(permissions);
|
|
21
|
-
filteredPermissions.delete("webAuthenticationProxy");
|
|
22
|
-
filteredPermissions.delete("webRequestAuthProvider");
|
|
23
|
-
filteredPermissions.delete("webRequestBlocking");
|
|
24
|
-
return filterPermissions(filteredPermissions);
|
|
25
|
-
};
|
|
26
|
-
const filterOptionalPermissions = (optional, required) => {
|
|
27
|
-
const allPermissions = filterPermissions(/* @__PURE__ */ new Set([...optional, ...required]));
|
|
28
|
-
return _.difference(Array.from(allPermissions), Array.from(required));
|
|
29
|
-
};
|
|
30
|
-
const filterHostPatterns = (patterns) => {
|
|
31
|
-
if (patterns.has("<all_urls>")) {
|
|
32
|
-
return /* @__PURE__ */ new Set(["<all_urls>"]);
|
|
33
|
-
}
|
|
34
|
-
const result = /* @__PURE__ */ new Set();
|
|
35
|
-
const activeWildcards = /* @__PURE__ */ new Set();
|
|
36
|
-
if (patterns.has("*://*/*")) {
|
|
37
|
-
activeWildcards.add("*://*/*");
|
|
38
|
-
result.add("*://*/*");
|
|
39
|
-
}
|
|
40
|
-
for (const scheme of ManifestMatchSchemes) {
|
|
41
|
-
const wildcard = `${scheme}://*/*`;
|
|
42
|
-
if (patterns.has(wildcard)) {
|
|
43
|
-
if (scheme === "http" || scheme === "https") {
|
|
44
|
-
if (!activeWildcards.has("*://*/*")) {
|
|
45
|
-
activeWildcards.add(wildcard);
|
|
46
|
-
result.add(wildcard);
|
|
47
|
-
}
|
|
48
|
-
} else {
|
|
49
|
-
activeWildcards.add(wildcard);
|
|
50
|
-
result.add(wildcard);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
const isCoveredByWildcard = (pattern) => {
|
|
55
|
-
const schemeIndex = pattern.indexOf("://");
|
|
56
|
-
if (schemeIndex === -1) return false;
|
|
57
|
-
const scheme = pattern.substring(0, schemeIndex);
|
|
58
|
-
if (ManifestSpecialSchemes.has(scheme)) {
|
|
59
|
-
return false;
|
|
60
|
-
}
|
|
61
|
-
if (activeWildcards.has("*://*/*") && (scheme === "http" || scheme === "https")) {
|
|
62
|
-
return true;
|
|
63
|
-
}
|
|
64
|
-
return activeWildcards.has(`${scheme}://*/*`);
|
|
65
|
-
};
|
|
66
|
-
for (const pattern of patterns) {
|
|
67
|
-
if (activeWildcards.has(pattern)) {
|
|
68
|
-
continue;
|
|
69
|
-
}
|
|
70
|
-
if (!isCoveredByWildcard(pattern)) {
|
|
71
|
-
result.add(pattern);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
return result;
|
|
75
|
-
};
|
|
76
|
-
const mergeWebAccessibleResources = (resources) => {
|
|
77
|
-
var _a;
|
|
78
|
-
if (resources.length === 0) return [];
|
|
79
|
-
const simplifiedMatches = resources.map((r) => {
|
|
80
|
-
const { resources: resources2, matches, extensionIds, useDynamicUrl } = r;
|
|
81
|
-
return {
|
|
82
|
-
resources: resources2,
|
|
83
|
-
extensionIds,
|
|
84
|
-
useDynamicUrl,
|
|
85
|
-
matches: matches ? Array.from(filterHostPatterns(new Set(matches))) : matches
|
|
86
|
-
};
|
|
87
|
-
});
|
|
88
|
-
const normalize = (arr) => Array.from(new Set(arr || [])).sort();
|
|
89
|
-
const makeKey = (r, exclude) => {
|
|
90
|
-
const obj = {
|
|
91
|
-
resources: normalize(r.resources),
|
|
92
|
-
matches: normalize(r.matches),
|
|
93
|
-
extensionIds: normalize(r.extensionIds),
|
|
94
|
-
useDynamicUrl: r.useDynamicUrl
|
|
95
|
-
};
|
|
96
|
-
for (const field of exclude) {
|
|
97
|
-
delete obj[field];
|
|
98
|
-
}
|
|
99
|
-
return JSON.stringify(obj);
|
|
100
|
-
};
|
|
101
|
-
const mergeTwo = (a, b) => ({
|
|
102
|
-
resources: normalize([...a.resources, ...b.resources]),
|
|
103
|
-
matches: normalize([...a.matches || [], ...b.matches || []]),
|
|
104
|
-
extensionIds: normalize([...a.extensionIds || [], ...b.extensionIds || []]),
|
|
105
|
-
useDynamicUrl: a.useDynamicUrl
|
|
106
|
-
});
|
|
107
|
-
const merge = (resources2, mergeBy) => {
|
|
108
|
-
const map = /* @__PURE__ */ new Map();
|
|
109
|
-
let changed2 = false;
|
|
110
|
-
for (const r of resources2) {
|
|
111
|
-
const key = makeKey(r, [mergeBy]);
|
|
112
|
-
if (map.has(key)) {
|
|
113
|
-
const merged = mergeTwo(map.get(key), r);
|
|
114
|
-
map.set(key, merged);
|
|
115
|
-
changed2 = true;
|
|
116
|
-
} else {
|
|
117
|
-
map.set(key, r);
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return {
|
|
121
|
-
changed: changed2,
|
|
122
|
-
result: Array.from(map.values())
|
|
123
|
-
};
|
|
124
|
-
};
|
|
125
|
-
let changed = true;
|
|
126
|
-
let result = simplifiedMatches.map((r) => ({
|
|
127
|
-
resources: normalize(r.resources),
|
|
128
|
-
matches: normalize(r.matches),
|
|
129
|
-
extensionIds: normalize(r.extensionIds),
|
|
130
|
-
useDynamicUrl: r.useDynamicUrl
|
|
131
|
-
}));
|
|
132
|
-
while (changed) {
|
|
133
|
-
changed = false;
|
|
134
|
-
const mergeByResources = merge(result, "resources");
|
|
135
|
-
const afterResources = mergeByResources.result;
|
|
136
|
-
const mergeByMatches = merge(afterResources, "matches");
|
|
137
|
-
const afterMatches = mergeByMatches.result;
|
|
138
|
-
const mergeByExtensionIds = merge(afterMatches, "extensionIds");
|
|
139
|
-
const afterExtensionIds = mergeByExtensionIds.result;
|
|
140
|
-
changed = mergeByResources.changed || mergeByMatches.changed || mergeByExtensionIds.changed;
|
|
141
|
-
result = afterExtensionIds;
|
|
142
|
-
}
|
|
143
|
-
for (const entry of result) {
|
|
144
|
-
if (!entry.matches) continue;
|
|
145
|
-
if (entry.matches.includes("<all_urls>") || entry.matches.includes("*://*/*")) {
|
|
146
|
-
for (const other of result) {
|
|
147
|
-
if (other === entry) continue;
|
|
148
|
-
if (_.isEqual(other.matches, entry.matches) || other.useDynamicUrl !== entry.useDynamicUrl || !_.isEqual(other.extensionIds, entry.extensionIds)) {
|
|
149
|
-
continue;
|
|
150
|
-
}
|
|
151
|
-
other.resources = other.resources.filter((r) => !entry.resources.includes(r));
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
for (const entry of result) {
|
|
156
|
-
if (!entry.matches) continue;
|
|
157
|
-
for (const scheme of ManifestMatchSchemes) {
|
|
158
|
-
if (entry.matches.includes(`${scheme}://*/*`)) {
|
|
159
|
-
for (const other of result) {
|
|
160
|
-
if (other === entry) continue;
|
|
161
|
-
if (other.useDynamicUrl !== entry.useDynamicUrl || !_.isEqual(other.extensionIds, entry.extensionIds)) {
|
|
162
|
-
continue;
|
|
163
|
-
}
|
|
164
|
-
if ((_a = other.matches) == null ? void 0 : _a.some((m) => m.startsWith(`${scheme}://`))) {
|
|
165
|
-
other.resources = other.resources.filter((r) => !entry.resources.includes(r));
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
}
|
|
171
|
-
result = result.filter((r) => r.resources.length > 0).map((r) => {
|
|
172
|
-
var _a2, _b;
|
|
173
|
-
if (((_a2 = r.matches) == null ? void 0 : _a2.length) === 0) delete r.matches;
|
|
174
|
-
if (((_b = r.extensionIds) == null ? void 0 : _b.length) === 0) delete r.extensionIds;
|
|
175
|
-
if (r.useDynamicUrl === void 0) delete r.useDynamicUrl;
|
|
176
|
-
return r;
|
|
177
|
-
});
|
|
178
|
-
return result;
|
|
179
|
-
};
|
|
180
|
-
const normalizeDataCollectionPermissions = (permissions) => {
|
|
181
|
-
const validPermissions = Object.values(DataCollectionPermission);
|
|
182
|
-
let required = _.uniq((permissions == null ? void 0 : permissions.required) || []).filter(
|
|
183
|
-
(p) => p === "none" || validPermissions.includes(p)
|
|
184
|
-
);
|
|
185
|
-
let optional = _.uniq((permissions == null ? void 0 : permissions.optional) || []).filter(
|
|
186
|
-
(p) => p !== "none" && validPermissions.includes(p)
|
|
187
|
-
);
|
|
188
|
-
if (required.length === 0) {
|
|
189
|
-
required = ["none"];
|
|
190
|
-
}
|
|
191
|
-
if (required.length > 1 && required.includes("none")) {
|
|
192
|
-
required = _.without(required, "none");
|
|
193
|
-
}
|
|
194
|
-
optional = _.difference(optional, required);
|
|
195
|
-
return {
|
|
196
|
-
required: required.toSorted(),
|
|
197
|
-
optional: optional.length > 0 ? optional.toSorted() : void 0
|
|
198
|
-
};
|
|
199
|
-
};
|
|
200
|
-
export {
|
|
201
|
-
filterHostPatterns,
|
|
202
|
-
filterOptionalPermissions,
|
|
203
|
-
filterPermissions,
|
|
204
|
-
filterPermissionsForMV2,
|
|
205
|
-
filterPermissionsForMV3,
|
|
206
|
-
mergeWebAccessibleResources,
|
|
207
|
-
normalizeDataCollectionPermissions
|
|
208
|
-
};
|
|
209
|
-
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/builders/manifest/utils.ts"],"sourcesContent":["import _ from \"lodash\";\nimport {DataCollectionPermission, DataCollectionPermissions} from \"@typing/browser\";\n\nimport {ManifestAccessibleResource, ManifestMatchSchemes, ManifestSpecialSchemes} from \"@typing/manifest\";\n\ntype ManifestPermissions = chrome.runtime.ManifestPermission;\ntype ManifestOptionalPermissions = chrome.runtime.ManifestOptionalPermission;\n\ntype Permission = ManifestPermissions | ManifestOptionalPermissions;\n/**\n * Filters and adapts permissions for Manifest V2 compatibility.\n *\n * @param permissions - Set of permissions to filter\n * @returns New set of permissions adapted for Manifest V2\n */\nexport const filterPermissions = <T extends Permission>(permissions: Set<T>): Set<T> => {\n if (permissions.has(\"tabs\" as T)) {\n permissions.delete(\"activeTab\" as T);\n }\n return permissions;\n};\n\nexport const filterPermissionsForMV2 = <T extends Permission>(permissions: Set<T>): Set<T> => {\n const filteredPermissions = new Set(permissions);\n\n /**\n * Manifest V3 introduced a new 'scripting' permission for working with the Chrome Scripting API,\n * but Manifest V2 uses the 'tabs' permission for executing scripts on web pages.\n * This function automatically replaces 'scripting' with 'tabs' to ensure backward compatibility.\n *\n * @example\n * ```typescript\n * const mv3Permissions = new Set(['scripting', 'storage', 'activeTab']);\n * const mv2Permissions = filterPermissionsForMV2(mv3Permissions);\n * // Result: Set(['tabs', 'storage', 'activeTab'])\n * ```\n */\n if (filteredPermissions.has(\"scripting\" as T)) {\n filteredPermissions.delete(\"scripting\" as T);\n filteredPermissions.add(\"tabs\" as T);\n }\n\n filteredPermissions.delete(\"offscreen\" as T);\n\n return filterPermissions(filteredPermissions);\n};\n\nexport const filterPermissionsForMV3 = <T extends Permission>(permissions: Set<T>): Set<T> => {\n const filteredPermissions = new Set(permissions);\n\n /**\n * @permissions webRequestBlocking, webAuthenticationProxy, webRequestAuthProvider\n * @description These permissions were removed in Manifest V3 due to concerns related to security, performance, and transparency.\n * - `webRequestBlocking`: Allowed real-time interception and modification of network requests, which introduced latency and potential security risks. Replaced by the safer, declarative `declarativeNetRequest` API.\n * - `webAuthenticationProxy`: Provided proxy authentication control, but was rarely used and posed privacy risks.\n * - `webRequestAuthProvider`: Enabled handling of HTTP authentication (onAuthRequired), but was considered unsafe in the new MV3 architecture due to its ability to interfere with authentication flows.\n * @manifestV3 Removed. These APIs are no longer available in extensions using Manifest V3.\n */\n filteredPermissions.delete(\"webAuthenticationProxy\" as T);\n filteredPermissions.delete(\"webRequestAuthProvider\" as T);\n filteredPermissions.delete(\"webRequestBlocking\" as T);\n\n return filterPermissions(filteredPermissions);\n};\n\nexport const filterOptionalPermissions = <O extends ManifestOptionalPermissions, R extends ManifestPermissions>(\n optional: Set<O>,\n required: Set<R>\n): O[] => {\n const allPermissions = filterPermissions(new Set([...optional, ...required]));\n return _.difference(Array.from(allPermissions), Array.from(required)) as O[];\n};\n\nexport const filterHostPatterns = (patterns: Set<string>): Set<string> => {\n if (patterns.has(\"<all_urls>\")) {\n return new Set([\"<all_urls>\"]);\n }\n\n const result = new Set<string>();\n\n const activeWildcards = new Set<string>();\n\n if (patterns.has(\"*://*/*\")) {\n activeWildcards.add(\"*://*/*\");\n result.add(\"*://*/*\");\n }\n\n for (const scheme of ManifestMatchSchemes) {\n const wildcard = `${scheme}://*/*`;\n\n if (patterns.has(wildcard)) {\n if (scheme === \"http\" || scheme === \"https\") {\n if (!activeWildcards.has(\"*://*/*\")) {\n activeWildcards.add(wildcard);\n result.add(wildcard);\n }\n } else {\n activeWildcards.add(wildcard);\n result.add(wildcard);\n }\n }\n }\n\n const isCoveredByWildcard = (pattern: string): boolean => {\n const schemeIndex = pattern.indexOf(\"://\");\n if (schemeIndex === -1) return false;\n\n const scheme = pattern.substring(0, schemeIndex);\n\n if (ManifestSpecialSchemes.has(scheme)) {\n return false;\n }\n\n if (activeWildcards.has(\"*://*/*\") && (scheme === \"http\" || scheme === \"https\")) {\n return true;\n }\n\n return activeWildcards.has(`${scheme}://*/*`);\n };\n\n for (const pattern of patterns) {\n if (activeWildcards.has(pattern)) {\n continue;\n }\n\n if (!isCoveredByWildcard(pattern)) {\n result.add(pattern);\n }\n }\n\n return result;\n};\n\nexport const mergeWebAccessibleResources = (resources: ManifestAccessibleResource[]): ManifestAccessibleResource[] => {\n if (resources.length === 0) return [];\n\n const simplifiedMatches: ManifestAccessibleResource[] = resources.map(r => {\n const {resources, matches, extensionIds, useDynamicUrl} = r;\n return {\n resources,\n extensionIds,\n useDynamicUrl,\n matches: matches ? Array.from(filterHostPatterns(new Set(matches))) : matches,\n };\n });\n\n const normalize = (arr?: string[]) => Array.from(new Set(arr || [])).sort();\n\n const makeKey = (r: ManifestAccessibleResource, exclude: (keyof ManifestAccessibleResource)[]): string => {\n const obj: ManifestAccessibleResource = {\n resources: normalize(r.resources),\n matches: normalize(r.matches),\n extensionIds: normalize(r.extensionIds),\n useDynamicUrl: r.useDynamicUrl,\n };\n\n for (const field of exclude) {\n delete obj[field];\n }\n\n return JSON.stringify(obj);\n };\n\n const mergeTwo = (a: ManifestAccessibleResource, b: ManifestAccessibleResource): ManifestAccessibleResource => ({\n resources: normalize([...a.resources, ...b.resources]),\n matches: normalize([...(a.matches || []), ...(b.matches || [])]),\n extensionIds: normalize([...(a.extensionIds || []), ...(b.extensionIds || [])]),\n useDynamicUrl: a.useDynamicUrl,\n });\n\n const merge = (resources: ManifestAccessibleResource[], mergeBy: keyof ManifestAccessibleResource) => {\n const map = new Map<string, ManifestAccessibleResource>();\n let changed = false;\n for (const r of resources) {\n const key = makeKey(r, [mergeBy]);\n if (map.has(key)) {\n const merged = mergeTwo(map.get(key)!, r);\n map.set(key, merged);\n changed = true;\n } else {\n map.set(key, r);\n }\n }\n\n return {\n changed,\n result: Array.from(map.values()),\n };\n };\n\n let changed = true;\n\n let result: ManifestAccessibleResource[] = simplifiedMatches.map(r => ({\n resources: normalize(r.resources),\n matches: normalize(r.matches),\n extensionIds: normalize(r.extensionIds),\n useDynamicUrl: r.useDynamicUrl,\n }));\n\n while (changed) {\n changed = false;\n\n const mergeByResources = merge(result, \"resources\");\n const afterResources = mergeByResources.result;\n\n const mergeByMatches = merge(afterResources, \"matches\");\n const afterMatches = mergeByMatches.result;\n\n const mergeByExtensionIds = merge(afterMatches, \"extensionIds\");\n const afterExtensionIds = mergeByExtensionIds.result;\n\n changed = mergeByResources.changed || mergeByMatches.changed || mergeByExtensionIds.changed;\n result = afterExtensionIds;\n }\n\n for (const entry of result) {\n if (!entry.matches) continue;\n if (entry.matches.includes(\"<all_urls>\") || entry.matches.includes(\"*://*/*\")) {\n for (const other of result) {\n if (other === entry) continue;\n\n if (\n _.isEqual(other.matches, entry.matches) ||\n other.useDynamicUrl !== entry.useDynamicUrl ||\n !_.isEqual(other.extensionIds, entry.extensionIds)\n ) {\n continue;\n }\n other.resources = other.resources.filter(r => !entry.resources.includes(r));\n }\n }\n }\n\n for (const entry of result) {\n if (!entry.matches) continue;\n for (const scheme of ManifestMatchSchemes) {\n if (entry.matches.includes(`${scheme}://*/*`)) {\n for (const other of result) {\n if (other === entry) continue;\n if (\n other.useDynamicUrl !== entry.useDynamicUrl ||\n !_.isEqual(other.extensionIds, entry.extensionIds)\n ) {\n continue;\n }\n if (other.matches?.some(m => m.startsWith(`${scheme}://`))) {\n other.resources = other.resources.filter(r => !entry.resources.includes(r));\n }\n }\n }\n }\n }\n\n result = result\n .filter(r => r.resources.length > 0)\n .map(r => {\n if (r.matches?.length === 0) delete r.matches;\n if (r.extensionIds?.length === 0) delete r.extensionIds;\n if (r.useDynamicUrl === undefined) delete r.useDynamicUrl;\n return r;\n });\n\n return result;\n};\n\n/**\n * Normalizes data collection permissions for the manifest.\n *\n * - Removes duplicate permissions.\n * - Filters out invalid permissions not present in DataCollectionPermission enum.\n * - Sets \"none\" as default if required permissions are empty.\n * - Removes \"none\" if real permissions are added to required.\n * - Removes \"none\" from optional permissions.\n * - Removes any permission from optional if it's already in required.\n * - Sorts both required and optional permissions alphabetically.\n *\n * @param permissions - The permissions object to normalize.\n */\nexport const normalizeDataCollectionPermissions = (\n permissions?: DataCollectionPermissions\n): DataCollectionPermissions => {\n const validPermissions = Object.values(DataCollectionPermission) as string[];\n\n let required = _.uniq(permissions?.required || []).filter(\n p => (p as string) === \"none\" || validPermissions.includes(p as string)\n );\n\n let optional = _.uniq(permissions?.optional || []).filter(\n p => (p as string) !== \"none\" && validPermissions.includes(p as string)\n );\n\n if (required.length === 0) {\n required = [\"none\" as any];\n }\n\n if (required.length > 1 && required.includes(\"none\" as any)) {\n required = _.without(required, \"none\" as any);\n }\n\n optional = _.difference(optional, required);\n\n return {\n required: required.toSorted() as DataCollectionPermissions[\"required\"],\n optional: optional.length > 0 ? (optional.toSorted() as DataCollectionPermissions[\"optional\"]) : undefined,\n };\n};\n"],"mappings":"AAAA,OAAO,OAAO;AACd,SAAQ,gCAA0D;AAElE,SAAoC,sBAAsB,8BAA6B;AAYhF,MAAM,oBAAoB,CAAuB,gBAAgC;AACpF,MAAI,YAAY,IAAI,MAAW,GAAG;AAC9B,gBAAY,OAAO,WAAgB;AAAA,EACvC;AACA,SAAO;AACX;AAEO,MAAM,0BAA0B,CAAuB,gBAAgC;AAC1F,QAAM,sBAAsB,IAAI,IAAI,WAAW;AAc/C,MAAI,oBAAoB,IAAI,WAAgB,GAAG;AAC3C,wBAAoB,OAAO,WAAgB;AAC3C,wBAAoB,IAAI,MAAW;AAAA,EACvC;AAEA,sBAAoB,OAAO,WAAgB;AAE3C,SAAO,kBAAkB,mBAAmB;AAChD;AAEO,MAAM,0BAA0B,CAAuB,gBAAgC;AAC1F,QAAM,sBAAsB,IAAI,IAAI,WAAW;AAU/C,sBAAoB,OAAO,wBAA6B;AACxD,sBAAoB,OAAO,wBAA6B;AACxD,sBAAoB,OAAO,oBAAyB;AAEpD,SAAO,kBAAkB,mBAAmB;AAChD;AAEO,MAAM,4BAA4B,CACrC,UACA,aACM;AACN,QAAM,iBAAiB,kBAAkB,oBAAI,IAAI,CAAC,GAAG,UAAU,GAAG,QAAQ,CAAC,CAAC;AAC5E,SAAO,EAAE,WAAW,MAAM,KAAK,cAAc,GAAG,MAAM,KAAK,QAAQ,CAAC;AACxE;AAEO,MAAM,qBAAqB,CAAC,aAAuC;AACtE,MAAI,SAAS,IAAI,YAAY,GAAG;AAC5B,WAAO,oBAAI,IAAI,CAAC,YAAY,CAAC;AAAA,EACjC;AAEA,QAAM,SAAS,oBAAI,IAAY;AAE/B,QAAM,kBAAkB,oBAAI,IAAY;AAExC,MAAI,SAAS,IAAI,SAAS,GAAG;AACzB,oBAAgB,IAAI,SAAS;AAC7B,WAAO,IAAI,SAAS;AAAA,EACxB;AAEA,aAAW,UAAU,sBAAsB;AACvC,UAAM,WAAW,GAAG,MAAM;AAE1B,QAAI,SAAS,IAAI,QAAQ,GAAG;AACxB,UAAI,WAAW,UAAU,WAAW,SAAS;AACzC,YAAI,CAAC,gBAAgB,IAAI,SAAS,GAAG;AACjC,0BAAgB,IAAI,QAAQ;AAC5B,iBAAO,IAAI,QAAQ;AAAA,QACvB;AAAA,MACJ,OAAO;AACH,wBAAgB,IAAI,QAAQ;AAC5B,eAAO,IAAI,QAAQ;AAAA,MACvB;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,sBAAsB,CAAC,YAA6B;AACtD,UAAM,cAAc,QAAQ,QAAQ,KAAK;AACzC,QAAI,gBAAgB,GAAI,QAAO;AAE/B,UAAM,SAAS,QAAQ,UAAU,GAAG,WAAW;AAE/C,QAAI,uBAAuB,IAAI,MAAM,GAAG;AACpC,aAAO;AAAA,IACX;AAEA,QAAI,gBAAgB,IAAI,SAAS,MAAM,WAAW,UAAU,WAAW,UAAU;AAC7E,aAAO;AAAA,IACX;AAEA,WAAO,gBAAgB,IAAI,GAAG,MAAM,QAAQ;AAAA,EAChD;AAEA,aAAW,WAAW,UAAU;AAC5B,QAAI,gBAAgB,IAAI,OAAO,GAAG;AAC9B;AAAA,IACJ;AAEA,QAAI,CAAC,oBAAoB,OAAO,GAAG;AAC/B,aAAO,IAAI,OAAO;AAAA,IACtB;AAAA,EACJ;AAEA,SAAO;AACX;AAEO,MAAM,8BAA8B,CAAC,cAA0E;AArItH;AAsII,MAAI,UAAU,WAAW,EAAG,QAAO,CAAC;AAEpC,QAAM,oBAAkD,UAAU,IAAI,OAAK;AACvE,UAAM,EAAC,WAAAA,YAAW,SAAS,cAAc,cAAa,IAAI;AAC1D,WAAO;AAAA,MACH,WAAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,UAAU,MAAM,KAAK,mBAAmB,IAAI,IAAI,OAAO,CAAC,CAAC,IAAI;AAAA,IAC1E;AAAA,EACJ,CAAC;AAED,QAAM,YAAY,CAAC,QAAmB,MAAM,KAAK,IAAI,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK;AAE1E,QAAM,UAAU,CAAC,GAA+B,YAA0D;AACtG,UAAM,MAAkC;AAAA,MACpC,WAAW,UAAU,EAAE,SAAS;AAAA,MAChC,SAAS,UAAU,EAAE,OAAO;AAAA,MAC5B,cAAc,UAAU,EAAE,YAAY;AAAA,MACtC,eAAe,EAAE;AAAA,IACrB;AAEA,eAAW,SAAS,SAAS;AACzB,aAAO,IAAI,KAAK;AAAA,IACpB;AAEA,WAAO,KAAK,UAAU,GAAG;AAAA,EAC7B;AAEA,QAAM,WAAW,CAAC,GAA+B,OAA+D;AAAA,IAC5G,WAAW,UAAU,CAAC,GAAG,EAAE,WAAW,GAAG,EAAE,SAAS,CAAC;AAAA,IACrD,SAAS,UAAU,CAAC,GAAI,EAAE,WAAW,CAAC,GAAI,GAAI,EAAE,WAAW,CAAC,CAAE,CAAC;AAAA,IAC/D,cAAc,UAAU,CAAC,GAAI,EAAE,gBAAgB,CAAC,GAAI,GAAI,EAAE,gBAAgB,CAAC,CAAE,CAAC;AAAA,IAC9E,eAAe,EAAE;AAAA,EACrB;AAEA,QAAM,QAAQ,CAACA,YAAyC,YAA8C;AAClG,UAAM,MAAM,oBAAI,IAAwC;AACxD,QAAIC,WAAU;AACd,eAAW,KAAKD,YAAW;AACvB,YAAM,MAAM,QAAQ,GAAG,CAAC,OAAO,CAAC;AAChC,UAAI,IAAI,IAAI,GAAG,GAAG;AACd,cAAM,SAAS,SAAS,IAAI,IAAI,GAAG,GAAI,CAAC;AACxC,YAAI,IAAI,KAAK,MAAM;AACnB,QAAAC,WAAU;AAAA,MACd,OAAO;AACH,YAAI,IAAI,KAAK,CAAC;AAAA,MAClB;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,SAAAA;AAAA,MACA,QAAQ,MAAM,KAAK,IAAI,OAAO,CAAC;AAAA,IACnC;AAAA,EACJ;AAEA,MAAI,UAAU;AAEd,MAAI,SAAuC,kBAAkB,IAAI,QAAM;AAAA,IACnE,WAAW,UAAU,EAAE,SAAS;AAAA,IAChC,SAAS,UAAU,EAAE,OAAO;AAAA,IAC5B,cAAc,UAAU,EAAE,YAAY;AAAA,IACtC,eAAe,EAAE;AAAA,EACrB,EAAE;AAEF,SAAO,SAAS;AACZ,cAAU;AAEV,UAAM,mBAAmB,MAAM,QAAQ,WAAW;AAClD,UAAM,iBAAiB,iBAAiB;AAExC,UAAM,iBAAiB,MAAM,gBAAgB,SAAS;AACtD,UAAM,eAAe,eAAe;AAEpC,UAAM,sBAAsB,MAAM,cAAc,cAAc;AAC9D,UAAM,oBAAoB,oBAAoB;AAE9C,cAAU,iBAAiB,WAAW,eAAe,WAAW,oBAAoB;AACpF,aAAS;AAAA,EACb;AAEA,aAAW,SAAS,QAAQ;AACxB,QAAI,CAAC,MAAM,QAAS;AACpB,QAAI,MAAM,QAAQ,SAAS,YAAY,KAAK,MAAM,QAAQ,SAAS,SAAS,GAAG;AAC3E,iBAAW,SAAS,QAAQ;AACxB,YAAI,UAAU,MAAO;AAErB,YACI,EAAE,QAAQ,MAAM,SAAS,MAAM,OAAO,KACtC,MAAM,kBAAkB,MAAM,iBAC9B,CAAC,EAAE,QAAQ,MAAM,cAAc,MAAM,YAAY,GACnD;AACE;AAAA,QACJ;AACA,cAAM,YAAY,MAAM,UAAU,OAAO,OAAK,CAAC,MAAM,UAAU,SAAS,CAAC,CAAC;AAAA,MAC9E;AAAA,IACJ;AAAA,EACJ;AAEA,aAAW,SAAS,QAAQ;AACxB,QAAI,CAAC,MAAM,QAAS;AACpB,eAAW,UAAU,sBAAsB;AACvC,UAAI,MAAM,QAAQ,SAAS,GAAG,MAAM,QAAQ,GAAG;AAC3C,mBAAW,SAAS,QAAQ;AACxB,cAAI,UAAU,MAAO;AACrB,cACI,MAAM,kBAAkB,MAAM,iBAC9B,CAAC,EAAE,QAAQ,MAAM,cAAc,MAAM,YAAY,GACnD;AACE;AAAA,UACJ;AACA,eAAI,WAAM,YAAN,mBAAe,KAAK,OAAK,EAAE,WAAW,GAAG,MAAM,KAAK,IAAI;AACxD,kBAAM,YAAY,MAAM,UAAU,OAAO,OAAK,CAAC,MAAM,UAAU,SAAS,CAAC,CAAC;AAAA,UAC9E;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAEA,WAAS,OACJ,OAAO,OAAK,EAAE,UAAU,SAAS,CAAC,EAClC,IAAI,OAAK;AA/PlB,QAAAC,KAAA;AAgQY,UAAIA,MAAA,EAAE,YAAF,gBAAAA,IAAW,YAAW,EAAG,QAAO,EAAE;AACtC,UAAI,OAAE,iBAAF,mBAAgB,YAAW,EAAG,QAAO,EAAE;AAC3C,QAAI,EAAE,kBAAkB,OAAW,QAAO,EAAE;AAC5C,WAAO;AAAA,EACX,CAAC;AAEL,SAAO;AACX;AAeO,MAAM,qCAAqC,CAC9C,gBAC4B;AAC5B,QAAM,mBAAmB,OAAO,OAAO,wBAAwB;AAE/D,MAAI,WAAW,EAAE,MAAK,2CAAa,aAAY,CAAC,CAAC,EAAE;AAAA,IAC/C,OAAM,MAAiB,UAAU,iBAAiB,SAAS,CAAW;AAAA,EAC1E;AAEA,MAAI,WAAW,EAAE,MAAK,2CAAa,aAAY,CAAC,CAAC,EAAE;AAAA,IAC/C,OAAM,MAAiB,UAAU,iBAAiB,SAAS,CAAW;AAAA,EAC1E;AAEA,MAAI,SAAS,WAAW,GAAG;AACvB,eAAW,CAAC,MAAa;AAAA,EAC7B;AAEA,MAAI,SAAS,SAAS,KAAK,SAAS,SAAS,MAAa,GAAG;AACzD,eAAW,EAAE,QAAQ,UAAU,MAAa;AAAA,EAChD;AAEA,aAAW,EAAE,WAAW,UAAU,QAAQ;AAE1C,SAAO;AAAA,IACH,UAAU,SAAS,SAAS;AAAA,IAC5B,UAAU,SAAS,SAAS,IAAK,SAAS,SAAS,IAA8C;AAAA,EACrG;AACJ;","names":["resources","changed","_a"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/bundler/plugins/EntrypointPlugin.ts"],"sourcesContent":["import _ from \"lodash\";\nimport path from \"path\";\n\nimport {Compiler, EntryNormalized} from \"@rspack/core\";\nimport {RspackVirtualModulePlugin as VirtualModulesPlugin} from \"rspack-plugin-virtual-module\";\n\nimport {EntrypointEntries, EntrypointFile} from \"@typing/entrypoint\";\n\nexport type EntrypointPluginTemplate = (file: EntrypointFile) => string;\n\nexport type EntrypointPluginUpdate = (files: ReadonlySet<string>) => Promise<EntrypointEntries>;\n\nexport interface EntrypointPluginModule {\n /**\n * Virtual module name, used in the rspack entry and virtual module.\n */\n name: string;\n\n /**\n * Virtual module content.\n */\n module: string;\n}\n\nexport type EntrypointPluginModules = Map<EntrypointFile, EntrypointPluginModule>;\n\nexport type EntrypointPluginEntryModules = Map<string, EntrypointPluginModules>;\n\nexport default class EntrypointPlugin {\n private readonly pluginName: string = \"EntrypointPlugin\";\n\n private _plugin?: VirtualModulesPlugin;\n private _modules?: EntrypointPluginEntryModules;\n\n protected template?: EntrypointPluginTemplate;\n protected update?: EntrypointPluginUpdate;\n\n public static filename(file: EntrypointFile): string {\n let name = file.file;\n\n if (file.external) {\n const {ext} = path.parse(name);\n name = file.import + ext;\n }\n\n return path.join(\"virtual\", name);\n }\n\n protected get plugin(): VirtualModulesPlugin {\n if (this._plugin) {\n return this._plugin;\n }\n\n const modules = Object.fromEntries(this.getModuleContents(this.modules));\n\n return (this._plugin = new VirtualModulesPlugin(modules, \"entrypoint\"));\n }\n\n protected get modules(): EntrypointPluginEntryModules {\n return (this._modules ??= this.createModules(this.entries));\n }\n\n protected get watchFiles(): ReadonlySet<string> {\n const files = Array.from(this.modules.values())\n .flatMap(modules => Array.from(modules.keys()))\n .filter(({external}) => !external)\n .map(({file}) => file);\n\n return new Set(files);\n }\n\n public static from(entries: EntrypointEntries): EntrypointPlugin {\n return new EntrypointPlugin(entries);\n }\n\n constructor(private readonly entries: EntrypointEntries = new Map()) {}\n\n public virtual(template: EntrypointPluginTemplate): this {\n this.template = template;\n\n return this;\n }\n\n public watch(update: EntrypointPluginUpdate): this {\n this.update = update;\n\n return this;\n }\n\n public apply(compiler: Compiler): void {\n this.plugin.apply(compiler);\n\n compiler.hooks.entryOption.tap(this.pluginName, (_, entry) => {\n this.hookEntryOption(entry);\n });\n\n if (this.update) {\n compiler.hooks.watchRun.tapAsync(this.pluginName, (compiler, callback) => {\n this.hookWatchRun(compiler)\n .then(() => callback())\n .catch(callback);\n });\n }\n }\n\n protected hookEntryOption(entry: EntryNormalized): void {\n if (_.isPlainObject(entry)) {\n this.modules.entries().forEach(([name, modules]) => {\n let currentFiles = structuredClone(entry[name] ?? []);\n\n if (\"import\" in currentFiles) {\n currentFiles = currentFiles.import;\n }\n\n currentFiles.push(...Array.from(modules.values(), ({name}) => name));\n\n entry[name] = {\n import: _.uniq(currentFiles),\n };\n });\n } else {\n throw new Error(\"EntrypointPlugin: entry is not an object\");\n }\n }\n\n protected async hookWatchRun(compiler: Compiler): Promise<void> {\n const {modifiedFiles = new Set()} = compiler;\n\n const watchFiles = this.watchFiles;\n\n const needUpdate = Array.from(modifiedFiles).some(file => {\n if (path.isAbsolute(file)) {\n file = path.relative(compiler.context, file);\n }\n\n return watchFiles.has(file);\n });\n\n if (!needUpdate) {\n return;\n }\n\n const updatedEntries = await this.update!(modifiedFiles);\n\n const updatedModules = this.createModules(updatedEntries);\n\n const currentContents = this.getModuleContents(this.modules);\n const updatedContents = this.getModuleContents(updatedModules);\n\n const removedContents = new Map(Array.from(currentContents).filter(entry => !updatedContents.has(entry[0])));\n\n const addedContents = new Map(Array.from(updatedContents).filter(entry => !currentContents.has(entry[0])));\n\n if (removedContents.size > 0 || addedContents.size > 0) {\n removedContents.keys().forEach(name => {\n this.plugin.writeModule(name, \"\");\n });\n\n addedContents.forEach((content, name) => {\n this.plugin.writeModule(name, content);\n });\n\n updatedModules.entries().forEach(([name, modules]) => {\n let entry: string[] = structuredClone(compiler.options.entry[name]);\n\n if (\"import\" in entry) {\n entry = entry.import as string[];\n }\n\n entry = entry.filter(file => !removedContents.has(file));\n\n entry.push(...Array.from(modules.values(), ({name}) => name));\n\n compiler.options.entry[name] = _.uniq(entry);\n });\n }\n\n this._modules = updatedModules;\n }\n\n protected createModules(entries: EntrypointEntries): EntrypointPluginEntryModules {\n const entryModules: EntrypointPluginEntryModules = new Map();\n\n for (const [name, files] of entries) {\n const modules: EntrypointPluginModules = new Map();\n\n for (const file of files) {\n modules.set(file, {\n name: EntrypointPlugin.filename(file),\n module: this.template ? this.template(file) : \"\",\n });\n }\n\n entryModules.set(name, modules);\n }\n\n return entryModules;\n }\n\n protected getModuleContents(modules: EntrypointPluginEntryModules): Map<string, string> {\n const content = new Map<string, string>();\n\n modules.values().forEach(modules => {\n modules.forEach(({name, module}) => {\n content.set(name, module);\n });\n });\n\n return content;\n }\n}\n"],"mappings":"AAAA,OAAO,OAAO;AACd,OAAO,UAAU;AAGjB,SAAQ,6BAA6B,4BAA2B;AAwBhE,MAAO,iBAA+B;AAAA,EA+ClC,YAA6B,UAA6B,oBAAI,IAAI,GAAG;AAAxC;AAAA,EAAyC;AAAA,EAAzC;AAAA,EA9CZ,aAAqB;AAAA,EAE9B;AAAA,EACA;AAAA,EAEE;AAAA,EACA;AAAA,EAEV,OAAc,SAAS,MAA8B;AACjD,QAAI,OAAO,KAAK;AAEhB,QAAI,KAAK,UAAU;AACf,YAAM,EAAC,IAAG,IAAI,KAAK,MAAM,IAAI;AAC7B,aAAO,KAAK,SAAS;AAAA,IACzB;AAEA,WAAO,KAAK,KAAK,WAAW,IAAI;AAAA,EACpC;AAAA,EAEA,IAAc,SAA+B;AACzC,QAAI,KAAK,SAAS;AACd,aAAO,KAAK;AAAA,IAChB;AAEA,UAAM,UAAU,OAAO,YAAY,KAAK,kBAAkB,KAAK,OAAO,CAAC;AAEvE,WAAQ,KAAK,UAAU,IAAI,qBAAqB,SAAS,YAAY;AAAA,EACzE;AAAA,EAEA,IAAc,UAAwC;AAClD,WAAQ,KAAK,aAAL,KAAK,WAAa,KAAK,cAAc,KAAK,OAAO;AAAA,EAC7D;AAAA,EAEA,IAAc,aAAkC;AAC5C,UAAM,QAAQ,MAAM,KAAK,KAAK,QAAQ,OAAO,CAAC,EACzC,QAAQ,aAAW,MAAM,KAAK,QAAQ,KAAK,CAAC,CAAC,EAC7C,OAAO,CAAC,EAAC,SAAQ,MAAM,CAAC,QAAQ,EAChC,IAAI,CAAC,EAAC,KAAI,MAAM,IAAI;AAEzB,WAAO,IAAI,IAAI,KAAK;AAAA,EACxB;AAAA,EAEA,OAAc,KAAK,SAA8C;AAC7D,WAAO,IAAI,iBAAiB,OAAO;AAAA,EACvC;AAAA,EAIO,QAAQ,UAA0C;AACrD,SAAK,WAAW;AAEhB,WAAO;AAAA,EACX;AAAA,EAEO,MAAM,QAAsC;AAC/C,SAAK,SAAS;AAEd,WAAO;AAAA,EACX;AAAA,EAEO,MAAM,UAA0B;AACnC,SAAK,OAAO,MAAM,QAAQ;AAE1B,aAAS,MAAM,YAAY,IAAI,KAAK,YAAY,CAACA,IAAG,UAAU;AAC1D,WAAK,gBAAgB,KAAK;AAAA,IAC9B,CAAC;AAED,QAAI,KAAK,QAAQ;AACb,eAAS,MAAM,SAAS,SAAS,KAAK,YAAY,CAACC,WAAU,aAAa;AACtE,aAAK,aAAaA,SAAQ,EACrB,KAAK,MAAM,SAAS,CAAC,EACrB,MAAM,QAAQ;AAAA,MACvB,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEU,gBAAgB,OAA8B;AACpD,QAAI,EAAE,cAAc,KAAK,GAAG;AACxB,WAAK,QAAQ,QAAQ,EAAE,QAAQ,CAAC,CAAC,MAAM,OAAO,MAAM;AAChD,YAAI,eAAe,gBAAgB,MAAM,IAAI,KAAK,CAAC,CAAC;AAEpD,YAAI,YAAY,cAAc;AAC1B,yBAAe,aAAa;AAAA,QAChC;AAEA,qBAAa,KAAK,GAAG,MAAM,KAAK,QAAQ,OAAO,GAAG,CAAC,EAAC,MAAAC,MAAI,MAAMA,KAAI,CAAC;AAEnE,cAAM,IAAI,IAAI;AAAA,UACV,QAAQ,EAAE,KAAK,YAAY;AAAA,QAC/B;AAAA,MACJ,CAAC;AAAA,IACL,OAAO;AACH,YAAM,IAAI,MAAM,0CAA0C;AAAA,IAC9D;AAAA,EACJ;AAAA,EAEA,MAAgB,aAAa,UAAmC;AAC5D,UAAM,EAAC,gBAAgB,oBAAI,IAAI,EAAC,IAAI;AAEpC,UAAM,aAAa,KAAK;AAExB,UAAM,aAAa,MAAM,KAAK,aAAa,EAAE,KAAK,UAAQ;AACtD,UAAI,KAAK,WAAW,IAAI,GAAG;AACvB,eAAO,KAAK,SAAS,SAAS,SAAS,IAAI;AAAA,MAC/C;AAEA,aAAO,WAAW,IAAI,IAAI;AAAA,IAC9B,CAAC;AAED,QAAI,CAAC,YAAY;AACb;AAAA,IACJ;AAEA,UAAM,iBAAiB,MAAM,KAAK,OAAQ,aAAa;AAEvD,UAAM,iBAAiB,KAAK,cAAc,cAAc;AAExD,UAAM,kBAAkB,KAAK,kBAAkB,KAAK,OAAO;AAC3D,UAAM,kBAAkB,KAAK,kBAAkB,cAAc;AAE7D,UAAM,kBAAkB,IAAI,IAAI,MAAM,KAAK,eAAe,EAAE,OAAO,WAAS,CAAC,gBAAgB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAE3G,UAAM,gBAAgB,IAAI,IAAI,MAAM,KAAK,eAAe,EAAE,OAAO,WAAS,CAAC,gBAAgB,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC;AAEzG,QAAI,gBAAgB,OAAO,KAAK,cAAc,OAAO,GAAG;AACpD,sBAAgB,KAAK,EAAE,QAAQ,UAAQ;AACnC,aAAK,OAAO,YAAY,MAAM,EAAE;AAAA,MACpC,CAAC;AAED,oBAAc,QAAQ,CAAC,SAAS,SAAS;AACrC,aAAK,OAAO,YAAY,MAAM,OAAO;AAAA,MACzC,CAAC;AAED,qBAAe,QAAQ,EAAE,QAAQ,CAAC,CAAC,MAAM,OAAO,MAAM;AAClD,YAAI,QAAkB,gBAAgB,SAAS,QAAQ,MAAM,IAAI,CAAC;AAElE,YAAI,YAAY,OAAO;AACnB,kBAAQ,MAAM;AAAA,QAClB;AAEA,gBAAQ,MAAM,OAAO,UAAQ,CAAC,gBAAgB,IAAI,IAAI,CAAC;AAEvD,cAAM,KAAK,GAAG,MAAM,KAAK,QAAQ,OAAO,GAAG,CAAC,EAAC,MAAAA,MAAI,MAAMA,KAAI,CAAC;AAE5D,iBAAS,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,KAAK;AAAA,MAC/C,CAAC;AAAA,IACL;AAEA,SAAK,WAAW;AAAA,EACpB;AAAA,EAEU,cAAc,SAA0D;AAC9E,UAAM,eAA6C,oBAAI,IAAI;AAE3D,eAAW,CAAC,MAAM,KAAK,KAAK,SAAS;AACjC,YAAM,UAAmC,oBAAI,IAAI;AAEjD,iBAAW,QAAQ,OAAO;AACtB,gBAAQ,IAAI,MAAM;AAAA,UACd,MAAM,iBAAiB,SAAS,IAAI;AAAA,UACpC,QAAQ,KAAK,WAAW,KAAK,SAAS,IAAI,IAAI;AAAA,QAClD,CAAC;AAAA,MACL;AAEA,mBAAa,IAAI,MAAM,OAAO;AAAA,IAClC;AAEA,WAAO;AAAA,EACX;AAAA,EAEU,kBAAkB,SAA4D;AACpF,UAAM,UAAU,oBAAI,IAAoB;AAExC,YAAQ,OAAO,EAAE,QAAQ,CAAAC,aAAW;AAChC,MAAAA,SAAQ,QAAQ,CAAC,EAAC,MAAM,OAAM,MAAM;AAChC,gBAAQ,IAAI,MAAM,MAAM;AAAA,MAC5B,CAAC;AAAA,IACL,CAAC;AAED,WAAO;AAAA,EACX;AACJ;","names":["_","compiler","name","modules"]}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { Compilation, sources } from "@rspack/core";
|
|
2
|
-
class GenerateJsonPlugin {
|
|
3
|
-
constructor(data) {
|
|
4
|
-
this.data = data;
|
|
5
|
-
}
|
|
6
|
-
data;
|
|
7
|
-
pluginName = "GenerateJsonPlugin";
|
|
8
|
-
update;
|
|
9
|
-
apply(compiler) {
|
|
10
|
-
compiler.hooks.watchRun.tapPromise(this.pluginName, async () => {
|
|
11
|
-
const update = this.update;
|
|
12
|
-
if (update) {
|
|
13
|
-
this.data = await update();
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
compiler.hooks.compilation.tap(this.pluginName, (compilation) => {
|
|
17
|
-
compilation.hooks.processAssets.tap(
|
|
18
|
-
{
|
|
19
|
-
name: this.pluginName,
|
|
20
|
-
stage: Compilation.PROCESS_ASSETS_STAGE_ADDITIONAL
|
|
21
|
-
},
|
|
22
|
-
() => this.generateFiles(compilation)
|
|
23
|
-
);
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
watch(update) {
|
|
27
|
-
this.update = update;
|
|
28
|
-
return this;
|
|
29
|
-
}
|
|
30
|
-
generateFiles(compilation) {
|
|
31
|
-
Object.entries(this.data).forEach(([filename, jsonData]) => {
|
|
32
|
-
const json = JSON.stringify(jsonData, null, 2);
|
|
33
|
-
compilation.emitAsset(filename, new sources.RawSource(json));
|
|
34
|
-
});
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
export {
|
|
38
|
-
GenerateJsonPlugin as default
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=GenerateJsonPlugin.js.map
|