
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
@proscom/figma-bot
Advanced tools
Figma-bot is a Node.js module to programmatically create and update projects and files in Figma, which Figma API does not allow.
yarn add @proscom/figma-bot
// or
npm install --save @proscom/figma-bot
import { FigmaBot } from '@proscom/figma-bot';
The main class of the module which uses Puppeteer library to interact with Figma web-site and create and update Figma projects and files.
browser
Object: Puppeteer Browser instance, the browser which opens Figma web-site pages;authData
Object: Figma authorization data of the account which will be used by the bot to authorize on Figma web-site:
email
string: account email;password
string: account password;delayDuration
number: duration of delay between bot interactions with Figma web-site (e.g. click, navigate etc.) in ms;cookiesProvider
Object: object providing Figma authorization cookies (see below for details).const bot = new FigmaBot({ authData, delayDuration, cookiesProvider });
Parameters:
authData
Object: value to initialize authData
property:
email
string (required);password
string (required);delayDuration
number: value to initialize delayDuration
property (optional, default 2000
);cookiesProvider
Object: value to initialize cookiesProvider
property (optional).Method | Parameters | Description | Return value |
---|---|---|---|
bot.start() | Starts the bot. | Promise<void> | |
bot.stop() | Stops the bot. | Promise<void> | |
bot.creatProject(projectName, teamId) | - projectName string (required)- teamId string (required) | Creates a project with name projectName in team with id teamId . | Promise<string> - a promise which resolves with the new project id |
bot.creatFile(fileName, projectId) | - fileName string (required),- projectId string (required) | Creates a file with name fileName in project with id projectId . | Promise<string> - a promise which resolves with the new file id |
bot.renameFile(fileId, newName) | - fileId string (required)- newName string (required) | Renames a file with id fileId to newName . | Promise<void> |
bot.renameProject(projectId, newName) | - projectId string (required)- newName string (required) | Renames a project with id project to newName . | Promise<void> |
You can find your team id in the team's page URL between 'team' and your team name, e.g. for team page URL https://www.figma.com/files/team/000000000000000001/MyTeamName team id is 000000000000000001. Same for project and file ids:
FigmaBot's cookiesProvider
property is an instance of the following interface:
export interface CookiesProvider {
getCookies: () => Promise<any>;
setCookies: (cookies: any) => Promise<void>;
}
CookiesProvider
allows saving and loading Figma account authorization cookies. If cookiesProvider
parameter not passed to FigmaBot's constructor, cookies are not saved and authorization is performed every new session.
A simple example of CookiesProvider
is FSCookiesProvider
class which implements CookiesProvider
interface and uses fs
module to save cookies to json file and load cookies from the file.
import { FSCookiesProvider } from '@proscom/figma-bot';
const cookiesProvider = new FSCookiesProvider(path);
Constructor parameters:
path
string: path to json file which contains cookies.An example code that creates a simple Figma bot, uses FSCookiesProvider
as cookiesProvider
and creates project "My project" and file "My file":
const { FigmaBot, FSCookiesProvider } = require('./lib');
const bot = new FigmaBot({
authData: {
email: 'your figma email',
password: 'your figma password'
},
cookiesProvider: new FSCookiesProvider()
});
(async () => {
try {
await bot.start();
const projectId = await bot.createProject('My project', 'your team id');
const fileId = await bot.createFile('My file', projectId);
console.log('"My project" id is "' + projectId + '", "My file" id is "' + fileId + '".');
} catch (e) {
console.log(e);
}
await bot.stop();
})();
FAQs
Bot to work with projects and files in Figma
The npm package @proscom/figma-bot receives a total of 12 weekly downloads. As such, @proscom/figma-bot popularity was classified as not popular.
We found that @proscom/figma-bot demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 4 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.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.