open-index/open-npm huggingface dataset:
npm package: @philholden/frog-poc-button
Description: Victory Component
Author: phil holden
Latest version: 0.0.1

[![Travis Status][trav_img]][trav_site]

Victory Component Boilerplate
===========================

This is a starter Victory component.

## The Generator

We expect these opinions to change *often*.  We've written a yeoman generator to
pull down the freshest copy of this repo whenever you use it.  It just copies
this repo so you don't have to. Check it out
[here](https://github.com/FormidableLabs/generator-formidable-react-component)

To create a new project based on this boilerplate:

```sh
$ npm install -g yo
$ npm install -g generator-formidable-react-component
$ yo formidable-react-component
```

The generator replaces `button` and
`Button` across this repo with names specific to
your new project. `src/components/button.jsx`
and `test/client/spec/components/button.spec.jsx`
are also renamed, and a fresh `README.md` is created.

## Development

Please see [DEVELOPMENT](DEVELOPMENT.md)

## Contributing

Please see [CONTRIBUTING](CONTRIBUTING.md)

[trav_img]: https://api.travis-ci.org/FormidableLabs/button.svg
[trav_site]: https://travis-ci.org/FormidableLabs/button
npm package: @philhosoft/ts-eslintrc
Description: Configuration files for ESLint, and optionally TypeScript plugin
Author: PhiLho
Latest version: 1.1.0

# ts-eslintrc

[![Version](https://img.shields.io/npm/v/@philhosoft/ts-eslintrc)](https://www.npmjs.com/package/@philhosoft/ts-eslintrc)

This is just a repository for my ESLint settings, with TypeScript (TSLint) plugin.
I separated ES and TS, in case I need to make a pure JS project someday…
I also separated semantics (possible errors, best practices, etc.) from style (formatting) rules.
The latter has only rules that can be fixed by a formatter like Prettier.
I deeply dislike these (I am used to do finicky formatting myself, and formatters can lead to inconsistent formatting because of line length), but I might work on a project where one is needed, and maybe these files can be useful as a base for people liking formatters too.

## Installation

You can install it by putting in package.json something like:
```json
    "@philhosoft/ts-eslintrc": "^1.1.0",
```

## Usage

Take .eslintrc.js, which is just an example of usage, customize it as needed.
It extends the files from node_modules, and thus can work out of the box.
Further customizations of rules can be done too (I have a personal taste for [ 'spaced arrays' ] and Allman brace style).

## History

v. 1.1.0 - Adjust rules, factor out some settings.<br>
v. 1.0.1 - Remove initial dot for included files.<br>
v. 1.0.0 - Initial implementation.
npm package: @philidem/rewrite-relative-paths
Description: Tool for making import paths relative to project root and making require paths relative
Author: Phil Gates-Idem
Latest version: 1.2.3

# Rewrite project paths

**TLDR:** This package helps you write code using imports with
`~/src/some/directory/someFile` instead of something like
`../../../../src/some/directory/someFile`.

## Motivation

If you're a JavaScript developer then you have probably seen code similar to the
following:

```typescript
// inside src/some/directory/file1.ts
import { doSomething } from '../../../util';
```

```typescript
// inside src/some/other/directory/file2.ts
import { doSomething } from '../../../../util';
```

Relative paths with `..` are difficult to read and interpret and it causes
inconsistency in `import` statement when importing the same file from different
source files.

The typescript compiler can be configured to support paths that are relative to
the project root.

For example, the examples above would become:

```typescript
// inside src/some/directory/file1.ts
import { doSomething } from '~/src/util';
```

```typescript
// inside src/some/other/directory/file2.ts
import { doSomething } from '~/src/util';
```

The `tsconfig.json` should be modified to have a `paths` property similar to the
following:

```json
{
  "compilerOptions": {
    "rootDir": ".",
    "baseUrl": ".",
    "outDir": "dist",
    "paths": {
      "~/*": ["./*"]
    }
  }
}
```

However, even when you configure typescript to understand these paths, the `~`
will still appear in the output `*.js` files. To fix the output `*.js` files you
will need to rewrite the `require(...)` statements so that the paths become
relative again.

This project exposes two commands:

- `rewrite-imports`: Rewrites source `*.ts` files so that paths with `import`
  statements using `../` are rewritten to use `~/`. You can run this command in
  directory that contains `*.ts` so that ugly `../` paths will be rewritten and
  then can be committed to your source code repository.

- `rewrite-requires`: Rewrites compiled `*.js` files so that paths in `require`
  statements are rewritten to always use relative paths. You can run this
  command after compiling typescript files to a target directory.

## Installation

```sh
npm install -D @philidem/rewrite-relative-paths
```

```sh
yarn add --dev @philidem/rewrite-relative-paths
```

## Usage

**Rewrite `import` statements in source files to use paths relative to project
root:**

```sh
# Using yarn
yarn rewrite-imports --dir .

# Using npm
npm run rewrite-imports --dir .
```

**Rewrite `require` statements in compiled \*.js files to use relative paths:**

```sh
# Using yarn
yarn rewrite-requires --dir ./dist

# Using npm
npm run rewrite-requires --dir ./dist
```
npm package: @philidorlabs/cli
Description: DeFi vault intelligence CLI — risk scores, yield comparison, portfolio analysis
Latest version: 0.3.2

# @philidorlabs/cli

DeFi vault intelligence from your terminal. Risk scores, yield comparison, portfolio analysis, and oracle monitoring across Morpho, Yearn, Aave, Beefy, and Spark.

## Install

```bash
npm install -g @philidorlabs/cli
```

## Quick Start

```bash
# Market overview
philidor stats

# Search for vaults
philidor search "USDC on base"

# Vault detail with risk breakdown
philidor vault ethereum 0x...

# Portfolio risk analysis
philidor portfolio 0xYourAddress

# Compare vaults side-by-side
philidor compare vault-id-1 vault-id-2

# Risk scoring methodology
philidor risk explain
```

## Output Formats

All commands support `--json`, `--table`, and `--csv` output.

```bash
philidor vaults --protocol morpho --json   # Structured JSON
philidor stats --csv                       # CSV for spreadsheets
philidor vaults --table                    # Human-readable tables
```

## Commands

| Command                        | Description                                        |
| ------------------------------ | -------------------------------------------------- |
| `philidor stats`               | Platform overview (TVL, counts, risk distribution) |
| `philidor vaults`              | List and filter vaults                             |
| `philidor search <query>`      | Search vaults                                      |
| `philidor vault <id>`          | Vault detail                                       |
| `philidor portfolio <address>` | Wallet positions                                   |
| `philidor compare <ids...>`    | Side-by-side comparison                            |
| `philidor risk breakdown <id>` | Risk vector analysis                               |
| `philidor risk explain`        | Risk methodology                                   |
| `philidor risk incidents`      | Recent incidents                                   |
| `philidor protocols`           | List protocols                                     |
| `philidor curators`            | List curators                                      |
| `philidor chains`              | Supported chains                                   |
| `philidor assets`              | Supported assets                                   |
| `philidor oracles freshness`   | Oracle health                                      |

## API

Uses the public Philidor API at `api.philidor.io`. No authentication required.

Override with `--api-url` or `PHILIDOR_API_URL` env var.

## License

MIT
npm package: @philihp/eslint-config
Description: Personally Preferred ESLint Rules
Author: Philihp Busby
Latest version: 6.1.0

[![Version](https://img.shields.io/npm/v/@philihp/eslint-config)](https://www.npmjs.com/package/@philihp/eslint-config)
[![Requirements Status](https://requires.io/github/philihp/eslint-config/requirements.svg?branch=main)](https://requires.io/github/philihp/eslint-config/requirements/?branch=main)
[![tests](https://github.com/philihp/eslint-config/actions/workflows/tests.yml/badge.svg)](https://github.com/philihp/eslint-config/actions/workflows/tests.yml)
![Downloads](https://img.shields.io/npm/dt/@philihp/eslint-config)
![License](https://img.shields.io/npm/l/@philihp/eslint-config)

## Installation

```bash
npm install --save-dev @philihp/eslint-config
```

and then create an `.eslintrc` (or add `eslintConfig` to your package.json) with the following

```json
{
  "extends": ["@philihp"]
}
```

## Usage

The following packages use this config, and can be seen as examples of how to use and extend the package, e.g. [turning off specific rules](https://github.com/philihp/fast-shuffle/blob/d77d997d773c43493f61e6333c1033e2c06ddd03/package.json#L79-L82).

- https://github.com/philihp/thirtyrails/
- https://github.com/philihp/fast-shuffle/
- https://github.com/philihp/score/
- https://github.com/philihp/nanbox/
- https://github.com/theunhatched/unhatched/
- https://github.com/philihp/openskill.js
npm package: @philihp/prettier-config
Description: Preferred prettier config
Author: Philihp Busby
Latest version: 1.0.0

## @philihp/prettier-config

```bash
$ npm install --save-dev @philihp/prettier-config

```

Then update `package.json` to include

```json
{
  "prettier": "@philihp/prettier-config"
}
```
npm package: @philihp/renovate-config
Description: Renovate configs without the noise
Author: Philihp Busby
Latest version: 1.2.0

# renovate-config

## Installation

Create a `.github/renovate.json` file, or in one of the locations [described here](https://docs.renovatebot.com/configuration-options/). Put this inside of it.

```js
{
  "extends": ["@philihp"]
}
```

That's it!
npm package: @philip21/canvas-video
Description: render video using canvas
Author: devphilip21
Latest version: 0.1.0

# `@philip21/canvas-video`

- snapshots of the canvas can be exported as video to fit the frame

<img src="./assets/demo_video.gif" width="600">

## Getting Started

```js
import CanvasVideo from '@philip21/canvas-video';

const TEN_MINUTES = 1000 * 60 * 10;
const canvasWidth = 300;
const canvasHeight = 200;
const canvasVideo = new CanvasVideo({
  totalTime: TEN_MINUTES,
  frameRate: 60,
  width: canvasWidth,
  height: canvasHeight,
  className: '_video',
  render: (ctx, { sequence }) => {
    ctx.setTransform(1, 0, 0, 1, 0, 0);
    ctx.clearRect(0, 0, canvasWidth, canvasHeight);

    ctx.translate(canvasWidth / 2, canvasHeight / 2);
    ctx.rotate(0.04 * sequence);
    ctx.translate(0, 0);
    ctx.fillStyle = '#000000';
    ctx.fillRect(-50, -50, 100, 100);
  },
});

canvasVideo.insertUnder(document.body);
```
npm package: @philip21/eventbus
Description: universal and light(1kb) event bus module
Author: devphilip21
Latest version: 1.1.5

# `@philip21/eventbus`

- universal and light(1kb) event bus module
- no dependencies
- typescript type inference supports.
- simple and light implementation
    - [source](./src/EventBus.ts)

## Installation

```sh
npm install @philip21/eventbus --save
```

## Getting Started

```ts
import EventBus from '@philip21/eventbus';

const eventBus = new EventBus();

eventBus.on('a', console.log);
eventBus.on({
  b: console.log,
  c: console.log,
});

eventBus.emit('a', 2);
eventBus.emit('b', 'p');
eventBus.emit('c', { n: 1 });
```

## Type Inference Support

```ts
interface EventDefinition {
  a: 1 | 2 | 3;
  b: 'p';
}

const eventBus = new EventBus<EventDefinition>().on({
  a: console.log,
  b: console.log,
});

/**
 * or
 *
 * new EventBus<{
 *   a: 1 | 2 | 3;
 *   b: 'p';
 * }>();
 */
```

<img src="./assets/readme_typeinference_1.png" width="600">

<img src="./assets/readme_typeinference_2.png" width="600">

## Specifications

- [spec code](./src/EventBus.spec.ts)
- `.on(eventName, eventHandler, life?)`
- `.on(eventSpecification)`
- `.once(eventName, eventHandler)`
- `.once(eventSpecification)`
- `.off()`
- `.off(eventName)`
- `.off(eventName, eventHandler)`
- `.has()`
- `.has(eventName)`
- `.has(eventName, eventHandler)`
- `.emit(eventName, eventPayload?)`
npm package: @philip21/idom
Description: provides a concise and intuitive dom manipulation API
Author: devphilip21
Latest version: 1.5.3

# `@philip21/idom`

- provides a concise and intuitive dom manipulation API
- like jquery, but only partial features
- not support cross browsing and use native api, so small and fast
- small size (6kb)

## Installation

```sh
npm install @philip21/idom --save
```

## Getting Started

```js
import idom from '@philip21/idom';

const popupDom = idom(document.getElementById('id')); // or idom('#id')

popupDom.css({
  'position': 'fixed',
  'top': 0,
  'right': 0,
  'bottom': 0,
  'left': 0,
  'background-color': 'rgba(0, 0, 0, 0.8)',
}).transition(
  'transform',
  'translateX(100px)',
  {
    duration: 1000,
    timingFunction: 'ease-in-out',
  },
).on({
  'click': () => {
    console.log('clicked!');
  },
});
```

## Features

- Events
    - `.on(eventName, eventHandler, life?)`
    - `.on(eventSpecification)`
    - `.once(eventName, eventHandler)`
    - `.once(eventSpecification)`
    - `.off()`
    - `.off(eventName)`
    - `.off(eventName, eventHandler)`
- Styles and Attributes
    - `.css(cssProperty)`
    - `.css(cssProperty, cssValue)`
    - `.css(cssMap)`
    - `.attr(attrName)`
    - `.attr(attrName, attrValue)`
    - `.attr(attrMap)`
    - `.data(dataKey)`
    - `.data(dataKey, dataValue)`
    - `.data(dataMap)`
- DOM Tree
    - `.get(index)`
    - `.find(selector)`
    - `.first()`
    - `.last()`
    - `.rect()`
    - `.text()`
    - `.text(innerText)`
    - `.html()`
    - `.html(innerHTML)`
- Animation
    - `.transition(cssProperty, cssValue, transitionOption)`
npm package: @philip21/input
Description: recognizes mouse, pointer, and touch-based events and delivers refined data
Author: devphilip21
Latest version: 0.1.0

# `@philip21/input`

The module recognizes mouse, pointer, and touch-based various input events and delivers refined input data.
It didn't try to have too many features, supports only the minimum necessary functions to enable free handling.
It has no dependencies on other libraries and is a lightweight and fast.