open-index/open-npm huggingface dataset:
npm package: @iwanabethatguy/axios
Description: #### Description {**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}
Author: IWANABETHATGUY
Latest version: 0.0.1

# ts-axios

#### Description
{**When you're done, you can delete the content in this README and update the file with details for others getting started with your repository**}

#### Software Architecture
Software architecture description

#### Installation

1. xxxx
2. xxxx
3. xxxx

#### Instructions

1. xxxx
2. xxxx
3. xxxx

#### Contribution

1. Fork the repository
2. Create Feat_xxx branch
3. Commit your code
4. Create Pull Request


#### Gitee Feature

1. You can use Readme\_XXX.md to support different languages, such as Readme\_en.md, Readme\_zh.md
2. Gitee blog [blog.gitee.com](https://blog.gitee.com)
3. Explore open source project [https://gitee.com/explore](https://gitee.com/explore)
4. The most valuable open source project [GVP](https://gitee.com/gvp)
5. The manual of Gitee [https://gitee.com/help](https://gitee.com/help)
6. The most popular members  [https://gitee.com/gitee-stars/](https://gitee.com/gitee-stars/)
npm package: @iwanglang/observation-visual-acuity
Description: Observation Visual Acuity
Latest version: 0.0.17

# IWangLang: Observation Visual Acuity

## 🚀 Quick Start

Install:

```bash
# npm
npm i @iwanglang/observation-visual-acuity

# yarn
yarn add @iwanglang/observation-visual-acuity

```

Import:

```js
// ESM / Typescript
import { ObservationVisualAcuity } from "@iwanglang/observation-visual-acuity";

// CommonJS
const {
  ObservationVisualAcuity,
} = require("@iwanglang/observation-visual-acuity");
```

## 🥸 Get Snellen Scale for create Chart

```typescript
import { ObservationVisualAcuity } from "@iwanglang/observation-visual-acuity";

const visualAcuity = new ObservationVisualAcuity();
const snellenChartScaleFoot = visualAcuity.getSnellenChartScales("foot");
const snellenChartScaleMetre = visualAcuity.getSnellenChartScales("metre");

console.log(snellenChartScaleFoot[0]);
// { "display": "20/200", "numerator": 20, "denominator": 200, "LogMAR": 1.00 }

console.log(snellenChartScaleMetre[0]);
// { "display": "6/60", "numerator": 6, "denominator": 60, "LogMAR": 1.00 }
```

use `getSnellenChartScales` function to get list of snellen scales for prepare data of Visual Acuity that will save into server

### Example for Snellen Chart

|  Foot   | Metre | LogMAR |
| :-----: | :---: | :----: |
| 20/200  | 6/60  |  1.00  |
| 20/160  | 6/48  |  0.90  |
| 20/125  | 6/38  |  0.80  |
| 20/100  | 6/30  |  0.70  |
|  20/80  | 6/24  |  0.60  |
|  20/63  | 6/18  |  0.50  |
|  20/50  | 6/15  |  0.40  |
|  20/40  | 6/12  |  0.30  |
|  20/32  | 6/9.5 |  0.20  |
|  20/25  | 6/7.5 |  0.10  |
|  20/20  |  6/6  |  0.00  |
|  20/16  | 6/4.8 | −0.10  |
| 20/12.5 | 6/3.8 | −0.20  |
|  20/10  |  6/3  | −0.30  |

## 🥸 Convert Snellen to LogMAR

```typescript
import { ObservationVisualAcuity } from "@iwanglang/observation-visual-acuity";

const visualAcuity = new ObservationVisualAcuity();
const snellenChartScaleMetre = visualAcuity.getSnellenChartScales("metre");

console.log(snellenChartScaleMetre[0]);
// { "display": "6/60", "numerator": 6, "denominator": 60, "LogMAR": 1.00 }

// LogMAR VA = 0.1 + LogMAR value of the best line read – 0.02 X (number of optotypes read)
// default optotypesRead is -2
console.log(`LogMAR is ${visualAcuity.convertSnellenToLogMAR(snellenChartScaleMetre[0].numerator, snellenChartScaleMetre[0].denominator)}`);
// LogMAR is 1
```

## 🥸 Create Visual Acuity to Fhir Server

```typescript
import { ObservationVisualAcuity, SnomedCodeBodySite } from "@iwanglang/observation-visual-acuity";

const visualAcuity = new ObservationVisualAcuity('https://hapi.fhir.org/baseR4');

// Set Authorization for Fhir Server that require authentication
visualAcuity.setToken('Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5c');

// Create VisualAcuity value 0.60 LogMAR with bodySite left eye structure to Fhir Server
visualAcuity.createLogMARVisualAcuity('Patient/1', SnomedCodeBodySite.LeftEyeStructure, 0.60);
```
npm package: @iwanglang/patient-fhir-helper
Description: Patient Fhir Helper
Latest version: 0.0.15

# IWangLang: Patient Fhir Helper

## 🚀 Quick Start

Install:

```bash
# npm
npm i @iwanglang/patient-fhir-helper

# yarn
yarn add @iwanglang/patient-fhir-helper
```

Import:

```js
// ESM / Typescript
import { PatientFhirHelper } from "@iwanglang/patient-fhir-helper";

// CommonJS
const { PatientFhirHelper } = require("@iwanglang/patient-fhir-helper");
```

## 🥸 How it work?

The `PatientFhirHelper` class is used to search for patients in Fhir Server using `business identifier` and convert it into an interface `PatientNormalization`. So if you want to get patient information and don't know about fhir, let's call functionnn

```mermaid
sequenceDiagram
    patientFhirHelper->>FhirServer: search by business identifier
    FhirServer->>patientFhirHelper: Response Patient Resource
    patientFhirHelper-)PatientNormalization: Convert to interface
```

## 🥸 Get Patient Information by Identifier

```typescript
import { PatientFhirHelper } from "@iwanglang/patient-fhir-helper";

async function bootstrap() {
  const patientFhirHelper = new PatientFhirHelper("http://hapi.fhir.org/baseR4");

  const patient = await patientFhirHelper.findPatientByIdentifier("12345");

  console.log(patient);
  /**
   * {
    id: "1174249",
    patientReference: "Patient/1174249",
    identifier: [
      {
        use: "usual",
        type: [Object ...],
        system: "urn:oid:1.2.3.4.5",
        value: "89765a87b",
      }
    ],
    deceasedBoolean: false,
    hospitalNumber: "89765a87b",
    name: "-",
    gender: "male",
    birthdate: "1967-10-02",
    remainingAge: "56ปี 6เดือน 9วัน",
    remainingAgeYears: 56,
    remainingAgeMonths: 6,
    remainingAgeDays: 9,
    photo: undefined,
  }
  */
}

bootstrap();
```

## 🥸 Patient Information Interface

The `findPatientByIdentifier()` function returns a `PatientNormalization` object.

| element | type | description |
|---|---|---|
| id | string | The patient's unique identifier in the FHIR server. |
| patientReference | string | The patient's reference in the FHIR server. |
| identifier | Identifier[] | The patient's identifier. |
| deceasedBoolean | boolean | The patient's deceased status. |
| hospitalNumber | string \| null | The patient's hospital number, or `null` if not found. |
| name | string | The patient's name. |
| gender | ('male'\|'female'\|'other'\|'unknown') | The patient's gender. |
| birthdate | string \| null | The patient's birthdate, or `null` if not found. |
| remainingAge | string \| null | The patient's remainingAge, or `null` if not found. |
| remainingAgeYears | number \| null | The patient's remainingAgeYears, or `null` if not found. |
| remainingAgeMonths | number \| null | The patient's remainingAgeMonths, or `null` if not found. |
| remainingAgeDays | number \| null | The patient's remainingAgeDays, or `null` if not found. |
| photo | string \| undefined | The patient's photo, or `undefined` if not found. |
npm package: @iwano/draft-js-mention-plugin
Description: Mention Plugin for DraftJS
Author: Nik Graf
Latest version: 2.0.0-beta5.1

# DraftJS Mention Plugin

*This is a plugin for the `draft-js-plugins-editor`.*

This plugin allows you to add mentions to your editor!

Usage:

```js
import createMentionPlugin from 'draft-js-mention-plugin';

const mentionPlugin = createMentionPlugin({ mentions });
```

## Importing the default styles

The plugin ships with a default styling available at this location in the installed package:
`node_modules/draft-js-mention-plugin/lib/plugin.css`.

### Webpack Usage
Follow the steps below to import the css file by using Webpack's `style-loader` and `css-loader`.

1. Install Webpack loaders: `npm install style-loader css-loader --save-dev`
2. Add the below section to Webpack config (if your Webpack already has loaders array, simply add the below loader object(`{test:foo, loaders:bar[]}`) as an item in the array).

    ```js
    module: {
      loaders: [{
        test: /\.css$/,
        loaders: [
          'style', 'css'
        ]
      }]
    }
    ```

3. Add the below import line to your component to tell Webpack to inject style to your component.

    ```js
    import 'draft-js-mention-plugin/lib/plugin.css';
    ```
4. Restart Webpack.

### Browserify Usage

TODO: PR welcome
npm package: @iwantegren/compact-payload
Description: A TypeScript utility for serializing and deserializing structured payloads into compact string format.
Author: Ivan Bilan
Latest version: 1.0.4

# compact-payload

A TypeScript utility for serializing and deserializing structured payloads into compact string format.

## Usage

```typescript
import { PayloadHandler, PayloadSchema } from "compact-payload";

// Define your schema with proper TypeScript typing
const Schema = {
  KEY_1: {
    key: "key1",
    payload: {
      payloadNum: "number",
      payloadStr: "string",
      payloadBool: "boolean",
      payloadNullNum: "number | null",
    },
  },
} as const satisfies PayloadSchema; // ⚠️ IMPORTANT: Use 'as const satisfies PayloadSchema'

// Create handler instance
const payloadHelper = new PayloadHandler<typeof Schema>();

// Serialize payload to string
const payload = {
  payloadNum: 1,
  payloadStr: "str",
  payloadBool: true,
  payloadNullNum: null,
};
const encoded = payloadHelper.stringify(Schema.KEY_1, payload);
// Result: "key1|1|str|t|null"

// Parse string back to payload
const decoded = payloadHelper.parse(Schema.KEY_1, encoded);
// Result: { key: "key1", payloadNum: 1, payloadStr: "str", payloadBool: true, payloadNullNum: null }
```

## ⚠️ Important TypeScript Usage

**Always use `as const satisfies PayloadSchema` instead of `const Schema: PayloadSchema`:**

```typescript
// ✅ Correct - preserves exact types for compile-time checks
const Schema = { ... } as const satisfies PayloadSchema;

// ❌ Wrong - widens types, compile-time checks won't work
const Schema: PayloadSchema = { ... };
```

Using `as const satisfies PayloadSchema` ensures full type safety and compile-time validation of your payload structure.

## Supported Types

- `"number"` - numeric values
- `"string"` - string values
- `"boolean"` - boolean values (serialized as "t"/"f")
- `"number | null"` - nullable numbers

## API

- `new PayloadHandler(delimiter?: string)` - Create handler with custom delimiter (default: "|")
- `stringify(entry, payload)` - Serialize payload to string
- `parse(entry, payloadString)` - Parse string back to payload
- `parseKey(payloadString)` - Extract key from serialized payload
npm package: @iwantpizza/simple-checksum-code-generator
Description: An NPM package for generating and verifying simple, checksummed codes - for use as quickly verifiable coupon codes or similar.
Author: Hasan Ali
Latest version: 1.0.2

# Simple Checksum Code Generator

Generate and verify simple codes such as `QZYZTHG`.
It should go without saying that is easily crackable
 and should not be used for secure applications. The
  last character of the code is a checksum function of
   the first characters. The idea is that if any of 
   these characters are typoed, it can quickly be
    detected by the code verifier.

# Installation
```bash
npm install @iwantpizza/simple-checksum-code-generator --save
```
 
# Usage
The available configuration options are as follows:

| Key      | Value                        | Description                                                                                                                                                                  |
|----------|------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| alphabet | 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' | The possible characters that a generated code can contain.                                                                                                                   |
| length   | 8                            | The length of generated codes.                                                                                                                                               |
| salt     | 12                           | A salt for the checksum function. Note that for an alphabet of length 26, the salt 12 would have the same effect as the salt of 12 + (26*n) where n is any positive integer. |

To change any of the available options, set them on the `codeOptions` object, for example:

```typescript
import {CodeGenerator, CodeOptions, CodeVerifier} from '@iwantpizza/simple-checksum-code-generator/lib';

const codeOptions = new CodeOptions();
codeOptions.alphabet = 'ABCD';
const codeVerifier = new CodeVerifier(codeOptions);
```

## Typescript
```typescript
import {CodeGenerator, CodeOptions, CodeVerifier} from '@iwantpizza/simple-checksum-code-generator/lib';

const codeOptions = new CodeOptions();
const codeVerifier = new CodeVerifier(codeOptions);
const codeGenerator = new CodeGenerator(codeOptions);

// generate a code
codeGenerator.generate();

// check a code
codeVerifier.verify('ABC123');
```

## Javascript
```javascript
const simpleChecksumCodeGenerator = require("@iwantpizza/simple-checksum-code-generator/lib");
const codeOptions = new simpleChecksumCodeGenerator.CodeOptions();
const codeGenerator = new simpleChecksumCodeGenerator.CodeGenerator(codeOptions);
const codeVerifier = new simpleChecksumCodeGenerator.CodeVerifier(codeOptions);

// generate a code
codeGenerator.generate();

// check a code
codeVerifier.verify('ABC123');
```
npm package: @iwanwang/sdk
Description: 🛠 An SDK for building applications on top of Kobeswap.
Latest version: 0.0.1

# Kobeswap SDK

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

This modifies uniswap-sdk's UniswapV2Factory address. The new address for kobeswap is  `0x4Da45E0B80d15d1902E69Dc311AfCE75702Ab8C9`.

## Running tests

To run the tests, follow these steps. You must have at least node v10 and [yarn](https://yarnpkg.com/) installed.

First clone the repository:

```sh
git clone https://github.com/Iwan-lab/kobeswap-sdk.git
```

Move into the kobeswap-sdk working directory

```sh
cd kobeswap-sdk/
```

Install dependencies

```sh
yarn install
```

Run tests

```sh
yarn test
```

You should see output like the following:

```sh
yarn run v1.22.4
$ tsdx test
 PASS  test/constants.test.ts
 PASS  test/pair.test.ts
 PASS  test/fraction.test.ts
 PASS  test/miscellaneous.test.ts
 PASS  test/entities.test.ts
 PASS  test/trade.test.ts

Test Suites: 1 skipped, 6 passed, 6 of 7 total
Tests:       3 skipped, 82 passed, 85 total
Snapshots:   0 total
Time:        5.091s
Ran all test suites.
✨  Done in 6.61s.
```
npm package: @iwatakeshi/astronaut
Description: This is a template for an Astro component library. Use this template for writing components to use in multiple projects or publish to NPM.
Latest version: 0.0.12

# Astro Starter Kit: Component Package

This is a template for an Astro component library. Use this template for writing components to use in multiple projects or publish to NPM.

```sh
npm create astro@latest -- --template component
```

[![Open in StackBlitz](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/github/withastro/astro/tree/latest/examples/non-html-pages)
[![Open with CodeSandbox](https://assets.codesandbox.io/github/button-edit-lime.svg)](https://codesandbox.io/p/sandbox/github/withastro/astro/tree/latest/examples/non-html-pages)
[![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/withastro/astro?devcontainer_path=.devcontainer/component/devcontainer.json)

## 🚀 Project Structure

Inside of your Astro project, you'll see the following folders and files:

```text
/
├── index.ts
├── src
│   └── MyComponent.astro
├── tsconfig.json
├── package.json
```

The `index.ts` file is the "entry point" for your package. Export your components in `index.ts` to make them importable from your package.

## 🧞 Commands

All commands are run from the root of the project, from a terminal:

| Command       | Action                                                                                                                                                                                                                           |
| :------------ | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `npm link`    | Registers this package locally. Run `npm link my-component-library` in an Astro project to install your components                                                                                                               |
| `npm publish` | [Publishes](https://docs.npmjs.com/creating-and-publishing-unscoped-public-packages#publishing-unscoped-public-packages) this package to NPM. Requires you to be [logged in](https://docs.npmjs.com/cli/v8/commands/npm-adduser) |
npm package: @iwatakeshi/aws-lambda-appsync
Description: Utilities to simplify GraphQL operations in a lambda function for Appsync
Author: Takeshi Iwana
Latest version: 0.0.7

# aws-lambda-appsync
Utilities to simplify GraphQL operations in a Lambda function for Appsync

Currently, there are two ways provided that will allow you to use AppSync in a Lambda function.

The implementations are based on two blog posts:

* [Using Cognito User Pool](https://blog.floom.app/post/aws-appsync-with-lambda)
* [Using IAM](https://docs.aws.amazon.com/appsync/latest/devguide/building-a-client-app-node.html)


**Note**:

There will be tests that need to be done. However, this library simply wraps existing libraries to reduce the boilerplate required to perform GraphQL operations. Thus, please use this library with caution if you plan to use in production (until I can get the tests done).

## Usage

```bash
# Yarn
yarn add @iwatakeshi/aws-lambda-appsync

# NPM
npm install --save @iwatakeshi/aws-lambda-appsync
```


```ts
import { createIAMAppSyncClient, createCognitoUserPoolAppSyncClient } from '@iwatakeshi/aws-lambda-appsync'

// Create a client using IAM
const client = createIAMAppSyncClient({
  url: '...',
  region: process.env.REGION,
  credentials: {
    accessKeyId: process.env.ACCESS_KEY_ID,
    secretAccessKey: process.env.SECRET_ACCESS_KEY
  }
})

// Create a client using Cognito User Pool
const client = createCognitoUserPoolAppSyncClient({
  url: '...',
  region: process.env.REGION,
  clientId: process.env.CLIENT_ID,
  userPoolId: process.env.USER_POOL_ID,
  authParameters: {
    username: process.env.ADMIN_USERNAME,
    password: process.env.ADMIN_PASSWORD
  },
  auth: {
    // Optional, but can be overridden,
    jwtToken: (provider, options) => {
      let credentials, expired = new Date('01-01-1970')
      return async () => {
        // Check if we already have credentials or if credentials are expired
        if (!credentials || expired < new Date()) {
          // Get new credentials (import 'getCredentials' from @iwatakeshi/aws-lambda-appsync/lib/utils/cognito)
          credentials = await getCredentials(provider, options)
         // ...
        }

        return credentials?.AuthenticationResult?.IdToken
      }
    }
  }
})

```
npm package: @iwatakeshi/babel-plugin-remove-import-styles
Description: Removes imported styles using import or require
Author: iwatakeshi
Latest version: 1.0.5

## babel-plugin-remove-import-styles

[![Node CI](https://github.com/iwatakeshi/babel-plugin-remove-import-styles/workflows/Node.js%20CI/badge.svg)](https://github.com/iwatakeshi/babel-plugin-remove-import-styles/actions?query=workflow%3A%22Node.js+CI%22)
![Codecov](https://img.shields.io/codecov/c/github/iwatakeshi/babel-plugin-remove-import-styles)
[![Version](https://img.shields.io/npm/v/@iwatakeshi/babel-plugin-remove-import-styles.svg)](https://www.npmjs.com/package/@iwatakeshi/babel-plugin-remove-import-styles)
[![Downloads/week](https://img.shields.io/npm/dw/@iwatakeshi/babel-plugin-remove-import-styles.svg)](https://www.npmjs.com/package/@iwatakeshi/babel-plugin-remove-import-styles)
[![License](https://img.shields.io/github/license/iwatakeshi/babel-plugin-remove-import-styles)](https://github.com/iwatakeshi/babel-plugin-remove-import-styles/blob/master/LICENSE.md)

Forked from [babel-plugin-transform-require](https://github.com/morlay/babel-plugin-transform-require-ignore), this plugin was re-written using Typescript. It's purpose it to remove styles that were imported using `import` or `require` statements.

## Usage

```js
{
  "env": {
    "production": {
      "plugins": [
        [
          "@iwatakeshi/babel-plugin-remove-import-styles",
          {
            "extensions": [".less", ".sass", ".css"]
          }
        ]
      ]
    }
  }
}

```

## Recipes

### Next.js

This plugin can be used in conjunction with [next-transpile-modules](https://github.com/martpie/next-transpile-modules#readme) to remove styles from third-party modules.

To do so, you'll need to configure a `babel.config.js` file (note that `.babelrc` would not work &mdash; in my case it did not):

```js
module.exports = {
  presets: ['next/babel'],
  overrides: [
    {
      include: ['./node_modules'],
      plugins: [
        [
          '@iwatakeshi/babel-plugin-remove-import-styles',
          {
            extensions: ['.css']
          },
        ],
      ],
    },
  ],
}
```

Then you'll need to add a `next.config.js` file that uses `next-transpile-modules` and add the list of third-party modules that import styles in their library: 

```js
const withTM = require('next-transpile-modules')(['@fullcalendar']) // In my case, it was fullcalendar

module.exports = withTM({
  // any other general next.js settings
})

```
npm package: @iwatakeshi/chakra-next
Description: A set of components to integrate with Chakra UI and Next.js
Author: Takeshi
Latest version: 1.2.0

# chakra-next

A set of components to integrate with Chakra UI and Next.js

## Usage

### Installation

```bash
npm add @iwatakeshi/chakra-next
```

### Components

> Note: All components will automatically wrap Chakra UI's components with Next's `Link` when `href` is a relative url.

#### Link

```tsx
import { Link } from "@iwatakeshi/chakra-next";

<Link href="/about" />;
// => <NextLink href="/about" passHref><Link /></NextLink>
```

#### Button

```tsx
import { Button } from "@iwatakeshi/chakra-next";

<Button href="/about" />;
// => <NextLink href="/about" passHref><Button as="a" /></NextLink>
```

### IconButton

```tsx
import { IconButton } from "@iwatakeshi/chakra-next";

<IconButton href="/about" />;
// => <NextLink href="/about" passHref><IconButton as="a" /></NextLink>
```

### Image

```tsx
import { Image } from "@iwatakeshi/chakra-next";

<Image src="..." />;
```
npm package: @iwatakeshi/chakra-prose
Description: A prose component for Chakra UI
Author: Takeshi
Latest version: 0.0.2

# chakra-prose

A prose component for Chakra UI

This library is a modified version of [chakra-ui-prose](https://github.com/nikolovlazar/chakra-ui-prose).

## Usage

yarn

```bash
yarn add @iwatakeshi/chakra-prose
```

npm

```bash
npm add @iwatakeshi/chakra-prose
```

Add prose to your theme configuration:

```tsx
import { withProse } from "@iwatakeshi/chakra-prose";
import { extendTheme } from "@charka-ui/react";

const theme = extendTheme({}, withProse());

// ...
```

Use the component:

```tsx
import { Prose } from "@iwatakeshi/chakra-prose";
function Example() {
  return (
    <Prose variant="short">
      <h1>Hello world</h1>
    </Prose>
  );
}
```
npm package: @iwatakeshi/chakra-step
Description: A component to create steps similar to [Studio's steps section](https://studio.com/david-blaine-magic#how-it-works-section).
Author: Takeshi
Latest version: 0.0.4

# chakra-step

A component to create steps similar to [Studio's steps section](https://studio.com/david-blaine-magic#how-it-works-section).

![Step](./screenshot.png)

## Usage

Import the component styles:

```ts
import { components } from "@iwatakeshi/chakra-step"
// ...

// Add to your theme
export const theme = extendTheme({
  components: {
    // ...
    ...components
  }
})
```

Start using the component

```tsx
import { Step, StepItem } from "@iwatakeshi/chakra-step"
import { Box } from "@chakra-ui/react"

// See the Page story in the stories directory for a complete example
export default function App() {
  return <Step>
    <StepItem step={1}>
     {/* Left */}
     <Box>
       {/* ... */}
     </Box>
     {/* Right */}
     <Box>
     {/* ... */}
     </Box>
    </StepItem>
  </Step>
}
```

### How It Works

The left and right side both have `50vw` applied to their widths. This keeps the line centered between the two sides. If a `Container` component is used to wrap the `Step` component, you will need to change the widths by doing the following:

```tsx
<StepItem 
  step={1} 
  leftProps={{
    w: "30vw" // or any responsive value here
  }}
  rightProps={{
   w: "30vw"
 }} 
>

</StepItem>
```

## Contribution

If you would like to improve this library, feel free to create a pull request.
npm package: @iwater/mdict-ts
Description: mdict (*.mdx, *.mdd) file reader
Author: iwater
Latest version: 1.0.6

## mdict-ts

mdict (*.mdx, *.mdd) file reader
modify to fix error from [mdict-ts](https://github.com/zhangchen915/mdict-ts)
which rewrite form [mdict-js](https://github.com/fengdh/mdict-js)

#### Note:

Because of TextDecoder API , mdict-ts don't support IE and Edge , but you can use polyfill such as `text-encoding`.

#### Installation:

`npm i @iwater/mdict-ts`

#### Usage:

```ts
    import {Mdict} from '@iwater/mdict-ts'
    const mdict = await Mdict.build(file: File)
    
    mdict.getWordList(query, offset?): Promise<Array<{ word: string, offset: number }>>
    mdict.getDefinition(offset): Promise<string> 
```
npm package: @iwater/msedge-tts
Description: An Azure Speech Service module that uses the Microsoft Edge Read Aloud API.
Author: Migushthe2nd
Latest version: 1.3.4

# MsEdgeTTS
[![npm version](https://badge.fury.io/js/msedge-tts.svg)](https://badge.fury.io/js/msedge-tts)

An simple Azure Speech Service module that uses the Microsoft Edge Read Aloud API.

~~Full support for SSML~~ Only supports `speak`, `voice`, and `prosody` element types. The following is the default SSML object:

```xml
<speak version="1.0" xmlns="http://www.w3.org/2001/10/synthesis" xmlns:mstts="https://www.w3.org/2001/mstts"
       xml:lang="${this._voiceLang}">
    <voice name="${voiceName}">
        <prosody rate="${rate}" pitch="${pitch}" volume="${volume}">
            ${input}
        </prosody>
    </voice>
</speak>
```

Documentation on the SSML
format [can be found here](https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/speech-synthesis-markup)
. All supported audio formats [can be found here](./src/OUTPUT_FORMAT.ts).

## Example usage

Make sure to **escape/sanitize** your user's input!
Use a library like [xml-escape](https://www.npmjs.com/package/xml-escape).

### Write to stream

```js
import {MsEdgeTTS, OUTPUT_FORMAT} from "msedge-tts";

const tts = new MsEdgeTTS();
await tts.setMetadata("en-IE-ConnorNeural", OUTPUT_FORMAT.WEBM_24KHZ_16BIT_MONO_OPUS);
const readable = tts.toStream("Hi, how are you?");

readable.on("data", (data) => {
    console.log("DATA RECEIVED", data);
    // raw audio file data
});

readable.on("close", () => {
    console.log("STREAM CLOSED");
});
```

### Write to file

```js
import {MsEdgeTTS, OUTPUT_FORMAT} from "msedge-tts";

(async () => {
    const tts = new MsEdgeTTS();
    await tts.setMetadata("en-US-AriaNeural", OUTPUT_FORMAT.WEBM_24KHZ_16BIT_MONO_OPUS);
    const filePath = await tts.toFile("./example_audio.webm", "Hi, how are you?");  
})();
```

### Change voice rate, pitch and volume
```js
import {MsEdgeTTS, OUTPUT_FORMAT} from "msedge-tts";

(async () => {
    const tts = new MsEdgeTTS();
    await tts.setMetadata("en-US-AriaNeural", OUTPUT_FORMAT.WEBM_24KHZ_16BIT_MONO_OPUS);
    const filePath = await tts.toFile("./example_audio.webm", "Hi, how are you?", {rate: 0.5, pitch: "+200Hz"});
})();
```

### Use an alternative HTTP Agent
Use a custom http.Agent implementation like [https-proxy-agent](https://github.com/TooTallNate/proxy-agents) or [socks-proxy-agent](https://github.com/TooTallNate/proxy-agents/tree/main/packages/socks-proxy-agent).
```js
import {SocksProxyAgent} from 'socks-proxy-agent';

(async () => {
    const agent = new SocksProxyAgent("socks://your-name%40gmail.com:abcdef12345124@br41.nordvpn.com")
    const tts = new MsEdgeTTS(agent);
    await tts.setMetadata("en-US-AriaNeural", OUTPUT_FORMAT.WEBM_24KHZ_16BIT_MONO_OPUS);
    const filePath = await tts.toFile("./example_audio.webm", "Hi, how are you?");
})();
```

## API

For the full documentation check out the [API Documentation](https://migushthe2nd.github.io/MsEdgeTTS).

This library only supports promises.
npm package: @iwater/react-native-destroy
Description: destroy a stream if possible
Author: Jonathan Ong
Latest version: 1.2.0

# destroy

a modified version of destroy module for running in react-native envs

Destroy a stream.

This module is meant to ensure a stream gets destroyed, handling different APIs
and Node.js bugs.

## API

```js
var destroy = require('destroy')
```

### destroy(stream [, suppress])

Destroy the given stream, and optionally suppress any future `error` events.

In most cases, this is identical to a simple `stream.destroy()` call. The rules
are as follows for a given stream:

  1. If the `stream` is an instance of `ReadStream`, then call `stream.destroy()`
     and add a listener to the `open` event to call `stream.close()` if it is
     fired. This is for a Node.js bug that will leak a file descriptor if
     `.destroy()` is called before `open`.
  2. If the `stream` is an instance of a zlib stream, then call `stream.destroy()`
     and close the underlying zlib handle if open, otherwise call `stream.close()`.
     This is for consistency across Node.js versions and a Node.js bug that will
     leak a native zlib handle.
  3. If the `stream` is not an instance of `Stream`, then nothing happens.
  4. If the `stream` has a `.destroy()` method, then call it.

The function returns the `stream` passed in as the argument.

## Example

```js
var destroy = require('destroy')

var fs = require('fs')
var stream = fs.createReadStream('package.json')

// ... and later
destroy(stream)
```