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

@uopoc/node-red-processstack

v1.0.31

Published

Persistent FIFO stack for industrial process flows for Node-RED 4

Readme

🧱 Virtual Process Flow queue for Node-RED

Description

Manage persistent FIFO queues for industrial process flows using Node-RED.
With full MQTT support, file persistence, and dashboard integration.

** For pedagogical purposes only. Commercial or industrial use is not recommended. **

** WARNING ** :

  • Minimum Node-RED Version 4.0.0+
  • Minimum NodeJS Version 18.0.0+
  • Minimum node-red-dashboard Version 3.6.0+

Copyright © 2025, Université d'Orléans
Licensed under the MIT License – See LICENCE file included with this package

🧰 Main Features

  • Persistent FIFO (First-In First-Out) queues (stacks)
  • MQTT commands & events Optional
  • dashboard UI ready using a specific node
  • Structured by Process / Cell / Queue

🔧 Available Nodes

| Node | Description | |--------------|-------------| | pst-push | Adds an item to the queue | | pst-shift | Removes the first item from the queue | | pst-transfert | Moves an item from a source queue to a target queue | | pst-peek | Same as shift but without removing item | | pst-supervisor | Returns the entire queue contents | | pst-clearstack | Empties the queue completely | | ui-pst-table | in Dashboard panel: display the content of the queue in the dashboard |

🛠️ Configuration Nodes

| Node | Description | |-----------------------------------|-----------------------------------| | pst-stack (config) | Defines a persistent FIFO queue | | pst-manufacturingcell (config) | Defines a production cell | | pst-processflow (config) | Defines a production line |

💾 Persistence

Each queue is automatically saved to disk after every modification:
/data/pststacks///.json

Installation

npm install @uopoc/node-red-processstack

ChangeLog

Voir le changelog

Nodes details

PUSH Node

Add (push) an item to the FIFO queue

  • Input: Object with :
    • id Required, string or number (max 128 chars). Allowed characters: a-z, A-Z, 0-9, _, -,
    • userdata : Required, must be an object with any metadata you want to store (can be empty object) Rm: msg.payload can also be an item provided by the pull node
      Exemple:
      msg.payload = {
      "id": "ITEM-001",
      "userdata": { "batch": "B001", "weight": 2.5 }
      }
  • Output: Object with : msg.payload = true/false
    msg.item = {
    _itemid: uniqueid (UID),
    _created: creation timestamp (ms from 1970),
    _updated: last update timestamp,
    id: id providen in the input,
    userdata: userdata provided at the Input
    msg.error = {
    code,
    string
    }
    msg.stackdata:{
    processid,
    processname,
    company,
    department,
    location,
    cellid,
    cellname,
    manufacturer,
    model,
    stackid,
    stackname
    }

SHIFT Node

Remove (shift) an item from the FIFO queue

  • input: Dummy message to triger the node
  • output: (same as peek or msg.item provided by the output of push node)

PEEK Node

Get (whithout shift) an item from the FIFO queue

  • input: Dummy message to triger the node
  • output: (same as shift or msg.item provided by the output of push node)

TRANSFERT Node

Transfert (pull/push) an item from a queue to another

CLEAR Node

Delete all items from the FIFO queue

SUPERVISOR Node

Get items list from the FIFO queue. \ Check the autoupdate checkbox in the node property in order to update the status every queue change.\ use the ui-pst-table or a ui-template node in order to display the queue in a dashboard.

UI-PST-TABLE Node

In Dashboard panel: display the content of the queue in the dashboard\ Should be connected to the second output of the supervisor node.\ It can replace a ui-template node

MQTT

You can connect the queue config node to a mqttClient and provide 3 topics:

  • Command: (not implemented) Input command (push, shift, clear, peek)
  • Events: Every event (push, shift, clear, etc.) will emit message
  • Superv: Emits complete queue state and profile after event

Superv

Please configure the topic and the mqtt client in the queue config Node after each operation, a mqtt message is send to the specified topic:
Content:

  • path: (string) processid/stackid,
  • profil: {...},
  • stack: [item1,...]
  • count: Number of item in the queue
  • length: Maximum number of item in the queue

Events

Please configure the topic and the mqtt client in the queue config Node
after each operation, a mqtt message is send to the specified topic:
Content:

  • path: (string) processid/stackid,
  • event: (string) type of activity (push, shift, clear...)
  • item: (object) item
  • count: (number) Number of item in the queue
  • length: (number) Maximum number of item in the queue

Command

Not Implemented Yet

About Us

  • Company: Université d'Orléans – France
  • Department: Polytech Orléans (Engineering School of the University of Orléans)
  • Specialization: Industrial Engineering applied to cosmetics, pharmaceuticals, and food industries Learn more about our program
  • Facility: Teaching Factory – Polyfactory