adnbn 0.13.0 → 0.15.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/builders/app/build.d.ts +7 -0
- package/dist/cli/builders/app/build.js +58 -0
- package/dist/cli/builders/app/build.js.map +1 -0
- package/dist/cli/builders/app/index.d.ts +6 -1
- package/dist/cli/builders/app/index.js +49 -14
- package/dist/cli/builders/app/index.js.map +1 -1
- package/dist/cli/builders/app/{command.d.ts → watch.d.ts} +0 -1
- package/dist/cli/builders/app/{command.js → watch.js} +1 -26
- package/dist/cli/builders/app/watch.js.map +1 -0
- package/dist/cli/builders/manifest/ManifestBase.d.ts +8 -1
- package/dist/cli/builders/manifest/ManifestBase.js +30 -0
- package/dist/cli/builders/manifest/ManifestBase.js.map +1 -1
- package/dist/cli/builders/manifest/ManifestV2.js +3 -15
- package/dist/cli/builders/manifest/ManifestV2.js.map +1 -1
- package/dist/cli/builders/manifest/ManifestV3.js +3 -15
- package/dist/cli/builders/manifest/ManifestV3.js.map +1 -1
- package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js +4 -0
- package/dist/cli/bundler/plugins/entrypoint/EntrypointPlugin.js.map +1 -1
- package/dist/cli/entrypoint/finder/AbstractOverrideFinder.d.ts +15 -0
- package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js +20 -0
- package/dist/cli/entrypoint/finder/AbstractOverrideFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/AbstractViewFinder.d.ts +6 -1
- package/dist/cli/entrypoint/finder/AbstractViewFinder.js +15 -0
- package/dist/cli/entrypoint/finder/AbstractViewFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/BookmarksFinder.d.ts +9 -0
- package/dist/cli/entrypoint/finder/BookmarksFinder.js +18 -0
- package/dist/cli/entrypoint/finder/BookmarksFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/CommandFinder.d.ts +4 -0
- package/dist/cli/entrypoint/finder/CommandFinder.js +20 -6
- package/dist/cli/entrypoint/finder/CommandFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/HistoryFinder.d.ts +9 -0
- package/dist/cli/entrypoint/finder/HistoryFinder.js +18 -0
- package/dist/cli/entrypoint/finder/HistoryFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/NewtabFinder.d.ts +9 -0
- package/dist/cli/entrypoint/finder/NewtabFinder.js +18 -0
- package/dist/cli/entrypoint/finder/NewtabFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/OptionsFinder.d.ts +2 -2
- package/dist/cli/entrypoint/finder/OptionsFinder.js +2 -2
- package/dist/cli/entrypoint/finder/OptionsFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/PageFinder.js +1 -1
- package/dist/cli/entrypoint/finder/PageFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/PopupFinder.d.ts +2 -2
- package/dist/cli/entrypoint/finder/PopupFinder.js +2 -2
- package/dist/cli/entrypoint/finder/PopupFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/SidebarFinder.d.ts +2 -2
- package/dist/cli/entrypoint/finder/SidebarFinder.js +2 -2
- package/dist/cli/entrypoint/finder/SidebarFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/ViewCspFinder.d.ts +2 -3
- package/dist/cli/entrypoint/finder/ViewCspFinder.js.map +1 -1
- package/dist/cli/entrypoint/finder/ViewPermissionsFinder.d.ts +22 -0
- package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js +43 -0
- package/dist/cli/entrypoint/finder/ViewPermissionsFinder.js.map +1 -0
- package/dist/cli/entrypoint/finder/index.d.ts +5 -0
- package/dist/cli/entrypoint/finder/index.js +50 -40
- package/dist/cli/entrypoint/finder/index.js.map +1 -1
- package/dist/cli/entrypoint/name/NameGenerator.d.ts +2 -0
- package/dist/cli/entrypoint/name/NameGenerator.js +5 -1
- package/dist/cli/entrypoint/name/NameGenerator.js.map +1 -1
- package/dist/cli/entrypoint/parser/AbstractOverrideParser.d.ts +9 -0
- package/dist/cli/entrypoint/parser/AbstractOverrideParser.js +11 -0
- package/dist/cli/entrypoint/parser/AbstractOverrideParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/BackgroundParser.js +3 -6
- package/dist/cli/entrypoint/parser/BackgroundParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/BookmarksParser.d.ts +5 -0
- package/dist/cli/entrypoint/parser/BookmarksParser.js +10 -0
- package/dist/cli/entrypoint/parser/BookmarksParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/HistoryParser.d.ts +5 -0
- package/dist/cli/entrypoint/parser/HistoryParser.js +10 -0
- package/dist/cli/entrypoint/parser/HistoryParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/NewtabParser.d.ts +5 -0
- package/dist/cli/entrypoint/parser/NewtabParser.js +10 -0
- package/dist/cli/entrypoint/parser/NewtabParser.js.map +1 -0
- package/dist/cli/entrypoint/parser/OptionsParser.js +2 -1
- package/dist/cli/entrypoint/parser/OptionsParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/PopupParser.js +2 -1
- package/dist/cli/entrypoint/parser/PopupParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/SidebarParser.js +2 -1
- package/dist/cli/entrypoint/parser/SidebarParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/ViewCspParser.d.ts +1 -1
- package/dist/cli/entrypoint/parser/ViewParser.d.ts +1 -1243
- package/dist/cli/entrypoint/parser/ViewParser.js +2 -72
- package/dist/cli/entrypoint/parser/ViewParser.js.map +1 -1
- package/dist/cli/entrypoint/parser/index.d.ts +4 -0
- package/dist/cli/entrypoint/parser/index.js +28 -20
- package/dist/cli/entrypoint/parser/index.js.map +1 -1
- package/dist/cli/entrypoint/parser/schemas/html.d.ts +903 -0
- package/dist/cli/entrypoint/parser/schemas/html.js +64 -0
- package/dist/cli/entrypoint/parser/schemas/html.js.map +1 -0
- package/dist/cli/entrypoint/parser/schemas/permissions.d.ts +23 -0
- package/dist/cli/entrypoint/parser/schemas/permissions.js +11 -0
- package/dist/cli/entrypoint/parser/schemas/permissions.js.map +1 -0
- package/dist/cli/index.js +16 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/plugins/action.d.ts +2 -0
- package/dist/cli/plugins/action.js +13 -0
- package/dist/cli/plugins/action.js.map +1 -0
- package/dist/cli/plugins/index.d.ts +2 -0
- package/dist/cli/plugins/index.js +52 -48
- package/dist/cli/plugins/index.js.map +1 -1
- package/dist/cli/plugins/offscreen/index.js +2 -4
- package/dist/cli/plugins/offscreen/index.js.map +1 -1
- package/dist/cli/plugins/options/index.js +1 -1
- package/dist/cli/plugins/options/index.js.map +1 -1
- package/dist/cli/plugins/override/Override.d.ts +31 -0
- package/dist/cli/plugins/override/Override.js +112 -0
- package/dist/cli/plugins/override/Override.js.map +1 -0
- package/dist/cli/plugins/override/index.d.ts +2 -0
- package/dist/cli/plugins/override/index.js +48 -0
- package/dist/cli/plugins/override/index.js.map +1 -0
- package/dist/cli/plugins/popup/index.js +1 -1
- package/dist/cli/plugins/popup/index.js.map +1 -1
- package/dist/cli/plugins/sidebar/index.js +1 -2
- package/dist/cli/plugins/sidebar/index.js.map +1 -1
- package/dist/cli/plugins/style/index.js +34 -31
- package/dist/cli/plugins/style/index.js.map +1 -1
- package/dist/cli/plugins/style/rebase.d.ts +14 -0
- package/dist/cli/plugins/style/rebase.js +63 -0
- package/dist/cli/plugins/style/rebase.js.map +1 -0
- package/dist/cli/plugins/style/utils.d.ts +5 -1
- package/dist/cli/plugins/style/utils.js +21 -8
- package/dist/cli/plugins/style/utils.js.map +1 -1
- package/dist/cli/plugins/typescript/TypescriptConfig.js +2 -2
- package/dist/cli/plugins/typescript/TypescriptConfig.js.map +1 -1
- package/dist/cli/plugins/view/View.d.ts +1 -1
- package/dist/cli/plugins/view/View.js +2 -10
- package/dist/cli/plugins/view/View.js.map +1 -1
- package/dist/cli/plugins/view/index.js +10 -1
- package/dist/cli/plugins/view/index.js.map +1 -1
- package/dist/cli/resolvers/bundler.js +9 -1
- package/dist/cli/resolvers/bundler.js.map +1 -1
- package/dist/cli/resolvers/config.js +7 -1
- package/dist/cli/resolvers/config.js.map +1 -1
- package/dist/cli/utils/path.js +1 -1
- package/dist/cli/utils/path.js.map +1 -1
- package/dist/cli/virtual/index.js +14 -17
- package/dist/cli/virtual/virtual.d.ts +7 -127
- package/dist/entry/background/Builder.js +1 -1
- package/dist/entry/background/Builder.js.map +1 -1
- package/dist/entry/background/index.d.ts +1 -1
- package/dist/entry/background/index.js +3 -2
- package/dist/entry/background/index.js.map +1 -1
- package/dist/entry/background/resolvers/definition.d.ts +5 -1
- package/dist/entry/background/resolvers/definition.js +15 -4
- package/dist/entry/background/resolvers/definition.js.map +1 -1
- package/dist/entry/command/Builder.js +1 -1
- package/dist/entry/command/Builder.js.map +1 -1
- package/dist/entry/command/index.d.ts +1 -1
- package/dist/entry/command/index.js +3 -2
- package/dist/entry/command/index.js.map +1 -1
- package/dist/entry/command/resolvers/definition.d.ts +6 -2
- package/dist/entry/command/resolvers/definition.js +14 -4
- package/dist/entry/command/resolvers/definition.js.map +1 -1
- package/dist/entry/content/adapters/react/Builder.js +4 -2
- package/dist/entry/content/adapters/react/Builder.js.map +1 -1
- package/dist/entry/content/adapters/react/Node.js +11 -6
- package/dist/entry/content/adapters/react/Node.js.map +1 -1
- package/dist/entry/content/adapters/react/definition.js +3 -2
- package/dist/entry/content/adapters/react/definition.js.map +1 -1
- package/dist/entry/content/adapters/vanilla/Builder.js +2 -2
- package/dist/entry/content/adapters/vanilla/Builder.js.map +1 -1
- package/dist/entry/content/adapters/vanilla/Node.js +3 -5
- package/dist/entry/content/adapters/vanilla/Node.js.map +1 -1
- package/dist/entry/content/adapters/vanilla/definition.js +2 -2
- package/dist/entry/content/adapters/vanilla/definition.js.map +1 -1
- package/dist/entry/content/lifecycle/Builder.js +5 -9
- package/dist/entry/content/lifecycle/Builder.js.map +1 -1
- package/dist/entry/core/react.d.ts +6 -0
- package/dist/entry/core/react.js +16 -0
- package/dist/entry/core/react.js.map +1 -0
- package/dist/entry/core/render.d.ts +5 -0
- package/dist/entry/core/render.js +16 -0
- package/dist/entry/core/render.js.map +1 -0
- package/dist/entry/offscreen/Builder.d.ts +6 -7
- package/dist/entry/offscreen/Builder.js +12 -13
- package/dist/entry/offscreen/Builder.js.map +1 -1
- package/dist/entry/offscreen/TransportBuilder.d.ts +1 -1
- package/dist/entry/offscreen/TransportBuilder.js +4 -3
- package/dist/entry/offscreen/TransportBuilder.js.map +1 -1
- package/dist/entry/offscreen/index.d.ts +5 -2
- package/dist/entry/offscreen/index.js +8 -2
- package/dist/entry/offscreen/index.js.map +1 -1
- package/dist/entry/offscreen/resolvers/definition.d.ts +4 -0
- package/dist/entry/offscreen/resolvers/definition.js +8 -0
- package/dist/entry/offscreen/resolvers/definition.js.map +1 -0
- package/dist/entry/relay/Builder.d.ts +4 -3
- package/dist/entry/relay/Builder.js.map +1 -1
- package/dist/entry/relay/index.d.ts +4 -3
- package/dist/entry/relay/index.js.map +1 -1
- package/dist/entry/relay/resolvers/definition.d.ts +1 -1
- package/dist/entry/relay/resolvers/definition.js +2 -10
- package/dist/entry/relay/resolvers/definition.js.map +1 -1
- package/dist/entry/sandbox/Builder.d.ts +6 -7
- package/dist/entry/sandbox/Builder.js +8 -12
- package/dist/entry/sandbox/Builder.js.map +1 -1
- package/dist/entry/sandbox/TransportBuilder.d.ts +1 -1
- package/dist/entry/sandbox/TransportBuilder.js +4 -3
- package/dist/entry/sandbox/TransportBuilder.js.map +1 -1
- package/dist/entry/sandbox/index.d.ts +7 -2
- package/dist/entry/sandbox/index.js +10 -4
- package/dist/entry/sandbox/index.js.map +1 -1
- package/dist/entry/sandbox/resolvers/definition.d.ts +4 -0
- package/dist/entry/sandbox/resolvers/definition.js +8 -0
- package/dist/entry/sandbox/resolvers/definition.js.map +1 -0
- package/dist/entry/service/index.d.ts +1 -0
- package/dist/entry/service/index.js +3 -1
- package/dist/entry/service/index.js.map +1 -1
- package/dist/entry/service/resolvers/definition.d.ts +3 -0
- package/dist/entry/service/resolvers/definition.js +8 -0
- package/dist/entry/service/resolvers/definition.js.map +1 -0
- package/dist/entry/transport/AbstractBuilder.js +1 -1
- package/dist/entry/transport/AbstractBuilder.js.map +1 -1
- package/dist/entry/transport/resolvers/definition.d.ts +7 -5
- package/dist/entry/transport/resolvers/definition.js +15 -4
- package/dist/entry/transport/resolvers/definition.js.map +1 -1
- package/dist/entry/view/{core/Builder.d.ts → Builder.d.ts} +9 -4
- package/dist/entry/view/Builder.js +62 -0
- package/dist/entry/view/Builder.js.map +1 -0
- package/dist/entry/view/adapters/react/Builder.d.ts +6 -7
- package/dist/entry/view/adapters/react/Builder.js +20 -23
- package/dist/entry/view/adapters/react/Builder.js.map +1 -1
- package/dist/entry/view/adapters/react/definition.d.ts +2 -0
- package/dist/entry/view/adapters/react/definition.js +13 -0
- package/dist/entry/view/adapters/react/definition.js.map +1 -0
- package/dist/entry/view/adapters/react/index.d.ts +2 -1
- package/dist/entry/view/adapters/react/index.js +3 -1
- package/dist/entry/view/adapters/react/index.js.map +1 -1
- package/dist/entry/view/adapters/vanilla/Builder.d.ts +5 -6
- package/dist/entry/view/adapters/vanilla/Builder.js +14 -25
- package/dist/entry/view/adapters/vanilla/Builder.js.map +1 -1
- package/dist/entry/view/adapters/vanilla/definition.d.ts +2 -0
- package/dist/entry/view/adapters/vanilla/definition.js +9 -0
- package/dist/entry/view/adapters/vanilla/definition.js.map +1 -0
- package/dist/entry/view/adapters/vanilla/index.d.ts +2 -1
- package/dist/entry/view/adapters/vanilla/index.js +3 -1
- package/dist/entry/view/adapters/vanilla/index.js.map +1 -1
- package/dist/entry/view/{core/resolvers → resolvers}/container.d.ts +1 -1
- package/dist/entry/view/resolvers/container.js.map +1 -0
- package/dist/entry/view/resolvers/definition.d.ts +3 -0
- package/dist/entry/view/resolvers/definition.js +18 -0
- package/dist/entry/view/resolvers/definition.js.map +1 -0
- package/dist/locale/adapters/react/hooks/use-locale.js +1 -1
- package/dist/locale/adapters/react/hooks/use-locale.js.map +1 -1
- package/dist/locale/adapters/react/hooks/use-native-locale.js +1 -1
- package/dist/locale/adapters/react/hooks/use-native-locale.js.map +1 -1
- package/dist/locale/index.d.ts +1 -0
- package/dist/locale/index.js +3 -1
- package/dist/locale/index.js.map +1 -1
- package/dist/locale/{providers → observers}/ObservableLocale.js +2 -2
- package/dist/locale/observers/ObservableLocale.js.map +1 -0
- package/dist/locale/observers/index.d.ts +1 -0
- package/dist/locale/observers/index.js +5 -0
- package/dist/locale/observers/index.js.map +1 -0
- package/dist/locale/providers/index.d.ts +0 -1
- package/dist/locale/providers/index.js +1 -3
- package/dist/locale/providers/index.js.map +1 -1
- package/dist/main/config.d.ts +1 -0
- package/dist/main/config.js.map +1 -1
- package/dist/main/index.d.ts +2 -0
- package/dist/main/index.js +2 -0
- package/dist/main/index.js.map +1 -1
- package/dist/main/override.d.ts +5 -0
- package/dist/main/override.js +15 -0
- package/dist/main/override.js.map +1 -0
- package/dist/main/permissions.d.ts +1 -0
- package/dist/main/permissions.js +1 -0
- package/dist/main/relay.d.ts +1 -0
- package/dist/main/relay.js +2 -0
- package/dist/main/relay.js.map +1 -1
- package/dist/main/view.d.ts +1 -1
- package/dist/message/adapters/react/index.d.ts +1 -1
- package/dist/message/adapters/react/index.js +1 -1
- package/dist/message/adapters/react/index.js.map +1 -1
- package/dist/message/adapters/react/{useMessageHandler.js → use-message-handler.js} +6 -4
- package/dist/message/adapters/react/use-message-handler.js.map +1 -0
- package/dist/message/handlers/MapHandler.js +2 -1
- package/dist/message/handlers/MapHandler.js.map +1 -1
- package/dist/message/handlers/SingleHandler.js +2 -1
- package/dist/message/handlers/SingleHandler.js.map +1 -1
- package/dist/message/providers/Message.js +1 -1
- package/dist/message/providers/Message.js.map +1 -1
- package/dist/relay/RelayPermission.js +8 -2
- package/dist/relay/RelayPermission.js.map +1 -1
- package/dist/relay/adapters/RelayScriptingAdapter.d.ts +1 -0
- package/dist/relay/adapters/RelayScriptingAdapter.js +30 -64
- package/dist/relay/adapters/RelayScriptingAdapter.js.map +1 -1
- package/dist/relay/adapters/invoke-relay.d.ts +3 -0
- package/dist/relay/adapters/invoke-relay.js +69 -0
- package/dist/relay/adapters/invoke-relay.js.map +1 -0
- package/dist/relay/adapters/scripting-response.d.ts +12 -0
- package/dist/relay/adapters/scripting-response.js +1 -0
- package/dist/relay/adapters/scripting-response.js.map +1 -0
- package/dist/relay/result.d.ts +3 -0
- package/dist/relay/result.js +7 -0
- package/dist/relay/result.js.map +1 -1
- package/dist/types/action.d.ts +8 -0
- package/dist/types/action.js +1 -0
- package/dist/types/action.js.map +1 -0
- package/dist/types/background.d.ts +2 -8
- package/dist/types/background.js.map +1 -1
- package/dist/types/config.d.ts +17 -1
- package/dist/types/content/definition.d.ts +2 -1
- package/dist/types/entrypoint.d.ts +5 -1
- package/dist/types/entrypoint.js +3 -0
- package/dist/types/entrypoint.js.map +1 -1
- package/dist/types/manifest.d.ts +23 -2
- package/dist/types/manifest.js.map +1 -1
- package/dist/types/offscreen.d.ts +2 -2
- package/dist/types/offscreen.js.map +1 -1
- package/dist/types/options.d.ts +3 -2
- package/dist/types/override.d.ts +22 -0
- package/dist/types/override.js +1 -0
- package/dist/types/override.js.map +1 -0
- package/dist/types/page.d.ts +1 -1
- package/dist/types/permissions.d.ts +39 -0
- package/dist/types/permissions.js +1 -0
- package/dist/types/permissions.js.map +1 -0
- package/dist/types/plugin.d.ts +4 -1
- package/dist/types/popup.d.ts +5 -3
- package/dist/types/sandbox.d.ts +2 -2
- package/dist/types/sandbox.js.map +1 -1
- package/dist/types/sidebar.d.ts +5 -3
- package/dist/types/sidebar.js.map +1 -1
- package/dist/types/view/adapters/index.d.ts +2 -0
- package/dist/types/view/adapters/index.js +1 -0
- package/dist/types/view/adapters/index.js.map +1 -0
- package/dist/types/view/adapters/react.d.ts +4 -0
- package/dist/types/view/adapters/react.js +1 -0
- package/dist/types/view/adapters/react.js.map +1 -0
- package/dist/types/view/adapters/vanilla.d.ts +1 -0
- package/dist/types/view/adapters/vanilla.js +1 -0
- package/dist/types/view/adapters/vanilla.js.map +1 -0
- package/dist/types/{view.d.ts → view/common.d.ts} +2 -14
- package/dist/types/view/common.js +1 -0
- package/dist/types/view/common.js.map +1 -0
- package/dist/types/view/definition.d.ts +15 -0
- package/dist/types/view/definition.js +1 -0
- package/dist/types/view/definition.js.map +1 -0
- package/dist/types/view/index.d.ts +4 -0
- package/dist/types/view/index.js +1 -0
- package/dist/types/view/index.js.map +1 -0
- package/dist/types/view/render.d.ts +7 -0
- package/dist/types/view/render.js +1 -0
- package/dist/types/view/render.js.map +1 -0
- package/package.json +18 -31
- package/dist/cli/builders/app/command.js.map +0 -1
- package/dist/entry/background/resolvers/index.d.ts +0 -1
- package/dist/entry/background/resolvers/index.js +0 -2
- package/dist/entry/background/resolvers/index.js.map +0 -1
- package/dist/entry/command/resolvers/index.d.ts +0 -1
- package/dist/entry/command/resolvers/index.js +0 -2
- package/dist/entry/command/resolvers/index.js.map +0 -1
- package/dist/entry/content/adapters/vanilla/utils.d.ts +0 -1
- package/dist/entry/content/adapters/vanilla/utils.js +0 -7
- package/dist/entry/content/adapters/vanilla/utils.js.map +0 -1
- package/dist/entry/content/resolvers/index.d.ts +0 -6
- package/dist/entry/content/resolvers/index.js +0 -7
- package/dist/entry/content/resolvers/index.js.map +0 -1
- package/dist/entry/transport/index.d.ts +0 -1
- package/dist/entry/transport/index.js +0 -2
- package/dist/entry/transport/index.js.map +0 -1
- package/dist/entry/transport/resolvers/index.d.ts +0 -1
- package/dist/entry/transport/resolvers/index.js +0 -2
- package/dist/entry/transport/resolvers/index.js.map +0 -1
- package/dist/entry/view/adapters/react/resolvers/render.d.ts +0 -2
- package/dist/entry/view/adapters/react/resolvers/render.js +0 -11
- package/dist/entry/view/adapters/react/resolvers/render.js.map +0 -1
- package/dist/entry/view/core/Builder.js +0 -35
- package/dist/entry/view/core/Builder.js.map +0 -1
- package/dist/entry/view/core/resolvers/container.js.map +0 -1
- package/dist/entry/view/core/resolvers/definition.d.ts +0 -3
- package/dist/entry/view/core/resolvers/definition.js +0 -12
- package/dist/entry/view/core/resolvers/definition.js.map +0 -1
- package/dist/entry/view/core/resolvers/render.d.ts +0 -3
- package/dist/entry/view/core/resolvers/render.js +0 -18
- package/dist/entry/view/core/resolvers/render.js.map +0 -1
- package/dist/entry/view/index.d.ts +0 -1
- package/dist/entry/view/index.js +0 -2
- package/dist/entry/view/index.js.map +0 -1
- package/dist/locale/providers/ObservableLocale.js.map +0 -1
- package/dist/message/adapters/react/useMessageHandler.js.map +0 -1
- package/dist/types/view.js +0 -1
- package/scripts/clean-dist.js +0 -7
- package/scripts/copy-dts.js +0 -29
- package/scripts/merge-coverage.mjs +0 -12
- package/scripts/pre-commit.mjs +0 -22
- package/scripts/test-inventory.mjs +0 -38
- package/scripts/test-run.mjs +0 -25
- /package/dist/cli/virtual/{transport.d.ts → service.d.ts} +0 -0
- /package/dist/entry/view/{core/resolvers → resolvers}/container.js +0 -0
- /package/dist/locale/{providers → observers}/ObservableLocale.d.ts +0 -0
- /package/dist/{types/view.js.map → main/permissions.js.map} +0 -0
- /package/dist/message/adapters/react/{useMessageHandler.d.ts → use-message-handler.d.ts} +0 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { HtmlRspackPlugin } from "@rspack/core";
|
|
2
|
+
import HtmlRspackTagsPlugin from "html-rspack-tags-plugin";
|
|
3
|
+
import Override from "./Override.js";
|
|
4
|
+
import { definePlugin } from "./../../../main/plugin.js";
|
|
5
|
+
import { EntrypointPlugin } from "./../../../cli/bundler/index.js";
|
|
6
|
+
import { virtualViewModule } from "./../../../cli/virtual/index.js";
|
|
7
|
+
import { Command } from "./../../../types/app.js";
|
|
8
|
+
import { EntrypointType } from "./../../../types/entrypoint.js";
|
|
9
|
+
var override_default = definePlugin(() => {
|
|
10
|
+
let override;
|
|
11
|
+
return {
|
|
12
|
+
name: "adnbn:override",
|
|
13
|
+
startup: ({ config }) => {
|
|
14
|
+
override = new Override(config);
|
|
15
|
+
},
|
|
16
|
+
newtab: () => override.files(EntrypointType.Newtab),
|
|
17
|
+
bookmarks: () => override.files(EntrypointType.Bookmarks),
|
|
18
|
+
history: () => override.files(EntrypointType.History),
|
|
19
|
+
bundler: async ({ config }) => {
|
|
20
|
+
const view = await override.view();
|
|
21
|
+
if (!view) {
|
|
22
|
+
if (config.debug) {
|
|
23
|
+
console.info("Override entry not found");
|
|
24
|
+
}
|
|
25
|
+
return {};
|
|
26
|
+
}
|
|
27
|
+
const plugin = EntrypointPlugin.from(await view.entries()).virtual(virtualViewModule);
|
|
28
|
+
if (config.command === Command.Watch) {
|
|
29
|
+
plugin.watch(async () => {
|
|
30
|
+
var _a;
|
|
31
|
+
return ((_a = await override.clear().view()) == null ? void 0 : _a.entries()) ?? /* @__PURE__ */ new Map();
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
const htmlPlugins = (await view.html()).map((options) => new HtmlRspackPlugin(options));
|
|
35
|
+
const tagsPlugins = (await view.tags()).map((options) => new HtmlRspackTagsPlugin(options));
|
|
36
|
+
return {
|
|
37
|
+
plugins: [plugin, ...htmlPlugins, ...tagsPlugins]
|
|
38
|
+
};
|
|
39
|
+
},
|
|
40
|
+
manifest: async ({ manifest }) => {
|
|
41
|
+
manifest.setOverride(await override.manifest()).appendCsp(await override.csp()).appendPermissions(await override.permissions()).appendOptionalPermissions(await override.optionalPermissions()).appendHostPermissions(await override.hostPermissions()).appendOptionalHostPermissions(await override.optionalHostPermissions());
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
});
|
|
45
|
+
export {
|
|
46
|
+
override_default as default
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/override/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport Override from \"./Override\";\n\nimport {definePlugin} from \"@main/plugin\";\nimport {EntrypointPlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport {Command} from \"@typing/app\";\nimport {EntrypointType} from \"@typing/entrypoint\";\n\nexport default definePlugin(() => {\n let override: Override;\n\n return {\n name: \"adnbn:override\",\n startup: ({config}) => {\n override = new Override(config);\n },\n newtab: () => override.files(EntrypointType.Newtab),\n bookmarks: () => override.files(EntrypointType.Bookmarks),\n history: () => override.files(EntrypointType.History),\n bundler: async ({config}) => {\n const view = await override.view();\n\n if (!view) {\n if (config.debug) {\n console.info(\"Override entry not found\");\n }\n\n return {};\n }\n\n const plugin = EntrypointPlugin.from(await view.entries()).virtual(virtualViewModule);\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => (await override.clear().view())?.entries() ?? new Map());\n }\n\n const htmlPlugins = (await view.html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await view.tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n return {\n plugins: [plugin, ...htmlPlugins, ...tagsPlugins],\n } satisfies RspackConfig;\n },\n manifest: async ({manifest}) => {\n manifest\n .setOverride(await override.manifest())\n .appendCsp(await override.csp())\n .appendPermissions(await override.permissions())\n .appendOptionalPermissions(await override.optionalPermissions())\n .appendHostPermissions(await override.hostPermissions())\n .appendOptionalHostPermissions(await override.optionalHostPermissions());\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAuB;AAC9D,OAAO,0BAA0B;AAEjC,OAAO,cAAc;AAErB,SAAQ,oBAAmB;AAC3B,SAAQ,wBAAuB;AAC/B,SAAQ,yBAAwB;AAEhC,SAAQ,eAAc;AACtB,SAAQ,sBAAqB;AAE7B,IAAO,mBAAQ,aAAa,MAAM;AAC9B,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,iBAAW,IAAI,SAAS,MAAM;AAAA,IAClC;AAAA,IACA,QAAQ,MAAM,SAAS,MAAM,eAAe,MAAM;AAAA,IAClD,WAAW,MAAM,SAAS,MAAM,eAAe,SAAS;AAAA,IACxD,SAAS,MAAM,SAAS,MAAM,eAAe,OAAO;AAAA,IACpD,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,YAAM,OAAO,MAAM,SAAS,KAAK;AAEjC,UAAI,CAAC,MAAM;AACP,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,0BAA0B;AAAA,QAC3C;AAEA,eAAO,CAAC;AAAA,MACZ;AAEA,YAAM,SAAS,iBAAiB,KAAK,MAAM,KAAK,QAAQ,CAAC,EAAE,QAAQ,iBAAiB;AAEpF,UAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,eAAO,MAAM,YAAS;AArCtC;AAqC0C,8BAAM,SAAS,MAAM,EAAE,KAAK,MAA5B,mBAAgC,cAAa,oBAAI,IAAI;AAAA,SAAC;AAAA,MACpF;AAEA,YAAM,eAAe,MAAM,KAAK,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AACpF,YAAM,eAAe,MAAM,KAAK,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAExF,aAAO;AAAA,QACH,SAAS,CAAC,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACpD;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;AAC5B,eACK,YAAY,MAAM,SAAS,SAAS,CAAC,EACrC,UAAU,MAAM,SAAS,IAAI,CAAC,EAC9B,kBAAkB,MAAM,SAAS,YAAY,CAAC,EAC9C,0BAA0B,MAAM,SAAS,oBAAoB,CAAC,EAC9D,sBAAsB,MAAM,SAAS,gBAAgB,CAAC,EACtD,8BAA8B,MAAM,SAAS,wBAAwB,CAAC;AAAA,IAC/E;AAAA,EACJ;AACJ,CAAC;","names":[]}
|
|
@@ -48,7 +48,7 @@ var popup_default = definePlugin(() => {
|
|
|
48
48
|
};
|
|
49
49
|
},
|
|
50
50
|
manifest: async ({ manifest }) => {
|
|
51
|
-
manifest.setPopup(await popup.manifest()).appendCsp(await popup.csp());
|
|
51
|
+
manifest.setPopup(await popup.manifest()).appendCsp(await popup.csp()).appendPermissions(await popup.permissions()).appendOptionalPermissions(await popup.optionalPermissions()).appendHostPermissions(await popup.hostPermissions()).appendOptionalHostPermissions(await popup.optionalHostPermissions());
|
|
52
52
|
}
|
|
53
53
|
};
|
|
54
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/plugins/popup/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport Popup, {PopupNameToManifest} from \"./Popup\";\nimport {createPopupModule, PopupModuleName} from \"./popup-module\";\n\nimport {PopupDeclaration} from \"./declaration\";\n\nimport {Command} from \"@typing/app\";\n\nexport default definePlugin(() => {\n let popup: Popup;\n let declaration: PopupDeclaration;\n\n return {\n name: \"adnbn:popup\",\n startup: ({config}) => {\n popup = new Popup(config);\n declaration = new PopupDeclaration(config);\n },\n popup: () => popup.files(),\n bundler: async ({config}) => {\n declaration.setAlias(await popup.getAlias()).build();\n\n const plugins: Plugins = [];\n\n let alias: PopupNameToManifest = {};\n\n if (await popup.empty()) {\n if (config.debug) {\n console.info(\"Popup entries not found\");\n }\n } else {\n alias = await popup.manifestByAlias();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await popup.view().entries())\n .virtual(file => virtualViewModule(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.setAlias(await popup.clear().getAlias()).build();\n\n return popup.view().entries();\n });\n }\n\n const htmlPlugins = (await popup.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await popup.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n }\n\n return {\n plugins: [\n new GenerateModulePlugin({\n [PopupModuleName]: createPopupModule(alias),\n }),\n ...plugins,\n ],\n } as RspackConfig;\n },\n manifest: async ({manifest}) => {\n manifest.setPopup(await popup.manifest()).appendCsp(await popup.csp());\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAgC;AACvE,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AACrD,SAAQ,yBAAwB;AAEhC,OAAO,WAAkC;AACzC,SAAQ,mBAAmB,uBAAsB;AAEjD,SAAQ,wBAAuB;AAE/B,SAAQ,eAAc;AAEtB,IAAO,gBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,cAAQ,IAAI,MAAM,MAAM;AACxB,oBAAc,IAAI,iBAAiB,MAAM;AAAA,IAC7C;AAAA,IACA,OAAO,MAAM,MAAM,MAAM;AAAA,IACzB,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,SAAS,MAAM,MAAM,SAAS,CAAC,EAAE,MAAM;AAEnD,YAAM,UAAmB,CAAC;AAE1B,UAAI,QAA6B,CAAC;AAElC,UAAI,MAAM,MAAM,MAAM,GAAG;AACrB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,yBAAyB;AAAA,QAC1C;AAAA,MACJ,OAAO;AACH,gBAAQ,MAAM,MAAM,gBAAgB;AAGpC,cAAM,SAAS,iBAAiB,KAAK,MAAM,MAAM,KAAK,EAAE,QAAQ,CAAC,EAC5D,QAAQ,UAAQ,kBAAkB,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,SAAS,MAAM,MAAM,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;AAE3D,mBAAO,MAAM,KAAK,EAAE,QAAQ;AAAA,UAChC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,MAAM,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAC5F,cAAM,eAAe,MAAM,MAAM,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAEhG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACvD;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,qBAAqB;AAAA,YACrB,CAAC,eAAe,GAAG,kBAAkB,KAAK;AAAA,UAC9C,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/popup/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport Popup, {PopupNameToManifest} from \"./Popup\";\nimport {createPopupModule, PopupModuleName} from \"./popup-module\";\n\nimport {PopupDeclaration} from \"./declaration\";\n\nimport {Command} from \"@typing/app\";\n\nexport default definePlugin(() => {\n let popup: Popup;\n let declaration: PopupDeclaration;\n\n return {\n name: \"adnbn:popup\",\n startup: ({config}) => {\n popup = new Popup(config);\n declaration = new PopupDeclaration(config);\n },\n popup: () => popup.files(),\n bundler: async ({config}) => {\n declaration.setAlias(await popup.getAlias()).build();\n\n const plugins: Plugins = [];\n\n let alias: PopupNameToManifest = {};\n\n if (await popup.empty()) {\n if (config.debug) {\n console.info(\"Popup entries not found\");\n }\n } else {\n alias = await popup.manifestByAlias();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await popup.view().entries())\n .virtual(file => virtualViewModule(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.setAlias(await popup.clear().getAlias()).build();\n\n return popup.view().entries();\n });\n }\n\n const htmlPlugins = (await popup.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await popup.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n }\n\n return {\n plugins: [\n new GenerateModulePlugin({\n [PopupModuleName]: createPopupModule(alias),\n }),\n ...plugins,\n ],\n } as RspackConfig;\n },\n manifest: async ({manifest}) => {\n // Every built popup can be switched to at runtime, so all of them contribute their permissions.\n manifest\n .setPopup(await popup.manifest())\n .appendCsp(await popup.csp())\n .appendPermissions(await popup.permissions())\n .appendOptionalPermissions(await popup.optionalPermissions())\n .appendHostPermissions(await popup.hostPermissions())\n .appendOptionalHostPermissions(await popup.optionalHostPermissions());\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAgC;AACvE,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AACrD,SAAQ,yBAAwB;AAEhC,OAAO,WAAkC;AACzC,SAAQ,mBAAmB,uBAAsB;AAEjD,SAAQ,wBAAuB;AAE/B,SAAQ,eAAc;AAEtB,IAAO,gBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,cAAQ,IAAI,MAAM,MAAM;AACxB,oBAAc,IAAI,iBAAiB,MAAM;AAAA,IAC7C;AAAA,IACA,OAAO,MAAM,MAAM,MAAM;AAAA,IACzB,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,SAAS,MAAM,MAAM,SAAS,CAAC,EAAE,MAAM;AAEnD,YAAM,UAAmB,CAAC;AAE1B,UAAI,QAA6B,CAAC;AAElC,UAAI,MAAM,MAAM,MAAM,GAAG;AACrB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,yBAAyB;AAAA,QAC1C;AAAA,MACJ,OAAO;AACH,gBAAQ,MAAM,MAAM,gBAAgB;AAGpC,cAAM,SAAS,iBAAiB,KAAK,MAAM,MAAM,KAAK,EAAE,QAAQ,CAAC,EAC5D,QAAQ,UAAQ,kBAAkB,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,SAAS,MAAM,MAAM,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;AAE3D,mBAAO,MAAM,KAAK,EAAE,QAAQ;AAAA,UAChC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,MAAM,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAC5F,cAAM,eAAe,MAAM,MAAM,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAEhG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACvD;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,qBAAqB;AAAA,YACrB,CAAC,eAAe,GAAG,kBAAkB,KAAK;AAAA,UAC9C,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,SAAQ,MAAM;AAE5B,eACK,SAAS,MAAM,MAAM,SAAS,CAAC,EAC/B,UAAU,MAAM,MAAM,IAAI,CAAC,EAC3B,kBAAkB,MAAM,MAAM,YAAY,CAAC,EAC3C,0BAA0B,MAAM,MAAM,oBAAoB,CAAC,EAC3D,sBAAsB,MAAM,MAAM,gBAAgB,CAAC,EACnD,8BAA8B,MAAM,MAAM,wBAAwB,CAAC;AAAA,IAC5E;AAAA,EACJ;AACJ,CAAC;","names":[]}
|
|
@@ -62,8 +62,7 @@ var sidebar_default = definePlugin(() => {
|
|
|
62
62
|
if (!sidebarAvailable) {
|
|
63
63
|
return;
|
|
64
64
|
}
|
|
65
|
-
manifest.setSidebar(await sidebar.manifest());
|
|
66
|
-
manifest.appendCsp(await sidebar.csp());
|
|
65
|
+
manifest.setSidebar(await sidebar.manifest()).appendCsp(await sidebar.csp()).appendPermissions(await sidebar.permissions()).appendOptionalPermissions(await sidebar.optionalPermissions()).appendHostPermissions(await sidebar.hostPermissions()).appendOptionalHostPermissions(await sidebar.optionalHostPermissions());
|
|
67
66
|
if (await sidebar.exists() && !SidebarAlternativeBrowsers.has(config.browser)) {
|
|
68
67
|
manifest.addPermission("sidePanel");
|
|
69
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/plugins/sidebar/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport Sidebar, {SidebarNameToManifest} from \"./Sidebar\";\nimport {createSidebarModule, SidebarModuleName} from \"./sidebar-module\";\n\nimport {SidebarDeclaration} from \"./declaration\";\n\nimport {Command} from \"@typing/app\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\n\nexport default definePlugin(() => {\n let sidebar: Sidebar;\n let declaration: SidebarDeclaration;\n\n let sidebarAvailable: boolean = false;\n\n return {\n name: \"adnbn:sidebar\",\n startup: ({config}) => {\n sidebar = new Sidebar(config);\n declaration = new SidebarDeclaration(config);\n\n sidebarAvailable = SidebarAlternativeBrowsers.has(config.browser) || config.manifestVersion !== 2;\n },\n sidebar: () => sidebar.files(),\n bundler: async ({config}) => {\n declaration.setAlias(await sidebar.getAlias()).build();\n\n let build: boolean = true;\n\n if (await sidebar.empty()) {\n if (config.debug) {\n console.info(\"Sidebar entries not found\");\n }\n\n build = false;\n } else if (!sidebarAvailable) {\n if (config.debug) {\n console.warn(\"Sidebar not supported for manifest version 2\");\n }\n\n build = false;\n }\n\n const plugins: Plugins = [];\n\n let alias: SidebarNameToManifest = {};\n\n if (build) {\n alias = await sidebar.manifestByAlias();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await sidebar.view().entries())\n .virtual(file => virtualViewModule(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.setAlias(await sidebar.clear().getAlias()).build();\n\n return sidebar.view().entries();\n });\n }\n\n const htmlPlugins = (await sidebar.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await sidebar.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n }\n\n return {\n plugins: [\n new GenerateModulePlugin({\n [SidebarModuleName]: createSidebarModule(alias),\n }),\n ...plugins,\n ],\n } as RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n if (!sidebarAvailable) {\n return;\n }\n\n manifest.setSidebar(await sidebar.manifest())
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/sidebar/index.ts"],"sourcesContent":["import {Configuration as RspackConfig, HtmlRspackPlugin, Plugins} from \"@rspack/core\";\nimport HtmlRspackTagsPlugin from \"html-rspack-tags-plugin\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {EntrypointPlugin, GenerateModulePlugin} from \"@cli/bundler\";\nimport {virtualViewModule} from \"@cli/virtual/index.js\";\n\nimport Sidebar, {SidebarNameToManifest} from \"./Sidebar\";\nimport {createSidebarModule, SidebarModuleName} from \"./sidebar-module\";\n\nimport {SidebarDeclaration} from \"./declaration\";\n\nimport {Command} from \"@typing/app\";\nimport {SidebarAlternativeBrowsers} from \"@typing/sidebar\";\n\nexport default definePlugin(() => {\n let sidebar: Sidebar;\n let declaration: SidebarDeclaration;\n\n let sidebarAvailable: boolean = false;\n\n return {\n name: \"adnbn:sidebar\",\n startup: ({config}) => {\n sidebar = new Sidebar(config);\n declaration = new SidebarDeclaration(config);\n\n sidebarAvailable = SidebarAlternativeBrowsers.has(config.browser) || config.manifestVersion !== 2;\n },\n sidebar: () => sidebar.files(),\n bundler: async ({config}) => {\n declaration.setAlias(await sidebar.getAlias()).build();\n\n let build: boolean = true;\n\n if (await sidebar.empty()) {\n if (config.debug) {\n console.info(\"Sidebar entries not found\");\n }\n\n build = false;\n } else if (!sidebarAvailable) {\n if (config.debug) {\n console.warn(\"Sidebar not supported for manifest version 2\");\n }\n\n build = false;\n }\n\n const plugins: Plugins = [];\n\n let alias: SidebarNameToManifest = {};\n\n if (build) {\n alias = await sidebar.manifestByAlias();\n\n // prettier-ignore\n const plugin = EntrypointPlugin.from(await sidebar.view().entries())\n .virtual(file => virtualViewModule(file));\n\n if (config.command === Command.Watch) {\n plugin.watch(async () => {\n declaration.setAlias(await sidebar.clear().getAlias()).build();\n\n return sidebar.view().entries();\n });\n }\n\n const htmlPlugins = (await sidebar.view().html()).map(options => new HtmlRspackPlugin(options));\n const tagsPlugins = (await sidebar.view().tags()).map(options => new HtmlRspackTagsPlugin(options));\n\n plugins.push(plugin, ...htmlPlugins, ...tagsPlugins);\n }\n\n return {\n plugins: [\n new GenerateModulePlugin({\n [SidebarModuleName]: createSidebarModule(alias),\n }),\n ...plugins,\n ],\n } as RspackConfig;\n },\n manifest: async ({manifest, config}) => {\n if (!sidebarAvailable) {\n return;\n }\n\n // Every built sidebar can be switched to at runtime, so all of them contribute their permissions.\n manifest\n .setSidebar(await sidebar.manifest())\n .appendCsp(await sidebar.csp())\n .appendPermissions(await sidebar.permissions())\n .appendOptionalPermissions(await sidebar.optionalPermissions())\n .appendHostPermissions(await sidebar.hostPermissions())\n .appendOptionalHostPermissions(await sidebar.optionalHostPermissions());\n\n if ((await sidebar.exists()) && !SidebarAlternativeBrowsers.has(config.browser)) {\n manifest.addPermission(\"sidePanel\");\n }\n },\n };\n});\n"],"mappings":"AAAA,SAAuC,wBAAgC;AACvE,OAAO,0BAA0B;AAEjC,SAAQ,oBAAmB;AAE3B,SAAQ,kBAAkB,4BAA2B;AACrD,SAAQ,yBAAwB;AAEhC,OAAO,aAAsC;AAC7C,SAAQ,qBAAqB,yBAAwB;AAErD,SAAQ,0BAAyB;AAEjC,SAAQ,eAAc;AACtB,SAAQ,kCAAiC;AAEzC,IAAO,kBAAQ,aAAa,MAAM;AAC9B,MAAI;AACJ,MAAI;AAEJ,MAAI,mBAA4B;AAEhC,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,gBAAU,IAAI,QAAQ,MAAM;AAC5B,oBAAc,IAAI,mBAAmB,MAAM;AAE3C,yBAAmB,2BAA2B,IAAI,OAAO,OAAO,KAAK,OAAO,oBAAoB;AAAA,IACpG;AAAA,IACA,SAAS,MAAM,QAAQ,MAAM;AAAA,IAC7B,SAAS,OAAO,EAAC,OAAM,MAAM;AACzB,kBAAY,SAAS,MAAM,QAAQ,SAAS,CAAC,EAAE,MAAM;AAErD,UAAI,QAAiB;AAErB,UAAI,MAAM,QAAQ,MAAM,GAAG;AACvB,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,2BAA2B;AAAA,QAC5C;AAEA,gBAAQ;AAAA,MACZ,WAAW,CAAC,kBAAkB;AAC1B,YAAI,OAAO,OAAO;AACd,kBAAQ,KAAK,8CAA8C;AAAA,QAC/D;AAEA,gBAAQ;AAAA,MACZ;AAEA,YAAM,UAAmB,CAAC;AAE1B,UAAI,QAA+B,CAAC;AAEpC,UAAI,OAAO;AACP,gBAAQ,MAAM,QAAQ,gBAAgB;AAGtC,cAAM,SAAS,iBAAiB,KAAK,MAAM,QAAQ,KAAK,EAAE,QAAQ,CAAC,EAC9D,QAAQ,UAAQ,kBAAkB,IAAI,CAAC;AAE5C,YAAI,OAAO,YAAY,QAAQ,OAAO;AAClC,iBAAO,MAAM,YAAY;AACrB,wBAAY,SAAS,MAAM,QAAQ,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM;AAE7D,mBAAO,QAAQ,KAAK,EAAE,QAAQ;AAAA,UAClC,CAAC;AAAA,QACL;AAEA,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,iBAAiB,OAAO,CAAC;AAC9F,cAAM,eAAe,MAAM,QAAQ,KAAK,EAAE,KAAK,GAAG,IAAI,aAAW,IAAI,qBAAqB,OAAO,CAAC;AAElG,gBAAQ,KAAK,QAAQ,GAAG,aAAa,GAAG,WAAW;AAAA,MACvD;AAEA,aAAO;AAAA,QACH,SAAS;AAAA,UACL,IAAI,qBAAqB;AAAA,YACrB,CAAC,iBAAiB,GAAG,oBAAoB,KAAK;AAAA,UAClD,CAAC;AAAA,UACD,GAAG;AAAA,QACP;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,UAAU,OAAO,EAAC,UAAU,OAAM,MAAM;AACpC,UAAI,CAAC,kBAAkB;AACnB;AAAA,MACJ;AAGA,eACK,WAAW,MAAM,QAAQ,SAAS,CAAC,EACnC,UAAU,MAAM,QAAQ,IAAI,CAAC,EAC7B,kBAAkB,MAAM,QAAQ,YAAY,CAAC,EAC7C,0BAA0B,MAAM,QAAQ,oBAAoB,CAAC,EAC7D,sBAAsB,MAAM,QAAQ,gBAAgB,CAAC,EACrD,8BAA8B,MAAM,QAAQ,wBAAwB,CAAC;AAE1E,UAAK,MAAM,QAAQ,OAAO,KAAM,CAAC,2BAA2B,IAAI,OAAO,OAAO,GAAG;AAC7E,iBAAS,cAAc,WAAW;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":[]}
|
|
@@ -1,36 +1,41 @@
|
|
|
1
1
|
import _ from "lodash";
|
|
2
2
|
import path from "path";
|
|
3
3
|
import fs from "fs";
|
|
4
|
-
import {
|
|
4
|
+
import {
|
|
5
|
+
CssExtractRspackPlugin
|
|
6
|
+
} from "@rspack/core";
|
|
5
7
|
import { mergeStyleSources } from "./utils.js";
|
|
6
8
|
import { DocumentStylesLayer, DefaultStylesLayer } from "./../../../cli/bundler/layers.js";
|
|
7
9
|
import { definePlugin } from "./../../../main/plugin.js";
|
|
8
10
|
import { appFilenameResolver } from "./../../../cli/bundler/index.js";
|
|
9
11
|
import { getAppSourcePath, getResolvePath, getSharedPath } from "./../../../cli/resolvers/path.js";
|
|
10
|
-
import { toPosix } from "./../../../cli/utils/path.js";
|
|
11
12
|
const DefaultAsIsLoaderIdent = "adnbn-default-asis";
|
|
12
13
|
const DefaultModulesLoaderIdent = "adnbn-default-modules";
|
|
13
|
-
const
|
|
14
|
+
const createStyleMerger = (config) => {
|
|
14
15
|
const sharedDir = getResolvePath(getSharedPath(config));
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const
|
|
18
|
-
const
|
|
19
|
-
if (
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
const assetAbs = path.resolve(cssDir, filePath);
|
|
27
|
-
const sharedFileDir = path.dirname(sharedPath);
|
|
28
|
-
const relativeToSharedFile = path.relative(sharedFileDir, assetAbs);
|
|
29
|
-
return `url("${toPosix(relativeToSharedFile)}")`;
|
|
30
|
-
});
|
|
31
|
-
return mergeStyleSources(sharedStyle, appStyle);
|
|
16
|
+
const appDir = getResolvePath(getAppSourcePath(config));
|
|
17
|
+
return (content, context) => {
|
|
18
|
+
const filename = context.resourcePath;
|
|
19
|
+
const relative = path.relative(sharedDir, filename);
|
|
20
|
+
if (relative === ".." || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)) {
|
|
21
|
+
return content;
|
|
22
|
+
}
|
|
23
|
+
const appPath = path.join(appDir, relative);
|
|
24
|
+
if (!fs.existsSync(appPath)) {
|
|
25
|
+
context.addMissingDependency(appPath);
|
|
26
|
+
return content;
|
|
32
27
|
}
|
|
33
|
-
|
|
28
|
+
context.addDependency(appPath);
|
|
29
|
+
try {
|
|
30
|
+
return mergeStyleSources(
|
|
31
|
+
{ filename, content },
|
|
32
|
+
{ filename: appPath, content: fs.readFileSync(appPath, "utf8") }
|
|
33
|
+
);
|
|
34
|
+
} catch (error) {
|
|
35
|
+
context.emitError(error instanceof Error ? error : new Error(String(error)));
|
|
36
|
+
return "";
|
|
37
|
+
}
|
|
38
|
+
};
|
|
34
39
|
};
|
|
35
40
|
var style_default = definePlugin(() => {
|
|
36
41
|
return {
|
|
@@ -40,16 +45,14 @@ var style_default = definePlugin(() => {
|
|
|
40
45
|
const filename = appFilenameResolver(app, cssFilename, cssDir);
|
|
41
46
|
const kebabApp = _.kebabCase(app);
|
|
42
47
|
const createSassRuleSet = (rule) => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
}
|
|
52
|
-
return rules;
|
|
48
|
+
return [
|
|
49
|
+
CssExtractRspackPlugin.loader,
|
|
50
|
+
rule,
|
|
51
|
+
{
|
|
52
|
+
loader: "sass-loader",
|
|
53
|
+
options: mergeStyles ? { additionalData: createStyleMerger(config) } : {}
|
|
54
|
+
}
|
|
55
|
+
];
|
|
53
56
|
};
|
|
54
57
|
const createStyleRules = (defaultStyles = false) => [
|
|
55
58
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/plugins/style/index.ts"],"sourcesContent":["import _ from \"lodash\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport {Configuration as RspackConfig
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/style/index.ts"],"sourcesContent":["import _ from \"lodash\";\nimport path from \"path\";\nimport fs from \"fs\";\nimport {\n Configuration as RspackConfig,\n CssExtractRspackPlugin,\n LoaderContext,\n RuleSetUse,\n RuleSetUseItem,\n} from \"@rspack/core\";\n\nimport {mergeStyleSources} from \"./utils\";\nimport {DocumentStylesLayer, DefaultStylesLayer} from \"@cli/bundler/layers\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {appFilenameResolver} from \"@cli/bundler\";\nimport {getAppSourcePath, getResolvePath, getSharedPath} from \"@cli/resolvers/path\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\n\n// CssExtract also identifies dependencies by loader request, not just by layer.\n// Keep default and document styles distinct even when their contents are identical.\nconst DefaultAsIsLoaderIdent = \"adnbn-default-asis\";\nconst DefaultModulesLoaderIdent = \"adnbn-default-modules\";\n\nconst createStyleMerger = (config: ReadonlyConfig) => {\n const sharedDir = getResolvePath(getSharedPath(config));\n const appDir = getResolvePath(getAppSourcePath(config));\n\n return (content: string, context: LoaderContext): string => {\n const filename = context.resourcePath;\n const relative = path.relative(sharedDir, filename);\n\n if (relative === \"..\" || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)) {\n return content;\n }\n\n const appPath = path.join(appDir, relative);\n\n if (!fs.existsSync(appPath)) {\n context.addMissingDependency(appPath);\n\n return content;\n }\n\n context.addDependency(appPath);\n\n try {\n return mergeStyleSources(\n {filename, content},\n {filename: appPath, content: fs.readFileSync(appPath, \"utf8\")}\n );\n } catch (error) {\n // sass-loader prepares additionalData outside its error handler. Fail the compilation\n // explicitly and supply no stylesheet instead of compiling an incomplete shared fallback.\n context.emitError(error instanceof Error ? error : new Error(String(error)));\n\n return \"\";\n }\n };\n};\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:styles\",\n bundler: ({config}) => {\n const {app, cssDir, cssFilename, cssIdentName, mergeStyles} = config;\n\n const filename = appFilenameResolver(app, cssFilename, cssDir);\n const kebabApp = _.kebabCase(app);\n\n const createSassRuleSet = (rule: RuleSetUseItem): RuleSetUse => {\n return [\n CssExtractRspackPlugin.loader,\n rule,\n {\n loader: \"sass-loader\",\n options: mergeStyles ? {additionalData: createStyleMerger(config)} : {},\n },\n ];\n };\n\n const createStyleRules = (defaultStyles = false) => [\n {\n resourceQuery: /[?&]asis(?:[=&]|$)/,\n use: createSassRuleSet({\n loader: \"css-loader\",\n ...(defaultStyles ? {ident: DefaultAsIsLoaderIdent} : {}),\n options: {esModule: true, modules: false},\n }),\n },\n {\n use: createSassRuleSet({\n loader: \"css-loader\",\n ...(defaultStyles ? {ident: DefaultModulesLoaderIdent} : {}),\n options: {\n esModule: true,\n modules: {\n exportLocalsConvention: \"as-is\",\n namedExport: false,\n localIdentName: cssIdentName.replaceAll(\"[app]\", kebabApp),\n localIdentHashSalt: kebabApp,\n },\n },\n }),\n },\n ];\n\n return {\n resolve: {\n extensions: [\".css\", \".scss\"],\n },\n plugins: [\n new CssExtractRspackPlugin({\n filename,\n chunkFilename: filename,\n }),\n ],\n module: {\n rules: [\n {\n test: /\\.(scss|css)$/,\n type: \"javascript/auto\",\n oneOf: [\n {\n resourceQuery: /[?&]unisolated(?:[=&]|$)/,\n layer: DocumentStylesLayer,\n oneOf: createStyleRules(),\n },\n {\n // Nested CSS imports preserve an explicit document destination.\n issuerLayer: DocumentStylesLayer,\n layer: DocumentStylesLayer,\n oneOf: createStyleRules(),\n },\n {layer: DefaultStylesLayer, oneOf: createStyleRules(true)},\n ],\n },\n ],\n },\n } satisfies RspackConfig;\n },\n };\n});\n"],"mappings":"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","names":[]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rebases the explicit `./` or `../` module request of `@use` or `@forward` parameters written in the
|
|
3
|
+
* stylesheet `from` so it resolves from the stylesheet `to`. Namespaces, `show`, `hide` and `with`
|
|
4
|
+
* configuration stay as written; package, alias, built-in and interpolated requests keep their normal
|
|
5
|
+
* resolution. When both stylesheets are the same file, the request is only normalized.
|
|
6
|
+
*/
|
|
7
|
+
export declare const rebaseModuleRequest: (params: string, from: string, to: string) => string;
|
|
8
|
+
/**
|
|
9
|
+
* Rebases literal relative `url(...)` values written in the stylesheet `from` so they resolve from the
|
|
10
|
+
* stylesheet `to`, including values nested in lists, functions and module configuration. Absolute URLs,
|
|
11
|
+
* schemes, root-relative paths, fragments, queries, ~-prefixed requests and Sass expressions stay as written.
|
|
12
|
+
* Rebased URLs are quoted and keep their query and fragment.
|
|
13
|
+
*/
|
|
14
|
+
export declare const rebaseUrlFunctions: (value: string, from: string, to: string) => string;
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import path from "path";
|
|
2
|
+
import valueParser from "postcss-value-parser";
|
|
3
|
+
import { toPosix } from "./../../../cli/utils/path.js";
|
|
4
|
+
const RelativeRequestPattern = /^\.{1,2}\//;
|
|
5
|
+
const ExternalUrlPattern = /^(?:[a-z][a-z\d+.-]*:|[/#?~])/i;
|
|
6
|
+
const rebaseModuleRequest = (params, from, to) => {
|
|
7
|
+
const parsed = valueParser(params);
|
|
8
|
+
const request = parsed.nodes.find((node) => node.type !== "space" && node.type !== "comment");
|
|
9
|
+
if ((request == null ? void 0 : request.type) !== "string" || request.unclosed || !RelativeRequestPattern.test(request.value) || request.value.includes("#{")) {
|
|
10
|
+
return params;
|
|
11
|
+
}
|
|
12
|
+
request.value = rebaseStylePath(request.value, from, to);
|
|
13
|
+
return parsed.toString();
|
|
14
|
+
};
|
|
15
|
+
const rebaseUrlFunctions = (value, from, to) => {
|
|
16
|
+
const parsed = valueParser(value);
|
|
17
|
+
let rebased = false;
|
|
18
|
+
parsed.walk((node) => {
|
|
19
|
+
if (node.type !== "function" || node.value.toLowerCase() !== "url") {
|
|
20
|
+
return;
|
|
21
|
+
}
|
|
22
|
+
const tokens = node.nodes.filter((token) => token.type !== "space" && token.type !== "comment");
|
|
23
|
+
const url = tokens[0];
|
|
24
|
+
if (node.unclosed || tokens.length !== 1 || !isLiteralUrl(url)) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const quoted = {
|
|
28
|
+
...url,
|
|
29
|
+
type: "string",
|
|
30
|
+
quote: url.type === "string" ? url.quote : '"',
|
|
31
|
+
value: rebaseStylePath(url.value, from, to)
|
|
32
|
+
};
|
|
33
|
+
node.nodes = node.nodes.map((token) => token === url ? quoted : token);
|
|
34
|
+
rebased = true;
|
|
35
|
+
return false;
|
|
36
|
+
});
|
|
37
|
+
return rebased ? parsed.toString() : value;
|
|
38
|
+
};
|
|
39
|
+
const isLiteralUrl = (token) => {
|
|
40
|
+
if (token.type === "string") {
|
|
41
|
+
return !token.unclosed && isLiteralPath(token.value);
|
|
42
|
+
}
|
|
43
|
+
if (token.type === "word") {
|
|
44
|
+
return isLiteralPath(token.value) && !/[$()]/.test(token.value);
|
|
45
|
+
}
|
|
46
|
+
return false;
|
|
47
|
+
};
|
|
48
|
+
const isLiteralPath = (value) => {
|
|
49
|
+
return Boolean(value) && !ExternalUrlPattern.test(value) && !value.includes("#{");
|
|
50
|
+
};
|
|
51
|
+
const rebaseStylePath = (request, from, to) => {
|
|
52
|
+
const suffixIndex = request.search(/[?#]/);
|
|
53
|
+
const pathname = suffixIndex === -1 ? request : request.slice(0, suffixIndex);
|
|
54
|
+
const suffix = suffixIndex === -1 ? "" : request.slice(suffixIndex);
|
|
55
|
+
const directory = toPosix(path.relative(path.dirname(to), path.dirname(from)));
|
|
56
|
+
const relative = path.posix.join(directory, pathname);
|
|
57
|
+
return `${relative.startsWith("../") ? relative : `./${relative}`}${suffix}`;
|
|
58
|
+
};
|
|
59
|
+
export {
|
|
60
|
+
rebaseModuleRequest,
|
|
61
|
+
rebaseUrlFunctions
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=rebase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/style/rebase.ts"],"sourcesContent":["import path from \"path\";\nimport valueParser from \"postcss-value-parser\";\n\nimport {toPosix} from \"@cli/utils/path\";\n\nconst RelativeRequestPattern = /^\\.{1,2}\\//;\n// Schemes, root-relative paths, fragments, queries and ~-prefixed requests are not rebased.\nconst ExternalUrlPattern = /^(?:[a-z][a-z\\d+.-]*:|[/#?~])/i;\n\n/**\n * Rebases the explicit `./` or `../` module request of `@use` or `@forward` parameters written in the\n * stylesheet `from` so it resolves from the stylesheet `to`. Namespaces, `show`, `hide` and `with`\n * configuration stay as written; package, alias, built-in and interpolated requests keep their normal\n * resolution. When both stylesheets are the same file, the request is only normalized.\n */\nexport const rebaseModuleRequest = (params: string, from: string, to: string): string => {\n const parsed = valueParser(params);\n const request = parsed.nodes.find(node => node.type !== \"space\" && node.type !== \"comment\");\n\n if (\n request?.type !== \"string\" ||\n request.unclosed ||\n !RelativeRequestPattern.test(request.value) ||\n request.value.includes(\"#{\")\n ) {\n return params;\n }\n\n request.value = rebaseStylePath(request.value, from, to);\n\n return parsed.toString();\n};\n\n/**\n * Rebases literal relative `url(...)` values written in the stylesheet `from` so they resolve from the\n * stylesheet `to`, including values nested in lists, functions and module configuration. Absolute URLs,\n * schemes, root-relative paths, fragments, queries, ~-prefixed requests and Sass expressions stay as written.\n * Rebased URLs are quoted and keep their query and fragment.\n */\nexport const rebaseUrlFunctions = (value: string, from: string, to: string): string => {\n const parsed = valueParser(value);\n let rebased = false;\n\n parsed.walk(node => {\n if (node.type !== \"function\" || node.value.toLowerCase() !== \"url\") {\n return;\n }\n\n const tokens = node.nodes.filter(token => token.type !== \"space\" && token.type !== \"comment\");\n const url = tokens[0];\n\n if (node.unclosed || tokens.length !== 1 || !isLiteralUrl(url)) {\n return false;\n }\n\n // Quote rebased URLs so spaces in the app directory remain part of the path.\n const quoted: valueParser.StringNode = {\n ...url,\n type: \"string\",\n quote: url.type === \"string\" ? url.quote : '\"',\n value: rebaseStylePath(url.value, from, to),\n };\n\n node.nodes = node.nodes.map(token => (token === url ? quoted : token));\n rebased = true;\n\n return false;\n });\n\n return rebased ? parsed.toString() : value;\n};\n\nconst isLiteralUrl = (token: valueParser.Node): token is valueParser.StringNode | valueParser.WordNode => {\n if (token.type === \"string\") {\n return !token.unclosed && isLiteralPath(token.value);\n }\n\n if (token.type === \"word\") {\n return isLiteralPath(token.value) && !/[$()]/.test(token.value);\n }\n\n return false;\n};\n\nconst isLiteralPath = (value: string): boolean => {\n return Boolean(value) && !ExternalUrlPattern.test(value) && !value.includes(\"#{\");\n};\n\nconst rebaseStylePath = (request: string, from: string, to: string): string => {\n const suffixIndex = request.search(/[?#]/);\n const pathname = suffixIndex === -1 ? request : request.slice(0, suffixIndex);\n const suffix = suffixIndex === -1 ? \"\" : request.slice(suffixIndex);\n const directory = toPosix(path.relative(path.dirname(to), path.dirname(from)));\n // Stylesheet requests are URLs, including on Windows. Keep query/fragment data out of path normalization.\n const relative = path.posix.join(directory, pathname);\n\n return `${relative.startsWith(\"../\") ? relative : `./${relative}`}${suffix}`;\n};\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,OAAO,iBAAiB;AAExB,SAAQ,eAAc;AAEtB,MAAM,yBAAyB;AAE/B,MAAM,qBAAqB;AAQpB,MAAM,sBAAsB,CAAC,QAAgB,MAAc,OAAuB;AACrF,QAAM,SAAS,YAAY,MAAM;AACjC,QAAM,UAAU,OAAO,MAAM,KAAK,UAAQ,KAAK,SAAS,WAAW,KAAK,SAAS,SAAS;AAE1F,OACI,mCAAS,UAAS,YAClB,QAAQ,YACR,CAAC,uBAAuB,KAAK,QAAQ,KAAK,KAC1C,QAAQ,MAAM,SAAS,IAAI,GAC7B;AACE,WAAO;AAAA,EACX;AAEA,UAAQ,QAAQ,gBAAgB,QAAQ,OAAO,MAAM,EAAE;AAEvD,SAAO,OAAO,SAAS;AAC3B;AAQO,MAAM,qBAAqB,CAAC,OAAe,MAAc,OAAuB;AACnF,QAAM,SAAS,YAAY,KAAK;AAChC,MAAI,UAAU;AAEd,SAAO,KAAK,UAAQ;AAChB,QAAI,KAAK,SAAS,cAAc,KAAK,MAAM,YAAY,MAAM,OAAO;AAChE;AAAA,IACJ;AAEA,UAAM,SAAS,KAAK,MAAM,OAAO,WAAS,MAAM,SAAS,WAAW,MAAM,SAAS,SAAS;AAC5F,UAAM,MAAM,OAAO,CAAC;AAEpB,QAAI,KAAK,YAAY,OAAO,WAAW,KAAK,CAAC,aAAa,GAAG,GAAG;AAC5D,aAAO;AAAA,IACX;AAGA,UAAM,SAAiC;AAAA,MACnC,GAAG;AAAA,MACH,MAAM;AAAA,MACN,OAAO,IAAI,SAAS,WAAW,IAAI,QAAQ;AAAA,MAC3C,OAAO,gBAAgB,IAAI,OAAO,MAAM,EAAE;AAAA,IAC9C;AAEA,SAAK,QAAQ,KAAK,MAAM,IAAI,WAAU,UAAU,MAAM,SAAS,KAAM;AACrE,cAAU;AAEV,WAAO;AAAA,EACX,CAAC;AAED,SAAO,UAAU,OAAO,SAAS,IAAI;AACzC;AAEA,MAAM,eAAe,CAAC,UAAoF;AACtG,MAAI,MAAM,SAAS,UAAU;AACzB,WAAO,CAAC,MAAM,YAAY,cAAc,MAAM,KAAK;AAAA,EACvD;AAEA,MAAI,MAAM,SAAS,QAAQ;AACvB,WAAO,cAAc,MAAM,KAAK,KAAK,CAAC,QAAQ,KAAK,MAAM,KAAK;AAAA,EAClE;AAEA,SAAO;AACX;AAEA,MAAM,gBAAgB,CAAC,UAA2B;AAC9C,SAAO,QAAQ,KAAK,KAAK,CAAC,mBAAmB,KAAK,KAAK,KAAK,CAAC,MAAM,SAAS,IAAI;AACpF;AAEA,MAAM,kBAAkB,CAAC,SAAiB,MAAc,OAAuB;AAC3E,QAAM,cAAc,QAAQ,OAAO,MAAM;AACzC,QAAM,WAAW,gBAAgB,KAAK,UAAU,QAAQ,MAAM,GAAG,WAAW;AAC5E,QAAM,SAAS,gBAAgB,KAAK,KAAK,QAAQ,MAAM,WAAW;AAClE,QAAM,YAAY,QAAQ,KAAK,SAAS,KAAK,QAAQ,EAAE,GAAG,KAAK,QAAQ,IAAI,CAAC,CAAC;AAE7E,QAAM,WAAW,KAAK,MAAM,KAAK,WAAW,QAAQ;AAEpD,SAAO,GAAG,SAAS,WAAW,KAAK,IAAI,WAAW,KAAK,QAAQ,EAAE,GAAG,MAAM;AAC9E;","names":[]}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as scss from "postcss-scss";
|
|
2
|
+
import { rebaseModuleRequest, rebaseUrlFunctions } from "./rebase.js";
|
|
2
3
|
const mergeStyleSources = (sharedStyle, appStyle) => {
|
|
3
|
-
const shared = splitStyleSource(sharedStyle);
|
|
4
|
-
const app = splitStyleSource(appStyle);
|
|
4
|
+
const shared = splitStyleSource(sharedStyle, sharedStyle.filename);
|
|
5
|
+
const app = splitStyleSource(appStyle, sharedStyle.filename);
|
|
5
6
|
return [
|
|
6
7
|
...dedupePrelude([...shared.charsets, ...app.charsets]),
|
|
7
8
|
...dedupePrelude([...shared.sassPrelude, ...app.sassPrelude]),
|
|
@@ -21,9 +22,23 @@ const dedupePrelude = (parts) => {
|
|
|
21
22
|
return true;
|
|
22
23
|
});
|
|
23
24
|
};
|
|
24
|
-
const splitStyleSource = (source) => {
|
|
25
|
+
const splitStyleSource = (source, target) => {
|
|
25
26
|
var _a;
|
|
26
|
-
const root = scss.parse(source);
|
|
27
|
+
const root = scss.parse(source.content, { from: source.filename });
|
|
28
|
+
const relocated = source.filename !== target;
|
|
29
|
+
root.walkAtRules((node) => {
|
|
30
|
+
if (isModuleRuleNode(node)) {
|
|
31
|
+
node.params = rebaseModuleRequest(node.params, source.filename, target);
|
|
32
|
+
}
|
|
33
|
+
if (relocated) {
|
|
34
|
+
node.params = rebaseUrlFunctions(node.params, source.filename, target);
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
if (relocated) {
|
|
38
|
+
root.walkDecls((node) => {
|
|
39
|
+
node.value = rebaseUrlFunctions(node.value, source.filename, target);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
27
42
|
const parts = {
|
|
28
43
|
charsets: [],
|
|
29
44
|
sassPrelude: [],
|
|
@@ -64,14 +79,12 @@ const stringifyNode = (node) => {
|
|
|
64
79
|
return content;
|
|
65
80
|
};
|
|
66
81
|
const isCharsetNode = (node) => node.type === "atrule" && node.name === "charset";
|
|
82
|
+
const isModuleRuleNode = (node) => node.type === "atrule" && ["forward", "use"].includes(node.name);
|
|
67
83
|
const isSassPreludeNode = (node) => {
|
|
68
84
|
if (node.type === "decl") {
|
|
69
85
|
return node.prop.startsWith("$");
|
|
70
86
|
}
|
|
71
|
-
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
return ["forward", "use"].includes(node.name);
|
|
87
|
+
return isModuleRuleNode(node);
|
|
75
88
|
};
|
|
76
89
|
const isCssPreludeNode = (node) => {
|
|
77
90
|
var _a;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/plugins/style/utils.ts"],"sourcesContent":["import {ChildNode} from \"postcss\";\nimport * as scss from \"postcss-scss\";\n\ntype StyleSourceParts = {\n charsets: string[];\n sassPrelude: string[];\n cssPrelude: string[];\n body: string[];\n};\n\nexport const mergeStyleSources = (sharedStyle:
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/style/utils.ts"],"sourcesContent":["import {ChildNode} from \"postcss\";\nimport * as scss from \"postcss-scss\";\n\nimport {rebaseModuleRequest, rebaseUrlFunctions} from \"./rebase\";\n\nexport type StyleSource = {\n filename: string;\n content: string;\n};\n\ntype StyleSourceParts = {\n charsets: string[];\n sassPrelude: string[];\n cssPrelude: string[];\n body: string[];\n};\n\nexport const mergeStyleSources = (sharedStyle: StyleSource, appStyle: StyleSource): string => {\n const shared = splitStyleSource(sharedStyle, sharedStyle.filename);\n const app = splitStyleSource(appStyle, sharedStyle.filename);\n\n return [\n ...dedupePrelude([...shared.charsets, ...app.charsets]),\n ...dedupePrelude([...shared.sassPrelude, ...app.sassPrelude]),\n ...dedupePrelude([...shared.cssPrelude, ...app.cssPrelude]),\n ...shared.body,\n ...app.body,\n ]\n .map(part => part.trim())\n .filter(Boolean)\n .join(\"\\n\\n\");\n};\n\n// App overrides repeat the shared @use/@forward; Sass rejects duplicate modules, so collapse exact matches while keeping differing statements that signal real conflicts.\nconst dedupePrelude = (parts: string[]): string[] => {\n const seen = new Set<string>();\n\n return parts.filter(part => {\n const key = part.trim();\n\n if (seen.has(key)) {\n return false;\n }\n\n seen.add(key);\n\n return true;\n });\n};\n\nconst splitStyleSource = (source: StyleSource, target: string): StyleSourceParts => {\n const root = scss.parse(source.content, {from: source.filename});\n // Only a source compiled under another filename needs its resources rebased.\n const relocated = source.filename !== target;\n\n root.walkAtRules(node => {\n if (isModuleRuleNode(node)) {\n // Shared requests pass through the same normalization, so equivalent prepared\n // imports from both sources match when the prelude is deduplicated.\n node.params = rebaseModuleRequest(node.params, source.filename, target);\n }\n\n if (relocated) {\n // Module configuration such as `with ($font: url(...))` carries app resources as well.\n node.params = rebaseUrlFunctions(node.params, source.filename, target);\n }\n });\n\n if (relocated) {\n root.walkDecls(node => {\n node.value = rebaseUrlFunctions(node.value, source.filename, target);\n });\n }\n\n const parts: StyleSourceParts = {\n charsets: [],\n sassPrelude: [],\n cssPrelude: [],\n body: [],\n };\n\n let bodyStarted = false;\n let preludeType: \"sass\" | \"css\" = \"sass\";\n\n root.nodes?.forEach(node => {\n if (!bodyStarted && isCharsetNode(node)) {\n parts.charsets.push(stringifyNode(node));\n\n return;\n }\n\n if (!bodyStarted && node.type === \"comment\") {\n parts[preludeType === \"sass\" ? \"sassPrelude\" : \"cssPrelude\"].push(stringifyNode(node));\n\n return;\n }\n\n if (!bodyStarted && isSassPreludeNode(node)) {\n parts.sassPrelude.push(stringifyNode(node));\n\n return;\n }\n\n if (!bodyStarted && isCssPreludeNode(node)) {\n preludeType = \"css\";\n parts.cssPrelude.push(stringifyNode(node));\n\n return;\n }\n\n bodyStarted = true;\n parts.body.push(stringifyNode(node));\n });\n\n return parts;\n};\n\nconst stringifyNode = (node: ChildNode): string => {\n const content = node.toString(scss.stringify);\n\n if ((node.type === \"atrule\" && !node.nodes?.length) || node.type === \"decl\") {\n return `${content};`;\n }\n\n return content;\n};\n\nconst isCharsetNode = (node: ChildNode): boolean => node.type === \"atrule\" && node.name === \"charset\";\n\nconst isModuleRuleNode = (node: ChildNode): boolean => node.type === \"atrule\" && [\"forward\", \"use\"].includes(node.name);\n\nconst isSassPreludeNode = (node: ChildNode): boolean => {\n if (node.type === \"decl\") {\n return node.prop.startsWith(\"$\");\n }\n\n return isModuleRuleNode(node);\n};\n\nconst isCssPreludeNode = (node: ChildNode): boolean => {\n if (node.type !== \"atrule\" || node.nodes?.length) {\n return false;\n }\n\n return [\"import\", \"namespace\", \"layer\"].includes(node.name);\n};\n"],"mappings":"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","names":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import _ from "lodash";
|
|
3
3
|
import FileBuilder from "./FileBuilder.js";
|
|
4
|
-
import {
|
|
4
|
+
import { resolveRootPath } from "./../../../cli/resolvers/path.js";
|
|
5
5
|
import { PackageName } from "./../../../types/app.js";
|
|
6
6
|
class TypescriptConfig_default extends FileBuilder {
|
|
7
7
|
vendorAliases = {
|
|
@@ -36,7 +36,7 @@ class TypescriptConfig_default extends FileBuilder {
|
|
|
36
36
|
aliases() {
|
|
37
37
|
return _.merge(
|
|
38
38
|
this.vendorAliases,
|
|
39
|
-
_.mapValues(this.alias(), (value) =>
|
|
39
|
+
_.mapValues(this.alias(), (value) => path.resolve(resolveRootPath(this.config), value))
|
|
40
40
|
);
|
|
41
41
|
}
|
|
42
42
|
paths() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/plugins/typescript/TypescriptConfig.ts"],"sourcesContent":["import path from \"path\";\nimport _ from \"lodash\";\nimport {TsConfigJson} from \"type-fest\";\n\nimport FileBuilder from \"./FileBuilder\";\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/typescript/TypescriptConfig.ts"],"sourcesContent":["import path from \"path\";\nimport _ from \"lodash\";\nimport {TsConfigJson} from \"type-fest\";\n\nimport FileBuilder from \"./FileBuilder\";\n\nimport {resolveRootPath} from \"@cli/resolvers/path\";\n\nimport {ReadonlyConfig} from \"@typing/config\";\nimport {PackageName} from \"@typing/app\";\n\nexport default class extends FileBuilder {\n protected readonly vendorAliases = {\n [`${PackageName}/browser`]: \"@addon-core/browser\",\n [`${PackageName}/storage`]: \"@addon-core/storage\",\n };\n\n public constructor(config: ReadonlyConfig) {\n super(config);\n }\n\n protected filename(): string {\n return \"tsconfig.json\";\n }\n\n protected withBanner(): boolean {\n return false;\n }\n\n protected template(): string {\n return \"\"; // Not need is this place\n }\n\n protected content(): string {\n return JSON.stringify(this.json(), null, 2);\n }\n\n protected alias(): Record<string, string> {\n const srcDir = this.config.srcDir;\n const sharedDir = path.posix.join(srcDir, this.config.sharedDir);\n\n return {\n [srcDir]: srcDir,\n \"@\": srcDir,\n \"@shared\": sharedDir,\n \"~\": sharedDir,\n };\n }\n\n public aliases(): Record<string, string> {\n return _.merge(\n this.vendorAliases,\n _.mapValues(this.alias(), value => path.resolve(resolveRootPath(this.config), value))\n );\n }\n\n public paths(): Record<string, string[]> {\n return _.reduce(\n this.alias(),\n (paths, value, key) => ({\n ...paths,\n [path.posix.join(key, \"*\")]: [path.posix.join(\"..\", value, \"*\")],\n }),\n {} as Record<string, string[]>\n );\n }\n\n public json(): TsConfigJson {\n const outputDir = path.posix.join(\"..\", this.config.outDir);\n\n return {\n compilerOptions: {\n target: \"ESNext\",\n module: \"ESNext\",\n moduleResolution: \"Bundler\",\n esModuleInterop: true,\n forceConsistentCasingInFileNames: true,\n resolveJsonModule: true,\n strict: true,\n skipLibCheck: true,\n noEmit: true,\n outDir: outputDir,\n paths: this.paths(),\n },\n include: [\"../**/*\", \"./*.d.ts\"],\n exclude: [outputDir],\n };\n }\n}\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,OAAO,OAAO;AAGd,OAAO,iBAAiB;AAExB,SAAQ,uBAAsB;AAG9B,SAAQ,mBAAkB;AAE1B,MAAO,iCAAsB,YAAY;AAAA,EAClB,gBAAgB;AAAA,IAC/B,CAAC,GAAG,WAAW,UAAU,GAAG;AAAA,IAC5B,CAAC,GAAG,WAAW,UAAU,GAAG;AAAA,EAChC;AAAA,EAEO,YAAY,QAAwB;AACvC,UAAM,MAAM;AAAA,EAChB;AAAA,EAEU,WAAmB;AACzB,WAAO;AAAA,EACX;AAAA,EAEU,aAAsB;AAC5B,WAAO;AAAA,EACX;AAAA,EAEU,WAAmB;AACzB,WAAO;AAAA,EACX;AAAA,EAEU,UAAkB;AACxB,WAAO,KAAK,UAAU,KAAK,KAAK,GAAG,MAAM,CAAC;AAAA,EAC9C;AAAA,EAEU,QAAgC;AACtC,UAAM,SAAS,KAAK,OAAO;AAC3B,UAAM,YAAY,KAAK,MAAM,KAAK,QAAQ,KAAK,OAAO,SAAS;AAE/D,WAAO;AAAA,MACH,CAAC,MAAM,GAAG;AAAA,MACV,KAAK;AAAA,MACL,WAAW;AAAA,MACX,KAAK;AAAA,IACT;AAAA,EACJ;AAAA,EAEO,UAAkC;AACrC,WAAO,EAAE;AAAA,MACL,KAAK;AAAA,MACL,EAAE,UAAU,KAAK,MAAM,GAAG,WAAS,KAAK,QAAQ,gBAAgB,KAAK,MAAM,GAAG,KAAK,CAAC;AAAA,IACxF;AAAA,EACJ;AAAA,EAEO,QAAkC;AACrC,WAAO,EAAE;AAAA,MACL,KAAK,MAAM;AAAA,MACX,CAAC,OAAO,OAAO,SAAS;AAAA,QACpB,GAAG;AAAA,QACH,CAAC,KAAK,MAAM,KAAK,KAAK,GAAG,CAAC,GAAG,CAAC,KAAK,MAAM,KAAK,MAAM,OAAO,GAAG,CAAC;AAAA,MACnE;AAAA,MACA,CAAC;AAAA,IACL;AAAA,EACJ;AAAA,EAEO,OAAqB;AACxB,UAAM,YAAY,KAAK,MAAM,KAAK,MAAM,KAAK,OAAO,MAAM;AAE1D,WAAO;AAAA,MACH,iBAAiB;AAAA,QACb,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,kBAAkB;AAAA,QAClB,iBAAiB;AAAA,QACjB,kCAAkC;AAAA,QAClC,mBAAmB;AAAA,QACnB,QAAQ;AAAA,QACR,cAAc;AAAA,QACd,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,OAAO,KAAK,MAAM;AAAA,MACtB;AAAA,MACA,SAAS,CAAC,WAAW,UAAU;AAAA,MAC/B,SAAS,CAAC,SAAS;AAAA,IACvB;AAAA,EACJ;AACJ;","names":[]}
|
|
@@ -2,7 +2,7 @@ import type { HtmlRspackPluginOptions } from "@rspack/core";
|
|
|
2
2
|
import type { Options as HtmlRspackTagsPluginOptions } from "html-rspack-tags-plugin";
|
|
3
3
|
import { AbstractViewFinder } from "../../entrypoint/index.js";
|
|
4
4
|
import { EntrypointEntries } from "../../../types/entrypoint.js";
|
|
5
|
-
import { ViewEntrypointOptions } from "../../../types/view.js";
|
|
5
|
+
import { ViewEntrypointOptions } from "../../../types/view/index.js";
|
|
6
6
|
import { ReadonlyConfig } from "../../../types/config.js";
|
|
7
7
|
export default class<O extends ViewEntrypointOptions> {
|
|
8
8
|
protected readonly config: ReadonlyConfig;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import path from "path";
|
|
2
2
|
import _ from "lodash";
|
|
3
|
+
import { HtmlOptionKeys } from "./../../../cli/entrypoint/index.js";
|
|
3
4
|
class View_default {
|
|
4
5
|
constructor(config, finder) {
|
|
5
6
|
this.config = config;
|
|
@@ -33,16 +34,7 @@ class View_default {
|
|
|
33
34
|
const tags = [];
|
|
34
35
|
const views = await this.finder.views();
|
|
35
36
|
for (const { filename, options } of views.values()) {
|
|
36
|
-
const
|
|
37
|
-
as,
|
|
38
|
-
title,
|
|
39
|
-
template,
|
|
40
|
-
excludeApp,
|
|
41
|
-
includeApp,
|
|
42
|
-
excludeBrowser,
|
|
43
|
-
includeBrowser,
|
|
44
|
-
...tagOptions
|
|
45
|
-
} = options;
|
|
37
|
+
const tagOptions = _.pick(options, HtmlOptionKeys);
|
|
46
38
|
if (!_.isEmpty(tagOptions)) {
|
|
47
39
|
tags.push({
|
|
48
40
|
...tagOptions,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/plugins/view/View.ts"],"sourcesContent":["import path from \"path\";\nimport _ from \"lodash\";\n\nimport type {HtmlRspackPluginOptions} from \"@rspack/core\";\nimport type {Options as HtmlRspackTagsPluginOptions} from \"html-rspack-tags-plugin\";\n\nimport {AbstractViewFinder} from \"@cli/entrypoint/index.js\";\n\nimport {EntrypointEntries} from \"@typing/entrypoint\";\nimport {ViewEntrypointOptions} from \"@typing/view\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport default class<O extends ViewEntrypointOptions> {\n public constructor(\n protected readonly config: ReadonlyConfig,\n protected readonly finder: AbstractViewFinder<O>\n ) {}\n\n public async entries(): Promise<EntrypointEntries> {\n const entries: EntrypointEntries = new Map();\n\n for (const [name, page] of await this.finder.views()) {\n entries.set(name, new Set([page.file]));\n }\n\n return entries;\n }\n\n public async html(): Promise<HtmlRspackPluginOptions[]> {\n const html: HtmlRspackPluginOptions[] = [];\n\n for (const [name, {file, filename, options}] of await this.finder.views()) {\n const {template, title} = options;\n\n html.push({\n filename,\n title: title || _.startCase(this.config.app),\n template: template ? path.resolve(path.dirname(file.file), template) : undefined,\n chunks: [name],\n inject: \"body\",\n minify: true,\n });\n }\n\n return html;\n }\n\n public async tags(): Promise<HtmlRspackTagsPluginOptions[]> {\n const tags: HtmlRspackTagsPluginOptions[] = [];\n\n const views = await this.finder.views();\n\n for (const {filename, options} of views.values()) {\n //
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/view/View.ts"],"sourcesContent":["import path from \"path\";\nimport _ from \"lodash\";\n\nimport type {HtmlRspackPluginOptions} from \"@rspack/core\";\nimport type {Options as HtmlRspackTagsPluginOptions} from \"html-rspack-tags-plugin\";\n\nimport {AbstractViewFinder, HtmlOptionKeys} from \"@cli/entrypoint/index.js\";\n\nimport {EntrypointEntries} from \"@typing/entrypoint\";\nimport {ViewEntrypointOptions} from \"@typing/view\";\nimport {ReadonlyConfig} from \"@typing/config\";\n\nexport default class<O extends ViewEntrypointOptions> {\n public constructor(\n protected readonly config: ReadonlyConfig,\n protected readonly finder: AbstractViewFinder<O>\n ) {}\n\n public async entries(): Promise<EntrypointEntries> {\n const entries: EntrypointEntries = new Map();\n\n for (const [name, page] of await this.finder.views()) {\n entries.set(name, new Set([page.file]));\n }\n\n return entries;\n }\n\n public async html(): Promise<HtmlRspackPluginOptions[]> {\n const html: HtmlRspackPluginOptions[] = [];\n\n for (const [name, {file, filename, options}] of await this.finder.views()) {\n const {template, title} = options;\n\n html.push({\n filename,\n title: title || _.startCase(this.config.app),\n template: template ? path.resolve(path.dirname(file.file), template) : undefined,\n chunks: [name],\n inject: \"body\",\n minify: true,\n });\n }\n\n return html;\n }\n\n public async tags(): Promise<HtmlRspackTagsPluginOptions[]> {\n const tags: HtmlRspackTagsPluginOptions[] = [];\n\n const views = await this.finder.views();\n\n for (const {filename, options} of views.values()) {\n // Only HTML options reach the tags plugin; view, build and manifest options stay out of it.\n const tagOptions = _.pick(options, HtmlOptionKeys);\n\n if (!_.isEmpty(tagOptions)) {\n tags.push({\n ...tagOptions,\n files: [filename],\n });\n }\n }\n\n return tags;\n }\n}\n"],"mappings":"AAAA,OAAO,UAAU;AACjB,OAAO,OAAO;AAKd,SAA4B,sBAAqB;AAMjD,MAAO,aAA+C;AAAA,EAC3C,YACgB,QACA,QACrB;AAFqB;AACA;AAAA,EACpB;AAAA,EAFoB;AAAA,EACA;AAAA,EAGvB,MAAa,UAAsC;AAC/C,UAAM,UAA6B,oBAAI,IAAI;AAE3C,eAAW,CAAC,MAAM,IAAI,KAAK,MAAM,KAAK,OAAO,MAAM,GAAG;AAClD,cAAQ,IAAI,MAAM,oBAAI,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC;AAAA,IAC1C;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,OAA2C;AACpD,UAAM,OAAkC,CAAC;AAEzC,eAAW,CAAC,MAAM,EAAC,MAAM,UAAU,QAAO,CAAC,KAAK,MAAM,KAAK,OAAO,MAAM,GAAG;AACvE,YAAM,EAAC,UAAU,MAAK,IAAI;AAE1B,WAAK,KAAK;AAAA,QACN;AAAA,QACA,OAAO,SAAS,EAAE,UAAU,KAAK,OAAO,GAAG;AAAA,QAC3C,UAAU,WAAW,KAAK,QAAQ,KAAK,QAAQ,KAAK,IAAI,GAAG,QAAQ,IAAI;AAAA,QACvE,QAAQ,CAAC,IAAI;AAAA,QACb,QAAQ;AAAA,QACR,QAAQ;AAAA,MACZ,CAAC;AAAA,IACL;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAa,OAA+C;AACxD,UAAM,OAAsC,CAAC;AAE7C,UAAM,QAAQ,MAAM,KAAK,OAAO,MAAM;AAEtC,eAAW,EAAC,UAAU,QAAO,KAAK,MAAM,OAAO,GAAG;AAE9C,YAAM,aAAa,EAAE,KAAK,SAAS,cAAc;AAEjD,UAAI,CAAC,EAAE,QAAQ,UAAU,GAAG;AACxB,aAAK,KAAK;AAAA,UACN,GAAG;AAAA,UACH,OAAO,CAAC,QAAQ;AAAA,QACpB,CAAC;AAAA,MACL;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AACJ;","names":[]}
|
|
@@ -6,7 +6,16 @@ var view_default = definePlugin(() => {
|
|
|
6
6
|
return {
|
|
7
7
|
name: "adnbn:view",
|
|
8
8
|
bundler: ({ config }) => {
|
|
9
|
-
const entryTypeFilter = onlyViaTopLevelEntry([
|
|
9
|
+
const entryTypeFilter = onlyViaTopLevelEntry([
|
|
10
|
+
"page",
|
|
11
|
+
"popup",
|
|
12
|
+
"sidebar",
|
|
13
|
+
"offscreen",
|
|
14
|
+
"options",
|
|
15
|
+
"newtab",
|
|
16
|
+
"bookmarks",
|
|
17
|
+
"history"
|
|
18
|
+
]);
|
|
10
19
|
return {
|
|
11
20
|
optimization: {
|
|
12
21
|
splitChunks: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/cli/plugins/view/index.ts"],"sourcesContent":["import {NormalModule} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {onlyViaTopLevelEntry} from \"@cli/bundler\";\nimport {getResolvePath, getSourcePath} from \"@cli/resolvers/path\";\n\nexport {default as View} from \"./View\";\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:view\",\n bundler: ({config}) => {\n const entryTypeFilter = onlyViaTopLevelEntry([\"page\"
|
|
1
|
+
{"version":3,"sources":["../../../../src/cli/plugins/view/index.ts"],"sourcesContent":["import {NormalModule} from \"@rspack/core\";\n\nimport {definePlugin} from \"@main/plugin\";\n\nimport {onlyViaTopLevelEntry} from \"@cli/bundler\";\nimport {getResolvePath, getSourcePath} from \"@cli/resolvers/path\";\n\nexport {default as View} from \"./View\";\n\nexport default definePlugin(() => {\n return {\n name: \"adnbn:view\",\n bundler: ({config}) => {\n const entryTypeFilter = onlyViaTopLevelEntry([\n \"page\",\n \"popup\",\n \"sidebar\",\n \"offscreen\",\n \"options\",\n \"newtab\",\n \"bookmarks\",\n \"history\",\n ]);\n\n return {\n optimization: {\n splitChunks: {\n cacheGroups: {\n adnbnView: {\n minChunks: 2,\n minSize: 0,\n name: \"common.view\",\n test: (module, context) => {\n const nm = module as NormalModule;\n\n if (!nm.resource) {\n return false;\n }\n\n if (nm.resource.startsWith(getResolvePath(getSourcePath(config)))) {\n return false;\n }\n\n return entryTypeFilter(module, context);\n },\n enforce: false,\n reuseExistingChunk: true,\n priority: 50,\n },\n },\n },\n },\n };\n },\n };\n});\n"],"mappings":"AAEA,SAAQ,oBAAmB;AAE3B,SAAQ,4BAA2B;AACnC,SAAQ,gBAAgB,qBAAoB;AAE5C,SAAmB,WAAXA,gBAAsB;AAE9B,IAAO,eAAQ,aAAa,MAAM;AAC9B,SAAO;AAAA,IACH,MAAM;AAAA,IACN,SAAS,CAAC,EAAC,OAAM,MAAM;AACnB,YAAM,kBAAkB,qBAAqB;AAAA,QACzC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,CAAC;AAED,aAAO;AAAA,QACH,cAAc;AAAA,UACV,aAAa;AAAA,YACT,aAAa;AAAA,cACT,WAAW;AAAA,gBACP,WAAW;AAAA,gBACX,SAAS;AAAA,gBACT,MAAM;AAAA,gBACN,MAAM,CAAC,QAAQ,YAAY;AACvB,wBAAM,KAAK;AAEX,sBAAI,CAAC,GAAG,UAAU;AACd,2BAAO;AAAA,kBACX;AAEA,sBAAI,GAAG,SAAS,WAAW,eAAe,cAAc,MAAM,CAAC,CAAC,GAAG;AAC/D,2BAAO;AAAA,kBACX;AAEA,yBAAO,gBAAgB,QAAQ,OAAO;AAAA,gBAC1C;AAAA,gBACA,SAAS;AAAA,gBACT,oBAAoB;AAAA,gBACpB,UAAU;AAAA,cACd;AAAA,YACJ;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AACJ,CAAC;","names":["default"]}
|