open-index/open-npm huggingface dataset:
npm package: @neoagentix/lifekit
Description: An AI-powered personal productivity system. Planning, projects, people, and habits — markdown-native, AI-first.
Author: NeoAgentix
Latest version: 0.1.0

# LifeKit

**An AI-powered personal productivity system.** Planning, projects, people, and habits — all in markdown, all in your control.

> 🚧 Full release coming soon. Building in public at [neoagentix.com](https://neoagentix.com).

## What is LifeKit?

LifeKit is a distributable productivity system built for AI coding assistants. It brings together daily/weekly planning, project tracking, people files, and habit systems into a single markdown-native structure that lives in your repo and works with any AI assistant.

- **Claude Code first** — full agent integration, hooks, skills, MCP
- **Platform-agnostic core** — the markdown system works with any AI or manually
- **Built in public** — follow the build at [neoagentix.com](https://neoagentix.com)

## Status

Early development. Star the repo and watch for updates.

**GitHub:** [github.com/neoagentix/lifekit](https://github.com/neoagentix/lifekit)
npm package: @neoan/blua-blue-article
Description: web component to display blua.blue article
Author: Stefan Roehrl
Latest version: 1.0.4

# POC: blua-blue articles as webcomponent

## Usage:

1. Include the module

    ```html
    <script type="module" src="https://cdn.jsdelivr.net/npm/@neoan/blua-blue-article@1.0.4/article.js"></script>
    
    ```
2. Use the element
    ```html
    <blua-blue-article>
        The Uselessness of Pre-Assessment
    </blua-blue-article>
    ```
   
## Use as boilerplate

`npm i @neoan/blua-blue-article`

### DISCLAIMER

This is a POC and only works from localhost due to the CORS policy of blua.blue! If you are interested in moving to production,
please reach out [here](https://blua.blue/contact-us)
npm package: @neoan/rest-api
Description: Simple API service for neoan-js
Author: neoan
Latest version: 0.0.3

# Rest-API for @neoan/neoan

## Installation

`npm install @neoan/rest-api`

## Usage

```JS
import '@neoan/neoan/neoan.js';
import '@neoan/rest-api/index.js';

// in neoan-js components

neoan.component('my-component',{
    template:`hello world`,
    data:{
        items:{}
    },
    loaded(){
        neoan.services['rest-api'].get('https://some-domain.com/product',{
            q:'acme hammer'
        }).then((res)=>{
            this.data.items = res;
        },(err)=>{
            // rejected
        })
    }
    
})
```

## Methods

### get(url, [objectObject])
returns callback from native "fetch"
### post(url, [objectObject])
returns callback from native "fetch"
### put(url, [objectObject])
returns callback from native "fetch"
### delete(url, [objectObject])
returns callback from native "fetch"
### setToken(string)
If a token is set, it will be used as a authorization header (Bearer) and placed in localStorage.
If input is falsy, token will be removed from calls and localStorage.
### setBase(string)
The base is pre-pended to all urls and defaults to '' (empty string). Can be used to set a common endpoint.
_example_
```JS
neoan.services['rest-api'].setBase('https://api.my-domain.com/v1/');

// now calling https://api.my-domain.com/v1/users is as convenient as:
neoan.services['rest-api'].get('users').then(...)

```
npm package: @neoaren/comet
Description: A powerful DX-first routing library for Cloudflare Workers.
Author: andras-adam
Latest version: 3.8.2

![logo](.github/assets/comet_logo.png)

<p align="center">
  ☄️ A powerful DX-first routing library for <a href="https://workers.cloudflare.com/">Cloudflare Workers</a>.
</p>

<p align="center">
  <a href="https://npmjs.org/package/@neoaren/comet"><img src="https://badgen.net/npm/v/@neoaren/comet" alt="NPM Version"></a>
  <a href="https://packagephobia.com/result?p=@neoaren/comet"><img src="https://badgen.net/packagephobia/install/@neoaren/comet" alt="NPM Install Size"></a>
  <a href="https://npmcharts.com/compare/@neoaren/comet?minimal=true"><img src="https://badgen.net/npm/dm/@neoaren/comet" alt="NPM Downloads"></a>
</p>

-----

## Getting started

```ts
import { GET, server } from '@neoaren/comet'

const comet = server()

comet.route({ pathname: '/api/test/:id', method: GET }, async ({ event }) => {
  // Business logic
  return event.reply.ok({ id: event.params.id })
})

export default <ExportedHandler>{
  fetch: comet.handler
}
```

## Documentation
A proper documentation for Comet is work in progress.

## Contribution guide
Use commit names with the following prefixes to indicate their purpose

| Emoji                    | Prefix                     | Description                                                |
|--------------------------|----------------------------|------------------------------------------------------------|
| :zap: :zap:              | `:zap: :zap:`              | for implementing breaking functionality (semver major)     |
| :zap:                    | `:zap:`                    | for implementing non-breaking functionality (semver minor) |
| :hammer:                 | `:hammer:`                 | for bug fixes and non-breaking improvements (semver patch) |
| :wrench:                 | `:wrench:`                 | for configurations                                         |
| :vertical_traffic_light: | `:vertical_traffic_light:` | for tests                                                  |
| :memo:                   | `:memo:`                   | for documentations                                         |
| :mag:                    | `:mag:`                    | for lint fixes                                             |
| :recycle:                | `:recycle:`                | for non-breaking refactoring                               |
| :paperclip:              | `:paperclip:`              | for dependencies                                           |
| :octocat:                | `:octocat:`                | for workflows                                              |
| :construction:           | `:construction:`           | for experimental or temporary changes                      |
npm package: @neoaren/date-picker
Description: A modern and easy-to-use React date picker component
Author: NeoAren
Latest version: 1.0.4

# Date Picker

[![NPM](https://img.shields.io/npm/v/@neoaren/date-picker.svg)](https://www.npmjs.com/package/@neoaren/date-picker) [![NPM Minzipped size](https://img.shields.io/bundlephobia/minzip/@neoaren/date-picker.svg)](https://www.npmjs.com/package/@neoaren/date-picker) [![NPM Download Week](https://img.shields.io/npm/dw/@neoaren/date-picker.svg)](https://www.npmjs.com/package/@neoaren/date-picker) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) [![NPM License](https://img.shields.io/npm/l/@neoaren/date-picker.svg)](https://www.npmjs.com/package/@neoaren/date-picker)

> 📅 A modern and easy-to-use React date picker component

## Install
Install the date picker
```bash
npm install --save @neoaren/date-picker
```

### Peer dependencies
This component uses React `>=16.8.0` and React DOM `>=16.8.0` as peer dependencies.

Install them using [npm](https://www.npmjs.com/)
```bash
npm install --save react react-dom
```

## Usage

```jsx
import React from 'react';
import DatePicker from '@neoaren/date-picker';

const App = () => {

  return (
    <DatePicker id="my-datepicker" />
  );

};
```

## Component API

| Name         	|       Type      	| Required 	| Description                                                                                                            	|
|--------------	|:---------------:	|:--------:	|------------------------------------------------------------------------------------------------------------------------	|
| id           	|     `String`    	|  `true`  	| The unique identifier of the date picker element.                                                                      	|
| defaultValue 	| `Number` `Date` 	|  `false` 	| The default value of the date picker.                                                                                  	|
| onChange     	|    `Function`   	|  `false` 	| This function runs when the selected date changes. The new date passed as the only parameter is an instance of `Date`. 	|
| placeholder  	|     `String`    	|  `false` 	| The text to be displayed when no date is selected.                                                                     	|
| lang         	|     `String`    	|  `false` 	| Set the language of the date picker, the default is English. Use the ISO 8601-1 format (e.g. `"en"`)                   	|

## License

MIT © [NeoAren](https://github.com/NeoAren)
npm package: @neoaren/time-picker
Description: A modern and easy-to-use React time picker component
Author: NeoAren
Latest version: 1.0.1

# Time Picker

[![NPM](https://img.shields.io/npm/v/@neoaren/time-picker.svg)](https://www.npmjs.com/package/@neoaren/time-picker) [![NPM Minzipped size](https://img.shields.io/bundlephobia/minzip/@neoaren/time-picker.svg)](https://www.npmjs.com/package/@neoaren/time-picker) [![NPM Download Week](https://img.shields.io/npm/dw/@neoaren/time-picker.svg)](https://www.npmjs.com/package/@neoaren/time-picker) [![JavaScript Style Guide](https://img.shields.io/badge/code_style-standard-brightgreen.svg)](https://standardjs.com) [![NPM License](https://img.shields.io/npm/l/@neoaren/time-picker.svg)](https://www.npmjs.com/package/@neoaren/time-picker)

> ⏰ A modern and easy-to-use React time picker component

## Install
Install the time picker
```bash
npm install --save @neoaren/time-picker
```

### Peer dependencies
This component uses React `>=16.8.0` and React DOM `>=16.8.0` as peer dependencies.

Install them using [npm](https://www.npmjs.com/)
```bash
npm install --save react react-dom
```

## Usage

```jsx
import React from 'react';
import TimePicker from '@neoaren/time-picker';

const App = () => {

  return (
    <TimePicker id="my-timepicker" />
  );

};
```

## Component API

| Name         	|       Type      	| Required 	| Description                                                                                                                                        	|
|--------------	|:---------------:	|:--------:	|----------------------------------------------------------------------------------------------------------------------------------------------------	|
| id           	|     `String`    	|  `true`  	| The unique identifier of the time-picker element.                                                                                                  	|
| defaultValue 	| `Number` `Date` 	|  `false` 	| The default value of the time-picker.                                                                                                              	|
| onChange     	|    `Function`   	|  `false` 	| This function runs when the selected time changes. The only parameter to be passed is an object containing the selected time in different formats. 	|
| placeholder  	|     `String`    	|  `false` 	| The text to be displayed when no time is selected.                                                                                                 	|

## License

MIT © [NeoAren](https://github.com/NeoAren)
npm package: @neobase-one/splits-sdk
Description: SDK for the 0xSplits protocol
Author: 0xSplits
Latest version: 0.17.6

# Splits Core SDK

## Install

### Install the package with yarn or npm:

```bash
yarn add @neobase/splits-sdk

npm install @neobase/splits-sdk
```

## Documentation

Detailed documentation for the SDK can be found [here](https://docs.0xsplits.xyz/sdk-info/overview)
npm package: @neobase-one/splits-sdk-react
Description: React wrapper for the 0xSplits SDK
Author: 0xSplits
Latest version: 0.8.0

# Splits React SDK

This is the react wrapper for the core splits sdk. It provides convenient hooks for easily 
displaying 0xSplits data in a React app. The core sdk client is also available for performing 
all contract transactions.

## Install

### Install the package with yarn or npm:

```bash
yarn add @neobase/splits-sdk-react

npm install @neobase/splits-sdk-react

```

## Documentation

Detailed documentation for the SDK can be found [here](https://docs.0xsplits.xyz/sdk-info/react)
npm package: @neobase/client
Description: neobase client js
Author: Bahman Asheghi
Latest version: 2.0.4

# NeoBase Client

Javascript client for [neobase](https://neobase.ir)

### install

```bash
npm i @neobase/client
```

### Usage

First get your project name from [NeoBase](https://neobase.ir), if you don't have a project yet, register and create one, it's free!

_note_ make sure to set your access config in NeoBase dashboard and read authentication docs below.

### Actual Usage

```javascript
import { getClient } from '@neobase/client'

const client = getClient('your-project-name', { baseurl: 'https://neobase.darkube.app/api' })

//create collection object
const Todos = client.Collection('todos')
const Animals = client.Collection('animals')

// *note* the apis is very close to [Mongoose](https://mongoosejs.com/)

//create a document
const { data, status } = await Todos.create({ name: 'update the docs', done: false })

//count all documents
await Todos.count()

//count with filters!
await Todos.count({ status: 'done' })

//fetch all documents
const { data, status } = await Todos.find()

//find options
await Todos
  //filter documents
  .find({ foo: 'bar' })
  //pagination
  .limit(85)
  .skip(65)
  //sorting
  .sort('createdAt')
  //select fields
  .projection({ name: 1 })
  // array of mongoose populate arguments
  .populate([{ model: 'users', path: 'createdBy' }])

// if you don't like chains
const res = await Todos.find(
  { foo: 'bar' },
  { _id: -1 },
  {
    sort: 'age',
    limit: 85,
    skip: 65
  }
)

//update
await Todos.updateOne({ _id: 1 }, { $set: { done: true } })

//delete all documents in a collection!
await Todos.deleteMany()

//delete finished tasks
await Todos.deleteMany({ done: true })

//delete single document
await Todos.deleteOne({ _id: 4 })
```

### Authentication

NeoBase use JsonWebToken for authentication, after authentication(login/register) a token is returned, save the token and send the token with each request as `x-auth-token` header;

```javascript
function getToken(){
    //fetch token
   return  localStorage.setItem('auth-token', token);
}

// pass the get token as option
const client = getClient('name',{..., getToken});

//authenticate
const { data, status } = await client.Auth.register({
  email: 'valid@mail.com',
  password: 'super-secure'
})

// or login
const { data, status } = await client.Auth.login({
  email: 'valid@mail.com',
  password: 'super-secure'
})

//get the token
const { token } = data;

//save your token
localstorage.setItem('auth-token',token);

// now every request will be authenticated
// check your session
const {data,status} = await client.Auth.me()

```

_note_ to check exipration date you can use jwt libraries.

### Documents

Please read NeoBase documents at [Docs](https://neobase.ir/docs).
npm package: @neobbs/renderer-terminal
Description: Terminal renderer for neobbs applications.
Latest version: 0.1.1

# @neobbs/renderer-terminal

Terminal renderer for [neobbs](https://github.com/ModoRetro/neobbs) applications.

Handles structured messages from the engine and writes formatted output to `process.stdout`.

## Installation

```bash
npm install @neobbs/renderer-terminal
```

## Usage

```js
const Engine = require('@neobbs/core');
const createRenderer = require('@neobbs/renderer-terminal');

const engine = new Engine();
const renderer = createRenderer();

const session = engine.createSession({
  _out: (msg) => renderer.render(msg),
});
```

Plug the renderer into a session by setting `session._out`. The engine and routes require no changes.

## Message Types

All output from routes flows through `session.send(msg)`, which normalizes strings to `{ type: 'text', content }` and calls `session._out`. The renderer handles each type:

| Type | Fields | Output |
|---|---|---|
| `text` | `content: string` | Prints the string followed by a newline |
| `header` | `title: string` | Divider + title + divider + blank line |
| `footer` | — | Divider + `>> ` prompt indicator |
| `clear` | — | Clears the terminal (`\x1Bc`) |
| `view` | `view: string`, `data?: any` | Calls registered view function, or falls back to JSON dump |

## Registering Custom Views

```js
renderer.registerView('post-detail', (data) => {
  process.stdout.write('Title:   ' + data.title + '\n');
  process.stdout.write('Content: ' + data.content + '\n');
});

// Route emits:
session.send({ type: 'view', view: 'post-detail', data: post });
```

If no view is registered for a name, the renderer falls back to printing the data as JSON.

## Custom Renderer

To use a different renderer (web, SSH, test), replace `session._out`:

```js
const session = engine.createSession({
  _out: (msg) => {
    if (msg.type === 'text') myTransport.write(msg.content);
  },
});
```

Routes and plugins never reference the renderer directly — they only call `session.send()`.

## License

MIT — see [LICENSE](../../LICENSE)
npm package: @neoblog/neoblog
Description: Lightweight bloging platform
Author: rocka
Latest version: 0.3.8

# neoblog

[![npm version][npm-badge]][npm-link]
[![dependencies status][david-badge]][david-link]

Lightweight bloging platform. Use files other than database.

## Get started

```bash
npm i -S @neoblog/neoblog
```

see [example/](./example) for config example.

## Plugins

Under construction.

[npm-badge]: https://img.shields.io/npm/v/@neoblog/neoblog.svg
[npm-link]: https://www.npmjs.com/package/@neoblog/neoblog
[david-badge]: https://david-dm.org/rocka/neoblog/status.svg
[david-link]: https://david-dm.org/rocka/neoblog
npm package: @neoblog/plugin-control-panel
Description: article/config management panel for neoblog
Author: rocka
Latest version: 0.1.2

# neoblog-plugin-control-panel

![npm](https://img.shields.io/npm/v/@neoblog/plugin-control-panel.svg)

Article/config management panel for neoblog, written in [Elm](http://elm-lang.org/) .

## Features

- Article
  - [x] list
  - [x] create
  - [x] modify
  - [ ] delete
  - [ ] group by tags
- Config
  - [ ] read
  - [ ] write
  - [ ] lint

## Usage

Install `@neoblog/plugin-control-panel` with `npm`, and see config example at [config.js](./config.js) .

Once plugin was installed, you can login at `/control/panel` .

## Plugin Options

```ts
new PluginControlPanel(options: IPluginOptions);

interface IPluginOptions {
    usr: string;        // login username
    pwd: string;        // login password
    jwtSecret: string;  // JSON Web Token secret
    jwtOptions?: any;   // jsonwebtoken sign options (see below)
}
```

jwtOptions default to `{ expiresIn: '2d' }`. Learn more [here](https://github.com/auth0/node-jsonwebtoken#jwtsignpayload-secretorprivatekey-options-callback) for infomation about Jwt options.
npm package: @neoblog/plugin-custom-page
Description: NeoBlog plugin for adding custom page under specific route
Author: rocka
Latest version: 0.1.1

# neoblog-plugin-custom-page

Add custom page route to NeoBlog.

## Usage

see [config.js](./config.js).

## Plugin options

```ts
new PluginCustomPage(options: IPluginOptions);

interface IPluginOptions {
    file: string,
    type?: PluginCustomPage.ARTICLE | PluginCustomPage.RAW,
    route: string
}
```

### file

The file to renderer. Can be absolute or realtive path.

### type

(Optional) How to renderer the file.

- `PluginCustomPage.ARTICLE`: (default) renderer this file as article.

- `PluginCustomPage.RAW`: renderer this file as article.

### route

Route for that file. It will be used in

```js
const router = new KoaRouter();

router.get(option.route, async ctx => {
    // ...
});
```
npm package: @neoblog/plugin-github-webhook
Description: NeoBlog plugin to reload server when receive GitHub webhook.
Author: rocka
Latest version: 1.0.0

# GitHub Webhook Plugin for Neoblog

Reload server when receive GitHub webhook.

## What does this plugin actually does

1. sync the repo and install dependencies

```bash
git fetch --all
git git reset --hard origin/master
npm ci
```

2. reload the server

```js
neoblog.reload();
```

## Configuration

in NeoBlog `config.js`:

```js
const GitHubWebhookPlugin = require('@neoblog/plugin-github-webhook');

module.exports = {
    // ...
    plugins: [
        // ...
        new GitHubWebhookPlugin({
            secret: 'a-very-long-secret-that-should-be-generated',
            path: '/path/to/webhook',
            localRef: 'origin/master'
        })
        // ...
    ]
    // ...
};
```

then setup webhook in GitHub porject settings.
npm package: @neoblog/plugin-gogs-webhook
Description: NeoBlog plugin to reload server when receive Gogs webhook.
Author: rocka
Latest version: 1.0.0

# Gogs Webhook Plugin for Neoblog

Reload server when receive Gogs webhook.

## What does this plugin actually do

1. sync the repo and install dependencies

```bash
git fetch --all
git git reset --hard origin/master
npm ci
```

2. reload the server

```js
neoblog.reload();
```

## Configuration

in NeoBlog `config.js`:

```js
const GogsWebhookPlugin = require('@neoblog/plugin-gogs-webhook');

module.exports = {
    // ...
    plugins: [
        // ...
        new GogsWebhookPlugin({
            secret: 'a-very-long-secret-that-should-be-generated',
            path: '/path/to/webhook',
            localRef: 'origin/master'
        })
        // ...
    ]
    // ...
};
```

then setup webhook in Gogs porject settings.
npm package: @neoblog/plugin-rss
Description: NeoBlog plugin to generate RSS feed
Author: rocka
Latest version: 0.3.0

# neoblog-plugin-rss

Add RSS feed support, powered by [`node-rss`](https://github.com/dylang/node-rss).

## Usage

see [config.js](./config.js).

## Plugin options

```ts
new PluginRSS(options: IPluginOptions);

interface IPluginOptions {
    limit: number
    route: string
    feedOptions?: NodeRSS.FeedOptions
    itemOptions?: NodeRSS.ItemOptions
}
```

### limit

Max articles in RSS feed, default to 10.

### route

Route to RSS feed, default to `'/rss'`.

### feedOptions

See [NodeRSS.FeedOptions](https://github.com/dylang/node-rss#feedoptions) for details.

But some fields are required:

#### site_url

URL to the site that the feed is for.

#### description

Though not required, but it's recommended to have a description.

### itemOptions

See [NodeRSS.ItemOptions](https://github.com/dylang/node-rss#itemoptions) for details.

Useful fields:

#### author

Name of the item's creator.
npm package: @neochen/everything-antigravity
Description: Everything Antigravity — AI 编程最佳实践合集，一键为 Antigravity 配置 Skills/Rules/Workflows
Latest version: 2.1.0
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Everything Antigravity

> 从 [Everything Claude Code](https://github.com/affaan-m/everything-claude-code) 提取核心价值，为 Antigravity 原生重写的最佳实践合集。

## 快速开始

```bash
# 1. 全局安装
npm install -g @neochen/everything-antigravity

# 2. 进入你的项目，初始化
cd your-project
ea init
```

就这么简单。26 个 Skills + 11 个 Workflows + 18 条 Rules 一步到位。

## 命令

```bash
ea init                 # 安装全部到当前项目
ea init --lang ts       # 仅 TypeScript 规则
ea init --lang python   # 仅 Python 规则
ea init --lang golang   # 仅 Go 规则
ea status               # 查看安装状态
ea uninstall            # 卸载（自动备份）
ea help                 # 帮助
```

## 与 ECC 的区别

| | ECC (Claude Code) | EA (Antigravity) |
|---|---|---|
| 安装 | 克隆仓库 + bash | **`npm i -g` + `ea init`** |
| 路径 | `~/.claude/` | `.agent/` |
| Hooks | JS hooks 脚本 | **编辑后操作提醒** |
| Rules | 无 frontmatter | `trigger: glob/model_decision` |
| 持久记忆 | 无 | **Knowledge Items** |
| 安全 | 手动 | **Strict/Sandbox Mode** |

## 安装了什么

### Skills (26)
TDD · 安全审查 · 编码标准 · 前后端模式 · Python/Django · Go · Spring Boot/JPA · PostgreSQL/ClickHouse · Agent Guides · ⭐ Knowledge Management · ⭐ Security Hardening

### Workflows (11)
`/plan` ⭐ · `/verify` ⭐ · `/tdd` · `/code-review` · `/e2e` · `/build-fix` · `/go-build` · `/go-review` · `/go-test` · `/python-review` · `/setup-pm`

### Rules (18)
6 通用 (`model_decision`) + 4 TypeScript + 4 Python + 4 Go (`glob` 按需激活)

## 许可

MIT
npm package: @neochess/components
Description: Set of professional chess components
Author: Luis Manuel Amengual
Latest version: 0.0.10



[![npm version](https://badge.fury.io/js/%40neochess%2Fcomponents.svg)](https://badge.fury.io/js/%40neochess%2Fcomponents)
[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/@neochess/components)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
![](https://img.shields.io/github/forks/luismanuelamengual/Neochess-Components.svg?style=social&label=Fork)
![](https://img.shields.io/github/stars/luismanuelamengual/Neochess-Components.svg?style=social&label=Star)
![](https://img.shields.io/github/watchers/luismanuelamengual/Neochess-Components.svg?style=social&label=Watch)
![](https://img.shields.io/github/followers/luismanuelamengual.svg?style=social&label=Follow)

# Neochess-Components

Neochess Components is a library of chess components built as web components that are ready to be used within your favourite framework (React, Angular, Vue, etc) or with just vanilla javascript.

![alt text](https://luismanuelamengual.github.io/neochess/assets/screenshots/screenshot.png)

[Live Demo ↗](https://luismanuelamengual.github.io/neochess/components/)

## Installation

To use this library install it by running:

```bash
npm i @neochess/components --save
```

and import the library in your main module/component/index.html:

```JS
import '@neochess/components';
```

## Usage

To use the components just add one of the components custom tags (neochess-board) in your html

<!--
```
<custom-element-demo>
  <template>
    <script type="module" src="https://cdn.jsdelivr.net/npm/@neochess/components@0.0.7/dist/neochess-components.bundle.js"></script>
    <next-code-block></next-code-block>
  </template>
</custom-element-demo>
```
-->
```html
<neochess-board></neochess-board>
```

## Contributing

1. Fork it!
2. Create your feature branch: `git checkout -b my-new-feature`
3. Commit your changes: `git commit -am 'Add some feature'`
4. Push to the branch: `git push origin my-new-feature`
5. Submit a pull request :D

## Contact

For bugs or for requirements please contact me at luismanuelamengual@gmail.com
npm package: @neocoast/neox
Description: Data structure supporting new redux hooks
Author: tintef,maurocen
Latest version: 0.1.0-alpha.0

<p align="center">
  <a href="https://github.com/NeoCoast/neox" target="_blank">
    <img width="250px" src="https://raw.githubusercontent.com/NeoCoast/neox/master/static/logo.svg">
  </a>
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/@neocoast/neox">
    <img src="https://img.shields.io/npm/v/@neocoast/neox.svg"/>
    <img src="https://img.shields.io/npm/dm/@neocoast/neox.svg"/>
  </a>
</p>

# Neox

## Installation

```bash
npm install --save @neocoast/neox 
or
yarn add @neocoast/neox
```


## Usage

```js
import fromJS from '@neocoast/neox';

const state = fromJS({
  loading: false,
  username: null,
});

console.log(intialState);
// {values: Map(2), toJS: ƒ, set: ƒ}

console.log(state.values);
// Map(2) {"loading" => false, "username" => null}

console.log(state.toJS());
// {loading: false, username: null}

// Change username
state.set('username', 'tintef');

console.log(state.toJS());
// {loading: false, username: 'tintef'}


// Chained set calls
state.set('username', 'maurocen').set('loading', true);

console.log(state.toJS());
// {loading: false, username: 'maurocen'}
```

### Usage with redux-devtools

In order to correctly see your reducers chart in Redux's devtools, the following needs to be done:

```js
const devToolsExtension = window.__REDUX_DEVTOOLS_EXTENSION__ ? (
  window.__REDUX_DEVTOOLS_EXTENSION__({
    serialize: {
      replacer: (key, value) => value && value.toJS ? value.toJS() : value
    },
  })
) : (
  (f) => f
);
```


## Motivation

[ImmutableJS](https://immutable-js.github.io/immutable-js/) doesn't work well with [Redux's hooks](https://react-redux.js.org/api/hooks) -- see [this issue](https://github.com/reduxjs/redux/issues/3699).

Neox doesn't change the values references inside the object retrieved by the `toJS()` method and this allows the following comparisson:

```js
const state = fromJS({ arr: ['tintef', 'maurocen'] });

console.log(state.toJS().arr === state.toJS().arr);
// true
```

If you're currently using `Immutable`, an effect triggered by changes on `state.toJS().arr` will be triggered even when `arr`hasn't changed at all. This is because `Immutable`'s `toJS()` function changes the references of the internal values. `Neox` doesn't change the internal references unless `.set` is called. So your effect will only be triggered when you set a new array to it.


<p align="center" style="font-size: 10px; margin-top: 50px;">
Icons made by <a href=“https://www.flaticon.es/autores/freepik” title=“Freepik”>Freepik</a> from <a href=“https://www.flaticon.es/” title=“Flaticon”> www.flaticon.es</a>
<p align="center">
npm package: @neocoast/neploy
Description: Deploy helper
Latest version: 0.0.8

<p align="center">
  <a href="https://github.com/neocoast/neploy">
    <img src="./public/rocket.svg" width="250" />
  </a>
</p>

# Neploy

_The NeoCoast deployment tool_

**neploy** is a _portmanteau_ of **[NeoCoast](https://neocoast.com)** and **deploy**.

---

## Usage

```bash
neploy [COMMAND]
```

## init

```bash
neploy init <options>
```

### Options

- --interactive (_optional_): Launch interactive configuration helper (frontend only)
- --no-backend (_optional_): Do not include backend configuration
- --no-frontend (_optional_):  Do not include frontend configuration

## frontend

```bash
neploy frontend <options>
```

### Options

- --env, -e: The name of the environment in the _.neployrc_ file (_i.e._: staging)
- --no-build (_optional_): Skip the build step
- --no-invalidation (_optional_): Skip creating CloudFront invalidations
- --no-upload (_optional_): Skip uploading to S3 buckets
- --force, -f (_optional_): Do not ask for confirmation on any step

## TO-DO list

- [ ] Add backend support
  - [ ] Deploy to ElasticBeanstalk
    - [ ] Synchronize ElasticBeanstalk environment variables with .env
  - [ ] Deploy to EC2
- [ ] Create S3 buckets if they do not exist
- [ ] Make `init` command interactive
  - [x] Frontend
  - [ ] Backend

## Want to contribute?

1. Fork this repository.
2. Clone your fork.
3. Write your changes.
4. Submit a PR.

---

Icons made by <a href="https://www.flaticon.com/authors/freepik" title="Freepik">Freepik</a> from <a href="https://www.flaticon.com/" title="Flaticon"> www.flaticon.com</a>
npm package: @neocoast/react-cli
Description: [![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io) [![Version](https://img.shields.io/npm/v/@neocoast/react-cli.svg)](https://npmjs.org/package/@neocoast/react-cli) [![Downloads/week](https://img.shields.io/npm/dw/@neocoa
Author: Nicolás Tinte @Tintef
Latest version: 1.0.2

# @neocoast/react-cli

[![oclif](https://img.shields.io/badge/cli-oclif-brightgreen.svg)](https://oclif.io)
[![Version](https://img.shields.io/npm/v/@neocoast/react-cli.svg)](https://npmjs.org/package/@neocoast/react-cli)
[![Downloads/week](https://img.shields.io/npm/dw/@neocoast/react-cli.svg)](https://npmjs.org/package/@neocoast/react-cli)
[![License](https://img.shields.io/npm/l/@neocoast/react-cli.svg)](https://github.com/NeoCoast/react-cli/blob/master/package.json)

## Usage

```sh-session
$ npx @neocoast/react-cli
```

<img src="https://raw.githubusercontent.com/NeoCoast/react-cli/master/public/usage.png" />

## Roadmap

- Explain project(s) structure
- Add flags to the command
- Add testing support (jest and cypress)
- Add GraphQL support (Apollo client)
- Grab author from local git configuration
- Add less and postcss support
- Add TS support
npm package: @neocode-ai/app
Description: Dependencies for these templates are managed with [pnpm](https://pnpm.io) using `pnpm up -Lri`.
Latest version: 1.1.1

## Usage

Dependencies for these templates are managed with [pnpm](https://pnpm.io) using `pnpm up -Lri`.

This is the reason you see a `pnpm-lock.yaml`. That said, any package manager will work. This file can safely be removed once you clone a template.

```bash
$ npm install # or pnpm install or yarn install
```

### Learn more on the [Solid Website](https://solidjs.com) and come chat with us on our [Discord](https://discord.com/invite/solidjs)

## Available Scripts

In the project directory, you can run:

### `npm run dev` or `npm start`

Runs the app in the development mode.<br>
Open [http://localhost:3000](http://localhost:3000) to view it in the browser.

The page will reload if you make edits.<br>

### `npm run build`

Builds the app for production to the `dist` folder.<br>
It correctly bundles Solid in production mode and optimizes the build for the best performance.

The build is minified and the filenames include the hashes.<br>
Your app is ready to be deployed!

## E2E Testing

Playwright starts the Vite dev server automatically via `webServer`, and UI tests need an neocode backend (defaults to `localhost:4096`).
Use the local runner to create a temp sandbox, seed data, and run the tests.

```bash
bunx playwright install
bun run test:e2e:local
bun run test:e2e:local -- --grep "settings"
```

Environment options:

- `PLAYWRIGHT_SERVER_HOST` / `PLAYWRIGHT_SERVER_PORT` (backend address, default: `localhost:4096`)
- `PLAYWRIGHT_PORT` (Vite dev server port, default: `3000`)
- `PLAYWRIGHT_BASE_URL` (override base URL, default: `http://localhost:<PLAYWRIGHT_PORT>`)

## Deployment

You can deploy the `dist` folder to any static host provider (netlify, surge, now, etc.)
npm package: @neocode-ai/slack
Description: Slack bot integration for neocode that creates threaded conversations.
Latest version: 1.1.1

# @neocode-ai/slack

Slack bot integration for neocode that creates threaded conversations.

## Setup

1. Create a Slack app at https://api.slack.com/apps
2. Enable Socket Mode
3. Add the following OAuth scopes:
   - `chat:write`
   - `app_mentions:read`
   - `channels:history`
   - `groups:history`
4. Install the app to your workspace
5. Set environment variables in `.env`:
   - `SLACK_BOT_TOKEN` - Bot User OAuth Token
   - `SLACK_SIGNING_SECRET` - Signing Secret from Basic Information
   - `SLACK_APP_TOKEN` - App-Level Token from Basic Information

## Usage

```bash
# Edit .env with your Slack app credentials
bun dev
```

The bot will respond to messages in channels where it's added, creating separate neocode sessions for each thread.
npm package: @neocode-ai/web
Description: [![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build)
Latest version: 1.1.1

# Starlight Starter Kit: Basics

[![Built with Starlight](https://astro.badg.es/v2/built-with-starlight/tiny.svg)](https://starlight.astro.build)

```
npm create astro@latest -- --template starlight
```

[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/starlight/tree/main/examples/basics)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/starlight/tree/main/examples/basics)
[![Deploy to Netlify](https://www.netlify.com/img/deploy/button.svg)](https://app.netlify.com/start/deploy?repository=https://github.com/withastro/starlight&create_from_path=examples/basics)
[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Fwithastro%2Fstarlight%2Ftree%2Fmain%2Fexamples%2Fbasics&project-name=my-starlight-docs&repository-name=my-starlight-docs)

> 🧑‍🚀 **Seasoned astronaut?** Delete this file. Have fun!

## 🚀 Project Structure

Inside of your Astro + Starlight project, you'll see the following folders and files:

```
.
├── public/
├── src/
│   ├── assets/
│   ├── content/
│   │   ├── docs/
│   └── content.config.ts
├── astro.config.mjs
├── package.json
└── tsconfig.json
```

Starlight looks for `.md` or `.mdx` files in the `src/content/docs/` directory. Each file is exposed as a route based on its file name.

Images can be added to `src/assets/` and embedded in Markdown with a relative link.

Static assets, like favicons, can be placed in the `public/` directory.

## 🧞 Commands

All commands are run from the root of the project, from a terminal:

| Command                   | Action                                           |
| :------------------------ | :----------------------------------------------- |
| `npm install`             | Installs dependencies                            |
| `npm run dev`             | Starts local dev server at `localhost:4321`      |
| `npm run build`           | Build your production site to `./dist/`          |
| `npm run preview`         | Preview your build locally, before deploying     |
| `npm run astro ...`       | Run CLI commands like `astro add`, `astro check` |
| `npm run astro -- --help` | Get help using the Astro CLI                     |

## 👀 Want to learn more?

Check out [Starlight’s docs](https://starlight.astro.build/), read [the Astro documentation](https://docs.astro.build), or jump into the [Astro Discord server](https://astro.build/chat).
npm package: @neocodemirror/svelte
Description: Svelte Action to add codemirro to your apps 😉
Author: Puru Vijay
Latest version: 0.0.18

Neocodemirror

Aims to provide Codemirror 6 as an easy to use codemirror action.

Usage:

```svelte
<script>
  import { codemirror } from '@neocodemirror/svelte'
</script>

<div use:codemirror={{ value: 'Hello world' }} />
```

With Language:

```svelte
<script>
  import { codemirror } from '@neocodemirror/svelte'
  import { javascript } from '@codemirror/lang-javascript'
</script>

<div use:codemirror={{ value: 'Hello world', lang: javascript() }} />
```

Getting editor related data

```svelte
<script>
  import { codemirror, withCodemirrorInstance } from '@neocodemirror/svelte'
  import { javascript } from '@codemirror/lang-javascript'

  // This acts a readonly store. $ notation works here
  const cmInstance = withCodemirrorInstance()

  $: console.log($cmInstance.view, $cmInstance.value, $cmInstance.extensions)
</script>

<div use:codemirror={{ value: 'Hello world', lang: javascript(), instanceStore: cmInstance }} />
```

Note: Passing the store recieved from `withCodemirrorInstance` is required to get the editor related data. If you don't pass this store, you will not get any data.

## Document mode

If you pass a `documentId` in the options you'll automatically enter document mode. In this mode whenever the `documentId` changes the state of the editor get's stored in a map and will later be restored when the `documentId` changes again. This allows for the history to be `documentId` contained (so for example if you change documentId and try to Ctrl+Z or Cmd+Z it will not work). Right before this swap and right after two events `on:codemirror:documentChanging` and `on:codemirror:documentChanged` will be fired. This allows you to store additional state that might not be serializable in the codemirror state.

```svelte
<script>
  import { codemirror } from '@neocodemirror/svelte'
  import { javascript } from '@codemirror/lang-javascript'

  const documents = [
	{
		title: '+page.svelte',
		content: '<scri lang="ts">export let data</scri'++'pt> {data.name}'
	},
	{
		title: '+page.js',
		content: 'export function load(){ return {name: "neocodemirror"} }'
	},
  ];

  let selected_document = 0;
</script>

{#each documents as document, i}
	<button on:click={()=> selected_document=i}>{document.title}</button>
{/each}

<div 
	on:codemirror:textChange={(new_text)=>{
		documents[selected_document].content=new_text;
	}}
	use:codemirror={{ 
		value: documents[selected_document].content, 
		documentId: documents[selected_document].title
	}} 
/>
```
npm package: @neocomp/full
Description: new generation of reactivity and speed
Author: aliibrahim123
Latest version: 0.5.14

# neocomp
bored of frameworks magic, want a lightweight solution for building scalable web apps and sites.

introducing **neocomp**, a lightweight, fast, and modern javascript web framework simplifying
web develepment without sacrificing maintainability or language identity.

it achieves this goal through fine grained reactivity, driven by imperative construction, with the use of chunked templating.

```typescript
class Counter extends Component {
	constructor () {
		super();
		const { html } = this.createTop();
		
		let count = this.signal(0);
		html`<button on:click=${() => count.value++}>count: ${count}</button>`;

		this.fireInit();
	}
}
```


# quick start
- [first steps](./docs/quick-guide/first-steps.md)
- [basic state management](./docs/quick-guide/basic-state.md)
- [templates](./docs/quick-guide/templates.md)

# docs
this is the index of the documentation.

- [rawdom](./docs/rawdom.md)
- **litedom:**
  - [core](./docs/litedom/core.md)
  - [parse](./docs/litedom/parse.md)
- [zro router](./docs/zro-router.md)
- **`comp-base` module:**
  - **core:**
    - [`Component`](./docs/comp-base.core/component.md)
    - [registry](./docs/comp-base.core/registry.md)
    - [general utilities](./docs/comp-base.core/utilities.md)
  - **state:**
    - [fundamentals](./docs/comp-base.state/fundamentals.md)
    - [`Store`](./docs/comp-base.state/store.md)
    - [state utilities](./docs/comp-base.state/utilities.md)
  - **view:**
    - [`View`](./docs/comp-base.view/view.md)
    - [chunk reference](./docs/comp-base.view/chunk.md)
- [vite plugin](./docs/plugin.md)
- [examples and patterns](./docs/examples.md)

# blogpost
check out the latest blogposts about neocomp at [recomputed](https://aliibrahim123.github.io/recomputed/web-dev).

---

thanks for selecting neocomp as your base framework, if you noticed issues or have ideas dont be
shy to share.  
`request(new Time() |> filter(!bug))`.