open-index/open-npm huggingface dataset:
npm package: @jexsrs/serializer
Description: A simple dependency-free recursive class/interface serializer.
Latest version: 1.0.0

# Serializer
A simple dependency-free recursive class/interface serializer.

## Installation
```shell
npm i @jexsrs/serializer
```

## Initialization
First we have to create an array of the types we want to serialize:
```typescript
const types = [Person, Pet]; // The order must always be the same
```
Where `Person` and `Pet` are the following classes
```typescript
class Person {
    name: string;
    pet: Pet;
}

class Pet {
    name: string;
}
```
Then we initialize the Serializer with the given types:
```typescript
import {Serializer} from "@jexsrs/serializer";

const srz = new Serializer(types);
```
After that you can serialize and deserialize the classes as follows:
```typescript
const pet = new Pet();
pet.name = 'Fluffy';

const person = new Person();
person.name = 'Michael';
person.pet = pet;

const serialized: string = srz.serialize(person);
const desrialized: Person = srz.deserialize(serialized);
```

## Keep in mind
The serializer is recursive but cannot handle circular entries, for example:
```typescript
class Person {
    name: string;
    pet: Pet;
}

class Pet {
    name: string;
    owner: Person;
}

const pet = new Pet();
pet.name = 'Fluffy';

const person = new Person();
person.name = 'Michael';
person.pet = pet;

pet.owner = person; // This will cause the failure

const serialized: string = srz.serialize(person); // !!! This will fail
const desrialized: Person = srz.deserialize(serialized);
```
npm package: @jeyaprakash120690/ai-voice-assistant
Description: Drop-in floating voice assistant for React/Next.js
Latest version: 0.1.3

# @your-scope/ai-voice-assistant

Drop-in floating **voice assistant** for React/Next.js with Web Speech (STT) and speechSynthesis (TTS).

## Install
```bash
npm i @your-scope/ai-voice-assistant
# peer deps (in your app)
npm i react react-dom
```

## Usage
```tsx
"use client";
import { AiVoiceAssistant } from "@your-scope/ai-voice-assistant";

export default function Layout({ children }: { children: React.ReactNode }) {
  return (
    <>
      {children}
      <AiVoiceAssistant
        wakePrompt="How may I help you?"
        hintText="Ask: 'What were yesterday’s sales?'"
        apiEndpoint="/api/voice-query"
        position="bottom-right"
        hotkey="Control+Shift+V"
      />
    </>
  );
}
```

## API contract
The component requires either:
- `onQuery(query) => Promise<string | { text: string }>` **or**
- `apiEndpoint` (POST `{ query }` → `{ answer: string }`)

See the demo Next.js app for a working API route.
npm package: @jeydolen/config
Description: Module that is used to read and store config.ini settings value
Author: Jeydolen & Echopraxium
Latest version: 1.0.1

# Config

Config is a Javascript module used to add configurations setting to your application

## Installation

Use the node package manager to install.

```bash
npm install @jeydolen/config
```

## Usage

```javascript
const Config = require ('@jeydolen/config')
const APP_ROOT_PATH = require ('app-root-path')

const unit_test = ( section_arg, key_arg, value_name ) =>
{
   let args = { section : section_name, key: key_name, value_name: value_name };
   let path = APP_ROOT_PATH + '/config.ini';
   let message = Config.GetSingleton().addValue ( path, args );
   console.log ( message )
};

// If config.ini, section_name and key_name exists
// It will technically return the value that is written in ini file for section_name and key_name specified
unit_test( Test, msg, example);
```


## License
[MIT](https://choosealicense.com/licenses/mit/)
npm package: @jeydolen/generic_singleton
Description: Classic singleton for any app that need one
Author: Jeydolen & Echopraxium
Latest version: 1.0.0

# Singleton

Singleton is a Javascript module used to force process to use one process

## Installation

Use the node package manager to install.

```bash
npm install @jeydolen/generic_singleton
```

## Usage

```javascript
const Singleton = require ('@jeydolen/generic_singleton')

class test extends Singleton
{
    static Singleton = test.GetSingleton();
    constructor(args)
    {
		super (args)
    }

    show_msg ( msg )
    {
        console.log ( msg );
    }
}


const unit_test = ( args ) =>
{
    // test.show_msg;  ( not working )
    test.GetSingleton().show_msg(('test');
};

unit_test();
```


## License
[MIT](https://choosealicense.com/licenses/mit/)
npm package: @jeygeethan/actiontext-backblaze
Description: Edit and display rich text in Rails applications, forked for using backblaze b2 as the storage
Author: Jey
Latest version: 6.1.3-alpha

# Action Text

Action Text brings rich text content and editing to Rails. It includes the [Trix editor](https://trix-editor.org) that handles everything from formatting to links to quotes to lists to embedded images and galleries. The rich text content generated by the Trix editor is saved in its own RichText model that's associated with any existing Active Record model in the application. Any embedded images (or other attachments) are automatically stored using Active Storage and associated with the included RichText model.

You can read more about Action Text in the [Action Text Overview](https://edgeguides.rubyonrails.org/action_text_overview.html) guide.

## License

Action Text is released under the [MIT License](https://opensource.org/licenses/MIT).
npm package: @jeylabs/aws-lambda-poppler
Description: Poppler to fit inside AWS Lambda.
Latest version: 2.0.4

# AWS Lambda Poppler

Poppler execution helpers for AWS Lambda Node.js environment.

## Install

NPM

```
$ npm install @jeylabs/aws-lambda-poppler --save
```

Yarn

```
$ yarn add @jeylabs/aws-lambda-poppler
```

## Available methods

These are the methods currently supported.

- [useFonts](https://linux.die.net/man/1/pdffonts)
- [useInfo](https://linux.die.net/man/1/pdfinfo)
- [useText](https://linux.die.net/man/1/pdftotext)
- [useHTML](https://linux.die.net/man/1/pdftohtml)
- [usePixmap](https://linux.die.net/man/1/pdftoppm)
- [usePostScript](https://linux.die.net/man/1/pdftops)
- [useCairo](https://manpages.debian.org/jessie/poppler-utils/pdftocairo.1.en.html)

## How to use

```js
const {usePixmap} = require('@jeylabs/aws-lambda-poppler');

module.exports.handler = () => {
  // assuming there is a document.pdf file inside /tmp dir
  return usePixmap('document.pdf'); // returns [document/page-1.png, document/page-2.png]
};
```

## How to configure

You can pass configrations as secound parameter to all methods, Please check the source to check supported options.

- Default working diractory is `/tmp`, you can modify it by passing your value with `root` key.
- If you want to supply more arguments you can pass your argument list with `options` key.

```js
usePixmap('document.pdf', {
  root: '/tmp',
  prefix: 'modified-page',
  options: ['-png', '-freetype no']
}); // returns [document/modified-page-1.png, document/modified-page-2.png]
```

## See Also

- [aws-lambda-poppler-layer](https://github.com/jeylabs/aws-lambda-poppler-layer)

## Thanks

- Inspired by [aws-lambda-libreoffice](https://github.com/shelfio/aws-lambda-libreoffice)

## License

MIT © [jeylabs](https://jeylabs.com/)