open-index/open-npm huggingface dataset:
npm package: @swell-energy/gatsby-storyblok-image
Description: Adds gatsby-image to Gatsby & Storyblok as a content source.
Author: Will Graham
Latest version: 0.3.0

# gatsby-storyblok-image

_gatsby-storyblok-image_ lets you use gatsby-image together with Storyblok outside of GraphQL.

## Install

`npm i gatsby-storyblok-image`

or

`yarn add gatsby-storyblok-image`

## Usage

### Fixed image

```javascript
import SbEditable from 'storyblok-react'
import Img from 'gatsby-image'
import { getFixedGatsbyImage } from 'gatsby-storyblok-image'

const FixedImage = ({ blok }) => {
  const fixedProps = getFixedGatsbyImage(blok.image, {
    width: 900
  })

  return (
    <SbEditable content={blok}>
      <Img fixed={fixedProps} />
    </SbEditable>
  )
}

export default FixedImage
```

---

### Fluid image

```javascript
import SbEditable from 'storyblok-react'
import Img from 'gatsby-image'
import { getFluidGatsbyImage } from 'gatsby-storyblok-image'

const FluidImage = ({ blok }) => {
  const fluidProps = getFluidGatsbyImage(blok.image, {
    maxWidth: 900
  })

  return (
    <SbEditable content={blok}>
      <Img fluid={fluidProps} />
    </SbEditable>
  )
}

export default FluidImage
```

## To do

- [ ] improve readme
- [ ] add tests
- [ ] add demo website

## Credits

This plugin is inspired by Sanity's way of implementing gatsby-image outside of GraphQL in their gatsby-source-sanity plugin.
npm package: @swell/app-types
Description: TypeScript bindings for Swell Apps
Author: Swell
Latest version: 1.1.1

# Swell App Types

TypeScript bindings for Swell Apps.

## Install

```bash
npm install @swell/app-types -D
-- Or
yarn add @swell/app-types -D
```

## Usage

The following is a minimal `tsconfig.json` for use alongside this package:

**`tsconfig.json`**

```json
{
  "compilerOptions": {
    "target": "esnext",
    "module": "esnext",
    "lib": ["esnext"],
    "types": ["@swell/app-types"]
  }
}
```

### Importable Types

It's not always possible (or desirable) to modify the `tsconfig.json` settings for a project to include all the Swell app types. For use cases like that, this package provides importable versions of its types, which are usable with no additional `tsconfig.json` setup. For example:

```ts
import type { SwellRequest, SwellResponse } from "@swell/app-types"

export default async function (request: SwellRequest) {
    return new SwellResponse({ success: true })
  }
}
```
npm package: @swell/edge.js
Description: Template engine
Author: virk
Latest version: 6.0.6

# Edge

[![gh-workflow-image]][gh-workflow-url] [![typescript-image]][typescript-url] [![npm-image]][npm-url] [![license-image]][license-url]

Edge is a simple, Modern, and batteries included template engine for Node.js. Edge is similar to writing JavaScript. If you know JavaScript, you know Edge.

## 👉 [Learn more](https://edgejs.dev)

![](https://cdn.jsdelivr.net/gh/thetutlage/static/sponsorkit/sponsors.png)

[gh-workflow-image]: https://img.shields.io/github/actions/workflow/status/edge-js/edge/checks.yml?style=for-the-badge
[gh-workflow-url]: https://github.com/edge-js/edge/actions/workflows/checks.yml "Github action"

[typescript-image]: https://img.shields.io/badge/Typescript-294E80.svg?style=for-the-badge&logo=typescript
[typescript-url]: "typescript"

[license-image]: https://img.shields.io/npm/l/edge.js?color=blueviolet&style=for-the-badge
[license-url]: LICENSE.md 'license'

[npm-image]: https://img.shields.io/npm/v/edge.js.svg?style=for-the-badge&logo=npm
[npm-url]: https://npmjs.org/package/edge.js 'npm'
npm package: @swellaby/eslint-config
Description: Our eslint configurations
Author: Swellaby
Latest version: 2.0.0

# eslint-config
[![npm version badge][eslint-config-version-badge]][eslint-config-pkg-url]
[![npm downloads badge][npmjs-downloads-badge]][eslint-config-pkg-url]
[![Circle CI Badge][circle-ci-badge]][circle-ci-url]
[![license Badge][license-badge]][license-url]  

Contains our various [eslint][eslint-url] configurations. Geared for our desired linting configuration, but feel free to use it if helps you.

## Install
Install the package as a dev dependency:
```sh
npm i @swellaby/eslint-config --save-dev
```

## Usage
Add the desired configuration to the `extends` key in your [eslint configuration file][eslint-config-files-url].

For example to use our default configuration (designed for node.js targetted codebases):

```json
{
    "extends": [ "@swellaby" ]
}
```

Or to use our default configuration designed for browser/web targetted codebases

```json
{
    "extends": [ "@swellaby/eslint-config/lib/bundles/browser" ]
}
```

This module includes several other eslint configurations, which are described in detail in our [config bundle documentation][bundles-docs]. 

## Contributing
See the [Contributing docs][contributing-docs] for details about how to contribute, build, etc.

## License
MIT - see license details [here][license-url] 

[license-url]: https://github.com/swellaby/eslint-config/blob/master/LICENSE
[license-badge]: https://img.shields.io/github/license/swellaby/eslint-config.svg
[circle-ci-badge]: https://circleci.com/gh/swellaby/eslint-config.svg?style=shield
[circle-ci-url]: https://circleci.com/gh/swellaby/eslint-config
[eslint-config-version-badge]: https://img.shields.io/npm/v/@swellaby/eslint-config.svg
[eslint-config-pkg-url]: https://www.npmjs.com/package/@swellaby/eslint-config
[npmjs-downloads-badge]: https://img.shields.io/npm/dt/@swellaby/eslint-config.svg
[eslint-url]: https://eslint.org/
[eslint-config-files-url]: https://eslint.org/docs/user-guide/configuring#using-configuration-files
[bundles-docs]: https://github.com/swellaby/eslint-config/blob/master/docs/BUNDLES.md
[contributing-docs]: https://github.com/swellaby/eslint-config/blob/master/docs/CONTRIBUTING.md
npm package: @swellaby/tslint-config
Description: Our tslint configurations
Author: Swellaby
Latest version: 3.0.1

# tslint-config
Module that contains our [tslint][tslint-url] configurations.  

[![npmjs Version Badge][npmjs-version-badge]][npmjs-pkg-url]
[![npmjs Downloads Badge][npmjs-downloads-badge]][npmjs-pkg-url]
[![Circle CI Badge][circle-ci-badge]][circle-ci-url]
[![license Badge][license-badge]][license-url]  

## Installation
Install the tslint-config module as a dev dependency:
```sh
npm i @swellaby/tslint-config --save-dev
```

## Usage
Add an `extends` key to your [tslint config file][tslint-config-url] and specify the value of the configuration you want to use:

For example, to use our default tslint configuration add the following to your `tslint.json` file:
```json
{
    ...
    "extends": "@swellaby/tslint-config",
    ...
}
``` 

You can optionally use any of our other tslint configurations by adding the desired configuration to the end of the extends path. For example to use our base configuration instead of the default:
```json
{
    ...
    "extends": "@swellaby/tslint-config/base",
    ...
}
``` 

## Configuration
Our default module configuration includes our rule config from the base TSLint rule set, as well as rule configurations for the [tslint-microsoft-contrib ruleset][tslint-msft-contrib-rules-url] and the [tslint-eslint ruleset][tslint-eslint-rules-url]. You can view our rule configurations for the respective rulesets at the below links:

* [Base TSLint Rule Configuration][tslint-base-doc]
* [TSLint Microsoft Contrib Rule Configuration][tslint-eslint-doc]
* [TSLint ESLint Rule Configuration][tslint-msft-contrib-doc]

## Contributing
See our [Contributing Guidelines][contributing-doc] for more information about contributing, building, etc.

## License
MIT - see license details [here][license-url]

[tslint-url]: https://palantir.github.io/tslint/
[tslint-config-url]: https://palantir.github.io/tslint/usage/configuration/
[npmjs-version-badge]: https://img.shields.io/npm/v/@swellaby/tslint-config.svg
[npmjs-pkg-url]: https://www.npmjs.com/package/@swellaby/tslint-config
[npmjs-downloads-badge]: https://img.shields.io/npm/dt/@swellaby/tslint-config.svg
[license-url]: https://github.com/swellaby/tslint-config/blob/master/LICENSE
[license-badge]: https://img.shields.io/github/license/swellaby/tslint-config.svg
[circle-ci-badge]: https://circleci.com/gh/swellaby/tslint-config.svg?style=shield
[circle-ci-url]: https://circleci.com/gh/swellaby/tslint-config
[tslint-eslint-rules-url]: https://www.npmjs.com/package/tslint-eslint-rules
[tslint-msft-contrib-rules-url]: https://github.com/Microsoft/tslint-microsoft-contrib#supported-rules
[tslint-base-doc]: https://github.com/swellaby/tslint-config/blob/master/docs/TSLINT_BASE_RULES.md
[tslint-eslint-doc]: https://github.com/swellaby/tslint-config/blob/master/docs/TSLINT_ESLINT_RULES.md
[tslint-msft-contrib-doc]: https://github.com/swellaby/tslint-config/blob/master/docs/TSLINT_MICROSOFT_CONTRIB_RULES.md
[contributing-doc]: https://github.com/swellaby/tslint-config/blob/master/docs/CONTRIBUTING.md
npm package: @swellscrypto/swells-uikit
Description: Set of UI components for pancake projects
Latest version: 0.26.0

# 🥞 Pancake UIkit

[![Version](https://img.shields.io/npm/v/@pancakeswap-libs/uikit)](https://www.npmjs.com/package/@pancakeswap-libs/uikit) [![Size](https://img.shields.io/bundlephobia/min/@pancakeswap-libs/uikit)](https://www.npmjs.com/package/@pancakeswap-libs/uikit)

Pancake UIkit is a set of React components and hooks used to build pages on Pancake's apps. It also contains a theme file for dark and light mode.

## Install

`yarn add @pancakeswap-libs/uikit`

## Setup

### Theme

Before using Pancake UIkit, you need to provide the theme file to styled-component.

```
import { ThemeProvider } from 'styled-components'
import { light, dark } from '@pancakeswap-libs/uikit'
...
<ThemeProvider theme={isDark}>...</ThemeProvider>
```

### Reset

A reset CSS is available as a global styled component.

```
import { ResetCSS } from '@pancakeswap-libs/uikit'
...
<ResetCSS />
```

### Types

This project is built with Typescript and export all the relevant types.

## How to use the UIkit

If you want to use components from the UIkit, check the [Storybook documentation](https://pancakeswap.github.io/pancake-uikit/)
npm package: @swensson/ejspdf
Description: Small util to convert ejs templates to pdf
Author: swensson
Latest version: 1.0.1

# ejspdf

### Explanation

Let the code speak for itself.

```js
const ejspdf = require('@swensson/ejspdf');

// This method will start an express server and
// insert params inside ejs template. It will look
// for index.ejs inside template folder and load it
// all the features (includes, img src tags, etc)
// work fine.
const pdf_file_content = await ejspdf.ejs('path/to/template/folder', 8001, {
  ...params
});

// This method will convert raw html content into pdf
// no template features included, no images import
const pdf_file_content = await ejspdf.raw('htmlstring');

// This method will convert html file into pdf,
// but you won't be able to update it's content
const pdf_file_content = await ejspdf.file('path/to/html/file');

```
npm package: @sweny-ai/engine
Description: Workflow engine for SWEny — composable DAG-based agentic workflows
Latest version: 6.0.0

# @sweny-ai/engine

Workflow engine for SWEny -- orchestrates **Learn -> Act -> Report** pipelines with pluggable providers.

## Install

```bash
npm install @sweny-ai/engine @sweny-ai/providers
```

## Quick Example

```typescript
import { runWorkflow, createProviderRegistry } from "@sweny-ai/engine";
import { datadog } from "@sweny-ai/providers/observability";
import { linear } from "@sweny-ai/providers/issue-tracking";
import { github } from "@sweny-ai/providers/source-control";
import { slackWebhook } from "@sweny-ai/providers/notification";
import { claudeCode } from "@sweny-ai/providers/coding-agent";

// 1. Register providers
const providers = createProviderRegistry();
providers.set("observability", datadog({ apiKey, appKey }));
providers.set("issueTracker", linear({ apiKey }));
providers.set("sourceControl", github({ token, owner, repo }));
providers.set("notification", slackWebhook({ webhookUrl }));
providers.set("codingAgent", claudeCode({}));

// 2. Run a recipe
import { triageWorkflow } from "@sweny-ai/engine";

const result = await runWorkflow(triageWorkflow, triageConfig, providers);
console.log(result.status); // "completed" | "failed" | "partial"
```

## Concepts

**Workflow** -- A pipeline of steps organized into three phases: Learn, Act, Report.

**Step** -- A single unit of work (e.g., "query logs", "create issue", "send notification").

**Recipe** -- A pre-built workflow. SWEny Triage is the first recipe.

**ProviderRegistry** -- A type-safe container for pluggable service integrations.

## Built-in Recipes

| Recipe | Description |
|--------|-------------|
| **Triage** | Monitor observability logs -> investigate with AI -> create tickets -> open fix PRs -> notify |

## Creating a Custom Workflow

```typescript
import type { Workflow } from "@sweny-ai/engine";

const myWorkflow: Workflow<MyConfig> = {
  name: "my-workflow",
  phases: {
    learn: [
      { name: "fetch-data", phase: "learn", run: fetchData },
    ],
    act: [
      { name: "process", phase: "act", run: processData },
    ],
    report: [
      { name: "notify", phase: "report", run: sendReport },
    ],
  },
};
```

## License

[MIT](../../LICENSE)
npm package: @sweny-ai/mcp
Description: MCP server exposing SWEny workflows to Claude Code and Claude Desktop
Latest version: 0.1.2

# @sweny-ai/mcp

MCP server that exposes SWEny workflows to Claude Code and Claude Desktop.

## What it does

This package runs as a [Model Context Protocol](https://modelcontextprotocol.io/) server over stdio, giving Claude two tools:

| Tool | Description |
|------|-------------|
| `sweny_list_workflows` | List built-in and custom workflows in the current project |
| `sweny_run_workflow` | Execute a triage or implement workflow and return structured results |

This lets Claude Code delegate complex multi-step tasks to SWEny's DAG executor, which manages context boundaries across nodes — something a single conversation context can't do well.

## Setup

### Claude Code

Add to your project's `.claude/settings.json`:

```json
{
  "mcpServers": {
    "sweny": {
      "command": "npx",
      "args": ["-y", "@sweny-ai/mcp"]
    }
  }
}
```

### Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "sweny": {
      "command": "npx",
      "args": ["-y", "@sweny-ai/mcp"]
    }
  }
}
```

## Prerequisites

- A `.sweny.yml` config file in the working directory (run `sweny init` to create one)
- Credentials for your configured providers (set via environment variables or `.env`)
- `@sweny-ai/core` installed (provides the `sweny` CLI binary)

## Tools

### `sweny_list_workflows`

Lists available workflows. Returns built-in workflows (triage, implement, seed-content) and any custom workflows found in `.sweny/workflows/*.yml`.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `cwd` | string | no | Working directory to search. Defaults to `process.cwd()`. |

### `sweny_run_workflow`

Executes a SWEny workflow by spawning the `sweny` CLI. Returns structured JSON results on completion.

**Parameters:**

| Name | Type | Required | Description |
|------|------|----------|-------------|
| `workflow` | `"triage"` \| `"implement"` | yes | Which workflow to run |
| `input` | string | for implement | Issue ID or URL (required for implement, ignored for triage) |
| `cwd` | string | no | Working directory containing `.sweny.yml` |
| `dryRun` | boolean | no | Skip side effects (no issues/PRs created) |

**Notes:**
- Triage discovers alerts automatically via your configured observability provider
- Implement requires an issue ID from your configured issue tracker
- Workflows can take several minutes to complete
- A 10-minute timeout kills hanging processes

## Development

```bash
npm run build      # Compile TypeScript + chmod +x
npm run typecheck  # Type-check without emitting
npm test           # Run all tests
```
npm package: @swer/rrvideo
Description: transform rrweb session into video
Author: yanzhen@smartx.com
Latest version: 1.0.8

# rrvideo

rrvideo 是用于将 [rrweb](https://github.com/rrweb-io/rrweb) 录制的数据转为视频格式的工具。

![Demo Video](./demo/demo.gif)

## 安装 rrvideo

1. 安装 [Node.JS](https://nodejs.org/en/download/)。
2. 执行 `npm i -g rrvideo` 以安装 rrvideo CLI。

## 使用 rrvideo

### 将一份 rrweb 录制的数据（JSON 格式）转换为视频。

```shell
rrvideo --input PATH_TO_YOUR_RRWEB_EVENTS_FILE
```

运行以上命令会在执行文件夹中生成一个 `rrvideo-output.webm` 文件。

### 指定输出路径

```shell
rrvideo --input PATH_TO_YOUR_RRWEB_EVENTS_FILE --output OUTPUT_PATH
```

### 对回放进行配置

通过编写一个 rrvideo 配置文件再传入 rrvideo CLI 的方式可以对回放进行一定的配置。

```shell
rrvideo --input PATH_TO_YOUR_RRWEB_EVENTS_JSON_FILE --config PATH_TO_YOUR_RRVIDEO_CONFIG_FILE
```

rrvideo 配置文件可参考[示例](./rrvideo.config.example.json)。
npm package: @swer/rrweb-snapshot
Description: rrweb's component to take a snapshot of DOM, aka DOM serializer
Author: yanzhen@smartx.com
Latest version: 1.0.8

# rrweb-snapshot

[![Build Status](https://travis-ci.org/rrweb-io/rrweb.svg?branch=master)](https://travis-ci.org/rrweb-io/rrweb) [![Join the chat at slack](https://img.shields.io/badge/slack-@rrweb-teal.svg?logo=slack)](https://join.slack.com/t/rrweb/shared_invite/zt-siwoc6hx-uWay3s2wyG8t5GpZVb8rWg)

Snapshot the DOM into a stateful and serializable data structure.
Also, provide the ability to rebuild the DOM via snapshot.

## API

This module export following methods:

### snapshot

`snapshot` will traverse the DOM and return a stateful and serializable data structure which can represent the current DOM **view**.

There are several things will be done during snapshot:

1. Inline some DOM states into HTML attributes, e.g, HTMLInputElement's value.
2. Turn script tags into `noscript` tags to avoid scripts being executed.
3. Try to inline stylesheets to make sure local stylesheets can be used.
4. Make relative paths in href, src, CSS to be absolute paths.
5. Give an id to each Node, and return the id node map when snapshot finished.

#### rebuild

`rebuild` will build the DOM according to the taken snapshot.

There are several things will be done during rebuild:

1. Add data-rrid attribute if the Node is an Element.
2. Create some extra DOM node like text node to place inline CSS and some states.
3. Add data-extra-child-index attribute if Node has some extra child DOM.

#### serializeNodeWithId

`serializeNodeWithId` can serialize a node into snapshot format with id.

#### buildNodeWithSN

`buildNodeWithSN` will build DOM from serialized node and store serialized information in the `mirror.getMeta(node)`.
npm package: @swernimont/capacitor-jailbreak-root-detection
Description: Jailbreak Root detection plugin for capacitor.
Author: Sean Wernimont
Latest version: 5.0.0-beta2

# @swernimo/capacitor-jailbreak-root-detection

This is a Capacitor 5 fork of [@evehr's](https://github.com/evehr-vn/capacitor-jailbreak-root-detection) Jailbreak Root detection plugin.

## Install

```bash
npm install @swernimo/capacitor-jailbreak-root-detection
npx cap sync
```

## API

<docgen-index>

* [`isJailbrokenOrRooted()`](#isjailbrokenorrooted)
* [`isSimulator()`](#issimulator)
* [`isDebuggedMode()`](#isdebuggedmode)
* [`exitApp()`](#exitapp)
* [Interfaces](#interfaces)

</docgen-index>

<docgen-api>
<!--Update the source file JSDoc comments and rerun docgen to update the docs below-->

### isJailbrokenOrRooted()

```typescript
isJailbrokenOrRooted() => Promise<JailbreakRootResult>
```

**Returns:** <code>Promise&lt;<a href="#jailbreakrootresult">JailbreakRootResult</a>&gt;</code>

--------------------


### isSimulator()

```typescript
isSimulator() => Promise<JailbreakRootResult>
```

**Returns:** <code>Promise&lt;<a href="#jailbreakrootresult">JailbreakRootResult</a>&gt;</code>

--------------------


### isDebuggedMode()

```typescript
isDebuggedMode() => Promise<JailbreakRootResult>
```

**Returns:** <code>Promise&lt;<a href="#jailbreakrootresult">JailbreakRootResult</a>&gt;</code>

--------------------


### exitApp()

```typescript
exitApp() => void
```

--------------------


### Interfaces


#### JailbreakRootResult

| Prop         | Type                 |
| ------------ | -------------------- |
| **`result`** | <code>boolean</code> |

</docgen-api>
npm package: @swert/feather-icons
Description: simply beautiful open source icons as vue functional components.
Author: Swert <packages@swert.ru>
Latest version: 0.0.7

# <img src="./example/src/assets/logo.png" height="100" alt="Swert"> **Feather Icons**
[![NPM version](https://img.shields.io/npm/v/@swert/feather-icons.svg?style=for-the-badge)](https://npmjs.com/package/@swert/feather-icons) [![NPM downloads](https://img.shields.io/npm/dm/@swert/feather-icons.svg?style=for-the-badge)](https://npmjs.com/package/@swert/feather-icons)

## Install

```bash
$ npm install @swert/feather-icons
```

```bash
$ pnpm install @swert/feather-icons
```

```bash
$ yarn add @swert/feather-icons
```

## Usage

```html
<script setup>
// Only import what you need!
import { FeatherIcon, CoffeeIcon, ... } from '@swert/feather-icons'
</script>

<template>
    <FeatherIcon size="1.5x" class="custom-class" />
</template>
```

See all icons and usage here: <https://feathericons.com>

### Sizing

By default, icons will be sized based on the font size of the parent element.

You can set a custom size using the `size` attribute.
For multiple based sizing, pass the desired multiple followed by an `x`.

```html
<FeatherIcon size="1.5x" class="custom-class" />
```

You can also set a `px` size directly by just passing an integer

```html
<FeatherIcon size="25" class="custom-class" />
```

## Tree shaking

By using ES imports like `import { FeatherIcon } from '@swert/feather-icons'` with [webpack + minifier](https://webpack.js.org/guides/tree-shaking/#minify-the-output) or Rollup, unused exports in this module will be automatically eliminated.
npm package: @swervpaydev/react
Description: Official Swervpay Widget for React
Latest version: 0.0.8

<div align="center">
  <a href="https://swervpay.co" target="_blank">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://avatars.githubusercontent.com/u/108650375?s=200&v=4">
    <img src="https://avatars.githubusercontent.com/u/108650375?s=200&v=4" width="60" alt="Logo"/>
  </picture>
  </a>
</div>

<h1 align="center">Official Swervpay Widget for React</h1>

<p align="center">
    <br />
    <a href="https://docs.swervpay.co" rel="dofollow"><strong>Explore the docs »</strong></a>
    <br />
 </p>
  
<p align="center">  
    <a href="https://twitter.com/swyftpay_io">X (Twitter)</a>
    ·
    <a href="https://www.linkedin.com/company/swervltd">Linkedin</a>
    ·
    <a href="https://docs.swervpay.co/changelog">Changelog</a>
</p>

### Documentation

See [docs for React here](https://docs.swervpay.co/sdks/react)

### Installation

Install [swervpay-react](https://www.npmjs.com/package/@swervpaydev/react) sdk into your new or existing React/NextJS/Remix/Astro/Svelte application using any of your favorite package manager.

```bash Shell
$ npm install @swervpaydev/react
$ yarn add @swervpaydev/react
$ pnpm add @swervpaydev/react
$ bun install @swervpaydev/react
```
npm package: @swervpaydev/sdk
Description: Official Swervpay Node.JS SDK
Latest version: 0.0.31

<div align="center">
  <a href="https://swervpay.co" target="_blank">
  <picture>
    <source media="(prefers-color-scheme: dark)" srcset="https://avatars.githubusercontent.com/u/108650375?s=200&v=4">
    <img src="https://avatars.githubusercontent.com/u/108650375?s=200&v=4" width="60" alt="Logo"/>
  </picture>
  </a>
</div>

<h1 align="center">NodeJS Client for Swervpay</h1>

<p align="center">
    <br />
    <a href="https://docs.swervpay.co" rel="dofollow"><strong>Explore the docs »</strong></a>
    <br />
 </p>
  
<p align="center">  
    <a href="https://twitter.com/swyftpay_io">X (Twitter)</a>
    ·
    <a href="https://www.linkedin.com/company/swervltd">Linkedin</a>
    ·
    <a href="https://docs.swervpay.co/changelog">Changelog</a>
</p>

### Documentation

See [docs for NodeJS here](https://docs.swervpay.co/sdks/nodejs)

### Installation

Install [swervpay-node](https://www.npmjs.com/package/@swervpaydev/sdk) sdk into your new or existing NodeJS application using any of your favorite package manager.

```bash Shell
$ npm install @swervpaydev/sdk
$ yarn add @swervpaydev/sdk
$ pnpm add @swervpaydev/sdk
$ bun install @swervpaydev/sdk
```

### Usage

```javascript NodeJS
const swervpay = require("@swervpaydev/sdk");

const config = {
  secretKey: "<SECRET_KEY>",
  businessId: "<BUSINESS_ID>",
  sandbox: false,
};

const swervpay = new swervpay.SwervpayClient(config);

// Set token manually
swervpay.client.setAccessToken(token)

// Get access token
const token = swervpay.client.getAccessToken

// Create a new customer
const customer = await swervpay.customer.create({
  firstname: req.body.first_name,
  lastname: req.body.last_name,
  email: req.body.email,
  middlename: "",
  country: req.body.country,
});

// Create a new card
const card = await swervpay.card.create({
  amount: req.body.amount,
  currency: req.body.currency,
  customer_id: req.body.customer_id,
  type: req.body.type as "LITE" | "DEFAULT" | "COOPERATE",
  issuer: req.body.issuer as "MASTERCARD" | "VISA",
  name_on_card: req.body.name_on_card
});

// Create a new payout
const payout = await swervpay.payout.create({
  amount: req.body.amount,
  currency: req.body.currency,
  bank_code: req.body.bank_code,
  account_number: req.body.account_number,
  naration: req.body.narration,
  email: req.body.email,
  reference: req.body.reference,
});
```

Here, we initialize the Swervpay client with our secret key and business id. Then we create a new customer, card and payout.

See more [examples](https://github.com/Swerv-Ltd/swervpay-node/tree/main/examples)
npm package: @swet/cli
Description: @swet/cli
Author: KCFE
Latest version: 0.1.2

# @swet/cli

swet cli

## 快速开始

1、项目下安装 `@swet/cli` 工具包

```bash
# 选择一个你喜欢的包管理器

# npm
$ npm i @swet/cli -D

# pnpm
$ pnpm i @swet/cli -D

# yarn
$ yarn add @swet/cli -D
```

2、package.json 下准备脚本命令

```json
 "scripts": {
     "swet": "swet co",
 }
```

3、项目下运行 `npm run swet` 命令，按照提示继续即可

## 配置项

```ts
interface SwetCliConfig {
  /**
   * 接口文档地址列表，可以是远程路径也可以是本地路径
   */
  sources: string[]
  /**
   * 生成代码的存放路径，使用相对路径即可；
   * 默认值：src/apis
   */
  outDir?: string
  /**
   * 生成代码的语言模版
   * 默认值：判段项目目录下是否有 tsconfig.json || tsconfig.base.json
   */
  language?: 'js' | 'ts'
  /**
   * 数据源名称，多数据源的通过制度数据源名称便于区分选择；
   * 默认值：数据源+index
   */
  name?: string
  /**
   * 参数是否可选生成规则
   * 默认值：pureInfer
   */
  parameterMode?: 'strict' | 'loose' | 'strictInfer' | 'looseInfer' | 'pureInfer'
  /**
   * 自定义生成类型名称前缀
   * eg: Props => IProps
   */
  interfacePrefix?: string
  /**
   * prettier 代码格式化配置项
   * 默认值：['.prettierrc', 'prettier.config.js', '.prettierrc.js']读取项目下第首先读取到的配置文件
   */
  prettierConfig?: Record<string, any>
  /**
   * 自定义获取文档的方法或补充 headers 信息
   */
  fetcher?: Record<string, any> | (() => Document)
  /**
   * 对 service 默认模版自定义拓展
   */
  transfromService?: (info: ServiceInfomation) => {
    /** 自定义生成方法名 */
    name?: string
    /** 添加 headers */
    headers?: Record<string, any>
    /** 添加统一的路径前缀 */
    baseUrl?: string
  }
  /**
   * 对 controller 文件进行自定义拓展
   */
  transformController?: (controllerName: string) => {
    /** 添加在 controller file 头部代码 */
    leadingCode?: string
    /** 添加在 controller file 尾部代码 */
    trailingCode?: string
    /**
     * 自定义 controller file name
     * 默认值：controllerName
     */
    fileName?: string
  }
  /**
   * 数据代理能力配置
   */
  mocks?: {
    /** mock 数据存放目录，不指定则不会生成 mock 数据 */
    output?: string
    /** 需要转发的接口统一前缀 */
    forwardUrl?: string
    /** proxy 代理配置项，详情可见 http-proxy-middleware */
    httpProxy?: Options
    /** 代理过滤规则 */
    filterProxy?: (req: Request) => boolean
    /** 自定义转换 mock 数据，可用于补充特征值 */
    transformer?: (data: any, serviceInfo: ServiceInformation) => string
  }
  /**
   * 数据格式转换适配器
   * 默认值：根据文档关键信息自动选择已经默认集成的适配器
   */
  Adapter?: typeof Adapter
  /**
   * 代码模版生成器
   * 可以通过复写方法自定义代码模版
   */
  CodeGenerator?: typeof CodeGenerator
}
```
npm package: @swet/parser
Description: @swet/parser
Author: KCFE
Latest version: 0.1.2

# @swet/parser

swet parser

## 快速开始

### 1. 安装

```bash
$ npm i @swet/parser
// or
$ yarn add @swet/parser
// or
$ pnpm add @swet/parser
```

### 2. 使用

```ts
import { SwetParser } from '@swet/parser'
```

## API

## 开发

```bash
$ pnpm dev --filter @swet/parser
// or
$ pnpm -F '@swet/parser' dev
```

## 发布

### 1. [语义化提交 Commit](https://www.conventionalcommits.org/en/v1.0.0/#summary)

```bash
$ git commit -m 'feat(parser): add some feature'
$ git commit -m 'fix(parser): fix some bug'
```

### 2. 编译（可选）

```bash
$ pnpm build --filter @swet/parser
// or
$ pnpm -F '@swet/parser' build
```

### 3. 执行发包命令

```bash
$ pnpm release

Options:
  --skipTests skip package test
  --skipBuild skip package build
```