open-index/open-npm huggingface dataset:
npm package: @onwuzu/excalidraw_v2
Description: Excalidraw as a React component
Latest version: 1.4.6

# Excalidraw

**Excalidraw** is exported as a component to directly embed in your projects.

## Installation

You can use `npm`

```bash
npm install react react-dom @excalidraw/excalidraw
```

or via `yarn`

```bash
yarn add react react-dom @excalidraw/excalidraw
```

After installation you will see a folder `excalidraw-assets` and `excalidraw-assets-dev` in `dist` directory which contains the assets needed for this app in prod and dev mode respectively.

Move the folder `excalidraw-assets` and `excalidraw-assets-dev` to the path where your assets are served.

By default it will try to load the files from [`https://unpkg.com/@excalidraw/excalidraw/dist/`](https://unpkg.com/@excalidraw/excalidraw/dist)

If you want to load assets from a different path you can set a variable `window.EXCALIDRAW_ASSET_PATH` depending on environment (for example if you have different URL's for dev and prod) to the url from where you want to load the assets.

#### Note

**If you don't want to wait for the next stable release and try out the unreleased changes you can use `@excalidraw/excalidraw@next`.**

## Dimensions of Excalidraw

Excalidraw takes _100%_ of `width` and `height` of the containing block so make sure the container in which you render Excalidraw has non zero dimensions.

### Demo

[Try here](https://codesandbox.io/s/excalidraw-ehlz3).

## Integration

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/integration)

## API

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api)
npm package: @onwuzu/excalidraw_v3
Description: Excalidraw as a React component
Latest version: 0.1.0

# Excalidraw

**Excalidraw** is exported as a component to directly embed in your projects.

## Installation

You can use `npm`

```bash
npm install react react-dom @excalidraw/excalidraw
```

or via `yarn`

```bash
yarn add react react-dom @excalidraw/excalidraw
```

After installation you will see a folder `excalidraw-assets` and `excalidraw-assets-dev` in `dist` directory which contains the assets needed for this app in prod and dev mode respectively.

Move the folder `excalidraw-assets` and `excalidraw-assets-dev` to the path where your assets are served.

By default it will try to load the files from [`https://unpkg.com/@excalidraw/excalidraw/dist/`](https://unpkg.com/@excalidraw/excalidraw/dist)

If you want to load assets from a different path you can set a variable `window.EXCALIDRAW_ASSET_PATH` depending on environment (for example if you have different URL's for dev and prod) to the url from where you want to load the assets.

#### Note

**If you don't want to wait for the next stable release and try out the unreleased changes you can use `@excalidraw/excalidraw@next`.**

## Dimensions of Excalidraw

Excalidraw takes _100%_ of `width` and `height` of the containing block so make sure the container in which you render Excalidraw has non zero dimensions.

### Demo

[Try here](https://codesandbox.io/s/excalidraw-ehlz3).

## Integration

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/integration)

## API

Head over to the [docs](https://docs.excalidraw.com/docs/@excalidraw/excalidraw/api)
npm package: @onxrp/ui-common
Description: OnXRP Shared UI components
Author: onXRP
Latest version: 1.1.0

# ui-common
Common UI components 

<b>Add to new project:</b> <br>
npm i https://github.com/onxrp/ui-common.git <br>
yarn add https://github.com/onxrp/ui-common.git <br>

Make changes and update package version in the package.json
<br><br>
<b>Update on the remote project:</b> <br>
npm i https://github.com/onxrp/ui-common.git <br>
or <br>
npm r onxrp-ui-common<br>
npm i https://github.com/onxrp/ui-common.git <br>
npm package: @ony/icons
Description: icons generation task
Author: khokhlachev
Latest version: 0.9.7


# @ony/icons

А package to generate icons system. Сourtesy of ONY Digital.
Supports 2 output modes: django templates and jsx

## config
Create `icons.config.json` file in root of your project

- `prefix`: prefix for filenames 
- `mode`: django or jsx
- `entry`: input path to directory with `.svg` files
- `output`: depends on current mode
  - django mode:
    - `symbols`: output path for a file with svg symbols set
    - `scss`: output path for a file styles
    - `includes`: output path for a folder with django templates includes
  - jsx mode:
    - in jsx mode `output` property is type of string path to a folder where jsx components should be placed  

example for django templates:
`
{
   "prefix": "Icon",
   "mode": "django",
   "entry": "./icons",
   "output": {
     "symbols": "templates/UI/icons.html",
     "scss": "client/components/UI/Icons.scss",
     "includes": "templates/UI/Icons"
   }
 }
`

example for jsx:
`
{
  "prefix": "Icon",
  "mode": "jsx",
  "entry": "test/icons2",
  "output": "client/UI/Icons"
}
`

## cli params

`--config path`: custom path to a config file
npm package: @ony3000/base64-converter
Description: A library that allows bidirectional conversion of strings and base64. Available in both browser and Node.js.
Author: Hyeonjong
Latest version: 1.2.0

# base64-converter
[![npm (scoped)](https://img.shields.io/npm/v/@ony3000/base64-converter)](https://www.npmjs.com/package/@ony3000/base64-converter)
[![GitHub license](https://img.shields.io/github/license/ony3000/base64-converter)](https://github.com/ony3000/base64-converter/blob/master/LICENSE)
[![package hits](https://data.jsdelivr.com/v1/package/npm/@ony3000/base64-converter/badge?style=rounded)](https://www.jsdelivr.com/package/npm/@ony3000/base64-converter)

A library that allows bidirectional conversion of strings and base64. Available in both browser and [Node.js](https://nodejs.org).

Documentation is [here](https://ony3000.github.io/base64-converter/).

## Browser compatibility
* Internet Explorer 9+
* Most modern browsers except Internet Explorer
npm package: @ony3000/demo-library
Description: Template repository for library project.
Author: Hyeonjong
Latest version: 0.2.0

# demo-library

Testing for `node-library-template` repo.

## Deploy on npm

First, check that the package information such as name and version is correct.

Then, execute the following commands in order to deploy.

Node 18 기준

```bash
pnpm i
pnpm run clean
rm -rf node_modules
pnpm i
pnpm run build
```

```bash
npm login --auth-type legacy
```

```bash
npm publish --auth-type legacy --access public
```

## Deprecating package

https://docs.npmjs.com/deprecating-and-undeprecating-packages-or-package-versions#deprecating-a-single-version-of-a-package
npm package: @onyourmarks/component-lib
Description: ## Description
Author: On Your Marks
Latest version: 1.0.0

# OYM - Component Lib

## Description

Component Lib is a frontend library that enables developers to test and develop components in isolation. It is built on top of Svelte kit, a framework for building web applications with Svelte.

## Features

- **Playground**: A playground for testing components in isolation.
- **Documentation**: A documentation site for components.
- **Component Library**: A library of components that can be used in projects.

## Getting Started

### Installation

To install the library, run the following command:

```bash
pnpm install @oym/component-lib
```

### Usage

```bash
pnpm component-lib
```

#### Registry

The registry is a list of components that are available in the playground. To add a new component to the registry, follow these steps:

 - Create a folder named `component-lib` in the root of your project.
 - Within this folder, create a file named `register.ts` with the following content:

```ts
import MyComponent from '../src/lib/components/MyComponent.svelte';
import { MyComponentParameters } from './parameters/MyComponentParameters.ts';

export default [
	{
		title: 'MyComponent',
		component: MyComponent,
		parameters: MyComponentParameters,
	},
];
```

#### Parameters

The parameters folder contains the parameters for each component. The parameters are used to configure the component in the playground.

- Create a folder named `parameters` within the `component-lib` folder.
- Within this folder, create a file named `MyComponentParameters.ts` with the following content:

```ts
import type { ComponentLibParameters } from 'component-lib/types/ComponentTypes';
import { ChildComponentParameters } from './SvgParameters';
import ChildComponent from '../../src/lib/components/ChildComponent.svelte';

export const MyComponentParameters: ComponentLibParameters = [
    {
        name: 'selectProp',
        type: 'select',
        default: 'foo',
        options: ['foo', 'bar']
    },
    {
        name: 'textProp',
        type: 'text',
        default: 'Hello world',
    },
	{
		name: 'children',
		type: 'component',
		component: {
			title: 'ChildComponent',
			instance: ChildComponent
		},
		options: ChildComponentParameters,
	},
];
```

### Config Reference

#### Regular types
Text type:

- Type: `text`
- Default: `string`

Select type:

- Type: `select`
- Default: `string`
- Options: `string[]`

Check type:

- Type: `check`
- Default: `boolean`

Array type:

- Type: `array`
- Options: `any[]`

#### Children types:

When a component has children, name should be set to children. 
Component type:

- Type: `component`
- Component: `{ title: string, instance: SvelteComponent }`
- Options: `ComponentLibParameters`

Text type:

- Type: `text`
- Default: `string`
- Options: `string`

HTML type:

- Type: `html`
- Default: `string`
- Options: `string`

Select type:

- Type: `select`
- Default: `string`
- Options: `string[]`
- Options: `string`
npm package: @onyourmarks/webpack-svg-plugin
Description: Webpack plugin for converting SVG files to HTML
Author: On Your Marks
Latest version: 4.0.0

# OYM Webpack SVG Plugin 

Webpack plugin for converting SVG files to HTML

## Install

```bash
npm install --save-dev oym-webpack-svg-plugin
```

## Usage

In your `webpack.config.js`

```javascript
var SvgPlugin = require('oym-webpack-svg-plugin');

module.exports = {
    // ...
    plugins: [
        new SvgPlugin(paths.SVG, {
            mode: {
                symbol: {
                    inline: true,
                },
            },
            dest: paths.DIST_PRIVATE + '/svg'
        }),
    ]
};
```

## API:

```js
// webpack.config.js

module.exports = {
    plugins: [
        new SvgPlugin(inputPath, options)
    ]
}
```

### `inputPath`

Type: `String`

The path where SVG files are located

### `options`

Type: `Object`<br>

See https://github.com/jkphl/svg-sprite/blob/master/docs/configuration.md

## License

MIT © [On Your Marks](https://github.com/onyourmarks.agency)
npm package: @onyx-and-iris/meld-cli
Description: A command line interface for Meld Studio WebChannel API
Author: onyx-and-iris
Latest version: 0.6.1

# meld-cli

A command line interface for Meld Studio WebChannel API

[![Code Style](https://img.shields.io/badge/code_style-standard-violet.svg)](https://github.com/standard/standard)

---

# Requirements

-   [Meld Studio](https://meldstudio.co/)
-   Tested with node v22.17.0 (lts).

# Installation

```console
npm i -g @onyx-and-iris/meld-cli
```

# Configuration

### Flags

-   --host/-H: Host address for the Meld server
-   --port/-P: Port number for the Meld server

### Environment Variables

Load the following values from your environment:

```bash
MELD_CLI_HOST=localhost
MELD_CLI_PORT=13376
```

### Commands

#### Scene

-   list: List all scenes
    -   flags: 
        -   --id: Display scene IDs

```console
meld-cli scene list

meld-cli scene list --id
```

-   switch: Switch to a scene by name
    - args: sceneName

```console
meld-cli scene switch "My Scene"
```

-   current: Show the current scene
    -   flags: 
        -   --id: Display scene ID

```console
meld-cli scene current

meld-cli scene current --id
```

#### Audio

-   list: List all audio devices
    -   flags: 
        -   --id: Display audio IDs

```console
meld-cli audio list

meld-cli audio list --id
```

-   mute: Mute the audio
    - args: audioName

```console
meld-cli audio mute "Mic"
```

-   unmute: Unmute the audio
    - args: audioName

```console
meld-cli audio unmute "Mic"
```

-   toggle: Toggle audio mute state
    - args: audioName

```console
meld-cli audio toggle "Mic"
```

-   status: Show current audio status
    - args: audioName

```console
meld-cli audio status "Mic"
```

-   gain: Adjust the audio gain
    -   args: audioName gainValue

```console
meld-cli audio gain "System" -12.8
```

#### Stream

-   start: Start streaming

```console
meld-cli stream start
```

-   stop: Stop streaming

```console
meld-cli stream stop
```

-   toggle: Toggle streaming state

```console
meld-cli stream toggle
```

-   status: Show the current streaming status

```console
meld-cli stream status
```

#### Record

-   start: Start recording

```console
meld-cli record start
```

-   stop: Stop recording

```console
meld-cli record stop
```

-   toggle: Toggle recording state

```console
meld-cli record toggle
```

-   status: Show the current recording status

```console
meld-cli record status
```

#### Clip

-   save: Save a clip

```console
meld-cli clip save
```

#### Screenshot

-   take: Take a screenshot

```console
meld-cli screenshot take
```

#### Virtual Camera

-   toggle: Toggle the virtual camera on or off

```console
meld-cli virtualcam toggle
```

## Special Thanks

-   Meld team for providing the [WebChannel API](https://github.com/MeldStudio/streamdeck/blob/main/WebChannelAPI.md) on which this CLI depends.

## License

`meld-cli` is distributed under the terms of the [MIT](https://spdx.org/licenses/MIT.html) license.
npm package: @onyxcoin/pool-sdk
Description: ⚒️ An SDK for building applications on top of Onyx Pool
Latest version: 0.0.2

# onyxcoindev/pool-sdk

If you have an issue or open PR that is still active on this SDK in this repository, please recreate it in the new repository. Some existing issues and PR’s may be automatically migrated by the Uniswap Labs team.
npm package: @onyxcoin/sdk-core
Description: ⚒️ An SDK for building applications on top of Onyx V3
Latest version: 0.0.1

# @onyxcoindev/sdk-core

If you have an issue or open PR that is still active on this SDK in this repository, please recreate it in the new repository. Some existing issues and PR’s may be automatically migrated by the Uniswap Labs team.
npm package: @onyxcoindev/pool-sdk-test
Description: ⚒️ An SDK for building applications on top of Onyx Pool
Latest version: 0.0.8

# onyxcoindev/pool-sdk

If you have an issue or open PR that is still active on this SDK in this repository, please recreate it in the new repository. Some existing issues and PR’s may be automatically migrated by the Uniswap Labs team.
npm package: @onyxcoindev/sdk-core-test
Description: ⚒️ An SDK for building applications on top of Onyx V3
Latest version: 0.0.6

# @onyxcoindev/sdk-core

If you have an issue or open PR that is still active on this SDK in this repository, please recreate it in the new repository. Some existing issues and PR’s may be automatically migrated by the Uniswap Labs team.
npm package: @onzag/react-dom
Description: React package for working with the DOM.
Latest version: 17.0.3-custom.1
Deprecated: doesn't work with react dom 17

# `react-dom`

This version of react dom has been hacked to have an async render function and a before SSR render function in order to be used to SSR async; this is used in the itemize project.

The hack does not work in development builds properly as it cannot render two pages at once, which a server may need to do so, a lock may solve the issue.

This package serves as the entry point to the DOM and server renderers for React. It is intended to be paired with the generic React package, which is shipped as `react` to npm.

## Installation

```sh
npm install react react-dom
```

## Usage

### In the browser

```js
var React = require('react');
var ReactDOM = require('react-dom');

function MyComponent() {
  return <div>Hello World</div>;
}

ReactDOM.render(<MyComponent />, node);
```

### On the server

```js
var React = require('react');
var ReactDOMServer = require('react-dom/server');

function MyComponent() {
  return <div>Hello World</div>;
}

ReactDOMServer.renderToString(<MyComponent />);
```

## API

### `react-dom`

- `findDOMNode`
- `render`
- `unmountComponentAtNode`

### `react-dom/server`

- `renderToString`
- `renderToStaticMarkup`
npm package: @onzechain/sdk
Latest version: 1.2.0

# OnzeChain SDK


## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @ooakloowj/orbit
Description: Lightweight analytics SDK for Electron/Tauri apps - auto-track downloads, DAU, and retention
Author: Aspect
Latest version: 0.1.4

# @ooakloowj/orbit

Lightweight analytics SDK for Electron/Tauri apps. Auto-track downloads, DAU, and retention with one line of code.

## Installation

```bash
npm install @ooakloowj/orbit
```

## Quick Start

```typescript
import { Orbit } from '@ooakloowj/orbit';

// Initialize in your app entry point
Orbit.configure({
  appId: 'com.example.app',
});

// That's it! Downloads and DAU are automatically tracked.
```

## Features

- **One-line initialization** - Zero configuration required
- **Auto-tracking** - `first_launch` and `app_open` events are automatically tracked
- **Privacy-friendly** - Device ID generated locally, no sensitive data collected
- **Offline support** - Failed events are queued and retried on next launch
- **Lightweight** - < 5KB minified

## API

### `Orbit.configure(config)`

Initialize the SDK. Call this once at app startup.

```typescript
Orbit.configure({
  appId: 'com.example.app',      // Required: Your app ID from Orbit dashboard
  endpoint: 'https://...',       // Optional: Custom API endpoint
  enableLogging: true,           // Optional: Enable debug logging
});
```

### `Orbit.checkUpdate()`

Check for app updates.

```typescript
const result = await Orbit.checkUpdate();

if (result.hasUpdate) {
  console.log('New version:', result.latestVersion);
  console.log('Release notes:', result.releaseNotes);
  console.log('Download URL:', result.downloadUrl);
  console.log('Force update:', result.forceUpdate);
}
```

### `Orbit.sendFeedback(options)`

Submit user feedback.

```typescript
await Orbit.sendFeedback({
  content: 'Great app! Would love to see dark mode.',
  contact: 'user@example.com',  // Optional
});
```

## Platform Support

- Electron (Windows, macOS, Linux)
- Tauri (Windows, macOS, Linux)

## License

MIT
npm package: @oobit/react-native-sdk
Description: React Native SDK for integrating Oobit crypto payments into wallet apps
Author: Oobit
Latest version: 3.1.0

# @oobit/react-native-sdk

A React Native SDK that enables wallet apps to integrate Oobit's crypto-to-card payment services.

[![npm version](https://img.shields.io/npm/v/@oobit/react-native-sdk.svg)](https://www.npmjs.com/package/@oobit/react-native-sdk)
[![license](https://img.shields.io/npm/l/@oobit/react-native-sdk.svg)](https://github.com/oobit-tech/react-native-SDK/blob/main/LICENSE)

## Installation

```bash
npm install @oobit/react-native-sdk react-native-webview
```

## Quick Start

```tsx
import { WidgetSDK } from "@oobit/react-native-sdk";

function PaymentScreen() {
  return (
    <WidgetSDK
      accessToken="prod_your-jwt-token"
      userWalletAddress="0x1234..."
      onTransactionRequested={(transaction) => {
        // Navigate to your transaction confirmation screen
        navigation.navigate("ConfirmTransaction", { transaction });
      }}
      onClose={() => navigation.goBack()}
    />
  );
}
```

## Documentation

For complete documentation, guides, and API reference, visit:

**[Oobit Developer Docs](https://docs.oobit.com/docs/getting-started)**

- [Getting Started](https://docs.oobit.com/docs/getting-started) - Installation and setup
- [Component Reference](https://docs.oobit.com/docs/component) - Props and methods
- [Handling Transactions](https://docs.oobit.com/docs/transactions) - Transaction flow guide
- [TypeScript Types](https://docs.oobit.com/docs/types) - Type definitions

## License

MIT © [Oobit](https://oobit.com)
npm package: @oobit/react-web
Description: React Web SDK for integrating Oobit crypto payments into web applications
Author: Oobit
Latest version: 1.1.1

# @oobit/react-web

A React Web SDK that enables web applications to integrate Oobit's crypto-to-card payment services.

[![npm version](https://img.shields.io/npm/v/@oobit/react-web.svg)](https://www.npmjs.com/package/@oobit/react-web)
[![license](https://img.shields.io/npm/l/@oobit/react-web.svg)](https://github.com/oobit-tech/react-native-SDK/blob/main/LICENSE)

## Installation

```bash
npm install @oobit/react-web
```

## Quick Start

```tsx
import { WidgetSDK } from "@oobit/react-web";

function PaymentPage() {
  return (
    <WidgetSDK
      accessToken="prod_your-jwt-token"
      userWalletAddress="0x1234..."
      onTransactionRequested={(transaction) => {
        // Navigate to your transaction confirmation screen
        router.push("/confirm-transaction", { transaction });
      }}
      onClose={() => router.back()}
    />
  );
}
```

## Features

- **Mobile-First**: Optimized for iOS Safari and Chrome Android
- **Secure**: iframe-based isolation with strict origin verification
- **Lightweight**: Zero external dependencies (except React)
- **Type-Safe**: Full TypeScript support with strict types
- **Compatible**: Same API as `@oobit/react-native-sdk` for easy cross-platform development

## Browser Support

- iOS Safari 14+
- Chrome Android 90+
- Modern desktop browsers (Chrome, Safari, Firefox, Edge)

## Documentation

For complete documentation, guides, and API reference, visit:

**[Oobit Developer Docs](https://docs.oobit.com/docs/getting-started)**

- [Getting Started](https://docs.oobit.com/docs/getting-started) - Installation and setup
- [Component Reference](https://docs.oobit.com/docs/component) - Props and methods
- [Handling Transactions](https://docs.oobit.com/docs/transactions) - Transaction flow guide
- [TypeScript Types](https://docs.oobit.com/docs/types) - Type definitions

## License

MIT © [Oobit](https://oobit.com)
npm package: @ood/singleton
Description: Singleton decorator. No constructor monkeypatching. Zero dependencies. Built with TypeScript.
Author: rueihuan
Latest version: 1.1.2

# Singleton

Singleton decorator. No constructor monkeypatching. Zero dependencies. Built with TypeScript.

<!-- START doctoc generated TOC please keep comment here to allow auto update -->
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->

- [Singleton](#singleton)
  - [Installation](#installation)
  - [Quick start](#quick-start)
  - [Usage without decorators](#usage-without-decorators)
  - [Inheritance](#inheritance)
  - [In depth](#in-depth)

<!-- END doctoc generated TOC please keep comment here to allow auto update -->

## Installation

1.  Run

    ```sh
    npm i @ood/singleton
    ```

    or

    ```sh
    yarn add @ood/singleton
    ```

1.  **(Optional)** Enable decorators

    1. If you use TypeScript set in you tsconfig.json

       ```json
       {
         "compilerOptions": {
           "experimentalDecorators": true
         }
       }
       ```

    1. If you use JavaScript configure your babel to support decorators and class properties

## Quick start

```ts
import { singleton } from "@ood/singleton" 

@singleton
class Test {}

new Test() === new Test() // returns `true`
```

## Usage without decorators

```ts
import { singleton } from "@ood/singleton"

class Test {}
const TestSingleton = singleton(Test)

new TestSingleton() === new TestSingleton() // returns `true`
```

## Inheritance

Any child of your singleton will not be a singleton.

```ts
import { singleton } from "@ood/singleton"

@singleton
class Parent {}

class Child extends Parent {}

new Child() === new Child() // returns `false`

// If you want to make `Child` a singleton as well, apply `singleton` decorator directly to it
@singleton
class ChildSingleton extends Parent {}

new ChildSingleton() === new ChildSingleton() // returns `true`
```

## In depth

`singleton` decorator wraps your class with a [Proxy](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy) and a [construct trap](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/handler/construct) to override class' creation logic.

Your singleton instance is always available as a static property of a class by key `SINGLETON_KEY`.

```ts
import { singleton, SINGLETON_KEY } from "@ood/singleton"

@singleton
class Test {}

const instance = new Test()
Test[SINGLETON_KEY] === instance // returns `true`
```
npm package: @ooddaa/mango
Description: Object-to-Graph Mapping tool for Node.js and Neo4j
Author: Oda Nabunaga
Latest version: 1.1.3

# Mango 🥭

Goal: A tool that builds Knowledge Graphs and plants Knowledge Trees 🌳

Simply: it is an Object-to-Graph Mapping tool that you can use to work with [Neo4j](https://neo4j.com/) from your [Node.js](https://nodejs.org/) application.

## Idea

The idea behind the project is to build a tool to makes it easy to perform

- Create
- Read
- Update
- Delete
  operations on Neo4j Graph Database using JavaScript.

## Philosophy:

Graphs are powerful because they are visually obvious. You may draw a graph to simplify something. It takes a purely abstract thought concept and makes it appear as a 2D model in front of your eyes.

Graphs are powerful because they are simple. As a basic data structure a Node or (Node), can represent any amount of data. If (Node1) and (Node2) have a way to associate, then it could
be expressed as (Node1)-[:RELATES_TO]->(Node2). And there you have it - a full blown Knowledge Graph!

Now think of adding properties to Nodes and its Relationships and the expressive potential is limitless.

Rich Knowledge Graphs can provide enough machine-readable context for humans to build useful
real-world services.

Go to [doc](https://ooddaa.github.io/mango/) to read full documentation.

## Tests

To run tests, add Neo4j credentials to config/testing.json file:

`{ "neo4jUsername": "neo4j", "neo4jPassword": "password", "ip": "0.0.0.0", "port": "7687", "env": "testing", "database": "test" }`