open-index/open-npm huggingface dataset:
npm package: @shanyi-cc/shanyicodeline
Description: ShanyiCodeLine - High-performance Claude Code StatusLine tool
Author: shanyihaha
Latest version: 1.3.4

# @shanyi-cc/shanyicodeline

ShanyiCodeLine 是 shanyiapi.com 站特供版 Claude Code 状态栏工具，集成余额显示与主题配置。

## 安装
```bash
npm install -g @shanyi-cc/shanyicodeline
```

安装后自动复制到：`~/.claude/shanyicodeline/shanyicodeline`

## Claude Code 配置

在 `~/.claude/settings.json` 中添加 `statusLine` 和 `env`：

```json
{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "你的 API Key（sk-xxx）",
    "ANTHROPIC_BASE_URL": "https://shanyiapi.com"
  },
  "statusLine": {
    "type": "command",
    "command": "~/.claude/shanyicodeline/shanyicodeline",
    "padding": 0
  }
}
```

Windows 示例：
```json
{
  "env": {
    "ANTHROPIC_AUTH_TOKEN": "你的 API Key（sk-xxx）",
    "ANTHROPIC_BASE_URL": "https://shanyiapi.com"
  },
  "statusLine": {
    "command": "C:/Users/你的用户名/.claude/shanyicodeline/shanyicodeline.exe",
    "padding": 0,
    "type": "command"
  }
}
```

配置好后，ShanyiCodeLine 会自动从 `settings.json` 的 `env` 中读取 API Key 和 Base URL，通过 `/api/user/self` 接口自动获取用户真实余额，**无需额外配置**。

## 使用
```bash
shanyicodeline --help        # 查看帮助
shanyicodeline --init        # 初始化配置与主题
shanyicodeline --config      # 打开配置面板
shanyicodeline --theme nord  # 指定主题运行
```

## 链接
- GitHub：https://github.com/shanyihaha/shanyicodeline
- 原作者：https://github.com/Haleclipse/CCometixLine
npm package: @shanzhai/build-object-input
Description: A Shanzhai input which builds an object from a number of other inputs.
Latest version: 0.0.10

# `@shanzhai/build-object-input` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/build-object-input.svg)](https://www.npmjs.com/package/@shanzhai/build-object-input) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/build-object-input.svg)](https://www.npmjs.com/package/@shanzhai/build-object-input)

A Shanzhai input which builds an object from a number of other inputs.

## Usage

The following two examples are equivalent:

```typescript
new BuildObjectInput({
  a: new ConstantInput(3),
  b: new ConstantInput(10),
  c: new ConstantInput(7),
});

new ConstantInput({
  a: 3,
  b: 10,
  c: 7,
});
```

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/build-tsconfig-input
Description: A Shanzhai input which converts TypeScript compiler options to JSON as would be found in a tsconfig.json file.
Latest version: 0.0.10

# `@shanzhai/build-tsconfig-input` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/build-tsconfig-input.svg)](https://www.npmjs.com/package/@shanzhai/build-tsconfig-input) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/build-tsconfig-input.svg)](https://www.npmjs.com/package/@shanzhai/build-tsconfig-input)

A Shanzhai input which converts TypeScript compiler options to JSON as would be found in a tsconfig.json file.

## Usage

The following two examples are equivalent:

```typescript
new BuildObjectInput({
  new ConstantInput({
    jsx: JsxEmit.ReactNative,
    module: ModuleKind.CommonJS,
    newLine: NewLineKind.CarriageReturnLineFeed,
    target: ScriptTarget.ES2019,
    moduleResolution: ModuleResolutionKind.NodeJs,
    lib: [`ESNext.Intl`, `ES2017.SharedMemory`, `ES7`],
    importsNotUsedAsValues: ImportsNotUsedAsValues.Preserve,
    jsxFactory: `Test JSX Factory`,
  }),
  new ConstantInput(true),
  new ConstantInput(true),
  new ConstantInput(`Test Extends`),
  new ConstantInput(`Test Compiler`),
  new ConstantInput([`Test File A`, `Test File B`]),
  new ConstantInput([`Test Exclude A`, `Test Exclude B`]),
  new ConstantInput([`Test Include A`, `Test Include B`]),
  new ConstantInput({ path: `Test Path` })
});

new ConstantInput({
  compilerOptions: {
    jsx: `react-native`,
    module: `CommonJS`,
    newLine: `crlf`,
    target: `ES2019`,
    moduleResolution: `Node`,
    lib: [`ESNext.Intl`, `ES2017.SharedMemory`, `ES7`],
    importsNotUsedAsValues: `preserve`,
    jsxFactory: `Test JSX Factory`,
  },
  compileOnSave: true,
  typeAcquisition: { enable: true },
  extends: `Test Extends`,
  "ts-node": { compiler: `Test Compiler` },
  files: [`Test File A`, `Test File B`],
  exclude: [`Test Exclude A`, `Test Exclude B`],
  include: [`Test Include A`, `Test Include B`],
  references: { path: `Test Path` },
});
```

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/change-tracking-helpers
Description: Helpers for tracking changes to files during a Shanzhai build.
Latest version: 0.0.14

# `@shanzhai/change-tracking-helpers` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/change-tracking-helpers.svg)](https://www.npmjs.com/package/@shanzhai/change-tracking-helpers) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/change-tracking-helpers.svg)](https://www.npmjs.com/package/@shanzhai/change-tracking-helpers)

Helpers for tracking changes to files during a Shanzhai build.

## Usage

This is a collection of helpers.  Each requires its own explanation.

### Generating Diffs

The `generateDiff` function compares two objects containing key-value pairs.

The differences between them are returned.

```typescript
import { generateDiff } from "@shanzhai/change-tracking-helpers";

generateDiff({
  testRemoved: 123,
  testChanged: 456,
  testUnchanged: 789,
}, {
  testChanged: 456,
  testUnchanged: 789,
  testAdded: 101112,
});
```

This will return the following:

```typescript
{
  added: [`testAdded`],
  changed: [`testChanged`],
  deleted: [`testDeleted`],
  unchanged: [`testUnchanged`],
};
```

### Hashing files

The `hashFile` function resolves to the SHA-1 hash of a file.

As a reminder, SHA-1 is considered suitable for change tracking but not for
protecting against malicious changes.

```typescript
import { hashFile } from "@shanzhai/change-tracking-helpers";

await hashFile(`a/file/path`);
```

This will resolve to a string containing the hash in hexadecimal.

### Filtering out common temporary or system files

The `pathAccepted` function determines whether a given string appears to be a
temporary or system file or not.

```typescript
import { pathAccepted } from "@shanzhai/change-tracking-helpers";

pathAccepted(`a/file/path`);
```

Some examples of paths which would not be accepted:

- `.a-dotfile`
- `a/nested/.dotfile/path`

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/collect-svg-defs-plugin
Description: A Shanzhai plugin which collects SVG defs, outputting the results to the Pug locals store, the TypeScript globals store and the TypeScript source store.
Latest version: 0.0.18

# `@shanzhai/collect-svg-defs-plugin` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/collect-svg-defs-plugin.svg)](https://www.npmjs.com/package/@shanzhai/collect-svg-defs-plugin) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/collect-svg-defs-plugin.svg)](https://www.npmjs.com/package/@shanzhai/collect-svg-defs-plugin)

A Shanzhai plugin which collects SVG defs, outputting the results to the Pug locals store, the TypeScript globals store and the TypeScript source store.

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/collect-svg-defs-step
Description: A Shanzhai step which collects a number of SVG defs into a single document, and generates TypeScript source which can be used to refer to those defs.
Latest version: 0.0.12

# `@shanzhai/collect-svg-defs-step` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/collect-svg-defs-step.svg)](https://www.npmjs.com/package/@shanzhai/collect-svg-defs-step) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/collect-svg-defs-step.svg)](https://www.npmjs.com/package/@shanzhai/collect-svg-defs-step)

A Shanzhai step which collects a number of SVG defs into a single document, and generates TypeScript source which can be used to refer to those defs.

## Usage

This step is unlikely to have any use other than combining the output of
[ConvertSvgDocumentToDefStep](https://www.npmjs.com/package/@shanzhai/convert-svg-document-to-def-step).

If within a trigger's event handler an instance of `CollectSvgDefsStep` similar
to the following were to be returned:

```typescript
new CollectSvgDefsStep(
  new ConstantInput({
    testKeyA: `<rect id="" width="100" height="220" />`,
    testKeyB: `<circle id="" cx="310" cy="70" r="50" />`,
  }),
  new OutputOfGeneratedTypeScript(),
  new OutputOfGeneratedConstants(),
  new OutputOfGeneratedSvg()
)
```

Each input def must:

- Be (mostly) valid SVG.
- Have a single root element which is NOT `<svg>`, with an `id` attribute which
  is empty.
- Have no other IDs within.

This would then output:

- TypeScript defining the `AnySvg` type, which is a union of all of the
  generated constants (e.g. `type AnySvg = 0 | 1;`).
- Constants (for use as TypeScript globals) mapping the keys of the defs input
  to the IDs injected into them (e.g. `{ testKeyA: 0, testKeyB: 1 }`).
- The defs, combined into a single piece of SVG, with injected IDs to match the
  TypeScript globals (e.g.
  `<rect id="0" width="100" height="220" /><circle id="1" cx="310" cy="70" r="50" />`
  ).

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/collected-svg-def-store
Description: A Shanzhai store for the SVG of collected defs.
Latest version: 0.0.0
Deprecated: These

# `@shanzhai/collected-svg-def-store` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/collected-svg-def-store.svg)](https://www.npmjs.com/package/@shanzhai/collected-svg-def-store) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/collected-svg-def-store.svg)](https://www.npmjs.com/package/@shanzhai/collected-svg-def-store)

A Shanzhai store for the SVG of collected defs.

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/compile-type-script-plugin
Description: A Shanzhai plugin while compiles the entire store of parsed TypeScript, storing the resulting Javascript in corresponding source store.
Latest version: 0.0.19

# `@shanzhai/compile-type-script-plugin` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/compile-type-script-plugin.svg)](https://www.npmjs.com/package/@shanzhai/compile-type-script-plugin) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/compile-type-script-plugin.svg)](https://www.npmjs.com/package/@shanzhai/compile-type-script-plugin)

A Shanzhai plugin while compiles the entire store of parsed TypeScript, storing the resulting Javascript in corresponding source store.

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/compile-type-script-step
Description: A Shanzhai step which compiles parsed TypeScript to Javascript.
Latest version: 0.0.17

# `@shanzhai/compile-type-script-step` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/compile-type-script-step.svg)](https://www.npmjs.com/package/@shanzhai/compile-type-script-step) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/compile-type-script-step.svg)](https://www.npmjs.com/package/@shanzhai/compile-type-script-step)

A Shanzhai step which compiles parsed TypeScript to Javascript.

## Usage

This step is unlikely to have any use other than combining the output of
[ParseTypeScriptStep](https://www.npmjs.com/package/@shanzhai/parse-type-script-step).

Within a trigger's event handler, return an instance of `CompileTypeScriptStep`
similar to the following:

```typescript
new CompileTypeScriptStep(
  new ConstantInput({
    keyA: aParsedTypeScriptFile,
    keyB: anotherParsedTypeScriptFile,
  }),
  new ConstantInput(aSetOfTypeScriptCompilerOptions),
  new OutputForCompiledJavascript(),
);
```

This will compile all of the input parsed TypeScript files into a single
Javascript file and output it.

## Dependencies

This package has the following runtime dependencies:

Name       | Version                                                                                          
---------- | -------------------------------------------------------------------------------------------------
typescript | [![4.6.3](https://img.shields.io/npm/v/typescript.svg)](https://www.npmjs.com/package/typescript)

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/concatenate-object-values-input
Description: A Shanzhai input which concatenates the (string) values of an object returned by another input.
Latest version: 0.0.2

# `@shanzhai/concatenate-object-values-input` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/concatenate-object-values-input.svg)](https://www.npmjs.com/package/@shanzhai/concatenate-object-values-input) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/concatenate-object-values-input.svg)](https://www.npmjs.com/package/@shanzhai/concatenate-object-values-input)

A Shanzhai input which concatenates the (string) values of an object returned by another input.

## Example

The following two examples are equivalent:

```typescript
new ConcatenateObjectValuesInput(
  new ConstantInput({
    keyA: `ValueA`,
    keyB: `ValueB`,
    keyC: `ValueC`,
  })
);

new ConstantInput(`ValueAValueBValueC`);
```

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/constant-input
Description: A Shanzhai input which provides a constant input to a build step.
Latest version: 0.0.10

# `@shanzhai/constant-input` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/constant-input.svg)](https://www.npmjs.com/package/@shanzhai/constant-input) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/constant-input.svg)](https://www.npmjs.com/package/@shanzhai/constant-input)

A Shanzhai input which provides a constant input to a build step.

## Usage

Construct an instance of `ConstantInput`, giving the value to use as a constant
to its constructor.

You will then be able to use that instance as an input to any `Step` accepting
an `Input` of that value's type.

```typescript
new ExampleStep(
  new ConstantInput(`An Example Value`)
);
```

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/convert-json-to-type-script-step
Description: A Shanzhai step which converts a JSON value to TypeScript source code for ambient declarations.
Latest version: 0.0.11

# `@shanzhai/convert-json-to-type-script-step` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/convert-json-to-type-script-step.svg)](https://www.npmjs.com/package/@shanzhai/convert-json-to-type-script-step) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/convert-json-to-type-script-step.svg)](https://www.npmjs.com/package/@shanzhai/convert-json-to-type-script-step)

A Shanzhai step which converts a JSON value to TypeScript source code for ambient declarations.

## Usage

Use `ConvertJsonToTypeScriptStep` to convert an object containing constants into
a set of TypeScript type declarations.  For example, returning the following
from a trigger's event handler:

```typescript
new ConvertJsonToTypeScriptStep(
  `A description of the operation being performed`,
  new ConstantInput({
    theFirstDeclaration: 3,
    theSecondDeclaration: {
      anObjectContaining: [
        `an`,
        `array`,
      ],
    }
  })
);
```

To produce the following output:

```typescript
declare const theFirstDeclaration: 3;

declare const theSecondDeclaration: {
  readonly anObjectContaining: readonly [
    `an`,
    `array`,
  ],
};
```

The values are not included; these should be injected during minification.

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/convert-parsed-csv-to-struct-of-arrays-step
Description: A Shanzhai step which converts a parsed CSV file to a "struct-of-arrays" format where each column is its own array.
Latest version: 0.0.11

# `@shanzhai/convert-parsed-csv-to-struct-of-arrays-step` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/convert-parsed-csv-to-struct-of-arrays-step.svg)](https://www.npmjs.com/package/@shanzhai/convert-parsed-csv-to-struct-of-arrays-step) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/convert-parsed-csv-to-struct-of-arrays-step.svg)](https://www.npmjs.com/package/@shanzhai/convert-parsed-csv-to-struct-of-arrays-step)

A Shanzhai step which converts a parsed CSV file to a "struct-of-arrays" format where each column is its own array.

## Usage

Use `ConvertParsedCsvToStructOfArraysStep` to convert a parsed CSV to an object
suitable for inclusion in the
[TypeScript global store](https://www.npmjs.com/package/@shanzhai/type-script-global-store).
For example, returning the following from a trigger's event handler:

```typescript
new ConvertParsedCsvToStructOfArraysStep(
  `A description of the operation being performed`,
  `aPrefixForAnyGlobals`,
  new ConstantInput([
    [`TestHeaderA`, `TestHeaderB`, `TestHeaderC`],
    [`Test Value A A`, `125`, `null`],
    [`Test Value A B`, `552`, `false`],
    [`Test Value A C`, `924`, `true`],
  ]),
  new OutputWhichReceivesConvertedCSV()
);
```

Would write the following to the output:

```typescript
{
  aPrefixForAnyGlobalsTestHeaderA: [
    `Test Value A A`,
    `Test Value A B`,
    `Test Value A C`,
  ],
  aPrefixForAnyGlobalsTestHeaderB: [
    125,
    552,
    924,
  ],
  aPrefixForAnyGlobalsTestHeaderC: [
    null,
    false,
    true,
  ],
};
```

If the content of a cell is JSON-serializable, that value will be used.  If this
is not desirable, quote the value (effectively turning it into a JSON string).

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/convert-svg-document-to-def-step
Description: A Shanzhai step which converts a SVG document to a def to be embedded in another SVG document.
Latest version: 0.0.12

# `@shanzhai/convert-svg-document-to-def-step` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/convert-svg-document-to-def-step.svg)](https://www.npmjs.com/package/@shanzhai/convert-svg-document-to-def-step) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/convert-svg-document-to-def-step.svg)](https://www.npmjs.com/package/@shanzhai/convert-svg-document-to-def-step)

A Shanzhai step which converts a SVG document to a def to be embedded in another SVG document.

## Usage

This step is unlikely to have any use other than supplying input to
[CollectSvgDefsStep](https://www.npmjs.com/package/@shanzhai/collect-svg-defs-step).

Should a trigger's event handler return the following:

```typescript
new ConvertSvgDocumentToDefStep(
  new ConstantInput(`<svg><rect width="100" height="220" /></svg>`),
  new OutputOfConvertedDef()
);
```

It will write something similar to the following to its output:

`<rect id="" width="100" height="220" />`

If there are multiple elements, a wrapping `<g>` will be added.

## Dependencies

This package has the following runtime dependencies:

Name | Version                                                                              
---- | -------------------------------------------------------------------------------------
svgo | [![2.8.0](https://img.shields.io/npm/v/svgo.svg)](https://www.npmjs.com/package/svgo)

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/convert-svg-documents-to-defs-plugin
Description: A Shanzhai plugin which converts the contents of the minified SVG store to defs, outputting them to the defs store.
Latest version: 0.0.15

# `@shanzhai/convert-svg-documents-to-defs-plugin` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/convert-svg-documents-to-defs-plugin.svg)](https://www.npmjs.com/package/@shanzhai/convert-svg-documents-to-defs-plugin) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/convert-svg-documents-to-defs-plugin.svg)](https://www.npmjs.com/package/@shanzhai/convert-svg-documents-to-defs-plugin)

A Shanzhai plugin which converts the contents of the minified SVG store to defs, outputting them to the defs store.

## Dependencies

This package has the following runtime dependencies:

Name | Version                                                                              
---- | -------------------------------------------------------------------------------------
svgo | [![2.8.0](https://img.shields.io/npm/v/svgo.svg)](https://www.npmjs.com/package/svgo)

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/copy-step
Description: A Shanzhai step which copies an input to an output.
Latest version: 0.0.8

# `@shanzhai/copy-step` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/copy-step.svg)](https://www.npmjs.com/package/@shanzhai/copy-step) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/copy-step.svg)](https://www.npmjs.com/package/@shanzhai/copy-step)

A Shanzhai step which copies an input to an output.

## Usage

Within a trigger's event handler, return an instance of `CopyStep` similar to
the following:

```typescript
new CopyStep(
  `A description of the operation being performed`,
  new InputRetrievingTheInformationToCopy(),
  new OutputStoringTheInformationBeingCopied()
)
```

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/create-directory-step
Description: A Shanzhai step which ensures that a directory exists (as well as all of its parent directories).
Latest version: 0.0.11

# `@shanzhai/create-directory-step` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/create-directory-step.svg)](https://www.npmjs.com/package/@shanzhai/create-directory-step) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/create-directory-step.svg)](https://www.npmjs.com/package/@shanzhai/create-directory-step)

A Shanzhai step which ensures that a directory exists (as well as all of its parent directories).

## Usage

Within a trigger's event handler, return an instance of `CreateDirectoryStep`
similar to the following:

```typescript
new CreateDirectoryStep(
  `A description of the operation being performed`,
  [`a`, `path`, `to`, `a`, `directory`, `to`, `create`]
)
```

Any part of the path `a/path/to/a/directory/to/create` which does not already
exist will be created as a directory.

If any part already exists as a file, an error will occur.

If the entire path already exists as a directory, nothing will happen.

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/delete-from-keyed-store-step
Description: A Shanzhai step which deletes a key/value from a keyed store.
Latest version: 0.0.6

# `@shanzhai/delete-from-keyed-store-step` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/delete-from-keyed-store-step.svg)](https://www.npmjs.com/package/@shanzhai/delete-from-keyed-store-step) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/delete-from-keyed-store-step.svg)](https://www.npmjs.com/package/@shanzhai/delete-from-keyed-store-step)

A Shanzhai step which deletes a key/value from a keyed store.

## Usage

Within a trigger's event handler, return an instance of
`DeleteFromKeyedStoreStep` similar to the following:

```typescript
new DeleteFromKeyedStoreStep(
  aKeyedStore,
  `A Key Within That Store`
)
```

The key/value specified will be deleted from the store.

If it does not exist in the store, nothing happens.

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/delete-from-unkeyed-store-step
Description: A Shanzhai step which deletes the value from an unkeyed store.
Latest version: 0.0.0
Deprecated: It

# `@shanzhai/delete-from-unkeyed-store-step` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/delete-from-unkeyed-store-step.svg)](https://www.npmjs.com/package/@shanzhai/delete-from-unkeyed-store-step) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/delete-from-unkeyed-store-step.svg)](https://www.npmjs.com/package/@shanzhai/delete-from-unkeyed-store-step)

A Shanzhai step which deletes the value from an unkeyed store.

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/delete-step
Description: A Shanzhai step which deletes a file or directory (including any child files or directories) if it exists.
Latest version: 0.0.11

# `@shanzhai/delete-step` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/delete-step.svg)](https://www.npmjs.com/package/@shanzhai/delete-step) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/delete-step.svg)](https://www.npmjs.com/package/@shanzhai/delete-step)

A Shanzhai step which deletes a file or directory (including any child files or directories) if it exists.

## Usage

Within a trigger's event handler, return an instance of `DeleteStep` similar to
the following:

```typescript
new DeleteStep(
  `A description of the operation being performed`,
  [`a`, `path`, `to`, `a`, `file`, `or`, `directory`, `to`, `delete`]
)
```

If a file or directory called `a/path/to/a/file/or/directory/to/delete` exists,
it will be deleted.

Directories will be deleted even if they are not empty.

If no such file or directory exists, nothing happens.

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/ephemeral-keyed-store
Description: A keyed Shanzhai store which holds data in memory until the application closes.
Latest version: 0.0.6

# `@shanzhai/ephemeral-keyed-store` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/ephemeral-keyed-store.svg)](https://www.npmjs.com/package/@shanzhai/ephemeral-keyed-store) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/ephemeral-keyed-store.svg)](https://www.npmjs.com/package/@shanzhai/ephemeral-keyed-store)

A keyed Shanzhai store which holds data in memory until the application closes.

## Usage

This is an implementation of `KeyedStore`, and can be used anywhere requiring
one.

```typescript
const store = new EphemeralKeyedStore<number>(`Test Name`);

store.set(`Test Key A`, 5);
store.set(`Test Key B`, 6);
store.set(`Test Key C`, 7);

store.delete(`Test Key B`);

store.get(`Test Key A`); // 5.
store.getAll(); // { "Test Key A": 5, "Test Key C": 7 }
store.getKeys(); // [`Test Key A`, `Test Key B`]
```

All information is stored in-memory, and will be lost when the application is
closed.

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)
npm package: @shanzhai/ephemeral-unkeyed-store
Description: An unkeyed Shanzhai store which holds data in memory until the application closes.
Latest version: 0.0.6

# `@shanzhai/ephemeral-unkeyed-store` [![Continuous Integration](https://github.com/jameswilddev/shanzhai/workflows/Continuous%20Integration/badge.svg)](https://github.com/jameswilddev/shanzhai/actions) [![License](https://img.shields.io/github/license/jameswilddev/shanzhai.svg)](https://github.com/jameswilddev/shanzhai/blob/master/license) [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_shield) [![Renovate enabled](https://img.shields.io/badge/renovate-enabled-brightgreen.svg)](https://renovatebot.com/) [![npm](https://img.shields.io/npm/v/@shanzhai/ephemeral-unkeyed-store.svg)](https://www.npmjs.com/package/@shanzhai/ephemeral-unkeyed-store) [![npm type definitions](https://img.shields.io/npm/types/@shanzhai/ephemeral-unkeyed-store.svg)](https://www.npmjs.com/package/@shanzhai/ephemeral-unkeyed-store)

An unkeyed Shanzhai store which holds data in memory until the application closes.

## Usage

This is an implementation of `UnkeyedStore`, and can be used anywhere requiring
one.

```typescript
const store = new EphemeralKeyedStore<number>(`Test Name`);
store.set(1);
store.delete();
store.set(2);
store.get(); // 2.
```

All information is stored in-memory, and will be lost when the application is
closed.

## Dependencies

This package has no runtime dependencies.

## Peer Dependencies

This package has no runtime peer dependencies (it does not expect any other packages to be installed alongside itself).

## License

[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fjameswilddev%2Fshanzhai?ref=badge_large)