open-index/open-npm huggingface dataset:
npm package: @rarimo/quickswap-sdk
Description: 🛠 An SDK for building applications on top of Quickswap.
Latest version: 3.0.8

# QuickSwap SDK

This repository has been forked from [UniswapV2](https://github.com/Uniswap/uniswap-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:

```sh
git clone https://github.com/QuickSwap/QuickSwap-sdk.git
```

Move into the quickswap-sdk working directory

```sh
cd QuickSwap-sdk/
```

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: @rarimo/worldid-integration-contracts
Description: WorldID <> Rarimo
Author: Global Web3 Sandbox Ltd
Latest version: 1.0.1

# WorldID integration contracts

This repository manages the smart contracts that handle Rarimo <> WorldID integration.

## What

The repository consists of three smart contracts:

- `IdentityManager` that stores and updates the WorldID state roots via Rarimo TSS transition function
- `Verifier` that verifies user ZK proofs and checks the validity of the root the proof is generated against
- `SemaphoreVerifier` that actually verifies ZK proofs (forked from WorldID contracts)

Together these smart contracts allow WorldID to become cross-chain leveraging Rarimo multichain technology.

## Usage

### Test

To run the tests, execute the following command:

```bash
npm run test
```

Or to see the coverage, run:

```bash
npm run coverage
```

### Deployment

Prior deployment create the `.env` file following the example provided in `.env.example`. Also check out the required config in the `deploy/config/config.json` file.

The config structure is the following:

```json
{
  "signer": "0x0000000000000000000000000000000000000000",
  "sourceStateContract": "0x0000000000000000000000000000000000000000",
  "chainName": "CHAIN_NAME"
}
```

Where `signer` is the address of Rarimo TSS signer, `sourceStateContract` is the address of WorldID manager contract to listed to, and `chainName` is the name of the network (e.g. Ethereum, Sepolia, Mumbai) where the contracts are being deployed to.

After the configuration is provided, execute:

```bash
npm run deploy-<network>
```

Check the available options in the `package.json`.

### Local Deployment

To deploy the contracts locally, run the following commands (in the different terminals):

```bash
npm run private-network
npm run deploy-local
```

### Bindings

The command to generate the bindings is as follows:

```bash
npm run generate-types
```

## Disclaimer

GLHF!
npm package: @rark-ui/mcp
Description: Rui Ark MCP server with stdio transport
Latest version: 1.0.1

# rui-ark-mcp

一个通过 `stdio` 提供能力的 MCP Server，支持以下工具：

- `list-components`
- `list-examples`
- `get-example`
- `list-documents`
- `get-document`

当前首版仅支持 `framework=vue`。

## 安装与运行

### 本地开发

```bash
pnpm install
pnpm --filter rui-ark-mcp build
pnpm --filter rui-ark-mcp start
```

### 快速验 5 个工具真实返回（Inspector 风格）

```bash
pnpm --filter rui-ark-mcp build
pnpm --filter rui-ark-mcp smoke:inspector
```

该脚本会通过 `stdio` 启动本地 `dist/cli.js`，并按顺序调用：

- `list-components`
- `list-examples`
- `list-documents`
- `get-example`
- `get-document`

输出为每个 tool 的原始 MCP `callTool` 返回，便于快速检查远程/本地回退结果。

### 通过 npx 启动

发布到 npm 后，可直接通过：

```bash
npx rui-ark-mcp
```

## MCP Client 配置（stdio）

```json
{
  "mcpServers": {
    "rui-ark-mcp": {
      "command": "npx",
      "args": ["-y", "rui-ark-mcp"],
      "env": {
        "MCP_REMOTE_BASE_URL": "https://your-api.example.com",
        "MCP_REMOTE_TOKEN": "your-token",
        "MCP_TIMEOUT_MS": "8000",
        "MCP_REMOTE_RETRIES": "1",
        "MCP_REPO_ROOT": "C:/workspace/rui-ark"
      }
    }
  }
}
```

## 远程优先策略

工具执行时按以下顺序查数据：

1. 远程接口（`MCP_REMOTE_BASE_URL`）
2. 本地回退（默认扫描 `MCP_REPO_ROOT/packages/vue/core/src/components`）

返回结果包含 `source` 字段，取值为 `remote` 或 `local`。

## 远程接口约定

默认会使用以下 GET 端点（可通过环境变量覆盖）：

- `MCP_REMOTE_ENDPOINT_LIST_COMPONENTS`，默认 `/api/mcp/components`
- `MCP_REMOTE_ENDPOINT_LIST_EXAMPLES`，默认 `/api/mcp/examples`
- `MCP_REMOTE_ENDPOINT_GET_EXAMPLE`，默认 `/api/mcp/example`
- `MCP_REMOTE_ENDPOINT_LIST_DOCUMENTS`，默认 `/api/mcp/documents`
- `MCP_REMOTE_ENDPOINT_GET_DOCUMENT`，默认 `/api/mcp/document`

公共 query 参数：

- `framework`（首版仅 `vue`）
- `componentName`（在 `get-example`、`get-document` 中传入）

响应支持两种格式：

- 直接返回结果数据
- 包一层 `{ "data": ... }` 或 `{ "result": ... }`
npm package: @rarui-react/tabs
Description: Tabs are used to switch between different display modes or pages.
Latest version: 1.3.1

# `@rarui-react/tabs`

Tabs are used to switch between different display modes or pages.

## Installation

```sh
$ yarn add @rarui-react/tabs
# or
$ npm install @rarui-react/tabs
```

## Usage

View docs [here]().
npm package: @rarui/scripts
Description: This package is intended for internal use in generating custom script builds at design system build time.
Latest version: 1.3.0

# `@rarui/scripts`

This package is intended for internal use in generating custom script builds at design system build time.

## Installation

```sh
$ yarn add @rarui/scripts
# or
$ npm install @rarui/scripts
```

## Usage

This is an internal utility, not intended for public usage.
npm package: @ras-sh/stack
Description: Modular TypeScript scaffolding. Build incrementally, update seamlessly, and never start from scratch again.
Author: Richard Solomou
Latest version: 0.0.3

![Stack Banner](https://ras.sh/static/stack.webp)

# @ras-sh/stack [![npm version](https://img.shields.io/npm/v/@ras-sh/stack.svg)](https://www.npmjs.com/package/@ras-sh/stack)

A CLI tool that allows developers to bootstrap TypeScript projects and incrementally add pre-configured modules (like Next.js, Convex, auth providers, etc.) in a composable way.

## Features

- 🏗️ **Modular Architecture**: Add functionality incrementally rather than choosing a monolithic template
- 🔄 **Updateable**: Pull in updates to modules without losing customizations (coming soon)
- 🎯 **Opinionated**: Pre-configured with best practices for each technology
- 🚀 **Fast**: Get started quickly with working configurations

## Quick Start

```bash
# Create a new project
npx @ras-sh/stack init my-app

# Add modules
cd my-app
npx @ras-sh/stack add nextjs
npx @ras-sh/stack add convex
```

## Available Modules

- **nextjs** - Next.js 15 with App Router and TypeScript
- **convex** - Convex backend with real-time sync (requires nextjs)

## Module Development

Modules are self-contained and follow this structure:

```typescript
export const myModule: Module = {
  name: 'my-module',
  description: 'Description of what this module does',
  requires: ['other-module'], // Optional dependencies
  conflicts: ['conflicting-module'], // Optional conflicts

  async canAdd(ctx: Context): Promise<boolean> {
    // Check if module can be added
    return true;
  },

  async add(ctx: Context): Promise<void> {
    // Install dependencies, copy templates, modify files
    await ctx.addDependencies({ 'some-package': '^1.0.0' });
    await ctx.copyTemplates('./templates');
  }
};
```

## License

MIT License - see the [LICENSE](LICENSE) file for details.
npm package: @ras-sh/typescript-config
Description: Shared typescript configuration for ras.sh projects.
Author: Richard Solomou
Latest version: 0.0.3

# @ras-sh/typescript-config

⚙️ Shared TypeScript configuration for [ras.sh](https://ras.sh) projects.

## Installation

```bash
pnpm add -D @ras-sh/typescript-config
```

## Usage

Choose the configuration that matches your project type and extend it in your `tsconfig.json`:

### TanStack Start

For TanStack Start applications with file-based routing and server functions:

```json
{
  "extends": "@ras-sh/typescript-config/tanstack-start.json",
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "~/*": ["./src/*"]
    }
  },
  "include": ["**/*.ts", "**/*.tsx"],
  "exclude": ["node_modules", "dist"]
}
```

### Next.js

For Next.js applications (App Router or Pages Router):

```json
{
  "extends": "@ras-sh/typescript-config/nextjs.json",
  "compilerOptions": {
    "baseUrl": ".",
    "paths": {
      "@/*": ["./*"]
    }
  },
  "include": ["next-env.d.ts", "**/*.ts", "**/*.tsx", ".next/types/**/*.ts"],
  "exclude": ["node_modules", ".next"]
}
```

### React Library

For React component libraries built with bundlers (tsup, Vite, Rollup):

```json
{
  "extends": "@ras-sh/typescript-config/react-library.json",
  "include": ["src/**/*.ts", "src/**/*.tsx"],
  "exclude": ["node_modules", "dist"]
}
```

### Base

For Node.js packages and libraries:

```json
{
  "extends": "@ras-sh/typescript-config/base.json",
  "compilerOptions": {
    "outDir": "dist",
    "rootDir": "src"
  },
  "include": ["src/**/*.ts"],
  "exclude": ["node_modules", "dist"]
}
```

## Available Configurations

- `nextjs.json` - for Next.js projects
- `tanstack-start.json` - for TanStack Start projects
- `react-library.json` - for React libraries
- `base.json` - the base configuration

## License

MIT License - see the [LICENSE](LICENSE) file for details.
npm package: @ras-sh/ui
Description: Shared UI library for ras.sh projects.
Author: Richard Solomou
Latest version: 0.0.6

# @ras-sh/ui

Shared UI library for ras.sh projects.

## Installation

```bash
pnpm add @ras-sh/ui
```

## Configuration

### Vite

#### 1. Install dependencies

```bash
pnpm add -D @tailwindcss/vite tailwindcss
```

#### 2. Configure Vite

Add the Tailwind CSS plugin to your `vite.config.ts`:

```ts
import tailwindcss from "@tailwindcss/vite";
import react from "@vitejs/plugin-react";
import { defineConfig } from "vite";

export default defineConfig({
  plugins: [react(), tailwindcss()],
});
```

#### 3. Import styles

Import the global styles in your main CSS file:

```css
@import "tailwindcss";

@import "@ras-sh/ui/globals.css";
@source "../../node_modules/@ras-sh/ui";
```

Adjust the paths based on your project structure.

### Next.js

#### 1. Install dependencies

```bash
pnpm add -D @tailwindcss/postcss tailwindcss
```

#### 2. Configure PostCSS

Create or update `postcss.config.mjs`:

```js
export default {
  plugins: {
    "@tailwindcss/postcss": {},
  },
};
```

#### 3. Import styles

Import the global styles in your root layout or main CSS file:

```css
@import "tailwindcss";

@import "@ras-sh/ui/globals.css";
@source "../node_modules/@ras-sh/ui";
```

Adjust the paths based on your project structure.

## Usage

### Import Options

The library supports tree-shaking and offers two import styles:

**Barrel import (recommended for convenience):**
```tsx
import { Button, Card } from "@ras-sh/ui";
```

**Subpath import (optimal for tree-shaking):**
```tsx
import { Button } from "@ras-sh/ui/button";
import { Card } from "@ras-sh/ui/card";
```

Both styles are tree-shaken properly. Component-specific dependencies are automatically bundled.

### Peer Dependencies

Some components require additional peer dependencies. Install only what you need:

```bash
# For Form components
pnpm add react-hook-form @hookform/resolvers zod

# For Table components
pnpm add @tanstack/react-table

# For Chart components
pnpm add recharts

# For Calendar/date components
pnpm add date-fns

# For icons
pnpm add lucide-react
```

### Example

```tsx
import { Button } from "@ras-sh/ui";

export default function Home() {
  return <Button>Click me</Button>;
}
```

## Examples

Check out the example projects to see how to use the library:

- [Next.js Example](./examples/nextjs) - Next.js app using Turbopack
- [Vite Example](./examples/vite) - React app using Vite
npm package: @rasahq/docusaurus-tabula
Description: `docusaurus-tabula` is a preset, theme, and configuration-generator for the [Docusaurus documentation framework](https://docusaurus.io/).
Latest version: 1.0.0-alpha.1

# Docusaurus Tabula

`docusaurus-tabula` is a preset, theme, and configuration-generator for the [Docusaurus documentation framework](https://docusaurus.io/).

## Background

This package intended to align roughly with the "tabula" design style, which is otherwise used on [rasa.com](https://rasa.com/). It is intended as a replacement to the Docusaurus theme in use on the following sites:

- [Rasa Open Source](https://rasa.com/docs/rasa/)
- [Rasa X](https://rasa.com/docs/rasa-x/)
- [Rasa Action Servers](https://rasa.com/docs/action-server/)

## Installation

```sh
npm i --save @rasahq/docusaurus-tabula
```

## Usage

```js
// docusaurus.config.js
const tabula = require('@rasahq/docusaurus-tabula');

module.exports = tabula.use({
  customFields: {
      title: 'Rasa Open Source Documentation',
      tagline: 'An open source machine learning framework for automated text and voice-based conversations',
    productLogo: '/img/logo-rasa-oss.png',
    legacyVersions: [{
      label: 'Legacy 1.x',
      href: 'https://legacy-docs-v1.rasa.com',
      target: '_blank',
      rel: 'nofollow noopener noreferrer',
    }],
    redocPages: [
      {
        title: 'Rasa HTTP API',
        specUrl: '/spec/rasa.yml',
        slug: '/pages/http-api',
      }
    ],
    announcementBar: {
      id: 'pre_release_notice', // Any value that will identify this message.
      content: 'These docs are for version 3.x of Rasa Open Source. <a href="https://rasa.com/docs/rasa/2.x/">Docs for the 2.x series can be found here.</a>',
      backgroundColor: '#6200F5', // Defaults to `#fff`.
      textColor: '#fff', // Defaults to `#000`.
      // isCloseable: false, // Defaults to `true`.
    }
  }
};

```

## Development

To start a development server run the following at the root of this repository:

```sh
yarn && yarn workspace testing-rasa dev
```

To understand how we are building the configuration and which business and user needs it covers, please refer to the documentation comments in `/packages/docusaurus-tabula/index.js`

__NOTE: changes to this package other than React component changes will often require restarting the development server.__
npm package: @rasahq/gatsby-plugin-emotion-tabula
Description: ## Gatsby Plugin References
Latest version: 0.3.14

# @rasahq/gatsby-plugin-emotion-tabula

## Gatsby Plugin References

- [Files Gatsby Looks for in a Plugin](https://www.gatsbyjs.com/docs/files-gatsby-looks-for-in-a-plugin/)
- [How APIs/Plugins Are Run](https://www.gatsbyjs.com/docs/how-plugins-apis-are-run/)
npm package: @rasahq/gatsby-plugin-rasa-favicons
Description: This package was generated with [RealFaviconGenerator](https://realfavicongenerator.net/) [v0.16](https://realfavicongenerator.net/change_log#v0.16)
Latest version: 0.3.10-alpha.0

# Your Favicon Package

This package was generated with [RealFaviconGenerator](https://realfavicongenerator.net/) [v0.16](https://realfavicongenerator.net/change_log#v0.16)

## Install instructions

To install this package:

Extract this package in the root of your web site. If your site is <code>http://www.example.com</code>, you should be able to access a file named <code>http://www.example.com/favicon.ico</code>.

Insert the following code in the `head` section of your pages:

    <link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png?v=0.7.7">
    <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png?v=0.7.7">
    <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png?v=0.7.7">
    <link rel="manifest" href="/site.webmanifest?v=0.7.7">
    <link rel="mask-icon" href="/safari-pinned-tab.svg?v=0.7.7" color="#5bbad5">
    <link rel="shortcut icon" href="/favicon.ico?v=0.7.7">
    <meta name="apple-mobile-web-app-title" content="Rasa">
    <meta name="application-name" content="Rasa">
    <meta name="msapplication-TileColor" content="#603cba">
    <meta name="theme-color" content="#ffffff">

*Optional* - Check your favicon with the [favicon checker](https://realfavicongenerator.net/favicon_checker)

## Gatsby Plugin References

- [Files Gatsby Looks for in a Plugin](https://www.gatsbyjs.com/docs/files-gatsby-looks-for-in-a-plugin/)
- [How APIs/Plugins Are Run](https://www.gatsbyjs.com/docs/how-plugins-apis-are-run/)
npm package: @rasahq/gatsby-plugin-sass
Description: Simplified fork of official plugin which has bad schema checks.
Latest version: 1.1.1

# @rasahq/gatsby-plugin-sass

Simplified fork of official plugin which has bad schema checks.

## Gatsby Plugin References

- [Files Gatsby Looks for in a Plugin](https://www.gatsbyjs.com/docs/files-gatsby-looks-for-in-a-plugin/)
- [How APIs/Plugins Are Run](https://www.gatsbyjs.com/docs/how-plugins-apis-are-run/)
npm package: @rasahq/gatsby-plugin-sass-tabula
Description: ## Gatsby official sass plugin
Latest version: 0.3.10-alpha.0

# @rasahq/gatsby-plugin-sass-tabula

## Gatsby official sass plugin

https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-sass/README.md

## Gatsby Plugin References

- [Files Gatsby Looks for in a Plugin](https://www.gatsbyjs.com/docs/files-gatsby-looks-for-in-a-plugin/)
- [How APIs/Plugins Are Run](https://www.gatsbyjs.com/docs/how-plugins-apis-are-run/)
npm package: @rasahq/gatsby-plugin-segment
Description: - [Files Gatsby Looks for in a Plugin](https://www.gatsbyjs.com/docs/files-gatsby-looks-for-in-a-plugin/) - [How APIs/Plugins Are Run](https://www.gatsbyjs.com/docs/how-plugins-apis-are-run/)
Latest version: 1.0.1

## Gatsby Plugin References

- [Files Gatsby Looks for in a Plugin](https://www.gatsbyjs.com/docs/files-gatsby-looks-for-in-a-plugin/)
- [How APIs/Plugins Are Run](https://www.gatsbyjs.com/docs/how-plugins-apis-are-run/)
npm package: @rasahq/gatsby-theme-blog
Description: - CMS choice will be datoCMS, though this is independent of blog theme - technology will be MDX - connection is through datocms https://github.com/datocms/gatsby-source-datocms
Latest version: 0.1.3

# @rasahq/gatsby-theme-blog

- CMS choice will be datoCMS, though this is independent of blog theme
- technology will be MDX
- connection is through datocms https://github.com/datocms/gatsby-source-datocms

## patterns and benchmarks

[NickyMeuleman/gatsby-theme-nicky-blog: A feature rich blogging platform](https://github.com/NickyMeuleman/gatsby-theme-nicky-blog)
npm package: @rasahq/gatsby-transformer-remark-inline
Description: ## Gatsby Plugin References
Latest version: 1.0.3

# @rasahq/gatsby-transformer-remark-inline

## Gatsby Plugin References

- [Files Gatsby Looks for in a Plugin](https://www.gatsbyjs.com/docs/files-gatsby-looks-for-in-a-plugin/)
- [How APIs/Plugins Are Run](https://www.gatsbyjs.com/docs/how-plugins-apis-are-run/)
npm package: @rasahq/gatsby-webpack-tabula
Description: Rasa custom webpack modifications for Gatsby
Latest version: 1.0.0-alpha.30

# @rasahq/gatsby-webpack-tabula

Simplified fork of official plugin which has bad schema checks.

## Gatsby Plugin References

- [Files Gatsby Looks for in a Plugin](https://www.gatsbyjs.com/docs/files-gatsby-looks-for-in-a-plugin/)
- [How APIs/Plugins Are Run](https://www.gatsbyjs.com/docs/how-plugins-apis-are-run/)
npm package: @rasahq/react-tabula
Description: Rasa's Brand Design System
Author: Rasa Web Team
Latest version: 2.0.0-blog-alpha.76

# @rasahq/react-tabula


## About "barrel" files

Experimenting with auto creation of indexes, at different levels

- [stolinski/barrelbot](https://github.com/stolinski/barrelbot)
- [bencoveney/barrelsby](https://github.com/bencoveney/barrelsby)
- [gajus/create-index](https://github.com/gajus/create-index)

## About local development linking

Solutions involving webpack resolve.alias setting

- [Unsolving the mysteries of yarn/npm link for libraries development - DEV Community 👩‍💻👨‍💻](https://dev.to/mfco/unsolving-the-mysteries-of-yarn-npm-link-for-libraries-development-1bo0)
- [A better alternative to npm/yarn link for the front-end | by Thomas Rich | Medium](https://medium.com/@tnrich_29519/a-better-alternative-to-npm-yarn-link-for-the-front-end-667f03d497a6)
- [How to fix NPM link duplicate dependencies issues - Maxime Heckel's Blog](https://blog.maximeheckel.com/posts/duplicate-dependencies-npm-link)

## NOTE re @fortawesome packages and Babel

With Webpack 4, the tree-shaking of @fortawesome packages doesn't work correctly. The babel-plugin-transform-imports package is required to remap:

```json
{
  "plugins": [
    [
      "transform-imports",
      {
        "@fortawesome/pro-regular-svg-icons": {
          "transform": "@fortawesome/pro-regular-svg-icons/${member}",
          "skipDefaultConversion": true,
          "preventFullImport": true
        },
        "@fortawesome/pro-solid-svg-icons": {
          "transform": "@fortawesome/pro-solid-svg-icons/${member}",
          "skipDefaultConversion": true,
          "preventFullImport": true
        },
        "@fortawesome/pro-light-svg-icons": {
          "transform": "@fortawesome/pro-light-svg-icons/${member}",
          "skipDefaultConversion": true,
          "preventFullImport": true
        },
        "@fortawesome/pro-duotone-svg-icons": {
          "transform": "@fortawesome/pro-duotone-svg-icons/${member}",
          "skipDefaultConversion": true,
          "preventFullImport": true
        },
        "@fortawesome/free-brands-svg-icons": {
          "transform": "@fortawesome/free-brands-svg-icons/${member}",
          "skipDefaultConversion": true,
          "preventFullImport": true
        }
      }
    ]
  ]
}
```
npm package: @rasahq/sass-tabula
Description: ## About our CSS pipeline
Latest version: 2.0.0-alpha.20-fiber-removed

# @rasahq/sass-tabula

## About our CSS pipeline

- sass
  - sass-loader
- postcss
  - postcss-loader
  - postcss-plugins, core
    - postcss-preset-env
    - postcss-pseudo-any
    - [postcss-focus-visible](https://github.com/csstools/postcss-focus-visible)
      - NB: requires [focus-visible]() polyfill
    - [postcss-focus-within](https://github.com/csstools/postcss-focus-visible)
      - NB: requires [focus-within]() polyfill
    - [postcss-image-set-function](https://github.com/csstools/postcss-image-set-function)
    - [postcss-pseudo-class-any-link](https://github.com/jonathantneal/postcss-pseudo-class-any-link)
    - [postcss-inset](https://github.com/jonathantneal/postcss-inset)
  - postcss-plugins, interesting
    - [postcss-svg](https://github.com/jonathantneal/postcss-svg)
    - [postcss-pseudo-class-enter](https://github.com/jonathantneal/postcss-pseudo-class-enter)
    - [postcss-gap-properties](https://github.com/jonathantneal/postcss-gap-properties)
    - [postcss-purgecss](https://purgecss.com/configuration.html)
    - [postcss-visitor](https://github.com/jonathantneal/postcss-visitor)
      - would allow custom editing of CSS at final stage !
  - postcss to consider
    - [csstools/sanitize.css: A best-practices CSS foundation](https://github.com/csstools/sanitize.css)
    - [csstools/postcss-env-function: Use env() variables in CSS](https://github.com/csstools/postcss-env-function)
    - [csstools/postcss-logical: Use logical properties and flow-relative values in CSS](https://github.com/csstools/postcss-logical)
    - [csstools/postcss-place: place-* shorthand for align-* and justify-*](https://github.com/csstools/postcss-place)
    - [csstools/postcss-color-functional-notation: Use space and slash separated color notation in CSS](https://github.com/csstools/postcss-color-functional-notation)
    - [csstools/css-prefers-color-scheme: Use light or dark color themes in CSS](https://github.com/csstools/css-prefers-color-scheme)
    - [csstools/css-has-pseudo: Style elements relative to other elements](https://github.com/csstools/css-has-pseudo)
## PostCSS

CONFIGURATION
- what is our standard postcss.config.js file
- what are our standard plugins
- will postcss-preset-env pick up correctly in all environments?
  - [see this repo for examples](https://github.com/browserslist/browserslist-example)
npm package: @rasahq/segment-tabula
Description: This package should provide
Author: Rasa Technologies
Latest version: 2.0.0-alpha.25

# @rasahq/segment-tabula

This package should provide

- a headless UI hook or set of hooks for consent management functionality
  - with configuration including a means to control arbitrary script insertion
- a bundled version of the UI, ideally using Preact, which can be loaded in non-react contexts
-
npm package: @rasahq/web-tracking
Description: This package should provide
Author: Rasa Technologies
Latest version: 2.0.0-alpha.47

# @rasahq/web-tracking

This package should provide

- a headless UI hook or set of hooks for consent management functionality
  - with configuration including a means to control arbitrary script insertion
- a bundled version of the UI, ideally using Preact, which can be loaded in non-react contexts
-

export const cdnHost = 'assets.rasa.com/proxies/segment/cdn';
export const apiHost = 'assets.rasa.com/proxies/segment/api';

## types of cookies
  https://www.cookieyes.com/cookie-consent-exemption-for-strictly-necessary-cookies/

  - we are using 3rd party analytics mainly
  - see this URL to see current ones
    [https://${cdnHost}/v1/projects/${writeKey}/integrations]
    https://assets.rasa.com/proxies/segment/cdn/v1/projects/lnw5SGYAUHqAoQVDXqffpaPXXDe2x1ys/integrations

  ways to load scripts in React
    - next.js makes it easy with <Script /> component https://nextjs.org/docs/basic-features/script
    - otherwise add to the <Head /> component
npm package: @rasanjan/core
Description: Angular 2+ components for Google Maps
Author: Sebastian Holstein
Latest version: 1.0.1-beta.2

Angular Google Maps (AGM) Core - Angular 2+ Google Maps components
=========

@agm/core contains solutions for the Google Maps JavaScript Core API.

The sources for this package are in the [angular-google-maps](https://github.com/SebastianM/angular-google-maps) repository. Please file issues and pull requests against that repo.

This package contains different sources for different users:

1. The files located in the root dirare ES5 based with ES2015 modules.
1. Files with the name pattern *.umd.js are UMD bundled modules for fast load times during development.

License: See LICENSE file in this folder.
npm package: @rasberi/password-utilities
Description: A small library that generates and checks strong password.
Author: if23b090,if23b123
Latest version: 1.1.1

# @rasberi/password-utilities

A JavaScript library providing functions to determine the security of a password as well as to generate secure ones. 

- Validate if a password is strong
- Generate strong, random passwords
- Fully tested with Jest
- Published on npm

## Installation

Using *npm*:
bash
npm install @rasberi/password-utilities


Install via yarn:

bash
yarn add @rasberi/password-utilities

## Usage

Basic Usage

```js
import { generateStrongPassword, isStrongPassword } from '@rasberi/password-utilities';

// Generate a strong password
const newPassword = generateStrongPassword(12);

// Check if a password is strong
const checkPassword = isStrongPassword(newPassword);

console.log(newPassword);  
console.log(checkPassword); 
```

### Examples

Generate a strong password for user account creation: 

```js
import { generateStrongPassword } from '@rasberi/password-utilities';

const userPassword = generateStrongPassword(16);

console.log(userPassword); 

```
Validate user input (registration):

```js
import { isStrongPassword } from '@rasberi/password-utilities';

const userInput = '1234abcd';
const isValid = isStrongPassword(userInput);

console.log(isValid);

```

## Contribution

Contributions are welcome! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.

## Security

Please refer to our [SECURITY.md](./SECURITY.md) for information about our security policies, how to report vulnerabilities, and our approach to handling security concerns.

## License

This project is licensed under the [MIT License](./LICENSE.md).
npm package: @rasberi/shuffle-array
Description: A small library that takes an array as input and returns a new array that is shuffled.
Author: your name
Latest version: 1.2.0

# @yourusername/shuffle-array

> A small library that takes an array as input and returns a new array that is shuffled.

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
   - [Examples](#examples)
- [Contribution](#contribution)
- [Security](#security)
- [License](#license)

## Installation

Install via npm:

```bash
npm install @yourusername/shuffle-array
```
Install via yarn:

```bash
yarn add @yourusername/shuffle-array
```

## Usage

Basic Usage

```js
import shuffleArray from '@yourusername/shuffle-array';

const startArray = [1, 2, 3, 4, 5];
const newShuffledArray = shuffleArray(startArray);

console.log(startArray);       // e.g., [1, 2, 3, 4, 5]
console.log(newShuffledArray); // e.g., [3, 1, 5, 2, 4]
```

### Examples

Shuffle a list of user IDs:

```js
import shuffleArray from '@yourusername/shuffle-array';

const userIds = ['u1', 'u2', 'u3', 'u4'];
const randomizedOrderOfUserIds = shuffleArray(userIds);

console.log(randomizedOrderOfUserIds); // e.g., ['u1', 'u3', 'u4', 'u2']
```

Use in a game for randomizing cards:

```js
import shuffleArray from '@yourusername/shuffle-array';

const deck = ['Ace of Spades', 'Two of Hearts']; // some card deck
const shuffledDeck = shuffleArray(deck);

console.log(shuffledDeck); // e.g., ['Two of Hearts', 'Ace of Spades', ...]
```

## Contribution

Contributions are welcome! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.

## Security

Please refer to our [SECURITY.md](./SECURITY.md) for information about our security policies, how to report vulnerabilities, and our approach to handling security concerns.

**Important Note**: This library uses non-cryptographic randomness (`Math.random()`). Do not rely on it for security-critical functionality.

## License

This project is licensed under the [MIT License](./LICENSE.md).
npm package: @rasberi/shuffle-array01
Description: A small library that takes an array as input and returns a new array that is shuffled.
Author: if23b090
Latest version: 0.1.0

# @yourusername/shuffle-array (Class 2 Example)

> A small library that takes an array as input and returns a new array that is shuffled.

## Table of Contents

- [Installation](#installation)
- [Usage](#usage)
   - [Examples](#examples)
- [Contribution](#contribution)
- [Security](#security)
- [License](#license)

## Installation

Install via npm:

```bash
npm install @yourusername/shuffle-array
```
Install via yarn:

```bash
yarn add @yourusername/shuffle-array
```

## Usage

Basic Usage

```js
import shuffleArray from '@yourusername/shuffle-array';

const startArray = [1, 2, 3, 4, 5];
const newShuffledArray = shuffleArray(startArray);

console.log(startArray);       // e.g., [1, 2, 3, 4, 5]
console.log(newShuffledArray); // e.g., [3, 1, 5, 2, 4]
```

### Examples

Shuffle a list of user IDs:

```js
import shuffleArray from '@yourusername/shuffle-array';

const userIds = ['u1', 'u2', 'u3', 'u4'];
const randomizedOrderOfUserIds = shuffleArray(userIds);

console.log(randomizedOrderOfUserIds); // e.g., ['u1', 'u3', 'u4', 'u2']
```

Use in a game for randomizing cards:

```js
import shuffleArray from '@yourusername/shuffle-array';

const deck = ['Ace of Spades', 'Two of Hearts']; // some card deck
const shuffledDeck = shuffleArray(deck);

console.log(shuffledDeck); // e.g., ['Two of Hearts', 'Ace of Spades', ...]
```

## Contribution

Contributions are welcome! Please see [CONTRIBUTING.md](./CONTRIBUTING.md) for more details.

## Security

Please refer to our [SECURITY.md](./SECURITY.md) for information about our security policies, how to report vulnerabilities, and our approach to handling security concerns.

**Important Note**: This library uses non-cryptographic randomness (`Math.random()`). Do not rely on it for security-critical functionality.

## License

This project is licensed under the [MIT License](./LICENSE.md).
npm package: @rascaljs/ai-cli
Description: 一个结合ollama本地ai模型的前端开发工具。该工具集成了组件和 hooks 生成、提交信息自动化以及代码审查等功能，帮助开发者在保持高代码质量的同时，简化和加速开发流程。
Author: Rascal-Coder
Latest version: 1.0.6

# @rascaljs/ai-cli

一个结合ollama本地ai模型的前端开发工具。该工具集成了组件和 hooks 生成、提交信息自动化以及代码审查等功能，帮助开发者在保持高代码质量的同时，简化和加速开发流程。

## Usage

### install

```bash
pnpm i @rascaljs/ai-cli -g
ai init
ollama pull <model>
ai setModel -> Choose the model you need
```

### Use command

```bash
pnpm ai -h
```

## 命令介绍

| 命令                  | 作用                                                                                                    |
| --------------------- | ------------------------------------------------------------------------------------------------------- |
| init                  | 初始化 AI cli                                                                                           |
| set <key> <value>     | 设置全局配置键和值。<br>参数：<br>  key: 配置键<br>  value: 要设置的值<br>示例：<br>  `ai set OLLAMA_MODEL llama2:latest` |
| hooks <name>          | 添加新的 Hooks。<br>参数：<br>  name: Hooks 的名称<br>示例：<br>  `ai hooks useCustomHook`               |
| get <key>             | 获取全局配置值。<br>参数：<br>  key: 要检索的配置键<br>示例：<br>  `ai get username`                     |
| component <name> [path] | 添加新组件。<br>参数：<br>  name: 组件名称<br>  path: （可选）添加组件的路径<br>示例：<br>  `ai component Button src/components` |
| commit                | 生成提交信息。AI 将自动为你生成提交信息。<br>示例：<br>  `ai commit`                                      |
| review [path]         | 生成代码审查信息。AI 将自动为你生成代码审查信息。（默认审查所有暂存文件）path: （可选）单一审查文件路径<br>示例：<br>  `ai review`                             |
| setHost               | 设置 Ollama 服务主机。<br>示例：<br>  `ai setHost`                                                       |
| setModel              | 设置 Ollama 服务模型。<br>示例：<br>  `ai setModel`                                                      |
| list [available]      | 显示 Ollama 模型列表。<br>参数：<br>  available: （可选）显示可用模型<br>示例：<br>  `ai list`           |

### list

list指令使用ollama list api获取本地模型。
list available 显示可用模型，通过axios请求https://ollama.com/library使用cherrio解析html获取模型列表数据。

### setHost
通过查询 ollama serve 的 PID拿到该 PID 对应的IP地址和端口设置到配置文件中。
npm package: @rascaljs/cli
Description: RascalCoder's command lint tools
Author: RascalCoder
Latest version: 0.5.1

# rascaljs-cli

一个小瘪三的命令行工具

## Usage

### install

```bash
pnpm i -D rascaljs-cli
```

### Use command

```bash
pnpm rascal -h
```

## 命令介绍

| 命令              | 作用                                                               |
| ----------------- | ------------------------------------------------------------------ |
| help              | 查看全部命令用法                                                   |
| git-commit        | 生成符合 Angular 规范的 git 提交信息                               |
| git-commit-verify | 校验 git 的提交信息是否符合 Angular 规范                           |
| cleanup           | 清空依赖和构建产物                                                 |
| init-git-hooks    | 初始化 simple-gi t-hooks 钩子                                      |
| release           | 版本发布，自动变更版本，生成日志 CHANGELOG.md                      |
| update-pkg        | 升级依赖                                                           |
| prettier-format   | prettier 格式化                                                    |
| lint-staged       | 执行 lint-staged                                                   |
| changelog         | 根据两次 tag 生成 changelog (--total: 根据所有 tag 生成 changelog) |

### prettier-format

底层调用 prettier --write 达到格式化文件的目的

默认忽略的格式化文件：

- js,jsx,mjs,cjs,json,ts,tsx,vue
  > 以上文件通过 eslint 去格式化
- node_modules
- _.min._
- CHANGELOG.md
- dist
- LICENSE\*
- output
- coverage
- public
- temp
- package-lock.json
- pnpm-lock.yaml
- yarn.lock
- **snapshots**
npm package: @rascaljs/vue-materials
Description: Vue 组件物料
Latest version: 0.1.4

# @rascaljs/vue-materials

Vue 组件物料

## 安装

```bash
npm install @rascaljs/vue-materials
yarn install @rascaljs/vue-materials
pnpm install @rascaljs/vue-materials
```

## 使用

```vue
<script setup lang="ts">
import { AdminLayout } from "@rascaljs/vue-materials";
import "@rascaljs/vue-materials/dist/style.css";
</script>

<template>
  <AdminLayout></AdminLayout>
</template>
```

## AdminLayout

后台管理系统的布局组件

- 支持垂直(vertical)和水平(horizontal)两种布局模式
- 布局由头部 Header、页签 Tab、侧边栏 Sider、主体内容 Content 和底部 Footer 组成，除了主体内容 Content，其余都可以控制是否渲染
- 支持两种滚动模式：容器滚动(wrapper)和主体内容滚动(content)
- 支持主体内容 Content 全屏

### Api 用法

#### 属性

| 字段                      | 说明                                                                     | 类型                      | 默认值                    |
| ------------------------- | ------------------------------------------------------------------------ | ------------------------- | ------------------------- |
| mode                      | 布局模式                                                                 | [LayoutMode](#LayoutMode) | "vertical"                |
| scrollMode                | 滚动模式                                                                 | [ScrollMode](#ScrollMode) | "vertical"                |
| [scrollElId](#scrollElId) | 滚动元素的 ID, 可用于获取对应的 Dom，使其滚动                            | string                    | "**LAYOUT_SCROLL_EL_ID**" |
| commonClass               | 组件的通用样式类名，可控制容器、头部、页签、侧边栏、主体和底部的公共样式 | string                    | "transition-all-300"      |
| fixedTop                  | 固定上面的头部和 Tab 页签部分                                            | boolean                   | true                      |

### 说明

#### LayoutMode

```ts
/**
 * 布局模式
 * - horizontal 水平
 * - vertical 垂直
 */
type LayoutMode = "horizontal" | "vertical";
```

#### ScrollMode

```ts
/**
 * 内容溢出时的出现滚动条的方式
 * - wrapper 布局组件最外层的元素出现滚动条
 * - content 主体内容组件出现滚动条
 * @default 默认 wrapper
 */
type ScrollMode = "wrapper" | "content";
```

#### scrollElId

使用导出的默认 ID

```ts
import { LAYOUT_SCROLL_EL_ID } from "@rascaljs/vue-materials";
```
npm package: @rascaljs/x6
Description: antv/x6 图形化组件
Latest version: 1.0.6

# antv-x6-vue2

@antv/x6 基于 vue2 + composition-api 的图形化编辑器

![antv-x6-vue2](media/antv-x6-vue2.gif)


- [x] 画布自适应
- [x] 快捷键
- [x] 工具栏 组合按键功能
- [x] 事件监听
- [x] vue 自定义组件

### 使用

> main.js

```js
import Vue from "vue";
import antv from "@rascaljs/x6";
import "@rascaljs/x6/lib/antv.css";

Vue.use(antv);
```

> vue2 文件中使用

```vue
<template>
  <div>
    <antv-x6-vue2></antv-x6-vue2>
  </div>
</template>
```

#### Api

| 说明                                 | 函数                                                                                   |
| :----------------------------------- | -------------------------------------------------------------------------------------- |
| 初始化画布默认数据                   | initDefaultData(nodes: any[], edges: any[]): void                                      |
| 获取数据                             | exportData(): { nodes: string[], edges: string[], nodesJSON: any[], edgesJSON: any[] } |
| 画布只读                             | onlyLook(bool: boolean): void                                                          |
| 画布清空                             | clean(): void                                                                          |
| 修改 Node 节点文案                   | updateLabel(label: string): void                                                       |
| 监听单元事件双击回调                 | GraphListener.doubleNodeClick(cb: ICallbackFunc): void                                 |
| 监听单元事件单击回调                 | GraphListener.nodeClick(cb: ICallbackFunc): void                                       |
| 运行时异常监听                       | GraphListener.runtimeError(cb: IErrorCallbackFunc): void                               |
| 图形校验函数                         | graphValidate(): { ok: boolean, errs: string[] }                                       |
| 获取所有已存在的 node 节点和 edge 边 | getAtoms(options?: 'nodes' \| 'edges'): { nodes: ...[], edges: ...[] } \| undefined    |

#### Events

> 组件事件

| 事件名        | 说明                          | 参数                                |
| ------------- | ----------------------------- | ----------------------------------- |
| node-click    | Node 节点被点击时会触发该事件 | { nodeId, actionType, label, node } |
| node-dblclick | Node 节点被双击时会触发该事件 | { nodeId, actionType, label, node } |

```js
import { graphFunc } from "@rascaljs/x6";

graphFunc.GraphListener.doubleNodeClick((detail) => {
  const { nodeId, label, actionType } = detail;
});
```

#### 异常类

| 错误码(errorCode) | 说明(errorMsg) |
| ----------------- | -------------- |
| 2000              | 非法参数       |
| 2001              | 验证失败       |
| 2002              | 数据格式不正确 |

```js
import { graphFunc } from "@rascaljs/x6";

graphFunc.GraphListener.runtimeError((err) => {
  const { errorCode, errorMsg } = err;
});
```
npm package: @rascasone/package
Description: > Creating a new package or project is just a few keystrokes away!
Latest version: 0.0.6

# @rascasone/package

> Creating a new package or project is just a few keystrokes away!

- Preconfigured templates
- Private and public variants
- ESLint/Prettier/EditorConfig

## Getting Started

1. Install CLI tool

```bash
npm install -g @rascasone/package
```

2. Call CLI tool

```
package new
```

Once you call `package new` it's going to walk you through the whole process which is:

1. Select name
2. Select language
3. Select template
4. Select variant
5. Done

## Motivation

- We work on very diverse projects, so we end up working with a lot of different stacks
- We used to spend a lot of time configuring the stacks before we could start working
- We had no way of enforcing standards and configurations (ESLint/Prettier/etc.)

## Development

You need to install `pnpm` and run `pnpm install`.

To locally test the CLI tool you should run `pnpm build:local` which automatically installs `rasca` as a global package.

You can also run `pnpm dev` which automatically re-builds and re-runs the CLI tool on every change.

Before pushing you should run `pnpm fix` to lint and format the code.

## Roadmap

### Road to v1

- [ ] Check if package already exists in the first step
- [ ] Better error handling
- [ ] More informative instructions after package has been created
- [ ] Add CLI props so we can copy paste different config commands
- [ ] Add Github CI/CD actions for public variants
- [ ] Make variants support different tech configurations (e.g. React + CSS modules/Tailwind/CSS-in-JS)
- [ ] Add update/migrate feature to keep old generated packages up to date with changes made in the source code of the templates used for generating the packages
- [ ] Tests

### Can be done any time

- [ ] Add more templates
  - [ ] Turborepo
  - [ ] Cloudflare Workers

## Contributions

Keep in mind that this is mainly a custom tool for Rascasone and not a general use tool aimed at everyone so even though it might be useful for you we might not add a feature that you propose simply because we don't need/use it.

So please consult with us first in discussions.