open-index/open-npm huggingface dataset:
npm package: @kirigaya/openclaw-ddg-search
Description: DuckDuckGo 网页搜索与网页内容提取插件，以 CLI 形式提供（非 Agent 工具），TUI 可配置是否暴露
Author: LSTM-Kirigaya
Latest version: 1.0.0

# openclaw-ddg-search

[OpenClaw](https://openclaw.ai) 的 **DuckDuckGo 网页搜索与内容提取**插件。以 **CLI 命令**形式提供，**不注册 Agent 工具**。

## 功能

- `openclaw ddg-search search <query>`：根据关键词在 DuckDuckGo 搜索，返回 N 个结果
- `openclaw ddg-search get-page <url>`：获取网页主要内容并输出 Markdown

## 安装

```bash
openclaw plugins install @kirigaya/openclaw-ddg-search
```

本地开发：

```bash
openclaw plugins install ./openclaw-ddg-search
```

## TUI 配置

在 OpenClaw 配置（TUI 或 `openclaw.json`）中，`plugins.entries.openclaw-ddg-search.config`：

| 参数 | 说明 | 默认 |
|------|------|------|
| enableWebsearch | 是否暴露 `search` CLI 子命令 | true |
| enableGetWebPageMarkdown | 是否暴露 `get-page` CLI 子命令 | true |
| websearchTimeout | 搜索超时（毫秒） | 15000 |
| pageLoadTimeout | 网页加载超时（毫秒） | 15000 |

当某项为 `false` 时，对应 CLI 子命令不会注册。

## 使用

```bash
# 搜索
openclaw ddg-search search "OpenClaw 插件开发"
openclaw ddg-search search "TypeScript" --limit 5

# 获取网页 Markdown
openclaw ddg-search get-page "https://example.com/article"
```

## Agent 调用

Agent 需通过 **exec** 工具执行：

```
openclaw ddg-search search "关键词"
openclaw ddg-search get-page "https://..."
```

需在 Agent 配置中允许 `exec` 工具，并确保 `openclaw` 可执行。

## 前置条件

- 需安装 **Chrome 浏览器**（Playwright 使用系统 Chrome）
- 或运行 `npx playwright install chromium` 安装 Chromium

## License

MIT © [LSTM-Kirigaya](https://github.com/LSTM-Kirigaya)
npm package: @kirill-markin/mcp-screenshots-cursor-ide
Description: MCP Screenshot Server for Cursor IDE with automatic clipboard integration
Author: Kirill Markin
Latest version: 1.0.0

# MCP Cursor Screenshot Server

A [Model Context Protocol (MCP)](https://github.com/modelcontextprotocol/mcp) server implementation specifically designed for Cursor IDE integration. This server not only captures screenshots of web pages or local HTML files but also automatically copies them to your clipboard and simulates paste action (Ctrl+V/Cmd+V) to instantly insert them into your active Cursor chat.

## Features

- Capture screenshots of any web page (HTTP/HTTPS URLs) or local HTML file (file:/// URLs)
- Optimized image processing for better quality and smaller file sizes
- Seamless Cursor IDE integration with automatic clipboard handling
- Automatic paste simulation (Ctrl+V on Windows/Linux, Cmd+V on macOS)
- Configurable full-page screenshot option
- Built on Puppeteer and Chrome for reliable rendering

## Requirements

- Node.js (version 18 or higher recommended)
- Chrome/Chromium browser installed on your system
- Operating system with clipboard support

## Installation

```bash
# Install globally
npm install -g @kirill-markin/mcp-screenshots-cursor-ide@latest

# Or install locally in your project
npm install @kirill-markin/mcp-screenshots-cursor-ide@latest
```

## Configuring with Cursor IDE

Add globaly in Cursor IDE settings or locally in your project to your `~/.cursor/mcp.json` file:

```json
{
  "mcpServers": {
    "screenshot": {
      "command": "npx",
      "args": [
        "@kirill-markin/mcp-screenshots-cursor-ide@latest"
      ]
    }
  }
}
```

## Usage

### As an MCP Tool

This server implements the MCP protocol's tool interface, exposing a `take_screenshot` tool with the following parameters:

```typescript
{
  url: string;       // URL to capture (http://, https://, or file:///)
  fullPage?: boolean; // Capture full scrollable page (default: false)
}
```

### Running the Server

```bash
# If installed globally
mcp-screenshots-cursor-ide

# If installed locally
npx mcp-screenshots-cursor-ide
```

### Manual Testing

The package includes a test script for manual screenshot testing:

```bash
# Take a screenshot of a specific URL
npx @kirill-markin/mcp-screenshots-cursor-ide@latest/mcp-screenshots-cursor-ide-test https://example.com

# Take a full-page screenshot
npx @kirill-markin/mcp-screenshots-cursor-ide@latest/mcp-screenshots-cursor-ide-test https://example.com --full-page
```

## Development

```bash
# Build the project
npm run build

# Watch mode (for development)
npm run watch
```

## How It Works

1. The server launches a headless Chrome instance using chrome-launcher
2. It navigates to the specified URL using Puppeteer
3. After the page is fully loaded, it captures a screenshot
4. The image is processed with Sharp for optimization
5. The screenshot is copied to the system clipboard
6. A paste command (Ctrl+V or Cmd+V) is automatically simulated to instantly paste the image into your active Cursor chat

## License

[MIT](LICENSE)
npm package: @kirill.konshin/agents
Description: AI Agent rules and configuration for monorepos
Author: Kirill Konshin
Latest version: 0.0.2

# @kirill.konshin/agents

AI Agent rules and configuration for monorepos. Provides a standardized set of coding conventions, patterns, and best practices that AI coding assistants can use.

## Installation

```bash
npm install @kirill.konshin/agents --save-dev
# or
yarn add @kirill.konshin/agents --dev
```

## Usage

### Option 1: Prepare Script (Recommended)

Add to your `package.json`:

```json
{
    "scripts": {
        "prepare": "agents init"
    }
}
```

This will automatically generate/update `AGENTS.md` when:

- Running `npm install` / `yarn install`
- After cloning the repository

### Option 2: Manual Generation

```bash
# Generate AGENTS.md (skips if exists and wasn't generated by this tool)
npx agents init

# Force update AGENTS.md
npx agents update
```

## How It Works

The CLI combines all markdown rule files from the package into a single `AGENTS.md` file in your project root. This file is recognized by AI coding assistants (like Augment, Cursor, GitHub Copilot, etc.) and used to understand your project's conventions.

### Generated File

The generated `AGENTS.md` includes:

- A marker comment to identify it was generated by this tool
- All rules from the package, separated by horizontal rules
- A section for custom project-specific rules

### Skipping Existing Files

If `AGENTS.md` already exists and wasn't generated by this tool, the `init` command will skip it to avoid overwriting your custom rules. Use `update` to force regeneration.

## Included Rules

| File               | Description                            |
| ------------------ | -------------------------------------- |
| `01-agents.md`     | Task management and build verification |
| `02-changesets.md` | Changesets workflow for versioning     |
| `03-turbo.md`      | Turborepo patterns and conventions     |
| `04-typescript.md` | TypeScript coding conventions          |
| `05-testing.md`    | Vitest testing patterns                |
| `06-style.md`      | General coding style guidelines        |

## Customization

### Adding Project-Specific Rules

The generated `AGENTS.md` includes a "Custom Rules" section at the bottom. Add your project-specific rules there - they won't be overwritten on updates.

### Using with .augment/rules

If you use Augment's `.augment/rules/` directory, you can reference the package rules and add repo-specific extensions:

```markdown
# TypeScript

General TypeScript rules are provided by `@kirill.konshin/agents` package.
See: `node_modules/@kirill.konshin/agents/rules/04-typescript.md`

# Repo-Specific

Additional rules specific to this repository...
```

## Versioning

When you update `@kirill.konshin/agents`, run `npx agents update` to regenerate `AGENTS.md` with the latest rules.

## License

MIT
npm package: @kirill.konshin/electron
Description: Utilities
Author: Kirill Konshin
Latest version: 0.0.2

# Electron Utils

# `createWindow`

```js
import { createWindow } from '@kirill.konshin/utils/electron';

const window = createWindow({
    title: 'My App',
    width: 800,
    height: 600,
});
```
npm package: @kirill.konshin/eslint-config-next-custom
Description: ```bash $ yarn add -D eslint prettier @kirill.konshin/eslint-config-next-custom husky lint-staged ```
Author: Kirill Konshin
Latest version: 0.5.2

# ESLint + Prettier + Lint Staged + Husky

## Installation

```bash
$ yarn add -D eslint prettier @kirill.konshin/eslint-config-next-custom husky lint-staged
```

### PNPM

https://eslint.org/docs/latest/use/getting-started#manual-set-up

```dotenv
auto-install-peers=true
node-linker=hoisted
```

## Settings

`eslint.config.mjs`:

```js
import { defineConfig } from 'eslint/config';
import customConfig, { nextPlugin, includeIgnoreFile } from '@kirill.konshin/eslint-config-next-custom';

export default defineConfig([
    ...customConfig,
    {
        files: ['**/*.{js,jsx,ts,tsx}'],
        plugins: {
            next: nextPlugin,
        },
        settings: {
            next: {
                rootDir: process.cwd() + '/path/to/next-app',
            },
        },
    },
    {
        name: 'Custom rules',
        rules: {
            // overrides
        },
    },
    includeIgnoreFile(import.meta.url, '.gitignore'),
    includeIgnoreFile(import.meta.url, '.prettierignore'),
]);
```

`.prettierrc.mjs`:

```js
import { prettier } from '@kirill.konshin/eslint-config-next-custom';
export default prettier;
```

or

```js
import { prettier } from '@kirill.konshin/eslint-config-next-custom';

export default {
    ...prettier,
    // overrides
};
```

`package.json`:

```json5
{
    scripts: {
        eslint: 'eslint --fix --concurrency=auto --cache --cache-location node_modules/.cache/eslint', // to see files use --debug
        prettier: 'prettier --write --log-level=warn --ignore-path .gitignore --ignore-path .prettierignore', // to see files use --log-level=log
        'lint:all': 'yarn eslint . && yarn prettier .',
        'lint:staged': 'lint-staged',
    },
}
```

## IDEA settings:

- Eslint: `**/*.{js,jsx,ts,tsx,cjs,cts,mjs,mts,htm,html,md,mdx,vue}`
- Prettier: `{**/*}.{js,jsx,ts,tsx,cjs,cts,mjs,mts,htm,html,md,mdx,css,scss,sass,less,yml,yaml,json}`

## Lint Staged

`.lintstagedrc.mjs`

```js
import { listStagedConfig } from '@kirill.konshin/eslint-config-next-custom';
export default listStagedConfig();
```

## Husky

`package.json`:

```json5
{
    scripts: {
        prepare: 'husky || next types || true',
    },
}
```

`.husky/pre-commit`:

```bash
#!/bin/zsh
source ~/.zshrc # for VSCode terminal
yarn lint:staged
```

## Issues

- ESLint 9
    - [x] https://github.com/microsoft/rushstack/issues/4635 Failed to patch ESLint because the calling module was not recognized
    - [x] https://github.com/microsoft/rushstack/issues/4965 Failed to patch ESLint because the calling module was not recognized
- ESLint 10
    - [ ] https://github.com/vercel/next.js/issues/89764 TypeError: Error while loading rule 'react/display-name': contextOrFilename.getFilename is not a function
npm package: @kirill.konshin/react
Description: Utilities
Author: Kirill Konshin
Latest version: 0.0.5

# `useFetch`

```tsx
import { useEffect } from 'react';
import { useFetch } from '@kirill.konshin/react';

const [data, actionFn, isPending, error] = useFetch(async (args) => {
    return callToBackend(args);
}, defaultValue);

useEffect(() => {
    actionFn({ id: 1 });
}, []);
```

```tsx
import { useEffect } from 'react';
import { useFetch } from '@kirill.konshin/react';

const dataRef = useRef(data);

const [data, actionFn, isPending, error] = useFetch(async (args) => {
    const data = await callToBackend(args);
    return [...dataRef.current, data];
}, defaultValue);

useEffect(() => {
    dataRef.current = value;
}, [data]);

useEffect(async () => {
    await actionFn({ id: 1 });
    await actionFn({ id: 2 });
    await actionFn({ id: 3 });
}, []);
```

```tsx
import { useEffect } from 'react';
import { useFetch } from '@kirill.konshin/react';

const [data, actionFn, isPending, error] = useFetch(
    // first function has to be synchronous, second can be async
    (args) => async (oldData) => {
        const data = await callToBackend(args);
        return [...oldData, data];
    },
    defaultValue,
);

useEffect(async () => {
    await actionFn({ id: 1 });
    await actionFn({ id: 2 });
    await actionFn({ id: 3 });
}, []);
```
npm package: @kirill.konshin/tailwind
Description: Utilities
Author: Kirill Konshin
Latest version: 0.0.2

# Usage

https://tailwindcss.com/docs/detecting-classes-in-source-files#explicitly-registering-sources

```css
@import 'tailwindcss';
@source "../node_modules/@kirill.konshin/utils/tailwind";
```
npm package: @kirill.konshin/utils
Description: Utilities
Author: Kirill Konshin
Latest version: 0.0.20

# Installation

This is a re-export of all other utils packages.

```bash
$ npm install @kirill.konshin/utils
```

```ts
// moduleResoliution: nodenext
import { createWindow } from '@kirill.konshin/utils/electron';

// moduleResoliution: node
import { createWindow } from '@kirill.konshin/utils/dist/electron';
```

# Building

https://jakeginnivan.medium.com/options-for-publishing-typescript-libraries-9c37bec28fe

```
  'yarn build:bare': '4.7',
  'yarn build:vite': '4.0',
  'yarn build:rollup': '4.0',
  'yarn build:tsup': '10.1',
  'yarn build:unbuild': '4.5'
  'yarn build:rslib': '3.9'
```

- `tsup`
    - slow
    - ✅ Minimal config
- `swc` + `tsc`
    - ❌ A bit slower than rollup/vite
    - ⚠️ Lots of configs
- `rollup+swc`
    - ⚠️ Quirks with watch mode
    - ⚠️ Seem to reemit all files all the time
- `vite`
    - ✅ Fast
    - ✅ Comes with `vitest` (reasoning https://youtu.be/w9xQRJXKrV0)
    - ✅ Comes with Storybook plugin
    - ⚠️ Based on Rollup, inherits its quirks
    - ⚠️ Awkward configuration, half Vite half Rollup
- `rslib` aka `rsbuild`, from MF authors
    - ✅ Fast
    - ✅ Minimal config
    - ⚠️ Something wrong with the types
- `unbuild`
    - ❌ Slower than vite/rollup+swc
    - ⚠️ Based on Rollup, inherits its quirks
    - ✅ Minimal config
- `bun`
    - ❌ DTS is slow
    - ❌ Build failed
    - ❌ Does not work as standalone bundler
- `turbopack`
    - ❌ Not yet available outside Next.js https://turbo.build/pack/docs#quickstart
- https://qwik.dev/
- https://tsdx.io/ Jared Palmer, I know him
    - ❌ Dead project

# TODO

- [ ] https://github.com/imjuni/ctix/blob/master/doc/IN_DEPTH_GEN_STYLE.md Generate with named exports
npm package: @kirill.konshin/worker
Description: Worker Utilities
Author: Kirill Konshin
Latest version: 0.0.2

# WRPC

TODO

- [ ] Add to readme https://stackoverflow.com/questions/77727664/how-to-get-returned-value-from-async-generator-when-using-for-await
- [ ] Value passed to next are ignored https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/AsyncGenerator/next#sending_values_to_the_generator

```mermaid
sequenceDiagram
    box Main
    participant Code
    participant Caller
    end
    box Worker
    participant Worker
    participant Resolver
    end

    %% autonumber

    Code->>Caller: caller.generator(payload)

    Caller-->>Code: iterator & promise

    Code->>Code: Start main CONSUMER loop

    Code->>Caller: iterator[Symbol]()

    Caller->>Caller: Start replica GENERATOR loop

    Code->>Caller: iterator.next()

    Caller->>Worker: postMessage(payload)

    Worker->>Resolver: resolver(payload)

    Resolver-->>Worker: iterator

    Worker->>Worker: Start replica CONSUMER loop

    Worker->>Resolver: iterator[Symbol]()

    Resolver->>Resolver: Start GENERATOR loop

    rect rgb(232, 244, 248)

        loop Synchronized iteration
            Worker->>+Resolver: iterator.next(payload)

            Resolver-->>-Worker: yield value

            Worker-->>Caller: postMessage(value, done=false)

            Note over Worker: Wait for ACK or ABORT

            Caller-->>Code: yield value

            Code->>Caller: iterator.next(nextPayload)

            Caller->>Worker: postMessage(ack, nextPayload)
        end

    end

    break Break or AbortSignal (maybe)
        Code-->>Code: Loop exits
        Code->>Caller: signal.abort()

        Caller-->>Caller: Loop exits

        Caller->>Worker: postMessage(abort)

        Worker-->>Worker: Loop exits via Break

        Resolver-->>Resolver: Loop exits
    end

    opt Occurs on Error
        Resolver-->>Worker: throw Error

        Worker-->>Caller: postMessage(error, done=true)

        Caller-->>Code: throw Error
    end

    Resolver-->>Worker: return value

    Worker-->>Caller: postMessage(value, done=true)

    Caller-->>Code: return value
```
npm package: @kirill.malyhin/vue-tags-input
Description: A tags input component for VueJS with autocompletion, custom validation, templating and much more
Author: Johannes Munari
Latest version: 2.1.3

# vue-tags-input

A tags input component for VueJS with autocompletion, custom validation, templating and much more

[Demo & Docs](http://www.vue-tags-input.com)

## Features

* No dependencies
* Custom validation rules
* Hooks: Before adding, Before deleting ...
* Edit tags after creation
* Fast setup
* Works with Vuex
* Small size: 34kb minified (css included) | gzipped 9kb
* Autocompletion
* Many customization options
* Own templates
* Delete tags on backspace
* Add tags on paste
* Examples & Docs

## Install

NPM
```
npm install @johmun/vue-tags-input
```

CDN
```
<script src="https://unpkg.com/@johmun/vue-tags-input/dist/vue-tags-input.js"></script>
```

## Usage

```html
<template>
  <div>
    <vue-tags-input
      v-model="tag"
      :tags="tags"
      @tags-changed="newTags => tags = newTags"
    />
  </div>
</template>
```

```javascript
<script>
import VueTagsInput from '@johmun/vue-tags-input';

export default {
  components: {
    VueTagsInput,
  },
  data() {
    return {
      tag: '',
      tags: [],
    };
  },
};
</script>
```

## License

[MIT](https://opensource.org/licenses/MIT)

Copyright (c) 2019 Johannes Munari
npm package: @kirillkostyu/create-structure-fsd-react-native
Description: create-structure-fsd/react-native is a powerful command-line tool designed for developers using the Feature-Sliced Design (FSD) architecture in React applications. This library simplifies the process of structuring projects by providing easy-to-use script
Author: Kostyu Kirill
Latest version: 1.0.0

# Feature-Sliced Design Library

[![npm version](https://img.shields.io/npm/v/create-structure-fsd.svg)](https://www.npmjs.com/create-structure-fsd)
[![license](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)

## Описание

Feature-Sliced Design (FSD) - это структурный подход к разработке фронтенд-приложений, сосредоточенный на организации кода в зависимости от бизнес-функций. Эта библиотека предоставляет инструменты для создания и управления структурой FSD в ваших проектах.

## Установка

```sh
npm install create-structure-fsd/react-native
```
## Использование

После установки вы можете использовать библиотеку для создания структуры FSD и компонентов в вашем проекте.

### Примеры команд

1. Создание структуры FSD

Для создания базовой структуры вашего проекта выполните следующую команду:
```sh
fsd createStructure
```
2. Создание компонента

Вы можете создать компонент с помощью следующей команды:
```sh
fsd createComponent Component TestComponent
```
Component - тип компонента, который Вы хотите создать (Asset/Component/Util/Hook/Screen ...)
TestComponent - имя компонента

## API

### createStructureFSD()

Эта функция создает базовую структуру проекта в соответствии с принципами FSD.

### createComponent(name)

Эта функция создает новый компонент с указанным именем в соответствующей папке структуры FSD.

#### Параметры
- type: string - тип компонента, который Вы хотите создать (Asset/Component/Util/Hook/Screen ...)
- name: string - Имя компонента, которое должно быть создано.

## Примеры

### Создание структуры проекта
const createStructureFSD = require('your-library-name/createStructureFSD');

createStructureFSD();
### Создание компонента
const createComponent = require('your-library-name/createComponent');

createComponent('Component', 'MyNewComponent');
## Лицензия

Этот проект лицензирован под лицензией MIT. См. файл [LICENSE](LICENSE) для подробной информации.

## Сотрудничество

Если вы хотите внести свой вклад, пожалуйста, сначала создайте форк репозитория. Затем вы можете создать pull request с вашими изменениями.

## Связь

Если у вас есть вопросы или рекомендации, не стесняйтесь обратиться через [GitHub Issues](https://github.com/kostiukirill/create-structure-fsd/issues) или [отправить мне сообщение](https://github.com/username).
npm package: @kirillkuzmin/my-vue
Description: Vue.js Component Library
Author: Kirill Kuzmin
Latest version: 1.2.25

# my-vue

<a href="https://www.npmjs.com/package/@kirillkuzmin/my-vue">
  <img src="https://img.shields.io/npm/v/@kirillkuzmin/my-vue.svg?style=flat-square" alt="Version">
</a>
<a href="https://github.com/kirillkuzmin/my-vue/blob/master/LICENSE">
  <img src="https://img.shields.io/npm/l/@kirillkuzmin/my-vue.svg?style=flat-square" alt="License">
</a>

> Vue.js 2.0 component library.

## Install

```
npm install @kirillkuzmin/my-vue
```

```
yarn add @kirillkuzmin/my-vue
```

## Quick Start

```javascript
import Vue from 'vue';
import MyVue from '@kirillkuzmin/my-vue';
import '@kirillkuzmin/my-vue/dist/my-vue.min.css';

Vue.use(MyVue);
```

## License

MIT
npm package: @kirillsh/demo-package
Description: Sample package: Node.js for beginners
Author: Kirill Shapoval
Latest version: 1.1.0

# Sample package: Node.js for beginners

This is a smample package to learn how to publish packages to npm.

## Installation

```bash
npm install @kirillsh/demo-package
```

## Usage

```js
import { sum, multiply } from '@ulisesgascon/demo-package';
console.log(sum(1, 2));
console.log(multiply(5, 2));
```
npm package: @kirillvakalov/ghost-cursor-playwright
Description: Move your mouse like a human in playwright or generate realistic movements on any 2D plane
Author: reaz
Latest version: 2.0.5

# ghost-cursor-playwright
**Fork of https://github.com/reaz1995/ghost-cursor-playwright with `playwright-core` in `peerDependencies`.**


Modification of actual ghost-cursor for puppeteer, with more functionality and rewrite to work well with playwright.
Note! target elements rendered in the DOM will be scrolled vertically and horizontally to be visible in viewport

### Download

```shell
git clone https://github.com/reaz1995/ghost-cursor-playwright.git cursor
cd cursor
npm install
```

example of usage in src/example.ts
to run example use

```shell
npm run example
```

for wsl2 don't forget to set up display

### Download as package

```shell
npm i ghost-cursor-playwright
```

```typescript
import { createCursor } from 'ghost-cursor-playwright';
or;
const { createCursor } = require('ghost-cursor-playwright');
```

### How to use

Create amd attach cursor to page

```typescript
const cursor = await createCursor(page);
```

manipulate the cursor via:

```typescript
//move actions before execute will keep performing random move (30% chance).
cursor.actions.move(target: string | BoundingBox | Vector, moveOptions?: moveOptions): Promise<void>;

type moveOptions = {
	paddingPercentage?: number;
	waitForSelector?: number;
	waitBeforeMove?: [number, number];
};


cursor.actions.click(clickOptions?: clickOptions, moveOptions?: moveOptions): Promise<void>;

type clickOptions = {
	target?: string | BoundingBox | Vector;
	waitBeforeClick?: [number, number];
	waitBetweenClick?: [number, number];
	doubleClick?: boolean;
};
// if target is given then cursor will use move function before click
// if target is JS path string, then function will check if for sure is on correct target (sometimes rendered objects are covered in viewport by menu bar or dialogs etc.), if false will proceed fallback to native click


```

util functions

```typescript
// actual position of cursor is mounted on window.mousePos, its value can be retrieve by
  cursor.getActualPosOfMouse(): Promise<Vector>;

// actual target of cursor is mounted on window.mouseTarget, to compare target under cursor with given JS PATH selector use:
  cursor.compareTargetOfMouse(selector: string): Promise<boolean>

// random Vector of element
  cursor.getElemBoundingBox(selector: string): Promise<BoundingBox>
  cursor.getRandomPointInsideElem(elemBoundingBox: BoundingBox, paddingPercentage?): Vector

// random Vector of viewport
  cursor.getRandomPointOnViewport(paddingPercentage?): Promise<Vector>
```
npm package: @kirillvakalov/hasura-cli
Description: A package that automatically installs Hasura CLI binary into your project
Author: kirillvakalov
Latest version: 2.48.1

# @kirillvakalov/hasura-cli

An npm package that automatically installs and wraps **Hasura CLI binary** in isolated manner, so you can use it in your project without needing to install it globally.

The package is automatically published (always up-to-date) when a new version of Hasura CLI is released.

This work is significantly inspired by the [hasura-cli](https://www.npmjs.com/package/hasura-cli) package.