open-index/open-npm huggingface dataset:
npm package: @surunnuage/stripe-billing
Description: Manage Stripe subscriptions customer's infos and bills directly from Strapi.
Author: Thomas Poirier
Latest version: 1.0.2

# Strapi plugin stripe-billing

## Introduction

Stripe-billing is a Strapi plugin that allows a Stripe subscription customer to manage his billing infos, subscriptions and last invoices. Typical use case: you're a web agency or alike and you want your customers to be able to manage their maintenance subscription without leaving Strapi.

## Installation

Run any of the following commands inside your strapi directory to install the plugin:

```
npm i @surunnuage/stripe-billing

yarn add @surunnuage/stripe-billing
```

Then, to allow the plugin to appear in Strapi admin's panel:

```
npm run build

yarn build
```

## Usage

There are two mandatory variables to add: your Stripe secret apikey (you can find it here: https://dashboard.stripe.com/account/apikeys) and the Stripe customerId. The Stripe secret key should be added to an .env file (so it won't be commited to Github or another version control system) as the STRIPE_TOKEN. You can chose to do the same with the customerId as the STRIPE_CUSTOMER_ID.

```
STRIPE_TOKEN=sk_XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
STRIPE_CUSTOMER_ID=cus_XXXXXXXXXXXXXXXXX
```

### Enable plugin configuration

Open the `config/plugins.js` file (or create it if it's not there) and add the stripe-billing entry with the customerId. The minimal plugin's config will look as follow:

```js
module.exports = ({ env }) => ({
  ...
  "stripe-billing": {
    enabled: true,
    config: {
      customerId: env("STRIPE_CUSTOMER_ID"),
    }
  },
  ...
});
```

### Additional configuration

Stripe-billing allows you to add your company's name, description and logo in order to custom brand the page. The plugin's config will then look as follow:

```js
module.exports = ({ env }) => ({
  ...
  "stripe-billing": {
    enabled: true,
    config: {
      customerId: env("STRIPE_CUSTOMER_ID"),
      companyName: "ACME",
      companyDescription: "All your ACME's subscriptions infos are there.",
      companyLogo: "https://acme.com/img/logo.png",
    }
  },
  ...
});
```

And that's it. Now your customers can access their billing infos without leaving their favorite CMS.
npm package: @surveycake/rc
Description: react component of surveycake
Latest version: 3.0.0-alpha.177

# rc

React components library for SurveyCake

Only support ES Modules

Please see

- [documentation](https://surveycake.fox.25sprout.com/sdk/rc/)
- [roadmap](ROADMAP.md)

## 本地開發指南

以下以 admin 專案為例，說明如何進行本地開發：

1. 開啟 admin 專案的 `package.json`
2. 修改 `dependencies` 欄位：
   - `@surveycake/rc` 改為 `link:${MY/LOCAL/RC/PATH}`
   - `react` 改為 `link:${MY/LOCAL/RC/PATH}/node_modules/react`
   - `react-dom` 改為 `link:${MY/LOCAL/RC/PATH}/node_modules/react-dom`
3. 啟動 admin 的本地開發伺服器
4. 當 RC 有更新時，只需重新執行 `yarn build` 即可
npm package: @surveycake/utils
Description: SurveyCake Javascript Utils
Latest version: 2.12.0

# utils

SurveyCake Frontend common js function library.  
Only support ES Modules and UMD

## Installation

```
npm install @surveycake/utils --save

or

yarn add @surveycake/utils
```

## Documentation

The docs are published at https://doc.svy.do/utils/
npm package: @surveypins/tailwind-preset
Description: Tailwind preset
Author: SurveyPins
Latest version: 0.1.3

# SurveyPins | TailwindCSS Preset

To use this preset:

### Install

```bash
npm i -D @surveypins/tailwind-preset
```

### Usage

```javascript
module.exports = {
    presets: [require('@surveypins/tailwind-preset')],
    ...
};
```

### Tailwindcss configuration

https://tailwindcss.com/docs/configuration

[![NPM](https://nodei.co/npm/@surveypins/tailwind-preset.png?downloads=true)](https://www.npmjs.com/package/@surveypins/tailwind-preset)
npm package: @surveyplanet/in_view
Description: Check whether an element is inside the browser's viewport.
Author: Jonah Werre
Latest version: 1.0.1

# In View

Check whether and element is within the browser viewport.

## Install

```
npm install --save @surveyplanet/in-view
```

## Example

```js
import inView from 'in_view';

const target = document.getElementById('target', {});

document.addEventListener('scroll', (e) => {

  let isInView = inView(target, scrollOptions); \\ ture or flase
  console.log('element is in view:', isInView );

});
```

## Options

**Returns**: <code>Boolean</code> - Whether the element is inside the document viewport or not.

| Param           | Type                                            | Description                                                                      |
| --------------- | ----------------------------------------------- | -------------------------------------------------------------------------------- |
| element         | <code>HTMLElement</code> \| <code>String</code> | An HTMLElement or String containing a valid id (#my-elm) or class.(.my-elm) name |
| options         | <code>Object</code>                             | function options.                                                                |
| options.partial | <code>Boolean</code>                            | When true the element is considered inside the viewport if any part is visible.  |
| options.offset  | <code>Number</code> \| <code>String</code>      | Offset the element either by number of pixels or a percentage e.g.:'50%'         |

## Testing

```
npm install
npm test
```
npm package: @survfate/valorant.js
Description: API Wrapper for valorant with oauth support
Author: Sprayxe, Speeedyyyy, survfate
Latest version: 1.6.11

# @survfate/valorant.js
## An API Wrapper for valorant with oauth support
#### Notice: This fork is just my personal implementation for fixing the outdated Content API & Cloudflare bypass

## Example
```js
(async () => {
  const { RiotApiClient, Region } = require("valorant.js");
  
  try {
    const client = new RiotApiClient({
      username: "MY_USERNAME", // your username
      password: "MY_PASSWORD", // your password
      region: Region.MY_REGION, // Available regions: EU, NA, AP
    });
    
    await client.login();
    console.log(client.user);
    
    const balance = await client.storeApi.getWallet(client.user.Subject);
    console.log(balance);

    const { featured, bonus, skins } = await client.storeApi.getStorefront(
      client.user.Subject,
      true,
      "MY_LOCALE" // Available locales: ar-AE / de-DE / en-US / es-ES / es-MX / fr-FR / id-ID / it-IT / ja-JP / ko-KR / pl-PL / pt-BR / ru-RU / th-TH / tr-TR / vi-VN / zh-CN / zh-TW
    );
    console.log(skins);
  } catch(err) {
    console.error(err);
  }
})();
```

## Support
* Read [Documentation](https://valorant-js.stoplight.io/docs/valorant-js/docs/Home.md) (OUTDATED, soon)

## Installation
```npm install @survfate/valorant.js --save```

## Credits
* [survfate](https://twitter.com/survfate) `@suRvFate#RyZ3N`
* [Sprayxe](https://twitter.com/Sprayxe_) `@MarcelWRLD#0999`
* [Speeedyyyy](https://twitter.com/Speeedyyyytv) `@Pilica#8525`
* [RumbleMike](https://twitter.com/RumbleMikee) `@RumbleMike#5406` (API Documentation)

## Dependencies
* [Axios](https://www.npmjs.com/package/axios)
* [TypeScript](https://www.npmjs.com/package/typescript)
* [QueryString](https://www.npmjs.com/package/querystring)
npm package: @survicate/braze-bridge-npm
Description: A JavaScript bridge that enables the integration between Braze In-App Messages (IAM) and Survicate surveys by handling iframe clipping and positioning
Author: Survicate
Latest version: 1.0.3

# @survicate/braze-bridge-npm

A JavaScript bridge that enables the integration between Braze In-App Messages (IAM) and Survicate surveys by handling iframe clipping and positioning.

## Overview

This package provides a solution for allowing user interaction with the underlying page while Braze In-App Messages (IAM) Survicate Surveys are displayed. It automatically detects Braze IAM iframes and applies dynamic clipping to create transparent areas that enable page interaction. 

**Note: This solution is specifically designed for web platforms and does not provide this functionality for mobile SDKs (iOS/Android), which also support in-app messages.**

## Features

- **Automatic iframe detection**: Finds Braze IAM iframes using CSS selectors
- **Dynamic clipping**: Applies `clip-path` CSS properties to iframes based on survey positioning
- **Message handling**: Listens for positioning messages from Survicate surveys
- **Responsive support**: Handles window resize events to maintain proper clipping
- **Debug mode**: Optional debug logging for development and troubleshooting
- **Cleanup**: Proper resource cleanup and event listener removal

## Installation

```bash
npm install @survicate/braze-bridge-npm
```

## Usage

### Basic Setup

```javascript
import { initBrazeBridge, destroyBrazeBridge } from '@survicate/braze-bridge-npm';

// Initialize the bridge
initBrazeBridge();

// Clean up when done
destroyBrazeBridge();
```

### With Debug Mode

```javascript
import { initBrazeBridge } from '@survicate/braze-bridge-npm';

// Initialize with debug logging enabled
initBrazeBridge({
  debug: true
});
```

### TypeScript Support

```typescript
import { initBrazeBridge, destroyBrazeBridge, BrazeBridgeConfig } from '@survicate/braze-bridge-npm';

const config: BrazeBridgeConfig = {
  debug: false
};

initBrazeBridge(config);
```

## How It Works

1. **Initialization**: The bridge sets up event listeners for window messages and resize events
2. **Iframe Detection**: Uses a MutationObserver to detect when Braze IAM iframes are added to the DOM
3. **Message Handling**: Listens for `sv__rect` messages from Survicate surveys containing positioning data
4. **Clipping Application**: Applies CSS `clip-path` properties to the iframe based on the received positioning data
5. **Responsive Updates**: Re-applies clipping when the window is resized

## API Reference

### Functions

#### `initBrazeBridge(config?: BrazeBridgeConfig): void`

Initializes the Braze bridge with optional configuration.

**Parameters:**
- `config` (optional): Configuration object
  - `debug?: boolean` - Enable debug logging (default: `false`)

#### `destroyBrazeBridge(): void`

Cleans up the bridge, removes event listeners, and resets iframe styles.

### Types

#### `BrazeBridgeConfig`

```typescript
interface BrazeBridgeConfig {
  debug?: boolean;
}
```

## License

MIT © Survicate