open-index/open-npm huggingface dataset:
npm package: @kritvit/minesweeper-engine
Description: Game Engine for Minesweeper and Minesweeper-esque games.
Author: Andreas Viklund
Latest version: 1.0.1

# Minesweeper Engine

## Install

    $ npm install @kritvit/minesweeper-engine --save

## Getting Started

    import minesweeperEngine from '@kritvit/minesweeper-engine';

    const gameState = {};

    // 16 rows, 16 columns, 50 traps
    gameState.minesweeperEngine = minesweeperEngine(16, 16, 50);

    gameState.eachItem(item => {

        // Handle each item

    });

    // The methods clear, mark, create and reset will return a new state,
    // use that state to overwrite the previous state.

    gameState.minesweeperEngine = gameState.minesweeperEngine.reset();


## API

### Game methods

    eachItem(cb = function)
    clear(id = string)
    mark(id = string)
    create(rows, cols, traps) or ([rows, cols, traps])
    reset()

### Game properties

    status          // string
    rows            // number
    cols            // number
    items           // array
    markersUsed     // number
    markersRemain   // number
    markersTotal    // number
    itemsCleared    // number
    itemsRemain     // number
    itemsTotal      // number
    status          // string

### Game status strings

    gameover
    completed

### Item status strings

    cleared
    marked
    triggered
    exposed
    missmarked
npm package: @krivega/cancelable-promise
Description: Cancelable abstraction over promise
Author: Krivega Dmitriy
Latest version: 1.1.4

# cancelable-promise

[![npm](https://img.shields.io/npm/v/@krivega/cancelable-promise?style=flat-square)](https://www.npmjs.com/package/@krivega/cancelable-promise)
![npm bundle size](https://img.shields.io/bundlephobia/minzip/@krivega/cancelable-promise?style=flat-square)

Various abstractions over promises

## Install

npm

```sh
npm install @krivega/cancelable-promise
```

yarn

```sh
yarn add @krivega/cancelable-promise
```

## Usage

### cancelablePromise

```js
import cancelablePromise, {
  isCanceledError
} from '@krivega/cancelable-promise/dist/cancelablePromise';

const basePromise = new Promise((resolve, reject) => {
  setTimeout(() => {
    resolve('done');
  }, 5000);
});

const promise = cancelablePromise(basePromise);

promise.cancel();

promise
  .then(() => {
    // will not be called
  })
  .catch(error => {
    if (isCanceledError(error)) {
      console.log('promise is canceled!');
    }
  });
```

### CancelableRequest

```js
import CancelableRequest, {
  isCanceledError
} from '@krivega/cancelable-promise/dist/CancelableRequest';

const request = () =>
  new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('done');
    }, 5000);
  });

const cancelableRequester = new CancelableRequest(request);

const promise1 = cancelableRequest.request();
const promise2 = cancelableRequest.request();

promise1
  .then(() => {
    // will not be called
  })
  .catch(error => {
    if (isCanceledError(error)) {
      console.log('promise is canceled!');
    }
  });
promise1.then(() => {
  console.log('done');
});
```

## API

### CancelableRequest.cancelRequest

```js
const cancelableRequester = new CancelableRequest(request);

const promise = cancelableRequest.request();
cancelableRequest.cancelRequest();

promise
  .then(() => {
    // will not be called
  })
  .catch(error => {
    if (isCanceledError(error)) {
      console.log('promise is canceled!');
    }
  });
```

## Run tests

```sh
npm test
```

## Maintainer

**Krivega Dmitriy**

- Website: https://krivega.com
- Github: [@Krivega](https://github.com/Krivega)

## Contributing

Contributions, issues and feature requests are welcome!<br />Feel free to check [issues page](https://github.com/Krivega/cancelable-promise/issues). You can also take a look at the [contributing guide](https://github.com/Krivega/cancelable-promise/blob/master/CONTRIBUTING.md).

## 📝 License

Copyright © 2020 [Krivega Dmitriy](https://github.com/Krivega).<br />
This project is [MIT](https://github.com/Krivega/cancelable-promise/blob/master/LICENSE) licensed.
npm package: @krivega/eslint-config
Description: `Eslint config` содержит модули, позволяющие применят правила `krivega` `eslint` для проектов, использующих `typescript`, `react` и тестовые фреймворки `jest` и `cypress`
Author: Krivega Dmitriy
Latest version: 1.1.20

# Eslint config

## Описание

`Eslint config` содержит модули, позволяющие применят правила `krivega` `eslint` для проектов, использующих `typescript`, `react` и тестовые фреймворки `jest` и `cypress`

- [`@krivega/eslint-config`](#@krivega/eslint-config)
- [`@krivega/eslint-config/react`](#@krivega/eslint-config/react)
- [`@krivega/eslint-config/jest`](#@krivega/eslint-config/jest)
- [`@krivega/eslint-config/cypress`](#@krivega/eslint-config/cypress)

## Установка

Для установки модуля `@krivega/eslint-config` выполните следующую команду в директории вашего проекта:

`npm`

```bash
npm install @krivega/eslint-config --save-dev
```

`yarn`

```bash
yarn add @krivega/eslint-config --dev
```

## Использование

#### <a name="@krivega/eslint-config"></a> `@krivega/eslint-config`

Необходимо расширить правила `@krivega/eslint-config` в корневом файле `.eslintrc.json`

```json
{
  "extends": ["@krivega/eslint-config"]
}
```

#### <a name="@krivega/eslint-config/react"></a> `@krivega/eslint-config/react`

Необходимо расширить правила `@krivega/eslint-config/react` в корневом файле `.eslintrc.json`

```json
{
  "extends": ["@krivega/eslint-config/react"]
}
```

#### <a name="@krivega/eslint-config/jest"></a> `@krivega/eslint-config/jest`

Необходимо расширить правила `@krivega/eslint-config/jest` в корневом файле `.eslintrc.json`. Пример для проекта на `react`

```json
{
  "extends": ["@krivega/eslint-config/jest", "@krivega/eslint-config/react"]
}
```

#### <a name="@krivega/eslint-config/cypress"></a> `@krivega/eslint-config/cypress`

Необходимо расширить правила `@krivega/eslint-config/cypress` в корневом файле интеграционных тестов. Например: `cypress/.eslintrc.json`

```json
{
  "extends": ["@krivega/eslint-config/cypress"]
}
```

## Важно: TypeScript type-aware правила

Некоторые правила `@typescript-eslint/*` требуют типовой информации и будут работать корректно только при указании `parserOptions.project` (и при необходимости `tsconfigRootDir`).

- Рекомендуется добавить в вашу конфигурацию ESLint:

```ts
// eslint.config.{js,ts} (Flat config)
import config from '@krivega/eslint-config';

export default [
  ...config,
  {
    languageOptions: {
      parserOptions: {
        project: './tsconfig.json',
        tsconfigRootDir:
          import.meta && typeof import.meta.url === 'string' ? undefined : process.cwd(),
      },
    },
  },
];
```

```json
// .eslintrc.json (legacy формат)
{
  "extends": ["@krivega/eslint-config"],
  "parserOptions": {
    "project": "./tsconfig.json"
  }
}
```

Без этих настроек часть правил, зависящих от типов, может быть автоматически отключена или выдавать предупреждения о необходимости parserServices.
npm package: @krivega/jssip
Description: The Javascript SIP library
Latest version: 5.6.0

[![][npm-shield-jssip]][npm-jssip]
[![][github-actions-shield-jssip]][github-actions-jssip]

<p align="center"><a href="https://jssip.net"><img src="https://jssip.net/images/jssip-banner-new.png"/></a></p>

## Overview

* Runs in the browser and Node.js
* SIP over [WebSocket](https://jssip.net/documentation/misc/sip_websocket/) (use real SIP in your web apps)
* Audio/video calls ([WebRTC](https://jssip.net/documentation/misc/webrtc)) and instant messaging
* Lightweight!
* Easy to use and powerful user API
* Works with Kamailio, Asterisk. Mobicents and repro (reSIProcate) servers ([more info](https://jssip.net/documentation/misc/interoperability))
* Written by the authors of [RFC 7118 "The WebSocket Protocol as a Transport for SIP"](https://tools.ietf.org/html/rfc7118) and [mediasoup](https://mediasoup.org)


## Website and Documentation

[jssip.net](https://jssip.net/)


## Install

```bash
$ npm install jssip
```


## Getting Started

The following simple JavaScript code creates a JsSIP User Agent instance and makes a SIP call:

```javascript
var socket = new JsSIP.WebSocketInterface('wss://sip.myhost.com');
var configuration = {
  sockets  : [ socket ],
  uri      : 'sip:alice@example.com',
  password : 'superpassword'
};

var ua = new JsSIP.UA(configuration);

ua.start();

// Register callbacks to desired call events
var eventHandlers = {
  'progress': function(e) {
    console.log('call is in progress');
  },
  'failed': function(e) {
    console.log('call failed with cause: '+ e.data.cause);
  },
  'ended': function(e) {
    console.log('call ended with cause: '+ e.data.cause);
  },
  'confirmed': function(e) {
    console.log('call confirmed');
  }
};

var options = {
  eventHandlers,
  mediaConstraints: { 'audio': true, 'video': true }
};

var session = ua.call('sip:bob@example.com', options);
```

Want to see more? Check the full documentation at https://jssip.net/documentation/.


## Online Demo

[tryit.jssip.net](https://tryit.jssip.net)


## Support

* For questions or usage problems please use [Github discussions](https://github.com/versatica/JsSIP/discussions).

* For bug reports or feature requests open an [Github issue](https://github.com/versatica/JsSIP/issues).


## Authors

#### José Luis Millán

* Main author. Core Designer and Developer.
* <jmillan@aliax.net> (Github [@jmillan](https://github.com/jmillan))

#### Iñaki Baz Castillo

* Core Designer and Developer.
* <ibc@aliax.net> (Github [@ibc](https://github.com/ibc))

#### Saúl Ibarra Corretgé

* Core Designer.
* <saghul@gmail.com> (Github [@saghul](https://github.com/saghul))


## License

JsSIP is released under the [MIT license](https://jssip.net/license).

[npm-shield-jssip]: https://img.shields.io/npm/v/jssip.svg
[npm-jssip]: https://npmjs.org/package/jssip
[github-actions-shield-jssip]: https://github.com/versatica/jssip/actions/workflows/jssip.yaml/badge.svg
[github-actions-jssip]: https://github.com/versatica/jssip/actions/workflows/jssip.yaml
npm package: @krix/devtool-connector
Description: Krix DevTool Connector
Latest version: 1.0.0

**krix/devtool-connector** - a library which provides an interface to connect Krix DevTool with packages from Krix ecosystem. It's an independent part of Krix ecosystem.

# Installation
```
npm install -S @krix/devtool-plugin
```

# Introduction
## What for?
How to get value from Krix stores? Common pattern to read some data from variable - add console log. Some developers're debugging app using DevTool debugger. But what happens when you know about specialized tool which allows to read data from Krix stors in realtime? Yes, it exists and this package connect your Krix store with Krix DevTool application. 

## Setup
You may find this hard to believe but connecting your Krix store with Krix DevTool application takes 4 code lines. Let's go look at them:

```typescript
// user.resource-store.ts
import * as KrixDevToolConnector from '@krix/devtool-connector';
import { stateStore } from './state.store.ts';

// some code...

const krixDevToolConnector = await KrixDevToolConnector.getConnector();
krixDevToolConnector.connectStateStore('main', stateStore);
```

And it's all. Your `stateStore` is connected to Krix DevTool application in your DevTool.
npm package: @kriya/bootstrap-vue
Description: With more than 85 components, over 45 available plugins, several directives, and 1000+ icons, BootstrapVue provides one of the most comprehensive implementations of the Bootstrap v4 component and grid system available for Vue.js v2.6, complete with extens
Latest version: 3.0.0-alpha.3

<p align="center">
  <a href="https://bootstrap-vue.org">
    <img src="https://github.com/a-kriya/bootstrap-vue/raw/dev/static/banner.png" width="300">
  </a>
</p>
<br>

<p align="center">
  A fork of BootstrapVue focusing on maintaining compatibility with the latest migration build of Vue 3.
</p>

<p align="center">
  With more than 85 components, over 45 available plugins, several directives, and 1000+ icons,
  BootstrapVue provides one of the most comprehensive implementations of the Bootstrap v4.6
  component and grid system available for Vue 3, complete with extensive and automated
  WAI-ARIA accessibility markup.
</p>

```properties
npm i @kriya/bootstrap-vue
```

<br>

<p align="center">
  <a href="https://www.npmjs.com/package/@kriya/bootstrap-vue">
    <img src="https://flat.badgen.net/npm/v/@kriya/bootstrap-vue" alt="Current version">
  </a>
  <a href="https://getbootstrap.com/docs/4.6/">
    <img src="https://flat.badgen.net/badge/bootstrap/4.6.x/563d7c" alt="Bootstrap version">
  </a>
  <a href="https://vuejs.org">
    <img src="https://flat.badgen.net/badge/vue.js/3.5.x/4fc08d" alt="Vue.js version">
  </a>
  <a href="https://github.com/a-kriya/bootstrap-vue/actions?workflow=Tests">
    <img src="https://flat.badgen.net/github/checks/a-kriya/bootstrap-vue" alt="Build status">
  </a>
</p>

<h2 align="center">Links</h2>

- 📘 [Documentation](https://bootstrap-vue.org)
- 🔨 [Release Notes](./CHANGELOG.md)
- 💬 [Discord Chat](https://discord.gg/j2Mtcny)
npm package: @kriya/gridsome
Description: A JAMstack framework for building blazing fast websites with Vue.js
Latest version: 0.9.1

<p align="center">
  <br>
  <a href="https://www.gridsome.org">
    <img src="https://raw.githubusercontent.com/gridsome/gridsome/master/.github/assets/logo.png" width="90"/>
  </a>
</p>

<h2 align="center">Gridsome</h2>

<p align="center">
  A JAMstack framework for building blazing fast websites with <a href="https://vuejs.org">Vue.js</a>
</p>

<p align="center">
  <a title="Downloads" href="https://www.npmjs.com/package/gridsome">
    <img src="https://img.shields.io/npm/dm/gridsome.svg?style=flat-square">
  </a>
  <a title="Current version" href="https://www.npmjs.com/package/gridsome">
    <img src="https://img.shields.io/npm/v/gridsome.svg?style=flat-square">
  </a>
  <a title="MIT License" href="LICENSE">
    <img src="https://img.shields.io/github/license/gridsome/gridsome.svg?style=flat-square">
  </a>
  <a title="Follow on Twitter" href="https://twitter.com/gridsome">
    <img src="https://img.shields.io/twitter/follow/gridsome.svg?style=social&label=Follow">
  </a>
  <br>
  <br>
</p>

> This project is under active development. Any feedback or contributions would be appreciated.

Build websites using latest web tech tools that developers love - Vue.js, GraphQL and webpack. Use local files or any external API as a data source and access the data from a unified GraphQL layer. Gridsome is heavily inspired by **[Gatsby](https://gatsbyjs.org)**.

## Quick start

### 1. Install Gridsome CLI tool

- `npm install --global @gridsome/cli`
- `yarn global add @gridsome/cli`
- `pnpm install --global @gridsome/cli`

### 2. Create a Gridsome project

1. `gridsome create my-gridsome-site` to create a new project </li>
2. `cd my-gridsome-site` to open folder
3. `gridsome develop` to start local dev server at `http://localhost:8080`
4. Happy coding 🎉🙌

### 3. Next steps

1. Create `.vue` components in the `./src/pages` directory to create pages
2. Use `gridsome build` to generate static files in a `./dist` folder

### Learn more

- [How it works](https://gridsome.org/docs/how-it-works)
- [How to deploy](https://gridsome.org/docs/deployment)
npm package: @kriya/gridsome-cli
Description: A command-line tool for creating new Gridsome projects.
Latest version: 0.3.6

# @gridsome/cli

> A command line tool for creating new Gridsome projects.

## Installation

Install globally with

- `npm install --global @gridsome/cli`
- `yarn global add @gridsome/cli`
- `pnpm install --global @gridsome/cli`

## Creating new projects

Run `gridsome create {name} {starter}` to create a new Gridsome project.

- **name** - directory name to create the project in
- **starter** - optional starter kit name

| Official starter kits |                                         |
| --------------------- | --------------------------------------- |
| Default               | `gridsome create my-website`            |
| WordPress             | `gridsome create my-blog wordpress`     |

## Start local development

Run `gridsome develop` inside the project directory to start a local development server.
The server will start at `http://localhost:8080/` with hot-reloading etc.

## Explore GraphQL schema and data

Run `gridsome explore` to start [GraphQL Playground](https://github.com/prisma/graphql-playground)
and explore your schema or data. Open your browser and go to `http://localhost:8080/___explore`
to start exploring.

## Build for production

Run `gridsome build` to generate a static site inside a `dist` directory in your project.