npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@octree/piece-decidim

v0.0.1

Published

<h1 align="center"><img src="./src/logo.svg" alt="Decidim ActivePiece - Integrate Decidim with Activepieces" /></h1> <h4 align="center"> <a href="https://voca.city">Voca.city</a> | <a href="https://decidim.org">Decidim</a> | <a href="https://d

Readme

Decidim ActivePiece

Release Activepieces piece: decidim

This piece interacts with Decidim using the decidim-restfull module.

Prerequisites

Ensure you have the correct Node.js version installed. Run nvm use to use the version specified in the project (see .nvmrc).

Setup

Starting Decidim

  1. Run docker-compose to start a Decidim container.
  2. Compile assets: bin/compile-assets
  3. Start the Rails server: bundle exec rails s -b 0.0.0.0
  4. Start the asset server: bundle exec bin/shakapacker-dev-server
  5. Seed the database: bundle exec rails db:seed

Decidim is exposed at port 3001.

System Configuration

  1. Navigate to /system with default credentials:
  2. Add a "Client API" for the created organization, and check scopes and permissions.
  3. Set the host to pieces.localhost in the system settings (organization edition).

Development

  1. Export the piece you want to work on: export AP_DEV_PIECES=store,decidim
  2. Start the development server: npm start

Connection Configuration

The Decidim connection requires:

  • client_id/client_secret: From the Client API created in /system
  • Base URL: http://pieces.localhost:3001

Building

Run npx nx build pieces-decidim to build the library. The build is done in a github workflow to have tarball exported at each versions. Version are managed in packages/pieces/community/decidim/package.json

Running unit tests

Run npx nx test pieces-decidim to execute the unit tests via jest.

Features

🧩 Impersonate

Get an access token to perform actions as a participant in Decidim.

Inputs:

  • username (required): The nickname of the user to impersonate (minimum 5 characters)
  • fetchUserInfo (optional): If enabled, fetches user information from the Decidim API
  • registerOnMissing (optional): If enabled, registers the user if they don't exist
  • registrationOptions (optional, shown when registerOnMissing is enabled):
    • userFullName (optional): Full name of the user to register (minimum 5 characters)
    • sendConfirmationEmailOnRegister (optional): If enabled, sends a confirmation email to the user

Outputs:

  • token: OAuth access token object containing access_token, token_type, expires_in, refresh_token, and scope
  • user: User resource details (only if fetchUserInfo is enabled)

🧩 Participant Management

Manage Decidim participants with Search, Create, Read, Update operations.

Search

Search participants by extended data query.

Inputs:

  • extendedDataQuery (required): JSON string to search in extended_data (e.g., '{"chatbotUserId": "123"}')

Outputs:

  • users: Array of matching user objects
  • count: Number of users found

Create

Create a new participant or find an existing one by username. If the user exists, returns an impersonate token. If not, creates the user and returns an impersonate token.

Inputs:

  • username (required): Nickname of the user
  • userFullName (optional): Full name of the user
  • email (optional): Email address for the user
  • extendedData (optional): Extended data object to set (e.g., {"chatbotUserId": "123"})
  • fetchUserInfo (optional): If enabled, fetches user information after creation

Outputs:

  • token: OAuth impersonate access token object
  • userId: Decidim user ID
  • user: User resource details (only if fetchUserInfo is enabled)

Read

Read participant data including extended data and user information.

Inputs:

  • userId (required): Decidim user ID

Outputs:

  • userId: Decidim user ID
  • data: Extended data object (null if not set)
  • user: User resource details

Update

Update participant extended data.

Inputs:

  • userId (required): Decidim user ID
  • extendedData (required): Extended data object to update (e.g., {"chatbotUserId": "123"})
  • dataPath (optional): Path in extended_data to update (defaults to ".")

Outputs:

  • userId: Decidim user ID
  • data: Updated extended data object