open-index/open-npm huggingface dataset:
npm package: @preferred-pictures/client
Description: A client for PreferredPictures
Author: Preferred.pictures
Latest version: 1.0.5

# PreferredPictures Node.js Client Library

The [PreferredPictures](https://preferred.pictures) Node library provides a convenient way to call the
PreferredPictures API.

[View the full documentation about the PreferredPicture's API](https://docs.preferred.pictures/api-sdks/api)

The documentation of this module is available at: [https://preferred-pictures.github.io/node/](https://preferred-pictures.github.io/node/)

[Learn more about what PreferredPictures can do.](https://docs.preferred.pictures/)

## Installation

```
npm install --save @preferred-pictures/client
or
yarn add @preferred-pictures/client
```

## Usage

The package needs to be configured with your account's identity and
secret key, which is available in the PreferredPictures interface.

```js
const PreferredPicturesClient = require("@preferred-pictures/client");
const pp = new PreferredPicturesClient({
  // Obtain your account's values by
  // signing into PreferredPictures.
  identity: "test-identity",
  secretKey: "secret123456",
});

// A simple example of choosing between three different
// URLs.
const simpleChoiceUrl = pp.createChooseUrl({
  choices: [
    "https://example.com/image-red.jpg",
    "https://example.com/image-green.jpg",
    "https://example.com/image-blue.jpg",
  ],

  // Change the tournament as necessary to represent
  // different needs.
  tournament: "testing",
});

// A more in-depth example that uses a prefix and a suffix
// rather than explict URLs.
const choiceUrl = pp.createChooseUrl({
  choices: ["red", "green", "blue"],
  tournament: "testing",
  // The ttl for the action to be tracked specified in seconds.
  ttl: 60 * 10,
  // This will add a prefix and suffix to all of the choices
  // specified previously.
  choices_prefix: "https://example.com/jacket-",
  choices_suffix: ".jpg",
});

// The URL returned will appear to be something like:
//
// https://api.preferred.pictures/choose-url?choices=red%2Cgreen%2Cblue&tournament=testing&expiration=1597000373&uid=135a0ff2-b49d-422a-984b-b5aef29637f0&ttl=600&identity=test-identity&signature=f4329ac7956d060e8560e7bdaa5d7fb6c849a87d3157f6f2aeeb63a7b9b11da0
//
// which should be placed where it is needed in your application or
// templates.
```
npm package: @preflightsh/preflight
Description: CLI tool that scans your codebase for launch readiness
Author: Jon Phillips
Latest version: 0.12.13

# @preflightsh/preflight

npm package for [Preflight.sh](https://preflight.sh) - a CLI tool that scans your codebase for launch readiness.

## Installation

```bash
npm install -g @preflightsh/preflight
```

Or use with npx:

```bash
npx @preflightsh/preflight scan
```

## Usage

```bash
# Initialize in your project directory
preflight init

# Run all checks
preflight scan

# Run in CI mode with JSON output
preflight scan --ci --format json
```

## Documentation

For full documentation, supported checks, and configuration options, see the main repository:

https://github.com/preflightsh/preflight

## License

MIT
npm package: @preflow/core
Description: Predictive virtualization engine — heights from arithmetic, not DOM measurement
Latest version: 0.0.3

# @preflow/core

> **Early Testing Phase** — APIs may change. Not recommended for production yet.

Headless predictive virtualization engine. Heights from arithmetic, not DOM measurement.

See the [main README](https://github.com/kieled/preflow) for full documentation.
npm package: @preflower/cli
Description: A easy way to create linter/release/git standard cli
Author: Ted Lin
Latest version: 2.2.9

# Easy-cli
A easy way to create linter/release/git standard cli

## Usage
```
npx @preflower/cli
```

## Standard

### Javascript Standard
easy-cli js base on `standard`

### CSS Standard

#### SASS
easy-cli sass base on `stylelint-config-sass-guidelines`

#### LESS
easy-cli less base on `stylelint-config-standard` that adapt `less`

### Git Standard
easy-cli git base on `angular`

## Plugins
- changesets: automated release, and support monorepo

## License
MIT
npm package: @preflower/element
Description: `easy-element` 是基于 `Element-UI` 再封装的 JSON 化组件库，用来解决 `Element-UI` 部分组件经常性的重复劳动问题
Author: Ted
Latest version: 0.5.1

# Easy Element
`easy-element` 是基于 `Element-UI` 再封装的 JSON 化组件库，用来解决 `Element-UI` 部分组件经常性的重复劳动问题

## 开始使用

### 安装

```bash
npm i @preflower/element element-ui -S
```

### 完整引入
```
import Vue from 'vue'
import EasyElement from '@preflower/element'

Vue.use(EasyElement)
```

### 按需引入
```
import Vue from 'vue'
import { Table } from '@preflower/element'

Vue.component('i-table', Table)
```
npm package: @preflower/eslint-config
Description: A eslint plugin base on standard
Author: Ted Lin
Latest version: 2.0.0

# @preflower/eslint-config
A eslint plugin base on standard

## Usage
### Install
```bash
$ pnpm add -D @preflower/eslint-config
```

### Config `.eslintrc`
```
{
  "extends": {
    "@preflower"
  }
}
```

## License
MIT

Inspired by [@antfu/eslint-config](https://github.com/antfu/eslint-config)
npm package: @preflower/fetch
Description: A fetch-based request library, similar to axios
Author: Preflower
Latest version: 0.0.8

# Easy Fetch

A fetch-based request library, similar to axios

## Installing
```
$ npm i @preflower/fetch
```

## Example
```
/* UMD Usage */
const instance = easyFetch.createInstance({
  baseURL: 'https://xiatiande.com',
});

/* ES Usage */
import { createInstance } from 'easy-fetch';

const instance = createInstance({
  baseURL: 'https://xiatiande.com',
});

instance.interceptors.request.use((config) => {
  return config;
});

instance.interceptors.response.use((response) => {
  return response;
});
```

## API (\*：default value)

### [Fetch Config Params](https://zh.javascript.info/fetch-api)

- method: \*GET, POST, HEAD, PUT, DELETE, etc
- headers: Object / Headers Type
- body: Blob, BufferSource, FormData, URLSearchParams, USVString; tips: GET, HEAD unsupported
- mode: \*cors, no-cors, same-origin, navigate
- credentials: omit, \*same-origin, include
- cache: \*default, no-store, reload, no-cache, force-cache,only-if-cached
- redirect: \*follow, error, manual
- integrity: hash 通过传递 hash，验证请求资源完整性
- keepalive: \*false, true 确保请求持续直到结束
- signal: use for stop request TODO：考虑怎么实现中止请求

### Custom API

- baseURL: ''
- timeout: 3000
- escape: text, \*json, formData, blob, arrayBuffer

## Weakness

- don't support upload progress
- can't be aborted directly, need to use AbortController
npm package: @preflower/react-native-web-fast-image
Description: react-native-fast-image for Web
Author: Ted Lin
Latest version: 0.1.0

# react-native-web-fast-image

[![npm version](https://badge.fury.io/js/@preflower%2Freact-native-web-fast-image.svg)](https://badge.fury.io/js/@preflower%2Freact-native-web-fast-image)

[react-native-fast-image](https://github.com/DylanVann/react-native-fast-image) for Web.

## Overview
`react-native-web-fast-image` allow you to using `react-native-fast-image` seamlessly on the web by adding one line webpack config

## Usage
```bash
$ npm i @preflower/react-native-web-fast-image
```

webpack.config.js
```diff
  module.exports = {
    ...
    resolve: [
      alias: [
        ...
        'react-native': 'react-native-web',
+       /* set alias from react-native-fast-image to react-native-web-fastimage */
+       'react-native-fast-image': '@preflower/react-native-web-fast-image'
      ]
    ]
  }
```

## License
MIT
npm package: @prefresh/babel-plugin
Description: A babel-plugin to enable fast-refresh for Preact components.
Latest version: 0.5.3

# Prefresh-babel

[![npm version](https://badgen.net/npm/v/@prefresh/babel-plugin)](https://www.npmjs.com/package/@prefresh/babel-plugin)

This is a forked equivalent of [the react-refresh babel plugin](https://github.com/facebook/react/blob/master/packages/react-refresh/src/ReactFreshBabelPlugin.js)
difference being that we need a way to memoize createContext between HMR.

For the SWC version of this plugin refer to https://www.npmjs.com/package/@swc/plugin-prefresh
npm package: @prefresh/core
Description: The core logic for prefresh.
Latest version: 1.5.9

# Prefresh-core

[![npm version](https://badgen.net/npm/v/@prefresh/core)](https://www.npmjs.com/package/@prefresh/core)

We are still fleshing out the details on how to go about this approach best for [Preact](https://github.com/preactjs/preact), we'd
love to give you the best reloading experience possible.

Note that now the refreshing component will dispose of its `hookState` to reload in case of added hook, ... this to ensure consistency.

## How to use

This plugin will set up a series of hooks onto the webpack instance, so the first thing
to do is ensure that this package is part of your entries.

This will add a method on the window `window.__PREFRESH__.replaceComponent`, this function
expects two arguments. The first being the old `class/function` and the second the new one.

This will go over all vnodes it knows for the `oldType` and rerender them according to the
`NewType`.
npm package: @prefresh/next
Description: [![npm version](https://badgen.net/npm/v/@prefresh/next)](https://www.npmjs.com/package/@prefresh/next)
Latest version: 1.7.0

# Prefresh-next

[![npm version](https://badgen.net/npm/v/@prefresh/next)](https://www.npmjs.com/package/@prefresh/next)

## Setup

```
npm i -s @prefresh/next
## OR
yarn add @prefresh/next
```

Then add it to your `next` config by doing

```js
const withPrefresh = require('@prefresh/next');
module.exports = withPrefresh()
}
```

## Best practices

### Recognition

We need to be able to recognise your components, this means that components should
start with a capital letter and hook should start with `use` followed by a capital letter.
This allows the Babel plugin to effectively recognise these.

Do note that a component as seen below is not named.

```jsx
export default () => {
  return <p>Want to refresh</p>;
};
```

Instead do:

```jsx
const Refresh = () => {
  return <p>Want to refresh</p>;
};

export default Refresh;
```

When you are working with HOC's be sure to lift up the `displayName` so we can
recognise it as a component.
npm package: @prefresh/nollup
Description: A nollup plugin to enable fast-refresh for Preact components.
Latest version: 4.0.4

# Prefresh-nollup

[![npm version](https://badgen.net/npm/v/@prefresh/nollup)](https://www.npmjs.com/package/@prefresh/nollup)

## Setup

```
npm i -s @prefresh/nollup
## OR
yarn add @prefresh/nollup
```

Then add it to your `rollup.config.js` config by doing

```js
import prefresh from '@prefresh/nollup';

const config = {
  ...
  plugins: [
    ...
    process.env.NODE_ENV === 'development' && prefresh()
  ]
};
```

Ensure that `--hot` flag is enabled or `"hot": true` is set in `.nolluprc.js`

### Using hooks

If you're using `preact/hooks` you'll need something extra to ensure we can handle
changes in hooks well.

You'll need to add `@prefresh/babel-plugin` to your `babel-configuration` to make this
work together.

## Best practices

### Recognition

We need to be able to recognise your components, this means that components should
start with a capital letter and hook should start with `use` followed by a capital letter.
This allows the Babel plugin to effectively recognise these.

Do note that a component as seen below is not named.

```jsx
export default () => {
  return <p>Want to refresh</p>;
};
```

Instead do:

```jsx
const Refresh = () => {
  return <p>Want to refresh</p>;
};

export default Refresh;
```

When you are working with HOC's be sure to lift up the `displayName` so we can
recognise it as a component.

## Credits

- [PepsRyuu](https://github.com/PepsRyuu)
npm package: @prefresh/rolldown
Description: A rolldown plugin to preserve Preact context identity during HMR.
Latest version: 0.1.0

# @prefresh/rolldown

[![npm version](https://badgen.net/npm/v/@prefresh/rolldown)](https://www.npmjs.com/package/@prefresh/rolldown)

## Setup

```bash
pnpm add -D @prefresh/rolldown rolldown
```

Then add it to your Rolldown config:

```js
import prefresh from '@prefresh/rolldown';

export default {
  plugins: [prefresh()],
};
```

This plugin memoizes `createContext()` calls so context identity survives hot updates. It is intended to be used alongside Rolldown's React refresh transform for component refresh handling.

## Options

### `library`

Libraries to detect `createContext` imports from.

Default: `['preact', 'react', 'preact/compat']`

```js
prefresh({
  library: ['preact', 'preact/compat'],
});
```

### `enabled`

Enable or disable the transform.

Default: `true` in development and `false` otherwise.
npm package: @prefresh/snowpack
Description: [![npm version](https://badgen.net/npm/v/@prefresh/snowpack)](https://www.npmjs.com/package/@prefresh/snowpack)
Latest version: 3.2.0

# Prefresh-snowpack

[![npm version](https://badgen.net/npm/v/@prefresh/snowpack)](https://www.npmjs.com/package/@prefresh/snowpack)

## Setup

If you're using the [`preact-template`](https://github.com/pikapkg/create-snowpack-app/tree/master/packages/app-scripts-preact) you'll get this behavior
out of the box, if you don't or are using the old version fo it you'll have to follow these instructions.

```
npm i --save-dev @prefresh/snowpack
## OR
yarn add --dev @prefresh/snowpack
```

You'll have to add a few things, as seen in [this PR](https://github.com/pikapkg/create-snowpack-app/pull/54/files).

Add `@prefresh/babel-plugin` to your `babel.config.json`:

```json
{
  "presets": [
    [
      "@babel/preset-react",
      {
        "pragma": "h",
        "pragmaFrag": "Fragment"
      }
    ],
    "@babel/preset-typescript"
  ],
  "plugins": ["@babel/plugin-syntax-import-meta", "@prefresh/babel-plugin"]
}
```

After adding it to your `babel-config` you'll have to make sure your `snowpack.config.json` contains both `plugin-babel` and `@prefresh/snowpack`

```json
{
  "plugins": ["@snowpack/plugin-babel", "@prefresh/snowpack"]
}
```

## Best practices

### Recognition

We need to be able to recognise your components, this means that components should
start with a capital letter and hook should start with `use` followed by a capital letter.
This allows the Babel plugin to effectively recognise these.

Do note that a component as seen below is not named.

```jsx
export default () => {
  return <p>Want to refresh</p>;
};
```

Instead do:

```jsx
const Refresh = () => {
  return <p>Want to refresh</p>;
};

export default Refresh;
```

When you are working with HOC's be sure to lift up the `displayName` so we can
recognise it as a component.
npm package: @prefresh/vite
Description: A vite plugin to enable fast-refresh for Preact components.
Latest version: 3.0.0

# Prefresh-vite

[![npm version](https://badgen.net/npm/v/@prefresh/vite)](https://www.npmjs.com/package/@prefresh/vite)

## Setup

```
npm i -s @prefresh/vite
## OR
yarn add @prefresh/vite
```

Then add it to your `vite.config.js` config:

```js
import prefresh from '@prefresh/vite';

export default {
  plugins: [prefresh()],
};
```

`@prefresh/vite` configures Vite's Oxc JSX transform for Preact and composes
`@prefresh/rolldown` internally. Babel is only used as a selective fallback when
you pass `parserPlugins`.

## Options

The plugin accepts two options `include` & `exclude` which are used in the [`@rollup/pluginutils.createFilter`](https://github.com/rollup/plugins/tree/master/packages/pluginutils#createfilter) to filter out files or include them.

The plugin also accepts the addition of [`parserPlugins`](https://babeljs.io/docs/en/babel-parser#plugins).
Providing `parserPlugins` opts that file transform back into the Babel-based path,
similar to how `@preact/preset-vite` only enables Babel when that path is requested.

## Best practices

### Recognition

We need to be able to recognise your components, this means that components should
start with a capital letter and hook should start with `use` followed by a capital letter.
This allows the refresh transform to effectively recognise these.

Do note that a component as seen below is not named.

```jsx
export default () => {
  return <p>Want to refresh</p>;
};
```

Instead do:

```jsx
const Refresh = () => {
  return <p>Want to refresh</p>;
};

export default Refresh;
```

When you are working with HOC's be sure to lift up the `displayName` so we can
recognise it as a component.
npm package: @prefresh/web-dev-server
Description: A web-dev-server plugin to enable fast-refresh for Preact components.
Latest version: 1.1.6

# Prefresh-web-dev-server

[![npm version](https://badgen.net/npm/v/@prefresh/web-dev-server)](https://www.npmjs.com/package/@prefresh/web-dev-server)

## Setup

```
npm i --save-dev @prefresh/web-dev-server
## OR
yarn add --dev @prefresh/web-dev-server
```

web-dev-server.config.mjs

```js
export default {
  plugins: ['@prefresh/web-dev-server'],
};
```

## Best practices

### Recognition

We need to be able to recognise your components, this means that components should
start with a capital letter and hook should start with `use` followed by a capital letter.
This allows the Babel plugin to effectively recognise these.

Do note that a component as seen below is not named.

```jsx
export default () => {
  return <p>Want to refresh</p>;
};
```

Instead do:

```jsx
const Refresh = () => {
  return <p>Want to refresh</p>;
};

export default Refresh;
```

When you are working with HOC's be sure to lift up the `displayName` so we can
recognise it as a component.
npm package: @prefresh/webpack
Description: A webpack plugin to enable fast-refresh for Preact components.
Latest version: 4.0.6

# Prefresh-webpack

[![npm version](https://badgen.net/npm/v/@prefresh/webpack)](https://www.npmjs.com/package/@prefresh/webpack)

## Setup

```
npm i -s @prefresh/webpack
## OR
yarn add @prefresh/webpack
```

Then add it to your `webpack` config by doing

```js
import PreactRefreshPlugin from '@prefresh/webpack';

const config = {
  plugins: [
    new webpack.HotModuleReplacementPlugin(),
    new PreactRefreshPlugin(),
  ],
  devServer: {
    hot: true, // ensure dev-server.hot is on
    ...moreDevServerConfig,
  },
  ...moreWebpackConfig,
};
```

### Using hooks

If you're using `preact/hooks` you'll need something extra to ensure we can handle
changes in hooks well.

You'll need to add `@prefresh/babel-plugin` to your `babel-configuration` to make this
work together.

## Best practices

### Recognition

We need to be able to recognise your components, this means that components should
start with a capital letter and hook should start with `use` followed by a capital letter.
This allows the Babel plugin to effectively recognise these.

Do note that a component as seen below is not named.

```jsx
export default () => {
  return <p>Want to refresh</p>;
};
```

Instead do:

```jsx
const Refresh = () => {
  return <p>Want to refresh</p>;
};

export default Refresh;
```

When you are working with HOC's be sure to lift up the `displayName` so we can
recognise it as a component.
npm package: @pregalaxyer/nemo
Description: swagger typescript codegen
Author: dylan
Latest version: 1.1.2


[English](Readme.en.md)

<h1 style="text-align: center">nemo🐠</h1>
<div style="text-align: center">
<img src="https://img.shields.io/npm/v/@pregalaxyer/nemo?color=%23&style=plastic" />
<img src="https://img.shields.io/npm/l/@pregalaxyer/nemo" />
<img src="https://img.shields.io/github/workflow/status/pregalaxyer/nemo/Pull%20Request"/>
<img src="https://img.shields.io/codecov/c/github/pregalaxyer/nemo?style=plastic"/>
<img src="https://img.shields.io/npm/dm/@pregalaxyer/nemo?style=plastic">
<img src="https://img.shields.io/badge/pkg--manage-pnpm-orange">
</div>
<p style="text-align: center"> 
一个自动化生成 <code>swagger typescript</code> 文件的💪工具，基于 <code>swagger V2</code>
</p>


## 安装

```node
  npm install @pregalaxyer/nemo
  // or
  yarn add @pregalaxyer/nemo
  // install global
  npm i -g @pregalaxyer/nemo

```



## 用法

### 参数:
  
  1. `url`: `swagger` 项目的 `api json` 地址
  2. `output`: `typescript` 文件的输出目录
  3. `requestPath`: 第三方请求库，如果需要自定义请求
  4. `exportsRequest`: 是否需要再次输出请求目录
  5. `paths`: 路径，用于输出制定路径的文件

```typescript

interface SwaggerConfig {
  /**
   * @description swagger api url
   */
  url: string
  /**
   * @description single-api or apis
   */
  paths?: Array<string | Regexp>
  /**
   * @description output floder
   */
  output?: string
  /**
   * @description where request module import from
   */
  requestPath?: string
  /**
   * @description request templates only create and remove when it is true
   * when you only need exportsRequest once, mostly code likes:
   * * `exportsRequest: !isRequestFloderExsit`
   */
  exportsRequest?: boolean
}
```
在项目中新建一个 `swagger.js` 文件，复制一下代码，然后 `node swagger.js`，脚本会自动生成 `models`、`services` 目录和一个导出文件
```node
// swagger.js
const main = require('@pregalaxyer/nemo')

// with esm
import main from '@pregalaxyer/nemo'

main({
  url: 'https://petstore.swagger.io/v2/swagger.json',
  output: './src/api'
})

```
**终端调用**

``` bash
@pregalaxyer/nemo convert -i https://petstore.swagger.io/v2/swagger.json -o ./src/api
# or after install global
npx @pregalaxyer/nemo convert -i https://petstore.swagger.io/v2/swagger.json -o ./src/api

```

### 自定义请求库
开箱即用：只需要两分钟即可接入第三方库，你需要大概了解入参的 `interface` ，然后书写转换一个简易转换函数

```typescript
type RequestInitWithoutBodyInit = Omit<RequestInit, 'body'>

interface Options extends RequestInitWithoutBodyInit, Record<string, any> {
  body?: Record<string, any>
  formData?: Record<string, any>
  query?: Record<string, any>
}
// default request
request<ResponseType>(url: string, options: Options)


// your request file
import request from `${library}`
import { getRequestBody, Options  } from `${output}/utils`
// 你的转换函数
export default async function <T>(url, options) {
  const body: BodyInit | undefined = getRequestBody(options)
  const data = await request<T>(url, Object.assign(options, {body}))
  return data
}
```
npm package: @pregalaxyer/sardine
Description: one step mock sever via swagger schema
Author: dylan
Latest version: 0.0.2


<div style="text-align: center; height: 420px; position:relative; ">
  <img src="./sardine.jpeg" style="border-radius: 10px; filter: blur(1px)"/>
  <main style="text-align: center; position: absolute; top: 80px; width: 100%; z-index: 9">
    <h1 style="color: white; font-size: 80px">Sardine</h1>
  </main>
</div>

<p style="text-align: center; margin-top: 10px">
  <img src="https://img.shields.io/travis/com/pregalaxyer/sardine" />
  <img src="https://img.shields.io/codecov/c/github/pregalaxyer/sardine" />
</p>



`Sardine` is one step mock tool,  via `swagger v2`, `chance`, `koa`. It will check `request` and return `response`. You can set swagger `format` property with chance method name to fake different types data~


### Install

``` bash
npm install @pregalaxyer/sardine -D
//or
yarn add @pregalaxyer/sardine -D

```

### Usage

```js
// mock.js
const {
  default: Sardine,
  chanceInstance,
  responseBodyMiddleware // a middleware Examples
} = require('@pregalaxyer/sardine')

new Sardine({
  url: 'https://petstore.swagger.io/v2/swagger.json',
  port: 9000,
  responseMiddleWares: [
    // sardine will fake the code & msg field in body with provide value
    // { code: '0', 'msg': 'success', ...other fake data} 
    responseBodyMiddleware([
      { key: 'code', value: '0' },
      { key: 'msg', value: 'success' }
    ])
  ]
})

```
Run `node mock.js` to start your first sardine mock server

`Options`:
``` typescript
interface SardineOptions {
  url: string
  port?: number
  requestMiddlewares?: Middleware[]
  responseMiddleWares?: Middleware[]
}
/* make it is possible to config your chanceInstance
  */
public chanceInstance: {
  /**
   * config chance fake count of arrays
   */
  __DEFAULT_ARRAY_COUNT?: number
  /**
   * max stack size for nest object
   */
  _MAX_NEST_STACK_SIZE?: number
} = chanceInstance

```
- `url` swagger json url
- `port` mock sever port
- `requestMiddlewares` & `responseMiddleWares` middleware use in koa mock server, [more about koa](https://koajs.com/)



### Swagger Schemes

 📖 : [Swagger Schemes V2](https://swagger.io/specification/v2/#swaggerSchemes)

 💡: <b>Newton's 🍎</b>
> However, the format property is an open string-valued property, and can have any value to support documentation needs. Formats such as "email", "uuid", etc., can be used even though they are not defined by this specification


You can create a lot fake data via different format type(id, card, png, city)

🚥 : <b>Rules</b>
- `number` types use `minimum` & `maximum`

- `string` types use `maxLength`  & `minLength`

- `array` types use `maxItems` & `minItems`

- `enum` types use for `options`

- `default` value use for fake value


### TODO

- swagger v3 support
- request validtor middleware（options 😄）
npm package: @preignition/lit-firebase
Description: Webcomponent for interactig with Firebase, inspired by polymerfire, but based on lit-element
Author: christophe geiser
Latest version: 0.4.0

# \<preignition/lif>

This webcomponent follows the [open-wc](https://github.com/open-wc/open-wc) recommendation.

A lit-element based implementation of [polymerfire](https://github.com/FirebaseExtended/polymerfire).

For the time being, only `firebase-document` and `firebase-query` have been migrated (to resp. `lif-document` and `lif-query`). 
`firebase-auth` and `firebase-app` will not be upgraded as it is usually simpler to instantiate database and handle authentication via js. 

Those components require firebase SDK to be made available on the client (see https://firebase.google.com/docs/web/setup).

Use at your own risks as this is beta product. 


## Installation
```bash
npm i @preignition/lifbase
```

## Usage
```html
<script type="module">
  import '@preignition/lifbase';
</script>

and in lit-element render: 

<lif-document path="myPath" @data-changed="${e=> this.data = e.detail.value}"></lif-document>
<lif-query path="myPath" @data-changed="${e=> this.data = e.detail.value}"></lif-query>
```

## Testing with Karma
To run the suite of karma tests, run
```bash
npm run test
```
or to run them in compatibility mode for legacy browsers
```bash
npm run test:compatibility
```

To run the tests in watch mode (for <abbr title="test driven development">TDD</abbr>, for example), run

```bash
npm run test:watch
```
or
```bash
npm run test:compatibility
```
npm package: @preignition/multi-chart
Description: lit-element components for building charts and visualization (based on d3.js v5).
Author: christophe.geiser
Latest version: 4.3.1

[![Netlify Status](https://api.netlify.com/api/v1/badges/efc3aa92-e27a-4e95-8331-a1c1332bdffc/deploy-status)](https://app.netlify.com/sites/multi-chart/deploys)

# \<multi-chart\>
Build composable, markup-based, extensible visualizations for the web. 

\<multi-chart\> is a [lit-element](https://github.com/polymer/lit-element)-based library to compose markup-driven and data-driven vizualization layers.

## Motivation
While building vizualisation for the web, it is difficult to find the right balance between low-level vizualization kernel (like d3) that requires a lot of development work, and high-level black box library that are difficult to configure beyond a certain point. 

\<multi-chart\> is a attempt to provide the best of two the worlds: low level extensible webcomponents (often wrapper around d3.js modules like d3-axis) composed together to build complex charts. The library proposes ready-to-use configurable charts, but also the building blocks for accomodating more complex use case. 

This library plays well with [\<multi-geo\>](https://github.com/preignition/multi-geo) (similar library for geo charts like choropleth) and [\<multi-verse\>](https://github.com/preignition/multi-verse), a graphical interactive multi-dimensional analysis tool. Together, they offer a markup-based alternative to tools like [dc.js](https://dc-js.github.io/dc.js/).

## Demo and API
Demo and API are now available on [netlify](https://multi-chart.netlify.com/).

## Examples

### Pie 
<div>
  <img src="https://raw.githubusercontent.com/preignition/multi-chart/master/images/pie.png" width="300"></img>
</div>

### Bar
<div>
  <img src="https://raw.githubusercontent.com/preignition/multi-chart/master/images/bar.png" width="300"></img>
</div>

### Stack
<div>
  <img src="https://raw.githubusercontent.com/preignition/multi-chart/master/images/stack.png" width="300"></img>
</div>

### Radar
<div>
  <img src="https://raw.githubusercontent.com/preignition/multi-chart/master/images/radar.png" width="300"></img>
</div>


### Bubble
<div>
  <img src="https://raw.githubusercontent.com/preignition/multi-chart/master/images/bubble.png" width="300"></img>
</div>
npm package: @preignition/multi-geo
Description: lit-element building blocks elements for building geo visualization (based on d3.js v5).
Author: Christophe Geiser
Latest version: 4.2.0

[![Published on webcomponents.org](https://img.shields.io/badge/webcomponents.org-published-blue.svg)](https://webcomponents.org/element/multi-geo)
[![Netlify Status](https://api.netlify.com/api/v1/badges/03374bac-1921-4bbc-a094-a6291b6e9cfe/deploy-status)](https://app.netlify.com/sites/multi-geo/deploys)

# \<multi-geo\>
Build composable, markup-based, extensible geo visualizations for the web. 

\<multi-geo\> (along with \<multi-chart\>) is a Polymer/Webcomponent library to compose markup-driven and data-driven geo vizualization layers.

## Motivation
While building vizualisation for the web, it is difficult to find the right balance between low-level vizualization kernel (like d3) that requires a lot of development work, and high-level black box library that are difficult to configure beyond a certain point. 

\<multi-geo\> is a attempt to provide the best of two the worlds: low level extensible webcomponents (often wrapper around d3.js modules like d3-axis) composed together to build complex charts. The library proposes ready-to-use configurable charts, but also the building blocks for accomodating more complex use case. 

\<multi-geo\>, plays well with [\<multi-chart\>](https://github.com/PolymerEl/multi-chart) (similar library for standart charts) and [\<multi-verse\>](https://github.com/PolymerEl/multi-verse), a graphical interactive multi-dimensional analysis tool. Together, they offer a markup based alternative to tools like [dc.js](https://dc-js.github.io/dc.js/)

## Examples
Demo and API available from https://multi-geo.netlify.com/

### Features
<div>
  <img src="https://raw.githubusercontent.com/PolymerEl/multi-geo/master/images/features.png" width="300"></img>
</div>

### Choropleth
<div>
  <img src="https://raw.githubusercontent.com/PolymerEl/multi-geo/master/images/choropleth.png" width="300"></img>
</div>
npm package: @preignition/preignition-demo
Description: Utility web components for building demo
Author: christophe geiser
Latest version: 0.5.0

# \<preignition-demo>

This webcomponent follows the [open-wc](https://github.com/open-wc/open-wc) recommendation.

## Installation
```bash
npm i preignition-demo
```

## Usage
```html
<script type="module">
  import 'preignition-demo/preignition-demo.js';
</script>

<preignition-demo></preignition-demo>
```



## Local Demo with `es-dev-server`
```bash
npm start
```
To run a local development server that serves the basic demo located in `demo/index.html`

```bash
npm start:compatibility
```
To run a local development server in compatibility mode for older browsers that serves the basic demo located in `demo/index.html`
npm package: @preignition/preignition-mixin
Description: Utils mixin used by Preignition-mixin. To be consumed by lit-element components
Latest version: 1.9.1

# \<preignition-mixin>

Series of helper mixin while developping Preignition with lit-element: 

- DoNotSetUndefinedValue: prevent property setting when value is undefined. This is usefull for not overriding child components default values when parent have not set those properties.
- SelectMixin: use d3-selection in component shadowRoot
- DefaultValueMixin: allow to declare default values in properties (similar to Polymer)
- RelayTo: allow to automatically relay properties from parent to child, without declaring the binding in template. 
- CacheId: cache element having an `id` under `this.$`for easier reference. Usage borrowed from Polymer.

This webcomponent follows the [open-wc](https://github.com/open-wc/open-wc) recommendation.

## Installation
```bash
npm i preignition-mixin
```

## Usage

### defaultValueMixin
```js
import { DefaultValueMixin } from '@preignition/preignition-mixin';

class DefaultElement extends defaultValueMixin(TestElement) {
  
  static get properties() {
    return {
      value: {type: String, value: 'test'}
    };
  }
}
```

### selectMixin
```js
import { SelectMixin } from '@preignition/preignition-mixin';

class SelectElement extends selectMixin(TestElement) {
}
window.customElements.define('select-element', SelectElement);

const el = html`<select-element></select-element>`;
const title = el.selectShadow('#title')
```


## Testing using karma (if applied by author)
```bash
npm run test
```