Research
Security News
Kill Switch Hidden in npm Packages Typosquatting Chalk and Chokidar
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
@unstoppabledomains/ui-components
Advanced tools
An open and reusable suite of Unstoppable Domains management components
A set of common tools to manage your Unstoppable Domain 🛠️
This repository contains the following:
server
directorypackages/ui-components
directorypackages/config
directoryThe UD.me profile service is hosted on both testnet
(staging) and mainnet
(production) environments. Example Unstoppable Domains profiles for each
environment are provided below.
The React components contained in the domain-profiles
project can be used in
your own project, and imported directly from NPM. Some of the components
available include:
To use the Unstoppable Domains React components in your own project, install the package in your project directory:
// with npm
npm install --save @unstoppabledomains/ui-components
// with yarn
yarn add @unstoppabledomains/ui-components
Note the ui-components
package has peer dependencies on the React and the
React DOM. If you are not already using them in your project, you'll need to
install them (version > 18):
// with npm
npm install react react-dom
// with yarn
yarn add react react-dom
As an example, the following snippet demonstrates how to add Unstoppable Messaging to your existing Web3 React dApp. The full source code for this example is available on the Unstoppable Domains GitHub, and a live demo has been provided as well.
import Button from '@mui/material/Button';
import React from 'react';
import {
BaseProvider,
UnstoppableMessaging,
UnstoppableMessagingProvider,
useUnstoppableMessaging,
} from '@unstoppabledomains/ui-components';
const MyPage = () => {
// Hook provides utility methods, such as opening the Unstoppable
// Messaging window by clicking a button
const {setOpenChat} = useUnstoppableMessaging();
// Open a chat window to a specific user
const handleOpenChat = () => {
setOpenChat('friend.x');
};
return (
<BaseProvider>
<UnstoppableMessagingProvider>
<UnstoppableMessaging />
<Button onClick={handleOpenChat}>Open chat</Button>
</UnstoppableMessagingProvider>
</BaseProvider>
);
};
export default MyPage;
We welcome contributions from the Web3 community. Please feel free to open issues or pull requests on this repo, and our team will work with you to make changes.
To contribute changes to the domain-profiles
project, you'll need to clone the
project and build it in your local environment. The following commands show how
to clone the repo and run the UD.me website locally on your system.
# Clone the project
git clone git@github.com:unstoppabledomains/domain-profiles.git
cd domain-profiles
# Build the project locally
yarn install # install dependencies
yarn build # build shared packages
# Run the development server
yarn workspace server run dev:staging
You can now view the locally running service in your browser. Here are some example local endpoints for testing.
To run the tests locally (src/**/*.test.tsx
files):
yarn test # run all tests
yarn test:ci # run all tests and generate coverage report
Linting is enforced by the CI. This is how to check for and resolve errors locally for easier resolution of problems.
yarn lint # automatically fixes linting errors
yarn format # checks for formatting errors
We welcome and encourage pull requests from the community. Some brief notes about expectations for pull requests:
Users with write access to this GitHub repository can follow these steps to manage staging deployments and NPM package management.
Pull requests can be deployed by the CI to the https://staging.ud.me endpoint. However, an authorization by a maintainer is required before the CI will deploy. Authorization is made by commenting in the pull request with the following text:
/gcbrun
After the comment is made, the CI will initiate a deployment to the staging endpoint. See here for an example of an authorization comment.
Every merge to main
results in a deployment to both https://ud.me (production)
and https://staging.ud.me (staging) endpoints. No action is required.
If you are a developer with access to the
Unstoppable Domains NPM registry,
follow these instructions to publish a new package version. Assume <package>
is the NPM package that needs to be published.
packages/<package>/package.json
packages/<package>/CHANGELOG.md
with relevant informationyarn dist
cd packages/ < package > /build/src
npm publish
Follow the NPM prompts on screen to complete the publish process. Note, it's
important to execute the publish from the package's build/src
directory for
proper resolution.
FAQs
An open and reusable suite of Unstoppable Domains management components
The npm package @unstoppabledomains/ui-components receives a total of 237 weekly downloads. As such, @unstoppabledomains/ui-components popularity was classified as not popular.
We found that @unstoppabledomains/ui-components demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 0 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
Security News
Socket researchers found several malicious npm packages typosquatting Chalk and Chokidar, targeting Node.js developers with kill switches and data theft.
Security News
pnpm 10 blocks lifecycle scripts by default to improve security, addressing supply chain attack risks but sparking debate over compatibility and workflow changes.
Product
Socket now supports uv.lock files to ensure consistent, secure dependency resolution for Python projects and enhance supply chain security.