open-index/open-npm huggingface dataset:
npm package: @friym-tools/create-friym-service
Description: Un générateur de microservices Friym, simple, rapide et stylé ⚡
Author: friym
Latest version: 1.0.6

# 🚀 @friym-tools/create-friym-service

Un générateur de microservices Friym, simple, rapide et stylé ⚡

---

## ✨ Fonctionnalités

- 📁 Génération automatique de la structure complète d’un microservice Friym
- 🔁 Remplacement intelligent des noms (`Auth service` → `user-service`, etc.)
- 📄 Création automatique des fichiers suivants :
  - `README.md` personnalisé
  - `.env` vide à configurer
  - `package.json` prêt à l’emploi
  - `src/routes/*.routes.ts` + `index.ts` pour l’API REST
  - `src/controllers/*.controller.ts` avec handlers (`create`, `getAll`, etc.)
  - `src/services/*.service.ts` (logique métier)
  - `src/models/*.model.ts` (schéma Mongoose)
- 📦 Installation automatique des dépendances (avec timeout de sécurité)
- 🧼 Nettoyage automatique de `node_modules` si l'installation prend trop de temps
- ❓ Prompt interactif pour confirmer l'installation des dépendances
- 💅 Compatible tous terminaux (ASCII + couleurs via `chalk`)

---

## 🧪 Utilisation

```bash
npx @friym-tools/create-friym-service user-service
```

Tu seras guidé pas à pas :
- Choix du nom du service
- Confirmation de l'installation des dépendances

---

## ✅ Exemple de structure générée

```
user-service/
├── README.md
├── package.json
├── .env
└── src/
    ├── routes/
    │   ├── user.routes.ts
    │   └── index.ts
    ├── controllers/
    │   └── User.controller.ts
    ├── services/
    │   └── User.service.ts
    └── models/
        └── User.model.ts
```

---

## ⚙️ À venir

- Support de GraphQL (optionnel)
- Génération automatique de tests unitaires
- Intégration Docker et CI/CD
- Mode `--no-install`

---

## 🧑‍💻 Contribuer

Tu veux améliorer le CLI ? Fais un fork et une PR !  
Friym est un projet open-source piloté par la communauté tech du Bénin.

---

## 🧠 À propos

**Fidevo** • Made with 💙 in Africa •  
Pour bâtir des plateformes puissantes, souveraines et pensées pour l’avenir.
npm package: @frjoy/otp
Description: ### How to install
Author: Felix Dusengimana
Latest version: 0.1.6

### Easily customizable OTP

### How to install

```bash
npm install @frjoy/otp
```
  
```bash
yarn add @frjoy/otp
```

```bash
pnpm add @frjoy/otp
```

### How to use

```jsx
import * as OTP from '@frjoy/otp';

<OTP.Root>
<OTP.Label >This label allows you to be able to access fist empty otp input</OTP.Label>
<OTP.Input />
<OTP.Input />
<OTP.Input />
<!-- Define as many input as you wants -->
</OTP.Root>
```


### Or we can add any element, any styles anywhere we wants

````
<OTP.Root>
        <OTP.Label className="block mb-2 text-sm font-medium text-gray-900 dark:text-white">
          Enter Otp
        </OTP.Label>
        <div className="flex gap-3">
          <OTP.Input className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" />
          <OTP.Input className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" />
          <OTP.Input className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" />
          <OTP.Input className="bg-gray-50 border border-gray-300 text-gray-900 text-sm rounded-lg focus:ring-blue-500 focus:border-blue-500 block w-full p-2.5 dark:bg-gray-700 dark:border-gray-600 dark:placeholder-gray-400 dark:text-white dark:focus:ring-blue-500 dark:focus:border-blue-500" />
        </div>
      </OTP.Root>

````

### Props supported

1. `Root`

| Prop | Data Type | Default | Required | Description |
| --- | --- | --- | --- | --- |
| children | React.ReactNode | - | - | Add custom children to the root element |
| style | React.CSSProperties | - | - | Add custom style to the root element |
| pattern | string | - | - | Add custom pattern to all the inputs elements under the `root` make sure that type is `any`|
| joiner | string | '' | - | Add custom joiner to join all the input value |
| onChange | (e: string) => void | - | - | Return value in all input joined by default `joiner` you set |
| type | "any", "number", "text" | 'any' | - |  Define what type of value you want to get from the input field |

2. `Label`
Accepts all the props of `label` element except `htmlFor`

3. `Input`
Accepts all the props of `input` element except  `type`, `value`, `autoComplete`, `maxLength`and `minLength`
It also accepts the following props

| Prop | Data Type | Default | Required | Description |
| --- | --- | --- | --- | --- |
| length | number | 1 | - | Define the number of character that a user can type in an input |
| password | boolean | false | - | Define if the input should be a password field |
npm package: @frk/vue-tags-input
Description: A tags input component for VueJS with autocompletion, custom validation, templating and much more
Author: Johannes Munari
Latest version: 2.3.1

# vue-tags-input

A tags input component for VueJS with autocompletion, custom validation, templating and much more

:information_source: Forked from @johmun/vue-tags-input which seems no longer maintained.

[Demo & Docs](http://www.vue-tags-input.com) (:warning: → @johmun/vue-tags-input)

## Features

- No dependencies
- Custom validation rules
- Hooks: Before adding, Before deleting ...
- Edit tags after creation
- Fast setup
- Works with Vuex
- Small size: 34kb minified (css included) | gzipped 9kb
- Autocompletion
- Many customization options
- Own templates
- Delete tags on backspace
- Add tags on paste
- Examples & Docs

## Install

NPM

```
npm install --save @frk/vue-tags-input
```

Yarn

```
yarn add @frk/vue-tags-input
```

CDN (:warning: → @johmun/vue-tags-input)

```
<script src="https://unpkg.com/@johmun/vue-tags-input/dist/vue-tags-input.js"></script>
```

## Usage

```html
<template>
  <div>
    <vue-tags-input v-model="tag" :tags="tags" @tags-changed="newTags => tags = newTags" />
  </div>
</template>
```

```javascript
<script>
import VueTagsInput from '@frk/vue-tags-input';

export default {
  components: {
    VueTagsInput,
  },
  data() {
    return {
      tag: '',
      tags: [],
    };
  },
};
</script>
```

## TODO

- [ ] Publish a Pull request for `inheritAttrs: false` in `@johmun/vue-tags-input`.
- [ ] Update the documentation about the consequencies of `inheritAttrs: false` and publish it.
- [ ] Upgrade all the packages to their latest version.
- [ ] Document the NPM publish workflow with `np`.

## License

[MIT](https://opensource.org/licenses/MIT)

Copyright (c) 2020 ODHCOM
npm package: @frntnd/eslint
Description: A standard Eslint config to get started with
Author: Daphne Smit
Latest version: 1.0.1

# ESLint

## Extending ESLint
If you want to use this ESLint configuration in a React project, you can install it with the following steps.

Install the package and ESLint. Just copy this line and paste in your terminal:

```
npm i @frntnd/eslint eslint -D
```

or 

```
yarn add @frntnd/eslint eslint -D
```

Then create a file named .eslintrc.js with following contents in the root folder of your project:
```javascript
module.exports = {
  extends: ['./node_modules/@frntnd/eslint'], 
}
```

You can add linting scripts to your package.json scripts like this:

```json
"scripts": {
  "lint": "eslint src --ext .ts,.tsx,.js,.jsx",
  "lint-fix": "eslint --fix src --ext .ts,.tsx,.js,.jsx"
}
``` 

and then run:
```
npm run lint or npm run lint-fix
```
or
```
yarn lint or yarn lint-fix
```

## Ejecting from ESLint
You can add or overwrite the ESLint rules if you want to.
But if you totally wish to eject from `@frntnd/eslint` run `npx frntnd-eslint eject`

## Autoformatting on save in VSCode
To turn on autoformatting on save in VSCode follow the following guidelines:

- Download the [VSCode ESLint Plugin](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint) and following the instructions.

- Make sure to change your settings.json in VSCode and add the following lines in the json:

```json
"editor.codeActionsOnSave": {
  "source.fixAll.eslint": true
}
```

- Make sure Prettier is turned off and eslint is set as formatter!
npm package: @frntnd/rollup
Description: A standard Rollup config to get started with
Author: Daphne Smit
Latest version: 1.0.2

# Rollup

## Extending Rollup config
If you want to use this Rollup configuration in a React project, you can install it with the following steps.

First, install this package by running `npm i @frntnd/rollup -D` .
Then install Rollup as a peer dependency. Just copy this line and paste in your terminal.
```
npm install --save-dev rollup
```

Then create a file named rollup.config.js with following contents in the root folder of your project:
```javascript
// rollup.config.js
import createDefaultRollupConfig from '@frntnd/rollup'

import pkg from './package.json';

export default {
  ...createDefaultRollupConfig(pkg),
  // Your custom Rollup config here...
}
```

The default rollup config uses fields like source, main and module from your package.json
The package.json should therefore look something like this:
```json
{
  // ...other package.json props,
  "source": "src/index.ts",
  "types": "dist/types/index.d.ts",
  "main": "dist/cjs/index.js",
  "module": "dist/esm/index.js",
}
```
npm package: @frogalytics/web
Description: This package can be used to easily track page views and events for any web framework. You can also append data to visitors if you have authenticated users.
Latest version: 1.0.5

# Frogalytics

This package can be used to easily track page views and events for any web framework.
You can also append data to visitors if you have authenticated users.

### Basic usage

Note that page views are tracked automatically and only require you to call `init()`.

```js
import frogalytics from '@frogalytics/web'

frogalytics.init()

frogalytics.track('Event name', { optionalEventData: true })

frogalytics.identify('yourUniqueUserIdentifier', { email: 'johndoe@mail.com', name: 'John Doe' })
```
npm package: @frogasia/dotdotdot-js
Description: Fork of https://github.com/FrDH/dotdotdot-js legacy version which does not support npm
Author: Fred Heusschen
Latest version: 1.6.10

jQuery.dotdotdot
================

A jQuery plugin for advanced cross-browser ellipsis on multiple line content.<br />
Demo's and documentation: http://dotdotdot.frebsite.nl

<img src="http://dotdotdot.frebsite.nl/img/preview.png" width="100%" border="0" />

### How to use the plugin
Include all nessesary .js-files inside the head-tag of the page.

```html
<head>
    <script src="jquery.js" type="text/javascript"></script>
    <script src="jquery.dotdotdot.js" type="text/javascript"></script>
</head>
```

Create a DOM element and put some text and other HTML markup in this "wrapper".

```html
<div id="wrapper">
    <p>Lorem Ipsum is simply dummy text.</p>
</div>
```

Fire the plugin onDocumentReady using the wrapper-selector.

```javascript
$(document).ready(function() {
    $("#wrapper").dotdotdot({
        // configuration goes here
    });
});
```

### More info
Please visit http://dotdotdot.frebsite.nl

### Licence
The jQuery.dotdotdot plugin is dual licensed under the MIT and GPL licenses:
+ http://en.wikipedia.org/wiki/MIT_License
+ http://en.wikipedia.org/wiki/GNU_General_Public_License
npm package: @frogcat/ttl2jsonld
Description: Turtle to JSON-LD converter for node.js and browser, no library dependencies
Author: frogcat
Latest version: 0.0.10

# @frogcat/ttl2jsonld

Turtle to JSON-LD converter for node.js and browser, no library dependencies.

## Demo

Online demo is available [here](https://frogcat.github.io/ttl2jsonld/demo/).

With this converter, you can obtain `Output JSON-LD` from `Input Turtle`, as shown in [JSON-LD 1.0 Specification](https://www.w3.org/TR/json-ld/#turtle) .

### Input Turtle

```example66.ttl
@prefix foaf: <http://xmlns.com/foaf/0.1/> .

<http://manu.sporny.org/about#manu> a foaf:Person;
  foaf:name "Manu Sporny";
  foaf:homepage <http://manu.sporny.org/> .
```

### Output JSON-LD

```exampl67.json
{
  "@context": {
    "foaf": "http://xmlns.com/foaf/0.1/"
  },
  "@id": "http://manu.sporny.org/about#manu",
  "@type": "foaf:Person",
  "foaf:name": "Manu Sporny",
  "foaf:homepage": { "@id": "http://manu.sporny.org/" }
}
```

## Install

### node.js

```a.sh
$ npm install @frogcat/ttl2jsonld
```

### browser

```a.html
<script src="https://frogcat.github.io/ttl2jsonld/ttl2jsonld.js"></script>
```

## Usage

### node.js

You can write your own code.

```example.js
const ttl2jsonld = require('@frogcat/ttl2jsonld').parse;

const ttl = `@prefix foaf: <http://xmlns.com/foaf/0.1/> .

<http://manu.sporny.org/about#manu> a foaf:Person;
  foaf:name "Manu Sporny";
  foaf:homepage <http://manu.sporny.org/> .
`;

const jsonld = ttl2jsonld(ttl);

console.log(JSON.stringify(jsonld,null,2));

```

Command line interface is also available.

```cli.sh
$ npm install @frogcat/ttl2jsonld
$ ttl2jsonld {input_turtle} > {output_jsonld}
or
$ cat {input_turtle} | ttl2jsonld > {output_jsonld}
```

### browser

This converter is exported to `ttl2jsonld` global object. Call `ttl2jsonld.parse(ttl)` to perform conversion.

```example.html
<!-- include ttl2jsonld.js -->
<script src="https://frogcat.github.io/ttl2jsonld/ttl2jsonld.js"></script>

<!-- run script -->
<script>
const ttl = `@prefix foaf: <http://xmlns.com/foaf/0.1/> .

<http://manu.sporny.org/about#manu> a foaf:Person;
  foaf:name "Manu Sporny";
  foaf:homepage <http://manu.sporny.org/> .
`;

const jsonld = ttl2jsonld.parse(ttl);

console.log(JSON.stringify(jsonld,null,2));
</script>

```

## API

Given `turtle_string`, `ttl2jsonld.parse` returns JSON Object.

```a.js
var json_object = ttl2jsonld.parse(turtle_string);
```

When you want to pass baseIRI, give second argument like this.

```a.js
var json_object = ttl2jsonld.parse(turtle_string, {
  baseIRI : "http://example.org/"
});
```

## For developers

### building

- Build with [PEG.js](https://pegjs.org/).
- Main code is `spec/ttl2jsonld.pegjs`.
- When you edit code, run `npm run build` to generate `ttl2jsonld.js`.

### testing

- Tested with [rdf-test-suite](https://www.npmjs.com/package/rdf-test-suite) and <https://w3c.github.io/rdf-tests/rdf/rdf11/rdf-turtle/manifest.ttl> .
- Currently 298 / 301 tests succeeded.
- Run `npm run spec-turtle` to start rdr-test-suite.
- Other miscellaneous tests are located in `test/test.js`, `npm run test` to run.
npm package: @frogeducation/grunt-apidoc
Description: Grunt task to generate a RESTful API Documentation with apidoc
Author: Peter Rottmann
Latest version: 0.11.0

# grunt-apidoc

[![Build Status](https://travis-ci.org/apidoc/grunt-apidoc.svg?branch=master)](https://travis-ci.org/apidoc/grunt-apidoc)


## About
Generates a RESTful API Documentation with [apiDoc](http://apidocjs.com).

Generated example documentation at [http://apidocjs.com/example/](http://apidocjs.com/example/)


## Installation
1. `npm install grunt-apidoc --save-dev`
2. Add `grunt.loadNpmTasks('grunt-apidoc');` to `Gruntfile.js`


## Configuration

Add the task to your Gruntfile's **grunt.initConfig**:
```javascript
apidoc: {
  myapp: {
    src: "app/",
    dest: "apidoc/"
  }
}
```

Use only one src and one dest, apiDoc search in subdirs for files with apidoc-parameters.


### Additional options

All `apiDoc` options can be used within options-block, see [apiDoc configure](http://apidocjs.com/#configure) for details,
or look [directly at the code](https://github.com/apidoc/apidoc/blob/master/lib/index.js#L10-L22).

* <code>src:</code> Source files directory.
* <code>dest:</code> Destination directory, where the documentation will be created.
* <code>template:</code> Directory with the template files.
* <code>options</code>
  * <code>includeFilters: [ ".*\\.js$" ]</code> RegEx, which files to parse.
  * <code>debug: false</code> Show Debug Output.
  * <code>log: true</code> Show Log Output.
  * <code>simulate: false</code> Simulation, no files will be written.

**Example options:**

**includeFilters**
With `includeFilters` you can define which files apiDoc should include, default `*.js`.

**debug**
Show verbose information.

```javascript
apidoc: {
  mypp: {
    src: "app/",
    dest: "apidoc/",
    options: {
      debug: true,
      includeFilters: [ ".*\\.js$" ],
      excludeFilters: [ "node_modules/" ]
    }
  }
}
```


## Changelog

* `0.11.0` Update for Grunt 1.
* `0.10.2` Update dependencies.
* `0.10.1` Update dependencies.
* `0.10.0` Upgrade to use always the latest version of apiDoc.
* `0.9.0` Upgrade to apiDoc 0.9.x.
* `0.8.0` Upgrade to apiDoc 0.8.x.
* `0.7.0` Upgrade to apiDoc 0.7.x.
* `0.6.0` Upgrade to apiDoc 0.6.x.
* `0.5.0` Upgrade to apiDoc 0.5.x.
* `0.4.0` Upgrade to apiDoc 0.4.x.
* `0.3.0` Upgrade to apiDoc 0.3.x.
* `0.2.1` remove this.async() (Iolo https://github.com/apidoc/grunt-apidoc/pull/2)
* `0.2.0` Upgrade to apiDoc 0.2.x.
* `0.1.2` Grunt peer dependencies.
* `0.1.1` Change binary Name.
* `0.1.0` Initial release.


## Help

Please visit the main [apiDoc project page on github](https://github.com/apidoc/apidoc) for help and information.
npm package: @frogeducation/jquery-toggleattr
Description: A simple jQuery plugin for toggling attributes, similar to how `toggleClass` works for CSS classes.  Created so that `if-else` constructs like the following:
Author: James Warwood
Latest version: 1.0.0

# jQuery toggleAttr

A simple jQuery plugin for toggling attributes, similar to how `toggleClass`
works for CSS classes.  Created so that `if-else` constructs like the following:

```javascript
// 'unsavedChanges' is a boolean value
if (unsavedChanges) {
    $('button#save').removeAttr('disabled');
} else {
    $('button#save').attr('disabled', 'disabled');
}
```

can become:

```javascript
$('button#save').toggleAttr('disabled', 'disabled', !unsavedChanges);

```

## Installing

Include the jQuery library first, and then the toggleAttr plugin:

`<script src="toggleattr.jquery.js" type="text/javascript></script>`

## Usage

Call `toggleAttr` on an element:

```javascript
$('#someElement').toggleAttr(<attrName>, <attrValue>, <stateVal>)
```

The only required parameter is `<attrName>` - `<attrValue>` and `<stateVal>` are
both optional.  `<stateVal>` is used for the same purpose as the optional second
parameter to jQuery core's `toggleClass` - if true, it forces the attribute to
be added; if false, it forces the attribute to be removed.

## Examples

### Toggle an attribute with no value:

HTML before:
```
<input type="text" />
```

JS:
```javascript
$('input').toggleAttr('myattr');
```

HTML after:

```
<input type="text" myattr />
```

JS:
```javascript
$('input').toggleAttr('myattr');
```

HTML after:
```
<input type="text" />
```

### Toggle an attribute with a value:

HTML before:
```
<div></div>
```

JS:
```javascript
$('div').toggleAttr('myattr', 'myValue');
```

HTML after:
```
<div myattr="myValue"></div>
```

### Toggle an attribute with the `stateVal` parameter

HTML before:
```
<div myattr="myValue"></div>
```

JS:
```javascript
$('div').toggleAttr('myattr', 'myValue', true);
```

HTML after:
```
<div myattr="myValue"></div>
```

If the `<stateVal>` parameter is true and the attribute already exists, the value
will be updated to `<attrValue>`:

JS:
```javascript
$('div').toggleAttr('myattr', 'myNewValue', true);
```

HTML after:
```
<div myattr="myNewValue"></div>
```

## License

The plugin is licensed under the [MIT License](http://opensource.org/licenses/MIT).

## Changelog

- v1.0.0: First release
npm package: @frogeducation/react-native-thumbnail
Description: Get thumbnail from local media.
Author: Frog Education
Latest version: 1.1.5


# react-native-thumbnail
Get thumbnail from local media. Currently, it only supports for video.

## Getting started

`$ npm install @frogeducation/react-native-thumbnail --save`

### Mostly automatic installation

`$ react-native link @frogeducation/react-native-thumbnail`

### Manual installation


#### iOS

1. In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`
2. Go to `node_modules` ➜ `@frogeducation` ➜ `react-native-thumbnail` and add `RNThumbnail.xcodeproj`
3. In XCode, in the project navigator, select your project. Add `libRNThumbnail.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`
4. Run your project (`Cmd+R`)<

#### Android

1. Open up `android/app/src/main/java/[...]/MainActivity.java`
  - Add `import com.reactlibrary.RNThumbnailPackage;` to the imports at the top of the file
  - Add `new RNThumbnailPackage()` to the list returned by the `getPackages()` method
2. Append the following lines to `android/settings.gradle`:
  	```
  	include ':react-native-thumbnail'
  	project(':react-native-thumbnail').projectDir = new File(rootProject.projectDir, 	'../node_modules/@frogeducation/react-native-thumbnail/android')
  	```
3. Insert the following lines inside the dependencies block in `android/app/build.gradle`:
  	```
      implementation project(':react-native-thumbnail')
  	```

## Usage
```javascript
import RNThumbnail from '@frogeducation/react-native-thumbnail';

RNThumbnail.get(filepath).then((result) => {
  console.log(result.path); // thumbnail path
})
```