open-index/open-npm huggingface dataset:
npm package: @love-open-source/ember-resizable-smart-textarea
Description: An Ember addon for resizable textarea input. It also highlights the given text inside it
Author: Venkatesh
Latest version: 1.0.3

@love-open-source/ember-resizable-smart-textarea
==============================================================================

[![Build Status](https://travis-ci.com/RVenkatesh/ember-resizable-smart-textarea.svg?branch=main)](https://travis-ci.com/RVenkatesh/ember-resizable-smart-textarea)

This addon provides a textarea component, that resizes when the text inside it changes. Additionally it also highlights the given string inside the textarea.


Demo
------------------------------------------------------------------------------
Find the [demo](https://rvenkatesh.github.io/ember-resizable-smart-textarea/versions/main/docs/demo) and [documentation](https://rvenkatesh.github.io/ember-resizable-smart-textarea/versions/main/docs/) for this addon [here](https://rvenkatesh.github.io/ember-resizable-smart-textarea/versions/main/).

Compatibility
------------------------------------------------------------------------------

* Ember.js v3.20 or above
* Ember CLI v3.20 or above
* Node.js v10 or above


Installation
------------------------------------------------------------------------------

```
ember install @love-open-source/ember-resizable-smart-textarea
```


Usage
------------------------------------------------------------------------------

To use the smart textarea component in your application, just add the below line. 
```
<ResizableSmartTextarea @value={{this.value}} @highlightText="highlight"/>
```

Arguments
------------------------------------------------------------------------------
| Arg | Default value | Description |
| --- | --- | --- |
| value | ```''``` | Value of the textarea field |
| onChange |  | Listener function for value change. The first argument to the function would be the value |
| highlightText | ```''``` | The string to be highlighted inside the textarea |

Contributing
------------------------------------------------------------------------------

See the [Contributing](https://github.com/RVenkatesh/ember-resizable-smart-textarea/blob/main/CONTRIBUTING.md) guide for details.


License
------------------------------------------------------------------------------

This project is licensed under the [MIT License](https://github.com/RVenkatesh/ember-resizable-smart-textarea/blob/main/LICENSE.md).
npm package: @lovebowls/customelements
Description: Custom Elements library
Latest version: 0.1.1

# @lovebowls/customElements

A collection of custom web elements for LoveBowls applications.

## Installation

```bash
npm install @lovebowls/customElements
```

## Usage

```javascript
import { LinkElement } from '@lovebowls/customElements';

// The element will be automatically registered as 'subscribe-button'
// Use it in your HTML:
<subscribe-button url="https://example.com"></subscribe-button>
```

## Development

```bash
# Install dependencies
npm install

# Run tests
npm test

# Build the project
npm run build

# Development mode with watch
npm run dev
```

## Available Elements

### Subscribe Button

A customizable subscription button element that can be used across LoveBowls applications.

```html
<subscribe-button url="https://example.com"></subscribe-button>
```

Attributes:
- `url`: The URL to navigate to when clicked (defaults to 'https://lovebowls.co.uk/')

## License

MIT
npm package: @lovebowls/leagueelements
Description: League Elements package for LoveBowls
Author: lovebowls.co.uk
Latest version: 0.1.67

# @lovebowls/leagueElements

A modern TypeScript package for managing league elements in LoveBowls.

## Installation

```bash
npm install @lovebowls/leagueElements
```

## Features

- Modern TypeScript implementation
- ESM and CommonJS support
- Tree-shaking friendly
- Comprehensive type definitions
- Built-in testing with Jest
- Full documentation with TypeDoc

## Usage

```typescript
import { BaseLeagueElement } from '@lovebowls/leagueElements';

// Create a new league element
const element = new BaseLeagueElement({
  type: 'match',
  // Add additional properties as needed
});

// Update element data
element.update({
  type: 'updated-match'
});
```

## Development

### Prerequisites

- Node.js >= 18
- npm >= 8

### Setup

1. Clone the repository
2. Install dependencies:
   ```bash
   npm install
   ```

### Available Scripts

- `npm run build` - Build the package
- `npm run test` - Run tests
- `npm run docs` - Generate documentation
- `npm run lint` - Run ESLint
- `npm run format` - Format code with Prettier

### Building

The package builds to both ESM and CommonJS formats:

- ESM: `dist/esm/`
- CommonJS: `dist/cjs/`
- Type definitions: `dist/types/`

## License

MIT
npm package: @loveholidays/keen-slider
Description: The HTML touch slider carousel with the most native feeling you will get.
Author: Eric Beyer
Latest version: 5.2.2

[![npm version](https://badge.fury.io/js/keen-slider.svg)](https://www.npmjs.com/package/keen-slider)
[![Build Status](https://travis-ci.org/rcbyr/keen-slider.svg?branch=release)](https://travis-ci.org/rcbyr/keen-slider)

# keen-slider

[![Rotation](https://keen-slider.io/images/demo1.gif)](https://keen-slider.io/examples/#background-rotation) [![DatePicker](https://keen-slider.io/images/demo2.gif)](https://keen-slider.io/examples/#datepicker)

**keen-slider** is a free library agnostic touch slider
with native touch/swipe behavior and great performance. It comes with
**no dependencies**, **typescript support**, **multitouch support**
and is compatible with
**all common browsers including IE 10**.

## Getting Started

- [Installation](https://keen-slider.io/#installation)
- [API](https://keen-slider.io/api/#api)
- [Examples](https://keen-slider.io/examples/#examples)

## Contributing

If you find a bug or have ideas for better code, I would be grateful for your contribution. Just create an issue or a pull request.
npm package: @lovei/tdweb
Description: Javascript interface for TDLib (telegram library)
Author: Arseny Smirnov
Latest version: 1.0.2

## tdweb - TDLib in a browser

[TDLib](https://github.com/tdlib/td) is a library for building Telegram clients. tdweb is a convenient wrapper for TDLib in a browser which controls TDLib instance creation,
handles interaction with TDLib and manages a filesystem for persistent TDLib data.

For interaction with TDLib, you need to create an instance of the class `TdClient`, providing a handler for incoming updates and other options if needed.
Once this is done, you can send queries to the TDLib instance using the method `TdClient.send` which returns a Promise object representing the result of the query.

See [Getting Started](https://core.telegram.org/tdlib/getting-started) for a description of basic TDLib concepts and a short introduction to TDLib usage.

See the [td_api.tl](https://github.com/tdlib/td/blob/master/td/generate/scheme/td_api.tl) scheme or
the automatically generated [HTML documentation](https://core.telegram.org/tdlib/docs/td__api_8h.html) for a list of all available
TDLib [methods](https://core.telegram.org/tdlib/docs/classtd_1_1td__api_1_1_function.html) and [classes](https://core.telegram.org/tdlib/docs/classtd_1_1td__api_1_1_object.html).
The JSON representation of TDLib API objects is straightforward: all API objects are represented as JSON objects with the same keys as the API object field names in the
[td_api.tl](https://github.com/tdlib/td/blob/master/td/generate/scheme/td_api.tl) scheme. Note that in the automatically generated C++ documentation all fields have an additional terminating underscore
which shouldn't be used in the JSON interface. The object type name is stored in the special field '@type' which is optional in places where type is uniquely determined by the context.
Fields of Bool type are stored as Boolean, fields of int32, int53, and double types are stored as Number, fields of int64 and string types are stored as String,
fields of bytes type are base64 encoded and then stored as String, fields of vector type are stored as Array.
You can also add the field '@extra' to any query to TDLib and the response will contain the field '@extra' with exactly the same value.

## Installation
As usual, add npm tdweb package into your project:
```
npm install tdweb
```

All files will be installed into `node_modules/tdweb/dist/` folder. For now, it is your responsibility to make
those files loadable from your server. For example, [telegram-react](https://github.com/evgeny-nadymov/telegram-react)
manually copies these files into the `public` folder. If you know how to avoid this problem, please tell us.
npm package: @loveindent/process-env-to-appengine
Description: Apply prcoess environnement variables to app.yaml filtered by config.js custom environment variables
Latest version: 1.1.0

# Process env to App Engine
Apply process environment variables to `app.yaml` filtered by **config.js** custom environment variables.

## How to install
```
npm i -D @loveindent/process-env-to-appengine
yarn add -D @loveindent/process-env-to-appengine
```

## Usage
```
Usage: process-env-to-appengine [options] [command]

Options:
  -v, --version            output the version number
  -s, --source [string]    Source app.yaml file to complete with env_variables (default: "./app.yaml")
  -d, --dest [string]      Destination to write file (default: "./dist/app.yaml")
  -p, --prefix [string]    If you have to prefix process env like DEV_HOST add DEV_ to output HOST in app.yaml
  -h, --help               output usage information

Commands:
  apply                    Apply env variables to destination app.yml file
  check                    Check if all environment variables are here, exit process if not
```
npm package: @lovekeqing/captcha
Description: A simple svg captcha generator
Author: lovezhangchuangxin
Latest version: 0.0.8

# @lovekeqing/captcha

[English](./README.md) | [中文](./README.zh.md)

<img src="https://img.shields.io/npm/v/@lovekeqing/captcha.svg" alt="npm version" />

一个简单的 SVG 验证码生成器，支持数字、字母、混合和数学公式类型，可自定义字体、字符集、干扰线等参数。暂时不支持浏览器端。

<div align="center">
  <img src="./example/icon.svg" alt="icon" width="200" />
</div>

## 特性

- 支持多种验证码类型：数字、字母、混合、公式
- 可自定义验证码长度、字符集、忽略字符
- 支持自定义字体（TTF）
- 可设置验证码图片宽高
- 支持设置背景颜色和自动计算字体颜色
- 干扰线数量和宽度可调
- 生成 SVG 格式验证码图片
- 支持 TypeScript 类型提示

## 安装

```sh
pnpm add @lovekeqing/captcha
```

## 使用方法

```ts
import { Captcha } from "@lovekeqing/captcha";

const captcha = new Captcha({
  type: "formula", // 验证码类型，可选："number" | "letter" | "mix" | "formula"
  length: 3, // 验证码长度或公式中数字个数
  noise: 2, // 干扰线数量
});

captcha.generate().then(({ value, svg }) => {
  console.log("验证码值：", value);
  // svg 为验证码图片的 SVG 字符串
});
```

## 配置项

详见 [`CaptchaOptions`](src/types.ts)：

下面所有的配置项均为可选：

- `fontPath`：字体文件路径，支持 ttf
- `type`：验证码类型，"number" | "letter" | "mix" | "formula"，默认 "number"
- `length`：验证码长度，默认 4，公式类型表示数字个数
- `width`/`height`：验证码图片宽高，默认自动计算
- `noise`：干扰线数量，默认 1
- `noiseWidth`：干扰线宽度，默认 0.03 的图片高度
- `chars`：自定义字符集，默认根据 `type` 生成
- `ignoreChars`：忽略的字符集
- `backgroundColor`：背景颜色，默认随机生成

## generate 方法

```ts
captcha.generate(content?: string): Promise<CaptchaResult>
```

`generate` 方法用于生成随机的验证码图片，详见 [`CaptchaResult`](src/types.ts)：

`generate` 方法接受一个可选参数 `content`，用于指定验证码的内容。如果不传入该参数，验证码内容将根据配置项随机生成。

返回一个 Promise 对象，其成功的结果包含以下属性：

- `value`：验证码答案
- `svg`：验证码的 SVG 字符串
- `backgroundColor`：背景颜色
- `width`：宽度，实际生成的验证码图片宽度
- `height`：高度，实际生成的验证码图片高度
- `scale`：缩放，当用户指定的宽高与计算宽高不符时，会按用户指定的宽高进行缩放

## 开发命令

- `pnpm build`：构建项目
- `pnpm test`：运行测试
- `pnpm build:docs`：生成文档
- `pnpm build:all`：测试、构建并生成文档

## 贡献流程

1. Fork 本仓库
2. 创建新分支并进行修改
3. 提交 Pull Request

当项目的管理员审核通过后，您的贡献将被合并到主分支中。

## 许可证

MIT License
npm package: @lovekicher/inject-it
Description: Strong-typed dependency injection for both node.js and browser.
Author: LoveKicher
Latest version: 0.3.0

# inject-it

基于TypeScript强类型的轻量级依赖注入容器，支持node.js和浏览器环境

## 特性

* 支持node.js和浏览器环境
* 非常轻量，除了polyfill，没有其他依赖
* 采用 [reflect-metadata](https://github.com/rbuckton/ReflectDecorators) 通过装饰器为类型声明注入依赖
* 如果`tsconfig.json`中设置`emitDecoratorMetadata`为true，则支持根据tsc 编译器生成的元数据自动获取依赖信息
* 可以通过依赖的接口名称来注入依赖，支持非构造函数和类的依赖，例如普通对象实例
* 支持构造函数注入，通过`@service`装饰器
* 支持属性注入，通过`@autowired`装饰器
* 支持工厂方法和单实例
* 支持模块（插件化）注入，暴露一个安装方法，批量注册依赖
* 依赖异步初始化

## 设计理念

inject-it注册的依赖默认采用Singleton模式，即重复获取同一个类型（接口名或者构造函数），始终返回一个实例。这和一些通常在web服务中使用的IoC容器的默认方式不一样，它们可能默认采用的是Transient或者Scoped模式。

这种设计是 **刻意** 的，目的是为了降低单用户/无用户体系的客户端和web应用使用的复杂度，并且更好地和vue等前端框架进行整合。通常在这些框架中，会有较多的在应用生命周期中始终存在的依赖，并且往往以全局状态的方式进行管理和使用，极少涉及作用域和资源释放。

inject-it希望在这些应用中，执行业务逻辑和获取依赖的代码，交由容器来完成，不再依赖全局对象，同时把UI交互和数据逻辑解耦，使得逻辑可以模块化和封装，提升可维护性和扩展性。
## 使用

> ⚠️ 同一个类，只支持构造函数注入和属性注入中的一种。
  推荐使用构造函数注入，这样该类可以在容器以外的地方手动创建实例

> ⚠️ 注入的参数尽量避免包含值类型(Number, Boolean, BigInt), Array, Symbol和String，使用这些参数可能会带来无法预测的结果

### 构造函数注入

`@service`装饰器的参数为该类构造函数的参数对应的依赖类型的数组，可以是类构造函数或者接口名。数组元素的数量和顺序与构造函数参数一一对应，且参数不能是可选的

```typescript
import { ServiceBuilder, service, autowired } from "@lovekicher/inject-it";


interface TimeoutConfig {
  timeout: number;
}

interface IDataService {
  getData(): Promise<number[]>;
}

// 声明依赖，可以是接口
@service(["TimeoutConfig"])
class DataService implements IDataService {

  private readonly config: TimeoutConfig;
  constructor(config: TimeoutConfig) {
    this.config = config;
  }

  async getData(): Promise<number[]> {
    await new Promise((resolve) => {
      setTimeout(() => {
        resolve();
      }, this.config.timeout);
    });
    return [1, 2, 3];
  }
}

```

### 属性注入

`@autowired`装饰器的参数为该属性对应的依赖类型的构造函数或者接口名

可以将属性声明为`private readonly`。由于js的限制，真正的私有属性（以#开头）无法通过外部写入，请不要注入这些属性。

> ⚠️ 属性注入要求该类有无参构造函数，且构造函数中没有需要清理的副作用代码

```typescript

class DataService implements IDataService {

  @autowired("TimeoutConfig")
  private readonly config!: TimeoutConfig;

  async getData(): Promise<number[]> {
    await new Promise((resolve) => {
      setTimeout(() => {
        resolve();
      }, this.config.timeout);
    });
    return [1, 2, 3];
  }
}

```

### 使用容器

```typescript

// 注册依赖
const container = new ServiceBuilder()
  .instance({ timeout: 1000 }, "TimeoutConfig")
  .constructorInject(DataService, "IDataService")
  .build();

// 使用容器
const service = container.resolve<IDataService>("IDataService");
await service.getData();

```