Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
@xola/ui-kit
Advanced tools
Xola's React component library with Tailwind CSS for the next generation of Xola apps.
This repository is published as two pieces:
It's storybook is publicly published at ui.xola.io. The icons can be previewed there as well.
Install the UI kit:
npm install @xola/ui-kit
Install peer dependencies:
npm install autoprefixer postcss tailwindcss lodash
Create PostCSS and Tailwind config files:
echo 'module.exports = require("@xola/ui-kit/tailwind.config");' > tailwind.config.js
echo 'module.exports = require("@xola/ui-kit/postcss.config");' > postcss.config.js
Import main CSS files in your project:
import "@xola/ui-kit/index.css";
import "@xola/ui-kit/build/style.css";
UI kit expects you already have a working React dev environment with PostCSS support.
Import and use the components:
import { Button } from "@xola/ui-kit";
Install all required dependencies:
$ nvm use # Project needs Node.js v16 with NPM v7
$ npm install
Start the Storybook development server:
$ npm start
In order for this to work you will have to set up an NPM workspace. That means, ui-kit
and your-project
has to be in the same directory.
Start by creating a package.json
file in your "workspace" directory with the following content:
{
"workspaces": ["ui-kit", "your-project"]
}
Your workspace directory should also contain .npmrc
and .nvmrc
files. Copy them from this project:
$ cd workspace
$ cp ui-kit/.npmrc .
$ cp ui-kit/.nvmrc .
Now we're ready to install the dependencies for both projects:
$ cd workspace
$ npm install
If all went well, NPM will use locally installed ui-kit
in your-project
.
Next, start the build command from ui-kit
:
$ cd ui-kit
$ npm run build -- --watch
This will build and watch for changes the ui-kit
project. Any change made in the ui-kit
should be visible in your-project
.
If you don't see any changes in your project, that probably means that NPM installed a separate package in your your-project/node_modules
directory. To fix this, just remove the whole package with the following command:
$ cd your-project
$ rm -rf node_modules/@xola
If you encounter some package related issues, try removing the following directories and running the install command again:
$ cd workspace
$ rm -rf package-lock.json node_modules ui-kit/node_modules your-project/node_modules
$ npm install
To automatically fix lint issues in this project you have the following commands:
npm run lint # Run lint on `src` and output issues
npm run lint:fix # Run lint and automatically fix any issues. Any that are not fixed are output to screen.
To avoid issues with how npm v7 resolves peer dependencies, we enabled legacy-peer-deps
rule in .npmrc
.
In order to avoid issues in your projects that are using this UI Kit, use the same .npmrc
file or always run installs with --legacy-peer-deps
flag.
For example:
$ npm install --legacy-peer-deps
Or:
$ npm install some-package --legacy-peer-deps
Install np which will help you publish the package
npm -g install np
Once you're ready, run this command to publish your package
npm run build
np <your-new-version> --tag=latest --yolo
Then make sure to push all the tags upstream to xola/ui-kit
repo:
git push <upstream-remote> master --tags
FAQs
Xola UI Kit
We found that @xola/ui-kit demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 6 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
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.