open-index/open-npm huggingface dataset:
npm package: @g-tests/changeset-tests
Description: ### Standard public package template.
Author: Gabriel
Latest version: 0.0.3

## @changesets/cli Github action.

### Standard public package template.

#### @see [Publish](https://github.com/9a8ri3L/changeset-tests/blob/main/.github/workflows/publish.yml)

- Make sure that the [NPM_TOKEN](https://docs.npmjs.com/creating-and-viewing-access-tokens) is not expired.
- Make sure that "Allow GitHub Actions to create and approve pull requests" is checked.
- Make sure that [package.json](https://github.com/9a8ri3L/changeset-tests/blob/main/package.json) file has `"publishConfig": {
  "access": "public"
}`, and remove `"private": "false"` if present.
- Make sure that [.changeset/config.json](https://github.com/9a8ri3L/changeset-tests/blob/main/.changeset/config.json) file has `"access": "public"`
- Make sure that the installed version of your package manager is the same in [.github/workflows YML files](https://github.com/9a8ri3L/changeset-tests/tree/main/.github/workflows) with the used version in your local.
- Run `pnpm changeset` every time you need to update your package version, before commiting and pushing to Github repository and [changesets/action](https://github.com/changesets/action) will handle version.
- Every PR is opened by `Chengesets release Github action` will create a head branch `changeset-release/main`, which can be deleted automatically after merge by activate "Automatically delete head branches" in the repo general settings.
- Every mergrd PR has been opened by `Changesets release Github action` will create a tag/release/publish to [NPM registry](https://www.npmjs.com/)

@see [changeset-tests NPM package](https://www.npmjs.com/package/@g-tests/changeset-tests)

That's a standard configuration.
For more information, visit [Changesets](https://github.com/changesets/changesets)
npm package: @g-tests/test-sizeof
Description: A utility function that calculates the size or the length of various types.
Author: Gabriel
Latest version: 0.0.7

![GitHub Release](https://img.shields.io/github/v/release/9a8ri3L/sizeof)
![NPM License](https://img.shields.io/npm/l/%40g-lib%2Fsizeof)
![GitHub forks](https://img.shields.io/github/forks/9a8ri3L/sizeof?style=plastix&color=yellow)
![GitHub stars](https://img.shields.io/github/stars/9a8ri3L/sizeof?style=flat-square)
[![Codacy Badge](https://app.codacy.com/project/badge/Grade/1adbc875e33c46d1a07ee1d2dc8abdf0)](https://app.codacy.com/gh/9a8ri3L/sizeof/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
![GitHub Downloads (all assets, all releases)](https://img.shields.io/github/downloads/9a8ri3L/sizeof/total)

![GitHub commits since latest release](https://img.shields.io/github/commits-since/9a8ri3L/sizeof/latest)
![GitHub contributors](https://img.shields.io/github/contributors-anon/9a8ri3L/sizeof)
![npm bundle size (scoped)](https://img.shields.io/bundlephobia/minzip/%40g-lib/sizeof)

# sizeof

### A utility function that calculates the size or the length of various types.

#### install

```
npm i @g-lib/sizeof
```

```
yarn add @g-lib/sizeof
```

```
pnpm add @g-lib/sizeof
```

### Usage:

```ts
import sizeof from "@g-lib/sizeof";

// or

const sizeof = require("@g-lib/sizeof");

console.log(sizeof({ foo: "bar", bar: "baz" })); // 2
console.log(sizeof([1, 2, 3])); // 3
console.log(sizeof(new Map().set("foo", true))); // 1
console.log(sizeof(new Set().add("foo").add("bar"))); // 2
console.log(sizeof(2024)); // 4
console.log(sizeof(100e15)); // 18
console.log(sizeof(Symbol("foo"))); // 3
console.log(
  sizeof(function foo(a: any, b: any) {
    return a + b;
  })
); // 0
console.log(
  sizeof(function bar() {
    return "bar";
  })
); // 3
console.log(
  sizeof(
    new (function Foo(this: any) {
      this.name = "Foo";
      this.age = 30;
    } as any)()
  )
); // 2
console.log(
  sizeof(
    new (class Foo extends Map<any, any> {
      constructor(public name: string) {
        super();
      }
    })("")
  )
); // 0
console.log(
  sizeof(
    new (class Bar {
      constructor(public name: string) {}
    })("")
  )
); // 1
```

#### Contributing is always welcomed.

### License [MIT](https://choosealicense.com/licenses/mit/)
npm package: @g.devops/eslint-config
Description: ESLint configs for contributing to @guischdi projects
Author: Christian Hotz
Latest version: 0.1.4

# @g.devops/eslint-config

ESLint configs for contributing to @guischdi projects

- [base](#Base)
- [react](#React)
- tbc.

## Installation

`npm i -D @g.devops/eslint-config eslint`

## Setup

### Base

Add these lines to your `package.json`:
```json
  "eslintConfig": {
    "extends": "@g.devops/eslint-config"
  }
```

### React

Additionally install the react-app eslint config:
```
npm i -D eslint-config-react-app
```

Add these lines to your `package.json`:
```json
  "eslintConfig": {
    "extends": "@g.devops/eslint-config/react"
  }
```

## License

MIT
npm package: @g.frame/common.debug
Description: Debug module from g.frame
Author: Very Big Things
Latest version: 0.2.7

# g.frame.common.debug

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Debug module for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/common.debug?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/common.debug

[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/common.debug?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/common.debug

[npm-license]: https://img.shields.io/npm/l/@g.frame/common.debug?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/common.level_manager
Description: Level manager module for g.frame framework
Latest version: 0.2.7

# g.frame.common.level_manager

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Level manager module for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/common.level_manager?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/common.level_manager
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/common.level_manager?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/common.level_manager
[npm-license]: https://img.shields.io/npm/l/@g.frame/common.level_manager?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/components.progressbar
Description: Progressbar component module for g.frame framework
Author: Very Big Things
Latest version: 0.2.6

# g.frame.components.progressbar

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Progressbar component module for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/components.progressbar?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/components.progressbar
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/components.progressbar?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/components.progressbar
[npm-license]: https://img.shields.io/npm/l/@g.frame/components.progressbar?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/components.radios
Description: Radio button component module for g.frame framework
Author: Very Big Things
Latest version: 0.2.6

# g.frame.components.radios

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Radio button component module for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/components.radios?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/components.radios
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/components.radios?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/components.radios
[npm-license]: https://img.shields.io/npm/l/@g.frame/components.radios?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/components.sliders
Description: Slider component module for g.frame framework
Author: Very Big Things
Latest version: 0.2.7

# g.frame.components.sliders

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Slider component module for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/components.sliders?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/components.sliders
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/components.sliders?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/components.sliders
[npm-license]: https://img.shields.io/npm/l/@g.frame/components.sliders?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/components.text
Description: Text generating component module for g.frame framework
Author: Very Big Things
Latest version: 0.2.6

# g.frame.components.text

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Text generating component module for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/components.text?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/components.text
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/components.text?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/components.text
[npm-license]: https://img.shields.io/npm/l/@g.frame/components.text?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/components.vbtube
Description: Video player component module for g.frame framework
Author: Very Big Things
Latest version: 0.2.6

# g.frame.components.bvtube

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Video player component module for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/components.bvtube?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/components.bvtube
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/components.bvtube?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/components.bvtube
[npm-license]: https://img.shields.io/npm/l/@g.frame/components.bvtube?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/components.window
Description: Window component module for g.frame framework
Author: Very Big Things
Latest version: 0.2.6

# g.frame.components.window

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Window component module for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/components.window?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/components.window
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/components.window?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/components.window
[npm-license]: https://img.shields.io/npm/l/@g.frame/components.window?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/core
Description: WebGL framework
Author: Very Big Things
Latest version: 0.2.10

# g.frame.core

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

g.frame framework base classes

[npm]: https://img.shields.io/npm/v/@g.frame/core?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/core
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/core?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/core
[npm-license]: https://img.shields.io/npm/l/@g.frame/core?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/desktop
Description: Module to enable interactions on `desktop` devices for g.frame framework
Author: Very Big Things
Latest version: 0.2.16

# g.frame.desktop

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Module to enable interactions on "desktop" devices for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/desktop?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/desktop
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/desktop?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/desktop
[npm-license]: https://img.shields.io/npm/l/@g.frame/desktop?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/effects.spe
Description: Shader Particle Engine module for g.frame framework
Author: Very Big Things
Latest version: 0.2.8

# g.frame.effects.spe

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Shader Particle Engine module for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/effects.spe?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/effects.spe
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/effects.spe?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/effects.spe
[npm-license]: https://img.shields.io/npm/l/@g.frame/effects.spe?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/input
Description: Input manager for g.frame framework
Author: Very Big Things
Latest version: 0.2.9

# g.frame.input

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Input manager for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/input?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/input
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/input?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/input
[npm-license]: https://img.shields.io/npm/l/@g.frame/input?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/mobile
Description: Module to enable user touch interactions for g.frame framework
Author: Very Big Things
Latest version: 0.2.6

# g.frame.mobile

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Module to enable user touch interactions for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/mobile?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/mobile
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/mobile?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/mobile
[npm-license]: https://img.shields.io/npm/l/@g.frame/mobile?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/oculus.go
Description: Template module from g.frame
Author: Very Big Things
Latest version: 0.2.6

# g.frame.oculus.go

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Module to enable user interactions on Oculus Go device for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/oculus.go?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/oculus.go
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/oculus.go?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/oculus.go
[npm-license]: https://img.shields.io/npm/l/@g.frame/oculus.go?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/oculus.quest
Description: Oculus Quest support module g.frame framework
Author: Very Big Things
Latest version: 0.2.11

# g.frame.oculus.quest

[![NPM Package][npm]][npm-url]
[![NPM Downloads][npm-downloads]][npmtrends-url]
[![NPM License][npm-license]][mit-url]

Module to enable user interactions on Oculus Quest device for g.frame framework

[npm]: https://img.shields.io/npm/v/@g.frame/oculus.quest?style=for-the-badge
[npm-url]: https://www.npmjs.com/package/@g.frame/oculus.quest
[npm-downloads]: https://img.shields.io/npm/dw/@g.frame/oculus.quest?style=for-the-badge
[npmtrends-url]: https://www.npmtrends.com/@g.frame/oculus.quest
[npm-license]: https://img.shields.io/npm/l/@g.frame/oculus.quest?style=for-the-badge
[mit-url]: https://opensource.org/licenses/MIT
npm package: @g.frame/shader-particle-engine
Description: A GLSL-focused particle engine for THREE.js.
Author: Luke Moody
Latest version: 1.0.12

Shader Particle Engine v1.0.6 ![](https://travis-ci.org/squarefeet/ShaderParticleEngine.svg?branch=master)
=============================


Overview
--------
The purpose of this library is to make creating particle effects using THREE.js and WebGL as simple as possible. The heavy-lifting is done by the GPU, freeing up CPU cycles.

Emitters are created by first creating an instance of `SPE.Group`. It is in the group where `ShaderMaterial` settings are applied, and the texture for all emitters added to that group is set. Multiple groups can be created, but if efficiency is a high-priority then as few groups as possible should be created. The group takes care of uploading emitter data to the GPU for simulation and rendering, so the fewer chunks of data that get sent the better.

Once a group has been created, an instance of `SPE.Emitter` can then be added to it. Each emitter can have its own behaviour and appearance.


For more information on groups and emitters, see the docs below:

* [Group documentation](./docs/SPE.Group.md)
* [Emitter documentation](./docs/SPE.Emitter.md)


Examples can be found [here](https://squarefeet.github.io/ShaderParticleEngine/)



Dependencies
------------
* THREE.js r72+ (preferably r81+).



Changelog
---------
A full changelog can be seen [here](./docs/ChangeLog.md).

A migration log can be found [here](./docs/MigrationLog.md).



Documentation
-------------
A massive improvement over the previous versions of this library is _actual documentation!_ I'll be working on making some tutorials, and adding presets and more examples in the very near future.

* Full api documentation (created using the wonderful [JSDoc](http://usejsdoc.org/)) is available [here](https://squarefeet.github.io/ShaderParticleEngine/docs/api/).

* An annotated version of the library (created using the equally wonderful [Docco](https://jashkenas.github.io/docco/)) can be found [here](https://squarefeet.github.io/ShaderParticleEngine/docs/source/SPE.html).




Building
--------
This project uses [Grunt](http://gruntjs.com/) to create the distributions, one dev build (not minimized) and one production build (minimized). If you make changes and want to build it, follow these steps:

If you don't have grunt installed, first make sure you've got [NodeJS](http://nodejs.org/) and NPM installed, then install Grunt CLI. You might have to do this as root:

```npm install -g grunt-cli```

Now you can install the local grunt package:

```cd [projectFolder] && npm install && grunt```

The output of grunt will sit in the `build` folder.


Thanks
------
Huge thanks to [Stemkoski](http://stemkoski.github.io/Three.js/) for the initial inspiration for this library. A lot has changed since the project first began, but it wouldn't have existed without his initial work and help. Big thanks to everyone involved in [THREE.js](https://github.com/mrdoob/three.js), too.

Thanks to @giuliandrimba for the [bower.json PR](https://github.com/squarefeet/ShaderParticleEngine/pull/76).
npm package: @g01-tecnologia/react-native-apk-update
Description: Library to download and install a new apk version of mobile apps.
Author: Douglas Silva
Latest version: 2.0.1

# react-native-apk-update

A JS/TS Library to download and install a new apk version of mobile apps. Wrapper of [react-native-apk-installer-n](https://github.com/nodece/react-native-apk-installer-n) with support to legacy android versions. Design to update existing applications e.g.: if you have app A and needs to update it from inside itself, you should create a update Alert that will use this lib to download and install the respective apk from your http server/api.

## Installation

```sh
npm install @douugbr/react-native-apk-update

# For older RN versions
react-native link @douugbr/react-native-apk-update
```

Dependencies (in case of errors):

```sh
npm install react-native-device-info
npm install react-native-fs
```

## Basic Usage

```js
import { installRemoteApk } from 'react-native-apk-update';
import { useState } from 'react';

// ...

const [downloadProgress, setDownloadProgress] = useState < number > 0;
installRemoteApk(
  'https://example.com/example.apk',
  'myapk.apk',
  (downloadInfo) => {
    setDownloadProgress(downloadInfo.bytesWritten / downloadInfo.contentLength);
  }
);
```

## Docs

#### _async installApk(filePath: string)_

`filePath`: The local uri where your apk is located.

#### _async installRemoteApk(remoteUrl: string, filename: string, callback?: (downloadInfo: RNFS.DownloadProgressCallbackResult) => void, absoluteFilePath?: string)_

`remoteUrl`: The url in which your apk is served.
`filename`: The filename which will be saved in your documents folder.
`callback`: A callback that will track the apk download progress (not the install one). Example above.
`absoluteFilePath`: A filepath to save the file, if not specified the file will be saved on documents folder.

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## Special Thanks

- [Zixuan Liu](https://github.com/nodece) and RNApkInstallerN contributors for the android base.
- [Guilherme Tramontano](https://github.com/TramontaG) for the legacy support code.

## License

MIT
npm package: @g01-tecnologia/react-native-pos-print-preview
Description: Virtual view that simulates a POS printer.
Author: Douglas Silva
Latest version: 0.3.1-beta
Deprecated: In favor of @g01-tecnologia/react-native-pos-printer

# @g01-tecnologia/react-native-pos-print-preview

Virtual view that simulates a POS printer.
_This is a work in progress currently in beta state._

## Installation

```sh
npm install @g01-tecnologia/react-native-pos-print-preview
# or
yarn add @g01-tecnologia/react-native-pos-print-preview
```

## Usage

```typescript
import VirtualPOS from '@g01-tecnologia/react-native-pos-print-preview';

//...

const [commands, setCommands] = useState([{ cmd: null, prn: 'Hello POS!' }]);

return <VirtualPOS data={commands} />;
```

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## License

MIT
npm package: @g01-tecnologia/react-native-proximity-screen
Description: A lib to turn off screen with proximity sensor.
Author: Douglas Silva
Latest version: 0.1.2

# react-native-proximity-screen

A JS/TS Library to programatically turn the screen off using the proximity sensor.

## Installation

```sh
npm install react-native-proximity-screen

# For older RN versions
react-native link react-native-proximity-screen
```

## Basic Usage

```js
import { startProximity, stopProximity } from 'react-native-proximity-screen';
import { useState, useEffect } from 'react';

// ...

useEffect(() => {
  if (incall) {
    startProximity();
  } else {
    stopProximity();
  }
}, []);
```

## Docs

#### _async startProximity(void)_

#### _async stopProximity(void)_

## Contributing

See the [contributing guide](CONTRIBUTING.md) to learn how to contribute to the repository and the development workflow.

## Special Thanks

- [Javier González](https://github.com/CabezasGonzalezJavier) for the android base.

## License

MIT
npm package: @g0tan/log4js
Description: Complete logger for JS Browser development
Author: Damien Cuvillier
Latest version: 1.0.2

# log4js
Complete logger for JS browser development

## Browser log management. 
Allows to manage all logs displayed in browser console.   

* Permits, if browser is launched with required configuration, to append these log in an external file. 
 
Inspired by Log4J java library. 
 

## INSTALLATION

```npm install @g0tan/log4js```

## USAGE

Simply use ```log.<method>(message)``` method.
 		
*@param message* can be string or array of strings

> If message is an array, first message will be used as title of following grouped messages

### METHODS

* All log levels : 
	* trace(message)
	* debug(message)
	* info(message)
	* warn(message)
	* error(message)
	* fatal(message)
* downloadFile() : download file (max 2500 lines)
* tail(lineCount): get last logs
* search(term): search for a specific string in logs
* printLog(): show in console the entire stored log
* clearFile(): erase all stored logs

## CONFIGURATION

You can define these constant 

* LOG_CONFIG with following values.  
All are optionnals. Default values are set. 

* ```level```: minimum allowed log level. all message above this level will be ignored.  
Choose among LEVELS const values: TRACE, DEBUG, INFO, WARN, ERROR, FATAL  
default: WARN
* ```file```: Store all logs in a local storage file.   
Allows to print & download all logs  
Set null for disabling this feature.  
Messages in file storage are not formatted  
default: null
*live: Display all messages in console.  
Print messages in browser console.  
default: false   
Note that if file & live are not set, log4js is useless ;-)  
Message will be formatted in console
* ```prefix```: Prefix before all log message (usefull for log distinguishing)  
default: ""
* ```date_format```: date format for displaying message.  
See [momentJs documentation](https://momentjs.com/docs/#/displaying/).  
If *momentJS* is not loaded, this parameter is useless.   
default: "YYMMDD-HHmmss"
* debug: enable Log4JS debug messages  
default: false
 
## DEPENDENCIES

* momentjs is not required but allows to format date 
* [debugout.js](https://github.com/inorganik/debugout.js) for file outputting
 
## FULL EXAMPLE
 
```
const LOG_CONFIG = {
	DEBUG: true, 
	LEVEL: Log4JS.LEVELS.TRACE, 
	FILE: "/var/log/test-log4js.log",
	PREFIX: "MyLogger>"
};
var log = new Log4JS(LOG_CONFIG, "MyLogger");
log.debug("Info message");
	log.info("Grouped messages", "First message", "Second message");
```
npm package: @g1100100/rest.request
Description: Add .env.dev file ``` NODE_ENV = 'development' VUE_APP_API_BASE_URL = 'development domain' ```
Author: OWEN
Latest version: 2.0.0

# rest.request
 
## Configuration
Add .env.dev file
```
NODE_ENV = 'development'
VUE_APP_API_BASE_URL = 'development domain'
```

Add .env.prod file
```
NODE_ENV = 'production'
VUE_APP_API_BASE_URL = 'production domain'
```

## Usage
### 1.Modify main.js
```javascript
import request from "@g1100100/rest.request"
Vue.prototype.$http = request;
```

### 2.Configure default options
```javascript
request.defaults({

})

```

### 3.Request api
```javascript
this.$http.post("url",{
    data:{
        name:"test"
    }
}).then(res=>{
    console.inf(res.data);
});
```

## Options
|Option|Type|Description|
|--|--|--|
|$400|function|Called when the response status code is 400|
|$401|function|Called when the response status code is 401|
|$403|function|Called when the response status code is 403|
|$404|function|Called when the response status code is 404|
|$catch|function|Called when the response status code is not in the above list|
|$finally|function|No matter what the response result is, it will be called|
npm package: @g1100100/rest.request.vite
Description: Add .env.dev file ``` NODE_ENV = 'development' VITE_APP_API_BASE_URL = 'development domain' ```
Author: OWEN
Latest version: 1.0.1

# rest.request
 
## Configuration
Add .env.dev file
```
NODE_ENV = 'development'
VITE_APP_API_BASE_URL = 'development domain'
```

Add .env.prod file
```
NODE_ENV = 'production'
VITE_APP_API_BASE_URL = 'production domain'
```

## Usage
### 1.Modify main.js
```javascript
import request from "@g1100100/rest.request"
Vue.prototype.$http = request;
```

### 2.Configure default options
```javascript
request.defaults({

})

```

### 3.Request api
```javascript
this.$http.post("url",{
    data:{
        name:"test"
    }
}).then(res=>{
    console.inf(res.data);
});
```

## Options
|Option|Type|Description|
|--|--|--|
|$400|function|Called when the response status code is 400|
|$401|function|Called when the response status code is 401|
|$403|function|Called when the response status code is 403|
|$404|function|Called when the response status code is 404|
|$catch|function|Called when the response status code is not in the above list|
|$finally|function|No matter what the response result is, it will be called|
npm package: @g1100100/vue-ui
Description: ## Project setup ``` npm install ```
Author: OWEN
Latest version: 1.0.0

# vue-ui

## Project setup
```
npm install
```

### Compiles and hot-reloads for development
```
npm run serve
```

### Compiles and minifies for production
```
npm run build
```

### Lints and fixes files
```
npm run lint
```

### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).


## Usage
Modify main.js
```javascript

import vueUI from "@g1100100/vue-ui"
Vue.use(vueUI);
import "@g1100100/vue-ui/lib/vue-ui.css"

```
```html
<vue-ui-loading v-if="showLoading" :msg="msg"></vue-ui-loading>
<vue-ui-alert :options="dialog"></vue-ui-alert>
```
npm package: @g11n_tools/moto-batch-request-js
Description: Batch promise based requests to overcome network limitations
Author: Kunal Mandalia
Latest version: 2.0.2

# moto-batch-request-js [![CircleCI](https://circleci.com/gh/kunal-mandalia/batch-request-js.svg?style=svg)](https://circleci.com/gh/kunal-mandalia/batch-request-js) [![Coverage Status](https://coveralls.io/repos/github/kunal-mandalia/batch-request-js/badge.svg?branch=master)](https://coveralls.io/github/kunal-mandalia/batch-request-js?branch=master)
Batch promise based requests to overcome network limitations or API restrictions

## Install
- `yarn add batch-request-js`

## Tests

- `yarn test-unit` to run unit tests
- `yarn test-e2e` to run e2e tests
- `yarn test-ci` to run both unit and e2e tests

## Usage

Suppose we'd like to fetch thousands of customers from an API. To avoid network limitations or rate limiting issues, we can batch the requests:


```js
// node.js
const batchRequest = require('batch-request-js')


async function getCustomers () {
  // define array of input data e.g. customerIds
  const customerIds = ['100', '101', '102', ... ]
  // define the async request to perform against each data input
  const request = (customerId) => fetch(`${API_ENDPOINT}/${customerId}`).then(response => response.json())

  // fetch customers in batches of 100, delaying 200ms inbetween each batch request
  const { error, data } = await batchRequest(customerIds, request, { batchSize: 100, delay: 200 })

  // Data from successful requests
  console.log(data) // [{ customerId: '100', ... }, ...]

  // Failed requests
  console.log(error) // [{ record: "101", error: [Error: Customer not found] }, ...]
}
```

## Example

```js
// node.js
const batchRequest = require('batch-request-js')

async function getData () {
  // setup a 100 test records
  const records = Array(100).fill(0).map((d, i) => ({ item: i }))
  // all requests will succeed and be timestamped
  const request = record => Promise.resolve({ ...record, timestamp: Date.now() })
  // batch requests 20 at a time, delaying half a second after each batch request
  const result = await batchRequest(records, request, { batchSize: 20, delay: 500 })
  console.log(result)
//   { 
//     error: [],
//     data: [
//        { record: 0, timestamp: 1533552890663 },
//        { record: 1, timestamp: 1533552890663 },
//        { record: 2, timestamp: 1533552890663 },
//        { record: 3, timestamp: 1533552890663 },
//         ...
//     ]
}

getData()
```

## Handling failed batch requests

Rerun batch request with a filtered set of `inputRecords` to just those that failed on the previous attempt.

## Future
Retry logic may be implemented to handle automatically rerunning batch-request for failing requests.

## License
MIT