
Research
Two Malicious Rust Crates Impersonate Popular Logger to Steal Wallet Keys
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
@netless/app-in-mainview-plugin
Advanced tools
该插件基于 [@netless/window-manager](https://www.npmjs.com/package/@netless/window-manager) 的多窗口模式, 把app窗口(课件、插件)集成到主窗口中, app窗口可以随着主白板的页面切换而隐藏或显示.
The plug-in based on @netless/window-manager multi-window mode, the app window (courseware, plug-in) are integrated into the main window, The app window can be hidden or displayed along with the page switch of the main whiteboard.
npm install @netless/app-in-mainview-plugin
// Interface with fastboard-react
import { useFastboard, Fastboard } from "@netless/fastboard-react";
const app = useFastboard(() => ({
sdkConfig: {
...
},
joinRoom: {
...
},
managerConfig: {
...
},
// Enable the appInMainViewPlugin plugin
// The default UI is enabled by default. If you need to customize the UI, you can pass "enableDefaultUI: false"
enableAppInMainViewPlugin: true || {
enableDefaultUI: true,
language: "en",
...
}
}));
// Interface with fastboard
import { createFastboard, createUI } from "@netless/fastboard";
const fastboard = await createFastboard({
sdkConfig: {
...
},
joinRoom: {
...
},
managerConfig: {
...
},
// Enable the appInMainViewPlugin plugin
// The default UI is enabled by default. If you need to customize the UI, you can pass "enableDefaultUI: false"
enableAppInMainViewPlugin: true || {
enableDefaultUI: true,
language: "en",
...
}
});
import '@netless/window-manager/dist/style.css';
import '@netless/app-in-mainview-plugin/dist/style.css';
import { WhiteWebSdk } from "white-web-sdk";
import { WindowManager } from "@netless/window-manager";
import { AppInMainViewPlugin } from '@netless/app-in-mainview-plugin';
const whiteWebSdk = new WhiteWebSdk(...)
const room = await whiteWebSdk.joinRoom({
...
invisiblePlugins: [WindowManager, ApplianceMultiPlugin],
useMultiViews: true,
})
const manager = await WindowManager.mount({ room , container:elm, chessboard: true, cursor: true});
if (manager) {
const appInMainViewPlugin = await AppInMainViewPlugin.getInstance(manager as any, {
language: "en"
});
}
Note The css file
import '@netless/app-in-mainview-plugin/dist/style.css
needs to be introduced in the project;
getInstance(wm: WindowManager, options: AppInMainViewOptions)
WindowManager
. An instance object of Windows Manager。AppInMainViewOptions
. Configuration parameters. They can be left empty. If left empty, the default configuration will be used. The configuration is as follows.
export type AppInMainViewOptions = {
/** Whether to enable the default UI */
enableDefaultUI?: boolean;
/** ui container */
containerUI?: HTMLDivElement;
/** Whether only the hidden courseware is displayed */
onlyShowHidden?: boolean;
/** Language */
language?: Language;
/** Language */
theme?: 'light' | 'dark';
}
// Default configuration parameters
const DefaultAppInMainViewPluginOptions = {
enableDefaultUI: true,
onlyShowHidden: false,
language: 'en',
theme: 'light',
};
Logger
. Not required. Configure the log printer object. If not filled in, the default output will be in the local console. If it is necessary to upload the log to the specified server, manual configuration is required.
If it is necessary to upload to the whiteboard log server, the logger on room can be configured to this project.
logger: room.logger
export type AppInMainViewInstance = {
/** Current Manager instance **/
readonly currentManager?: AppInMainViewManager;
/** The list of apps visible on the current page */
readonly currentPageVisibleApps?: Set<AppId>;
/** The list of apps on the current page */
readonly currentPageApps?: Map<AppId, AppStatus>;
/** Destroy */
readonly destroy: () => void;
/** Add listeners */
readonly addListener: (eventName: PublicEvent, callback: PublicCallback<PublicEvent>) => void;
/** Remove the listener */
readonly removeListener: (eventName: PublicEvent, callback: PublicCallback<PublicEvent>) => void;
/** Hide the specified courseware */
readonly hideApp: (appId: AppId) => void;
/** Display the specified courseware */
readonly showApp: (appId: AppId) => void;
/** Display all courseware on the current page */
readonly showCurrentPageApps: () => void;
/** Hide all courseware on the current page */
readonly hiddenCurrentPageApps: () => void;
}
// for example
const appInMainViewPlugin = await AppInMainViewPlugin.getInstance(...)
appInMainViewPlugin.currentManager;
appInMainViewPlugin.currentPageVisibleApps;
appInMainViewPlugin.currentPageHiddenApps;
appInMainViewPlugin.hideApp(...);
appInMainViewPlugin.showApp(...);
appInMainViewPlugin.showCurrentPageApps();
appInMainViewPlugin.hiddenCurrentPageApps();
appInMainViewPlugin.destroy();
During the integration process, if you want to understand and track the internal status of the plugin, you can view the internal data through the following several console commands.
const appInMainViewPlugin = await AppInMainViewPlugin.getInstance(...)
appInMainViewPlugin.currentManager // can see the package version number, internal state, etc
{
enableDefaultUI: false,
containerUI: customContainerUI as HTMLDivElement,
...
}
appInMainViewPlugin.currentPageApps;
appInMainViewPlugin.currentPageVisibleApps;
appInMainViewPlugin.addListener('appMenuChange', (appMeun) => {
// todo upate UI
})
For specific reference: appMeun
FAQs
该插件基于 [@netless/window-manager](https://www.npmjs.com/package/@netless/window-manager) 的多窗口模式, 把app窗口(课件、插件)集成到主窗口中, app窗口可以随着主白板的页面切换而隐藏或显示.
The npm package @netless/app-in-mainview-plugin receives a total of 766 weekly downloads. As such, @netless/app-in-mainview-plugin popularity was classified as not popular.
We found that @netless/app-in-mainview-plugin demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 3 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Socket uncovers malicious Rust crates impersonating fast_log to steal Solana and Ethereum wallet keys from source code.
Research
A malicious package uses a QR code as steganography in an innovative technique.
Research
/Security News
Socket identified 80 fake candidates targeting engineering roles, including suspected North Korean operators, exposing the new reality of hiring as a security function.