open-index/open-npm huggingface dataset:
npm package: @medzik/libcrypto
Description: Cryptographic utilities
Author: M3DZIK
Latest version: 1.2.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Documentation

## Encrypting Data

### AES

![AES Encryption](https://github.com/M3DZIK/libcrypto/assets/87065584/4c056daf-603e-45ac-9a52-a7af785d4128)

## Password Hashing

### Argon2

![Argon2 Password hashing](https://github.com/M3DZIK/libcrypto/assets/87065584/d90d9ad6-5717-47a2-a2cf-affc9ad3f502)

## Key Exchange

### X25519

![X25519 Key Exchange and AES Encryption](https://github.com/M3DZIK/libcrypto/assets/87065584/95fbff58-97fa-42c6-82d5-bee6a10f657c)
npm package: @meebon/meebon
Description: A CLI tool for project scaffolding
Author: Meebon Team
Latest version: 1.3.2
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Meebon Project

## Overview

The Meebon project is a monorepo designed to manage multiple packages and modules efficiently. It provides a streamlined development workflow and supports publishing packages to a package registry.

## Features

- Interactive prompts for project name and template selection.
- Dynamically fetches available templates from the `templates` directory.
- Automatically sets up the project structure and updates `package.json`.

## Prerequisites

- Node.js (>= 14.x)
- npm or yarn or pnpm
- Git

## Installation

To use this CLI tool globally, install it via npm:

```bash
npm install -g meebon
```

## Usage

### Create a New Project

Run the following command to scaffold a new project:

```bash
npm create meebon@latest my-project
```

- Replace `my-project` with the desired project name.
- Follow the interactive prompts to select a template.

### Local Development

To test the CLI tool locally:

1. Clone the repository and navigate to the project directory.
2. Run `npm link` to link the CLI tool globally.
3. Use the `create-meebon` command to test the tool.

```bash
create-meebon my-project
```

## Templates

Templates are stored in the `templates` directory. Add your own templates by creating new subdirectories under `templates`.

### Example Template Structure

```
templates/
├── template1/
│   ├── package.json
│   └── ...
└── template2/
    ├── package.json
    └── ...
```

## Contributing

Contributions are welcome! Please follow these steps:

1. Fork the repository.
2. Create a new branch for your feature or bug fix.
3. Submit a pull request with a detailed description of your changes.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
npm package: @meechisoft/blabbermouth
Description: Tells you secrets from Azure Key vault based on your credentials
Author: Daniel Meech
Latest version: 1.0.0

Allows you to tokenize a javascript object with @Secret which get replaced with the actual secrets at runtime securely based on what key vault permission of the currently logged in user.

**Prerequisites**

*dotnet cli*

https://dotnet.microsoft.com/download

*azure cli*

https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest


**Example**

```js
var blabbermouth = require('@meechisoft/blabbermouth');

var config = {
    login: {
        user: '@Secret(AutomationUserName)',
        password: '@Secret(AutomationUserPassword)'
    } ,
    connectionString: '@Secret(DatabaseConnectionString)' 
};

blabbermouth('https://myvault.vault.azure.net', config)
    .then(o => {
        console.log(o);
    })
    .catch(e  => {
        console.error(e);
    });
```


*output*
```
{
    login:
    {
        user: 'user@company.com',
        password: 'P@ssword'
    },
    connectionString: 'Server=Server;Database=MyDatabase' 
}

```
npm package: @meecode/eas-build-notifier
Description: EAS build notifier tool
Author: MeeCode by Mario Murrent
Latest version: 0.0.14

# EAS Build Notifier

Can be used to get notifications for the following npm scripts `eas-build-post-install` and `eas-build-pre-upload-artifacts` in combination with the Expo EAS build.

If there is an `app.json` file present then this will also be used to get more information.

## Installing

`npm install eas-build-notifier --save-dev`

## Configuration File

The configuration file holds an array of services. Configure only the services you want to use.

```json
{
  "services": [
    {
      "name": "telegram",
      "config": {
        "token": "token",
        "chatID": "chatID"
      }
    },
    {
      "name": "discord",
      "config": {
        "webhookUrl": "url"
      }
    },
    {
      "name": "slack",
      "config": {
        "webhookUrl": "url"
      }
    },
    {
      "name": "teams",
      "config": {
        "webhookUrl": "url"
      }
    }
  ]
}
```

### Telegram Notification Example

<img src="/assets/example_telegram.png" alt="Telegram Example" style="width: 50%;">

## Supported platforms

- [x] Telegram
- [x] Slack
- [x] Discord
- [x] Teams

## Telegram Prerequisites

### Retrieve chatId

If you have the HTTP API Token use the following Link to get the chatId:
https://codesandbox.io/s/get-telegram-chat-id-q3qkk

## Slack

Create a webhook URL

## Teams

Create a webhook URL:
[See Documentation](https://docs.microsoft.com/en-us/microsoftteams/platform/webhooks-and-connectors/how-to/add-incoming-webhook)

## Example

See [example](example) folder.

## Roadmap

### Add support for the following services

- [x] Slack
- [x] Teams
- [x] Discord
- [ ] Markdown support in addition to HTML support
- [ ] Customizable messages

## License

[MIT](LICENSE.md)
npm package: @meecode/expo-cached-image
Description: Super fast cached image component for react-native applications powered by expo
Author: echowaves.com
Latest version: 47.0.0

# expo-cached-image
Super fast cached image component for react-native applications built with expo

## Usage
### Add to project
```
yarn add expo-cached-image
```
or
```
expo install expo-cached-image
```
### CachedImage
```JavaScript
import CachedImage from 'expo-cached-image'
```

Then it can be referenced in code like this:
```JavaScript
<CachedImage
          source={{ 
            uri: `${item.getThumbUrl}`, // (required) -- URI of the image to be cached
            headers: `Authorization: Bearer ${token}`, // (optional)            
            expiresIn: 2_628_288, // 1 month in seconds (optional), if not set -- will never expire and will be managed by the OS
          }}
          cacheKey={`${item.id}-thumb`} // (required) -- key to store image locally
          placeholderContent={( // (optional) -- shows while the image is loading
            <ActivityIndicator // can be any react-native tag
              color={
                CONST.MAIN_COLOR
              }
              size="small"
              style={{
                flex: 1,
                justifyContent: "center",
              }}
            />
          )} 
          resizeMode="contain" // pass-through to <Image /> tag 
          style={              // pass-through to <Image /> tag 
            styles.photoContainer
          }
        />
```        

`<CachedImage/>` internally uses the `<Image/>` component from *'react-native'*, so any properties that apply to the `<Image/>` can be passed into the `<CachedImage/>`.

*cacheKey* is the only property that's `<CachedImage/>` specific. The same *cacheKey* value should always be passed for the same *source* value. This is a little bit of an extra work from application development point of view, but this is how `<CachedImage/>` achieves it's performance. If not for *cacheKey*, the component would have to use some Crypto hash, which would add computational overhead. If you are rendering lots of images in a list on a screen -- this component will achieve the best performance.

### CacheManager
```JavaScript
import { CacheManager } from 'expo-cached-image'
```

If you have an image on local file system, which you want to add to cache, do this:
```JavaScript
  photo.getImgUrl = await CacheManager.addToCache({
    file: `${CONST.PENDING_UPLOADS_FOLDER}${item}`,
    key: `${photo.id}`,
  })
```

To get local *uri* of the cached file by key:
```JavaScript
  const uri = await CacheManager.getCachedUri({ key: `${item.id}` })
```


## Sample projects
https://github.com/echowaves/WiSaw

https://www.wisaw.com/
npm package: @meecode/expo-cached-remote-files
Description: Cache remote files on the file system
Author: Mario Murrent
Latest version: 1.0.20

# Expo Remote File Cache

Expo remote file cache for caching string files from a given uri.

## Installation

```
npm install @meecode/expo-cached-remote-files --save
```

## Peer Dependencies

- `expo-file-system`

### Methods

```typescript
 /**
     * Caches a file with the given uri and key when the timestamp is newer
     *
     * @param uri the uri of the file to cache
     * @param key the cache key to use. must be unique for every file
     * @param changedTimestamp the timestamp to check if the cached file is newer or not. default is undefined
     *
     * @returns the file path
     */
    static getOrCache(uri: string, key: string, changedTimestamp?: number): Promise<string>;

    /**
     * Gets a cached file uri by the cache key
     *
     * @param key the cache key to use
     *
     * @returns the file path
     */
    static get(key: string): Promise<string>;

    /**
     * Gets the cached file content by cache key
     *
     * @param key the cache key to use
     *
     * @returns the file content as string
     */
    static getContentAsString(key: string): Promise<string>;

    /**
     * Gets the last modified timestamp for a given cache key
     *
     * @param key the cache key to use
     *
     * @return the last modified timestamp
     */
    static getLastModifiedTimeStamp(key): Promise<number>;
```

## Usage

### getOrCache

Saves the file from the given URI or retrieves the cached file content if already present.
Note that the key must be unique, otherwise files will be overwritten with different content.

````typescript
import {FileCacheManager} from '@meecode/expo-cached-remote-files'

  FileCacheManager
    .getOrCache(`https://xyz.test.at/api/v1/faqs?language=${i18n.locale}`, `faq-${i18n.locale}`)
    .then((response: any) => {
        if (response) {
           //TODO: implement
        } else {
            console.error('Response is empty', response);
        }
    });
````

### get

Get a cached file uri by the key

````typescript
import {FileCacheManager} from '@meecode/expo-cached-remote-files'

  FileCacheManager
    .get(`faq-${i18n.locale}`)
    .then((response: any) => {
        //TODO: implement
    });
````

### getContentAsString

### getLastModifiedTimeStamp

## TODOs

See [TODOs](TODO.md)
npm package: @meecolabs/fonoapi
Description: Simple wrapper around the Fono API – Mobile Device Description API
Author: Dustin Steiner
Latest version: 1.0.0-beta1

# fono API

A simple Node.js wrapper for the [fono API](https://fonoapi.freshpixl.com/).

# Usage

The library is implemented as a thin wrapper layer over the fono API. You can get an API token [here](https://fonoapi.freshpixl.com/token/generate).

## Example

    const FonoClient = require('fonoapi');

		// init
		var client = new FonoClient('<apiToken>');
		
		// get data about a sensebox
		client.getLatest('samsung', 1).then((result) => {
			// …
		});

# License

MIT
npm package: @meecrobe/react-time-hook
Description: 🕑 React hook for formatting string to 12- or 24-hour time.
Author: Vadzim Tsupryk
Latest version: 0.5.0

# @meecrobe/react-time-hook

🕑 React hook for formatting string to 12- or 24-hour time.

![Build](https://img.shields.io/github/workflow/status/meecrobe/react-time-hook/CI)

![Demo](https://user-images.githubusercontent.com/8003440/128711176-2d323c95-f5f4-47de-9e9c-d572e01f9e10.gif)

[Live demo](https://meecrobe.github.io/react-time-hook/)

## Installation

```bash
$ yarn add @meecrobe/react-time-hook
```

## Usage

```typescript
import { useCallback, useState } from 'react';
import { useTime } from '@meecrobe/react-time-hook';

function TimeInput() {
  const [value, setValue] = useState('');
  const time = useTime(value);

  const handleChange = React.useCallback((e) => {
    setValue(e.target.value);
  }, []);

  const handleBlur = React.useCallback(() => {
    setValue(time);
  }, [time]);

  return (
    <input
      type="text"
      value={value}
      onChange={handleChange}
      onBlur={handleBlur}
    />
  );
}
```

## Props

| Prop         | Type           | Description                                 |
| ------------ | -------------- | ------------------------------------------- |
| initialValue | `string`       | Initial value                               |
| format       | `'12' \| '24'` | Time format                                 |
| padZero      | `boolean`      | Add leading zero to hours in 12-hour format |

## Examples of string values and their formatting results

<details>
<summary>To 12-hour time format (without leading zeros)</summary>

| Input      | Output        |
| ---------- | ------------- |
| `''`       | `'12:00 AM'`  |
| `'0'`      | `'12:00 AM'`  |
| `'1'`      | `'1:00 AM'`   |
| `'10'`     | `'10:00 AM'`  |
| `'12'`     | `'12:00 PM'`  |
| `'13'`     | `'1:00 PM'`   |
| `'24'`     | `'12:00 AM' ` |
| `'99'`     | `'12:00 AM' ` |
| `'345'`    | `'3:45 AM'`   |
| `'1334' `  | `'1:34 PM' `  |
| `'5889'`   | `'12:00 AM'`  |
| `'1:4'`    | `'1:04 AM'`   |
| `'11:4'`   | `'11:04 AM'`  |
| `'26:09'`  | `'12:09 AM'`  |
| `'12:20'`  | `'12:20 PM' ` |
| `'2000'`   | `'8:00 PM'`   |
| `'3p'`     | `'3:00 PM `   |
| `'8:21p'`  | `'8:21 PM'`   |
| `'821p'`   | `'8:21 PM' `  |
| `'1201am'` | `'12:01 AM'`  |
| `'3:'`     | `'3:00 AM'`   |

</details>

<details>
<summary>To 24-hour time format</summary>

| Input        | Output    |
| ------------ | --------- |
| `'1'`        | `'01:00'` |
| `'10'`       | `'10:00'` |
| `'111'`      | `'01:11'` |
| `'153'`      | `'01:53'` |
| `'1820'`     | `'18:20'` |
| `'2400'`     | `'00:00'` |
| `'1:4'`      | `'01:04'` |
| `'11:4'`     | `'11:04'` |
| `'2244'`     | `'22:44'` |
| `'3p'`       | `'15:00'` |
| `'8:21am'`   | `'08:21'` |
| `'8:21p'`    | `'20:21'` |
| `'821p'`     | `'20:21'` |
| `'3p'`       | `'15:00'` |
| `'8:21p'`    | `'20:21'` |
| `'03:55 AM'` | `'03:55'` |
| `'03:55 PM'` | `'15:55'` |
| `'12:01 AM'` | `'00:01'` |
| `'1201a'`    | `'00:01'` |
| `'00:55'`    | `'00:55'` |
| `'66:66'`    | `'00:00'` |
| `'22:'`      | `'22:00'` |

</details>
npm package: @meedan/check-ui
Description: React component library and [Storybook documentation](https://meedan.github.io/check-ui/) for the Check App Ecosystem.
Latest version: 0.1.63

# Check UI

React component library and [Storybook documentation](https://meedan.github.io/check-ui/) for the Check App Ecosystem.

## With yarn:

```
$ yarn && yarn start
```

## With npm

```
$ npm install && npm run start
```

## To develop with `check-web`

With the `check-web` docker container running, make whatever changes you need in `check-ui`, then run `npm run build`. Now link the new change in the docker container by running `docker-compose exec web npm run link:ui`. The `check-web` webpack will rebuild and the new build will reflect your changes (you may need to reload your browser running Check).

When you make changes here and are preparing to distribute via npm, please be sure to commit the contents of `lib/` as these are necessary for distribution. Also be sure to increment the `version` field in `package.json`.

Run integration tests on `check-web` as normal.

## To develop with `check-mark`

With the `check-mark` docker container running, make whatever changes you need in `check-ui`, then run `npm run build`. When building `check-mark`, use the `npm run build:check-ui` command instead of the standard `npm run build`.

When you make changes here and are preparing to distribute via npm, please be sure to commit the contents of both `lib/` as these are necessary for distribution. Also be sure to increment the `version` field in `package.json`.

To run integration tests for `check-mark` while developing `check-ui`, temporarily change the `release:test` command in `check-mark` to use `npm run build:check-ui`.

## Running test watcher

Some Storybook stories feature Jest test results. In order to see those results within Storybook, it is required to run test watcher in a separate terminal:

```
$ yarn run test:watch
```

or 

```
$ npm run test:watch
```
npm package: @meedika/capacitor-jailbreak-root-detection
Description: Jailbreak Root detection plugin for capacitor.
Author: Meedika
Latest version: 1.0.0

# @meedika/capacitor-jailbreak-root-detection

This is a Capacitor 6 Jailbreak Root detection plugin.

## Install

```bash
npm install @meedika/capacitor-jailbreak-root-detection
npx cap sync
```

## API

<docgen-index>

* [`isJailbrokenOrRooted()`](#isjailbrokenorrooted)
* [`isSimulator()`](#issimulator)
* [`isDebuggedMode()`](#isdebuggedmode)
* [`exitApp()`](#exitapp)
* [Interfaces](#interfaces)

</docgen-index>

<docgen-api>
<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->

### isJailbrokenOrRooted()

```typescript
isJailbrokenOrRooted() => Promise<JailbreakRootResult>
```

**Returns:** <code>Promise&lt;<a href="#jailbreakrootresult">JailbreakRootResult</a>&gt;</code>

--------------------


### isSimulator()

```typescript
isSimulator() => Promise<JailbreakRootResult>
```

**Returns:** <code>Promise&lt;<a href="#jailbreakrootresult">JailbreakRootResult</a>&gt;</code>

--------------------


### isDebuggedMode()

```typescript
isDebuggedMode() => Promise<JailbreakRootResult>
```

**Returns:** <code>Promise&lt;<a href="#jailbreakrootresult">JailbreakRootResult</a>&gt;</code>

--------------------


### exitApp()

```typescript
exitApp() => void
```

--------------------


### Interfaces


#### JailbreakRootResult

| Prop         | Type                 |
| ------------ | -------------------- |
| **`result`** | <code>boolean</code> |

</docgen-api>
npm package: @meednite/vue-select
Description: Everything you wish the HTML <select> element could do, wrapped up into a lightweight, extensible Vue component.
Author: Jeff Sagal
Latest version: 4.0.0-beta.milad3

# vue-select ![Current Release](https://img.shields.io/github/release/sagalbot/vue-select.svg?style=flat-square) ![Release Date](https://img.shields.io/github/release-date/sagalbot/vue-select?style=flat-square) ![Bundle Size](https://flat.badgen.net/bundlephobia/min/vue-select) ![Monthly Downloads](https://img.shields.io/npm/dm/vue-select.svg?style=flat-square) [![Coverage Status](https://coveralls.io/repos/github/sagalbot/vue-select/badge.svg?branch=master)](https://coveralls.io/github/sagalbot/vue-select?branch=master) ![MIT License](https://img.shields.io/github/license/sagalbot/vue-select.svg?style=flat-square)

> **Everything you wish the HTML `<select>` element could do, wrapped up into a lightweight, zero
> dependency, extensible Vue component.**

Vue Select is a feature rich select/dropdown/typeahead component. It provides a default
template that fits most use cases for a filterable select dropdown. The component is designed to be as
lightweight as possible, while maintaining high standards for accessibility,
developer experience, and customization.

- Tagging
- Filtering / Searching
- Vuex Support
- AJAX Support
- SSR Support
- Accessible
- ~20kb Total / ~5kb CSS / ~15kb JS
- Select Single/Multiple Options
- Customizable with slots and SCSS variables
- Zero dependencies

## Documentation

Complete documentation and examples available at https://vue-select.org.

- **[API Documentation](https://vue-select.org)**
- **[CodePen Template](http://codepen.io/sagalbot/pen/NpwrQO)**

## Sponsors :tada:

It takes a lot of effort to maintain this project. If it has saved you development time, please consider [sponsoring the project](https://github.com/sponsors/sagalbot)
with GitHub sponsors!

Huge thanks to the [sponsors](https://github.com/sponsors/sagalbot) and [contributors](https://github.com/sagalbot/vue-select/graphs/contributors) that make Vue Select possible!

## Install

```bash
yarn add vue-select

# or use npm

npm install vue-select
```

Then, import and register the component:

```js
import Vue from "vue";
import vSelect from "vue-select";

Vue.component("v-select", vSelect);
```

The component itself does not include any CSS. You'll need to include it separately:

```js
import "vue-select/dist/vue-select.css";
```

Alternatively, you can import the scss for complete control of the component styles:

```scss
@import "vue-select/src/scss/vue-select.scss";
```

You can also include vue-select directly in the browser. Check out the
[documentation for loading from CDN.](https://vue-select.org/guide/install.html#in-the-browser).

## License

[MIT](https://github.com/sagalbot/vue-select/blob/master/LICENSE.md)
npm package: @meedwire/react-native-ota
Description: Simple ota updates
Author: meedwire
Latest version: 0.1.0

# react-native-ota

Simple ota updates

## Installation

```sh
npm install react-native-ota
```

## Usage


```js
import { multiply } from 'react-native-ota';

// ...

const result = multiply(3, 7);
```


## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @meedwire/react-native-video-manager
Description: Used to assist in video manipulation
Author: leonardo.jeronimo
Latest version: 1.0.0-beta.3

# react-native-video-manager

Package for manager video

## Installation

```sh
yarn add react-native-video-manager
```

## Usage - Get frames video

```js
import { getFramesVideo } from 'react-native-video-manager';

// ...

const App: React.FC = () => {
    const [source, setSouce] = useState()

    const getFrames = useCallback(async () => {
        try {
            if (!source) return;

            const frames = await getVideoFrames(source);

            setFrames(frames);
        }catch(e){
            console.error(e)
        }
    }, [source])

    return (
        <View>
            <Button title="Retrieve Frames" onPress={getFrames} />
        <View/>
    )
}
```

## Usage - Compress Video

```js
import { compress } from 'react-native-video-manager';

// ...

const App: React.FC = () => {
    const [source, setSouce] = useState()

    const handleCropVideo = useCallback(async () => {
        try {
            if (!source) return;

            const {
                filePath,
                fileSize,
                originalFileSize
            } = await compress(source);

            setSouce(filePath);
        }catch(e){
            console.error(e)
        }
    }, [source])

    return (
        <View>
            <Button title="Retrieve Frames" onPress={handleCropVideo} />
        <View/>
    )
}
```

## Usage - Crop Video

```js
import { cropVideo } from 'react-native-video-manager';

// ...

const App: React.FC = () => {
    const [source, setSouce] = useState()

    const handleCropVideo = useCallback(async () => {
        try {
            if (!source) return;

            // Seconds
            const startTime = 0;
            // Seconds
            const endTime = 10;

            const source = await cropVideo(source, {startTime, endTime});

            setSouce(source);
        }catch(e){
            console.error(e)
        }
    }, [source])

    return (
        <View>
            <Button title="Retrieve Frames" onPress={handleCropVideo} />
        <View/>
    )
}
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @meeg/vite-plugin-inspect-config
Description: Write the resolved Vite config to disk for easy inspection when developing Vite plugins.
Author: Chris Meagher
Latest version: 0.2.0

# vite-plugin-inspect-config

A Vite plugin to write the [resolved config](https://vite.dev/guide/api-plugin#configresolved) to disk for easy inspection.

This plugin is intended to be used by plugin authors who wish to easily view config changes made by plugins for debugging purposes i.e. "did my plugin mutate the config how I intended it to"!