open-index/open-npm huggingface dataset:
npm package: @komino/graphql-sqlite-ddl
Description: Parse graphQL Types to SQLite DDL
Author: Shiba Komino
Latest version: 0.0.15
Deprecated: Project migrated. Please use kohanajs

# graphql-sqlite-ddl
parse graphQL type to SQLite DDL
```
const schema = buildSchema(`

type Persons {
    first_name: String!
    last_name: String!
    phone: String
    email: String
}

`);

const sql = parse(schema);

```

result will be
```
CREATE TABLE persons(
    id INTEGER UNIQUE DEFAULT ((( strftime('%s','now') - 1563741060 ) * 100000) + (RANDOM() & 65535)) NOT NULL ,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL ,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL ,
    first_name TEXT NOT NULL ,
    last_name TEXT NOT NULL ,
    phone TEXT ,
    email TEXT
);

CREATE TRIGGER persons_updated_at AFTER UPDATE ON persons WHEN old.updated_at < CURRENT_TIMESTAMP BEGIN
    UPDATE persons SET updated_at = CURRENT_TIMESTAMP WHERE id = old.id;
END;
```

##

### Supported Directives
- default(value: "")
- unique
- index
- primary
- autoIncrement

##

### ORM
belongsTo, hasAndBelongsToMany
- foreignKey(value: """)

defines belongsTo, hasAndBelongsToMany relationship
```
type Users{
    name: String
}

type Blogs{
    handle: String
    belongsTo: Users
}
```

transform to SQL
```
CREATE TABLE users(
    id INTEGER UNIQUE DEFAULT ((( strftime('%s','now') - 1563741060 ) * 100000) + (RANDOM() & 65535)) NOT NULL ,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL ,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL ,
    name TEXT
);
CREATE TRIGGER users_updated_at AFTER UPDATE ON users WHEN old.updated_at < CURRENT_TIMESTAMP BEGIN
    UPDATE users SET updated_at = CURRENT_TIMESTAMP WHERE id = old.id;
END;


CREATE TABLE blogs(
    id INTEGER UNIQUE DEFAULT ((( strftime('%s','now') - 1563741060 ) * 100000) + (RANDOM() & 65535)) NOT NULL ,
    created_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL ,
    updated_at DATETIME DEFAULT CURRENT_TIMESTAMP NOT NULL ,
    handle TEXT ,
    user_id INTEGER NOT NULL ,
    FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE
);
CREATE TRIGGER blogs_updated_at AFTER UPDATE ON blogs WHEN old.updated_at < CURRENT_TIMESTAMP BEGIN
    UPDATE blogs SET updated_at = CURRENT_TIMESTAMP WHERE id = old.id;
END;
```
npm package: @komino/worker-router
Description: The router for cloudflare worker
Author: Colin Leung
Latest version: 0.0.8

# worker-router
router for cloudflare worker using path-to-regexp

# usage
```
const Router = require('@komino/worker-router');
const r = new Router();
r.on('GET', '/', async request => new Response('Hello world'));

//or using short hands
r.get('/user/:id/:action', async request => new Response(`user ${request.params.id}, ${request.params.action}`));
```

# example
```
//cloudflare worker event listener
addEventListener('fetch', event => {
  event.respondWith(handleRequest(event.request))
});

//import package
const Router = require('@komino/worker-router');
async function handleRequest(request) {
  //tips: capture error for debugging.
  try{
    //create router
    const r = new Router();
    //create route
    r.on('GET', '/', async request => new Response('Hello world'));

    //create route using shorthand
    r.get('/user/:id/:action', async request => new Response(`user ${request.params.id}, ${request.params.action}`));

    //router lookup matching the request URL, then run the given handler. 
    return await r.lookup(request);
  } catch(err) {
    return new Response(err.stack || err);
  }
}

```

### Default handler
When no route can be matched, default handler will be used.

To override default router, initialise router with defaultHandler as option object.

```const r = new Router({defaultHandler : request => new Response('Oops, no route matched')});```
npm package: @kommently/react
Description: React embed for Kommently comments
Author: Letrix Labs
Latest version: 1.0.2

# @kommently/react

React embed for Kommently comments.

## Install

```bash
npm i @kommently/react
```

## Usage

```tsx
import { KommentlyEmbed } from "@kommently/react";

export function CommentsWidget() {
  return <KommentlyEmbed siteId="SITE_ID" slug="/my-post" backgroundEnabled={false} />;
}
```

TypeScript declarations are included in the package.
npm package: @kommerz/ts-client
Description: Typescript client for Kommerz API
Author: Kommerz.App
Latest version: 1.153.0

# KOMMERZ ts-client

This library is part of the KOMMERZ project.
It is a TypeScript client library for the public KOMMERZ API that can be used to automate workflows.

You can find more information about KOMMERZ at [https://kommerz.app](https://kommerz.app).
npm package: @kommit/cli
Description: CLI to install the Kommit MCP server for AI coding tools
Author: Kommit AI
Latest version: 0.1.7

# @kommit/cli

Connect [Kommit](https://getkommit.ai) to your AI coding tools with a single command.

```bash
npx @kommit/cli@latest --client claude-code
```

Kommit gives your AI tools persistent project memory — specs, decisions, learnings, and context that carry across sessions.

## Quick Start

```bash
npx @kommit/cli@latest --client claude-code
```

This opens your browser to authenticate, then writes the MCP config to your project. Restart your editor and Kommit is connected.

## Supported Tools

| Client | Transport | Config Location |
|--------|-----------|-----------------|
| Claude Code | Native URL | `.mcp.json` |
| Cursor | Native URL | `.cursor/mcp.json` |
| VS Code | Native URL | `.vscode/mcp.json` |
| Claude Desktop | stdio | `claude_desktop_config.json` |
| Windsurf | stdio | `~/.codeium/windsurf/mcp_config.json` |
| Cline | stdio | VS Code global storage |
| Zed | stdio | `~/.config/zed/settings.json` |
| Codex | stdio | `~/.codex/config.toml` |
| Goose | stdio | `~/.config/goose/config.yaml` |
| Gemini CLI | stdio | `~/.gemini/settings.json` |
| Aider | stdio | `~/.aider/mcp.yml` |
| And more... | | |

Clients with Native URL transport connect directly to the Kommit API — no proxy process needed. Stdio clients use `mcp-remote` as a bridge.

## Options

```
--client    AI tool to install for (interactive prompt if omitted)
--key       API key — skip browser auth (useful for CI/CD)
--global    Write to global config instead of project-local
--name      Server name in the config (default: "kommit")
```

## Examples

```bash
# Interactive — prompts you to pick a client
npx @kommit/cli@latest

# Direct install for Cursor (global config)
npx @kommit/cli@latest --client cursor --global

# Headless / CI — provide key directly
npx @kommit/cli@latest --client claude-code --key km_your_key_here
```

## How It Works

1. CLI starts a local server and opens your browser to `getkommit.ai/cli-auth`
2. You log in and click "Authorize"
3. Kommit creates an API key and sends a short-lived code back to the CLI
4. CLI exchanges the code for the key and writes your config file

The API key never appears in your browser URL or history.

## Links

- [Website](https://getkommit.ai)
- [Documentation](https://getkommit.ai/docs)
- [Dashboard & Settings](https://getkommit.ai/settings)

## License

MIT