Catalog npm
Back to packageRELEASE DETAILS

0.1.25

npm

@0day-network/mod-renderer

Module renderer components for 0day Network dApps

0daycomponentmodulereactrenderer
Published20 Oct 2025
Direct dependencies16
Transitive dependenciesNot calculated

README

Current package documentation

@0day-network/mod-renderer

Module renderer components for 0day Network dApps. Provides React components to dynamically load and render modules with support for encryption, dependency injection, and various SDK types.

Installation

npm install @0day-network/mod-renderer
# or
pnpm add @0day-network/mod-renderer
# or
yarn add @0day-network/mod-renderer

Features

  • ModuleRenderer: Full-featured module renderer with built-in loading and error states
  • SimpleModuleRenderer: Simplified renderer with customizable loading/error components
  • Dynamic Module Loading: Support for ESM and ESM-DI module types
  • Encryption Support: Decrypt and load encrypted modules
  • Dependency Injection: Automatic dependency resolution for common libraries
  • TypeScript Support: Full TypeScript definitions included

Usage

Basic Usage with ModuleRenderer

import { ModuleRenderer } from '@0day-network/mod-renderer';
import { ManifestType } from '@0day-network/react-sdk';

function MyApp() {
  const manifest: ManifestType = {
    sdk: {
      kind: 'esm-di',
      entry: 'https://example.com/module.js'
    },
    // ... other manifest properties
  };

  return (
    <ModuleRenderer
      manifest={manifest}
      props={{ customProp: 'value' }}
      className="my-module"
    />
  );
}

Using SimpleModuleRenderer with Custom Loading

import { SimpleModuleRenderer } from '@0day-network/mod-renderer';

function MyApp() {
  return (
    <SimpleModuleRenderer
      manifest={manifest}
      props={{ customProp: 'value' }}
      loading={<div>Loading your module...</div>}
      error={(err) => <div>Error: {err}</div>}
    />
  );
}

With Encryption

import { ModuleRenderer } from '@0day-network/mod-renderer';

function EncryptedModule() {
  const encryptionKey = await getEncryptionKey(); // Your key retrieval logic

  return (
    <ModuleRenderer
      manifest={manifest}
      encryptionKey={encryptionKey}
      props={{ secure: true }}
    />
  );
}

With Session and Config

import { ModuleRenderer, registerGlobalPackage } from '@0day-network/mod-renderer';
import * as viem from 'viem';

function ConfiguredModule() {
  const session = useSession(); // Your session hook

  // Register viem globally so modules can access it
  useEffect(() => {
    registerGlobalPackage('viem', viem);
  }, []);

  return (
    <ModuleRenderer
      manifest={manifest}
      session={session}
      config={{
        subgraphUrl: 'https://api.subgraph.com',
        apiKey: 'your-api-key'
      }}
      props={{ userId: session.userId }}
    />
  );
}

API Reference

ModuleRenderer Props

PropTypeDescription
manifestManifestTypeRequired. Module manifest configuration
propsanyProps to pass to the loaded module
encryptionKeyCryptoKey | nullEncryption key for decrypting modules
classNamestringCSS class for the wrapper element
compiledCodestringPre-compiled module code (bypasses fetching)
sessionanySession data to inject into the module
configobjectConfiguration object with subgraphUrl and other settings

SimpleModuleRenderer Props

All ModuleRenderer props, plus:

PropTypeDescription
loadingReact.ReactNodeCustom loading component
error(error: string) => React.ReactNodeCustom error renderer function

Styling

Import the default styles:

import '@0day-network/mod-renderer/styles.css';

Or create your own styles targeting these classes:

  • .module-renderer - Main wrapper
  • .module-loading - Loading state container
  • .module-error - Error state container
  • .module-mount-point - Module mounting point
  • .simple-module-renderer - Simple renderer wrapper
  • .simple-module-loading - Simple renderer loading
  • .simple-module-error - Simple renderer error

Supported Dependencies

The module renderer provides the following dependencies via dependency injection:

  • react - React library
  • react-dom - React DOM utilities
  • @tanstack/react-query - React Query for data fetching
  • wagmi (optional) - Ethereum interactions
  • viem (optional) - Ethereum utilities
  • framer-motion (optional) - Animation library
  • d3 (optional) - Data visualization
  • @lens-chain/storage-client (optional) - Lens storage
  • @0day-network/react-sdk (optional) - 0day SDK

License

MIT

Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Declared dependencies 16

Native requirements
16 direct targetsNot calculated transitive count
Package / targetRequirementRelationship
d3
Environment
{
  "local_name": "d3",
  "alias": false,
  "peer_metadata": null
}
^7.9.0runtime
lucide-react
Environment
{
  "local_name": "lucide-react",
  "alias": false,
  "peer_metadata": null
}
^0.358.0runtime
framer-motion
Environment
{
  "local_name": "framer-motion",
  "alias": false,
  "peer_metadata": null
}
^12.23.12runtime
@lens-chain/storage-client
Environment
{
  "local_name": "@lens-chain/storage-client",
  "alias": false,
  "peer_metadata": null
}
^1.0.6runtime
tsup
Environment
{
  "local_name": "tsup",
  "alias": false,
  "peer_metadata": null
}
^8.0.2development
typescript
Environment
{
  "local_name": "typescript",
  "alias": false,
  "peer_metadata": null
}
^5.3.3development
@types/node
Environment
{
  "local_name": "@types/node",
  "alias": false,
  "peer_metadata": null
}
^20.11.24development
@types/react
Environment
{
  "local_name": "@types/react",
  "alias": false,
  "peer_metadata": null
}
^18.2.61development
@types/react-dom
Environment
{
  "local_name": "@types/react-dom",
  "alias": false,
  "peer_metadata": null
}
^18.2.19development
next
Environment
{
  "local_name": "next",
  "alias": false,
  "peer_metadata": null
}
^15.5.4peer
viem
Environment
{
  "local_name": "viem",
  "alias": false,
  "peer_metadata": null
}
^2.38peer
react
Environment
{
  "local_name": "react",
  "alias": false,
  "peer_metadata": null
}
^18.0.0peer
wagmi
Environment
{
  "local_name": "wagmi",
  "alias": false,
  "peer_metadata": null
}
^2.18peer
react-dom
Environment
{
  "local_name": "react-dom",
  "alias": false,
  "peer_metadata": null
}
^18.0.0peer
@tanstack/react-query
Environment
{
  "local_name": "@tanstack/react-query",
  "alias": false,
  "peer_metadata": null
}
^5.28.4peer
@0day-network/react-sdk
Environment
{
  "local_name": "@0day-network/react-sdk",
  "alias": false,
  "peer_metadata": null
}
^0.1.2peer

Distribution files

1 collected
Distribution 1

Source distribution

Source file
Checksums from source
{
  "shasum": "7a52f3291741ab879d39e831608a0492fd51d39b",
  "tarball": "https://registry.npmjs.org/@0day-network/mod-renderer/-/mod-renderer-0.1.25.tgz",
  "fileCount": 8,
  "integrity": "sha512-ctZtedffUMiWVWLykl/aSnY/VMNaTjXtSiWqm4TtPGrwCa1KoHUIwmdiWZfsMITIQcTQyEbAmxAaUt/aJ7oUTQ==",
  "signatures": [
    {
      "sig": "MEQCIDxouhqp/XazTQy1JPH/ugxpUjboBVguzjt3G2RryEocAiBUmdnOV8gad53plq0A/m7El6Of4qLfFjoLn6l2Ufyxpw==",
      "keyid": "SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"
    }
  ],
  "unpackedSize": 175252
}

Repository

PENDING
0day-network/mod-renderer

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 20 Oct, 22:06 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package_version:cdeeb0a35d239c0834f90fe24dbec2b6cdb82a0f43afb93ef15de53e9ee1cdef

Other collected versions

0.1.2720 Oct0.1.2620 Oct0.1.2420 Oct0.1.2320 Oct0.1.2220 Oct0.1.2120 OctView all collected versions →