open-index/open-npm huggingface dataset:
npm package: @locallm/api
Description: An api to query local language models using different backends
Latest version: 0.8.0

# LocalLm api

An api to query local language models using different backends. Supported backends:

- [Llama.cpp](https://github.com/ggerganov/llama.cpp/tree/master/examples/server)
- [Koboldcpp](https://github.com/LostRuins/koboldcpp)
- [Ollama](https://github.com/jmorganca/ollama)
- Any Openai compatible endpoint

:books: [Api doc](https://synw.github.io/locallm/)

## Install

```bash
npm install @locallm/api
```

## Usage

Example with the Koboldcpp provider, manual template:

```ts
import { Lm } from "@locallm/api";

const lm = new Lm({
  providerType: "koboldcpp",
  serverUrl: "http://localhost:5001",
  onToken: (t) => process.stdout.write(t),
});
const template = "

 {prompt} 
";
const _prompt = template.replace("{prompt}", "list the planets in the solar system");
// run the inference query
await lm.infer(_prompt, {
  stream: true,
  temperature: 0.2,
});
```

Example with the Llama.cpp provider, openai compatible endpoint, server side template:

```ts
import { Lm } from "@locallm/api";

const lm = new Lm({
    providerType: "openai",
    serverUrl: "http://localhost:8080/v1",
    onToken: (t) => process.stdout.write(t),
});
process.on('SIGINT', () => {
    lm.abort().then(() => process.exit());
});
const _prompt = "list the planets in the solar system";
const res = await lm.infer(_prompt, {
    stream: true,
    temperature: 0.5,
});
```

Check the [examples](examples) directory for more examples
npm package: @locallm/browser
Description: Run language models in the browser
Latest version: 0.0.21

# LocalLm Browser

Run models in the browser using [Wllama](https://github.com/ngxson/wllama)

## Install

```bash
npm i @locallm/browser
```

## Usage

Vuejs example:

```vue
<template>
  <div>
    {{ output }}
  </div>
</template>

<script setup lang="ts">
import { onMounted, ref } from 'vue';
import { PromptTemplate } from 'modprompt';
import { LmBrowserProviderParams, OnLoadProgress, WllamaProvider } from '@locallm/browser';

const output = ref("");

const lm = WllamaProvider.init({
  onToken: (t) => { output.value = t },
} as LmBrowserProviderParams);
const model = {
  name: "Qween 0.5b",
  url: "https://huggingface.co/Qwen/Qwen2-0.5B-Instruct-GGUF/resolve/main/qwen2-0_5b-instruct-q5_k_m.gguf",
  ctx: 32768,
}

const onModelLoading: OnLoadProgress = (st) => {
  console.log(st.percent, "%")
}

async function init() {
  await lm.loadBrowsermodel(model.name, model.url, model.ctx, onModelLoading);
  const p = new PromptTemplate("chatml")
    .replaceSystem("You are an AI assistant. Important: always use json to respond")
    .prompt("List the planets of the solar system.")
  const res = await lm.infer(
    p,
    { temperature: 0, min_p: 0.05 }
  );
  console.log(res.stats)
}

onMounted(() => init())
</script>
```
npm package: @locallytics/cli
Description: SQLite migration CLI for Locallytics
Author: Aidan McAlister
Latest version: 0.3.1

# @locallytics/cli

`@locallytics/cli` generates and applies sqlite migrations for Locallytics.

## Usage

Run commands in this order:

```npm
npx @locallytics/cli@latest generate
npx @locallytics/cli@latest migrate
```

## Commands

- `generate`
  Creates `locallytics/migrations/0001_create_locallytics_events.sql`.
- `migrate`
  Applies all `.sql` files in `locallytics/migrations` in sorted order.

## `migrate` database URL resolution

`migrate` resolves the target sqlite database in this order:

1. `--database-url`
2. `DATABASE_URL`
3. Detected from your init config (`lib/locallytics.ts` and common variants)
4. Fallback: `file:./database.sqlite`

## Example

```npm
npx @locallytics/cli@latest migrate --database-url file:./analytics.sqlite
```
npm package: @localmode/dexie
Description: Dexie.js storage adapter for @localmode - enhanced IndexedDB with versioning
Author: LocalMode
Latest version: 2.0.0

# @localmode/dexie

Dexie.js storage adapter for LocalMode — enhanced IndexedDB with schema versioning and transactions.

[![npm](https://img.shields.io/npm/v/@localmode/dexie)](https://www.npmjs.com/package/@localmode/dexie)
[![license](https://img.shields.io/npm/l/@localmode/dexie)](../../LICENSE)

[![Docs](https://img.shields.io/badge/Docs-LocalMode.dev-red)](https://localmode.dev/docs/dexie)
[![Demo](https://img.shields.io/badge/Demo-LocalMode.ai-purple)](https://localmode.ai)

## Installation

```bash
pnpm install @localmode/dexie @localmode/core
```

## Quick Start

```typescript
import { DexieStorage } from '@localmode/dexie';
import { createVectorDB } from '@localmode/core';

const storage = new DexieStorage({ name: 'my-app' });

const db = await createVectorDB({
  name: 'my-app',
  dimensions: 384,
  storage,
});

// Use db.add(), db.search(), etc.
```

## API

### Constructor

```typescript
new DexieStorage({ name: string })
```

### StorageAdapter Methods

`DexieStorage` implements the `StorageAdapter` interface from `@localmode/core`:

| Method | Description |
|--------|-------------|
| `open()` / `close()` | Manage database connection |
| `addDocument(doc)` | Add/upsert a document |
| `getDocument(id)` | Get document by ID (returns `null` if missing) |
| `deleteDocument(id)` | Delete a document |
| `getAllDocuments(collectionId)` | Get all documents in a collection |
| `countDocuments(collectionId)` | Count documents in a collection |
| `addVector(vec)` | Add/upsert a vector |
| `getVector(id)` | Get vector as `Float32Array \| null` |
| `deleteVector(id)` | Delete a vector |
| `getAllVectors(collectionId)` | Get all vectors as `Map<string, Float32Array>` |
| `saveIndex(collectionId, index)` | Save serialized HNSW index |
| `loadIndex(collectionId)` | Load serialized HNSW index |
| `deleteIndex(collectionId)` | Delete an index |
| `createCollection(collection)` | Create a collection |
| `getCollection(id)` | Get collection by ID |
| `getCollectionByName(name)` | Get collection by name |
| `getAllCollections()` | List all collections |
| `deleteCollection(id)` | Delete a collection |
| `clear()` | Clear all data |
| `clearCollection(collectionId)` | Clear a specific collection |
| `estimateSize()` | Estimate storage size in bytes |

## Why Dexie?

| Feature | IndexedDBStorage (built-in) | DexieStorage |
|---------|---------------------------|--------------|
| Bundle size | 0KB (built-in) | ~15KB |
| Schema versioning | Manual migrations | Built-in |
| Transactions | Manual | Automatic |
| Queries | Basic | Indexed |
| TypeScript | Good | Excellent |

## Acknowledgments

This package is built on [Dexie.js](https://dexie.org/) by [David Fahlander](https://github.com/dfahlander) — a minimalistic IndexedDB wrapper with schema versioning and transactions.

## License

[MIT](../../LICENSE)
npm package: @localnerve/bin-build
Description: Easily build binaries
Author: Kevin Mårtensson
Latest version: 9.0.0

# bin-build 
[![npm version](https://badge.fury.io/js/@localnerve%2Fbin-build.svg)](https://badge.fury.io/js/@localnerve%2Fbin-build)
![Verify](https://github.com/localnerve/bin-build/workflows/Verify/badge.svg)
[![Coverage Status](https://coveralls.io/repos/github/localnerve/bin-build/badge.svg?branch=public-package)](https://coveralls.io/github/localnerve/bin-build?branch=public-package)

> Easily build binaries

**This is an updated fork of kevva/bin-build that is maintained**

> Version 4.0.0+ on public-package branch is the forward maintained version under @localnerve/bin-build

## Install

```
$ npm install --save bin-build
```


## Usage

```js
const binBuild = require('bin-build');

binBuild.url('http://www.lcdf.org/gifsicle/gifsicle-1.80.tar.gz', [
	'./configure --disable-gifview --disable-gifdiff',
	'make install'
]).then(() => {
	console.log('gifsicle built successfully');
});

binBuild.file('gifsicle-1.80.tar.gz', [
	'./configure --disable-gifview --disable-gifdiff',
	'make install'
]).then(() => {
	console.log('gifsicle built successfully');
});
```


## API

### binBuild.directory(directory, commands)

#### directory

Type: `string`

Path to a directory containing the source code.

#### commands

Type: `Array`

Commands to run when building.

### binBuild.file(file, commands, [options])

#### file

Type: `string`

Path to a archive file containing the source code.

#### commands

Type: `Array`

Commands to run when building.

#### options

Type: `Object`

##### strip

Type: `number`<br>
Default: `1`

Strip a number of leading paths from file names on extraction.

### binBuild.url(url, commands, [options])

#### url

Type: `string`

URL to a archive file containing the source code.

#### commands

Type: `Array`

Commands to run when building.

#### options

Type: `Object`

##### strip

Type: `number`<br>
Default: `1`

Strip a number of leading paths from file names on extraction.


## License

MIT © [Kevin Mårtensson](https://github.com/kevva)
npm package: @localnerve/debug
Description: Tiny debug tool (~500 bytes) for terminal and browser inspired by debug-js/debug API.
Author: Willy Brauner
Latest version: 1.0.13

# @localnerve/debug

Tiny debug tool (~650 bytes) for terminal and browser inspired by [debug-js/debug](https://github.com/debug-js/debug) API.

![](https://img.shields.io/npm/v/@localnerve/debug/latest.svg)
![](https://github.com/localnerve/debug/workflows/ci/badge.svg)
![](https://img.shields.io/npm/dt/@localnerve/debug.svg)
![](https://img.shields.io/npm/l/@localnerve/debug.svg)

![](screen.jpg)

## Motivation

Forked from `@wbe/debug`, this was built in order to be as light as possible for terminal and browser,
as the same way as the great debug-js/debug tool, with a few added debug-js/debug parity features.
The package is less than 10k unpacked on disk, and published directly from Github with provenance.

## Installation

```shell script
$ npm i @localnerve/debug
```

## debug node

```shell
DEBUG=* node file.js
```

file.js:

```js
import debug from "@localnerve/debug"
const log = debug("namespace")
log("hello") // "namespace hello"
```

`process.env.DEBUG` value can be defined as a specific namespace too:

```shell
DEBUG=namespace-1 node file.js
```

Only debug function declaration with `namespace-1` declared as namespace will be printed in the console:

```js
import debug from "@localnerve/debug"
const log = debug("namespace-1")
log("hello") // "namespace-1 hello"
```

`process.env.DEBUG` value accept "one glob parameter level":

```shell
DEBUG=config:* node file.js
```

Every debug function declaration with namespace `config:{somestring}` will be logged.

## debug in browser

In the same way as nodejs usage, `debug` is browser compatible with the same API. The only difference is
we need to set the current namespace in localStorage.

Add on your browser localStorage:

```shell
localStorage.debug = "foo"
```

Use debug in javascript:

```js
// es6 import
import debug from "@localnerve/debug"
const log = debug("foo")
log("bar") // "foo bar"
```

## Examples

Install dependencies:

Start example:

```shell
# browser example
npm run dev:example-browser
# node example
npm run dev:example-dev
```

## Credits

Willy Brauner

## Licence

MIT
npm package: @localnerve/get-attribute
Description: Get an attribute from a webpage, echo to stdout
Author: Alex Grant
Latest version: 4.28.0

# get-attribute

> A command to get a single attribute or property from a webpage, echo to stdout

[![npm version](https://badge.fury.io/js/@localnerve%2Fget-attribute.svg)](https://badge.fury.io/js/@localnerve%2Fget-attribute)
![Verify](https://github.com/localnerve/get-attribute/workflows/Verify/badge.svg)
[![Coverage Status](https://coveralls.io/repos/github/localnerve/get-attribute/badge.svg?branch=main)](https://coveralls.io/github/localnerve/get-attribute?branch=main)

> See [repo releases](https://github.com/localnerve/get-attribute/releases) for change notes

## Example

Grab the full url from a specific anchor tag of interest (all options shown):

```shell
get-attribute --url=https://host.com/path --selector='a[href^="/videos"]' --attribute=href --useprop=true --timeout=5000 --launchargs='{"headless":true}'

# echoes the first matching href with full url from property: 'https://host.com/path/videos/123456789'
```

## License
[MIT](LICENSE.md)
npm package: @localnerve/gulp-rev-delete-original
Description: Delete the original file rewritten by gulp-rev.
Latest version: 1.0.2

# gulp-rev-delete-original

> A fork of the original [nib-health-funds/gulp-rev-delete-original](https://github.com/nib-health-funds/gulp-rev-delete-original) with updated dependencies, code, and support

Delete the original file rewritten by
[gulp-rev](https://www.npmjs.com/package/gulp-rev) or
[gulp-rev-all](https://www.npmjs.com/package/gulp-rev-all).

## Installation

    npm install --save-dev gulp-rev-delete-original

## Usage

```js
var gulp = require('gulp');
var rev = require('gulp-rev');
var revcss = require('gulp-rev-css-url');
var revdel = require('gulp-rev-delete-original');

gulp.task('rev', function () {
  return gulp.src('./app/**/*')
    .pipe(rev())
    .pipe(revcss())
    .pipe(revdel())
    .pipe(gulp.dest('./build/'))
  ;
});
```

## Options

#### exclude

A filter `RegExp` or `function` that allows you to exclude certain files from being deleted.

##### Example

RegExp:

```js
revdel({
  exclude: /build\.css$/
});
```

Function:

```js
revdel({
  exclude: file => {
    if (/build\.css$/.test(file.name)) {
      return true; // if you want to exclude the file from being deleted
    }
  }
});
```
npm package: @localnerve/imagemin-gifsicle
Description: Imagemin plugin for Gifsicle
Latest version: 10.4.4

# imagemin-gifsicle 

[![test](https://github.com/localnerve/imagemin-gifsicle/actions/workflows/test.yml/badge.svg)](https://github.com/localnerve/imagemin-gifsicle/actions/workflows/test.yml)

> Imagemin plugin for [Gifsicle](https://www.lcdf.org/gifsicle/)

> Updated, maintained fork of [imagemin-gifsicle](https://github.com/imagemin/imagemin-gifsicle)

## Install

```
$ npm install imagemin-gifsicle
```

### Install Prerequisites
Most latest OS images come with what is required to install the binary, but Macos requires the following:
```
$ brew install autoconf automake libtool
```

## Usage

```js
import imagemin from 'imagemin';
import imageminGifsicle from 'imagemin-gifsicle';

(async () => {
	await imagemin(['images/*.gif'], {
		destination: 'build/images',
		plugins: [
			imageminGifsicle()
		]
	});

	console.log('Images optimized');
})();
```

## API

### imageminGifsicle(options?)(buffer)

Returns a `Promise<Buffer>` with the optimized image.

#### options

Type: `object`

##### interlaced

Type: `boolean`\
Default: `false`

Interlace gif for progressive rendering.

##### optimizationLevel

Type: `number`\
Default: `1`

Select an optimization level between `1` and `3`.

> The optimization level determines how much optimization is done; higher levels take longer, but may have better results.

1. Stores only the changed portion of each image.
2. Also uses transparency to shrink the file further.
3. Try several optimization methods (usually slower, sometimes better results)

##### colors

Type: `number`

Reduce the number of distinct colors in each output GIF to num or less. Num must be between 2 and 256.

#### buffer

Type: `Buffer`

Buffer to optimize.
npm package: @localnerve/imagemin-optipng
Description: Imagemin plugin for OptiPNG
Latest version: 11.2.0

# imagemin-optipng ![GitHub Actions Status](https://github.com/imagemin/imagemin-optipng/workflows/test/badge.svg?branch=main)

> Imagemin plugin for OptiPNG

**A published ESM fork of imagemin/imagemin-optipng**

## Install

```
$ npm install imagemin-optipng
```

### Silicon ARM
`imagemin-optipng` uses neon chipset optimizations that are incompatible with Apple Silicon.  
To compile on newer M1/M2/M3/M4+ Macs, set the environment variable to disable neon optimizations `CPPFLAGS=-DPNG_ARM_NEON_OPT=0`
Since npm doesn't allow one to hook the install event (only the install script), this is not fully automatable. The npm lifecycle hooks do not currently provide any mechanism to run scripts prior to dependency build/install, such as setting variables for `arm64`.

The following package.json script in a parent project will build `imagemin-optipng` for `arm64` architectures:

```javascript
"install-arm": "CPPFLAGS=-DPNG_ARM_NEON_OPT=0 npm i",
```

## Usage

```js
import imagemin from 'imagemin';
import imageminOptipng from 'imagemin-optipng';

(async () => {
	await imagemin(['images/*.png'], {
		destination: 'build/images',
		plugins: [
			imageminOptipng()
		]
	});

	console.log('Images optimized!');
})();
```

## API

### imageminOptipng(options?)(buffer)

Returns a `Promise<Buffer>`.

#### options

Type: `object`

##### optimizationLevel

Type: `number`\
Default: `3`

Select an optimization level between `0` and `7`.

> The optimization level 0 enables a set of optimization operations that require minimal effort. There will be no changes to image attributes like bit depth or color type, and no recompression of existing IDAT datastreams. The optimization level 1 enables a single IDAT compression trial. The trial chosen is what. OptiPNG thinks it’s probably the most effective. The optimization levels 2 and higher enable multiple IDAT compression trials; the higher the level, the more trials.

Level and trials:

1. 1 trial
2. 8 trials
3. 16 trials
4. 24 trials
5. 48 trials
6. 120 trials
7. 240 trials

##### bitDepthReduction

Type: `boolean`\
Default: `true`

Apply bit depth reduction.

##### colorTypeReduction

Type: `boolean`\
Default: `true`

Apply color type reduction.

##### paletteReduction

Type: `boolean`\
Default: `true`

Apply palette reduction.

##### interlaced

Type: `boolean | undefined | null`\
Default: `false`

Enable [Adam7](https://en.wikipedia.org/wiki/Adam7_algorithm) PNG interlacing on any images that are processed. Interlaced images look better when they're loaded partially, but usually interlace makes compression less efficient. Set to `undefined` or `null` to keep the same interlacing as the input image.

##### errorRecovery

Type: `boolean`\
Default: `true`

A reasonable amount of effort will be spent to try to recover as much data as possible of a broken image, but the success cannot generally be guaranteed.

#### buffer

Type: `Buffer`

Buffer to optimize.
npm package: @localnerve/imagemin-pngquant
Description: Imagemin plugin for `pngquant`
Latest version: 12.4.4

# imagemin-pngquant 

[![test](https://github.com/localnerve/imagemin-pngquant/actions/workflows/test.yml/badge.svg)](https://github.com/localnerve/imagemin-pngquant/actions/workflows/test.yml)

> [Imagemin](https://github.com/imagemin/imagemin) plugin for [`pngquant`](https://github.com/kornelski/pngquant)

> A maintained, updated fork of [imagemin-pngquant](https://github.com/imagemin/imagemin-pngquant)   
>   Node 18+  
>   ESM  
>   Security and dependency updates  

## Install

```
$ npm install imagemin-pngquant
```
### Prerequisites
> **Linux** machines must have the following packages prior to install: `libpng-dev libimagequant-dev`  
```
sudo apt-get -y install libpng-dev libimagequant-dev
```

> **Macosx** machines must have the following package prior to install: `libimagequant pkg-config`
```
brew install libimagequant pkg-config
```

## Usage

```js
const imagemin = require('imagemin');
const imageminPngquant = require('imagemin-pngquant');

(async () => {
	await imagemin(['images/*.png'], {
		destination: 'build/images',
		plugins: [
			imageminPngquant()
		]
	});

	console.log('Images optimized');
})();
```


## API

### imageminPngquant(options?)(input)

Returns `Promise<Buffer>`.

#### options

Type: `object`

##### speed

Type: `number`<br>
Default: `4`<br>
Values: `1` (brute-force) to `11` (fastest)

Speed `10` has 5% lower quality, but is about 8 times faster than the default. Speed `11` disables dithering and lowers compression level.

##### strip

Type: `boolean`<br>
Default: `false`

Remove optional metadata.

##### quality

Type: `Array<min: number, max: number>`<br>
Values: `Array<0...1, 0...1>`<br>
Example: `[0.3, 0.5]`

Instructs pngquant to use the least amount of colors required to meet or exceed
the max quality. If conversion results in quality below the min quality the
image won't be saved.

Min and max are numbers in range 0 (worst) to 1 (perfect), similar to JPEG.

##### dithering

Type: `number | boolean`<br>
Default: `1` (full)<br>
Values: `0...1`

Set the dithering level using a fractional number between 0 (none) and 1 (full).

Pass in `false` to disable dithering.

##### posterize

Type: `number`

Truncate number of least significant bits of color (per channel). Use this when image will be output on low-depth displays (e.g. 16-bit RGB). pngquant will make almost-opaque pixels fully opaque and will reduce amount of semi-transparent colors.

##### verbose

Type: `boolean`<br>
Default: `false`

Print verbose status messages.

#### input

Type: `Buffer | Stream`

Buffer or stream to optimize.
npm package: @localnerve/imagemin-svgo
Description: SVGO imagemin plugin
Latest version: 12.0.2

# imagemin-svgo ![GitHub Actions Status](https://github.com/imagemin/imagemin-svgo/workflows/test/badge.svg?branch=main)

> [SVGO](https://github.com/svg/svgo) imagemin plugin

## Install

```sh
npm install imagemin-svgo
```

## Usage

```js
import imagemin from 'imagemin';
import imageminSvgo from 'imagemin-svgo';

await imagemin(['images/*.svg'], {
	destination: 'build/images',
	plugins: [
		imageminSvgo({
			plugins: [{
				name: 'removeViewBox',
				active: false
			}]
		})
	]
});

console.log('Images optimized');
```

## API

### imageminSvgo(options?)(buffer)

Returns a `Promise<Buffer>`.

#### options

Type: `object`

Pass options to [SVGO](https://github.com/svg/svgo#configuration).

#### buffer

Type: `Buffer`

The buffer to optimize.
npm package: @localnerve/json-html
Description: A command to convert json to collapsible html using stdin/out
Author: Alex Grant
Latest version: 9.0.0

# json-html

> A simple, safe command to convert json to collapsible html for human inspection.  

![Verify](https://github.com/localnerve/json-html/workflows/Verify/badge.svg)

A command-line utility that takes json from stdin and writes collapsible html to stdout.  
This exists to provide an alternative to popular "json viewer" Chrome extensions.

## Usage

### Install
```shell
npm install -g @localnerve/json-html
```

### Run
```shell
cat input.json | json-html >output.html
// or go at an endpoint directly
curl 'https://api.example.com/path/item' | json-html >output.html
```

### License
License: MIT
npm package: @localrepo/pledge
Description: Use @localrepo/* for your monorepo package names
Author: Benjie Gillam
Latest version: 1.0.0

# @localrepo/pledge

My name is Benjie Gillam; you can find me on Twitter, GitHub and npm as
@benjie. I hereby pledge that I shall not publish any packages other than this
package to the `@localrepo` scope on the npm registry.

## Why?

The aim of this pledge it to make using `@localrepo/*` as the name of packages
in your own monorepos a relatively safe thing to do (no risk of hijacking).

## To npm employees:

I hereby grant you permission to remove any package within the `@localrepo`
scope (i.e. packages named `@localrepo/*`) except for this `@localrepo/pledge`
package without warning or confirmation.

## How can I trust this?

- Visit https://www.npmjs.com/org/localrepo and assert there's only one package
- Visit https://github.com/benjie/localrepo-pledge and see this content
- Visit https://github.com/sponsors/benjie for some social proof

## How might this change in future?

I'm hoping that npm will make something like this official. If they want to do
so using this namespace I'd certainly be happy to discuss it with them; that
may result in this package disappearing and myself ceding control of the
`@localrepo` scope to npm.

## Keywords

To help people find this npm scope, here's some search terms they might use
(also search terms I used to try and find an already existing scope like this):

- safe npm scope for monorepo
- npm organization for local package names
- reserved npm namespace for monorepos
- scope to avoid npm dependency hijacking
- monorepo package naming
npm package: @locals/eslint-config-locals-fabric
Description: 用于提升项目管理效率的工具集
Latest version: 1.1.2

# fabric

#### 介绍
代码质量检查

#### 安装
```
npx install-peerdeps --dev eslint-config-locals-fabric --registry https://devnode.localhome.com.cn/npm/
--- or
yarn add eslint-config-locals-fabric --peer --dev --registry https://devnode.localhome.com.cn/npm/
--- or
npm install eslint babel-eslint babel-plugin-react eslint-config-locals-fabric --registry https://devnode.localhome.com.cn/npm/
```

> 为了确保其他人能正常安装，请保留 yarn.lock 或 package-lock.json  

#### 使用

```
.eslintrc

{
  "extends": "locals-fabric",
  rules: {
    ... 其他需要覆盖的规则
  }
}

```
npm package: @locals/fet
Description: > 基于 axios 的网络请求库
Latest version: 1.0.4

# fet

> 基于 axios 的网络请求库

## 计划

- [x] typescript
- [x] husky
- [x] commitlint
- [x] eslint
- [x] prettier
- [x] rollup
- [ ] jest
npm package: @locals/ionic-webview
Description: ionic webview
Author: oyx,zym
Latest version: 0.2.34


## ionic webview

## 使用
```
import { Plugin } from "@capacitor/core"

Plugin.IonicWebView.open({ url: "https://m.localhome.cn" })
```

## 方法

### open
打开网页

### close
关闭 webview

### postMessage
向 webview 发送消息
```
// 向 webview 发送 data 的值
Plugin.IonicWebView.postMessage({ data: "xxx" })
```
### clearDataStore
清空 webview 的缓存数据

### setNavigationBarHidden
```typescript
interface IOption {
    // 是否隐藏导航栏
    hidden: boolean
    // 返回按钮文字
    backButtonTitle: string
    // 标题文字
    title: string
}

Plugin.IonicWebView.setNavigationBarHidden(data: IOption)
```