open-index/open-npm huggingface dataset:
npm package: @statuscompliance/ai
Description: Collection of STATUS project components that are responsible for performing ai resquest / responses to Google Gemini API
Author: Álvaro Bernal
Latest version: 1.0.3

# <picture>

<div align=center>
  <img src ="https://avatars.githubusercontent.com/u/151918147?s=200&v=4" width="200px"  heigth="200px" alt="Node-RED Logo"></img></picture>
</div>
<h4 align="center">A node-red version focused on STATUS project flows</h4>

## Description

The `@statuscompliance/ai` package contains a custom Node-Red node called `ai-response` that provides an ai asistant response using google Gemini Model.

## Features

-   Takes an input prompt from msg.payload.
-   You can customize the ai response context on the `Sistem Prompt` input field.
-   Returns the AI Model response for further operations.


## Installation

You can install the package directly via npm:

```bash
npm install @statuscompliance/ai
```

Or add it to your `package.json` and run `npm install`:

```json
{
    "dependencies": {
        "@statuscompliance/ai": "^1.0.0"
    }
}
```

## Nodes Overview

This package includes the following custom nodes for use in Node-RED:

-   **ai-response**: Manages AI response using Google Gemini API.

## License

This package is licensed under the [Apache-2.0 License](LICENSE).

## Author and Contributors

-   **Author**: [Álvaro Bernal](https://github.com/alvarobernal2412)
-   **Contributor**: [Francisco Montero](https://github.com/FJMonteroInformatica)

## Repository

You can find the source code and contribute to this project on GitHub:

[https://github.com/statuscompliance/node-red-status](https://github.com/statuscompliance/node-red-status)
npm package: @statuscompliance/commons
Description: Common utilities for STATUS compliance Node-RED packages
Author: Álvaro Bernal
Latest version: 1.0.5

# node-red-status-commons

Common utilities for STATUS compliance Node-RED packages.

## Installation

```bash
npm install @statuscompliance/commons
```

## Usage

```javascript
const { addEvidence, existSection, extractTextFromPDF } = require('@statuscompliance/commons');
```

## Functions

### addEvidence(msg, key, value, result, storeEvidences)
Adds evidence to the message payload if evidence storage is enabled.

### existSection(msg, storeEvidences, config, node)
Checks if a specific section exists in the message data.

### extractTextFromPDF(pdfContent, node, msg, storeEvidences, pdfParse)
Extracts text from PDF content using the provided pdf-parse module.
npm package: @statuscompliance/control-flow
Description: Collection of STATUS project components that are responsible for performing control-flow checks.
Author: Álvaro Bernal
Latest version: 2.1.8

# <picture>

<div align=center>
  <img src ="https://avatars.githubusercontent.com/u/151918147?s=200&v=4" width="200px"  heigth="200px" alt="Node-RED Logo"></img></picture>
</div>
<h4 align="center">A node-red version focused on STATUS project flows</h4>

## Description

The `@statuscompliance/control-flow` package is a collection of Node-RED components specifically designed for the STATUS project, focusing on performing control-flow checks within workflows. This set of nodes helps ensure the correct sequencing and coexistence of events, enabling more robust compliance and control flow management.

## Features

-   Perform control-flow validations between multiple events.
-   Ensure that sequential actions follow specified patterns (e.g., "Event B" occurs after "Event A").
-   Invert logic checks to handle negative cases.
-   Nodes ready for integration with compliance-related processes in Node-RED flows.

## Installation

You can install the package directly via npm:

```bash
npm install @statuscompliance/control-flow
```

Or add it to your `package.json` and run `npm install`:

```json
{
    "dependencies": {
        "@statuscompliance/control-flow": "^1.0.0"
    }
}
```

## Nodes Overview

This package includes the following custom nodes for use in Node-RED:

-   **response**: Manages responses within a sequence of events.
-   **coexistence**: Ensures that certain events coexist within a specified timeframe.
-   **responded-existence**: Verifies that Event B occurs at any point after Event A.
-   **chain-response**: Checks if Event B occurs immediately after Event A.

## License

This package is licensed under the [Apache-2.0 License](LICENSE).

## Author and Contributors

-   **Author**: [Álvaro Bernal](https://github.com/alvarobernal2412)
-   **Contributor**: [Francisco Montero](https://github.com/FJMonteroInformatica)

## Repository

You can find the source code and contribute to this project on GitHub:

[https://github.com/statuscompliance/node-red-status](https://github.com/statuscompliance/node-red-status)
npm package: @statuscompliance/extraction
Description: Collection of STATUS project components that are responsible for extracting information from event traces and JSON objects.
Author: Álvaro Bernal
Latest version: 2.1.5

# <picture>

<div align=center>
  <img src ="https://avatars.githubusercontent.com/u/151918147?s=200&v=4" width="200px"  heigth="200px" alt="Node-RED Logo"></img></picture>
</div>
<h4 align="center">A node-red version focused on STATUS project information extraction</h4>

## Description

The `@statuscompliance/extraction` package is a collection of Node-RED components specifically designed for the STATUS project, focusing on extracting information from event traces and JSON objects. These nodes facilitate the retrieval of specific properties and values, enabling more efficient data handling within workflows.

## Features

-   Extract specific values from JSON objects or event traces.
-   Perform operations like fetching the last timestamp or retrieving key-value properties.
-   Nodes designed to integrate seamlessly with compliance-related processes in Node-RED flows.

## Installation

You can install the package directly via npm:

```bash
npm install @statuscompliance/extraction
```

Or add it to your `package.json` and run `npm install`:

```json
{
    "dependencies": {
        "@statuscompliance/extraction": "^1.0.0"
    }
}
```

## Nodes Overview

This package includes the following custom nodes for use in Node-RED:

-   **last-timestamp**: Extracts the most recent timestamp from a set of events.
-   **find-object**: Locates and extracts a specific object based on key criteria.
-   **get-property-value**: Retrieves the value of a specified property from a JSON object.
-   **get-kv-property**: Extracts key-value pairs from a JSON object for further processing.

## License

This package is licensed under the [Apache-2.0 License](LICENSE).

## Author and Contributors

-   **Author**: [Álvaro Bernal](https://github.com/alvarobernal2412)
-   **Contributor**: [Francisco Montero](https://github.com/FJMonteroInformatica)

## Repository

You can find the source code and contribute to this project on GitHub:

[https://github.com/statuscompliance/node-red-status](https://github.com/statuscompliance/node-red-status)
npm package: @statuscompliance/filtering
Description: Collection of STATUS project components that are responsible for filtering JSON object information.
Author: Álvaro Bernal
Latest version: 2.1.3

# <picture>

<div align=center>
  <img src ="https://avatars.githubusercontent.com/u/151918147?s=200&v=4" width="200px"  heigth="200px" alt="Node-RED Logo"></img></picture>
</div>
<h4 align="center">A node-red version focused on STATUS project filtering</h4>

## Description

The `@statuscompliance/filtering` package is a collection of Node-RED components specifically designed for the STATUS project, focusing on filtering JSON object information. These nodes help to manage data flows by applying different filtering rules based on content, date ranges, or specific attributes.

## Features

-   Filter JSON data by various criteria such as classification, date ranges, or importance.
-   Group and filter messages based on dynamic attributes.
-   Nodes designed to work seamlessly with compliance-related processes in Node-RED flows.

## Installation

You can install the package directly via npm:

```bash
npm install @statuscompliance/filtering
```

Or add it to your `package.json` and run `npm install`:

```json
{
    "dependencies": {
        "@statuscompliance/filtering": "^1.0.0"
    }
}
```

## Nodes Overview

This package includes the following custom nodes for use in Node-RED:

-   **filter-by-date**: Filters messages based on date attributes within a specified range.
-   **filter-by**: Filters messages based on classification, importance, or other dynamic attributes.
-   **group-by**: Groups messages by a specific attribute for batch processing.

## License

This package is licensed under the [Apache-2.0 License](LICENSE).

## Author and Contributors

-   **Author**: [Álvaro Bernal](https://github.com/alvarobernal2412)
-   **Contributor**: [Francisco Montero](https://github.com/FJMonteroInformatica)

## Repository

You can find the source code and contribute to this project on GitHub:

[https://github.com/statuscompliance/node-red-status](https://github.com/statuscompliance/node-red-status)
npm package: @statuscompliance/integration
Description: Collection of STATUS project components that are responsible for collecting information from different data sources such as GitHub, trello and others.
Author: Álvaro Bernal
Latest version: 2.1.4

# <picture>

<div align=center>
  <img src ="https://avatars.githubusercontent.com/u/151918147?s=200&v=4" width="200px" heigth="200px" alt="Node-RED Logo"></img></picture>
</div>
<h4 align="center">A node-red version focused on STATUS project data integration</h4>

## Description

The `@statuscompliance/integration` package provides a set of Node-RED components tailored for the STATUS project. These nodes are responsible for collecting and integrating data from various sources such as GitHub, Trello, and others, making it easier to consolidate and process data from different platforms.

## Features

-   Collect data from multiple sources, including GitHub, Trello, and CSV files.
-   Parse logs and trace project information via URL endpoints.
-   Seamlessly integrate different types of data sources into Node-RED flows.

## Installation

You can install the package directly via npm:

```bash
npm install @statuscompliance/integration
```

Or add it to your `package.json` and run `npm install`:

```json
{
    "dependencies": {
        "@statuscompliance/integration": "^1.0.0"
    }
}
```

## Nodes Overview

This package includes the following custom nodes for use in Node-RED:

-   **github-collector**: Gathers data from GitHub repositories using the GitHub API.
-   **trello-collector**: Collects actions from Trello boards, focusing on attachment URLs.
-   **url-to-doc**: Extracts documents from a given URL.
-   **project-to-url**: Collect Trello projects and get their associated urls.
-   **log-getter**: Fetches and parses log data from a specified URL (supports JSON, XML, and GZIP formats).
-   **log-trace**: Tracks log activity and send each trace in separate messages.
-   **csv-reader**: Reads and parses CSV files from a given URL.

## License

This package is licensed under the [Apache-2.0 License](LICENSE).

## Author and Contributors

-   **Author**: [Álvaro Bernal](https://github.com/alvarobernal2412)
-   **Contributor**: [Francisco Montero](https://github.com/FJMonteroInformatica)

## Repository

You can find the source code and contribute to this project on GitHub:

[https://github.com/statuscompliance/node-red-status](https://github.com/statuscompliance/node-red-status)
npm package: @statuscompliance/logic
Description: Collection of components of the STATUS project containing logical operators and similar functions.
Author: Álvaro Bernal
Latest version: 2.1.5

# <picture>

<div align=center>
  <img src ="https://avatars.githubusercontent.com/u/151918147?s=200&v=4" width="200px" heigth="200px" alt="Node-RED Logo"></img></picture>
</div>
<h4 align="center">Node-RED Logic Functions for STATUS Project</h4>

## Description

The `@statuscompliance/logic` package offers a collection of logical operators and functions tailored for the STATUS project. These components allow for easy manipulation of boolean values, enabling logical operations such as AND, OR, and conditional checks within Node-RED flows.

## Features

-   Logical operations such as AND, OR, implies, and comparisons.
-   Allows dynamic flow control and decision-making based on conditions.
-   Seamless integration with Node-RED for developing robust logic-based workflows.

## Installation

To install the package via npm, run:

```bash
npm install @statuscompliance/logic
```

Alternatively, add the dependency to your `package.json`:

```json
{
    "dependencies": {
        "@statuscompliance/logic": "^1.0.0"
    }
}
```

## Nodes Overview

This package includes the following logical nodes:

-   **and**: Performs a logical AND operation between two boolean values.
-   **lesser-than**: Compares two values and checks if the first is lesser than the second.
-   **implies**: Evaluates logical implication between two boolean values.
-   **or**: Performs a logical OR operation.
-   **if-else**: Executes conditional checks and triggers different actions based on boolean conditions.

## License

Licensed under the [Apache-2.0 License](LICENSE).

## Author and Contributors

-   **Author**: [Álvaro Bernal](https://github.com/alvarobernal2412)
-   **Contributor**: [Francisco Montero](https://github.com/FJMonteroInformatica)

## Repository

Find the source code and contribute on GitHub:

[https://github.com/statuscompliance/node-red-status](https://github.com/statuscompliance/node-red-status)
npm package: @statuscompliance/node-red-status-commons
Description: Common utilities for STATUS compliance Node-RED packages
Author: Álvaro Bernal
Latest version: 1.0.0

# node-red-status-commons

Common utilities for STATUS compliance Node-RED packages.

## Installation

```bash
npm install node-red-status-commons
```

## Usage

```javascript
const { addEvidence, existSection, extractTextFromPDF } = require('node-red-status-commons');
```

## Functions

### addEvidence(msg, key, value, result, storeEvidences)
Adds evidence to the message payload if evidence storage is enabled.

### existSection(msg, storeEvidences, config, node)
Checks if a specific section exists in the message data.

### extractTextFromPDF(pdfContent, node, msg, storeEvidences, pdfParse)
Extracts text from PDF content using the provided pdf-parse module.
npm package: @statuscompliance/status
Description: Collection of STATUS project components useful for integrating node-red with the system.
Author: Álvaro Bernal
Latest version: 2.2.0

# <picture>

<div align=center>
  <img src ="https://avatars.githubusercontent.com/u/151918147?s=200&v=4" width="200px" heigth="200px" alt="Node-RED Logo"></img></picture>
</div>
<h4 align="center">Node-RED Logic Functions for STATUS Project</h4>

## Description

The `@statuscompliance/status` package provides essential components for integrating the STATUS project with Node-RED. It includes nodes that facilitate storing and parsing data, enabling seamless communication between Node-RED and system backends.

## Features

-   Collect and store data from incoming messages.
-   Batch processing and efficient data transfer to backend APIs.
-   Data integration from multiple sources (REST APIs, GitHub, Microsoft Graph) through databinder.
-   Configurable data source management with authentication and property mapping support.
-   Evidence storage for audit and compliance purposes.

## Installation

Install via npm:

```bash
npm install @statuscompliance/status
```

Or add the dependency to your `package.json`:

```json
{
    "dependencies": {
        "@statuscompliance/status": "^1.0.0"
    }
}
```

## Nodes Overview

This package includes the following STATUS integration nodes:

-   **status-storer**: Buffers and sends bulk messages to a backend API, reducing network overhead and improving performance.
-   **filter-scope**: Filters data based on scope criteria.
-   **databinder**: Integrates with the @statuscompliance/databinder package to collect data from different datasources using datasource ID and linker configuration.

## License

Licensed under the [Apache-2.0 License](LICENSE).

## Author and Contributors

-   **Author**: [Álvaro Bernal](https://github.com/alvarobernal2412)
-   **Contributor**: [Francisco Montero](https://github.com/FJMonteroInformatica)

## Repository

Find the source code and contribute on GitHub:

[https://github.com/statuscompliance/node-red-status](https://github.com/statuscompliance/node-red-status)
npm package: @statuscompliance/validation
Description: Collection of STATUS project components used for compliance checks
Author: Álvaro Bernal
Latest version: 2.1.8

# <picture>

<div align=center>
  <img src ="https://avatars.githubusercontent.com/u/151918147?s=200&v=4" width="200px" height="200px" alt="Node-RED Logo"></img></picture>
</div>
<h4 align="center">Node-RED Validation Functions for STATUS Project</h4>

## Description

The `@statuscompliance/validation` package provides essential components for the STATUS project, aimed at validating and checking compliance within Node-RED. It includes nodes that enable users to verify data, perform document checks, and ensure compliance with project-specific requirements.

## Features

-   Validate the presence of certain data in incoming messages.
-   Check document content and structure for compliance purposes.
-   Support for PDF and text files sourced from GitHub or direct URLs.

## Installation

Install via npm:

```bash
npm install @statuscompliance/validation
```

Or add the dependency to your `package.json`:

```json
{
    "dependencies": {
        "@statuscompliance/validation": "^1.0.0"
    }
}
```

## Nodes Overview

This package includes the following STATUS validation nodes:

-   **exists-pipe**: Validates that a specified number of keys are present in an incoming message.
-   **exists-url**: Checks if a given URL is reachable.
-   **exists-section-in-doc**: Verifies if a specific section or text is present in a document, supporting PDF and TXT formats.
-   **has-activity**: Checks if activity logs exist for a specified entity.
-   **check-property**: Verifies the value of a property in an incoming message.
-   **is-valid-url**: Determines if a given URL is valid.

## License

Licensed under the [Apache-2.0 License](LICENSE).

## Author and Contributors

-   **Author**: [Álvaro Bernal](https://github.com/alvarobernal2412)
-   **Contributor**: [Francisco Montero](https://github.com/FJMonteroInformatica)

## Repository

Find the source code and contribute on GitHub:

[https://github.com/statuscompliance/node-red-status](https://github.com/statuscompliance/node-red-status)
npm package: @statuspage/status-widget
Description: A [Skate](https://github.com/skatejs/skatejs)-based web component for showing an embeddable status.
Author: Atlassian Pty Ltd
Latest version: 1.0.5

# status-widget

A [Skate](https://github.com/skatejs/skatejs)-based web component for showing an embeddable status.

## Usage

Include the [webcomponents.js](http://webcomponents.org/polyfills/) polyfill loader (for browsers who don't natively support web components), then import `status-widget`:

```html
<head>
  <!-- Required for IE11 Only -->
  <script src="https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js"></script>

  <!-- Standard dependencies -->
  <script src="https://unpkg.com/@webcomponents/webcomponentsjs@2.1.3/webcomponents-bundle.js"></script>
  <script src="https://unpkg.com/@statuspage/status-widget/dist/index.js"></script>
</head>
```

Then add the `statuspage-widget` to your page, providing a `src` attribute to the Statuspage you want to show the status for.

```html
<statuspage-widget src="https://metastatuspage.com"></statuspage-widget>
```

*** Properties ***

* `src` (required): url of Statuspage to be queried
* `appearance` (optional): the template to select for rendering (default: 'basic')
* `title` (optional): used by some templates as a heading or display text (default: 'system status')

## Developing, Testing, and Contributing

After cloning the repository, run `yarn` to install dependencies.

```shell
yarn
```

To start a local web server which hosts the demo page and assets:

```shell
yarn start
```

To run unit tests locally:

```shell
yarn test
```