open-index/open-npm huggingface dataset:
npm package: @jolduca/vpn-fetch
Description: Start multiple vpn servers and make network requests through them
Author: Mateus C and Joshua L
Latest version: 1.1.2

## Install

### Dependencies

This package depends on `openvpn`, `net-tools` and `pkill`

```sh
sudo apt install openvpn net-tools procps
```

### NPM install:

```sh
npm install vpn-fetch
```

### About

I created this package out of necessity, and as I haven’t found anything similar in my research I decided to publish it to help anyone out there who are in the same rabbit role that I went trying to achieve the functionality. It is heavily based on this [blog post](http://www.georgiecasey.com/2013/07/26/how-to-use-overplay-and-other-vpns-as-a-curl-proxy/) found in this [question](https://serverfault.com/questions/653496/use-openvpn-tun-device-for-specific-request). To make the network requests it uses the [got](https://www.npmjs.com/package/got) package, as it supports the `localAddress` option.

When executed, it will ask for the root password, it is asked because the openvpn client needs to be run as sudo.

### Example

The `VPNFetch` constructor takes the VPN config file, and a txt file with the VPN server username and password sepparated by a newline.

```js
const configFiles = await readdir("/etc/openvpn/ovpn_tcp");
const randomConfig =
  configFiles[Math.floor(Math.random() * configFiles.length)];

const vpnFetch = new VPNFetch(
  "/etc/openvpn/ovpn_tcp/" + randomConfig,
  "./login_information"
);
await vpnFetch.connect();
const response = await vpnFetch.get("https://ifconfig.me/ip");
console.log("IP:", response.body);
vpnFetch.disconnect();
```
npm package: @jolibox/ads-sdk
Description: Jolibox JavaScript SDK for Ads
Author: Jolibox
Latest version: 0.0.7
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Jolibox Ads SDK

Jolibox SDK module that enables you earn money from Ads. For the current version, we simply wrap the Google Ad Sense and Ads for Game.

Most functions are strictly follow Ad Placement API design. You can read Google's official documentations [here](https://developers.google.com/ad-placement)

**The current version is still in pre-release, so the API may change in the future.**

## Installation

### Via CDN

If you want to use the library via CDN, you add the following script tag to your HTML file.

In such case, you should not write the import statement in your JavaScript file.

```html
<script src="https://cdn.jsdelivr.net/npm/@jolibox/ads-sdk@0.0.7/dist/index.iife.js"></script>
```

### Via NPM

If you want to use the library via NPM, you can install it via the following command:

In such case, you should not include the script tag in your HTML file but write the import statement in your JavaScript file.

- npm

  ```bash
  npm install @jolibox/ads-sdk
  ```

- pnpm

  ```bash
  pnpm add @jolibox/ads-sdk
  ```

- yarn

  ```bash
  yarn add @jolibox/ads-sdk
  ```

## Basic usage

- Initialization

  ```typescript
  // If you are importing the library via NPM, you can use the following import statement
  // import { JoliboxAds } from "@jolibox/ads-sdk";

  const ads = new JoliboxAds({ testMode: true });

  // somewhere when you need to preload ads (e.g. in the game loading screen)
  ads.adConfig({
    preloadAdBreaks: "on",
    sound: "on",
    onReady: () => {
      console.log("onReady");
    },
  });

  // Somewhere when you need a popup ads for reward
  ads.adBreak({
    type: "reward",
    beforeReward(showAdFn) {
      showAdFn();
    },
    adDismissed: () => {
      console.log("adDismissed");
    },
    adViewed: () => {
      console.log("adViewed");
    },
    adBreakDone: () => {
      console.log("adBreakDone");
    },
  });

  // If you need to show a banner ad, you should call the following function when you start the App
  ads.adUnit({
    el: "#banner", // or document.getElementById("banner")
  });
  ```
npm package: @jolibox/bootstrap
Description: This project is Jolibox JS-SDk bootstrap
Latest version: 1.4.16

# Jolibox JSSDK Bootstrap

- This package will be executed during the SDK initialization phase within a synchronous block.
- The contents of this package will significantly impact the SDK's initialization performance,
- so only methods with the highest priority are allowed to be included in this package.
- Currently, the known methods that must be created during initialization are Runtime.notifyProgress and Runtime.loadFinished