open-index/open-npm huggingface dataset:
npm package: @gumfinance/sdk
Description: 🛠 An SDK for building applications on top of Gum Finance.
Latest version: 1.2.0

# Gum SDK

Forked from the [Uniswap SDK](https://github.com/Uniswap/uniswap-v2-sdk/commit/a88048e9c4198a5bdaea00883ca00c8c8e582605).

You can refer to the Uniswap SDK documentation [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/gum-finance/gum-sdk
```

Move into the pancakeswap-sdk working directory

```sh
cd gum-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
# gum-finance
npm package: @gumhq/react-native-components
Description: This is a collection of social UI components for React Native that can be tied together with the [Gum](https://gum.fun/) protocol.
Author: Kunal Bagaria
Latest version: 1.0.1

# Gum UI Components for React Native

This is a collection of social UI components for React Native that can be tied together with the [Gum](https://gum.fun/) protocol.

![Gum Components](https://user-images.githubusercontent.com/61944452/223193983-aeb2e03c-5985-444f-a4f0-413dda5a685f.png)

## Installation

```
npm install @gumhq/react-native-components
```
or
```
yarn add @gumhq/react-native-components
```


### Follow Button

This component allows you to render a follow button. It takes in the following data structure as props.

```tsx
import { FollowButton } from '@gumhq/react-native-components';
import { useState } from 'react';

function Follow() {
  const [following, setFollowing] = useState(false);

  const followData = {
    following: following,
    follow: async () => setFollowing(true),
    unfollow: async () => setFollowing(false),
  }

  return (
    <FollowButton data={followData} />
  )
}
```

### Profile

This component allows you to render a profile. It takes in the following data structure as props.

```tsx
import { Profile, ProfileMetadata } from '@gumhq/react-native-components';

function ProfileComponent() {
  const followData = {...};
  const profile: ProfileMetadata = {
    name: "Kunal Bagaria",
    bio: "Software Engineer @ Gum",
    username: "kunal",
    following: 5,
    followers: 500,
    avatar: "https://i.imgur.com/uGv5Zca.jpg",
    connect: followData // Optional
  }
  return (
    <Profile data={profile} />
  );
}

```

### Post

This component allows you to render a post. It takes in the post and profile data as props.

```tsx
import { Post, PostMetadata, ProfileMetadata } from '@gumhq/react-native-components';

function PostComponent() {
  const profile: ProfileMetadata = {...}
  const post: PostMetadata = {
    type: "text",
    content: {
      format: "markdown",
      content: "Hello World"
    }
  }
  return (
    <Post
      profileData={profile}
      data={post}
    />
  );
}
```
npm package: @gumilang/3dlabtiten
Description: 3dlab
Author: gumilang
Latest version: 0.1.0

This is a [Next.js](https://nextjs.org/) project bootstrapped with [`create-next-app`](https://github.com/vercel/next.js/tree/canary/packages/create-next-app).

## Getting Started

First, run the development server:

```bash
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
```

Open [http://localhost:3000](http://localhost:3000) with your browser to see the result.

You can start editing the page by modifying `app/page.tsx`. The page auto-updates as you edit the file.

This project uses [`next/font`](https://nextjs.org/docs/basic-features/font-optimization) to automatically optimize and load Inter, a custom Google Font.

## Learn More

To learn more about Next.js, take a look at the following resources:

- [Next.js Documentation](https://nextjs.org/docs) - learn about Next.js features and API.
- [Learn Next.js](https://nextjs.org/learn) - an interactive Next.js tutorial.

You can check out [the Next.js GitHub repository](https://github.com/vercel/next.js/) - your feedback and contributions are welcome!

## Deploy on Vercel

The easiest way to deploy your Next.js app is to use the [Vercel Platform](https://vercel.com/new?utm_medium=default-template&filter=next.js&utm_source=create-next-app&utm_campaign=create-next-app-readme) from the creators of Next.js.

Check out our [Next.js deployment documentation](https://nextjs.org/docs/deployment) for more details.
npm package: @gumlet/gif-resize
Description: Nodejs plugin to resize GIFs
Author: Aditya Patadia
Latest version: 2.0.0

# gif-resize

[![Build Status](https://github.com/gumlet/gif-resize/workflows/Node%20CI/badge.svg)](https://github.com/gumlet/gif-resize/actions)

> Nodejs plugin for [Gifsicle](https://www.lcdf.org/gifsicle/)


## Install

```
$ npm install @gumlet/gif-resize
```

## Usage

```js
import gifResize from '@gumlet/gif-resize'
import fs from 'node:fs';

const buf = fs.readFileSync("avocado.gif");
gifResize({
	width: 200
})(buf).then(data => {
	console.log("'data' contains processed GIF.");
});
```

## API

### gifResize([options])(buffer)

Returns a promise for a buffer.

### options

Type: `Object`

##### width

Type: `number`

Resize GIF to given width in pixels. It maintains aspect ratio.

##### height

Type: `number`

Resize GIF to given height in pixels. It maintains aspect ratio.

##### stretch

Type: `boolean`

If this is set, and `width` and `height` both are provided, the GIF will be resized such that it exactly matches the dimensions provided. It won't match the aspect ratio.

##### interlaced

Type: `boolean`<br>
Default: `false`

Interlace gif for progressive rendering.

##### timeout

Type: `number`<br>
Default: `0`

This is process timeout in milliseconds. If set to positive number, it will throw timeout error after that many milliseconds.

##### optimizationLevel

Type: `number`<br>
Default: `2`

Select an optimization level between `1` and `3`.

> The optimization level determines how much optimization is done; higher levels take longer, but may have better results.

1. Stores only the changed portion of each image.
2. Also uses transparency to shrink the file further.
3. Try several optimization methods (usually slower, sometimes better results)

##### colors

Type: `number`

Reduce the number of distinct colors in each output GIF to num or less. Num must be between 2 and 256.

##### resize_method

Type: `string`
Default: `lanczos3`

Set the method used to resize images. The `sample` method runs very quickly, but when shrinking images, it produces noisy results. The `mix` method is somewhat slower, but produces better-looking results. The default method is currently `mix`.

Gifsicle also supports more complex resamplers, including Catmull-Rom cubic resampling (`catrom`), the Mitchell-Netravali filter (`mitchell`), a 2-lobed Lanczos filter (`lanczos2`), and a 3-lobed Lanczos filter (`lanczos3`). These filters are slower still, but can give sharper, better results.

##### gamma

Type: `number`

Set the gamma correction to gamma, which can be a real number or ‘srgb’.

##### crop

Type: `array`

Crop box in format `[left, top, width, height]`.

##### flip_h

Type: `boolean`

Flips GIF horizontally.

##### flip_v

Type: `boolean`

Flips GIF vertically.

##### rotate

Type: `number`

Rotates GIF image. Valid values are `90`, `180` and `270`. All other values are silently ignored.


### buffer

Type: `Buffer`

Buffer to optimize / resize.


## License

MIT © [Gumlet](https://github.com/gumlet)
npm package: @gumlet/insights-js-core
Description: * Node >= 8.x * Yarn package manager: https://yarnpkg.com
Author: Gumlet Pte. Ltd.
Latest version: 1.1.62

# Gumlet Analytics Collector

## Prerequisites

* Node >= 8.x
* Yarn package manager: https://yarnpkg.com

NOTE: `npm` will also work with the same scripts added the `run ...` command.

## Setup

```
yarn install
```

## Build scripts

```
yarn build:debug
```

```
yarn build:release
```

## Dev mode

```
yarn start // run webpack-dev-server
```
npm package: @gumlet/react-native-embed-player
Description: Gumlet Embed player for react native
Author: Gumlet Pte. Ltd.
Latest version: 0.1.6

# @gumlet/react-native-embed-player

> Gumlet Embed player in react native


## Installation

#### setup react native webview

```sh
$ npm install react-native-webview
$ cd ios/
$ pod install 
```

```sh
npm install @gumlet/react-native-embed-player
```




## Usage


```js
import { ReactNativeEmbedPlayerView } from "@gumlet/react-native-embed-player";

// ...

<ReactNativeEmbedPlayerView video_id="" style={styles.box} />
```

## Props
| Prop          | Description   | Default       |
| ------------- | ------------- | ------------- |
| video_id `String` `Required`   | Video ID which is generated after processing the video on gumlet  | |
| is_live `Boolean` `Optional`   | Whether the video is live or not | false |
| style `Object`  `Required`    | Style tag passed on to the iframe container |  |
| autoplay `Boolean`            | Should the video autoplay | Default set in collection settings |
| preload `Boolean`             | Should the video preload  | Default set in collection settings |
| muted `Boolean`               | Should the video player be muted  | Default set in collection settings |
| gm_user_id `String`           | User ID passed to gumlet insights object | null |
| gm_user_name `String`         | User name passed to gumlet insights object | null |
| gm_user_email `String`        | User email passed to gumlet insights object | null |
| gm_custom_data_1 `String`     | Custom data 1 passed to gumlet insights object | null |
| loop `Boolean`                | Should the video play in a loop | Default set in collection settings |
| thumbnail `String`            | URL Encoded value of the Poster/Thumbnail URL which should be shown | Default set in asset details |
| drm_token `String`            | Token generated on backend for DRM Protected content | null |
| expires `Integer`             | Token expiry time from epoch in millis for DRM protected content | null |
| vast_tag_url `String`         | URL Encoded VAST tag URL | null |
| start_high_res `Boolean`      | Start the video in the highest resolution  available | false |
| disable_seek `Boolean`        | Disable the seek bar and removes forward and rewind buttons | false |
| disable_player_controls `Boolean` | Removes all player controls from the player | false |
| watermark_text `String`       | Watermark text to be shown in the player | null |
| facebook_pixel_id `String`    | Facebook pixel ID to be used to send data about playback | null |
| ga_tracking_id `String`       | Google pixel ID to be used to send data about playback | null |
| t `Integer`                   | The playback instant in seconds to start the video at | null |


## Maintainer

This library is maintained by [gumlet](https://github.com/gumlet)
npm package: @gumlet/video-manifest-parser
Description: A TypeScript package for manipulating MPD and M3U8 manifests
Latest version: 1.0.4

[![Test Status](https://github.com/gumlet/video-manifest-parser/actions/workflows/test.yml/badge.svg)](https://github.com/gumlet/video-manifest-parser/actions/workflows/test.yml)

> **Note:** This package does not handle segmentation or encryption of media files like [Shaka Packager](https://github.com/shaka-project/shaka-packager). It is intended as a quick tool for editing manifests and removing already segmented streams. 
>
> It currently honors HLS and DASH specifications as followed by Shaka Packager.

# Manifest Editor

A TypeScript library for manipulating MPD (MPEG-DASH) and M3U8 (HLS) manifest/master playlist files.

## Features

- Parse and modify MPD (MPEG-DASH) manifests
- Parse and modify M3U8 (HLS) master playlists
- Support for multiple media types (video, audio, subtitles)
- Automatic ID generation for new elements
- Type-safe API with TypeScript interfaces

## Installation

```bash
npm install @gumlet/video-manifest-parser
```

## Usage

### MPD Editor

```typescript
import { MPDEditor } from '@gumlet/video-manifest-parser';

// Parse MPD manifest
const editor = new MPDEditor(mpdString);

// Add new adaptation set
const newAdaptationSet = {
  '@contentType': 'video',
  '@width': '1920',
  '@height': '1080',
  Representation: {
    '@bandwidth': '5000000',
    '@codecs': 'avc1.640028',
    '@mimeType': 'video/mp4'
  }
};

editor.addAdaptationSet(newAdaptationSet);

// Get modified MPD string
const updatedMpd = editor.toString();
```

### M3U8 Editor

```typescript
import { M3U8Editor } from '@gumlet/video-manifest-parser';

// Parse M3U8 playlist
const editor = new M3U8Editor(m3u8String);

// Add new media stream
const newStream: StreamInfo = {
  bandwidth: 5000000,
  codecs: 'avc1.640028',
  resolution: { width: 1920, height: 1080 },
  frameRate: '30.000'
};

editor.addStream(newStream);

// Get modified M3U8 string
const updatedM3U8 = editor.toString();
```

## API Reference

### MPDEditor

```typescript
interface AdaptationSet {
  '@id': string;
  '@contentType': 'video' | 'audio' | 'text';
  '@lang'?: string;
  Representation: {
    '@id': string;
    '@bandwidth': string;
    '@codecs': string;
    '@mimeType': string;
    '@audioSamplingRate'?: string;
    '@width'?: string;
    '@height'?: string;
  };
}

interface MPD {
  Period: {
    AdaptationSet: AdaptationSet[];
  };
}
```

### M3U8Editor

```typescript
interface StreamInfo {
  bandwidth: number;
  codecs: string;
  resolution?: { width: number; height: number };
  frameRate?: string;
  videoRange?: string;
  audio?: string;
  subtitles?: string;
  closedCaptions?: string;
}

interface Media {
  type: 'AUDIO' | 'SUBTITLES' | 'CLOSED_CAPTIONS';
  group_id: string;
  language: string;
  name: string;
  uri: string;
  default?: boolean;
  autoselect?: boolean;
  channels?: number;
}
```

## Dependencies

- `fast-xml-parser`: For parsing and building MPD XML
- `m3u8-parser`: For parsing M3U8 playlists
- `typescript`: For type definitions and compilation