open-index/open-npm huggingface dataset:
npm package: @foolcoder/foolui
Description: FoolUI is a lightweight, foolproof frontend UI framework built with native HTML, CSS, and JavaScript.It does not rely on third-party libraries like Vue or React. Instead, we use Web Components to enable you to use components as if they were native HTML ta
Author: FoolUI Development Team
Latest version: 0.0.1

English Version
# FoolUI – Bringing Frontend Development Back to Simplicity
## Name Origin
FoolUI = Fool (foolproof, beginner-friendly) + UI (user interface framework).
We redefine what "foolproof development" means—not lacking in features, but embracing radical simplicity with a focus on fundamentals.
FoolUI is designed so that anyone can get started quickly, and focus on building, not wrestling with complex tooling or frameworks.

## Overview
FoolUI is a lightweight, foolproof frontend UI framework built with native HTML, CSS, and JavaScript.
It does not rely on third-party libraries like Vue or React. Instead, we use Web Components to enable you to use components as if they were native HTML tags—with no complex configuration, no build tools, and no new syntax to learn.

Just by importing FoolUI’s core files, you can use our semantic components just like you would <button>, <input>, and other native tags.

We embrace a philosophy of being “deliberately simple” — avoiding overengineering and feature bloat. Instead, we focus on delivering pure, reliable, standards-compliant Web Components.
This minimalist approach allows beginners to start using FoolUI in just 10 minutes, and lets experienced developers stay focused on business logic rather than framework intricacies.

## Philosophy
Simplicity is power.
True technical strength comes from understanding and mastering the fundamentals.
At FoolUI, we believe that great software is built on simple principles.

## Core Features
Native Compatibility: Built entirely on web standards (HTML, CSS, JS), requires no compilation, and runs directly in the browser—no complex build tools needed.

Component-as-Tag: Implemented with the Web Component standard, fully compatible with the native DOM API. Use our components just like native HTML elements.

Zero Dependencies: No bundled frameworks like React or Vue—reducing maintenance costs and eliminating external risks.

Efficient Development Experience: Instant usability, WYSIWYG behavior, and a flat learning curve make FoolUI ideal for rapid prototyping, lightweight projects, and small to mid-sized applications.


中文版
# FoolUI，让前端开发回归简单本质
## 名称由来
FoolUI= Fool（傻瓜式）+ UI（前端界面框架）。
我们重新定义"傻瓜式"开发——不是功能简陋，而是极致简单，注重本质。
FoolUI应该让任何人都能快速上手，专注于创造而非繁琐的技术细节。

## 简介
FoolUI是一个“傻瓜式”前端 UI 框架，基于原生 HTML、CSS 和 JavaScript构建，不依赖 Vue、React 等第三方库。
我们采用WebComponents技术，让组件可以像原生标签一样直接使用，无需复杂配置，无需构建工具，无需学习新语法，上手即用，零记忆成本。
只要引入FoolUI的核心文件，你就能像使用<button>、<input>等原生标签一样，使用我们的语义化组件。
我们坚持"笨拙"的哲学——不做过度设计，不堆砌复杂功能，而是专注于提供最纯粹、最可靠的 Web 组件解决方案。这种极简理念让初学者能在10分钟内上手，让专业开发者能更专注于业务逻辑。

## 理念
大道至简——真正的技术力量来自于对本质的把握。我们相信，简单即力量。

## 核心特点
原生兼容性：100% 基于 Web 标准技术（HTML/CSS/JS），零编译，直接在浏览器中运行，无需复杂构建工具。
组件即标签：基于 Web Component 标准实现，完美兼容原生 DOM API，开发者可以像使用原生 HTML 标签一样使用组件。
零依赖架构：不捆绑任何第三方框架（如 React、Vue 等），降低维护成本，减少技术风险。
高效开发体验：即学即用，所见所得，零记忆成本，适合快速原型开发、轻量项目及中小型应用开发。
npm package: @foolishandi_tech/types
Description: Shared TypeScript type definitions for One Tech project
Latest version: 0.1.1

# @foolishandi_tech/types

Shared TypeScript type definitions for One Tech project.

## Installation

```bash
npm install @foolishandi_tech/types
# or
yarn add @foolishandi_tech/types
# or
pnpm add @foolishandi_tech/types
```

## Usage

```typescript
import type { AppConfig, PlatformInfo, RequestOptions } from '@foolishandi_tech/types';
```

## Exported Types

- **Config Types**: `AppConfig`, `ServiceMode`, `CloudConfig`, `LocalConfig`, etc.
- **Platform Types**: `Platform`, `PlatformInfo`
- **Request Types**: `RequestOptions`, `RequestResponse`, `RequestError`
- **Theme Types**: `DesignSystem`, `ColorPalette`, `ThemeMode`
- **WebView Types**: `WebViewConfig`, `WebViewMessage`, `SecurityPolicy`
- **Error Types**: `ErrorInfo`, `ErrorHandler`
- **Sync Types**: `SyncConfig`, `SyncStatus`, `SyncConflict`

## Development

```bash
# Build
npm run build

# Watch mode
npm run dev

# Clean
npm run clean
```
npm package: @foolishandi_tech/utils
Description: Utility functions for One Tech project
Latest version: 0.1.4

# @foolishandi_tech/utils

Utility functions for One Tech project.

## Installation

```bash
npm install @foolishandi_tech/utils
# or
yarn add @foolishandi_tech/utils
# or
pnpm add @foolishandi_tech/utils
```

## Usage

### Platform Detection

```typescript
import { getPlatform, isPC, isMobile, Platform } from '@foolishandi_tech/utils';
// or
import { getPlatform } from '@foolishandi_tech/utils/platform';

// Get platform info
const platform = await getPlatform();

// Check platform type
const isDesktop = await isPC();
const isMobileDevice = await isMobile();

// Check specific platform
const isWindows = await Platform.isWindows();
const isMacOS = await Platform.isMacOS();
```

### Error Handling

```typescript
import {
  createErrorInfo,
  formatErrorMessage,
  isNetworkError,
  logError,
  retryWithBackoff,
} from '@foolishandi_tech/utils';
// or
import { createErrorInfo } from '@foolishandi_tech/utils/error';

// Create error info
const errorInfo = createErrorInfo(error, {
  componentStack: '...',
  errorBoundary: 'ErrorBoundary',
});

// Check error type
if (isNetworkError(error)) {
  // Handle network error
}

// Retry with backoff
const result = await retryWithBackoff(
  async () => {
    return await fetchData();
  },
  {
    maxRetries: 3,
    initialDelay: 1000,
    shouldRetry: (error) => isNetworkError(error),
  }
);
```

## API

### Platform Utilities

- `getPlatform(): Promise<PlatformInfo>` - Get platform information
- `isPC(): Promise<boolean>` - Check if platform is PC
- `isMobile(): Promise<boolean>` - Check if platform is mobile
- `isDesktop(): Promise<boolean>` - Check if platform is desktop
- `getPlatformName(): Promise<Platform>` - Get platform name
- `clearPlatformCache(): void` - Clear platform cache
- `Platform.isWindows()` - Check if Windows
- `Platform.isMacOS()` - Check if macOS
- `Platform.isLinux()` - Check if Linux
- `Platform.isIOS()` - Check if iOS
- `Platform.isAndroid()` - Check if Android

### Error Utilities

- `createErrorInfo(error, errorInfo?)` - Create error info object
- `formatErrorMessage(error)` - Format error message
- `isNetworkError(error)` - Check if network error
- `isTimeoutError(error)` - Check if timeout error
- `isAuthError(error)` - Check if authentication error
- `isPermissionError(error)` - Check if permission error
- `getErrorCode(error)` - Get error code
- `logError(error, context?)` - Log error with context
- `createErrorHandler(handler, options?)` - Create error handler
- `retryWithBackoff(fn, options?)` - Retry function with exponential backoff

## Development

```bash
# Build
npm run build

# Watch mode
npm run dev

# Clean
npm run clean
```
npm package: @foolishchow/tsutil
Description: typescript utils used in `@foolishchow/vue-cli-plugin-ts-router-gen` and `@foolishchow/vue-cli-plugin-vuex-gen`
Latest version: 0.0.4

# utils of typescript 

> used in `@foolishchow/vue-cli-plugin-ts-reoter-gen` and `@foolishchow/vue-cli-plugin-vuex-gen`
npm package: @foolishchow/vue-cli-plugin-ts-router-gen
Description: vue-router typescript generator for vue-class-component 
Latest version: 0.1.4

# vue-cli-plugin-ts-router-gen

> generate vue router file by file structure 

<p>
    <a href="https://www.npmjs.com/package/@foolishchow/vue-cli-plugin-ts-router-gen">
        <img src="https://img.shields.io/npm/v/@foolishchow/vue-cli-plugin-ts-router-gen.svg" alt="Version">
    </a> 
    <a href="https://www.npmjs.com/package/@foolishchow/vue-cli-plugin-ts-router-gen">
        <img src="https://img.shields.io/npm/dm/@foolishchow/vue-cli-plugin-ts-router-gen.svg" alt="Downloads">
    </a>
    <a href="https://www.npmjs.com/package/@foolishchow/vue-cli-plugin-ts-router-gen">
        <img src="https://img.shields.io/npm/dw/@foolishchow/vue-cli-plugin-ts-router-gen.svg" alt="Downloads">
    </a>
</p>
## install

```
yarn add @foolishchow/vue-cli-plugin-ts-router-gen
```

## example  
see [ts-router-gen-example](https://github.com/foolishchow/ts-router-gen-example)   

## comment option you can use
```typescript
/**
 * @title [string]  this is my page title
 * @ignore [boolean] wether this is component is ignored
 * @sort  [number] sort value for slibing sort, default is 255
 * @path  [string] do not use filePath for router path , custom it by  self
 * @parent [string] you parent pageComponent name 
 * @meta [string] will be in this.$route.meta
 * @show [boolean] 
 */
@Component
export class MyPage extends Vue{

}
```

## background gen process
- #### configs   

| name | description                      | required |   type   |   default   |
| ---- | :------------------------------- | :------: | :------: | :---------: |
| glob | glob config for vue router files |   true   | string[] | `undefined` |
| root | router root file                 |   true   |  string  | `undefined` |
| file | genereated router file           |   true   |  string  | `undefined` |

- ####  config for `@vue/cli` demo
```js
// file $projectRoot/vue.config.js
// if pluginOptions.vuexGen is not configed , background gen process will not start
module.exports = {
  pluginOptions: {
    routerGen: {
      glob: ["src/views/*.+(ts|tsx)", "src/views/**/*.+(ts|tsx)"],
      root: "src/views",
      file: "src/router.ts"
    }
  }
}
//or
module.exports = {
  pluginOptions: {
    routergen: {
      glob: ["src/views/*.+(ts|tsx)", "src/views/**/*.+(ts|tsx)"],
      root: "src/views",
      file: "src/router.ts"
    }
  }
}
```
npm package: @foolishchow/vue-cli-plugin-vuex-gen
Description: vuex typescript generator
Latest version: 0.1.4

# vue-cli-plugin-vuex-gen

<p>
    <a href="https://www.npmjs.com/package/@foolishchow/vue-cli-plugin-vuex-gen">
        <img src="https://img.shields.io/npm/v/@foolishchow/vue-cli-plugin-vuex-gen.svg" alt="Version">
    </a> 
    <a href="https://www.npmjs.com/package/@foolishchow/vue-cli-plugin-vuex-gen">
        <img src="https://img.shields.io/npm/dm/@foolishchow/vue-cli-plugin-vuex-gen.svg" alt="Downloads">
    </a>
    <a href="https://www.npmjs.com/package/@foolishchow/vue-cli-plugin-vuex-gen">
        <img src="https://img.shields.io/npm/dw/@foolishchow/vue-cli-plugin-vuex-gen.svg" alt="Downloads">
    </a>
</p>

> plugin of `@vue/cli` for package [`@foolishchow/vuex`](https://www.npmjs.com/package/@foolishchow/vuex)
npm package: @fooloomanzoo/color-input
Description: an input for color
Author: fooloomanzoo
Latest version: 3.0.4

[![Published on NPM](https://img.shields.io/npm/v/@fooloomanzoo/color-input.svg)](https://www.npmjs.com/package/@fooloomanzoo/color-input)
[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/@fooloomanzoo/color-input)

_[API & Demo](https://fooloomanzoo.github.io/color-input)_

## \<color-input\>

An input for color. It can use the formats `rgb`, `hsl` or `hex`. Additionally you can use `text` for automatically transform a color-string like `red` to its rgb-representation.
If you are looking for a picker for color, please have a look at [color-picker](https://github.com/fooloomanzoo/color-picker).

### Example
```html
  <span>color-input: </span><color-input value="{{color}}" alpha="{{alpha}}" r="{{r}}" g="{{g}}" b="{{b}}" h="{{h}}" s="{{s}}" l="{{l}}" format="{{format}}"></color-input>
  <br>
  <br>
  <span>color-text-input: </span><color-text-input value="{{color}}" alpha="{{alpha}}" format="{{format}}"></color-text-input>
  <p>
    <span>format </span>
    <select id="formats" value="{{format::change}}">
      <option value="auto">auto</option>
      <option value="rgb">rgb</option>
      <option value="hex">hex</option>
      <option value="hsl">hsl</option>
    </select>
    <br>
    <input type="range" min="0" max="1" step="0.01" value="{{alpha::change}}"><span> alpha: [[alpha]] </span>
    <br>
    <input type="range" min="0" max="255" step="1" value="{{r::input}}"><span> red: [[r]] </span>
    <br>
    <input type="range" min="0" max="255" step="1" value="{{g::input}}"><span> green: [[g]] </span>
    <br>
    <input type="range" min="0" max="255" step="1" value="{{b::input}}"><span> blue: [[b]] </span>
    <br>
    <input type="range" min="0" max="359" step="1" value="{{h::input}}"><span> hue: [[h]] </span>
    <br>
    <input type="range" min="0" max="1" step="0.001" value="{{s::input}}"><span> saturation: [[s]] </span>
    <br>
    <input type="range" min="0" max="1" step="0.001" value="{{l::input}}"><span> lightness: [[l]] </span>
    <br>
  </p>
```

### Styling
Have a look at [input-picker-pattern#input-shared-style](https://github.com/fooloomanzoo/input-picker-pattern#input-shared-style) to see how to style the element.

### Installation
```
npm i --save @fooloomanzoo/color-input
```

### License
[MIT](https://github.com/fooloomanzoo/color-input/blob/master/LICENSE.txt)
npm package: @fooloomanzoo/input-elements
Description: customElements for enhancing or replacing native inputs
Author: fooloomanzoo
Latest version: 3.0.0

# input-elements
Elements built for enhancing or replacing native inputs.

Current elements include:
* `text-input`: An input for text or else, that will size automatically and can be validated.
* `number-input`: An input for numeric values, that can display a unit, be in percent, pad the number, size automatically and have localized number format.
* `color-input`: An input field for color. It will display the color, support different formats and convert automatically.
* `datetime-input`: An input for datetime values. It will use the local format, clamp and can use a minimum and a maximum.
* `date-input`: An input for date values. It will use the local format, clamp and can use a minimum and a maximum.
* `time-input`: An input for time values. It will use the local format, clamp and can use a minimum and a maximum.

```html
text-input: <text-input placeholder="type your text here..."></text-input><br><br>
number-input: <number-input min="0" max="1000000" step="1000" default="12345" pad-length="8"></number-input><br><br>
color-input: <color-input format="hsl"></color-input><br><br>
datetime-input: <datetime-input></datetime-input><br><br>
date-input: <date-input year="1950" month="8" min="1950-08-12"></date-input><br><br>
time-input: <time-input hours="8"></time-input>
```
npm package: @fooloomanzoo/number-input
Description: input for numeric values
Author: Johannes Brautzsch
Latest version: 3.0.10

[![Published on NPM](https://img.shields.io/npm/v/@fooloomanzoo/number-input.svg)](https://www.npmjs.com/package/@fooloomanzoo/number-input)
[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/@fooloomanzoo/number-input)

_[API & Demo](https://fooloomanzoo.github.io/number-input)_

## \<number-input\>

An input for numeric values.

### Motivation

The normal `input` with `type="number"` is fairly good to use, but it has some flaws, because it should if wanted e.g.:

* prevent non numeric input
* guarantee **live**-data to be valid
* use the local decimal separator
* pad a value with `0` (to a specific length)
* size the input (according to it's length)
* overflow to minimum or underflow to maximum
* saturate to minimum or to maximum
* display a specified unit
* display a specified currencies
* can use percentage values and do have automatically the correct decimal value

This element wants to achieve that, by using the [Intl.NumberFormat API](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/NumberFormat). A more simpler element \<integer-input\> just uses integer values and doesn't use units or percent values.

![img](https://github.com/fooloomanzoo/number-input/raw/master/docs/number-input.gif "Demo")

### Example
```html
<span>using units: </span><number-input min="-150" step="0.15" max="300" pad-length="3" default="15" unit="°C"></number-input><br>
<span>in percent: </span><number-input min="-1" step="0.15" max="3" start-at="1" default="1" number-style="percent"></number-input><br>
<span>using currencies: </span><number-input min="0" step="0.01" always-sign start-at="1000" default="1000" use-grouping number-style="currency" currency="EUR"></number-input><br>
<span>as integer: </span><integer-input min="-150" step="15" max="300" default="15"></integer-input>
```

### Styling
Have a look at [input-picker-pattern#input-shared-style](https://github.com/fooloomanzoo/input-picker-pattern#input-shared-style) to see how to style the element.

### Installation
```
npm i @fooloomanzoo/number-input
```

### License
[MIT](https://github.com/fooloomanzoo/number-input/blob/master/LICENSE.txt)
npm package: @fooloomanzoo/property-mixins
Description: mixin for custom elements to extends property mixins for data formats
Author: fooloomanzoo
Latest version: 3.0.10

[![Published on NPM](https://img.shields.io/npm/v/@fooloomanzoo/property-mixins.svg)](https://www.npmjs.com/package/@fooloomanzoo/property-mixins)

_[API & Demo](https://fooloomanzoo.github.io/property-mixins)_

# property-mixins
helper mixins that extend elements to handle special data-properties
npm package: @fooloomanzoo/text-input
Description: input for text
Author: fooloomanzoo
Latest version: 3.0.8

[![Published on NPM](https://img.shields.io/npm/v/@fooloomanzoo/text-input.svg)](https://www.npmjs.com/package/@fooloomanzoo/text-input)
[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://www.webcomponents.org/element/@fooloomanzoo/text-input)

_[API & Demo](https://fooloomanzoo.github.io/text-input)_

## \<text-input\>

An input for text values.

### Motivation

The normal `input` with `type="text"` is fairly good to use, but it has some flaws, because it should if wanted e.g.:

* guarantee **live**-value to be valid
* to be styled easily
* auto resize on input

### Example
```html
  <p>
    hex-color: <text-input id="hex" value="{{value}}" input="{{input}}" default="#111" required pattern="^#(?:[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$" size="7" maxlength="7" minlength="4"></text-input>
  </p>
  <p>pattern: <b>^#(?:[A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$</b></p>
  <p>input: <b>[[input]]</b></p>
  <p>value: <b>[[value]]</b></p>
```

### Styling
Have a look at [input-picker-pattern#input-shared-style](https://github.com/fooloomanzoo/input-picker-pattern#input-shared-style) to see how to style the element.

### Installation
```
npm i @fooloomanzoo/text-input
```

### License
[MIT](https://github.com/fooloomanzoo/text-input/blob/master/LICENSE.txt)
npm package: @fooman/venia-ui-override-resolver
Description: Customise individual files from the Magento 2 PWA Studio Venia Theme
Author: Kristof Ringleff, Fooman
Latest version: 1.0.0-rc.2

# Fooman VeniaUiOverrideResolver for PWA Studio

## Pre-Requisite
This project is intended for [PWA Studio](https://github.com/magento/pwa-studio) version 6+.

## Install this package
```
 yarn add @fooman/venia-ui-override-resolver
```

or

```
npm i @fooman/venia-ui-override-resolver
```

## Usage
Copy individual files from `node_modules/@magento/venia-ui/lib` into `src/overrides/venia-ui` with the same file path. If the file has any relative imports change them back to point at the original. For example if you copied  
`node_modules/@magento/venia-ui/lib/components/Footer/footer.js` to  
`src/overrides/venia-ui/components/Footer/footer.js`

The below imports would point to nowhere:
```
import { mergeClasses } from '../../classify';
import defaultClasses from './footer.css';
import GET_STORE_CONFIG_DATA from '../../queries/getStoreConfigData.graphql';
```

If you do not plan on making any changes to those files point them back to the original files in `@magento/venia-ui`:
```
import { mergeClasses } from '@magento/venia-ui/lib/classify';
import defaultClasses from '@magento/venia-ui/lib/components/Footer/footer.css';
import GET_STORE_CONFIG_DATA from '@magento/venia-ui/lib/queries/getStoreConfigData.graphql';
```

For CSS files  
`node_modules/@magento/venia-ui/lib/components/Header/header.css`  copied to
`src/overrides/venia-ui/components/Header/header.css`

a relative import like
```
composes: input from '../TextInput/textInput.css';
```
would require changing to
```
composes: input from '~@magento/venia-ui/lib/components/TextInput/textInput.css';
```

For Peregrine  
Copy individual files from `node_modules/@magento/peregrine/lib` into `src/overrides/peregrine` with the same file path.

## Note
Please note that adding a new file requires restarting the watch process for the file to get recognised.

## Overriding other packages

The default list of package source folders (`'@magento/venia-ui/lib','@magento/peregrine/lib'`) can be overridden via the environment variable FOOMAN_OVERRIDEPACKAGES. This takes a list of comma separated package names in the form @namespace/packagename/srcfolder.

Example
```js
FOOMAN_OVERRIDEPACKAGES='@magento/venia-ui/lib,@magento/peregrine/lib,@magento/pagebuilder/lib' webpack-dev-server --progress --color --env.mode development
```
npm package: @foomo/contentfultree
Description: <p align="center">   <img alt="sesamy" src=".github/assets/contentfultree.png"/> </p>
Author: foomo
Latest version: 0.2.10

<p align="center">
  <img alt="sesamy" src=".github/assets/contentfultree.png"/>
</p>

# contentfultree

> A React component to display a tree of entries and references in a contentful app

## How to Contribute

Make a pull request...

## License

Distributed under MIT License, please see license file within the code for more details.

_Made with ♥ [foomo](https://www.foomo.org) by [bestbytes](https://www.bestbytes.com)_
npm package: @foomo/eslint-plugin
Description: eslint utility rules for monorepo project setup
Author: @gosticks
Latest version: 0.1.2

# @foomo/eslint-plugin

eslint utility rules to effectively handle monorepo setups

## Installation

You'll first need to install [ESLint](http://eslint.org):

```bash
yarn add -D eslint
```

Next, install `@foomo/eslint-plugin`:

```bash
yarn add -D @foomo/eslint-plugin
```

## Usage

Add `@foomo/eslint-plugin` to the plugins section of your `.eslintrc` configuration file:

```json
{
  "plugins": ["@foomo/eslint-plugin"]
}
```

Then configure the rules you want to use under the rules section.

```json
{
  "rules": {
    "@foomo/no-package-imports": ["error", {
      "options": [
        { "invalidPrefix": "packages", "invalidSuffix": "src", "monorepoRoot": "@organization" },
        { "invalidPrefix": "packages", "invalidSuffix": "src", "template": "@organization/$1/custom-prefix/$2" }
      ]
    }]
  }
}
```

## Supported Rules

- no-package-imports:
  fixes forbidden import paths
npm package: @foomo/fender
Description: Superstruct extension with fender rules
Author: foomo
Latest version: 0.2.0

# Fender
[![Branches](https://github.com/foomo/fender-ts/actions/workflows/branches.yml/badge.svg?branch=main&event=push)](https://github.com/foomo/fender-ts/actions/workflows/branches.yml)

> a piece of rope or a tyre that protects the side of a boat from knocks

Fender provides a unified way to validate data and on the backend & frontend side.


## How to Contribute

Make a pull request...

## License

Distributed under MIT License, please see license file within the code for more details.
npm package: @foomo/next-transpile-modules
Description: NextJS plugin to transpile workspace packages
Author: @gosticks
Latest version: 0.0.12-alpha.4

# @foomo/next-transpile-modules

This package as a cleaned up typescript version of the [next-transpile-modules](https://github.com/martpie/next-transpile-modules) plugin with some improvements.

## WARNING

Module is currently still in active development and it is not recommended for usage!!!

## Installation

``` bash
yarn add @foomo/next-transpile-modules
```

or

``` bash
npm install --save @foomo/next-transpile-modules
```
npm package: @foonsun/uniswap-v2-sdk
Description: 🛠 An SDK for building applications on top of Uniswap.
Latest version: 3.0.9

# Uniswap SDK

[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![Actions Status](https://github.com/Uniswap/uniswap-sdk/workflows/CI/badge.svg)](https://github.com/Uniswap/uniswap-sdk)
[![npm version](https://img.shields.io/npm/v/@uniswap/sdk/latest.svg)](https://www.npmjs.com/package/@uniswap/sdk/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/sdk/latest.svg)](https://bundlephobia.com/result?p=@uniswap/sdk@latest)

In-depth documentation on this SDK is available at [uniswap.org](https://uniswap.org/docs/v2/SDK/getting-started/).

## 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/Uniswap/uniswap-sdk.git
```

Move into the uniswap-sdk working directory

```sh
cd uniswap-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: @foopis23/ts-store
Description: ts-store is a simple key-value store interface for TypeScript
Author: Eric Sexton
Latest version: 1.0.0

# ts-store

ts-store is a simple key-value store interface for TypeScript. The main use case
is for library authors to allow users to provide their own store implementation.

The goals of this project are:

- Provide a simple, reusable interface for store implementations
- Provide modern JS/TS experience (e.g. async/await, promises, etc.)
- Stores can be implemented for a wide range platforms (e.g. browser, node, etc.)
- Stores can be implemented for a wide range of storage types (e.g. memory, disk, mongo, localstorage, etc.)

## Creating a Store Implementation

To create a store implementation, implement the `Store` interface.

### Class Example

```typescript
import { Store } from "ts-store";

class MyStore implements Store {
  get(key: string): Promise<any> {
    // ...
  }

  set(key: string, value: any): Promise<void> {
    // ...
  }

  delete(key: string): Promise<void> {
    // ...
  }
}
```

### Object Example

```typescript
import { Store } from "ts-store";

const myStore: Store = {
  get(key: string): Promise<any> {
    // ...
  },

  set(key: string, value: any): Promise<void> {
    // ...
  },

  delete(key: string): Promise<void> {
    // ...
  },
};
```

See [memory store](src/memory-store.ts) for a more complete example.

## Using a Store Implementation

### Example Library

```typescript
// Library code
import { Store } from "ts-store";

function helloWorldLibrary(store: Store<string>) {
  const saveHello = (value: string) => store.set("hello", value);
  const getHello = () => store.get("hello");

  return {
    saveHello,
    getHello,
  };
}

// Use the library
import { MemoryStore } from "ts-store"; // or your own store implementation

async function main() {
  const lib = helloWorldLibrary(new MemoryStore());

  // save and read example
  await lib.saveHello("world");
  const hello = await lib.getHello();
  console.log(hello); // { key: 'hello', value: 'world', createdAt: 1681318294496, updatedAt: 1681318294496 }

  // wait a second
  await new Promise((resolve) => setTimeout(resolve, 1000));

  // update and read example
  await lib.saveHello("gamer");
  const hello2 = await lib.getHello();
  console.log(hello2); // { key: 'hello', value: 'gamer', createdAt: 1681318294496, updatedAt: 1681318295500 }
}
main();
```
npm package: @fooswap-libs/sdk
Description: 🛠 An SDK for building applications on top of fooswap.
Latest version: 1.0.8

# FooSwap 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/FooProtocol/foo-swap-sdk.git
```

Move into the foo-swap-sdk working directory

```sh
cd foo-swap-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: @fooswap-libs/sdk-core
Description: ⚒️ An SDK for building applications on top of Uniswap V3
Latest version: 3.2.3

# Uniswap SDK Core

[![Unit Tests](https://github.com/Uniswap/uniswap-sdk-core/workflows/Unit%20Tests/badge.svg)](https://github.com/Uniswap/uniswap-sdk-core/actions?query=workflow%3A%22Unit+Tests%22)
[![Lint](https://github.com/Uniswap/uniswap-sdk-core/workflows/Lint/badge.svg)](https://github.com/Uniswap/uniswap-sdk-core/actions?query=workflow%3ALint)
[![npm version](https://img.shields.io/npm/v/@uniswap/sdk-core/latest.svg)](https://www.npmjs.com/package/@uniswap/sdk-core/v/latest)
[![npm bundle size (scoped version)](https://img.shields.io/bundlephobia/minzip/@uniswap/sdk-core/latest.svg)](https://bundlephobia.com/result?p=@uniswap/sdk-core@latest)

This code is shared across Uniswap TypeScript SDKs.