open-index/open-npm huggingface dataset:
npm package: @kalinka123/ajsf-material
Description: Angular JSON Schema Form builder using Angular Material UI
Author: https://github.com/hamzahamidi/ajsf/graphs/contributors
Latest version: 0.5.0-beta.2

# @ajsf/material

## Getting started

```shell
npm install @ajsf/material
```

With YARN, run the following:

```shell
yarn add @ajsf/material
```

Then import `MaterialDesignFrameworkModule` in your main application module if you want to use `material-angular` UI, like this:

```javascript
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { MaterialDesignFrameworkModule } from '@ajsf/material';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [ AppComponent ],
  imports: [
    MaterialDesignFrameworkModule
  ],
  providers: [],
  bootstrap: [ AppComponent ]
})
export class AppModule { }
```

For basic use, after loading JsonSchemaFormModule as described above, to display a form in your Angular component, simply add the following to your component's template:

```html
<json-schema-form
  loadExternalAssets="true"
  [schema]="yourJsonSchema"
  framework="material-design"
  (onSubmit)="yourOnSubmitFn($event)">
</json-schema-form>
```

Where `schema` is a valid JSON schema object, and `onSubmit` calls a function to process the submitted JSON form data. If you don't already have your own schemas, you can find a bunch of samples to test with in the `demo/assets/example-schemas` folder, as described above.

`framework` is for the template you want to use, the default value is `no-framwork`. The possible values are:

* `material-design` for  Material Design.
* `bootstrap-3` for Bootstrap 3.
* `bootstrap-4` for 'Bootstrap 4.
* `no-framework` for (plain HTML).

## Code scaffolding

Run `ng generate component component-name --project @ajsf/material` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project @ajsf/material`.
> Note: Don't forget to add `--project @ajsf/material` or else it will be added to the default project in your `angular.json` file.

## Build

Run `ng build @ajsf/material` to build the project. The build artifacts will be stored in the `dist/` directory.

## Running unit tests

Run `ng test @ajsf/material` to execute the unit tests via [Karma](https://karma-runner.github.io).
npm package: @kalinkolabs/forge-cli
Description: CLI scaffolder for multi-tech monorepos (Fastify, ts-rest, Vue, Laravel, …)
Author: LK2
Latest version: 0.1.1

# lk2-forge

> CLI to scaffold pnpm-powered, multi-tech monorepos

```bash
npm install -g lk2-forge
lk2-forge my-new-project
```

---

Now just run:

```bash
pnpm install
pnpm run build
npm publish
```
npm package: @kalisio/feathers-automerge
Description: Feathers service for Automerge
Author: Kalisio
Latest version: 0.3.8

# @kalisio/feathers-automerge

A Feathers service implementation for the Automerge CRDT

## AutomergeService

This package comes with a service implementation backed by an Automerge document.

```ts
import { feathers } from '@feathersjs/feathers'
import { AutomergeService, generateObjectId } from '@kalisio/feathers-automerge'

// Set when configuring the automergeClient
const repo = app.get('repo')
// Get a handle to a document that should be used for this service
const handle = repo.find('automerge:2f9')

const app = feathers<{ todos: AutomergeService<Todo> }>()

const automergeTodoService = new AutomergeService<Todo>(handle, {
  idField: '_id',
  idGenerator: generateObjectId,
})

app.use('todos', automergeTodoService)

// Event will be triggered whenever anybody creates a new todo
app.service('todos').on('created', (todo) => {
  console.log(`Todo ${todo._id} created`)
})

app.service('todos').create({
  title: 'Learn Automerge',
  completed: false
})

console.log(await app.service('todos').find())
```

## Offline-first configuration

With a `@kalisio/feathers-automerge-server` set up, the Automerge client can be used like this:

```ts
import { feathers } from '@feathersjs/feathers'
import socketio from '@feathersjs/socketio-client'
import io from 'socket.io-client'
import {
  automergeClient,
  AutomergeService,
  stopSyncOffline,
  syncOffline,
  type Query
} from '@kalisio/feathers-automerge'

const FEATHERS_SERVER_URL = 'http://localhost:3030'

export const app = feathers()

const socket = io(FEATHERS_SERVER_URL, { transports: ['websocket'] })

app.configure(socketio(socket))
app.configure(
  automergeClient({
    syncServerUrl: FEATHERS_SERVER_URL,
    syncServicePath: 'automerge'
  })
)

export async function getApp() {
  if (!app._isSetup) {
    await app.setup()
  }

  return app
}

export async function useOffline(query: Query) {
  const app = await getApp()

  return syncOffline(app, { query })
}

export async function stopOffline() {
  const app = await getApp()

  return stopSyncOffline(app)
}
```

### Configuration Options

The `automergeClient` function accepts the following options:

- `syncServerUrl`: The URL of the automerge sync server (usually the same as your Feathers server)
- `syncServicePath`: The path where the automerge sync service is mounted (default: 'automerge')
- `authentication`: Set to `true` if Feathers authentication is set up. This will wait for the `login` event and then establish an authenticated connection with the sync server.

### Offline Synchronization

Use `syncOffline` to create an offline-capable document synchronized with the server:

```ts
// Start offline sync with a query
const offlineDoc = await useOffline({ username: 'john' })

// Stop offline sync
await stopOffline()
```
npm package: @kalisio/kdk
Description: Kalisio Development Kit
Author: Kalisio contributors
Latest version: 2.6.5

[![KDK](https://s3.eu-central-1.amazonaws.com/kalisioscope/kdk/kdk-logo-color-512x192.png)](https://kalisio.github.io/kdk/)

[![Latest Release](https://img.shields.io/github/v/tag/kalisio/kdk?sort=semver&label=latest)](https://github.com/kalisio/kdk/releases)
[![CI](https://github.com/kalisio/kdk/actions/workflows/main.yaml/badge.svg)](https://github.com/kalisio/kdk/actions/workflows/main.yaml)
[![Code Climate](https://codeclimate.com/github/kalisio/kdk/badges/gpa.svg)](https://codeclimate.com/github/kalisio/kdk)
[![Test Coverage](https://codeclimate.com/github/kalisio/kdk/badges/coverage.svg)](https://codeclimate.com/github/kalisio/kdk/coverage)
[![Documentation](https://img.shields.io/badge/documentation-available-brightgreen.svg)](https://kalisio.github.io/kdk/)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)


_The Kalisio Development Kit_

## Documentation

The full documentation is available [here](https://kalisio.github.io/kdk/)

> The documentation website is generated using [VuePress](https://vuepress.vuejs.org/)

## Contributing

Found a bug ? Missing a Feature ? Want to contribute ? check out our [contribution guidelines](https://kalisio.github.io/kdk/about/roadmap.html#contributing) for details

## License

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

## Authors

This project is sponsored by 

[![Kalisio](https://s3.eu-central-1.amazonaws.com/kalisioscope/kalisio/kalisio-logo-black-256x84.png)](https://kalisio.com)
npm package: @kalisio/kdk-billing
Description: Module to provide billing capabiities for Kalisio applications and services
Author: Kalisio contributors
Latest version: 1.1.0

# kBilling

[![Build Status](https://travis-ci.org/kalisio/kBilling.png?branch=master)](https://travis-ci.org/kalisio/kBilling)
[![Code Climate](https://codeclimate.com/github/kalisio/kBilling/badges/gpa.svg)](https://codeclimate.com/github/kalisio/kBilling)
[![Test Coverage](https://codeclimate.com/github/kalisio/kBilling/badges/coverage.svg)](https://codeclimate.com/github/kalisio/kBilling/coverage)
[![Dependency Status](https://img.shields.io/david/kalisio/kBilling.svg?style=flat-square)](https://david-dm.org/kalisio/kBilling)
[![Documentation](https://img.shields.io/badge/documentation-available-brightgreen.svg)](https://kalisio.github.io/kdk/)
[![Known Vulnerabilities](https://snyk.io/test/github/kalisio/kBilling/badge.svg)](https://snyk.io/test/github/kalisio/kBilling)

> Basic utils to provide billing capabilities for KDK-based applications and services

## Installation

```
npm install @kalisio/kdk-billing --save
// Or with Yarn
yarn add @kalisio/kdk-billing
```

## Documentation

The [kDocs](https://kalisio.github.io/kdk/) are loaded with awesome stuff and tell you everything you need to know about using and configuring it.

## License

Copyright (c) 2017 Kalisio

Licensed under the [MIT license](LICENSE).
npm package: @kalisio/kdk-core
Description: Module to provide core utilities for Kalisio applications and services
Author: Kalisio contributors
Latest version: 1.1.3

# kCore

[![Build Status](https://travis-ci.org/kalisio/kCore.png?branch=master)](https://travis-ci.org/kalisio/kCore)
[![Code Climate](https://codeclimate.com/github/kalisio/kCore/badges/gpa.svg)](https://codeclimate.com/github/kalisio/kCore)
[![Test Coverage](https://codeclimate.com/github/kalisio/kCore/badges/coverage.svg)](https://codeclimate.com/github/kalisio/kCore/coverage)
[![Dependency Status](https://img.shields.io/david/kalisio/kCore.svg?style=flat-square)](https://david-dm.org/kalisio/kCore)
[![Documentation](https://img.shields.io/badge/documentation-available-brightgreen.svg)](https://kalisio.github.io/kdk/)
[![Known Vulnerabilities](https://snyk.io/test/github/kalisio/kCore/badge.svg)](https://snyk.io/test/github/kalisio/kCore)

> Basic utils to support KDK-based applications and services

## Installation

```
npm install @kalisio/kdk-core --save
// Or with Yarn
yarn add @kalisio/kdk-core
```

## Documentation

The [kDocs](https://kalisio.github.io/kdk/) are loaded with awesome stuff and tell you everything you need to know about using and configuring it.

## License

Copyright (c) 2017 Kalisio

Licensed under the [MIT license](LICENSE).
npm package: @kalisio/kdk-event
Description: Module to provide event management for Kalisio applications and services
Author: Kalisio contributors
Latest version: 1.1.1

# kEvent

[![Build Status](https://travis-ci.org/kalisio/kEvent.png?branch=master)](https://travis-ci.org/kalisio/kEvent)
[![Code Climate](https://codeclimate.com/github/kalisio/kEvent/badges/gpa.svg)](https://codeclimate.com/github/kalisio/kEvent)
[![Test Coverage](https://codeclimate.com/github/kalisio/kEvent/badges/coverage.svg)](https://codeclimate.com/github/kalisio/kEvent/coverage)
[![Dependency Status](https://img.shields.io/david/kalisio/kEvent.svg?style=flat-square)](https://david-dm.org/kalisio/kEvent)
[![Documentation](https://img.shields.io/badge/documentation-available-brightgreen.svg)](https://kalisio.github.io/kdk/)
[![Known Vulnerabilities](https://snyk.io/test/github/kalisio/kEvent/badge.svg)](https://snyk.io/test/github/kalisio/kEvent)

> Basic utils to support event management for KDK-based applications and services

## Installation

```
npm install @kalisio/kdk-event --save
// Or with Yarn
yarn add @kalisio/kdk-event
```

## Documentation

The [kDocs](https://kalisio.github.io/kdk/) are loaded with awesome stuff and tell you everything you need to know about using and configuring it.

## License

Copyright (c) 2017 Kalisio

Licensed under the [MIT license](LICENSE).
npm package: @kalisio/kdk-map
Description: Module to provide mapping capabiities for Kalisio applications and services
Author: Kalisio contributors
Latest version: 1.1.0

# kMap

[![Build Status](https://travis-ci.org/kalisio/kMap.png?branch=master)](https://travis-ci.org/kalisio/kMap)
[![Code Climate](https://codeclimate.com/github/kalisio/kMap/badges/gpa.svg)](https://codeclimate.com/github/kalisio/kMap)
[![Test Coverage](https://codeclimate.com/github/kalisio/kMap/badges/coverage.svg)](https://codeclimate.com/github/kalisio/kMap/coverage)
[![Dependency Status](https://img.shields.io/david/kalisio/kMap.svg?style=flat-square)](https://david-dm.org/kalisio/kMap)
[![Documentation](https://img.shields.io/badge/documentation-available-brightgreen.svg)](https://kalisio.github.io/kdk/)
[![Known Vulnerabilities](https://snyk.io/test/github/kalisio/kMap/badge.svg)](https://snyk.io/test/github/kalisio/kMap)

> Basic utils to provide mapping capabilities for KDK-based applications and services

## Installation

```
npm install @kalisio/kdk-map --save
// Or with Yarn
yarn add @kalisio/kdk-map
```

## Documentation

The [kDocs](https://kalisio.github.io/kdk/) are loaded with awesome stuff and tell you everything you need to know about using and configuring it.

## License

Copyright (c) 2017 Kalisio

Licensed under the [MIT license](LICENSE).
npm package: @kalisio/kdk-team
Description: Module to support organization management for Kalisio applications and services
Author: Kalisio contributors
Latest version: 1.1.0

# kTeam

[![Build Status](https://travis-ci.org/kalisio/kTeam.png?branch=master)](https://travis-ci.org/kalisio/kTeam)
[![Code Climate](https://codeclimate.com/github/kalisio/kTeam/badges/gpa.svg)](https://codeclimate.com/github/kalisio/kTeam)
[![Test Coverage](https://codeclimate.com/github/kalisio/kTeam/badges/coverage.svg)](https://codeclimate.com/github/kalisio/kTeam/coverage)
[![Dependency Status](https://img.shields.io/david/kalisio/kTeam.svg?style=flat-square)](https://david-dm.org/kalisio/kTeam)
[![Documentation](https://img.shields.io/badge/documentation-available-brightgreen.svg)](https://kalisio.github.io/kdk/)
[![Known Vulnerabilities](https://snyk.io/test/github/kalisio/kTeam/badge.svg)](https://snyk.io/test/github/kalisio/kTeam)

> Basic utils to support organization management for KDK-based applications and services

## Installation

```
npm install @kalisio/kdk-team --save
// Or with Yarn
yarn add @kalisio/kdk-team
```

## Documentation

The [kDocs](https://kalisio.github.io/kdk/) are loaded with awesome stuff and tell you everything you need to know about using and configuring it.

## License

Copyright (c) 2017 Kalisio

Licensed under the [MIT license](LICENSE).
npm package: @kalisio/krawler
Description: Make automated process of extracting data from web services easy
Author: Kalisio contributors
Latest version: 2.8.2

![krawler](https://s3.eu-central-1.amazonaws.com/kalisioscope/krawler/krawler-logo-black-512x168.png)

[![Latest Release](https://img.shields.io/github/v/tag/kalisio/krawler?sort=semver&label=latest)](https://github.com/kalisio/krawler/releases)
[![Build Status](https://github.com/kalisio/krawler/actions/workflows/main.yaml/badge.svg)](https://github.com/kalisio/krawler/actions/workflows/main.yaml)
[![Code Climate](https://codeclimate.com/github/kalisio/krawler/badges/gpa.svg)](https://codeclimate.com/github/kalisio/krawler)
[![Test Coverage](https://codeclimate.com/github/kalisio/krawler/badges/coverage.svg)](https://codeclimate.com/github/kalisio/krawler/coverage)
[![Documentation](https://img.shields.io/badge/documentation-available-brightgreen.svg)](https://kalisio.gitbooks.io/krawler/)
[![Download Status](https://img.shields.io/npm/dm/@kalisio/krawler.svg?style=flat-square)](https://www.npmjs.com/package/@kalisio/krawler)
[![Docker Pulls](https://img.shields.io/docker/pulls/kalisio/krawler.svg?style=plastic)](https://hub.docker.com/r/kalisio/krawler/)
[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fkalisio%2Fkrawler.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkalisio%2Fkrawler?ref=badge_shield)

> A minimalist (geospatial) ETL

## Documentation

Please read the [documentation web site](https://kalisio.github.io/krawler).


## License

Released under the MIT License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fkalisio%2Fkrawler.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fkalisio%2Fkrawler?ref=badge_large)

The detailed list of Open Source dependencies can be found in our [3rd-party software report](https://app.fossa.com/reports/1ea52b66-cc7a-417e-b3d1-0eb484f29882).
npm package: @kalissaac/react-feather
Description: React component for Feather icons
Author: Carmelo Pullara
Latest version: 2.0.10-2

## React Feather Icons

[![npm version](https://img.shields.io/npm/v/react-feather.svg?style=flat-square)](https://www.npmjs.com/package/react-feather)
[![npm downloads](https://img.shields.io/npm/dm/react-feather.svg?style=flat-square)](https://www.npmjs.com/package/react-feather)

#### What is react-feather?
react-feather is a collection of simply beautiful open source icons for React.js. Each icon is designed on a 24x24 grid with an emphasis on simplicity, consistency and readability.

#### Based on Feather Icons  ```v4.29.0```
https://feathericons.com/

### Installation
    yarn add react-feather
    
  or
    
    npm i react-feather

### Usage

```javascript
import React from 'react';
import { Camera } from 'react-feather';

const App = () => {
  return <Camera />
};

export default App;
```

Icons can be configured with inline props:
```javascript
<Camera color="red" size={48} />
```

If you can't use ES6 imports, it's possible to include icons from the compiled folder ./dist.
```javascript
var Camera = require('react-feather/dist/icons/camera').default;

var MyComponent = React.createClass({
  render: function () {
    return (
      <Camera />
    );
  }
});
```
You can also include the whole icon pack:

```javascript
import React from 'react';
import * as Icon from 'react-feather';

const App = () => {
  return <Icon.Camera />
};

export default App;
```
npm package: @kalkanisys/vue-select
Description: Everything you wish the HTML <select> element could do, wrapped up into a lightweight, extensible Vue component.
Author: Jeff Sagal
Latest version: 4.0.0-beta.3

# vue-select ![Current Release](https://img.shields.io/github/release/sagalbot/vue-select.svg?style=flat-square) ![Release Date](https://img.shields.io/github/release-date/sagalbot/vue-select?style=flat-square) ![Bundle Size](https://flat.badgen.net/bundlephobia/min/vue-select) ![Monthly Downloads](https://img.shields.io/npm/dm/vue-select.svg?style=flat-square) [![Coverage Status](https://coveralls.io/repos/github/sagalbot/vue-select/badge.svg?branch=master)](https://coveralls.io/github/sagalbot/vue-select?branch=master) ![MIT License](https://img.shields.io/github/license/sagalbot/vue-select.svg?style=flat-square)

> **Everything you wish the HTML `<select>` element could do, wrapped up into a lightweight, zero
> dependency, extensible Vue component.**

Vue Select is a feature rich select/dropdown/typeahead component. It provides a default
template that fits most use cases for a filterable select dropdown. The component is designed to be as
lightweight as possible, while maintaining high standards for accessibility,
developer experience, and customization.

- Tagging
- Filtering / Searching
- Vuex Support
- AJAX Support
- SSR Support
- Accessible
- ~20kb Total / ~5kb CSS / ~15kb JS
- Select Single/Multiple Options
- Customizable with slots and SCSS variables
- Zero dependencies

## Documentation

Complete documentation and examples available at https://vue-select.org.

- **[API Documentation](https://vue-select.org)**
- **[CodePen Template](http://codepen.io/sagalbot/pen/NpwrQO)**

## Sponsors :tada:

It takes a lot of effort to maintain this project. If it has saved you development time, please consider [sponsoring the project](https://github.com/sponsors/sagalbot)
with GitHub sponsors!

Huge thanks to the [sponsors](https://github.com/sponsors/sagalbot) and [contributors](https://github.com/sagalbot/vue-select/graphs/contributors) that make Vue Select possible!

## Install

```bash
yarn add vue-select

# or use npm

npm install vue-select
```

Then, import and register the component:

```js
import Vue from "vue";
import vSelect from "vue-select";

Vue.component("v-select", vSelect);
```

The component itself does not include any CSS. You'll need to include it separately:

```js
import "vue-select/dist/vue-select.css";
```

Alternatively, you can import the scss for complete control of the component styles:

```scss
@import "vue-select/src/scss/vue-select.scss";
```

You can also include vue-select directly in the browser. Check out the
[documentation for loading from CDN.](https://vue-select.org/guide/install.html#in-the-browser).

## License

[MIT](https://github.com/sagalbot/vue-select/blob/master/LICENSE.md)
npm package: @kalkih/anticaptcha
Description: A modern wrapper around AntiCaptcha API.
Author: Karl Kihlström
Latest version: 1.0.4

<h1 align="center">
  AntiCaptcha
  <br>
  <br>
</h1>

<h4 align="center">Modern NodeJS API wrapper for Anticaptcha service</h4>

<p align="center">
  <a href="https://www.typescriptlang.org"><img src="https://anti-captcha.com/images/mainpage/herofront_nocape.png" alt="Anticaptcha Logo"></a>
</p>
<br>

This library is a NodeJS wrapper that expose an modern API in order to exploit the https://anti-captcha.com/ service.

Please keep in mind that this is a work in progress and it only support Proxyless Recaptcha breaker at the moment.


## Documentation
Install using `npm i @kalkih/anticaptcha`.

For the example, we will use the nice feature that are [ES7 Async Function](https://developers.google.com/web/fundamentals/primers/async-functions) this will make the syntax more concise, but feel free to use good old Promises.

**Caution** : Keep in mind that real people are working behind the network to break the hash. This can lead to some delay depending on the service charge's load, therefore you might require to set a greater timeout for your calls if you're using this through an REST API.

```javascript
// main.js
import { AntiCaptcha } from "@kalkih/anticaptcha";

// Registering the API Client.
const AntiCaptchaAPI = new AntiCapcha("<your_client_ID>"); // You can pass true as second argument to enable debug logs.

const mainProcess = async () => {
    // Checking the account balance before creating a task. This is a conveniance method.
    if (await !AntiCaptchaAPI.isBalanceGreaterThan(10)) {
        // You can dispatch a warning using mailer or do whatever.
        console.warn("Take care, you're running low on money !")
    }

    // Creating a task to resolve.
    const taskId = await AntiCaptchaAPI.createTask(
        "http://www.some-site.com", // The page where the captcha is
        "7Lfh6tkSBBBBBBGN68s8fAVds_Fl-HP0xQGNq1DK", // The data-site-key value
        "RECAPTCHA_PROXYLESS", // Captcha type: RECAPTCHA_PROXY, RECAPTCHA_PROXYLESS
        true, // Invisible captcha
        { // Optional proxy settings
          proxyType: "http", // Proxy type: http, socks4, socks5
          proxyAddress: "192.168.1.1", // Proxy IP address
          proxyPort: 80, // Proxy Port
          userAgent: "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36"
        }
    )

    // Waiting for resolution and do something
    const response = await AntiCaptchaAPI.getTaskResult(taskId);
}

```

The response object looks like this, feel free to check Typescript definition file that are given. This will give you nice view of the object properties.

```typescript
 {
    status: "ready" | "processing";
    solution: { gRecaptchaResponse: string };
    cost: number;
    ip: string;
    createTime: number;
    endTime: number;
    /**
     * Number of workers who tried to complete your task
     *
     * @type {number}
     * @memberof IGetTaskResponse
     */
    solveCount: number;
 }
```
npm package: @kalkih/lz-string
Description: LZ-based compression algorithm
Author: pieroxy
Latest version: 1.4.5

# @kalkih/lz-string

LZ-based compression algorithm for JavaScript.

ES6 fork of [pieroxy´s](https://github.com/pieroxy) popular [lz-string](https://github.com/pieroxy/lz-string) lib.


## Example
```shell
$ npm install --save @kalkih/lz-string
```

```js
import { compress, decompress } from '@kalkih/lz-string'

const compressed = compress(data)
```
npm package: @kalligator/v-localforage
Description: A frok from v-localforage, a plugin wrapped from localForage for Vue.js. Updated to use startswith plugin
Author: Kalligator
Latest version: 0.0.1

# v-localforage
> A plugin wrapped from [localForage](https://github.com/localForage/localForage) for Vue.js.

## Installation

### Install using npm

```bash
# install it via npm
npm install @kalligator/v-localforage --save
```

## Usage

```js
// register the plugin on vue
import VueLocalforage from '@kalligator/v-localforage'

Vue.use(VueLocalforage)

// you can also pass options, check options reference below
Vue.use(VueLocalforage, Options)
```

### Get item

```js
let item = await this.$localforage.getItem(key)
```

### Set item

```js
await this.$localforage.setItem(key, value)
```

### Remove item

```js
await this.$localforage.removeItem(key)
```

### Clear

```js
await this.$localforage.clear()
```

### Gets the length

```js
let length = await this.$localforage.length()
```

### Get the name of a key based on its ID

```js
let k = await this.$localforage.key(keyIndex)
```

### Get the list of all keys

```js
let keys = await this.$localforage.keys()
```

[More informations on LocalForage documentation](https://localforage.github.io/localForage/#data-api)

## Advanced Usage

You can register multiple instances, see below:

```js
Vue.use(VueLocalforage, {
  instances: [
    {
      storeName: 'instance1'
    },
    {
      storeName: 'instance2'
    }
  ]
})

// for instance1
await this.$localforage.instance1.setItem(key, value)

// for instance2
await this.$localforage.instance2.setItem(key, value)
```

## Options

### `instances` (optional)

- Default: `[]`

You can create multiple instances.

### `driver` (optional)

- Default: `[localforage.INDEXEDDB, localforage.WEBSQL, localforage.LOCALSTORAGE]`

The preferred driver(s) to use.

### `name` (optional)

- Default: `localforage`

The name of the database.

### `size` (optional)

- Default: `4980736`

The size of the database in bytes.

### `storeName` (optional)

- Default: `keyvaluepairs`

The name of the datastore.

### `version` (optional)

- Default: `1.0`

The schema version of your database.

### `description` (optional)

- Default: `''`

A description of the database.

[More informations on LocalForage documentation](https://localforage.github.io/localForage/#settings-api-config)
npm package: @kallinen/openapi-axios-client
Description: A lightweight TypeScript library to generate fully typed API clients from OpenAPI specifications.
Author: Kallinen Solutions Oy
Latest version: 0.5.2

# OpenAPI Axios Client

[![npm module](https://badge.fury.io/js/@kallinen%2Fopenapi-axios-client.svg)](https://www.npmjs.org/package/@kallinen/openapi-axios-client)

This library leverages OpenAPI types to create a fully typed client API, providing a consistent interface with your backend services.

## Installation

This package can be installed in any JS/TS project.

```
npm install @kallinen/openapi-axios-client
```

## Basic usage

Types can be generated with following command

```
npx @kallinen/openapi-typings-gen spec.json > spec.ts
```

### Creating a new API

```
import spec from '<path to openapi json>' 

const config = {
  url: 'localhost:3000',
  timeout: 30000,
  headers: {}
}

const api = createTypedApi<OperationMethods, PathsDictionary>(spec, {
    url: config.url,
    timeout: config.timeout,
    headers: config.headers,
})

const anotherApi = await createTypedApi<OperationMethods, PathsDictionary>('path/to/json', {
    url: config.url,
    timeout: config.timeout,
    headers: config.headers,
})

const remoteApi = await createTypedApi<OperationMethods, PathsDictionary>('https://example.com/openapi.json', {
    url: config.url,
    timeout: config.timeout,
    headers: config.headers,
})
```

#### Applying validation to API responses
⚠️ This feature is experimental and may change in future releases.

```
import { apiResponseValidators } from /path/to/generated/types

const clientValidatedApi = await createTypedApi<OperationMethods, PathsDictionary>('https://example.com/openapi.json', {
    url: config.url,
    timeout: config.timeout,
    headers: config.headers,
    validators: apiResponseValidators
})

```

### Api calls

```
const response = await api.getTodos({ id: 1 })
if (response.ok) {
  // Handle successful api call
  handleSuccess(response.data)
} else {
  // Handle errors. Response contains originalError, statusCode and problem.
}
```
npm package: @kallinen/openapi-typings-gen
Description: Generates TypeScript types from OpenAPI specs
Author: Joonas Kallinen
Latest version: 0.4.0

[![npm module](https://badge.fury.io/js/@kallinen%2Fopenapi-typings-gen.svg)](https://www.npmjs.org/package/@kallinen/openapi-typings-gen)

# OpenAPI type generator

Generate types from OpenAPI v3 documentation (json or yaml) with single command

```
npx @kallinen/openapi-typings-gen openapi.json > openapi-types.d.ts
```

The library supports also methods that don't have operationId set by adding -k as argument

```
npx @kallinen/openapi-typings-gen -k -i openapi.json -o openapi-types.d.ts
```

## Zod Validation

You can generate Zod validation schemas along with TypeScript types by using the -z or --zod flag:
```
npx @kallinen/openapi-typings-gen -z -i openapi.json -o openapi-types.d.ts
```

⚠️ This feature is experimental and may change in future releases.
npm package: @kallinen/react-native-auth
Description: Small library that provides Apple & Android sign-in capabilities
Author: Tuomas Kallinen & Joonas Kallinen
Latest version: 0.2.0

# @kallinen/react-native-auth

Small library that provides Apple & Android sign-in capabilities

## Installation


```sh
npm install @kallinen/react-native-auth
```


## Usage

### iOS
Enable "Sign in with Apple" capability from xcode – Signing & Capabilities!

### Android
Add Google Web Client ID to `android/app/src/main/res/values/strings.xml`

```xml
<string name="google_web_client_id">MY_CLIENT_ID</string>
```

### Using the library in React Native

```js
import { AppleSignInButton, signInWithApple } from '@kallinen/react-native-auth'
// ...

export default function App() {
    const onPressLogin = async () => {
        const result = await signInWithApple()
        console.log(result)
    }

    return (
        <View style={styles.container}>
            <AppleSignInButton
                style={{ width: 240, height: 44 }}
                onPress={onPressLogin}
            />
        </View>
    )
}
```


## Contributing

- [Development workflow](CONTRIBUTING.md#development-workflow)
- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request)
- [Code of conduct](CODE_OF_CONDUCT.md)

## License

MIT
npm package: @kallinen/react-native-in-app-update
Description: Check application updates
Author: Joonas Kallinen
Latest version: 0.1.0

# @kallinen/react-native-in-app-update

Check application updates

## Installation


```sh
npm install @kallinen/react-native-in-app-update
```


## Usage


```js
import { checkForUpdate } from '@kallinen/react-native-in-app-update';

// ...

const result = await checkForUpdate({ prefer: 'flexible' })
```


## Contributing

- [Development workflow](CONTRIBUTING.md#development-workflow)
- [Sending a pull request](CONTRIBUTING.md#sending-a-pull-request)
- [Code of conduct](CODE_OF_CONDUCT.md)

## License

MIT

---

Made with [create-react-native-library](https://github.com/callstack/react-native-builder-bob)
npm package: @kallinen/thunk-utility
Description: TypeScript library for creating typed thunks.
Author: Kallinen Solutions Oy
Latest version: 0.3.8

# @kallinen/thunk-utility

A strongly typed utility library for creating and using Redux Toolkit thunks with minimal boilerplate.
Designed to work especially well with @kallinen/openapi-axios-client.

The library helps you:

- Create typed thunks easily
- Automatically infer payload types
- Map thunk results to slice state with minimal reducer code

### Installation

```bash
npm install @kallinen/thunk-utility
```

### Usage

```js

// store.ts
export type ThunkState = {
    state: RootState
    dispatch: AppDispatch
}

// my-reducer.slice.ts
import { createSlice } from '@reduxjs/toolkit'
import { createThunkFactory } from '@kallinen/thunk-utility'
import type { ThunkState } from './store'

// thunk setup along with reducer
const { createThunks, apiThunkFor, customApiThunkFor } = createThunkFactory<ThunkState>()

// Define thunks
export const thunks = createThunks({
    // generate simple thunks from API
    simpleThunk: apiThunkFor(api.hello)({
        body: (params) => ({ platform: params.platform }),
    }),
    customThunk: customApiThunkFor(api.hello)<{ customParam: string }>({
        body: ({ customParam }, state) => ({ platform: state.myReducer.platform, customParam })
    })
    fetchUser: async (_: void, { getState, dispatch }) => {
        const state = getState()

        // Return payload
        return {
            id: 1,
            name: 'Alice',
        }
    },
}, 'my')

// Define slice
const mySlice = createSlice({
    name: 'my',
    initialState: {
        user: null as { id: number; name: string } | null,
        hello: null as HelloDto | null
    },
    reducers: {},
    extraReducers: (builder) => {
        builder
            .addCase(thunks.fetchUser.fulfilled, (state, action) => {
                // action.payload is correctly typed
                state.user = action.payload
            })

        // Or use slice helper to map thunks to state
         const helper = sliceHelper(builder, thunks)
        helper.mapThunksToState('fulfilled', {
            fetchUser: 'user',
            simpleThunk: 'hello',
            customThunk: 'hello',
        })
    },
})

export const myReducer = mySlice.reducer

```
npm package: @kallookoo/semver-lite
Description: A lightweight library for comparing semantic versions.
Author: Sergio
Latest version: 1.0.0

# semver-lite

A lightweight library for comparing semantic versions.

## Installation & Usage

### npm

```bash
npm install semver-lite
```

```typescript
import { compare, compareStrict } from 'semver-lite';
```

### Browser via CDN (Coming soon)

#### ESM (ES Modules)

```html
<script type="module">
  import { compare, compareStrict } from "https://cdn.jsdelivr.net/npm/semver-lite/dist/index.min.mjs";
</script>
```

#### UMD (Universal Module Definition)

```html
<script src="https://cdn.jsdelivr.net/npm/semver-lite/dist/index.umd.min.js"></script>
<script>
  const { compare, compareStrict } = semverLite;
</script>
```

#### IIFE (Immediately Invoked Function Execution)

```html
<script src="https://cdn.jsdelivr.net/npm/semver-lite/dist/index.min.js"></script>
<script>
  const { compare, compareStrict } = semverLite;
</script>
```

## Examples

```typescript
compare('2.0.0', '1.0.0');  // true

compare('1.0.0-alpha', '1.0.0', '<');  // true - pre-release is lower than release

compare('v1.0.0+build.1', '1.0.0+build.2', '=');  // true

compareStrict('1.0.0+build.1', '1.0.0+build.2', '<');  // true

compareStrict('1.0.0+build.1', '1.0.0+build.1', '===');  // true
```

## Features

- Supports semantic versioning standard
- Multiple comparison operators
- Proper handling of pre-release identifiers
- Optional metadata comparison (strict mode)
- TypeScript types included

## API

### Functions

- `compare(v1, v2, operator = '>')` - Compares two versions. Default operator is `>`.
- `compareStrict(v1, v2, operator = '>')` - Compares two versions including metadata. Default operator is `>`.

### Supported operators

| Function      | Operation             | Operators               | Strict Mode |
| :------------ | :-------------------- | :---------------------- | :---------: |
| compare       | Greater than          | `>`, `gt`               |     No      |
| compare       | Greater than or equal | `>=`, `ge`              |     No      |
| compare       | Less than             | `<`, `lt`               |     No      |
| compare       | Less than or equal    | `<=`, `le`              |     No      |
| compare       | Equal                 | `=`, `==`, `eq`         |     No      |
| compare       | Strictly equal        | `===`                   |     Yes     |
| compare       | Not equal             | `!=`, `<>`, `ne`        |     No      |
| compare       | Strictly not equal    | `!==`                   |     Yes     |
| compareStrict | Greater than          | `>`, `gt`               |     Yes     |
| compareStrict | Greater than or equal | `>=`, `ge`              |     Yes     |
| compareStrict | Less than             | `<`, `lt`               |     Yes     |
| compareStrict | Less than or equal    | `<=`, `le`              |     Yes     |
| compareStrict | Equal                 | `=`, `==`, `===`, `eq`  |     Yes     |
| compareStrict | Not equal             | `!=`, `<>`, `!==`, `ne` |     Yes     |