open-index/open-npm huggingface dataset:
npm package: @linkfuture/cropper
Description: Freehand image cropper
Author: Cyokin Zhang
Latest version: 0.0.13

# LF Freehand image cropper
<span class="badge-npmversion"><a href="https://npmjs.org/package/@linkfuture/cropper" title="View this project on NPM"><img src="https://img.shields.io/npm/v/@linkfuture/cropper.svg" alt="NPM version" /></a></span>
<span class="badge-npmdownloads"><a href="https://npmjs.org/package/@linkfuture/cropper" title="NPM Download"><img src="https://img.shields.io/npm/dm/@linkfuture/cropper.svg" alt="NPM Download" /></a></span> 
<span class="badge-npmlicense"><a href="#license" title="License"><img src="https://img.shields.io/npm/l/@linkfuture/cropper.svg?style=flat-square" alt="License" /></a></span>  
Freehand image cropper built with HTML5 canvas  
## Demo
https://cyokin.github.io/lf-freehand-cropper/ 
![Alt Text](demo/cropper.gif)
## Project setup
```
    npm install @linkfuture/cropper
    import cropper from '@linkfuture/cropper';
    let cropper = new Cropper("canvas",option); //canvas id or canvas object
    cropper.setImage("<backgaround image source>");//backgaround image source, url or base64 image string
    cropper.getImage(); //get image source
    cropper.startPen(option); //start crop by using pen 
    cropper.startRectangle(option); //start draw a rectangle for cropping 

    cropper.getPos();   //get position list of object,  which related to the image
    cropper.clear();    //clear all drawing, but for the image
    cropper.destroy();    //clear all drawing and image, destory paper objects
    cropper.crop(imgPos);  //get croppered image by passing image position, which given by cropper.getPos()
    cropper.draw(points,option);  //draw sharp by given points, options.onDrawEnd(path) event.
    cropper.options;  //get or set options
    cropper.enableFullMove(); // enable full move model, any drawing object will be moved or zoom with the image. 
    cropper.disableFullMove(); // disable full move model, image and drawing object will be moved or zoom by selected 
    cropper.objects[1].getPos() //get object position, which related to the image
    cropper.objects[1].move //boolean, moveable
    cropper.objects[1].zoom //boolean, zoomable
    cropper.objects[1].locked //boolean, can't select and move
    cropper.objects[1].selectedColor //color when selected
    cropper.objects[1].strokeColor //color for pen 
```
### Options
```
    move:true   //element moveable
    select:true //element selectable
    zoom:true   //element zoomable
    fullZoom:true   //entire object zoomable
    strokeColor:"#39f"  //color for pen
    selectedColor:null  //color for selected object 
    fillColor:new Color(0,0,0,0.1) //color for fill object
    onSelected:(obj)=>{}   //event when selected object
    onDrawEnd:(path)=>{}    //event when draw end
```
### Compiles and minifies for production
```
    npm run release //generate cropper.min.js
    npm run start   //start local demo
```

### Freehand image cropper release package
download [here](lib/lf-cropper.min.js)
npm package: @linkiez/chatwoot-sdk
Description: TypeScript SDK (ESM) to consume the Chatwoot API.
Latest version: 1.0.1

# Chatwoot SDK (TypeScript, ESM)

TypeScript SDK (ESM) to consume the Chatwoot API.

## Highlights

- ESM-first package with TypeScript typings
- Typed resources for Chatwoot endpoints (Application API + Client API)
- Test suite (Jest) to validate request URLs/methods/headers

## Requirements

- Node.js (recommended: Node 20+)
- This package is ESM (`"type": "module"`)

## Installation

### From npm

```bash
yarn add @linkiez/chatwoot-sdk
```

### From GitHub (git + tag)

```bash
yarn add @linkiez/chatwoot-sdk@github:linkiez/ChatwootSDK#v1.0.0
```

## Usage

```ts
import { ChatwootClient } from '@linkiez/chatwoot-sdk';

const client = new ChatwootClient({
  baseUrl: 'https://app.chatwoot.com',
  apiAccessToken: process.env.CHATWOOT_TOKEN!,
});

const me = await client.profile.get();
```

## Scripts

- `yarn test`
- `yarn build`
- `yarn typecheck`
- `yarn release` (semantic-release)

## Release workflow

Releases are automated via `semantic-release` on pushes to:

- `main` (stable)
- `beta` (prerelease)
- `alpha` (prerelease)

The GitHub Actions workflow runs build + release and publishes to npm.
npm package: @linkiez/whatsapp-cloud-api-sdk
Description: SDK TypeScript (ESM) para WhatsApp Cloud API.
Latest version: 1.1.0

# WhatsApp Cloud API SDK

SDK em TypeScript (ESM) para consumir a WhatsApp Cloud API (Meta).

## Instalação

```bash
yarn add @linkiez/whatsapp-cloud-api-sdk
```

## Uso

```ts
import { WhatsAppClient } from '@linkiez/whatsapp-cloud-api-sdk';

const client = new WhatsAppClient({
  apiVersion: 'v21.0',
  phoneNumberId: process.env.WHATSAPP_PHONE_NUMBER_ID!,
  accessToken: process.env.WHATSAPP_ACCESS_TOKEN!,
});

await client.sendTextMessage({
  to: '5511999999999',
  text: 'Olá!',
});
```

## Scripts

- `yarn test`
- `yarn build`
- `yarn release` (usa semantic-release)
npm package: @linkinlog/reloader
Description: Tool to automatically reload/redirect the browser after a given time, with an overlay to allow for user intervention.
Author: Linkinlog
Latest version: 0.1.0

# Reloader

A simple utility to reload a web page after a certain period of inactivity.

## Usage
Check the [example.html](examples/index.html) for a simple example.
```javascript
import { Reloader } from "../reloader.js";

// Initialize with custom options
Reloader.init(
  30,     // (countTillWarn) Number of seconds until warning message is shown
  300,    // (countTillReload) Number of seconds until page reloads
  1000,   // (countIntervalMs) Interval in milliseconds to check for activity
  "",     // (warningMsg) Custom warning message (optional)
);
```

## Features
 - Monitors user activity and reloads the page after a specified period of inactivity
 - Customizable warning message and time limits
 - Simple and lightweight

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