open-index/open-npm huggingface dataset:
npm package: @rgar/arch
Description: This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.4.
Latest version: 1.0.2

# Arch

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.4.

## Development server

Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.

## Code scaffolding

Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.

## Build

Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.

## Running unit tests

Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Running end-to-end tests

Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
npm package: @rgar/ui
Description: This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.4.
Latest version: 1.0.1

# Ui

This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 1.7.4.

## Development server

Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The app will automatically reload if you change any of the source files.

## Code scaffolding

Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.

## Build

Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory. Use the `-prod` flag for a production build.

## Running unit tests

Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).

## Running end-to-end tests

Run `ng e2e` to execute the end-to-end tests via [Protractor](http://www.protractortest.org/).

## Further help

To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
npm package: @rgarciadelongoria/image-mosaic
Description: Simple image mosaic for the web.
Author: Rubén Garcia de Longoria
Latest version: 0.0.6

# image-mosaic

## Install

#### Method 1

```shell
npm i @rgarciadelongoria/image-mosaic
```

#### Method 2

Import file directly from unpkg URL.

https://unpkg.com/@rgarciadelongoria/image-mosaic@0.0.6/src/image-mosaic.js

#### Method 3

You can copy and paste de code from src/image-mosaic.js file.

## Web Component to display a mosaic of images

With this component you can display from 1 to 4 mosaic of images. 
The default appearance of each mosaic depends on the number of images.

### Examples

[jsfiddle DEMO](https://jsfiddle.net/rgarciadelongoria/sqe9jfc3/81/)

#### 4 pictures:

![Captura de pantalla 2024-09-13 a las 21 35 46](https://github.com/user-attachments/assets/03136920-3196-4ec2-bc68-18782a0b18be)

```html
<image-mosaic
  image1="https://picsum.photos/id/152/400/400"
  image2="https://picsum.photos/id/159/400/400"
  image3="https://picsum.photos/id/175/400/400"
  image4="https://picsum.photos/id/237/400/400">
</image-mosaic>
```

#### 3 pictures:

![Captura de pantalla 2024-09-13 a las 21 36 43](https://github.com/user-attachments/assets/8de3d4c7-811c-44c4-813b-83ff3fc465f0)

```html
<image-mosaic
  image1="https://picsum.photos/id/152/400/400"
  image2="https://picsum.photos/id/159/400/400"
  image3="https://picsum.photos/id/175/400/400">
</image-mosaic>
```

#### 2 pictures:

![Captura de pantalla 2024-09-13 a las 21 37 10](https://github.com/user-attachments/assets/80c89524-3c81-4e23-9776-c2268df4b582)

```html
<image-mosaic
  image1="https://picsum.photos/id/152/400/400"
  image2="https://picsum.photos/id/159/400/400">
</image-mosaic>
```

#### 1 picture:

![Captura de pantalla 2024-09-13 a las 21 37 30](https://github.com/user-attachments/assets/1d7ff0a2-09c4-49e0-a2d3-5d5c9694c93b)

```html
<image-mosaic image1="https://picsum.photos/id/152/400/400"></image-mosaic>
```

#### Custom CSS

![Captura de pantalla 2024-09-13 a las 21 37 54](https://github.com/user-attachments/assets/ba073702-f201-4329-b265-a573c4e36c52)

```html
<image-mosaic class="custom-image-mosaic"
    image1="https://picsum.photos/id/152/400/400?styles=background-position: center -50px;"
    image2="https://picsum.photos/id/159/400/400?styles=background-position: 75px center;"
    image3="https://picsum.photos/id/175/400/400?styles=background-position: 0 -40px;background-size: 60%;"
    image4="https://picsum.photos/id/237/400/400?styles=background-position: 35px 45px;">
</image-mosaic>
```

#### Custom CSS clip-path and **clear-styles** property

![Captura de pantalla 2024-09-13 a las 21 38 16](https://github.com/user-attachments/assets/38917d08-7f4c-4ad6-926d-7fefa67d7dad)

````
<image-mosaic
    image1="https://picsum.photos/id/152/400/400?styles=clip-path: polygon(0 0, 20% 0, 80% 100%, 0% 100%);"
    image2="https://picsum.photos/id/159/400/400?styles=clip-path: polygon(100% 0, 20% 0, 80% 100%, 100% 100%);"
    image3="https://picsum.photos/id/175/400/400?styles=clip-path: polygon(10% 10%, 10% 90%, 25% 90%, 25% 25%, 75% 25%, 75% 75%, 25% 75%, 25% 90%, 90% 90%, 90% 10%);>
</image-mosaic>
npm package: @rgarciadelongoria/micro-frontend
Description: Simple Angular library to work with micro frontends using iframes.
Author: Rubén García de Longoria
Latest version: 0.0.3

# MicroFrontendProject

Angular library that allows easy communication between iframes. Designed for the development of micro frontends.

## Run example project

Run `npm i` to install dependencies.

Run `npm run build micro-frontend` to build de library.

Run `ng serve --port 4200` to serve father project

Run `ng serve --port 4201` to serve child project

Run `ng serve --port 4202` to serve father2-child2 project

Run `ng serve --port 4203` to serve child3 project

Navigate to `http://localhost:4200/`

## Example project explanation

In this example we have 4 angular projects running on different URLs.

The project is configured to act as parent (4200), parent's child (4201), parent child with it's own child (parent 2) (4202) and parent 2's child.

In this example we use library through MicroFrontendComponent to see some capabilities.

## Install dependency

`npm i @rgarciadelongoria/micro-frontend`

## Setting up parent.

```html
<iframe #child src="http://localhost:4201" name="child"></iframe>
```

```typescript
@ViewChild('child') iframeChild!: ElementRef;

constructor(private microFrontendSrv: MicroFrontendService) { }

ngOnInit(): void {
    this.microFrontendSrv.init();
    this.microFrontendSrv.getOnMessageObservable().subscribe((message: any) => {
        // Do something with the received message
    });
}

ngAfterViewInit(): void {
    this.microFrontendLibComponent.addMicroFrontend({elementRef: this.iframeChild});
}
```

## Setting up child.

```typescript
constructor(private microFrontendSrv: MicroFrontendService) { }

ngOnInit(): void {
    this.microFrontendSrv.init(['http://localhost:4200']);
    this.microFrontendSrv.getOnMessageObservable().subscribe((message: any) => {
        // Do something with the received message
    });
}
```
npm package: @rgarduno/helpers
Description: [Site](https://rgarduno.com/) | [Docs](https://rgarduno.com/helpers/docs) | [Wiki](https://github.com/rgarduno/helpers/wiki "Changelog, Roadmap, etc.") | [Code of Conduct](https://code-of-conduct.openjsf.org) | [Twitter](https://twitter.com/rgarduno_)
Author: rgarduno
Latest version: 1.0.2

# helpers

[Site](https://rgarduno.com/) |
[Docs](https://rgarduno.com/helpers/docs) |
[Wiki](https://github.com/rgarduno/helpers/wiki "Changelog, Roadmap, etc.") |
[Code of Conduct](https://code-of-conduct.openjsf.org) |
[Twitter](https://twitter.com/rgarduno_) |

The [Helpers](https://rgarduno.com/helpers) library exported as a [UMD](https://github.com/umdjs/umd) module.

## Installation

Using npm:
```shell
$ npm i -g npm
$ npm i @rgarduno/helpers
```
Note: add `--save` if you are using npm < 5.0.0

In Node.js:
```js

// Load method categories.
var isNumbersOnly = require('@rgarduno/helpers/isNumbersOnly');
var isValidEmail = require('@rgarduno/helpers/isValidEmail');

```
npm package: @rgb-tools/rgb-lib-darwin-arm64
Description: Node.js bindings for rgb-lib on darwin-arm64
Author: Zoe Faltibà
Latest version: 0.3.0-beta.5

# RGB Lib Node.js bindings for darwin arm64

[![npm version](https://badge.fury.io/js/rgb-lib.svg)](https://badge.fury.io/js/rgb-lib)

This project builds a platform-specific Node.js package for the [rgb-lib] Rust
library and is intended to be installed as a dependency.

See the [main package] for details.

[main package]: https://www.npmjs.com/package/rgb-lib
npm package: @rgb-tools/rgb-lib-darwin-x64
Description: Node.js bindings for rgb-lib on darwin-x64
Author: Zoe Faltibà
Latest version: 0.3.0-beta.5

# RGB Lib Node.js bindings for darwin x64

[![npm version](https://badge.fury.io/js/rgb-lib.svg)](https://badge.fury.io/js/rgb-lib)

This project builds a platform-specific Node.js package for the [rgb-lib] Rust
library and is intended to be installed as a dependency.

See the [main package] for details.

[main package]: https://www.npmjs.com/package/rgb-lib
npm package: @rgb-tools/rgb-lib-linux-arm64
Description: Node.js bindings for rgb-lib on linux-arm64
Author: Zoe Faltibà
Latest version: 0.3.0-beta.5

# RGB Lib Node.js bindings for linux arm64

[![npm version](https://badge.fury.io/js/rgb-lib.svg)](https://badge.fury.io/js/rgb-lib)

This project builds a platform-specific Node.js package for the [rgb-lib] Rust
library and is intended to be installed as a dependency.

See the [main package] for details.

[main package]: https://www.npmjs.com/package/rgb-lib
npm package: @rgb-tools/rgb-lib-linux-x64
Description: Node.js bindings for rgb-lib on linux-x64
Author: Zoe Faltibà
Latest version: 0.3.0-beta.5

# RGB Lib Node.js bindings for linux x64

[![npm version](https://badge.fury.io/js/rgb-lib.svg)](https://badge.fury.io/js/rgb-lib)

This project builds a platform-specific Node.js package for the [rgb-lib] Rust
library and is intended to be installed as a dependency.

See the [main package] for details.

[main package]: https://www.npmjs.com/package/rgb-lib
npm package: @rgb-tools/rgb-lib-win32-x64
Description: Node.js bindings for rgb-lib on win32-x64
Author: Zoe Faltibà
Latest version: 0.3.0-beta.5

# RGB Lib Node.js bindings for win32 x64

[![npm version](https://badge.fury.io/js/rgb-lib.svg)](https://badge.fury.io/js/rgb-lib)

This project builds a platform-specific Node.js package for the [rgb-lib] Rust
library and is intended to be installed as a dependency.

See the [main package] for details.

[main package]: https://www.npmjs.com/package/rgb-lib
npm package: @rgba-image/bilinear
Description: Resize an ImageData using bilinear interpolation
Author: Nik Coughlin
Latest version: 0.1.0

# bilinear

Resize an ImageData using bilinear interpolation

## install

`npm install @rgba-image/bilinear`

## usage

Resize the source image to fit in the destination image:

```js
const { bilinear } = require( '@rgba-image/bilinear' )

bilinear( source, dest )
```

Resize from a source region to a location on the destination image:

```js
const sourceX = 10
const sourceY = 20
const sourceWidth = 50
const sourceHeight = 100
const destX = 30
const destY = 40
const destWidth = 150
const destHeight = 300

bilinear( source, dest, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight )
```

Arguments following `dest` are optional

If omitted, `sourceX` is `0`, `sourceY` is `0`, `sourceWidth` is
`source.width - sourceX`, `sourceHeight` is `source.height - sourceY`, `destX`
is `0`, `destY` is `0`, `destWidth` is `dest.width - destX` and `destHeight` is
`dest.height - destY`

## License

MIT License

Copyright (c) 2018 Nik Coughlin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @rgba-image/clone
Description: Clone an ImageData
Author: Nik Coughlin
Latest version: 0.1.0

# clone

Clone an ImageData

## install

`npm install @rgba-image/clone`

## usage

```js
const { clone } = require( '@rgba-image/clone' )

// get some image...

const cloned = clone( image )

// cloned is an exact copy of image; operations on cloned do not affect image
```

Uses [create-image](https://github.com/rgba-image/create-image) to create the
clone - there is a `CloneFactory` that allows you to create an instance of
`clone` using a different `createImage`, such as
[create-image-browser](https://github.com/rgba-image/create-image-browser):

```js
const { createImage } = require( '@rgba-image/create-image-browser' )
const { CloneFactory } = require( '@rgba-image/clone' )

const clone = CloneFactory( createImage )

// get some image...

const cloned = clone( image )
```

## License

MIT License

Copyright (c) 2018 Nik Coughlin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @rgba-image/common
Description: Common types and utils for rgba-image
Author: Nik Coughlin
Latest version: 0.1.13

# common

 Common types and utils for rgba-image

## install

`npm install @rgba-image/common`

## usage

Clamp a value to byte:

```js
const { clampByte } = require( '@rgba-image/common' )

// 123
const r = clampByte( 123.456 )

// 0
const g = clampByte( -1 )

// 255
cosnt b = clampByte( 257 )
```

Clamp a value to uint32:

```js
const { clampUint32 } = require( '@rgba-image/common' )

// 4294967295
const v = clampUint32( 4294967296.456 )

// etc
```

Get an index into ImageData:

```js
const { getIndex } = require( '@rgba-image/common' )

const x = 3
const y = 5
const width = 7

const index = getIndex( x, y, width )
```

Is the current processor little endian?

```js
const { isLittleEndian } = require( '@rgba-image/common' )

if( isLittleEndian ){
  //...
}
```

Is the current object a valid ImageData?

nb - tests that the object matches the `ImageData` interface, *not* that it is
an instance of `ImageData`

```js
const { isImageData } = require( '@rgba-image/common' )

const id = new ImageData( 300, 150 )

if( isImageData( id ) ){
  //...
}
```

We also add a new interface, `GrayData` - the definition is the same as
`ImageData` but it is expected to have 1 byte per pixel rather than 4. There is
a predicate for checking that they match this:

```js
const { isGrayData } = require( '@rgba-image/common' )

const gray = {
  width: 300,
  height: 150,
  data: new Uint8ClampedArray( 300 * 150 )
}

if( isGrayData( gray ) ){
  //...
}
```

Get the Uint32 representation of an RGBA color

nb - ImageData stores RGBA in little endian format

```js
const { rgbaToUint32 } = require( '@rgba-image/common' )

const little = rgbaToUint32( 51, 153, 255, 127, true )
const big = rgbaToUint32( 51, 153, 255, 127, false )
```

## TODO

- Document gradient stop types and predicates - actually, all exported types
- Add predicates for all exported types except functions

## license


MIT License

Copyright (c) 2018 Nik Coughlin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @rgba-image/copy
Description: Copy from one image to another
Author: Nik Coughlin
Latest version: 0.1.3

# copy

Copy pixels from one image to another

The pixels copied from the source image replace the pixels in the destination
image

## install

`npm install @rgba-image/copy`

## usage

Copy all of source to destination:

```js
const { copy } = require( '@rgba-image/copy' )

copy( source, dest )
```

Copy from a source region to a location on the destination image:

```js
const sourceX = 10
const sourceY = 20
const sourceWidth = 50
const sourceHeight = 100
const destX = 30
const destY = 40

copy( source, dest, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY )
```

Arguments following `dest` are optional

If omitted, `sourceX` is `0`, `sourceY` is `0`, `sourceWidth` is
`source.width - sourceX`, `sourceHeight` is `source.height - sourceY`, `destX`
is `0` and `destY` is `0`

Arguments are checked such that that no out of bound pixels are read or written

## License

MIT License

Copyright (c) 2021 Nik Coughlin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @rgba-image/create-image
Description: Create an RGBA image compatible with ImageData
Author: Nik Coughlin
Latest version: 0.2.0

# create-image

Create an RGBA image compatible with the 
[ImageData](https://developer.mozilla.org/en-US/docs/Web/API/ImageData) Web API 
interface

The image will be filled with transparent black - `[ 0, 0, 0, 0 ]`

All fields are readonly:

```typescript
{
  width: number
  height: number
  data: Uint8ClampedArray
}
```

If the ImageData constructor is found in the global object, eg in the browser 
or with a patched global in node, it will return an instance of that 
constructor, otherwise it will return a plain javascript object

## install

`npm install @rgba-image/create-image`

## usage

```js
const { createImage } = require( '@rgba-image/create-image' )

const imageData = createImage( 300, 150 )
```

Populate from an existing `Uint8ClampedArray` (must be `width * height * 4` in length):

```js
const imageData = createImage( 300, 150, data )
```

This module also provides `CreateImageFactory`, so you can create a
`createImage` function which fills the initial data with a different color, eg
to emulate ImageData in the browser, which fills the image with opaque black:

```js
const { CreateImageFactory } = require( '@rgba-image/create-image' )

const createImage = CreateImageFactory( [ 0, 0, 0, 255 ] )

const imageData = createImage( 300, 150 )
```

You can also create images with a different number of channels, but these will
not be compatible with other modules in `rgba-image`:

```js
const { CreateImageFactory } = require( '@rgba-image/create-image' )

const rgbChannels = 3

const createRgbImage = CreateImageFactory( [ 0, 0, 0 ], rgbChannels )

const imageData = createImage( 300, 150 )
```

## license

MIT License

Copyright (c) 2021 Nik Coughlin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @rgba-image/create-image-browser
Description: Create an ImageData instance in the browser using the same syntax as create-image
Author: Nik Coughlin
Latest version: 0.1.0

# create-image-browser

Create an `ImageData` instance in the browser using the same syntax as
[create-image](https://github.com/rgba-image/create-image)

Useful for running scripts in the browser that expect the `createImage` function
exported by [create-image](https://github.com/rgba-image/create-image)

Uses the [Web API ImageData class](https://developer.mozilla.org/en-US/docs/Web/API/ImageData)
npm package: @rgba-image/fill
Description: Fill an ImageData instance with a single color
Author: Nik Coughlin
Latest version: 0.2.0

# fill

Fill an ImageData instance with a single color

## install

`npm install @rgba-image/fill`

## usage

Fill the whole image:

```js
const { fill } = require( '@rgba-image/fill' )

fill( image, [ 51, 153, 255, 127 ] )
```

Fill a region in the image:

```js
const { fill } = require( '@rgba-image/fill' )

const x = 20
const y = 50
const width = 70
const height = 90

fill( image, [ 51, 153, 255, 127 ], x, y, width, height )
```

Arguments following `image` are optional, their default values are:

```js
x = 0
y = 0
width = image.width - x
height = image.height - y
```

There is also an alias function for calling fill with transparent pixels,
`clear`:

```js
const { clear } = require( '@rgba-image/fill' )

clear( image )
```

Clear a region:

```js
const { clear } = require( '@rgba-image/fill' )

const x = 20
const y = 50
const width = 70
const height = 90

clear( image, x, y, width, height )
```

Arguments following `image` are optional and have same defaults as above

The color argument should be an arraylike with four values, any missing values 
are substituted from the values `[ 0, 0, 0, 255 ]`, so you can pass eg RGB 
triplets and alpha will be set to 255

## License

MIT License

Copyright (c) 2018 Nik Coughlin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @rgba-image/lanczos
Description: Resize an ImageData using Lanczos resampling
Author: Nik Coughlin
Latest version: 0.1.1

# lanczos

Resize an ImageData using lanczos resampling

## install

`npm install @rgba-image/lanczos`

## usage

Resize the source image to fit in the destination image:

```js
const { lanczos } = require( '@rgba-image/lanczos' )

lanczos( source, dest )
```

Resize from a source region to a location on the destination image:

```js
const sourceX = 10
const sourceY = 20
const sourceWidth = 50
const sourceHeight = 100
const destX = 30
const destY = 40
const destWidth = 150
const destHeight = 300

lanczos( source, dest, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight )
```

Arguments following `dest` are optional

If omitted, `sourceX` is `0`, `sourceY` is `0`, `sourceWidth` is
`source.width - sourceX`, `sourceHeight` is `source.height - sourceY`, `destX`
is `0`, `destY` is `0`, `destWidth` is `dest.width - destX` and `destHeight` is
`dest.height - destY`

## lanczos2

By default it uses lanczos3 resampling. You can also use lanczos2, usage is
exactly the same, but you import lanczos2 instead of lanczos:

```js
const { lanczos2 } = require( '@rgba-image/lanczos' )
```

## License

MIT License

Copyright (c) 2018 Nik Coughlin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @rgba-image/nearest-neighbour
Description: Resize an ImageData using nearest neighbour
Author: Nik Coughlin
Latest version: 0.1.0

# nearest-neighbour

Resize an ImageData using nearest neighbour

## install

`npm install @rgba-image/nearest-neighbour`

## usage

Resize the source image to fit in the destination image:

```js
const { nearestNeighbour } = require( '@rgba-image/nearest-neighbour' )

nearestNeighbour( source, dest )
```

Resize from a source region to a location on the destination image:

```js
const sourceX = 10
const sourceY = 20
const sourceWidth = 50
const sourceHeight = 100
const destX = 30
const destY = 40
const destWidth = 150
const destHeight = 300

copy( source, dest, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, destWidth, destHeight )
```

Arguments following `dest` are optional

If omitted, `sourceX` is `0`, `sourceY` is `0`, `sourceWidth` is
`source.width - sourceX`, `sourceHeight` is `source.height - sourceY`, `destX`
is `0`, `destY` is `0`, `destWidth` is `dest.width - destX` and `destHeight` is
`dest.height - destY`

## License

MIT License

Copyright (c) 2018 Nik Coughlin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @rgba-image/paste
Description: Paste a region from one ImageData to another with optional composite mode
Author: Nik Coughlin
Latest version: 0.2.0

# paste

Paste a region from one ImageData to another with optional composite mode

With the default mode (`normal`) the pixels copied from the source image are 
alpha composited with the pixels in the destination image

Composite modes include:

`darken`, `difference`, `exclusion`, `hardLight`, `lighten`, `multiply`,
`normal`, `overlay`, `screen`

## install

`npm install @rgba-image/paste`

## usage

Pastes one image over another:

```js
const { paste } = require( '@rgba-image/copy' )

paste( source, dest )
```

Paste from a source region to a location on the destination image:

```js
const sourceX = 10
const sourceY = 20
const sourceWidth = 50
const sourceHeight = 100
const destX = 30
const destY = 40

paste( source, dest, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY )
```

Paste with the source at half opacity:

```js
const sourceX = 10
const sourceY = 20
const sourceWidth = 50
const sourceHeight = 100
const destX = 30
const destY = 40
const alpha = 0.5

paste( 
  source, dest, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, alpha
)
```

Paste with the source at normal opacity using screen composite mode:

```js
const sourceX = 10
const sourceY = 20
const sourceWidth = 50
const sourceHeight = 100
const destX = 30
const destY = 40
const alpha = 1
const mode = 'screen'

paste( 
  source, dest, sourceX, sourceY, sourceWidth, sourceHeight, destX, destY, 
  alpha, mode
)
```

Arguments following `dest` are optional

If omitted:

```js
sourceX = 0
sourceY = 0
sourceWidth = source.width - sourceX
sourceHeight = source.height - sourceY
destX = 0
destY = 0
alpha = 1
mode = 'normal'
```

Also exported for convenience: 

`pasteDarken`, `pasteDifference`, `pasteExclusion`, `pasteHardLight`, 
`pasteLighten`, `pasteMultiply`, `pasteNormal`, `pasteOverlay`, `pasteScreen`

## License

MIT License

Copyright (c) 2018 Nik Coughlin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @rgba-image/png
Description: Convert between PNG and ImageData
Author: Nik Coughlin
Latest version: 0.1.1

# png

Convert between PNG and ImageData

## install

`npm install @rgba-image/png`

## usage

```typescript
fromPng: ( pngBuffer: Uint8Array, options?: ParserOptions ) => ImageData
toPng: ( imageData: ImageData, options?: PNGOptions ) => Uint8Array
```

Convert an `ImageData` instance to PNG:

```js
const { toPng } = require( '@rgba-image/png' )
const fs = require( 'fs' )

// create imageData here

const buffer = toPng( imageData )

fs.writeFileSync( 'out.png', buffer )
```

Convert a PNG to `ImageData`:

```js
const { fromPng } = require( '@rgba-image/png' )
const fs = require( 'fs' )

const png = fs.readFileSync( 'in.png' )
const imageData = fromPng( png )
```

## options

Uses [pngjs](https://github.com/lukeapage/pngjs) for encoding/decoding

`fromPng` optionally takes a second argument,
[`ParserOptions`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/pngjs/index.d.ts)
which is passed through to pngjs

`toPng` optionally takes [`PNGOptions`](https://github.com/DefinitelyTyped/DefinitelyTyped/blob/master/types/pngjs/index.d.ts)

## License

MIT License

Copyright (c) 2021 Nik Coughlin

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
npm package: @rgbboy/glsl-sdf-ops
Description: A collection of glslify compatible distance field operations.
Author: Mark Lundin
Latest version: 0.0.0

# Distance field operations #
A collection of useful operators and modifiers for distance field equations from iQ's excellent [distance functions](http://iquilezles.org/www/articles/distfunctions/distfunctions.htm) page. They can be used with [glsl-sdf-primitives](https://github.com/stackgl/glslify) for combining and transforming basic primitive shapes. 

Operators include `union`, `subtract`, `intersect` and modifier include `repeat`, `rotate` and `twist`.

The library is compatible with [glslify](https://github.com/stackgl/glslify).

## Usage ##
```
vec2 doModel(vec3 p);
#pragma glslify: raytrace = require('glsl-raytrace', map = doModel, steps = 90)

// import some operators
#pragma glslify: opU 	= require('glsl-sdf-ops/union')
#pragma glslify: opTwist 	= require('glsl-sdf-ops/twist')

// import a couple of primitives
#pragma glslify: sdTorus 	= require('glsl-sdf-primitives/sdTorus')
#pragma glslify: sdSphere 	= require('glsl-sdf-primitives/sdSphere')

vec2 doModel(vec3 p) {
  return opU( vec2( sdTorus( opTwist( p ), vec2( 0.20, 0.05 )), 0.0 )),
              vec2( sdSphere( p, 0.2, 0.0 ), 1.0 ));
}
```

## Operators ##
`intersection`, `union`, `subtract`

## Modifiers ##
`twist`, `bend`, `repeat`, `rotate-translate`

## Ray Marching ##
`ao`, `soft-shadow`
npm package: @rgbitsoft/tauri-plugin-unified-log
Description: Unified logging bridge for Tauri. Consolidates Frontend (JS) and Backend (Rust) logs into a single terminal with a professional layout.
Author: senspond20
Latest version: 1.0.1

# @rgbitsoft/tauri-plugin-unified-log

A logging bridge for Tauri that seamlessly unifies Frontend (JS/TS) and Backend (Rust) logs into a single, high-visibility terminal layout.

## Installation

```bash
pnpm add @rgbitsoft/tauri-plugin-unified-log
# or
npm install @rgbitsoft/tauri-plugin-unified-log
npm package: @rgbitsoft/tauri-version-sync
Description: Sync versions between package.json, tauri.conf.json, and Cargo.toml in Tauri projects.
Author: senspond20
Latest version: 1.0.1

## Tauri Version Sync

Tauri Version Sync is a high-precision automation utility designed to eliminate version fragmentation in Tauri applications. 
Due to its hybrid architecture, a Tauri project operates across three distinct ecosystems, each with its own configuration lifecycle:

- Node.js Layer: package.json (Dependency and metadata management)
- Tauri Framework Layer: tauri.conf.json (Bundling and framework-specific specs)
- Rust Core Layer: Cargo.toml (Compile-time package information)

A mismatch between these layers during the release process can lead to critical failures: update check inconsistencies, corrupted binary metadata, and CI/CD pipeline breakage. This utility mitigates these risks through automated synchronization.

## Key Features
### 1. High-Precision Regex Mapping (Cargo.toml)
Unlike naive string replacement, this tool utilizes advanced regular expressions with the m (multiline) flag. It specifically targets the version field within the [package] section while ensuring that version strings in the [dependencies] or [workspace] sections remain untouched.

### 2. Integrity Validation
Before initiating any write operations, the module performs integrity checks using node:fs's existsSync. This ensures the tool remains safe to use even in non-standard project structures or monorepo environments.

### 3. Formatting Preservation (Pretty Print)
The tool maintains architectural hygiene by using null, 2 indentation for JSON serialization and ensuring trailing newlines (\n) are preserved. This prevents unnecessary "dirty diffs" in version control and maintains readability.

## 🚀 Getting Started

### Install
```bash
# Install as a dev dependency
npm install --save-dev @rgbitsoft/tauri-version-sync
```
or 

```bash
pnpm add -D @rgbitsoft/tauri-version-sync
```

### How to Use

```bash
#  sync to your development version
npx tauri-version-sync 1.0.5
```

### Easy to Use
+ package.json
```json
"scripts": {
    "tvs": "tauri-version-sync"
},
"devDependencies": {
    "tauri-version-sync": "^1.0.0" 
}
```

```bash
pnpm tvs 1.0.6
```