open-index/open-npm huggingface dataset:
npm package: @sxyzdev/scrapers
Description: Simple Module All In One Scrapers Untuk Memenuhi Kebutuhan Pengumpulan Data Kamu Dari 50+ Website!
Author: SxyzDev
Latest version: 0.0.5

# @sxyzdev/scrapers

Modern web scraping solution for collecting data from various platforms. Built with performance and ease of use in mind.

![npm](https://img.shields.io/npm/v/@sxyzdev/scrapers) ![GitHub](https://img.shields.io/github/license/SxyzZenith/scrapers)

## Overview

`@sxyzdev/scrapers` provides a collection of reliable scrapers for extracting data from popular websites. Perfect for building automation tools, bots, or any application requiring structured web data.

## Features

- Fast and efficient data extraction
- Built-in rate limiting and request handling
- ESM (ECMAScript Modules) support
- Regularly maintained and updated
- Easy integration with WhatsApp bots
- Minimal dependencies

## Installation

```bash
# Using npm
npm install @sxyzdev/scrapers

# Using yarn
yarn add @sxyzdev/scrapers

# Using pnpm
pnpm add @sxyzdev/scrapers
```

## Quick Start

```javascript
// ESM import
import { instagram, tiktok } from '@sxyzdev/scrapers';

// Instagram post data
const getPost = async () => {
  const data = await instagram.post('https://www.instagram.com/p/example');
  console.log(data);
};

// TikTok video info
const getVideo = async () => {
  const data = await tiktok.video('https://www.tiktok.com/@user/video/123');
  console.log(data);
};
```

## Supported Platforms

Currently supporting data extraction from:
- Instagram
- TikTok
- Twitter
- YouTube
- Facebook
_(More platforms coming soon)_

## Documentation

### Bahasa Indonesia 🇮🇩

`@sxyzdev/scrapers` adalah modul ESM untuk mengumpulkan data dari berbagai platform media sosial dan website populer. Cocok digunakan untuk:
- Bot WhatsApp
- Aplikasi web scraping
- Analisis data media sosial
- Automasi konten

### English 🇬🇧

Detailed documentation for each platform:

#### Instagram
```javascript
import { instagram } from '@sxyzdev/scrapers';

// Get post data
const post = await instagram.post(url);

// Get user profile
const profile = await instagram.user(username);
```

#### TikTok
```javascript
import { tiktok } from '@sxyzdev/scrapers';

// Get video data
const video = await tiktok.video(url);

// Get user info
const user = await tiktok.user(username);
```

## Contributing

Contributions are welcome! Please read our [Contributing Guide](CONTRIBUTING.md) for details on our code of conduct and the process for submitting pull requests.

## License

MIT License - see the [LICENSE](LICENSE) file for details.

## Support

- Report issues on [GitHub](https://github.com/SxyzZenith/scrapers/issues)

## Acknowledgments

Thanks to all contributors who have helped make this project possible.
npm package: @sxyzjsnx/ratelimit.js
Description: rate-limit support any framework backend (express, koa, fastify)
Author: SxyzJsnx
Latest version: 1.0.2

# RATELIMITER.JS

A flexible and lightweight rate limiting middleware for Node.js frameworks.

## Features

- 🚀 Framework agnostic design
- ⚡ High performance with minimal overhead
- 🛡️ Customizable rate limiting strategies
- 📊 Built-in request tracking
- 🔧 Easy configuration and setup

## Supported Frameworks

| Framework  | Status | Version |
|------------|--------|---------|
| Express.js | ✅     | 4.x+    |
| Fastify    | 🔄     | Coming soon |
| Koa        | 🔄     | Coming soon |

## Installation

```bash
npm install @sxyzjsnx/ratelimit.js
```

## Quick Start

```javascript
import express from "express";
import rateLimit from "ratelimit.js";

const app = express();

// Configure rate limiter
const limiter = rateLimit({
   framework: "express",
   max: 100,                    // Maximum requests per window
   windowMs: 15 * 60 * 1000,   // 15 minutes
   cooldownMs: 5 * 60 * 1000,  // 5 minutes cooldown after limit exceeded
   message: "Too many requests, please try again later."
});

// Apply rate limiting middleware
app.use(limiter);

app.get("/", (req, res) => {
   res.status(200).json({
      message: "Hello World!"
   });
});

app.listen(3000, () => {
   console.log("Server running on port 3000");
});
```

## Configuration Options

| Option       | Type     | Default | Description |
|--------------|----------|---------|-------------|
| `framework`  | string   | -       | Target framework ("express") |
| `max`        | number   | 100     | Maximum number of requests per window |
| `windowMs`   | number   | 900000  | Time window in milliseconds (15 min) |
| `cooldownMs` | number   | 300000  | Cooldown period after limit exceeded (5 min) |
| `message`    | string   | "Too many requests" | Response message when limit is exceeded |
| `statusCode` | number   | 429     | HTTP status code for rate limited requests |

## Advanced Usage

### Route-Specific Limits

```javascript
// Strict limit for authentication endpoints
const authLimiter = rateLimit({
   framework: "express",
   max: 5,
   windowMs: 15 * 60 * 1000,
   message: "Too many authentication attempts"
});

// General API limit
const apiLimiter = rateLimit({
   framework: "express",
   max: 100,
   windowMs: 15 * 60 * 1000
});

app.use("/auth", authLimiter);
app.use("/api", apiLimiter);
```

## Error Handling

The middleware handles various scenarios:

- **Rate limit exceeded**: Returns configured status code and message
- **Invalid configuration**: Throws configuration error
- **Framework compatibility**: Validates framework support

## License

MIT © SxyzJsnx.

## Support

- 📚 [Documentation](https://github.com/SxyzJsnx/ratelimit-nodejs)
- 🐛 [Issue Tracker](https://github.com/SxyzJsnx/ratelimit-nodejs/issues)

---

**Note**: This middleware stores rate limit data in memory by default. For production use with multiple server instances, consider implementing a shared storage solution (Redis, database, etc.).
npm package: @sxzz/create
Description: Command-line for creating projects from templates.
Author: Kevin Deng
Latest version: 0.16.0

# @sxzz/create

[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]

Command-line for creating projects from templates.

## Install

```bash
npm i -g @sxzz/create

# Or use [p]npx
npx @sxzz/create
```

## Usage

### Create a project

```bash
create [path]
# e.g: create hello-world
```

### Edit configuration

```bash
# edit the configuration via VSCode, Vim, or Zed.
create edit
```

### Use remote configuration

```bash
create from <url>
# e.g: create from https://raw.githubusercontent.com/sxzz/create/main/example.yaml

# or for short
create from <owner>/<repo>/<branch>/<path>
# e.g: create from sxzz/create/main/example.yaml
```

## Configuration

Most formats of configuration are supported.
The configuration file is located in `$HOME/.config/create.config.[js,mjs,ts,mts,json,yml,yaml]`

[TypeScript Schema](https://github.com/sxzz/create/blob/main/src/types.ts)

URL format: `repo[/subpath][#ref]`. See [examples](https://github.com/unjs/giget#examples).

Run `create config` to modify config.

```yaml
cwd: /Users/your-name/projects # optional, defaults to process.cwd()

git:
  init: true # optional, defaults to true
  add: false

templates:
  - name: Library # must be unique
    # color: '#008800' # optional
    children:
      - name: TypeScript
        color: '#3178c6'
        url: sxzz/node-lib-starter # remote URL or local path
  - name: Web App
    url: xxxxx
    git:
      init: false # overwrite global config
```

## Sponsors

<p align="center">
  <a href="https://cdn.jsdelivr.net/gh/sxzz/sponsors/sponsors.svg">
    <img src='https://cdn.jsdelivr.net/gh/sxzz/sponsors/sponsors.svg'/>
  </a>
</p>

## Credits

- [kecrily/create](https://github.com/kecrily/create) 💖

## License

[MIT](./LICENSE) License © 2022-PRESENT [Kevin Deng](https://github.com/sxzz)

<!-- Badges -->

[npm-version-src]: https://img.shields.io/npm/v/@sxzz/create.svg
[npm-version-href]: https://npmjs.com/package/@sxzz/create
[npm-downloads-src]: https://img.shields.io/npm/dm/@sxzz/create
[npm-downloads-href]: https://www.npmcharts.com/compare/@sxzz/create?interval=30
npm package: @sxzz/prettier-config
Description: Prettier config for @sxzz
Author: Kevin Deng
Latest version: 2.3.1

# @sxzz/prettier-config

[![npm version][npm-version-src]][npm-version-href]
[![npm downloads][npm-downloads-src]][npm-downloads-href]

Prettier config.

## Install

```bash
npm i -D @sxzz/prettier-config
```

## Features

- 2 spaces
- No semicolons
- Single quotes
- Trailing commas
- Ignore common files (`dist`, `pnpm-lock.yaml`...)

## Sponsors

<p align="center">
  <a href="https://cdn.jsdelivr.net/gh/sxzz/sponsors/sponsors.svg">
    <img src='https://cdn.jsdelivr.net/gh/sxzz/sponsors/sponsors.svg'/>
  </a>
</p>

## License

[MIT](./LICENSE) License © 2023-PRESENT [Kevin Deng](https://github.com/sxzz)

<!-- Badges -->

[npm-version-src]: https://img.shields.io/npm/v/@sxzz/prettier-config.svg
[npm-version-href]: https://npmjs.com/package/@sxzz/prettier-config
[npm-downloads-src]: https://img.shields.io/npm/dm/@sxzz/prettier-config
[npm-downloads-href]: https://www.npmcharts.com/compare/@sxzz/prettier-config?interval=30
npm package: @sxzz/vue-repl
Description: Vue component for editing Vue components
Author: Evan You
Latest version: 1.3.3

# @vue/repl

Vue SFC REPL as a Vue 3 component.

## Simple Usage

```vue
<script setup>
import { Repl } from '@vue/repl'
import '@vue/repl/style.css'
</script>

<template>
  <Repl />
</template>
```

## Advanced Usage

```vue
<script setup>
import { watchEffect } from 'vue'
import { Repl, ReplStore } from '@vue/repl'

// retrieve some configuration options from the URL
const query = new URLSearchParams(location.search)

const store = new ReplStore({
  // initialize repl with previously serialized state
  serializedState: location.hash.slice(1),

  // starts on the output pane (mobile only) if the URL has a showOutput query
  showOutput: query.has('showOutput'),
  // starts on a different tab on the output pane if the URL has a outputMode query
  // and default to the "preview" tab
  outputMode: (query.get('outputMode') || 'preview'),

  // specify the default URL to import Vue runtime from in the sandbox
  // default is the CDN link from unpkg.com with version matching Vue's version
  // from peerDependency
  defaultVueRuntimeURL: 'cdn link to vue.runtime.esm-browser.js'
})

// persist state to URL hash
watchEffect(() => history.replaceState({}, '', store.serialize()))

// pre-set import map
store.setImportMap({
  imports: {
    myLib: 'cdn link to esm build of myLib'
  }
})

// use a specific version of Vue
store.setVueVersion('3.2.8')
</script>

<template>
  <Repl :store="store" :showCompileOutput="true" />
</template>
```
npm package: @sy-records/docsify-footnotes
Description: A plugin that supports the use of footnotes in docsify.
Author: sy-records
Latest version: 2.2.2

# docsify-footnotes

[![](https://data.jsdelivr.com/v1/package/npm/@sy-records/docsify-footnotes/badge)](https://www.jsdelivr.com/package/npm/@sy-records/docsify-footnotes)
[![](https://img.shields.io/npm/v/@sy-records/docsify-footnotes.svg?style=flat-square)](https://www.npmjs.com/package/@sy-records/docsify-footnotes)
[![](https://img.shields.io/npm/l/@sy-records/docsify-footnotes)](https://github.com/sy-records/docsify-footnotes/blob/master/LICENSE)

A plugin that supports the use of footnotes in docsify.

一个支持在 docsify 中使用脚注的插件。

## Usage

```html
<script src="//cdn.jsdelivr.net/npm/@sy-records/docsify-footnotes/dist/index.min.js"></script>
```

## Example

```markup
Here's a simple footnote,[^1] and here's a longer one.[^bignote]


[^1]: This is the first footnote.

[^bignote]: Here's one with multiple paragraphs and code.

    Indent paragraphs to include them in the footnote.

    `{ my code }`

    Add as many paragraphs as you like.
```

![](screenshots.png)
npm package: @sy-records/docsify-pangu
Description: A docsify plugin for automatically adding spaces.
Author: sy-records
Latest version: 2.0.3

# docsify-pangu

[![](https://data.jsdelivr.com/v1/package/npm/@sy-records/docsify-pangu/badge)](https://www.jsdelivr.com/package/npm/@sy-records/docsify-pangu)
[![](https://img.shields.io/npm/v/@sy-records/docsify-pangu.svg?style=flat-square)](https://www.npmjs.com/package/@sy-records/docsify-pangu)
[![](https://img.shields.io/npm/l/@sy-records/docsify-pangu)](https://github.com/sy-records/docsify-pangu/blob/master/LICENSE)

A docsify plugin for automatically adding spaces.

一个 docsify 插件：使用 [pangu.js](https://github.com/vinta/pangu.js) 给网页上的中文和英文、数字、符号之间添加空格。

# Usage

```html
<script src="//cdn.jsdelivr.net/npm/@sy-records/docsify-pangu@2"></script>
```
npm package: @sy1ar9/revogrid-column-select
Description: Select column type for RevoGrid system based on revo-dropdown
Author: revolist
Latest version: 2.0.42

# `revogrid-column-select`
Custom column type for [RevoGrid](https://github.com/revolist/revogrid) component based on [revo-dropdown](https://github.com/revolist/revodropdown) library.

<img src="./public/assets/sample.png" alt="Autocomplete dropdown" width="100%" />


## Installation
`npm i @revolist/revogrid-column-select`

## How to use

- Import Select Column type;
- Specify table data;
- Per column specify column type;
- Register your column type;
```js

// do Select class import
import SelectTypePlugin from "@revolist/revogrid-column-select";

const columns = [{
    prop: 'name',
    labelKey: 'label',
    valueKey: 'value',
    source: [
        { label: 'According', value: 'a' },
        { label: 'Over', value: 'b' },
        { label: 'Source', value: 's' }
    ],
    columnType: 'select' // column type specified as 'select'
}];
const rows = [{ name: 'New item' }, { name: 'New item 2' }];

// register column type
const columnTypes = { 'select': new SelectTypePlugin() };

// apply data to grid per your framework approach
<revo-grid source={rows} columns={columns} columnTypes={columnTypes}/>
```

## How to use with static Vanilla JS:

For static sites check this [Sample](https://codesandbox.io/s/revogrid-staticjs-column-jvztc?file=/index.html).
npm package: @sya-ri/echomock
Description: A lightweight and flexible API mocking tool that focuses on accurate response handling
Author: sya-ri
Latest version: 0.2.2

# echomock

[![npm version](https://badge.fury.io/js/@sya-ri%2Fechomock.svg)](https://badge.fury.io/js/@sya-ri%2Fechomock)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

A lightweight and flexible API mocking tool that focuses on accurate response handling. Perfect for testing and development environments.

## Features

- 🔄 **Request Body Echo**: Automatically returns request body as response body
- 🎯 **Dynamic Headers**: Set response headers using `X-ECHOMOCK-RES-<HEADER_NAME>` format
- ⏱️ **Response Delay**: Simulate network latency with `X-ECHOMOCK-DELAY` header
- 📝 **RESTful API**: Manage mocks through simple REST endpoints
- 🚀 **Simple Integration**: Easy to use in any development or testing environment
- 💻 **CLI Support**: Start the server directly with `npx @sya-ri/echomock`
- 📚 **Library Mode**: Use as a library in your TypeScript/JavaScript projects

## Quick Start

### CLI Usage

1. Start the server:
```bash
npx @sya-ri/echomock

# or specify port
npx @sya-ri/echomock 3000
```

2. Register a mock:
```bash
curl -X POST --location "http://localhost:8080/echomock" \
    -H "X-ECHOMOCK-METHOD: GET" \
    -H "X-ECHOMOCK-PATH: /example" \
    -H "X-ECHOMOCK-CODE: 200" \
    -H "X-ECHOMOCK-DELAY: 1000" \
    -H "X-ECHOMOCK-RES-Content-Type: application/json" \
    -d '{ "message": "hello from echomock!!" }'
```

3. Try the mock:
```bash
curl -X GET --location "http://localhost:8080/example"
```

4. Delete a specific mock:
```bash
curl -X DELETE --location "http://localhost:8080/echomock" \
    -H "X-ECHOMOCK-METHOD: GET" \
    -H "X-ECHOMOCK-PATH: /example"
```

5. Delete all mocks:
```bash
curl -X DELETE --location "http://localhost:8080/echomock/all"
```

### Library Usage

1. Install as a dev dependency:
```bash
npm install -D @sya-ri/echomock
```

2. Use in your code:
```typescript
import { serve, registerMock, deleteMock, deleteAllMocks } from "@sya-ri/echomock";

// Start the server
serve(3000);

// Register a mock
await registerMock({
  method: "GET",
  path: "/example",
  code: 200,
  delay: 1000, // Delay response by 1 second
  headers: {
    "Content-Type": "application/json"
  },
  body: new TextEncoder().encode(JSON.stringify({
    message: "hello from echomock!!"
  }))
});

// Delete a specific mock
deleteMock("GET", "/example");

// Delete all mocks
deleteAllMocks();
```

## Use Cases

- **API Testing**: Create predictable test environments
- **Development**: Mock external services during development
- **Integration Testing**: Test API integrations without real endpoints
- **Load Testing**: Simulate various API responses for performance testing
- **Network Simulation**: Test application behavior under different network conditions

## Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

## License

This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.