open-index/open-npm huggingface dataset:
npm package: @senx/discovery-plugin-marauder
Description: Discovery plugin - Marauder's map
Author: SenX
Latest version: 0.0.14

# Marauder's map Discovery plugin

Addon for Discovery that adds a map of Marauder's map.

## parameters 

In the `extra` option field, you can override the following parameters
- `markerSize`
- `trackMarkerColor`
- `trackMarkerSize`
- `bgTransparentThreshold`
- `transparentThreshold`
- `extraTicks`
- `trackOpacity`
- `trackWidth`
- `squareMarkers`
- `squareTrackMarkers`
- `markerColor`
- `metadata`
- `trackMarkers`
- `tracks`


## Usage

```html
<head>
  <title>Test</title>
</head>
<body>
<discovery-dashboard url="https://warp.senx.io/api/v0/exec" dashboard-title="Test">
{
  'title' 'Test'
  'description' 'Dashboard test'
  'options' {
    'scheme' 'DISCOVERY'
    'extra'{ 
      'markerSize' 5
      'trackMarkerColor' '#00897B'
      'trackMarkerSize' 4
      'bgTransparentThreshold' 250
      'transparentThreshold' 240
      'extraTicks' 50
      'trackOpacity' 0.05
      'trackWidth' 2
      'squareMarkers' false
      'squareTrackMarkers' false
      'markerColor' '#00897B' // override discovery scheme. See also `scheme`
      'metadata' 'Discovery'
      'trackMarkers' false
      'tracks' true
    }
    'map' {
      'step' 1 s
      'delay' 1000 // ms
      'mapType' 'CARTODB'
    }
  }
  'tiles' [
    {
      'title' 'test'
      'x' 0 'y' 0 'w' 12 'h' 4
      'type' 'marauder'
      'macro' <%
        [ 1 4 <%
          NEWGTS 'g' STORE
            1 100 <%
              'ts' STORE $g $ts RAND + STU * NOW + RAND 10.0 * RAND 10.0 * NaN RAND ADDVALUE DROP
            %> FOR
            $g
        %> F FOR ] 'data' STORE
        {
          'data' $data
          'globalParams' {  // can override options
            'map' {
              'step' 1 s
              'delay' 1000 // ms
              'mapType' 'CARTODB'
            }
          }
        }
      %>
    }
  ]
}
</discovery-dashboard>
<!-- core -->
<script type="module" src="https://cdn.jsdelivr.net/npm/@senx/discovery-widgets/dist/discovery/discovery.esm.js"></script>
<!-- plugins -->
<script type="module" src="https://cdn.jsdelivr.net/npm/@senx/discovery-plugin-marauder/dist/discovery-plugin-marauder/discovery-plugin-marauder.esm.js"></script>
</body>
</html>
```
npm package: @senx/discovery-plugin-plot
Description: Discovery plugin for plot
Author: SenX
Latest version: 0.0.32

# Discovery Plot

## Usage

### In a Web Environment

#### With NPM/Yarn

    $ npm install @senx/discovery-widgets
    $ npm install @senx/discovery-plugin-plot

#### With CDN

```html
<script nomodule src="https://unpkg.com/@senx/discovery-widgets/dist/discovery/discovery.js"></script>
<script type="module" src="https://unpkg.com/@senx/discovery-widgets/dist/discovery/discovery.esm.js"></script>


<script type="module" src="https://unpkg.com/@senx/discovery-plugin-plot/dist/discovery-plugin-plot.esm.js"></script>
<script nomodule src="https://unpkg.com/@senx/discovery-plugin-plot/dist/discovery-plugin-plot.js"></script>

```

#### Usage

```html

<html lang="en">
<head>
  <title>Test</title>
</head>
<body>
<discovery-dashboard url="https://warp.senx.io/api/v0/exec" dashboard-title="Test">
{
  'title' 'Test'
  'description' 'Dashboard test'
  'tiles' [
    {
      'title' 'test'
      'options' { 'autoRefresh' 1 }
      'x' 0 'y' 0 'w' 12 'h' 4
      'type' 'plot'
      'macro' <%
        1 4 <% 
            DROP NEWGTS 'g' STORE
            1 10 <% 
                'ts' STORE $g $ts RAND + STU * NOW + NaN NaN NaN RAND ADDVALUE DROP 
            %> FOR
            $g 
        %> FOR 
      %>
    }
  ]
}
</discovery-dashboard>
<script nomodule src="https://unpkg.com/@senx/discovery-widgets/dist/discovery/discovery.js"></script>
<script type="module" src="https://unpkg.com/@senx/discovery-widgets/dist/discovery/discovery.esm.js"></script>
<script type="module" src="https://unpkg.com/@senx/discovery-plugin-plot/dist/discovery-plugin-plot.esm.js"></script>
<script nomodule src="https://unpkg.com/@senx/discovery-plugin-plot/dist/discovery-plugin-plot.js"></script>

</body>
</html>
```
npm package: @senx/flows-beautifier
Description: Warp 10 FLoWS language beautifier
Author: SenX
Latest version: 1.0.4

# node-flows-beautifier

FLoWS is one of the two analysis languages brought by [Warp 10 time series database](https://www.warp10.io/).

FLoWS beautifier was adapted from js-beautifier. It has no dependencies.


## Use the FLoWS beautifier

```
npm install @senx/flows-beautifier
```


```
import { FLoWSBeautifier, BeautifierOptions } from '@senx/flows-beautifier';
let beautifier: FLoWSBeautifier = new FLoWSBeautifier();

const result:string = beautifier.flowsBeautify(input);

```

Default options : 2 spaces for indentation.

More options could be found in BeautifierOptions, and passed to the FLoWSBeautifier constructor.
npm package: @senx/node-red-contrib-warpscript
Description: Node-RED node for executing WarpScript™
Author: SenX
Latest version: 1.0.2

# WarpScript™ Node #

This module can be used to execute some WarpScript™ code within Node-RED.

Execution is triggered for every incoming message. Execution is performed on a remote Warp 10™ instance via an HTTP POST request.

## Setup

To install the WarpScript™ node, from your `~/.node-red` directory simply run

```
  npm install node-red-contrib-warpscript
```

or copy the `warpscript.js` and `warpscript.html` files into the `nodes` subdirectory.

Once the WarpScript™ node is installed, you need to restart Node-RED.

You should then see a new type of node on the Node-RED left-side menu.

## Input 

Whenever a message is received by the WarpScript™ node, the message is pushed onto the stack followed by the configured WarpScript™ code.

Each message is a map. Messages produced by Node-RED usually contain the following fields:

```
  { '_msgid' 'f8f4fefe.070b' 'topic' '' 'payload' 1472737293700 }
```

Types are converted using the following rules, primitives types (String, Number, boolean) are unmodified, arrays are converted to lists, objects are converted to maps, null is converted to NULL and Buffer is converted to a UTF-8 STRING.

## Output

Your WarpScript™ code can produce some outputs which will be pushed down your flow.

The WarpScript™ node will inspect the stack levels and convert each one to output messages according to the following rules.

If a level contains a map, it is assumed to be a valid Node-RED message, with a `payload` field containing the message content.

```
  { 'payload' 'This is the message payload' }
```

If a level contains a list, the list is assumed to be a list of lists of messages, with one inner list per output. The content of each of those lists is assumed to be messages for the given output.

```
  [
    [
      { 'payload' 'First message for output 1' }
      { 'payload' 'Second message for output 1' }
    ]
    [ { 'payload' 'Message for output 2' } ]
  ]
```

If a level contains anything else, the content will be put in the `payload` field of a Node-RED message.

If your WarpScript™ returned multiple stack levels, each level will be scanned, starting with the deepest one.
npm package: @senx/warp10
Description: Warp 10 NodeJS library
Author: SenX
Latest version: 2.0.3

[![npm version](https://badge.fury.io/js/%40senx%2Fwarp10.svg)](https://badge.fury.io/js/%40senx%2Fwarp10) 

# Warp&nbsp;10 Node lib

Node.js library that helps to interact with Warp&nbsp;10.

[APIDoc](./docs/classes/warp10.Warp10.md)

## Installation

    npm i @senx/warp10
    yarn add @senx/warp10

## Dates and formats

Date format: UTC ISO8601 strings (YYYY-MM-DDTHH:MM:SS.SSSSSSZ)

Available fetch formats:

- text
- fulltext
- json
- tsv
- fulltsv
- pack
- raw
- formatted (a json format, default)

## Usage sample

```javascript
import {Warp10} from "@senx/warp10";
import dayjs from "dayjs";
import utc from "dayjs/plugin/utc";
dayjs.extend(utc);

const writeToken = 'xxxxxx';
const deleteToken = 'xxxxxx';
const readToken = 'xxxx';
const w10 = new Warp10().endpoint('https://sandbox.senx.io');
// or const w10 = new Warp10({endpoint: 'https://sandbox.senx.io'});


const test = async () => {

  // WarpScript execution
  console.log(await w10.exec('2 2 +'));
  
  // fetch raw data between 2 dates 
  console.log(await w10.fetch(readToken, '~io.warp10.*', {}, '2019-11-11T12:34:43.388409Z', dayjs().toISOString()));

  // insert data points
  console.log(await w10.update(writeToken, [
    {timestamp: dayjs().utc().valueOf() * 1000, className: 'io.warp10.test', labels: {key: 'value'}, value: 54},
    '1380475081000000// io.warp10.test{key=value} T',
    '1566893344654882/48.81:-4.147/124 io.warp10.test{key=value} [8.2 151 152 1568189745655509/40.6:-74/14 ]',
  ]));

  // write meta
  console.log(await w10.meta(writeToken, [{
    className: 'io.warp10.test',
    labels: {key: 'value'},
    attributes: {attr: 'value'}
  }]));

  // Fetch data with a time span
  console.log(await w10.fetch(readToken, '~.*', {}, dayjs().toISOString(), 86400000000 * 5));

  // delete data between 2 dates
  console.log(await w10.delete(deleteToken, '~io.warp10.test*', {key: 'value'}, '2019-11-11T12:34:43.388409Z', dayjs().toISOString()));
  
  // delete all
  console.log(await w10.delete(deleteToken, '~io.warp10.test*', {key: 'value'}, '', '', true));
};

test().then(() => {

});
```
npm package: @senx/warpview
Description: WarpView Elements
Author: SenX
Latest version: 2.0.90

# Warp View

This a collection of charting [web components](https://en.wikipedia.org/wiki/Web_Components) dedicated to [Warp 10™](https://www.warp10.io)

![WarpView](imgs/warpView.png)

- [Demo](https://senx.github.io/warpview/)
- [Documentation](https://github.com/senx/warpview/wiki/)
- [licence Apache 2](./LICENSE.md)
- [Contribute](./CONTRIBUTING.md)

## Getting started

    npm i @senx/warpview --save
    
    yarn add @senx/warpview

```html
<html>
<head>
  <title>Test</title>
<script src="https://cdn.jsdelivr.net/npm/@senx/warpview/elements/warpview-elements.js"></script>
</head>
<body>
  
  <div style="width: 100%; height: 800px;">
    <warp-view-tile 
      url="https:/warp10-backend/api/v0/exec"
      options='{"showDots":false,"scheme":"WARP10"}' 
      type="line"
      responsive="true" 
      chart-title="Sample"
    >NEWGTS 'g' STORE
      0 9 <% 'ts' STORE $g $ts STU * NOW + NaN NaN NaN RAND ADDVALUE DROP %> FOR
      $g 
    </warp-view-tile>
  </div>
</body>
</html>
```

## Components

[See wiki](https://github.com/senx/warpview/wiki/)


## Integrations

[See here](https://stenciljs.com/docs/framework-integration)

## About

- [Warp 10™](https://www.warp10.io)
- [SenX](https://senx.io)
npm package: @senx/warpview-editor-lite
Description: WarpScript editor lite
Author: SenX
Latest version: 0.0.2

# Warp View Editor lite

This [web components](https://fr.wikipedia.org/wiki/Composants_web) embed a WarpScript editor dedicated to [Warp 10™](https://www.warp10.io).

- [licence Apache 2](./LICENSE.md)
- [Contribute](./CONTRIBUTING.md)

## Usage

    npm i @senx/warpview-editor-lite --save
    
    yarn add @senx/warpview-editor-lite
    
    bower install senx-warpview-editor-lite --save


```html
<html>
<head>
  <title>Test</title>
  <script src="https://unpkg.com/@senx/warpview-editor-lite@x.x.x/dist/warpview-editor-lite.js"></script>
</head>
<body>
  <warp-view-editor-lite height-line=18 width-px=600 theme="dark">
      2 2 +
   </warp-view-editor-lite>
</body>
</html>
```

## Integrations

[See here](https://stenciljs.com/docs/framework-integration)


## CSS vars

## Attributes

| Name | Type | Default | Description |
|------|------|---------|-------------|
| theme | `string` | 'light' | Editor theme (`light` or `dark`) |
| warpscript | `string` | '' | WarpScript to edit (optional, could be inside HTML tag) |
| widthPx | `number` | | Fixed width |
| heightPx | `number` | | Fixed height |
| heightLine | `number` | | Fixed number of lines |
npm package: @senxor/serial-core
Description: Shared serial transport core for Senxor JavaScript SDK.
Author: Shui
Latest version: 1.1.1

# @senxor/serial-core

Shared serial transport layer for Senxor.js. Official packages `@senxor/web-serial` and `@senxor/capacitor-serial` build on this module so the same framing, parsing, and register commands work everywhere.

Most applications should depend on a concrete transport (Web Serial or Capacitor) instead of this package. Use `@senxor/serial-core` when you need to plug Senxor into a new runtime by implementing a thin adapter around your serial API.

## What you get

- **`SerialTransportBase`** – Wraps any port that implements **`ISerialPort`** and exposes `@senxor/core`'s transport contract (`open` / `close`, register read/write, streaming callbacks). Pass the result into `new Senxor(transport)` from `@senxor/core`.
- **`ISerialPort`**, **`SerialDeviceInfo`**, **`SerialOptions`** – The minimal port surface your adapter must provide (open/close, `write`, event-style `on` for `data`, `error`, `open`, `close`, `disconnect`).
- **`senxorPortOptions`** – Default serial settings (115200 8N1) used when opening a port for Senxor.
- **`isSenxorDevice`** – Returns whether USB vendor/product IDs match a known Senxor product (same check the official transports use when listing devices).
- **`CommandSender`** – Lower-level helper for sending framed commands and matching ACKs; mainly useful if you extend or debug serial behavior rather than typical app code.
- **`utils`** – Small helpers such as **`toHexString`**, **`decodeUint8Array`**, shared with protocol tooling.

## Installation

```bash
pnpm add @senxor/core @senxor/serial-core
```

You still need a real serial backend (browser Web Serial, Capacitor plugin, Node serial library, etc.) that you wrap with `ISerialPort`.

## Development (this repository)

From the monorepo root:

```bash
pnpm install
pnpm test --filter @senxor/serial-core
pnpm build --filter @senxor/serial-core
```

For how `Senxor` consumes a transport after you wire one up, see `packages/core/README.md` and an official transport package for a full example.