open-index/open-npm huggingface dataset:
npm package: @nuuf/chink
Description: Chain objects together parent>child style
Author: nuuf
Latest version: 0.0.12

# chink

Chain objects together parent>child style

```javascript
//#import
import { 
    create,
    add,
    remove,
    swap,
    bindList,
    stringifiedFind,
    stringifiedReplace,
    stringifyList,
    parseList
} from '@nuuf/chink';

//#example
const list = [];
bindList(list);

/**
 * Hugo
 *  Stina
 *   Carl
 *  Bob
 *   Henry
 *   Josie
 * 
 * Anna
 *  Jacob
 */

add(create(null, 'Hugo'));
add(create(null, 'Anna'));
add(create('any data', 'Stina'), {id: 'Hugo'});
add(create(null, 'Bob'), {id: 'Hugo'});
add(create(null, 'Jacob'), {id: 'Anna'});
add(create(null, 'Henry'), {id: 'Bob'});
add(create(null, 'Josie'), {id: 'Bob'});
add(create({name: 'Carl'}, 'Carl'), {id: 'Stina'});
swap({id: 'Stina'}, {id: 'Anna'});
swap({id: 'Jacob'}, {id: 'Henry'});
// DO NOT swap({id: 'Stina'}, {'Hugo'}) as Stina is a child of Hugo
remove({id: 'Stina'}); // To be crunched
// remove({id: 'Carl'}); ERROR: NOT IN LIST, Carl was a child of Stina

/**
 * Hugo
 *  Anna
 *   Henry
 *  Bob
 *   Jacob
 *   Josie
 * null
 */
// Delete null values
crunchNull();

/**
 * Find the entity using find or stringifiedFind if the list is stringified
 * Update the data
 * stringifiedReplace(entity)
 */

// This
let Josie = find({id: 'Josie'});

// (before stringifiedFind/stringifiedReplace)
stringifyList();

// Or
Josie = stringifiedFind(Josie);

Josie.data = {
    name: 'Josie'
};

stringifiedReplace(Josie);

parseList();

console.log(JSON.stringify(list, null, 2));
```
npm package: @nuuf/chink2
Description: Chain string objects together parent>child style
Author: nuuf
Latest version: 0.3.0

# chink2

Chain string objects together parent>child style

```javascript
import {
  create, // Creates a new entity
  add, // Adds an entity to a list and a parent if specified, or to root if using root
  remove, // Deletes an entity from the list, removing all descendants
  swap, // Swaps two entities
  update, // Updates the data of an entity
  find, // Returns a parsed entity, finding it by ID
  inject, // Injects an entity into the list binding it to a sibling
  switchParent, // Connects an entity to a different parent
  addToParent, // Connects an entity to a parent
  ejectFromParent, // Removes the connection between parent and child, or switches the parent to root if using root
  getChildren, // Returns a list of all the children of an entity
  getChildrenParsed, // Returns a list of all the children (parsed) of an entity
  getRootEntities, // Returns a list of all the children of the root entity (if using root)
  getRootEntitiesParsed, // Returns a list of all the children (parsed) of the root entity (if using root)
  hasParent, // Checks if the entity has a parent without parsing it
  crunchList, // Removes all null entities and updates all indices
  bindList, // Binds a list so that you do not have to pass it every time
  getPath, // Returns an object with arrays containing the path of a value to the first parent
  generateListStructure // Renders a string of the list structure
} from '@nuuf/chink2';

  const list = [];

  bindList( list );
  // setting root enables automatic add to root if no parent is specified
  // the reason for using a root entity is simply for performance when using inject
  setRoot();
  add( create( 'myData', 'myEntity' ) );
  
  add( create() );

  add( create( null, 'myParent' ) );
  add( create( null, 'myChild' ), find( 'myParent' ) );
  add( create( null, 'myNewParent' ) );

  // add() uses addToParent() if entity has a parent or if it is already in the list
  // and addToParent() uses switchParent() if the entity has a parent

  // in this case the same as addToParent() and switchParent()
  add( find( 'myChild' ), find( 'myNewParent' ) ); 

  remove( find( 'myParent' ) );

  remove( JSON.parse( list[ 2 ] ) );

  swap( find( 'myEntity' ), find( 'myChild' ) );

  // throws error
  // remove( find( 'root' ) );

  inject( create( null, 'injected before' ), find( 'myChild' ) );
  inject( create( null, 'injected after' ), find( 'myChild' ), true );

  ejectFromParent( find( 'myEntity' ) );

  // logs a rendered string for visualisation
  console.log( generateListStructure() );
  // Can be used to collect data like getPath(entity, attributes[])
  // Where attributes is something like ['key1', 'key2'] in entity.data[key1/key2]
  console.log( getPath( find( 'myEntity' ) ) );

```
npm package: @nuuf/nk2-backend
Description: A small rendering tool
Author: nuuf
Latest version: 2.4.5

![Nenkraft2][logo]
[![Npm Version](https://img.shields.io/npm/v/@nuuf/nk2-backend.svg)](https://www.npmjs.com/package/@nuuf/nk2-backend)

------

#### Nenkraft is a small rendering tool. (MIT License)

I am building this for self-educational purposes. 
This is not a professional tool and should not be used for any commercial application.
However; you are free to do so if you want to.

[logo]: https://raw.githubusercontent.com/Nuuf/nenkraft2/master/nenkraft2-banner.png "nenkraft2"
npm package: @nuuf/nk2-frontend
Description: A small rendering tool
Author: nuuf
Latest version: 2.4.5

![Nenkraft2][logo]
[![Npm Version](https://img.shields.io/npm/v/@nuuf/nk2-frontend.svg)](https://www.npmjs.com/package/@nuuf/nk2-frontend)

------

#### Nenkraft is a small rendering tool. (MIT License)

I am building this for self-educational purposes. 
This is not a professional tool and should not be used for any commercial application.
However; you are free to do so if you want to.

Click [here](https://github.com/Nuuf/nenkraft2/tree/master/demos/solid) for examples.

[logo]: https://raw.githubusercontent.com/Nuuf/nenkraft2/master/nenkraft2-banner.png "nenkraft2"
npm package: @nuuf/syndicate
Description: A connected list of strings.
Author: nuuf
Latest version: 3.3.0

# Syndicate

## A connected list of strings.

Keep heavy data in the data object and light data in the configData object

```ts
type Conf = {
  name: string;
  type: string;
};
type Data = {
  foo: number;
  bar: {
    x: number;
    y: number;
    z: boolean;
  };
};
const root = createRoot();
const entityA = createComposite<Data, Conf>(
  {
    foo: 1,
    bar: { x: 0, y: 2, z: false },
  },
  {
    name: 'A',
    type: 'entity',
  }
);
add(root, entityA);
```

Basically a simple way to handle a local database
npm package: @nuuuwan/utils-js-dev
Description: To install, ``` npm i @nuuuwan/utils-js-dev ```
Author: nuuuwan
Latest version: 1.0.8-b

# utils-js

To install,
```
npm i @nuuuwan/utils-js-dev
```

NPM Package Page: https://www.npmjs.com/package/@nuuuwan/utils-js-dev

## 1.0.6, 1.0.7, 1.0.8
* Config changes only - no new features
* Imported DataStructures
* Added SECONDS_IN to TimeX
* Fixed Invalid DataStructuresFuture and MathXFuture Bug

## 1.0.5
* Added new functions to DataStructures
* Added parse to TimeX
* Added round, randomInt, randomChoice to MathX
npm package: @nuux/sentry
Description: Initialize Sentry from a meta tag
Author: nuux
Latest version: 0.9.0

# Nuux::Sentry

Automatically configures Sentry for your Rails application.

- https://docs.sentry.io/clients/ruby/
- https://docs.sentry.io/platforms/javascript/

## Installation

Add this line to your application's Gemfile:

```ruby
gem "nuux-sentry", git: "https://user:password@git.nuux.de/gems/nuux-sentry.git"
```

And then execute:
```bash
$ bundle
```

Install npm package:

```bash
$ yarn add @nuux/sentry
```

## Configuration

### Rails 

Define `SENTRY_DSN` as environment variable.

#### Default configuration

```ruby
Nuux::Sentry.configure do |config|
  config.environments = %w[staging production]

  config.user = proc { try(:current_user) }  
  config.user_attributes = %i[id username]
  config.browser_user_attributes = config.user_attributes

  config.user_context = proc { { ip_address: request.remote_ip } }
  config.extra_context = {}
end
```

### Browser

- Add `sentry_meta_tag` into the `application` layout. 
- Add `import "@nuux/sentry"` in `javascripts/packs/application.js` as first line.

## License

The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
npm package: @nuva-lowcode/designer
Description: This template should help get you started developing with Vue 3 in Vite.
Latest version: 0.0.1

# designer

This template should help get you started developing with Vue 3 in Vite.

## Recommended IDE Setup

[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).

## Type Support for `.vue` Imports in TS

TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.

If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:

1. Disable the built-in TypeScript Extension
    1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette
    2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.

## Customize configuration

See [Vite Configuration Reference](https://vitejs.dev/config/).

## Project Setup

```sh
npm install
```

### Compile and Hot-Reload for Development

```sh
npm run dev
```

### Type-Check, Compile and Minify for Production

```sh
npm run build
```

### Lint with [ESLint](https://eslint.org/)

```sh
npm run lint
```
npm package: @nuva-lowcode/trigger
Description: This template should help get you started developing with Vue 3 in Vite.
Latest version: 0.0.1

# trigger

This template should help get you started developing with Vue 3 in Vite.

## Recommended IDE Setup

[VSCode](https://code.visualstudio.com/) + [Volar](https://marketplace.visualstudio.com/items?itemName=Vue.volar) (and disable Vetur) + [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin).

## Type Support for `.vue` Imports in TS

TypeScript cannot handle type information for `.vue` imports by default, so we replace the `tsc` CLI with `vue-tsc` for type checking. In editors, we need [TypeScript Vue Plugin (Volar)](https://marketplace.visualstudio.com/items?itemName=Vue.vscode-typescript-vue-plugin) to make the TypeScript language service aware of `.vue` types.

If the standalone TypeScript plugin doesn't feel fast enough to you, Volar has also implemented a [Take Over Mode](https://github.com/johnsoncodehk/volar/discussions/471#discussioncomment-1361669) that is more performant. You can enable it by the following steps:

1. Disable the built-in TypeScript Extension
    1) Run `Extensions: Show Built-in Extensions` from VSCode's command palette
    2) Find `TypeScript and JavaScript Language Features`, right click and select `Disable (Workspace)`
2. Reload the VSCode window by running `Developer: Reload Window` from the command palette.

## Customize configuration

See [Vite Configuration Reference](https://vitejs.dev/config/).

## Project Setup

```sh
npm install
```

### Compile and Hot-Reload for Development

```sh
npm run dev
```

### Type-Check, Compile and Minify for Production

```sh
npm run build
```

### Lint with [ESLint](https://eslint.org/)

```sh
npm run lint
```
npm package: @nuvemerudita/encryption-library
Description: This library provides a simple and secure way to encrypt and decrypt data using the AES algorithm.
Author: João Mendes
Latest version: 0.1.2

# Encrypt Library
This library provides a simple and secure way to encrypt and decrypt data using the AES algorithm.  

By João Mendes @joaojmendes joao.j.mendes@spteck.com
npm package: @nuvemsi/docs
Description: This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.
Latest version: 1.0.1

# React + TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react/README.md) uses [Babel](https://babeljs.io/) for Fast Refresh
- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh

## Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type aware lint rules:

- Configure the top-level `parserOptions` property like this:

```js
export default {
  // other rules...
  parserOptions: {
    ecmaVersion: 'latest',
    sourceType: 'module',
    project: ['./tsconfig.json', './tsconfig.node.json'],
    tsconfigRootDir: __dirname,
  },
}
```

- Replace `plugin:@typescript-eslint/recommended` to `plugin:@typescript-eslint/recommended-type-checked` or `plugin:@typescript-eslint/strict-type-checked`
- Optionally add `plugin:@typescript-eslint/stylistic-type-checked`
- Install [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react) and add `plugin:react/recommended` & `plugin:react/jsx-runtime` to the `extends` list