open-index/open-npm huggingface dataset:
npm package: @sarasate/kitt
Description: Keep your shell commands
Author: sarasate
Latest version: 0.0.16

# KITT

Keep it in the Terminal.

"kitt" is a command-line tool that allows you to easily store, organize, and retrieve frequently used commands. With kitt, you can add and edit commands and quickly search through your command library. It also allows you to export and import your command library, making it easy to share commands between different machines or with other users.

# Features

- Save commands with description and alias
- List commands
- Delete commands
- Sync to github gist

# Roadmap

- Search commands in command library
- Find in your own stored commands
- Run commands
- Edit commands
- Add variables to commands
- CLI completion
- Library of basic commands
npm package: @sarast/eslint-config
Description: A opinionated ESLint config preset for JavaScript, TypeScript, Vue 3, and Prettier.
Latest version: 6.0.1

# @sarast/eslint-config [![npm](https://img.shields.io/npm/v/@sarast/eslint-config.svg)](https://npmjs.com/package/@sarast/eslint-config)

A opinionated ESLint config preset for JavaScript, TypeScript, Vue 3,
and Prettier.

## Features

- Format with Prettier.
- Designed to work with TypeScript, Vue 3 out-of-box.
- Support JSON(5), YAML, Markdown...
- Sort imports, `package.json`, `tsconfig.json`...
- [ESLint Flat config](https://eslint.org/docs/latest/use/configure/configuration-files-new), compose easily!
- Ignores common files like `dist`, `node_modules`, `coverage`, and files in `.gitignore`.
- Reasonable defaults, best practices, only one-line of config
- Reasonable strict, but with better code quality.

## Install

```bash
npm i -D @sarast/eslint-config
```

Require Node.js >= 22, and ESLint >= 9.28.0.

## Usage

```js
import { sarast } from '@sarast/eslint-config';
export default sarast(
  // Features: it'll detect installed dependency and enable necessary features automatically
  {
    prettier: true,
    markdown: true,
    vue: true, // auto detection
  },
  [
    /* your custom config */
  ],
).removeRules('foo/bar'); // see more in https://github.com/antfu/eslint-flat-config-utils;
```

### Presets

```js
// eslint.config.js
import {
  presetJavaScript, // Ignore common files and include javascript support
  presetJsonc, // Includes basic json(c) file support and sorting json keys
  presetLangsExtensions, // Includes markdown, yaml + `presetJsonc` support
  presetBasic, // Includes `presetJavaScript` and typescript support

  // Includes
  // - `presetBasic` (JS+TS) support
  // - `presetLangsExtensions` (markdown, yaml, jsonc) support
  // - Vue support
  // - Prettier support
  presetAll,
} from '@sarast/eslint-config';

export default presetAll;
```

See [preset.ts](./src/presets.ts) for more details.

## Comparing to [`@antfu/eslint-config`](https://github.com/antfu/eslint-config)

Most of the rules are the same, but there are some differences:

- Use [Prettier](https://prettier.io/) instead of [ESLint Stylistic](https://github.com/eslint-stylistic/eslint-stylistic).
- Vue 3 Support.
- Stricter rules.

## Credit

This eslint config is inspired by:

- [`@sxzz/eslint-config`](https://github.com/sxzz/eslint-config), created by [Kevin Deng 三咲智子](https://github.com/sxzz)
- [`@antfu/eslint-config`](https://github.com/antfu/eslint-config), created by [Anthony Fu](https://github.com/antfu)
- [Vite](https://github.com/vitejs/vite), created by [Evan You](https://github.com/yyx990803) and Vite community

## License

[MIT](./LICENSE) License © 2024-PRESENT [Sardor Astanov](https://github.com/sardor01)
npm package: @sarast/prettier-config
Description: ## Install
Latest version: 1.2.1

# @sarast/prettier-config [![npm](https://img.shields.io/npm/v/@sarast/prettier-config.svg)](https://npmjs.com/package/@sarast/prettier-config)

## Install

```bash
pnpm add -D @sarast/prettier-config
```

## License

[MIT](./LICENSE) License © 2024-PRESENT [Sardor Astanov](https://github.com/sardor01)
npm package: @saraswat2385/isoflow
Description: An open-source React component for drawing network diagrams.
Latest version: 1.0.20

![readme-header](https://user-images.githubusercontent.com/1769678/223572353-788d5d38-cd28-40fa-96cd-9d29226f7e4b.png)

<h4 align="center">
  <a href="https://v2.isoflow.io/">Isoflow Editor</a> |
  <a href="https://v2.isoflow.io/docs">Documentation</a> |
  <a href="https://github.com/markmanx/isoflow">Github</a> |
  <a href="https://discord.gg/QYPkvZth7D">Discord</a>
</h4>

<div align="center">
  <h1>An open-source React component for drawing network diagrams.</h2>
</div>

<div align="center">

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
![CircleCI](https://circleci.com/gh/markmanx/isoflow.svg?style=shield)

</div>

## Key Features

- **Highly visual drag and drop interface:** Express your architecture with icons, regions and connectors.
- **Customizable:** Easily extend Isoflow with your own icons.
- **Export options:** Export diagrams as code or images.

## Roadmap

🛠 v1.0: In progress
- [x] More control over connector segments
- [x] Connector labels
- [x] Group layer re-ordering (bring forward / send to back)
- [x] Custom colours
- [x] Export diagrams as images
- [x] Main menu customisation
- [x] Center diagram in middle of canvas
- [ ] Shortcuts (undo / redo, copy / paste)

✅ v0.6: Complete
- [x] Basic view controls (pan / zoom)
- [x] Nodes, connectors & groups
- [x] Import / export diagrams to local storage (in JSON format)
- [x] Icon support for AWS, GCP, Azure, K8S & generic network hardware (e.g. server, database)
- [x] onModelUpdated callback
- [x] Documentation
- [x] Pipeline for publishing to NPM

## Quick start

Install the Isoflow editor [npm package](https://www.npmjs.com/package/isoflow) and isopacks (icon packages):

- `npm install isoflow`
- `npm install @isoflow/isopacks`

For more information, see our [documentation](https://v2.isoflow.io/docs).

## CodeSandbox demo
Demo the latest version of Isoflow on [CodeSandbox](https://codesandbox.io/p/sandbox/github/markmanx/isoflow).  The sandbox will always be synced with the `main` branch on the Github repo, and also includes the latest version of the developer documentation.

## Using Isoflow commercially?
Isoflow is free to use for personal and commercial projects.  If you're using Isoflow commercially, please consider sponsoring the project (please get in touch).

## Contributing
- Isoflow is actively being worked on.  Missing something or found a bug? Report it [here](https://github.com/markmanx/isoflow/issues) or join our [Discord server](https://discord.gg/QYPkvZth7D).
- Want to contribute? See [good first issues](https://github.com/markmanx/isoflow/contribute).
npm package: @saraswati-js/daemon-images
Description: Read markdown and modify it for ... purposes
Latest version: 1.0.6

# `@saraswati-js/markdown-modifier`


## NOTE
This will be best as a remark plugin but I don't want to put the effort into that. So it stays as such.

## TODO
- [ ] Rename this as it's kinda dumb.
- [ ] Convert to TypeScript
- [ ] Build a dest thingy for TS
- [ ] Add actual tests
- [ ] Watch file changes on start directory
- [ ] `gray-matter` [reads it's own files](https://github.com/jonschlinkert/gray-matter#read)
    - I don't need to use `fs`; instead `grey-matter`.

```
markdown modifier
  - image files
  - imports
    - local
    - remote
  - Tabs
    - Inline?
    - New pages?
```

Figure out plan for how to do
  - API Docs (Swagger)
  - Components
  - How to chunk components to specific pages/routes

```js
(?:!\<import\>\((.*?)\))
!<import>(./some/file/path/markdown.md)
!(import)[./some/file/path/markdown.md]
```
npm package: @saraswati-js/eslint-config-base
Description: NiGhTTraX's ESLint base config
Author: Andrei Picus
Latest version: 1.0.3

## Install

```sh
npm i @nighttrax/eslint-config-base
```


## Use

```js
module.exports = {
  'root': true,
  
  'extends': [
    '@nighttrax/eslint-config-base'
  ]
};
```
npm package: @saraswati-js/markdown-modifier
Description: Read markdown and modify it for ... purposes
Latest version: 1.0.5

# `@saraswati-js/markdown-modifier`


## NOTE
This will be best as a remark plugin but I don't want to put the effort into that. So it stays as such.

## TODO
- [ ] Convert to TypeScript
- [ ] Build a dest thingy for TS
- [ ] Add actual tests
- [ ] Watch file changes on start directory
- [ ] `gray-matter` [reads it's own files](https://github.com/jonschlinkert/gray-matter#read) so I don't need to use `fs` manually. Use that. It's synchronous.
  - 

```
markdown modifier
  - image files
  - imports
    - local
    - remote
  - Tabs
    - Inline?
    - New pages?
```

Figure out plan for how to do
  - API Docs (Swagger)
  - Components
  - How to chunk components to specific pages/routes

```js
(?:!\<import\>\((.*?)\))
!<import>(./some/file/path/markdown.md)
!(import)[./some/file/path/markdown.md]
```
npm package: @sarath-451/tomcat-mcp
Description: Local MCP server for AI-assisted Apache Tomcat management in Kiro IDE
Latest version: 1.0.2

# Tomcat MCP (Model Context Protocol Server)

[![npm version](https://img.shields.io/npm/v/@sarath-451/tomcat-mcp)](https://www.npmjs.com/package/@sarath-451/tomcat-mcp)
[![MCP Registry](https://img.shields.io/badge/MCP-Registry-blue)](https://registry.modelcontextprotocol.io)

A local **Tomcat management MCP server** for **Kiro IDE** that enables AI-assisted
operations such as:

- Start / stop Tomcat
- Diagnose startup failures
- Deploy and rollback WAR files
- Read and analyze logs
- Take thread dumps and heap dumps
- Analyze GC logs
- Detect Windows service installations

This MCP runs **locally** and never exposes Tomcat over the network.

---

## 🌍 Available in MCP Registry

Tomcat MCP is officially published to the **MCP Registry** and npm.

**Registry name:**
io.github.sarath-451/tomcat-mcp

**npm package:**
@sarath-451/tomcat-mcp

Search via Registry API:
https://registry.modelcontextprotocol.io/v0.1/servers?search=tomcat

---


## 🚀 One-Click Install (Kiro IDE)



> Make sure you have cloned this repository and installed dependencies first.



[![Add to Kiro](https://kiro.dev/images/add-to-kiro.svg)](https://kiro.dev/launch/mcp/add?name=Tomcat%20MCP&config=%7B%22command%22%3A%22node%22%2C%22args%22%3A%5B%22index.js%22%5D%2C%22disabled%22%3Afalse%2C%22autoApprove%22%3A%5B%22start_tomcat%22%2C%22stop_tomcat%22%2C%22check_tomcat_status%22%2C%22read_latest_catalina_log%22%2C%22diagnose_startup_failure%22%2C%22deploy_war%22%2C%22rollback_last_deployment%22%2C%22thread_dump%22%2C%22heap_dump%22%2C%22analyze_gc_log%22%2C%22detect_tomcat_service%22%5D%7D)



---



## 📦 Requirements



\- \*\*Node.js 18+\*\*

\- \*\*Java JDK\*\* (required for `jcmd`, thread dumps, heap dumps)

\- Apache Tomcat (9 / 10 / 10.1 tested)

\- Windows (Linux support planned)



Check:

```bat

node -v

java -version

jcmd -h
npm package: @sarath_subramaniam/tiny
Description: Removes all spaces from a string
Latest version: 3.0.0

# @sarath_subramaniam/tiny

[![npm (scoped)](https://img.shields.io/npm/v/@sarath_subramaniam/tiny.svg)](https://www.npmjs.com/package/@sarath_subramaniam/tiny)
[![npm bundle size (minified)](https://img.shields.io/bundlephobia/min/@sarath_subramaniam/tiny.svg)](https://www.npmjs.com/package/@sarath_subramaniam/tiny)

Removes all spaces from a string.

## Install

```
$ npm install @sarath_subramaniam/tiny
```

## Usage

```js
const tiny = require("@sarath_subramaniam/tiny");

tiny("So much space!");
//=> "Somuchspace!"

tiny(1337);
//=> Uncaught TypeError: Tiny wants a string!
//    at tiny (<anonymous>:2:41)
//    at <anonymous>:1:1
```
npm package: @saraudio/capture-darwin
Description: macOS CoreAudio capture helpers for SARAudio (system audio + mic)
Latest version: 0.2.6

# @saraudio/capture-darwin

macOS CoreAudio capture for Node.js (system audio + microphone).

This package ships a prebuilt native binary (`bin/saraudio-capture`) that streams **PCM16LE / 16 kHz / mono** over stdout.

Requires macOS ≥ 14.2.

## Install

```bash
pnpm add @saraudio/capture-darwin
```

## Usage

```ts
import { createMicrophoneSource, createSystemAudioSource, listMicrophoneDevices } from '@saraudio/capture-darwin';

// Optional: pick a specific microphone by CoreAudio device UID.
const devices = await listMicrophoneDevices();
const deviceUID = devices[0]?.uid;

const mic = createMicrophoneSource({ deviceUID });
const system = createSystemAudioSource();

await mic.start((frame) => {
  // frame.pcm is Int16Array (PCM16LE), frame.sampleRate = 16000, frame.channels = 1
});

await system.start((frame) => {
  // system audio frames have the same format (PCM16LE / 16 kHz / mono)
});

// later…
await mic.stop();
await system.stop();
```

Both sources are `NodeFrameSource`-compatible for `@saraudio/runtime-node`.

## Notes

- Requires macOS permissions (Microphone and/or Screen Recording depending on capture path).
- If you install from git/source, build the bundled binary first:

```bash
pnpm --filter @saraudio/capture-darwin... build
```
npm package: @saraudio/capture-node
Description: Cross-platform Node.js capture entrypoint for SARAudio (macOS supported; Windows/Linux coming later)
Latest version: 0.2.6

# @saraudio/capture-node

Cross-platform capture entrypoint for Node.js.

- **macOS**: delegates to `@saraudio/capture-darwin` (Swift/CoreAudio)
- **Windows/Linux**: not supported yet (will throw on `start()`)

## Install

```bash
pnpm add @saraudio/capture-node
```

On macOS you also need:

```bash
pnpm add @saraudio/capture-darwin
```

## Usage

```ts
import { createMicrophoneSource, createSystemAudioSource, listMicrophoneDevices } from '@saraudio/capture-node';

// Optional: pick a specific microphone by CoreAudio device UID.
const devices = await listMicrophoneDevices();
const deviceUID = devices[0]?.uid;

const mic = createMicrophoneSource({ deviceUID });
const system = createSystemAudioSource();

await mic.start((frame) => {
  // frame.pcm is Int16Array (PCM16LE), frame.sampleRate = 16000, frame.channels = 1
});

await system.start((frame) => {
  // system audio frames have the same format (PCM16LE / 16 kHz / mono)
});
```
npm package: @saraudio/svelte
Description: Svelte 5 bindings for SARAUDIO pipeline
Latest version: 0.0.8

# @saraudio/svelte

Svelte 5 bindings for SARAUDIO audio pipeline.

## Installation

```bash
pnpm add @saraudio/svelte @saraudio/runtime-browser
```

## Usage

```svelte
<script>
import { createRecorder } from '@saraudio/svelte';
import { vadEnergy } from '@saraudio/vad-energy';
import { meter } from '@saraudio/meter';

const rec = createRecorder({
  stages: [vadEnergy({ thresholdDb: -50 }), meter()],
  segmenter: { preRollMs: 300, hangoverMs: 500 },
});
</script>

<button onclick={() => rec.start()}>Start</button>
<button onclick={() => rec.stop()}>Stop</button>

<p>Status: {rec.status}</p>
<p>Segments: {rec.segments.length}</p>

{#if rec.vad}
  <p>Speech: {rec.vad.speech ? 'Yes' : 'No'}</p>
{/if}

{#each rec.segments as segment}
  <div>{segment.id}</div>
{/each}
```

**Note:** Runtime is created automatically. You can optionally pass your own:

```svelte
<script>
import { createRecorder } from '@saraudio/svelte';
import { createBrowserRuntime } from '@saraudio/runtime-browser';

const runtime = createBrowserRuntime();
const rec = createRecorder({ runtime, stages: [...] });
</script>
```

## API

### `createRecorder(options)`

Creates a reactive recorder instance with Svelte 5 runes.

**Returns:**
- `recorder` - Recorder instance
- `status` - Current status ('idle' | 'acquiring' | 'running' | 'stopping' | 'error')
- `error` - Last error (if any)
- `segments` - Array of recorded segments
- `vad` - Current VAD score
- `pipeline` - Audio pipeline instance
- `start()` - Start recording
- `stop()` - Stop recording
- `reset()` - Reset recorder state
- `clearSegments()` - Clear segments array

## Requirements

- Svelte 5.0.0 or higher
npm package: @saraudio/vue
Description: Vue 3 Composition API bindings for SARAUDIO pipeline
Latest version: 0.1.2

# @saraudio/vue

Vue 3 Composition API bindings for SARAUDIO audio pipeline.

## Installation

```bash
pnpm add @saraudio/vue @saraudio/runtime-browser
```

## Usage

```vue
<script setup lang="ts">
import { useRecorder, useMeter } from '@saraudio/vue';
import { vadEnergy } from '@saraudio/vad-energy';
import { meter } from '@saraudio/meter';

const rec = useRecorder({
  stages: [vadEnergy({ thresholdDb: -50 }), meter()],
  segmenter: { preRollMs: 300, hangoverMs: 500 },
});

const meterLevels = useMeter({ pipeline: rec.pipeline });
</script>

<template>
  <button @click="rec.start()">Start</button>
  <button @click="rec.stop()">Stop</button>

  <p>Status: {{ rec.status }}</p>
  <p>Segments: {{ rec.segments.length }}</p>

  <div v-if="rec.vad">
    <p>Speech: {{ rec.vad.speech ? 'Yes' : 'No' }}</p>
  </div>

  <div v-for="segment in rec.segments" :key="segment.id">
    {{ segment.id }}
  </div>
</template>
```

**Note:** Runtime is created automatically. You can optionally pass your own:

```vue
<script setup lang="ts">
import { useRecorder } from '@saraudio/vue';
import { createBrowserRuntime } from '@saraudio/runtime-browser';

const runtime = createBrowserRuntime();
const rec = useRecorder({ runtime, stages: [...] });
</script>
```

## API

### `useRecorder(options)`

Creates a reactive recorder instance with Vue 3 Composition API.

**Returns:**
- `recorder` - Recorder instance (Ref)
- `status` - Current status (Ref)
- `error` - Last error (Ref)
- `segments` - Array of recorded segments (Ref)
- `vad` - Current VAD score (Ref)
- `pipeline` - Audio pipeline instance (Ref)
- `start()` - Start recording
- `stop()` - Stop recording
- `reset()` - Reset recorder state
- `clearSegments()` - Clear segments array

### `useMeter(options)`

Tracks audio levels from a pipeline.

**Options:**
- `pipeline` - Pipeline instance or Ref<Pipeline>
- `onMeter` - Optional callback for meter events

**Returns:**
- `rms` - RMS level (Ref)
- `peak` - Peak level (Ref)
- `db` - Decibel level (Ref)
- `reset()` - Reset meter values

### `useAudioInputs(options?)`

Manages audio input device selection.

**Returns:**
- `devices` - Available devices (Ref)
- `selectedDeviceId` - Selected device ID (Ref)
- `enumerating` - Loading state (Ref)
- `error` - Error message (Ref)
- `refresh()` - Refresh device list

## Requirements

- Vue 3.0.0 or higher (Composition API)
npm package: @saravanasabesan/reactjs-tabbedpane-component
Description: A tabbed pane component using React.js
Author: Saravana Sabesan
Latest version: 1.0.22

# reactjs-tabbedpane-component

> A tabbed pane component using React.js

[![NPM](https://img.shields.io/npm/v/reactjs-tabbedpane-component.svg)](https://www.npmjs.com/package/reactjs-tabbedpane-component) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com)

## Install

```bash
npm install --save reactjs-tabbedpane-component
```

## Usage

```jsx
import React, { Component } from 'react'

import TabbedPane from 'reactjs-tabbedpane-component'
import 'reactjs-tabbedpane-component/dist/index.css'

const contentData = {
  contents: [
    {
      subject: 'Overview',
      text: 'This is content of Overview'
    },
    {
      subject: 'Assumptions',
      text: '<ul><li>Assumption 1</li><li>Assumption 2</li><li>Assumption 3</li><li>Assumption 4</li></ul>'
    },
    {
      subject: 'Technical Design',
      text: 'This is content of Technical Design'
    }
  ]
}

class Example extends Component {
  render() {
    return <TabbedPane data={contentData} />
  }
}
```

![Example Image 1](example/images/example1.png)

![Example Image 2](example/images/example2.png)

## API

`<TabbedPane>`

### props

* *data*: JSON defining the tabs.  HTML tags are supported.

## License

MIT © [adafycheng](https://github.com/adafycheng)
# CI_Snyk_GitHub
npm package: @saravieira/chippy
Description: Chippy is a chip-8 emulator built with JavaScript.
Author: SaraVieira
Latest version: 0.2.0

# Chippy

Chippy is a chip-8 emulator built with JavaScript.

## How to use:

```ts
import { startChippy } from '@saravieira/chippy';

const uint8Array = new Uint8Array(buffer); // from a file upload
startChippy({
  rom: uint8Array,
  colors: { fill: '#fff' } as { fill?: string; bg?: string },
  el: el as HTMLCanvasElement,
  speed: 10, // emulation speed and default is 10
  scale: 10, // scale and default is 10
});
```

## License

MIT
npm package: @saravntbe/react-flow-renderer-umd
Description: [![react-flow](https://user-images.githubusercontent.com/2857535/95224198-b2540000-07fa-11eb-832d-361d72d60345.jpg)](https://reactflow.dev)
Latest version: 9.6.14

[![react-flow](https://user-images.githubusercontent.com/2857535/95224198-b2540000-07fa-11eb-832d-361d72d60345.jpg)](https://reactflow.dev)

---
# 🚨 This is Fork repo to check experimental UMD build, kindly send all your PR,issues etc to https://github.com/wbkd/react-flow 🚨
---
React Flow is a library for building node-based graphs. You can easily implement custom node types and it comes with components like a mini-map and graph controls. Feel free to check out the [examples](https://reactflow.dev/) or read the [blog post](https://webkid.io/blog/react-flow-node-based-graph-library/) to get started.

- **Website:** https://reactflow.dev
- **Documentation:** https://reactflow.dev/docs
- **Examples:** https://reactflow.dev/examples
- **Website/Docs Repository:** https://github.com/wbkd/react-flow-docs
- **Community:** https://discord.gg/Bqt6xrs

React Flow was initially created for [datablocks](https://datablocks.pro). A node-based editor for transforming, analyzing and visualizing data.


## Installation

```
npm install react-flow-renderer
```

## Quick Start

This is a very basic example of how to use React Flow. You can find more advanced examples on the [website](https://reactflow.dev/examples).

```js
import React from 'react';
import ReactFlow from 'react-flow-renderer';

const elements = [
  { id: '1', data: { label: 'Node 1' }, position: { x: 250, y: 5 } },
  // you can also pass a React component as a label
  { id: '2', data: { label: <div>Node 2</div> }, position: { x: 100, y: 100 } },
  { id: 'e1-2', source: '1', target: '2', animated: true },
];

const BasicFlow = () => <ReactFlow elements={elements} />;
```

## Development

Before you start you need to install the React Flow dependencies via `npm install` and the ones of the examples `cd example && npm install`.

If you want to contribute or develop custom features the easiest way is to start the dev server:

```sh
npm start
```

and the example app via:

```sh
cd example && npm start 
```

The example app serves the content of the `example` folder and watches changes inside the `src` folder. The examples are using the source of the `src` folder.

## Testing

Testing is done with cypress. You can find the tests in the [`integration/flow`](/cypress/integration/flow) folder. In order to run the tests do:

```sh
npm run test
```

## Maintainer

Moritz Klack • [Twitter](https://twitter.com/moklick) • [Github](https://github.com/moklick)

## Support

If you need custom support or features for your application we are [happy to hear from you](https://webkid.io/contact).


### Thanks!

Special thanks to [Andy Lindemann](https://github.com/AndyLnd) for a lot of helpful contributions!

---

React Flow is maintained by [webkid](https://webkid.io), a data visualization agency from Berlin. If you need help or want to develop react-based tools or data visualizations, [get in touch](https://webkid.io/contact)!
npm package: @sarawebs/sb-bin
Description: CLI tools for SaraWebs dev workflow
Author: Mohammad Dahamshi
Latest version: 3.0.6


# SB Code Generator Utilities 

This repository contains two handy CLI utilities to speed up your development workflow by automating boilerplate code generation:

---
## 🛠 Installation

Install globally using npm:

```bash
npm install -g @sarawebs/sb-bin
```

This will make the `sb-gen`, `sb-gen-api` command available globally from your terminal.

## 1. `sb-gen-server`  API Server (PostgreSQL + Express + Composable DB Abstraction)
A modern Express.js API boilerplate using Docker, PostgreSQL, and a modular database query abstraction 

🚀 Features
Express + Dockerized PostgreSQL setup

.env based configuration

Modular composable db.user.getAll() style access

Simple queries/ folder for clean SQL

Auto-generated CRUD structure with custom script (sb-gen-api.sh)

📂 Project Structure

```
api-server/
├── src/
│   ├── controllers/     # CRUD logic using db abstraction
│   ├── db/
│   │   ├── db.js        # db.user.getAll-style API
│   │   ├── queries/     # SQL strings per model
│   │   └── init/        # SQL schem, seed
│   ├── routes/          # Express routers
│   ├── utils/           # Utility modules (if needed)
│   └── index.js         # App entrypoint
├── Dockerfile
├── docker-compose.yml
├── docker-compose.override.yml
├── .env
└── package.json
```
**See full details & usage:** [sb-gen-server README](./readme/sb-gen-server.md)

## 2. `sb-gen-api` — Express  + DB CRUD Generator


**Example:**

```bash
sb-gen-api user name:string age:int
```

> **⚠️ Deprecated:**
> This tool is no longer actively maintained. For a more robust and feature-rich solution, please visit and use [sb-crud-gen on npm](https://www.npmjs.com/package/sb-crud-gen).

* Creates route, controller, and query files for a given model name.
* Uses pg client (`pool.js`) for database operations.
* Automatically updates (or creates):

  * `src/routes/index.js` to import/register the route
  * `src/db/db.js` to register the model
* Prevents overwriting existing files.
* Cleanly removes all generated files and related registrations.
* Uses ESM style imports throughout.


**See full details & usage:** [sb-gen-api README](./readme/sb-gen-api.md)

---

## 3. `sb-gen` — React Boilerplate Code Generator CLI

A developer-friendly CLI tool to generate React components, hooks, pages, contexts, and test files with proper boilerplate and placement in your project structure.

* Supports multiple types in a single command
* Automatically handles naming conventions and folder locations
* Creates React functional components, hooks, contexts, and tests

**See full details & usage:** [sb-gen README](./readme/sb-gen.md)

---



Feel free to explore either tool to boost your backend or frontend development speed!
npm package: @sarbinski/loopback-connector-mailjet_v3.1
Description: Loopback connector module which allows to send emails via Mailjet__v3.1
Author: Sarbinski
Latest version: 0.0.3

## loopback-connector-mailjet_v3.1

Loopback connector module which allow to send emails via Mailjet API v3.1. Based on [loopback-connector-mailjet](https://github.com/InteractiveObject/loopback-connector-mailjet).

## 1. Installation

````sh
npm i loopback-connector-mailjet_v3.1 --save
````

## 2. Configuration

datasources.json

    {
        "mailjet": {
            "connector": "loopback-connector-mailjet_v3.1",
            "apiKey": "${MAILJET_API_KEY}",
            "apiSecret":"${MAILJET_API_SECRET}",
            "options": {
                "url": "api.mailjet.com", 
                "version": "v3.1",
                "perform_api_call": false
            },
        }
    }

model-config.json

    {
        "Email": {
            "dataSource": "mailjet",
            "public": false
        }
    }

## 3. Use

Send funtion same as loopback email connector. Returns a Promise.

    Email.send({
        "Messages":[
            {
                "From": {
                    "Email": "pilot@mailjet.com",
                    "Name": "Mailjet Pilot"
                },
                "To": [
                    {
                        "Email": "passenger1@mailjet.com",
                        "Name": "passenger 1"
                    }
                ],
                "Subject": "Your email flight plan!",
                "TextPart": "Dear passenger 1, welcome to Mailjet! May the delivery force be with you!",
                "HTMLPart": "<h3>Dear passenger 1, welcome to Mailjet!</h3><br />May the delivery force be with you!"
            }
        ]
    })
    .then(function(response){})
    .catch(function(err){});


## License
Licensed under the MIT license.
npm package: @sarc-test/broadcast-engine
Description: Broadcast to others via a channel-based event bus
Author: S-A-R-C
Latest version: 0.1.0

# Broadcast-Engine

Upcoming details...

## Prerequisites

* Upcoming details...
* Upcoming details...
* Upcoming details...

## Contributing

Upcoming details...

## Versioning

Upcoming details...

## Authors

* Gabriel Roy - Repository Owner - [S-A-R-C](https://github.com/S-A-R-C)

See also the list of [contributors](https://github.com/S-A-R-C/broadcast-engine/graphs/contributors) who are linked to this project.

## License

Upcoming details...
npm package: @sarc-test/canvas-engine-prototype
Description: Upcoming details...
Author: Gabriel.Roy@between.games
Latest version: 0.1.7

# Canvas-Engine-Prototype

Upcoming details...

## Prerequisites

* Upcoming details...
* Upcoming details...
* Upcoming details...

## Contributing

Upcoming details...

## Versioning

Upcoming details...

## Authors

* Gabriel Roy - Repository Owner - [Gabriel.Roy@between.games](https://github.com/Between-Games)

See also the list of [contributors](https://github.com/Between-Games/canvas-engine-prototype/graphs/contributors) who are linked to this project.

## License

Upcoming details...