open-index/open-npm huggingface dataset:
npm package: @ganuz/is-data-descriptor
Description: Is Data Descriptor is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/is-data-descriptor
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/is-data-descriptor)
[![Version](https://img.shields.io/npm/v/@ganuz/is-data-descriptor.svg)](https://www.npmjs.com/package/@ganuz/is-data-descriptor)
[![MIT License](https://img.shields.io/npm/l/@ganuz/is-data-descriptor.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/is-data-descriptor.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/is-data-descriptor)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Is Data Descriptor is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/is-data-descriptor
```
Or
```sh
$ npm install --save @ganuz/is-data-descriptor
```

## Use
**Module**
```typescript
import {
  default as isDataDescriptor
} from '@ganuz/is-data-descriptor';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-data-descriptor/bundle.umd.min.js"></script>
```
```typescript
let {
  isDataDescriptor
} = G;
```

**Examples**
```typescript
 isDataDescriptor(); // => false
 isDataDescriptor({}); // => false
 isDataDescriptor({foo: 'bar'}); // => false
 isDataDescriptor({writable: NaN}); // => true
 isDataDescriptor({value: 1980, color: 'green'}); // => true
 isDataDescriptor({value: undefined}); // => true
 isDataDescriptor({get(){}, value: undefined}); // => true
 isDataDescriptor({set(){}, writable: undefined}); // => true
 isDataDescriptor({set(){}, get(){}, value: 70n, writable: false}); // => true
```

*Note: This function does not validate that it is a valid descriptor, it only checks if the properties of data descriptor exist,
 for description validation use {@link isPropertyDescriptor}.*

### @ganuz/is-data-descriptor/assert
**Module**
```typescript
import {
  default as assertDataDescriptor
} from '@ganuz/is-data-descriptor/assert';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-data-descriptor/assert/bundle.umd.min.js"></script>
```
```typescript
let {
  assertDataDescriptor
} = G;
```

**Examples**
```typescript
 assertDataDescriptor(undefined); // throw TypeError
 assertDataDescriptor('foo'); // throw TypeError
 assertDataDescriptor(true); // throw TypeError
 assertDataDescriptor({}); // throw TypeError
 assertDataDescriptor({value: undefined}); // => {value: undefined}
 assertDataDescriptor({writable: true}); // => {writable: true}
 assertDataDescriptor({value: 67, get() {}}); // => {value: 67, get() {}}
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/is-definable
Description: Is Definable is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/is-definable
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/is-definable)
[![Version](https://img.shields.io/npm/v/@ganuz/is-definable.svg)](https://www.npmjs.com/package/@ganuz/is-definable)
[![MIT License](https://img.shields.io/npm/l/@ganuz/is-definable.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/is-definable.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/is-definable)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Is Definable is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/is-definable
```
Or
```sh
$ npm install --save @ganuz/is-definable
```

## Use
**Module**
```typescript
import {
  default as isDefinable
} from '@ganuz/is-definable';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-definable/bundle.umd.min.js"></script>
```
```typescript
let {
  isDefinable
} = G;
```

**Examples**
```typescript
 isDefinable(null, 'prop'); // throw TypeError
 isDefinable({}, 'foo'); // => true
 isDefinable({foo: 'bar'}, 'foo'); // => true
 isDefinable({get some(){}}, 'some'); // => true
 isDefinable(Object.create({}, {color: {value: 'red', writable: false, configurable: true}}), 'foo'); // => true
 isDefinable(Object.create({}, {foo: {value: 'bar', writable: true, configurable: false}}), 'foo'); // => false
 isDefinable(Object.preventExtensions({num: 88}), 'num'); // => false
 isDefinable(Object.seal({}), 'car'); // => false
```

### @ganuz/is-definable/assert
**Module**
```typescript
import {
  default as assertDefinable
} from '@ganuz/is-definable/assert';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-definable/assert/bundle.umd.min.js"></script>
```
```typescript
let {
  assertDefinable
} = G;
```

**Examples**
```typescript
 assertDefinable({color: 'red'}, 'color'); // => {color: 'red'};
 assertDefinable([1], 1); // => [1];
 assertDefinable(Object.freeze({foo: 'bar'}), 'foo'); // throw TypeError
 assertDefinable(Object.create(null, {foo: {value: 'bar'}}), foo); // throw TypeError
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/is-enumerable
Description: Is Enumerable is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/is-enumerable
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/is-enumerable)
[![Version](https://img.shields.io/npm/v/@ganuz/is-enumerable.svg)](https://www.npmjs.com/package/@ganuz/is-enumerable)
[![MIT License](https://img.shields.io/npm/l/@ganuz/is-enumerable.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/is-enumerable.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/is-enumerable)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Is Enumerable is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/is-enumerable
```
Or
```sh
$ npm install --save @ganuz/is-enumerable
```

## Use
**Module**
```typescript
import {
  default as isEnumerable
} from '@ganuz/is-enumerable';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-enumerable/bundle.umd.min.js"></script>
```
```typescript
let {
  isEnumerable
} = G;
```

**Examples**
```typescript
 isEnumerable(null, 'foo'); // throw TypeError
 isEnumerable({foo: 'bar'}, 'foo'); // => true
 isEnumerable({[Symbol.for('foo')]: 'bar'}, Symbol.for('foo')); // => true
 isEnumerable({}, 'foo'); // => false
 isEnumerable(class {static method(){}}, 'method'); // => false
 isEnumerable(Object.create({foo: 'bar'})); // => false
 isEnumerable(Object.create({}, {foo: {value: 'bar'}})); // => false
```

### @ganuz/is-enumerable/assert
**Module**
```typescript
import {
  default as assertEnumerable
} from '@ganuz/is-enumerable/assert';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-enumerable/assert/bundle.umd.min.js"></script>
```
```typescript
let {
  assertEnumerable
} = G;
```

**Examples**
```typescript
 assertEnumerable({}, 'foo'); // => {}
 assertEnumerable({foo: 'bar'}, 'foo'); // => {foo: 'bar'}
 assertEnumerable(Object.create({foo: 'bar'}), 'foo'); // throw TypeError
 assertEnumerable(Object.create(null, {foo: {value: 'bar'}}), 'foo'); // throw TypeError
 assertEnumerable(Object, 'constructor'); // throw TypeError
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/is-extensible
Description: Is Extensible is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/is-extensible
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/is-extensible)
[![Version](https://img.shields.io/npm/v/@ganuz/is-extensible.svg)](https://www.npmjs.com/package/@ganuz/is-extensible)
[![MIT License](https://img.shields.io/npm/l/@ganuz/is-extensible.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/is-extensible.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/is-extensible)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Is Extensible is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/is-extensible
```
Or
```sh
$ npm install --save @ganuz/is-extensible
```

## Use
**Module**
```typescript
import {
  default as isExtensible
} from '@ganuz/is-extensible';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-extensible/bundle.umd.min.js"></script>
```
```typescript
let {
  isExtensible
} = G;
```

**Examples**
```typescript
 isExtensible(null); // throw TypeError
 isExtensible(1); // throw TypeError

 isExtensible({}); // => true
 isExtensible(Object.freeze{}); // => false
 isExtensible(Object.seal{}); // => false
 isExtensible(Object.preventExtensions{}); // => false
```

### @ganuz/is-extensible/assert
**Module**
```typescript
import {
  default as assertExtensible
} from '@ganuz/is-extensible/assert';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-extensible/assert/bundle.umd.min.js"></script>
```
```typescript
let {
  assertExtensible
} = G;
```

**Examples**
```typescript
 assertExtensible(null); // throw TypeError
 assertExtensible(Object.freeze{}); // throw TypeError
 assertExtensible({}); // => {}
 assertExtensible([1, 2, 3]); // => [1, 2, 3]
```

### @ganuz/is-extensible/polyfill
**Module**
```typescript
  import '@ganuz/is-extensible/polyfill';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-extensible/polyfill/bundle.umd.min.js"></script>
```

## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/is-instance-of
Description: Is Instance Of is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/is-instance-of
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/is-instance-of)
[![Version](https://img.shields.io/npm/v/@ganuz/is-instance-of.svg)](https://www.npmjs.com/package/@ganuz/is-instance-of)
[![MIT License](https://img.shields.io/npm/l/@ganuz/is-instance-of.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/is-instance-of.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/is-instance-of)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Is Instance Of is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/is-instance-of
```
Or
```sh
$ npm install --save @ganuz/is-instance-of
```

## Use
**Module**
```typescript
import {
  default as isInstanceOf
} from '@ganuz/is-instance-of';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-instance-of/bundle.umd.min.js"></script>
```
```typescript
let {
  isInstanceOf
} = G;
```

**Examples**
```typescript
 isInstanceOf('foo', null); // throw TypeError
 isInstanceOf('foo', {}); // throw TypeError
 isInstanceOf('foo', class { static [Symbol.hasInstance] = 'foo'; }}); // throw TypeError
 isInstanceOf(NaN, Number); // => false
 isInstanceOf({}, Object); // => true
 isInstanceOf(Object.create(null), Object); // => false
 isInstanceOf('some', {[Symbol.hasInstance]: (v) => v === 'some'}); // => true
```
```typescript
 let iframe = document.createElement('iframe');
 document.body.appendChild(iframe);
 let {Array: IFrameArray, Object: IFrameObject, Symbol: IFrameSymbol} = iframe.contentWindow;

 isInstanceOf([], IFrameArray); // => false

 // Note: In native `Symbol` ({Symbol.hasInstance]: 'S'})[IFrameSymbol.hasInstance] === 'S', but in most es6 `Symbol` polyfill ({Symbol.hasInstance]: 'S'})[IFrameSymbol.hasInstance] !== 'S' (in that case it will be `false`).
 isInstanceOf('some', Object.create(IFrameObject.prototype, {[IFrameSymbol.hasInstance]: {value: (v) => v === 'some'}})); // => true
```

### @ganuz/is-instance-of/assert
**Module**
```typescript
import {
  default as assertInstanceOf
} from '@ganuz/is-instance-of/assert';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-instance-of/assert/bundle.umd.min.js"></script>
```
```typescript
let {
  assertInstanceOf
} = G;
```

**Examples**
```typescript
 assertInstanceOf(null, Object); // throw TypeError
 assertInstanceOf([], Function); // throw TypeError
 assertInstanceOf({}, String); // throw TypeError
 assertInstanceOf(['a', 'b', 'c'], Array); // => ['a', 'b', 'c']
 assertInstanceOf(/^[a-z]+$/i, RegExp); // => /^[a-z]+$/i
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/is-prototype-of
Description: Is Prototype Of is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/is-prototype-of
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/is-prototype-of)
[![Version](https://img.shields.io/npm/v/@ganuz/is-prototype-of.svg)](https://www.npmjs.com/package/@ganuz/is-prototype-of)
[![MIT License](https://img.shields.io/npm/l/@ganuz/is-prototype-of.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/is-prototype-of.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/is-prototype-of)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Is Prototype Of is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/is-prototype-of
```
Or
```sh
$ npm install --save @ganuz/is-prototype-of
```

## Use
**Module**
```typescript
import {
  default as isPrototypeOf
} from '@ganuz/is-prototype-of';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-prototype-of/bundle.umd.min.js"></script>
```
```typescript
let {
  isPrototypeOf
} = G;
```

**Examples**
```typescript
 isPrototypeOf(Object.create(null), null); // throw TypeError
 isPrototypeOf('foo', String.prototype); // => false
 isPrototypeOf(Object(true), Boolean.prototype); // => true
 isPrototypeOf({}, Object.prototype); // => true
 class A{}
 class B extends A{}
 isPrototypeOf(B, A); // => true
 isPrototypeOf(new B, A.prototype); // => true
 isPrototypeOf(Object(1), Object.prototype); // => true
 isPrototypeOf(Object.create(null), Object.prototype); // => false

 let iframe = document.createElement('iframe');
 document.body.appendChild(iframe);
 let {contentWindow: {Array: IFrameArray}} = iframe;
 isPrototypeOf([], IFrameArray.prototype); // => false
```

### @ganuz/is-prototype-of/assert
**Module**
```typescript
import {
  default as assertPrototypeOf
} from '@ganuz/is-prototype-of/assert';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-prototype-of/assert/bundle.umd.min.js"></script>
```
```typescript
let {
  assertPrototypeOf
} = G;
```

**Examples**
```typescript
 assertPrototypeOf({}, String.prototype); // throw TypeError
 assertPrototypeOf({foo: 'bar'}, Object.prototype); // => {foo: 'bar'}
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/is-writable
Description: Is Writable is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/is-writable
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/is-writable)
[![Version](https://img.shields.io/npm/v/@ganuz/is-writable.svg)](https://www.npmjs.com/package/@ganuz/is-writable)
[![MIT License](https://img.shields.io/npm/l/@ganuz/is-writable.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/is-writable.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/is-writable)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Is Writable is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/is-writable
```
Or
```sh
$ npm install --save @ganuz/is-writable
```

## Use
**Module**
```typescript
import {
  default as isWritable
} from '@ganuz/is-writable';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-writable/bundle.umd.min.js"></script>
```
```typescript
let {
  isWritable
} = G;
```

**Examples**
```typescript
 isWritable('foo', null); // throw TypeError
 isWritable(null, 'key'); // => throw TypeError
 isWritable({}, 'foo'); // => true
 isWritable({foo: 'bar'}, 'foo'); // => true
 isWritable([0, 1, 2]], 1); // => true
 isWritable(Object.freeze({color: 'red'}), 'foo') => false
 isWritable(Object.create(null, {a: {value: 1}}), 'a'); // => false
 isWritable(Object.create(Object.create(null, {a: {value: 1}})), 'a'); // => true
```

### @ganuz/is-writable/assert
**Module**
```typescript
import {
  default as assertWritable
} from '@ganuz/is-writable/assert';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/is-writable/assert/bundle.umd.min.js"></script>
```
```typescript
let {
  assertWritable
} = G;
```

**Examples**
```typescript
 assertWritable({}, 'foo'); // => {}
 assertWritable({foo: 'bar'}, 'foo'); // => {foo: 'bar'}
 assertWritable(Object.create({}, {foo: {value: 'bar'}}), 'foo'); // throw TypeError
 assertWritable(Object.freeze({foo: 'bar'}), 'foo'); // throw TypeError
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/own-keys
Description: Own Keys is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/own-keys
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/own-keys)
[![Version](https://img.shields.io/npm/v/@ganuz/own-keys.svg)](https://www.npmjs.com/package/@ganuz/own-keys)
[![MIT License](https://img.shields.io/npm/l/@ganuz/own-keys.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/own-keys.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/own-keys)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Own Keys is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/own-keys
```
Or
```sh
$ npm install --save @ganuz/own-keys
```

## Use
**Module**
```typescript
import {
  default as ownKeys
} from '@ganuz/own-keys';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/own-keys/bundle.umd.min.js"></script>
```
```typescript
let {
  ownKeys
} = G;
```

**Examples**
```typescript
 ownKeys('foo'); // => throw TypeError
 ownKeys([1, 2, 3]); // => ['0', '1', '2', 'length']
 ownKeys({foo: 'bar'}); // => ['foo']
 ownKeys(Object.create({foo: 'bar'}), {color: {value: 'red'}}); // => ['color']
 ownKeys({foo: 'bar', get [Symbol('foo')]() { return this.foo; }}); // => ['foo', Symbol(foo)]
```

### @ganuz/own-keys/polyfill
**Module**
```typescript
  import '@ganuz/own-keys/polyfill';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/own-keys/polyfill/bundle.umd.min.js"></script>
```

## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/prevent-extensions
Description: Prevent Extensions is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/prevent-extensions
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/prevent-extensions)
[![Version](https://img.shields.io/npm/v/@ganuz/prevent-extensions.svg)](https://www.npmjs.com/package/@ganuz/prevent-extensions)
[![MIT License](https://img.shields.io/npm/l/@ganuz/prevent-extensions.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/prevent-extensions.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/prevent-extensions)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Prevent Extensions is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/prevent-extensions
```
Or
```sh
$ npm install --save @ganuz/prevent-extensions
```

## Use
**Module**
```typescript
import {
  default as preventExtensions
} from '@ganuz/prevent-extensions';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/prevent-extensions/bundle.umd.min.js"></script>
```
```typescript
let {
  preventExtensions
} = G;
```

**Examples**
```typescript
 preventExtensions('foo'); // throw TypeError
 preventExtensions(null); // throw TypeError
 preventExtensions(v => v); // => true

 (() => {
     'use strict';
     let object = {};
     preventExtensions(object); // => true
     object.foo = 'bar'; // throw TypeError
 })()
```

### @ganuz/prevent-extensions/polyfill
**Module**
```typescript
  import '@ganuz/prevent-extensions/polyfill';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/prevent-extensions/polyfill/bundle.umd.min.js"></script>
```

## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/scope
Description: Scope is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/scope
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/scope)
[![Version](https://img.shields.io/npm/v/@ganuz/scope.svg)](https://www.npmjs.com/package/@ganuz/scope)
[![MIT License](https://img.shields.io/npm/l/@ganuz/scope.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/scope.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/scope)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Scope is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/scope
```
Or
```sh
$ npm install --save @ganuz/scope
```

## Use
**Module**
```typescript
import {
  default as scope
} from '@ganuz/scope';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/scope/bundle.umd.min.js"></script>
```
```typescript
let {
  scope
} = G;
```

**Examples**
```typescript
 let $ = scope('some')

 class Cool {
     constructor(color: string){
         $(this).color = color;
     }

     log() {
         let {color} = $(this);
         console.log(`color: ${color}`);
     }
 }

 let cool = new Cool('green');
 cool.log(); => 'color: green'
 $(cool).color = 'blue';
 cool.color = 'red';
 cool.log(); => 'color: blue'
 scope('some', cool).color = 'pink';
 cool.log(); => 'color: pink'
 Object.keys($(cool)); // => ['color']
```
```typescript
  let target = {};
  let scopeGetter = scope();
  let $scope = scopeGetter(target);
  let scopeSomeGetter = scope('some');
  let $scopeSome = scopeSomeGetter(target);

  $scope === $scopeSome; // => false
  $scopeSome === scopeGetter(target); // => true
  $scopeSome === scope('some', target); // => true
  typeof $scopeSome === 'object'; // => true
```
```typescript
   let $info = scope('info')

   class Person {
     set name(name: string){
         $info(target).name = name;
     }

     equals(other: Person): boolean {
       return $info(this).name === $info(other).name;
     }
   }

  let person = new Person;
  let person2 = new Person;
  let person3 = new Person;

  person.name = 'bob';
  person2.name = 'alice';
  person3.name = 'bob';

  person.equals(person2); // => false
  person2.equals(person3); // => false
  person3.equals(person1); // => true
```

*Note: It is based on es6 `WeakMap` no need for polyfill (built-in library support).*


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/set-prototype-of
Description: Set Prototype Of is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/set-prototype-of
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/set-prototype-of)
[![Version](https://img.shields.io/npm/v/@ganuz/set-prototype-of.svg)](https://www.npmjs.com/package/@ganuz/set-prototype-of)
[![MIT License](https://img.shields.io/npm/l/@ganuz/set-prototype-of.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/set-prototype-of.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/set-prototype-of)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**Set Prototype Of is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/set-prototype-of
```
Or
```sh
$ npm install --save @ganuz/set-prototype-of
```

## Use
**Module**
```typescript
import {
  default as setPrototypeOf
} from '@ganuz/set-prototype-of';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/set-prototype-of/bundle.umd.min.js"></script>
```
```typescript
let {
  setPrototypeOf
} = G;
```

**Examples**
```typescript
 setPrototypeOf(null, {}); // throw TypeError
 setPrototypeOf({}, 78); // throw TypeError
 setPrototypeOf({}, null); // => true
 setPrototypeOf({}, []); // => true
 setPrototypeOf(Object('foo'), Number.prototype); // => true
 setPrototypeOf(Object.freeze(Object.create(null)), null); // => true
 setPrototypeOf(Object.freeze({}), Object.prototype); // => true
 setPrototypeOf(Object.freeze({}), {}); // => false
 setPrototypeOf(Object.freeze({}), null); // => false
 setPrototypeOf(Object.freeze(Object.create(null)), Object.prototype); // => false
```
```typescript
 let a = {};
 let b = {};

 setPrototypeOf(a, null);
 setPrototypeOf(b, a);

 getPrototypeOf(a); // => null
 getPrototypeOf(b); // => a
```

*Note: this method compatibility >= IE9*

### @ganuz/set-prototype-of/polyfill
**Module**
```typescript
  import '@ganuz/set-prototype-of/polyfill';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/set-prototype-of/polyfill/bundle.umd.min.js"></script>
```

## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/to-accessor-descriptor
Description: To Accessor Descriptor is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/to-accessor-descriptor
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/to-accessor-descriptor)
[![Version](https://img.shields.io/npm/v/@ganuz/to-accessor-descriptor.svg)](https://www.npmjs.com/package/@ganuz/to-accessor-descriptor)
[![MIT License](https://img.shields.io/npm/l/@ganuz/to-accessor-descriptor.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/to-accessor-descriptor.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/to-accessor-descriptor)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**To Accessor Descriptor is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/to-accessor-descriptor
```
Or
```sh
$ npm install --save @ganuz/to-accessor-descriptor
```

## Use
**Module**
```typescript
import {
  default as toAccessorDescriptor
} from '@ganuz/to-accessor-descriptor';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/to-accessor-descriptor/bundle.umd.min.js"></script>
```
```typescript
let {
  toAccessorDescriptor
} = G;
```

**Examples**
```typescript
 toAccessorDescriptor(); // => {configurable: true, enumerable: false, get: undefined, set: undefined}
 toAccessorDescriptor(4, 'foo', 1); // => {configurable: true, enumerable: true, get: undefined, set: undefined}
 toAccessorDescriptor(() => true); // => {configurable: true, enumerable: false, get: () => true, set: undefined}
 toAccessorDescriptor(undefined, v => {}); // => {configurable: true, enumerable: false, get: undefined, set: v => {})
 toAccessorDescriptor(() => -1, v => {}); // => {configurable: true, enumerable: false, get: () => -1, set: v => {})
 toAccessorDescriptor(() => 45, 0, 'ew'); // => {configurable: false, enumerable: true, get: () => 45, set: undefined}
 toAccessorDescriptor(null, 'set', true); // => {configurable: true, enumerable: true, get: undefined, set: undefined}
 toAccessorDescriptor(1, 1, {enumerable: 58, writable: false, get: () => 'foo'); // => {configurable: false, enumerable: true, get: () => 45, set: undefined}
 toAccessorDescriptor(Object, Function, false); // => {configurable: false, enumerable: false, get: Object, set: Function}
 toAccessorDescriptor(0, v => {}, {}); // => {configurable: false, enumerable: false, get: undefined, set: v => {}}
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganuz/to-data-descriptor
Description: To Data Descriptor is package from Ganuz library
Author: Yisrael Eliev
Latest version: 0.1.1

# @ganuz/to-data-descriptor
[![Source Code](https://img.shields.io/badge/%3C%2F%3E-source_code-blue.svg)](https://github.com/yisraelx/ganuz/blob/master/modules/to-data-descriptor)
[![Version](https://img.shields.io/npm/v/@ganuz/to-data-descriptor.svg)](https://www.npmjs.com/package/@ganuz/to-data-descriptor)
[![MIT License](https://img.shields.io/npm/l/@ganuz/to-data-descriptor.svg?color=yellow)](https://github.com/yisraelx/ganuz/blob/master/LICENSE)
[![Bundle Size](https://img.shields.io/bundlephobia/min/@ganuz/to-data-descriptor.svg?color=green)](https://bundlephobia.com/result?p=@ganuz/to-data-descriptor)
[![TypeScript](https://img.shields.io/badge/100%25-TypeScript-blue.svg)](https://www.typescriptlang.org)

**To Data Descriptor is package from Ganuz library**

## Install
```sh
$ yarn add @ganuz/to-data-descriptor
```
Or
```sh
$ npm install --save @ganuz/to-data-descriptor
```

## Use
**Module**
```typescript
import {
  default as toDataDescriptor
} from '@ganuz/to-data-descriptor';
```

**Browser**
```html
<script src="https://unpkg.com/@ganuz/to-data-descriptor/bundle.umd.min.js"></script>
```
```typescript
let {
  toDataDescriptor
} = G;
```

**Examples**
```typescript
 toDataDescriptor(); // => {configurable: true, enumerable: true, writable: true, value: undefined}
 toDataDescriptor(Symbol.for('foo')); // => {configurable: true, enumerable: true, writable: true, value: Symbol.for('foo')}
 toDataDescriptor({}, 0); // => {configurable: false, enumerable: false, writable: false, value: {}}
 toDataDescriptor(-1, {}); // => {configurable: false, enumerable: false, writable: false, value: -1}
 toDataDescriptor('foo', true); // => {configurable: true, enumerable: true, writable: true, value: 'foo'}
 toDataDescriptor(45, 'cw'); // => {configurable: true, enumerable: false, writable: true, value: 45}
 toDataDescriptor(Object, 74); // => {configurable: true, enumerable: true, writable: true, value: Object}
 toDataDescriptor(NaN, {configurable: true, get(){}}); // => {configurable: true, enumerable: false, writable: false, value: NaN}
 toDataDescriptor([0, 1, 2], {enumerable: 'foo', writable: 0, value: -1); // => {configurable: false, enumerable: true, writable: false, value: [0, 1, 2]}
```


## License
Copyright © [Yisrael Eliev](https://github.com/yisraelx),
Licensed under the [MIT license](https://github.com/yisraelx/ganuz/blob/master/LICENSE).
npm package: @ganxing/ui
Description: A comprehensive collection of personal ui components and hooks by Gan-Xing.
Author: Gan-Xing
Latest version: 0.0.1

# UI

Welcome to ui, a comprehensive collection of personal ui components and hooks by Gan-Xing. This project is designed to be a versatile toolkit for various development needs, encompassing testing, linting, formatting, and documentation generation.

## Getting Started

1.**Clone the repository**

```bash
git clone <https://github.com/Gan-Xing/utils.git>
cd utils
```

2.**Set up for standalone use**

If you plan to use utils outside the Turborepo environment, you'll need to replace the existing package.json with package.jsonc, which includes the necessary development dependencies.

```bash
pnpm run setup
```

This will copy packagedev.json to package.json, ensuring that all development dependencies are available.

3.**Install the dependencies**

Make sure you have Node.js (v18.0.0 or newer) and npm (v8.0.0 or newer) installed. This project recommends using pnpm for managing dependencies, although npm or yarn would work just fine.

```bash
pnpm install
```

## Scripts

Here are some scripts provided to help you manage the project:

- **Testing:** Run tests using Jest.

```bash
pnpm run test
```

- **Linting:** Check your code for stylistic and programming errors with ESLint.

```bash
pnpm run lint
```

- **Formatting:** Format your code with Prettier.

```bash
pnpm run format
```

- **Check Formatting:** Check if your code is well formatted.

```bash
pnpm run check-format
```

- **Cleaning:** Delete the \`dist\` directory to clean old build outputs.

```bash
pnpm run clean
```

- **Documentation:** Generate documentation for your code with TypeDoc.

```bash
pnpm run docs
```

- **Building:** Build your project with Vite.

```bash
pnpm run build
```

- **Committing Changes:** We use Commitizen for formatted commit messages.

```bash
pnpm run commit
```

This command will prompt you for details about the commit which will then be formatted according to conventional commit standards.

## Committing Guidelines

We follow the Conventional Commits guidelines for commit messages. When you're ready to commit your changes, run \`pnpm run commit\` and follow the prompts to generate a formatted commit message.

## Documentation

The generated documentation will be placed in the \`./docs\` directory, which you can browse locally or host it on a web server.

## Issues and Feedback

For bugs reporting, feature requests or any other feedback, please visit [GitHub Issues](https://github.com/Gan-Xing/ganxing/issues).

## License

This project is licensed under the ISC license. For more information, see the [LICENSE](LICENSE) file in the repository.

---

Thank you for checking out ganxing. Happy coding!
npm package: @ganxing/utils
Description: A comprehensive collection of personal programming utilities by Gan-Xing.
Author: Gan-Xing
Latest version: 0.0.4

# Utils

Welcome to utils, a comprehensive collection of personal programming utilities by Gan-Xing. This project is designed to be a versatile toolkit for various development needs, encompassing testing, linting, formatting, and documentation generation.

## Getting Started

1.**Clone the repository**

```bash
git clone <https://github.com/Gan-Xing/utils.git>
cd utils
```

2.**Set up for standalone use**

If you plan to use utils outside the Turborepo environment, you'll need to replace the existing package.json with package.jsonc, which includes the necessary development dependencies.

```bash
pnpm run setup
```

This will rename package.jsonc to package.json, ensuring that all development dependencies are available.

3.**Install the dependencies**

Make sure you have Node.js (v18.0.0 or newer) and npm (v8.0.0 or newer) installed. This project recommends using pnpm for managing dependencies, although npm or yarn would work just fine.

```bash
pnpm install
```

## Scripts

Here are some scripts provided to help you manage the project:

- **Testing:** Run tests using Jest.

```bash
pnpm run test
```

- **Linting:** Check your code for stylistic and programming errors with ESLint.

```bash
pnpm run lint
```

- **Formatting:** Format your code with Prettier.

```bash
pnpm run format
```

- **Check Formatting:** Check if your code is well formatted.

```bash
pnpm run check-format
```

- **Cleaning:** Delete the \`dist\` directory to clean old build outputs.

```bash
pnpm run clean
```

- **Documentation:** Generate documentation for your code with TypeDoc.

```bash
pnpm run docs
```

- **Building:** Build your project with Vite.

```bash
pnpm run build
```

- **Committing Changes:** We use Commitizen for formatted commit messages.

```bash
pnpm run commit
```

This command will prompt you for details about the commit which will then be formatted according to conventional commit standards.

## Committing Guidelines

We follow the Conventional Commits guidelines for commit messages. When you're ready to commit your changes, run \`pnpm run commit\` and follow the prompts to generate a formatted commit message.

## Documentation

The generated documentation will be placed in the \`./docs\` directory, which you can browse locally or host it on a web server.

## Issues and Feedback

For bugs reporting, feature requests or any other feedback, please visit [GitHub Issues](https://github.com/Gan-Xing/utils/issues).

## License

This project is licensed under the ISC license. For more information, see the [LICENSE](LICENSE) file in the repository.

---

Thank you for checking out utils. Happy coding!
npm package: @gao623/multicall-js
Description: multi-call for blockchain
Author: gao.gaoshuang@gmail.com
Latest version: 2.1.0

# multicall-js
multicall for multicall contract, support complex type such as struct,bytes and so on.

## Installation

You can install the package either using [NPM](https://www.npmjs.com/package/@gao623/multicall-js) or using [Yarn](https://www.npmjs.com/package/@gao623/multicall-js)

> If you wanna checkout latest bugfix or feature, use `npm install @gao623/multicall-js`

### Using NPM

```bash
npm install @gao623/multicall-js
```

### Using Yarn

```bash
yarn add @gao623/multicall-js
```

## Examples

| Example                                        | Description                                                                                                   |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------- | 
| [legacy](./docs/v1.md)                         | using lagacy multicall example
| [v2](./docs/v2.md)                             | using v2 multicall such as tryAggregate                                                                       |