open-index/open-npm huggingface dataset:
npm package: @snicesoft/apicloud-module-checker
Description: #### Description apicloud 模块冲突检查工具
Author: zhuzhe
Latest version: 1.0.0

# apicloud-module-checker

#### Description
apicloud 模块冲突检查工具

#### Software Architecture
Software architecture description

#### Installation

1.  xxxx
2.  xxxx
3.  xxxx

#### Instructions

1.  xxxx
2.  xxxx
3.  xxxx

#### Contribution

1.  Fork the repository
2.  Create Feat_xxx branch
3.  Commit your code
4.  Create Pull Request


#### Gitee Feature

1.  You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
2.  Gitee blog [blog.gitee.com](https://blog.gitee.com)
3.  Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
4.  The most valuable open source project [GVP](https://gitee.com/gvp)
5.  The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
6.  The most popular members  [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
npm package: @snicesoft/cwebp-bin
Description: cwebp wrapper that makes it seamlessly available as a local dependency
Author: 1000ch
Latest version: 5.1.2

# cwebp-bin [![Build Status](https://travis-ci.org/imagemin/cwebp-bin.svg?branch=master)](https://travis-ci.org/imagemin/cwebp-bin)

> [WebP](https://developers.google.com/speed/webp/) is a new image format that provides lossless and lossy compression for images on the web. WebP lossless images are 26% smaller in size compared to PNGs. WebP lossy images are 25-34% smaller in size compared to JPEG images at equivalent SSIM index.

You probably want [`imagemin-webp`](https://github.com/imagemin/imagemin-webp) instead.


## Install

```
$ npm install cwebp-bin
```


## Usage

```js
const {execFile} = require('child_process');
const cwebp = require('cwebp-bin');

execFile(cwebp, ['input.png', '-o', 'output.webp'], err => {
	if (err) {
		throw err;
	}

	console.log('Image is converted!');
});
```


## CLI

```
$ npm install --global cwebp-bin
```

```
$ cwebp --help
```


## License

MIT © [Imagemin](https://github.com/imagemin)
npm package: @snicesoft/gifsicle
Description: gifsicle wrapper that makes it seamlessly available as a local dependency
Author: Kevin Martensson
Latest version: 4.0.1

# gifsicle-bin [![Build Status](https://travis-ci.org/imagemin/gifsicle-bin.svg?branch=master)](https://travis-ci.org/imagemin/gifsicle-bin)

> gifsicle manipulates GIF image files in many different ways. Depending on command line options, it can merge several GIFs into a GIF animation; explode an animation into its component frames; change individual frames in an animation; turn interlacing on and off; add transparency and much more.

You probably want [`imagemin-gifsicle`](https://github.com/imagemin/imagemin-gifsicle) instead.


## Install

```
$ npm install gifsicle
```


## Usage

```js
const {execFile} = require('child_process');
const gifsicle = require('gifsicle');

execFile(gifsicle, ['-o', 'output.gif', 'input.gif'], err => {
	console.log('Image minified!');
});
```


## CLI

```
$ npm install --global gifsicle
```

```
$ gifsicle --help
```


## License

MIT © [Imagemin](https://github.com/imagemin)
npm package: @snicesoft/imagemin
Description: Minify images seamlessly
Latest version: 7.0.1

# imagemin [![Build Status](https://travis-ci.org/imagemin/imagemin.svg?branch=master)](https://travis-ci.org/imagemin/imagemin)

> Minify images seamlessly

---

<div align="center">
	<sup>Gumlet is helping make open source sustainable by sponsoring Sindre Sorhus.</sup>
	<a href="https://www.gumlet.com">
		<div>
			<img src="https://sindresorhus.com/assets/thanks/gumlet-logo.svg" width="300"/>
		</div>
		<sup><b>Optimised Image Delivery made simple</b></sup>
	</a>
</div>

---


## Install

```
$ npm install imagemin
```


## Usage

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

(async () => {
	const files = await imagemin(['images/*.{jpg,png}'], {
		destination: 'build/images',
		plugins: [
			imageminJpegtran(),
			imageminPngquant({
				quality: [0.6, 0.8]
			})
		]
	});

	console.log(files);
	//=> [{data: <Buffer 89 50 4e …>, path: 'build/images/foo.jpg'}, …]
})();
```


## API

### imagemin(input, options?)

Returns `Promise<object[]>` in the format `{data: Buffer, sourcePath: string, destinationPath: string}`.

#### input

Type: `string[]`

File paths or [glob patterns](https://github.com/sindresorhus/globby#globbing-patterns).

#### options

Type: `object`

##### destination

Type: `string`

Set the destination folder to where your files will be written. If no destination is specified, no files will be written.

##### plugins

Type: `Array`

[Plugins](https://www.npmjs.com/browse/keyword/imageminplugin) to use.

##### glob

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

Enable globbing when matching file paths.

### imagemin.buffer(buffer, options?)

Returns `Promise<Buffer>`.

#### buffer

Type: `Buffer`

Buffer to optimize.

#### options

Type: `object`

##### plugins

Type: `Array`

[Plugins](https://www.npmjs.com/browse/keyword/imageminplugin) to use.


## Related

- [imagemin-cli](https://github.com/imagemin/imagemin-cli) - CLI for this module
- [imagemin-app](https://github.com/imagemin/imagemin-app) - GUI app for this module
- [gulp-imagemin](https://github.com/sindresorhus/gulp-imagemin) - Gulp plugin
- [grunt-contrib-imagemin](https://github.com/gruntjs/grunt-contrib-imagemin) - Grunt plugin
npm package: @snicesoft/imagemin-gifsicle
Description: Imagemin plugin for Gifsicle
Latest version: 6.0.2

# imagemin-gifsicle [![Build Status](http://img.shields.io/travis/imagemin/imagemin-gifsicle.svg?style=flat)](https://travis-ci.org/imagemin/imagemin-gifsicle)

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


## Install

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


## Usage

```js
const imagemin = require('@snicesoft/imagemin');
const imageminGifsicle = require('@snicesoft/imagemin-gifsicle');

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

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


## API

### imageminGifsicle([options])(buffer)

Returns a promise for a buffer.

#### options

Type: `Object`

##### interlaced

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

Interlace gif for progressive rendering.

##### optimizationLevel

Type: `number`<br>
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.


## License

MIT © [imagemin](https://github.com/imagemin)
npm package: @snicesoft/imagemin-jpegtran
Description: jpegtran imagemin plugin
Author: Kevin Mårtensson
Latest version: 6.0.1

# imagemin-jpegtran [![Build Status](https://travis-ci.org/imagemin/imagemin-jpegtran.svg?branch=master)](https://travis-ci.org/imagemin/imagemin-jpegtran)

> jpegtran imagemin plugin


## Install

```
$ npm install --save imagemin-jpegtran
```


## Usage

```js
const imagemin = require('@snicesoft/imagemin');
const imageminJpegtran = require('@snicesoft/imagemin-jpegtran');

imagemin(['images/*.jpg'], 'build/images', {use: [imageminJpegtran()]}).then(() => {
	console.log('Images optimized');
});
```


## API

### imageminJpegtran([options])(buffer)

Returns a promise for a buffer.

#### options

##### progressive

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

Lossless conversion to progressive.

##### arithmetic

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

Use [arithmetic coding](http://en.wikipedia.org/wiki/Arithmetic_coding).

#### buffer

Type: `buffer`

Buffer to optimize.


## License

MIT © [imagemin](https://github.com/imagemin)
npm package: @snicesoft/imagemin-mozjpeg
Description: Imagemin plugin for mozjpeg
Author: Kevin Mårtensson
Latest version: 8.0.1

# imagemin-mozjpeg [![Build Status](https://travis-ci.org/imagemin/imagemin-mozjpeg.svg?branch=master)](https://travis-ci.org/imagemin/imagemin-mozjpeg)

> [Imagemin](https://github.com/imagemin/imagemin) plugin for [mozjpeg](https://github.com/mozilla/mozjpeg)


## Install

```
$ npm install imagemin-mozjpeg
```


## Usage

```js
const imagemin = require('@snicesoft/imagemin');
const imageminMozjpeg = require('@snicesoft/imagemin-mozjpeg');

(async () => {
	await imagemin(['images/*.jpg'], 'build/images', {
		use: [
			imageminMozjpeg()
		]
	});

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


## API

### imageminMozjpeg([options])(buffer)

Returns a `Promise<Buffer>`.

#### options

##### quality

Type: `number`

Compression quality, in range `0` (worst) to `100` (perfect).

##### progressive

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

`false` creates baseline JPEG file.

##### targa

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

Input file is Targa format (usually not needed).

##### revert

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

Revert to standard defaults instead of mozjpeg defaults.

##### fastCrush

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

Disable progressive scan optimization.

##### dcScanOpt

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

Set DC scan optimization mode.

- `0` One scan for all components
- `1` One scan per component
- `2` Optimize between one scan for all components and one scan for 1st component plus one scan for remaining components

##### trellis

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

[Trellis optimization](https://en.wikipedia.org/wiki/Trellis_quantization).

##### trellisDC

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

Trellis optimization of DC coefficients.

##### tune

Type: `string`<br>
Default: `hvs-psnr`

Set Trellis optimization method. Available methods: `psnr`, `hvs-psnr`, `ssim`, `ms-ssim`

##### overshoot

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

Black-on-white deringing via overshoot.

##### arithmetic

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

Use [arithmetic coding](https://en.wikipedia.org/wiki/Arithmetic_coding).

##### dct

Type: `string`<br>
Default: `int`

Set [DCT](https://en.wikipedia.org/wiki/Discrete_cosine_transform) method:

- `int` Use integer DCT
- `fast` Use fast integer DCT (less accurate)
- `float` Use floating-point DCT

##### quantBaseline

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

Use 8-bit quantization table entries for baseline JPEG compatibility.

##### quantTable

Type: `number`

Use predefined quantization table.

- `0` JPEG Annex K
- `1` Flat
- `2` Custom, tuned for MS-SSIM
- `3` ImageMagick table by N. Robidoux
- `4` Custom, tuned for PSNR-HVS
- `5` Table from paper by Klein, Silverstein and Carney

##### smooth

Type: `number`

Set the strength of smooth dithered input. (1...100)

##### maxMemory

Type: `number`

Set the maximum memory to use in kilobytes.

##### sample

Type: `string[]`

Set component sampling factors. Each item should be in the format `HxV`, for example `2x1`.

#### buffer

Type: `buffer`

Buffer to optimize.


## License

MIT © [Imagemin](https://github.com/imagemin)
npm package: @snicesoft/imagemin-optipng
Description: Imagemin plugin for OptiPNG
Latest version: 7.0.1

# imagemin-optipng [![Build Status](http://img.shields.io/travis/imagemin/imagemin-optipng.svg?style=flat)](https://travis-ci.org/imagemin/imagemin-optipng)

> Imagemin plugin for OptiPNG


## Install

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


## Usage

```js
const imagemin = require('@snicesoft/imagemin');
const imageminOptipng = require('@snicesoft/imagemin-optipng');

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

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


## API

### imageminOptipng([options])(buffer)

Returns a `Promise<Buffer>`.

#### options

Type: `object`

##### optimizationLevel

Type: `number`<br>
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`<br>
Default: `true`

Apply bit depth reduction.

##### colorTypeReduction

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

Apply color type reduction.

##### paletteReduction

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

Apply palette reduction.

#### buffer

Type: `Buffer`

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

# imagemin-pngquant [![Build Status](https://travis-ci.org/imagemin/imagemin-pngquant.svg?branch=master)](https://travis-ci.org/imagemin/imagemin-pngquant)

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


## Install

```
$ npm install imagemin-pngquant
```


## Usage

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

(async () => {
	await imagemin(['images/*.png'], '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: @snicesoft/imagemin-svgo
Description: SVGO imagemin plugin
Latest version: 7.0.0

# imagemin-svgo [![Build Status](https://travis-ci.org/imagemin/imagemin-svgo.svg?branch=master)](https://travis-ci.org/imagemin/imagemin-svgo)

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


## Install

```
$ npm install imagemin-svgo
```


## Usage

```js
const imagemin = require('imagemin');
const imageminSvgo = require('imagemin-svgo');

(async () => {
	await imagemin(['images/*.svg'], 'build/images', {
		use: [
			imageminSvgo({
				plugins: [
					{removeViewBox: 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#what-it-can-do).

#### buffer

Type: `Buffer`

Buffer to optimize.


## License

MIT © [imagemin](https://github.com/imagemin)
npm package: @snicesoft/imagemin-webp
Description: WebP imagemin plugin
Author: Kevin Mårtensson
Latest version: 5.1.2

# imagemin-webp [![Build Status](https://travis-ci.org/imagemin/imagemin-webp.svg?branch=master)](https://travis-ci.org/imagemin/imagemin-webp)

> WebP [imagemin](https://github.com/imagemin/imagemin) plugin


## Install

```
$ npm install imagemin-webp
```


## Usage

```js
const imagemin = require('@snicesoft/imagemin');
const imageminWebp = require('@snicesoft/imagemin-webp');

imagemin(['images/*.{jpg,png}'], 'build/images', {
	use: [
		imageminWebp({quality: 50})
	]
}).then(() => {
	console.log('Images optimized');
});
```


## API

### imageminWebp([options])(buffer)

#### options

Type: `Object`

##### preset

Type: `string`<br>
Default: `default`

Preset setting, one of `default`, `photo`, `picture`, `drawing`, `icon` and `text`.

##### quality

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

Set quality factor between `0` and `100`.

##### alphaQuality

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

Set transparency-compression quality between `0` and `100`.

##### method

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

Specify the compression method to use, between `0` (fastest) and `6` (slowest). This parameter controls the trade off between encoding speed and the compressed file size and quality.

##### size

Type: `number`<br>

Set target size in bytes.

##### sns

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

Set the amplitude of spatial noise shaping between `0` and `100`.

##### filter

Type: `number`<br>

Set deblocking filter strength between `0` (off) and `100`.

##### autoFilter

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

Adjust filter strength automatically.

##### sharpness

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

Set filter sharpness between `0` (sharpest) and `7` (least sharp).

##### lossless

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

Encode images losslessly.

##### nearLossless

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

Encode losslessly with an additional [lossy pre-processing step](https://groups.google.com/a/webmproject.org/forum/#!msg/webp-discuss/0GmxDmlexek/3ggyYsaYdFEJ), with a quality factor between `0` (maximum pre-processing) and `100` (same as `lossless`).

##### crop

Type: `Object { x: number, y: number, width: number, height: number }`

Crop the image.

##### resize

Type: `Object { width: number, height: number }`

Resize the image. Happens after `crop`.

##### metadata

Type: `string | string[]`<br>
Default: `none`<br>
Values: `all` `none` `exif` `icc` `xmp`

A list of metadata to copy from the input to the output if present.

#### buffer

Type: `Buffer`

Buffer to optimize.


## License

MIT © [Imagemin](https://github.com/imagemin)
npm package: @snicesoft/jpegtran-bin
Description: jpegtran (part of libjpeg-turbo) bin-wrapper that makes it seamlessly available as a local dependency
Author: Sindre Sorhus
Latest version: 4.0.0

# jpegtran-bin [![Build Status](https://travis-ci.org/imagemin/jpegtran-bin.svg?branch=master)](https://travis-ci.org/imagemin/jpegtran-bin)

> [libjpeg-turbo](http://libjpeg-turbo.virtualgl.org/) is a derivative of libjpeg that uses SIMD instructions (MMX, SSE2, NEON) to accelerate baseline JPEG compression and decompression on x86, x86-64, and ARM systems. On such systems, libjpeg-turbo is generally 2-4x as fast as the unmodified version of libjpeg, all else being equal.

You probably want [`imagemin-jpegtran`](https://github.com/imagemin/imagemin-jpegtran) instead.


## Install

```
$ npm install --save jpegtran-bin
```


## Usage

```js
var execFile = require('child_process').execFile;
var jpegtran = require('jpegtran-bin');

execFile(jpegtran, ['-outfile', 'output.jpg', 'input.jpg'], function (err) {
	console.log('Image minified!');
});
```


## CLI

```
$ npm install --global jpegtran-bin
```

```
$ jpegtran --help
```


## License

MIT © [Imagemin](https://github.com/imagemin)
npm package: @snicesoft/mozjpeg
Description: mozjpeg wrapper that makes it seamlessly available as a local dependency
Latest version: 6.0.2

# mozjpeg-bin [![Build Status](https://travis-ci.org/imagemin/mozjpeg-bin.svg?branch=master)](http://travis-ci.org/imagemin/mozjpeg-bin)

> [mozjpeg](https://github.com/mozilla/mozjpeg) is a production-quality JPEG encoder that improves compression while maintaining compatibility with the vast majority of deployed decoders

You probably want [`imagemin-mozjpeg`](https://github.com/imagemin/imagemin-mozjpeg) instead.


## Install

```
$ npm install mozjpeg
```


## Usage

```js
const {execFile} = require('child_process');
const mozjpeg = require('mozjpeg');

execFile(mozjpeg, ['-outfile', 'output.jpg', 'input.jpg'], err => {
	console.log('Image minified!');
});
```


## CLI

```
$ npm install --global mozjpeg
```

```
$ mozjpeg --help
```


## License

MIT © [Imagemin](https://github.com/imagemin)
npm package: @snicesoft/optipng-bin
Description: OptiPNG wrapper that makes it seamlessly available as a local dependency
Latest version: 6.0.0

# optipng-bin [![Build Status](https://travis-ci.org/imagemin/optipng-bin.svg?branch=master)](https://travis-ci.org/imagemin/optipng-bin)

> [OptiPNG](http://optipng.sourceforge.net) is a PNG optimizer that recompresses image files to a smaller size, without losing any information

You probably want [`imagemin-optipng`](https://github.com/imagemin/imagemin-optipng) instead.


## Install

```
$ npm install --save optipng-bin
```


## Usage

```js
const {promisify} = require('util');
const {execFile} = require('child_process');
const optipng = require('optipng-bin');

const execFileP = promsify(execFile);

(async () => {
	await execFile(optipng, ['-out', 'output.png', 'input.png']);
	console.log('Image minified!');
})();
```


## CLI

```
$ npm install --global optipng-bin
```

```
$ optipng --help
```
npm package: @snicesoft/pngquant-bin
Description: `pngquant` wrapper that makes it seamlessly available as a local dependency
Author: Kevin Mårtensson
Latest version: 5.0.2

# pngquant-bin [![Build Status](https://travis-ci.org/imagemin/pngquant-bin.svg?branch=master)](https://travis-ci.org/imagemin/pngquant-bin)

> [`pngquant`](https://github.com/pornel/pngquant) is a PNG compressor that significantly reduces file sizes by converting images to a more efficient 8-bit PNG format

You probably want [`imagemin-pngquant`](https://github.com/imagemin/imagemin-pngquant) instead.


## Install

```
$ npm install pngquant-bin
```


## Usage

```js
const execFile = require('child_process').execFile;
const pngquant = require('pngquant-bin');

execFile(pngquant, ['-o', 'output.png', 'input.png'], err => {
	console.log('Image minified!');
});
```


## CLI

```
$ npm install --global pngquant-bin
```

```
$ pngquant --help
```


## Updating pre-compiled binaries

The Linux binaries are statically linked so they should work on all Linux distributions. To recompile them:

1. `sudo apt-get install libpng-dev`
2. `./configure CFLAGS=-static && make && cp pngquant pngquant-64`
3. Repeat the above commands, but in a 32-bin docker container started with: docker run -ti -v `pwd`:/source i386/debian:9.3 bash


## License

MIT © [Imagemin](https://github.com/imagemin)
npm package: @snicesoft/vite-plugin-uni-layouts
Description: Customizable layouts framework for uni-app applications using Vite.
Author: KeJun
Latest version: 0.0.1

# @snicesoft/vite-plugin-uni-layouts

Vite 下 uni-app 的可定制布局框架

## 安装

```bash
pnpm i -D @snicesoft/vite-plugin-uni-layouts
```

## 使用

### 配置

```ts
// vite.config.ts
import { defineConfig } from "vite";
import uni from "@dcloudio/vite-plugin-uni";
import UniLayouts from "@snicesoft/vite-plugin-uni-layouts";

export default defineConfig({
  plugins: [UniLayouts(), uni()],
});
```

hbx建议使用easycom，可兼容nvue。`pages.json` 增加easycom配置，如下：

```json
{
  "easycom": {
    "autoscan": true,
    "custom": {
      "^layout-(.*)-uni": "@/layouts/$1.vue"
    }
  },
  "pages": [...]
}
```

### 创建布局

在 `src/layouts` (hbx项目可能是`layouts`) 下创建布局

```vue
<!-- default.vue -->
<template>
  <slot>main</slot>
</template>
```

### 应用布局

在 pages.json 中的页面中添加 layout 配置

```json
// pages.json
{
  ...
  "pages": [{
    "path": "pages/index/index",
    // 可选, 这是默认值
    "layout": "default"
  }]
  ...
}
```

### 禁用布局

```json
// pages.json
{
  ...
  "pages": [{
    "path": "pages/index/index",
    "layout": false
  }]
  ...
}
```

### 使用布局的插槽

你需要先**禁用页面**的布局， 然后使用内置组件 `<uni-layout />`, 使用 `name`
属性指定布局，支持动态绑定 name、ref 等任意属性

```vue
<script setup>
const defaultName = ref('default')
</script>
<template>
  <uni-layout :name="defaultName">
    <template #header>uni-layout header</template>
    use slot
    <template #footer>uni-layout footer</template>
  </uni-layout>
</template>
```

### `ref`

只需声明一个 ref 变量 `uniLayout` 即可访问

```vue
<script setup>
const uniLayout = ref()
</script>
```

或者

```vue
<script>
export default {
  onLoad() {
    console.log(this.$refs.uniLayout)
  }
}
</script>
```

## 配置

see [type.ts](./src/types.ts)

## 注意

layout 插件并非使用了什么魔法，它只做了两件事：

1. 自动扫描并全局注册 layouts 目录下的组件
2. 将页面使用 layout 组件包裹起来 所以，在微信小程序下，如果你使用了 web-view ,
   那么不会生效。

如果你使用
[vite-plugin-uni-pages](https://github.com/uni-helper/vite-plugin-uni-pages),
只需使用 route-block

```vue
<route lang="json">
{
  "layout": "anyLayout"
}
</route>
```

## TODO

- [x] ref 支持
- [x] 动态布局
- [ ] 类型安全
npm package: @snickbit/ansi
Description: Cross-platform replacement for chalk/ansi-* modules.
Latest version: 0.0.26

# @snickbit/ansi

Cross-platform replacement for chalk/ansi-* modules.

Replaces:

- [chalk/ansi-styles](https://github.com/chalk/ansi-styles)
- [chalk/ansi-regex](https://github.com/chalk/ansi-regex)
- [chalk/strip-ansi](https://github.com/chalk/strip-ansi)

## Installation

```bash
yarn add @snickbit/ansi
```

```bash
npm add @snickbit/ansi
```

## Usage

```js
import {ansiStyles, ansiRegex, stripAnsi} from '@snickbit/ansi';
```

```js
const {ansiStyles, ansiRegex, stripAnsi} = require('@snickbit/ansi');
```

## Documentation

### [API Docs](https://github.com/snickbit/ansi/blob/main/docs/README.md)

### [CHANGELOG](https://github.com/snickbit/ansi/blob/main/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/ansi/blob/main/LICENSE)
npm package: @snickbit/controller
Description: Minimal state management using an extendable controller class
Latest version: 1.0.17

# @snickbit/controller

<!--START_SECTION:readmes-description-->

Minimal state management using an extendable controller class

<!--END_SECTION:readmes-description-->

## Installation
```bash
pnpm add @snickbit/controller
```

```bash
yarn add @snickbit/controller
```

```bash
npm i @snickbit/controller
```

## Documentation

### [API Docs](../../README.md)

### [CHANGELOG](CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](../../LICENSE)
npm package: @snickbit/cycle
Description: Helper function and class to cycle through an array of values
Latest version: 1.0.27

# @snickbit/cycle

<!--START_SECTION:readmes-description-->

Helper function and class to cycle through an array of values

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/cycle
```

```bash
npm add @snickbit/cycle
```

## Basic Usage

```js
import {Cycle} from '@snickbit/cycle'

const cycle = new Cycle([1, 2, 3])

console.log(cycle.next()) // 1
console.log(cycle.next()) // 2
console.log(cycle.next()) // 3
console.log(cycle.next()) // 1
console.log(cycle.current()) // 1
console.log(cycle.prev()) // 3
```

## Presets

Cycle comes with few presets for common uses. More to come as needed.

### Usage

```js
const hexColorCycle = new Cycle('hex')
```

### ansi

```json
[
	"red",
	"green",
	"yellow",
	"magenta",
	"cyan",
	"redBright",
	"greenBright",
	"yellowBright",
	"blueBright",
	"magentaBright",
	"cyanBright"
]
```

### ansiBackgrounds

```json
[
	"bgBlack",
	"bgRed",
	"bgGreen",
	"bgYellow",
	"bgBlue",
	"bgMagenta",
	"bgCyan",
	"bgWhite",
	"bgBlackBright",
	"bgRedBright",
	"bgGreenBright",
	"bgYellowBright",
	"bgBlueBright",
	"bgMagentaBright",
	"bgCyanBright",
	"bgWhiteBright"
]
```

### ansiForegrounds

```json
[
	"red",
	"green",
	"yellow",
	"blue",
	"magenta",
	"cyan",
	"white",
	"gray",
	"redBright",
	"greenBright",
	"yellowBright",
	"blueBright",
	"magentaBright",
	"cyanBright",
	"whiteBright"
]
```

### ansiAll

```json
[
	"red",
	"green",
	"yellow",
	"blue",
	"magenta",
	"cyan",
	"white",
	"gray",
	"redBright",
	"greenBright",
	"yellowBright",
	"blueBright",
	"magentaBright",
	"cyanBright",
	"whiteBright",
	"bgBlack",
	"bgRed",
	"bgGreen",
	"bgYellow",
	"bgBlue",
	"bgMagenta",
	"bgCyan",
	"bgWhite",
	"bgBlackBright",
	"bgRedBright",
	"bgGreenBright",
	"bgYellowBright",
	"bgBlueBright",
	"bgMagentaBright",
	"bgCyanBright",
	"bgWhiteBright"
]
```

### hex

```json
[
	"#FFC400",
	"#F9F1A5",
	"#15B40C",
	"#61D6D6",
	"#3A96DD",
	"#3B78FF",
	"#7B1689",
	"#B4009E",
	"#E74856",
	"#C50F1F"
]
```

### rgb

```json
[
	"rgb(255,196,0)",
	"rgb(249,241,165)",
	"rgb(21,180,12)",
	"rgb(97,214,214)",
	"rgb(58,150,221)",
	"rgb(59,120,255)",
	"rgb(123,22,137)",
	"rgb(180,0,158)",
	"rgb(231,72,86)",
	"rgb(197,15,31)"
]
```

### quasar

```json
[
	"pink",
	"purple",
	"deep-purple",
	"indigo",
	"blue",
	"light-blue",
	"cyan",
	"teal",
	"green",
	"light-green",
	"orange",
	"deep-orange",
	"brown",
	"grey",
	"blue-grey"
]
```

## Documentation

### [API Docs](../../README.md)

### [CHANGELOG](CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](../../LICENSE)
npm package: @snickbit/dates
Description: Extended Date and Time functionality for Dayjs
Latest version: 1.0.80

# @snickbit/dates

<!--START_SECTION:readmes-description-->

Extended Date and Time functionality for Dayjs

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/dates
```

```bash
npm add @snickbit/dates
```

## Usage

```js
import {dates} from '@snickbit/dates'

console.log(dates('2022-01-15').shortdate()) // '01/15/2022'
console.log(dates('2022-01-15').shorttime()) // '12:00 am'
// more quick presets in the docs

const duration = dates.duration(2500)
console.log(duration.humanize()) // 'a few seconds' - normal Dayjs duration output
console.log(duration.toWords()) // '2s and 500ms' - extended output
console.log(duration.toWords(true)) // '2 seconds' - consult the docs for more options
```

## Documentation

### [API Docs](./docs/README.md)

### [CHANGELOG](CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](../../LICENSE)
npm package: @snickbit/fa-gen
Description: Easily generate tree-shaken Font Awesome library loader files for Vue.js
Latest version: 1.1.86

# @snickbit/fa-gen

Easily generate tree-shaken Font Awesome library loader files for Vue.js

This project includes 2 parts, a cli tool to generate a tree-shaken Font Awesome library loader file, and a small library to load the generated file into your app.

## Installation

```bash
yarn add @snickbit/fa-gen
```

```bash
npm add @snickbit/fa-gen
```

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/fa-gen/blob/main/LICENSE)
npm package: @snickbit/feathers-auth-api
Description: FeathersJS API Key Authentication
Latest version: 1.0.10

# @snickbit/feathers-auth-api

<!--START_SECTION:readmes-description-->

FeathersJS API Key Authentication

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-auth-api
```

```bash
npm add @snickbit/feathers-auth-api
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-auth-api/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-auth-api/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-files
Description: Files adapter for FeathersJS
Latest version: 2.0.30

# @snickbit/feathers-files

<!--START_SECTION:readmes-description-->

Files adapter for FeathersJS

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-files
```

```bash
npm add @snickbit/feathers-files
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-files/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-files/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-helpers
Description: Helper functions for FeathersJS
Latest version: 1.0.21

# @snickbit/feathers-helpers

<!--START_SECTION:readmes-description-->

Helper functions for FeathersJS

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-helpers
```

```bash
npm add @snickbit/feathers-helpers
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-helpers/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-helpers/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-hooks
Description: Dynamic hook loader for Feathers
Latest version: 1.0.12

# @snickbit/feathers-hooks

<!--START_SECTION:readmes-description-->

Dynamic hook loader for Feathers

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-hooks
```

```bash
npm add @snickbit/feathers-hooks
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-hooks/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-hooks/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-logger
Description: <!--START_SECTION:readmes-description-->
Latest version: 1.0.19

# @snickbit/feathers-logger

<!--START_SECTION:readmes-description-->

Logging client for FeathersJS. Pairs with [@snickbit/feathers-logs](https://github.com/snickbit/feathers/blob/main/packages/feathers-logs).

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-logger
```

```bash
npm add @snickbit/feathers-logger
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-logger/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-logger/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-logs
Description: A Feathers.js service that logs events to MongoDB
Latest version: 1.0.27

# @snickbit/feathers-logs

<!--START_SECTION:readmes-description-->

A Feathers.js service that logs events to MongoDB. Pairs with [@snickbit/feathers-logger](https://github.com/snickbit/feathers/blob/main/packages/feathers-logger).

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-logs
```

```bash
npm add @snickbit/feathers-logs
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-logs/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-logs/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-model
Description: Data models for FeathersJS using @snickbit/model
Latest version: 1.0.22

# @snickbit/feathers-model

<!--START_SECTION:readmes-description-->

Data models for FeathersJS using [@snickbit/model](https://github.com/snickbit/snickbit.js/tree/main/packages/model).

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-model
```

```bash
npm add @snickbit/feathers-model
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-model/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-model/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-mongo
Description: Extended functionality for FeathersJS MongoDB database adapter
Latest version: 2.0.11

# @snickbit/feathers-mongo

<!--START_SECTION:readmes-description-->

Wrapper for [feathers-mongo](https://github.com/feathersjs-ecosystem/feathers-mongodb) with several enhancements and customizations.

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-mongo
```

```bash
npm add @snickbit/feathers-mongo
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-mongo/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-mongo/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-pouchdb
Description: PouchDB adapter for FeathersJS
Latest version: 0.0.17

# @snickbit/feathers-pouchdb

<!--START_SECTION:readmes-description-->

PouchDB adapter for FeathersJS.

<!--END_SECTION:readmes-description-->

## Installation
```bash
pnpm add @snickbit/feathers-pouchdb
```

```bash
yarn add @snickbit/feathers-pouchdb
```

```bash
npm i @snickbit/feathers-pouchdb
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers-pouchdb/blob/main/docs/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers-pouchdb/blob/main/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers-pouchdb/blob/main/LICENSE)
npm package: @snickbit/feathers-redis
Description: Feathers Redis Service
Latest version: 1.0.21

# @snickbit/feathers-redis

<!--START_SECTION:readmes-description-->

Redis service for FeathersJS.

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-redis
```

```bash
npm add @snickbit/feathers-redis
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-redis/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-redis/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-rest
Description: Feathers service for interactive with REST APIs
Latest version: 1.0.22

# @snickbit/feathers-rest

<!--START_SECTION:readmes-description-->

Feathers service for interactive with REST APIs

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-rest
```

```bash
npm add @snickbit/feathers-rest
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-rest/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-rest/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-tasks
Description: Task management for FeathersJS
Latest version: 2.0.37

# @snickbit/feathers-tasks

<!--START_SECTION:readmes-description-->

Task management for FeathersJS using [BullMQ](https://github.com/taskforcesh/bullmq)

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-tasks
```

```bash
npm add @snickbit/feathers-tasks
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-tasks/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-tasks/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-up
Description: Boot manager for FeathersJS with sane defaults
Latest version: 1.2.1

# @snickbit/feathers-up

<!--START_SECTION:readmes-description-->

Boot manager for FeathersJS with sane defaults

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-up
```

```bash
npm add @snickbit/feathers-up
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-up/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-up/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-up-mongodb
Description: MongoDB plugin for @snickbit/feathers-up
Latest version: 0.0.34

# @snickbit/feathers-up-mongodb

<!--START_SECTION:readmes-description-->

MongoDB plugin for @snickbit/feathers-up

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-up-mongodb
```

```bash
npm add @snickbit/feathers-up-mongodb
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-up-mongodb/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-up-mongodb/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-up-mysql
Description: MySQL/Knex plugin for @snickbit/feathers-up
Latest version: 0.0.34

# @snickbit/feathers-up-mysql

<!--START_SECTION:readmes-description-->

MySQL/Knex plugin for @snickbit/feathers-up

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-up-mysql
```

```bash
npm add @snickbit/feathers-up-mysql
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-up-mysql/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-up-mysql/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/feathers-up-redis
Description: Redis plugin for @snickbit/feathers-up
Latest version: 0.0.34

# @snickbit/feathers-up-redis

<!--START_SECTION:readmes-description-->

Redis plugin for @snickbit/feathers-up

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/feathers-up-redis
```

```bash
npm add @snickbit/feathers-up-redis
```

## Documentation

### [API Docs](https://github.com/snickbit/feathers/blob/main/packages/feathers-up-redis/README.md)

### [CHANGELOG](https://github.com/snickbit/feathers/blob/main/packages/feathers-up-redis/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/feathers/blob/main/LICENSE)
npm package: @snickbit/minia
Description: Teeny tiny Vue.js composition stores
Latest version: 0.0.46

# @snickbit/minia

Teeny tiny Vue.js composition stores

## Installation

```bash
yarn add @snickbit/minia
```

```bash
npm add @snickbit/minia
```

## Documentation

### [API Docs](https://github.com/snickbit/minia/blob/main/docs/README.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/minia/blob/main/LICENSE)
npm package: @snickbit/model
Description: Simple object modeling library
Latest version: 1.2.1

# @snickbit/model

<!--START_SECTION:readmes-description-->

Simple object modeling library based on [object-path](https://github.com/mariocasciaro/object-path)

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/model
```

```bash
npm add @snickbit/model
```

## Basic Usage

```js
import {Model} from '@snickbit/model';
// const { Model } = require('@snickbit/model');

// Use lowercase import for use as a function instead.
// import { model } from '@snickbit/model';

const data = {
	name: 'John Doe',
	age: 30,
	address: {
		street: '123 Main St',
		city: 'Anytown',
		state: 'CA',
		zip: '12345',
	},
}

const person = new Model(data);
// or as a function
// const person = model(data)

console.log(person.get('name')); // John Doe
console.log(person.get('address.street')); // 123 Main St
console.log(person.get('address.city')); // Anytown
console.log(person.get()); // { name: 'John Doe', age: 30, address: { street: '123 Main St', city: 'Anytown', state: 'CA', zip: '12345' } }

person.set('name', 'Jane Doe');
console.log(person.get('name')); // Jane Doe

console.log(person.pull('age')); // 30
console.log(person.has('age')); // false
```

## Documentation

### [API Docs](./docs/README.md)

### [CHANGELOG](CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](../../LICENSE)
npm package: @snickbit/ninia
Description: Teeny tiny Node.js composition stores
Latest version: 0.0.37

# @snickbit/ninia

Teeny tiny Node.js composition stores

## Installation

```bash
yarn add @snickbit/ninia
```

```bash
npm add @snickbit/ninia
```

## Documentation

### [API Docs](https://github.com/snickbit/ninia/blob/main/docs/README.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/ninia/blob/main/LICENSE)
npm package: @snickbit/node-cli
Description: Simple Node.js CLI framework for creating command line applications.
Latest version: 3.0.27

# @snickbit/node-cli

Simple Node.js CLI framework for creating command line applications.

## Installation

```bash
yarn add @snickbit/node-cli
```

```bash
npm add @snickbit/node-cli
```

## Documentation

### [API Docs](https://github.com/snickbit/node-cli/blob/main/docs/README.md)

### [CHANGELOG](https://github.com/snickbit/node-cli/blob/main/CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](https://github.com/snickbit/out/blob/main/LICENSE)
npm package: @snickbit/node-utilities
Description: A collection of simple Node.js helpers
Latest version: 4.7.13

# @snickbit/node-utilities

<!--START_SECTION:readmes-description-->

This is a collection of helper functions for Node.js. Some of these are just wrappers of other libraries with more intuitive APIs.

<!--END_SECTION:readmes-description-->

## Installation

```bash
yarn add @snickbit/node-utilities
```

```bash
npm add @snickbit/node-utilities
```

## Documentation

### [API Docs](./docs/README.md)

### [CHANGELOG](CHANGELOG.md)

## License

Copyright (c) 2022 - **Nicholas Lowe** aka **Snickbit**

[MIT License](../../LICENSE)