open-index/open-npm huggingface dataset:
npm package: @mattermost/react-native-paste-input
Description: React Native TextInput replacement to allow pasting files
Author: Elias Nahum
Latest version: 0.8.1

# @mattermost/react-native-paste-input

React Native `TextInput` component have functionality to capture text input from a user
by using the soft and hardware keyboards but lacks the ability to restrict copy & paste options
as well as allwing pasting different files formats copied from other apps, like images & videos from
the Photos gallery app.

`PasteInput` is a `TextInput` replacement that solves this issues.

## Installation

```sh
npm i --save-exact @mattermost/react-native-paste-input
```

## Demo
| Android | iOS |
|-- |-- |
|![Android](/example/gifs/AndroidPasteInput.gif)|![iOS](/example/gifs/iOSPasteInput.gif)|



## Usage

```js
import React, { useRef } from 'react';
import PasteInput, { PastedFile, PasteInputRef } from "@mattermost/react-native-paste-input";

const YourTextInput = () => {
    const inputRef = useRef<PasteInputRef>(null);

    const onPaste = (
        error: string | null | undefined,
        files: Array<PastedFile>
    ) => {
        console.log('ERROR', error);
        console.log('PASTED FILES', files);
    };

    return (
        <PasteInput
            ref={inputRef}
            disableCopyPaste={false}
            onPaste={onPaste}
            multiline={true}
            blurOnSubmit={false}
            underlineColorAndroid="transparent"
            keyboardType="default"
            disableFullscreenUI={true}
            textContentType="none"
            autoCompleteType="off"
        />
    );
}
```

### Properties
All properties of the [TextInput](!https://reactnative.dev/docs/textinput) component plus:

##### `disableCopyPaste: boolean`
Indicates if the menu items for *cut*, *copy*, *paste* and *share* should not be present in the context menu.

##### `onPaste: (error, files) =>  void`
Callback that is called when the pasting files into the text input.
*Note: On Android this callback is also called when selecting and image / gif from the soft keyboard.*

## Contributing

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

## License

MIT
npm package: @mattermost/react-native-turbo-mailer
Description: An adaptation of react-native-mail that supports Turbo Module
Author: Avinash Lingaloo
Latest version: 0.2.4

# @mattermost/react-native-turbo-mailer

An adaptation of [react-native-mail](https://github.com/chirag04/react-native-mail/blob/master/android/src/main/java/com/chirag/RNMail/RNMailModule.java) that supports Turbo Module

## Installation

```sh
npm install @mattermost/react-native-turbo-mailer
```


##### Android specific

Create a file under `android/src/main/res/xml` called `provider_paths.xml` and add the following content
```xml
<?xml version='1.0' encoding='utf-8'?>
<paths xmlns:android="http://schemas.android.com/apk/res/android">
    <files-path name="files" path="." />
    <external-files-path name="external_files" path="." />
    <external-path name="external" path="." />
    <cache-path name="cache" path="." />
    <root-path name="root" path="." />
</paths>
```

## Usage

```js
import TurboMailer from '@mattermost/react-native-turbo-mailer';

// ...
 await TurboMailer.sendMail({
    subject: "subject here",
    recipients: ["support@gmail.com"],
    body: "mail body here",
    attachments: [{
        path: '',
        mimeType: ''
    }],
});
```

## Contributing

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

## License

MIT

---
npm package: @mattermost/types
Description: Shared type definitions used by the Mattermost web app
Latest version: 11.5.0

# Mattermost Types

This package contains shared type definitions used by [the Mattermost web app](https://github.com/mattermost/mattermost-webapp) and related projects.

## Usage

For technologies that support [subpath exports](https://nodejs.org/api/packages.html#subpath-exports), such as Node.js, Webpack, and Babel, you can import these types directly from individual files.

```javascript
import {UserProfile} from '@mattermost/types/users';
```

For technologies that don't support that yet, you can add an alias in its package resolution settings to support that.

### Jest

In your Jest config, you can use the `moduleNameMapper` field to add that alias.

```json
{
    "moduleNameMapper": {
        "^@mattermost/types/(.*)$": "<rootDir>/node_modules/@mattermost/types/lib/$1"
    }
}
```

## Compilation and Packaging

As a member of Mattermost with write access to our NPM organization, you can build and publish this package by running the following commands:

```bash
npm run build --workspace=platform/types
npm publish --workspace=platform/types
```

Make sure to increment the version number in `package.json` first! You can add `-0`, `-1`, etc for pre-release versions.
npm package: @matterpool/bitcoinfiles-js
Description: BitcoinFiles JS
Author: Harrison Beckerich
Latest version: 1.0.0

# BitcoinFiles JS

Upload large files directly to Bitcoin. 

## Installation

```bash
npm install @matterpool/bitcoinfiles-js
``````

## JS Usage

Uploading and paying for a file

```javascript
const bitcoinfiles = require('@matterpool/bitcoinfiles-js');

const workspaceId = '<insert-workspace-id>';
const file = new File(['foo', 'bar'], 'foobar.txt');
const formData = new FormData();
formData.append('file', file);

const upload = bitcoinfiles.upload(formData, workspaceId);

const paymentAddress = upload.payment_address;
const paymentSatoshis = upload.payment_satoshis;

// use paymentAddress and paymentSatoshis to pay for the file
// you can use any bitcoin wallet to pay for bitcoin files

const rawtx = '....'
const payment = await bitcoinfiles.pay(rawtx);
// save the transaction id of the file to download it later
const txid = payment.result[0].txid 
```

Downloading a File

```javascript
const txid = '8f7090ec72a692e7bb893a3fd4ef1e508c655a284a5b736b3cc7c63649748562'
const file = await bitcoinfiles.download(txid);
```

## API Usage

### Upload

Request

```
POST https://api.bitcoinfiles.org?tag=<workspace-id>
Content-Type: multipart/form-data
Body:
  file: <file-contents>
```

Response

```javascript
{
    payment_address: '18Qi1rXJSLDLUYDZVkRT3ZdyB3E9eZamY2',
    payment_satoshis: 2833,
    session_tag: '<workspace-id>',
    location: '<file-cdn-url>'
}
```


### Pay

To pay for a file, pay `payment_address` the amount of `payment_satoshis`. You can pay for multiple files at once in the same transaction 

Request

```
POST https://api.bitcoinfiles.org/pay
Content-Type: application/json
Body:
{
  rawtx: '<raw-transaction-hex>'
}
```

Response

```javascript
{
    errors: [],
    status: 200,
    result: [{
        txid: 'f7a3e5838a134a78b6a5033aa928efb7849be6212307b9b9eed3c738ea470bc2',
        session_tag: '<workspace-id>',
        fileurl: '<file-cdn-url>',
        payment_address: '18Qi1rXJSLDLUYDZVkRT3ZdyB3E9eZamY2',
        payment_sats_needed: 2833,
        filesize: 2775,
        created_time: 1602905335,
        filename: '<filename>',
    }]
}
```

## Download

You can download a file by using it's transaction id. This link can be used in html tags like `<img>`, `<video>` or `<audio>`

Request

```
GET https://media.bitcoinfiles.org/[txid]
```
npm package: @matterpool/classify-script
Description: Classifies bitcoin scripts as a specific tag. Examples: `payment`, `data`, `twetch`, `21e8` or `boost`.
Author: Harrison Beckerich
Latest version: 1.0.11

# Classify Script

Classifies bitcoin scripts as a specific tag. Examples: `payment`, `data`, `twetch`, `21e8` or `boost`.

To add more classifications, create a pull request, or don't, whatever.

## Installation

```bash
npm install @matterpool/classify-script
```

```javascript
const bsv = require('bsv');
const classifyScript = require('@matterpool/classify-script');
const script = new bsv.Script();
classifyScript(script);
```

## Authors

- [@1](https://twetch.app/u/1)
npm package: @matters/apollo-server-plugin-response-cache
Description: Apollo Server full query response cache. Forked from https://github.com/apollographql/apollo-server, with cache key injected to context.
Author: Matters
Latest version: 0.3.6

# Response Cache plugin

This Apollo server plugin implements a full GraphQL query response cache.

- Add the plugin to your ApolloServer's plugins list
- Set `@cacheControl` hints on your schema or call `info.cacheControl.setCacheHint` in your resolvers
- If the entire GraphQL response is covered by cache hints with non-zero maxAge,
  the whole response will be cached.

This cache is a full query cache: cached responses are only used for identical requests.