open-index/open-npm huggingface dataset:
npm package: @microlink/cli
Description: Interacting with Microlink API from your terminal.
Author: microlink.io
Latest version: 2.1.52

<div align="center">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/banner/cli.png#gh-light-mode-only" alt="microlink cdn">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/banner/cli-dark.png#gh-dark-mode-only" alt="microlink cdn">
</div>

###### [Website](https://microlink.io/) | [Documentation](https://microlink.io/docs/api/getting-started/overview) | [Playground](https://mql.microlink.io)

## Installation

```
npm install @microlink/cli --global
```

## License

**microlink** © [Microlink](https://microlink.io), released under the [MIT](https://github.com/microlinkhq/cli/blob/master/LICENSE.md) License.<br>
Authored and maintained by [Kiko Beats](https://kikobeats.com) with help from [contributors](https://github.com/microlinkhq/cli/contributors).

> [microlink.io](https://microlink.io) · GitHub [microlinkhq](https://github.com/microlinkhq) · X [@microlinkhq](https://x.com/microlinkhq)
npm package: @microlink/ffprobe
Description: Static binaries for ffprobe
Author: microlink.io
Latest version: 1.1.10

<div align="center">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/logo/banner.png#gh-light-mode-only" alt="microlink logo">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/logo/banner-dark.png#gh-dark-mode-only" alt="microlink logo">
  <br>
  <br>
</div>

![Last version](https://img.shields.io/github/tag/microlinkhq/ffprobe.svg?style=flat-square)
[![Coverage Status](https://img.shields.io/coveralls/microlinkhq/ffprobe.svg?style=flat-square)](https://coveralls.io/github/microlinkhq/ffprobe)
[![NPM Status](https://img.shields.io/npm/dm/@microlink/ffprobe.svg?style=flat-square)](https://www.npmjs.org/@microlink/ffprobe)

> An always up-to-date static `ffprobe` binary for Node.js.

## Install

```bash
$ npm install @microlink/ffprobe --save
```

## Usage

```js
const { path: ffprobePath } = require('@microlink/ffprobe')
const $ = require('tinyspawn')

const { stdout } = await $(ffprobePath, ['--version'])
console.log(stdout)
```

## License

**ffprobe** © [microlink.io](https://microlink.io), released under the [MIT](https://github.com/microlinkhq/ffprobe/blob/master/LICENSE.md) License.<br>
Authored and maintained by [microlink.io](https://microlink.io) with help from [contributors](https://github.com/microlinkhq/ffprobe/contributors).

> [microlink.io](https://microlink.io) · GitHub [microlink.io](https://github.com/microlinkhq) · Twitter [@microlinkhq](https://twitter.com/microlinkhq)
npm package: @microlink/keyv-redis
Description: Redis storage adapter for Keyv
Author: Luke Childs
Latest version: 2.1.3
Deprecated: Use `@keyvhq/keyv-redis` instead.

<div align="center">
  <img src="https://cdn.microlink.io/logo/banner.png"">
</div>

> Redis storage adapter for [Keyv](https://github.com/lukechilds/keyv).

![Last version](https://img.shields.io/github/tag/microlinkhq/keyv-redis.svg?style=flat-square)
[![Build Status](https://img.shields.io/travis/com/microlinkhq/keyv-redis/master.svg?style=flat-square)](https://travis-ci.com/microlinkhq/keyv-redis)
[![Coverage Status](https://img.shields.io/coveralls/microlinkhq/keyv-redis.svg?style=flat-square)](https://coveralls.io/github/microlinkhq/keyv-redis)
[![NPM Status](https://img.shields.io/npm/dm/@microlink/keyv-redis.svg?style=flat-square)](https://www.npmjs.org/package/@microlink/keyv-redis)

TTL functionality is handled directly by Redis so no timestamps are stored and expired keys are cleaned up internally.

## Install

```shell
npm install --save keyv ioredis @microlink/keyv-redis
```

## Usage

```js
const Keyv = require('keyv')
const keyv = new Keyv('redis://user:pass@localhost:6379')
```

Any valid [`Redis`](https://github.com/luin/ioredis#connect-to-redis) options will be passed directly through.

```js
const keyv = new Keyv('redis://user:pass@localhost:6379', { disable_resubscribing: true })
```

Or you can manually create a storage adapter instance and pass it to Keyv:

```js
const KeyvRedis = require('@keyv/redis')
const Keyv = require('keyv')

const keyvRedis = new KeyvRedis('redis://user:pass@localhost:6379')
const keyv = new Keyv({ store: keyvRedis })
```

Or reuse a previous Redis instance:

```js
const KeyvRedis = require('@keyv/redis')
const Redis = require('ioredis')
const Keyv = require('keyv')

const redis = new Redis('redis://user:pass@localhost:6379')
const keyvRedis = new KeyvRedis(redis)
const keyv = new Keyv({ store: keyvRedis })
```

## License

**keyv-redis** © [microlink.io](https://microlink.io), released under the [MIT](https://github.com/microlinkhq/keyv-redis/blob/master/LICENSE.md) License.<br>
Authored and maintained by [microlink.io](https://microlink.io) with help from [contributors](https://github.com/microlinkhq/keyv-redis/contributors).

> [microlink.io](https://microlink.io) · GitHub [microlink.io](https://github.com/microlinkhq) · Twitter [@microlinkhq](https://twitter.com/microlinkhq)
npm package: @microlink/local
Description: Runs Microlink Functions locally.
Author: Kiko Beats
Latest version: 1.0.8

<div align="center">
  <img src="https://cdn.microlink.io/logo/banner.png">
  <br>
  <br>
</div>

> Runs [Microlink Function](https://github.com/microlinkhq/function) locally.

## Installation

```bash
npm install @microlink/local --global
```

## Usage

```bash
microlink-local --help
```

## License

**@microlink/local** © [Microlink](https://microlink.io), released under the [MIT](https://github.com/microlinkhq/local/blob/master/LICENSE.md) License.<br>
Authored and maintained by [Kiko Beats](https://kikobeats.com) with help from [contributors](https://github.com/microlinkhq/local/contributors).

> [microlink.io](https://microlink.io) · GitHub [microlinkhq](https://github.com/microlinkhq) · Twitter [@microlinkhq](https://twitter.com/microlinkhq)
npm package: @microlink/mql
Description: Microlink Query Language. The official HTTP client to interact with Microlink API for Node.js, browsers & Deno.
Author: Kiko Beats
Latest version: 0.16.0

<div align="center">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/banner/mql.png#gh-light-mode-only" alt="microlink logo">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/banner/mql-dark.png#gh-dark-mode-only" alt="microlink logo">
</div>

###### [Documentation](https://microlink.io/mql) | [CLI](https://github.com/microlinkhq/cli) | [Playground](https://mql.microlink.io)

## License

**microlink** © [Microlink](https://microlink.io), Released under the [MIT](https://github.com/microlinkhq/sdk/blob/master/LICENSE.md) License.<br>
Authored and maintained by Kiko Beats with help from [contributors](https://github.com/microlinkhq/sdk/contributors).

> [microlink.io](https://microlink.io) · GitHub [@MicrolinkHQ](https://github.com/microlinkhq) · X [@microlinkhq](https://x.com/microlinkhq)
npm package: @microlink/mql-cli
Description: CLI for interacting with Microlink Query Language (MQL)
Author: Kiko Beats
Latest version: 1.0.39

<div align="center">
  <img src="https://cdn.microlink.io/banner/mql-cli.png" alt="microlink query language logo">
</div>

###### [Documentation](docs/api/getting-started/cli) | [Chat](https://microlink.io/chat)

## Install

```bash
npm install @microlink/mql-cli --global
```

or run it directly:

```bash
npx @microlink/mql-cli --help
```

## License

**mql-cli** © [microlink.io](https://microlink.io), released under the [MIT](https://github.com/microlinkhq/mql-cli/blob/master/LICENSE.md) License.<br>
Authored and maintained by microlink.io with help from [contributors](https://github.com/microlinkhq/mql-cli/contributors).

> [microlink.io](https://microlink.io) · GitHub [microlink.io](https://github.com/microlinkhq) · Twitter [@microlinkhq](https://twitter.com/microlinkhq)
npm package: @microlink/ping-url
Description: Fast DNS resolution caching results for a while.
Author: microlink.io
Latest version: 1.4.16

<div align="center">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/logo/banner.png#gh-light-mode-only" alt="microlink logo">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/logo/banner-dark.png#gh-dark-mode-only" alt="microlink logo">
  <br>
  <br>
</div>

![Last version](https://img.shields.io/github/tag/microlinkhq/ping-url.svg?style=flat-square)
[![Coverage Status](https://img.shields.io/coveralls/microlinkhq/ping-url.svg?style=flat-square)](https://coveralls.io/github/microlinkhq/ping-url)
[![NPM Status](https://img.shields.io/npm/dm/@microlink/ping-url.svg?style=flat-square)](https://www.npmjs.org/package/@microlink/ping-url)

> Fast DNS resolution caching results for a while.

## Motivation

Ping an URL for getting the canonical URL and store the result into a cache, respecting a Time-to-Live (*TTL*) for the next lookup.

Suggested TTL could be:

- **Very Short**: 300 seconds (5 minutes).
- **Short**: 3600 seconds (1 hour).
- **Long**: 86400 seconds (24 hours).
- **Insanity**: 604800 seconds (7 days).

This library support any data storage provided by [`keyv`](https://npm.im/keyv).

## Install

```bash
$ npm install @microlink/ping-url --save
```

## Usage

```js
const createPingUrl = require('@microlink/ping-url')
const cache = new Map()
const pingUrl = createPingUrl({ store: cache, ttl: 3600 })

;(async () => {
  await pingUrl('https://example.com') // MISS, do the request
  await pingUrl('https://example.com') // HIT, serve from cache!
})()
```

The payload returned by `pingUrl` will be `response` but without any stream object there.

## API

### createPingUrl([keyvOptions], [memoOpts]) → pingUrl(url, [gotOpts])

#### keyvOptions

See [`keyv#options`](https://www.npmjs.com/package/keyv#new-keyvuri-options).

#### memoOpts

See [`@keyvhq/memoize`](https://github.com/microlinkhq/keyv/tree/master/packages/memoize).

#### gotOpts

Type: `object`

Any option provided here will passed to [got#options](https://github.com/sindresorhus/got#options).

## License

**@microlink/ping-url** © [Microlink](https://microlink.io), released under the [MIT](https://github.com/microlink/ping-url/blob/master/LICENSE.md) License.<br>
Authored and maintained by [Kiko Beats](https://kikobeats.com) with help from [contributors](https://github.com/microlink/ping-url/contributors).

> [microlink.io](https://microlink.io) · GitHub [microlinkhq](https://github.com/microlinkhq) · Twitter [@microlinkhq](https://twitter.com/microlinkhq)
npm package: @microlink/recipes
Description: Build something with just a few of lines
Author: microlink.io
Latest version: 1.8.1

<div align="center">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/banner/recipes.png#gh-light-mode-only" alt="microlink logo">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/banner/recipes-dark.png#gh-dark-mode-only" alt="microlink logo">
  <br>
  <br>
</div>

![Last version](https://img.shields.io/github/tag/microlinkhq/recipes.svg?style=flat-square)
[![Coverage Status](https://img.shields.io/coveralls/microlinkhq/recipes.svg?style=flat-square)](https://coveralls.io/github/microlinkhq/recipes)
[![NPM Status](https://img.shields.io/npm/dm/recipes.svg?style=flat-square)](https://www.npmjs.org/package/recipes)

## License

**@microlink/recipes** © [Microlink](https://microlink.io), released under the [MIT](https://github.com/microlinkhq/recipes/blob/master/LICENSE.md) License.<br>
Authored and maintained by [Kiko Beats](https://kikobeats.com) with help from [contributors](https://github.com/microlinkhq/recipes/contributors).

> [microlink.io](https://microlink.io) · GitHub [microlinkhq](https://github.com/microlinkhq) · Twitter [@microlinkhq](https://twitter.com/microlinkhq)
npm package: @microlink/ua
Description: A simple redis primitives to incr() and top() user agents
Author: microlink.io
Latest version: 1.2.12

<div align="center">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/logo/banner.png#gh-light-mode-only" alt="microlink logo">
  <img src="https://github.com/microlinkhq/cdn/raw/master/dist/logo/banner-dark.png#gh-dark-mode-only" alt="microlink logo">
  <br>
  <br>
</div>

![Last version](https://img.shields.io/github/tag/microlinkhq/ua.svg?style=flat-square)
[![Coverage Status](https://img.shields.io/coveralls/microlinkhq/ua.svg?style=flat-square)](https://coveralls.io/github/microlinkhq/ua)
[![NPM Status](https://img.shields.io/npm/dm/microlinkhq/ua.svg?style=flat-square)](https://www.npmjs.org/package/microlinkhq/ua)

> A simple redis primitives to incr() and top() user agents.

## Install

```sh
npm install @microlink/ua
```

## Usage

First, initialize the library passing a Redis instance:

```js
const Redis = require('ioredis')
const redis = new Redis()
const ua = require('@microlink/ua')(redis)
```

After that, the library offers the following methods:

- **incr(userAgent)** — e.g. <small>`ua.incr(req.headers['user-agent'])`</small><br/>
Increment the counter associated with an user agent.

- **top(n, { withScore })** — e.g. <small>`ua.top(100)`</small><br/>
Returns an array of the N ranked from from top.

- **flush**  — e.g. <small>`ua.delete()`</small><br/>
Delete elements.

## License

**microlink/ua** © [microlink.io](https://microlink.io), released under the [MIT](https://github.com/microlinkhq/ua/blob/master/LICENSE.md) License.<br>
Authored and maintained by [Kiko Beats](https://kikobeats.com) with help from [contributors](https://github.com/microlinkhq/queue/contributors).

> [microlink.io](https://microlink.io) · GitHub [microlink.io](https://github.com/microlinkhq) · X [@microlinkhq](https://x.com/microlinkhq)
npm package: @microloop/acl-global
Description: A extension library for @bleco/acl to simplify global roles usage
Author: ty
Latest version: 0.4.4

# @microloop/acl-global

> A extension library for @bleco/acl to simplify global roles usage

## Installation

NPM:

```shell
npm install @microloop/acl-global
```

Yarn:

```shell
yarn add @microloop/acl-global
```

## Usage

1. Mixin the entity with `AclAppRelModelMixin`

```ts
import {entity} from '@bleco/repo';

// !!! IMPORTANT !!!
// Using @entity decorator to replace @model decorator for inheritance relations
@entity()
export class SomeEnitty extends AclAppRelModelMixin(Entity) {
  // ...
}
```

2. Mixin the repository with `AclAppRelRepositoryMixin`

```ts
export class SomeRepository extends AclAppRelRepositoryMixin<
  SomeEnitty,
  typeof SomeEnitty.prototype.id,
  SomeEnittyRelations,
  Constructor<QueryEnhancedCrudRepository<SomeEnitty, typeof SomeEnitty.prototype.id, SomeEnittyRelations>>
>(QueryEnhancedCrudRepository) {
  constructor(
    @inject('datasources.db')
    dataSource: juggler.DataSource,
    // Required
    @repository.getter('AclAppRepository')
    public getAclAppRepository: Getter<AclAppRepository>,
  ) {
    super(SomeEnitty, dataSource);
  }
}
```

3. Define the custom entity policy and the global app policy

- `app.policy.ts`

```ts
// Define the global app policy
export const AppRoles = {
  admin: 'admin',
  user: 'user',
};

export type AppRoles = keyof typeof AppRoles;

export const AppPolicy = defineResourcePolicy({
  model: AclApp,
  roles: ['admin', 'member'],
});
```

- `some.policy.ts`

```ts
// Define the custom entity policy
export const SomePolicy = defineResourcePolicy({
  model: SomeEntity,
  roles: ['owner', 'member'],
  relations: ['$app'],
  actions: ['read', 'create', 'delete'],
  roleActions: {
    owner: ['create', 'delete'],
    member: ['read'],
  },
  roleDerivations: {
    owner: ['$app.admin'],
    member: ['owner'],
  },
});
```

4. Granting and authorizing

```ts
import {GlobalApp} from '@microloop/acl-global';

import {Acl, AclBindings} from '@bleco/acl';

const acl = await app.get<Acl>(AclBindings.ACL);
const roleMappingService = await app.get<AclRoleMappingService>(AclBindings.ROLE_MAPPING_SERVICE);

// Create a custom resource associating with the global app
const someResource = await someRepo.create({$appId: GlobalApp.id /*...*/});

// Grant app admin to someUser
await roleMappingService.add(someUser, AppRoles.admin, GlobalApp);

// Authorize someUser to create someEntity
await acl.authorize(someUser, 'create', someResource); // -> OK
await acl.authorize(someUser2, 'create', someResource); // -> Forbidden
```

## License

Licensed under the [MIT license](LICENSE).
npm package: @microloop/apispec-optimizer
Description: An OpenAPI specification optimizer for loopback 4
Author: ty
Latest version: 0.3.11

# @microloop/apispec-optimizer

> An OpenAPI specification optimizer designed for LoopBack 4 applications, which removes the `Controller` suffix from
> controller and tag names, and the prefix `...Controller.` from operationId.

## Installation

```sh
npm i @microloop/apispec-optimizer --save
```

## Usage

The component should be loaded in the constructor of your custom Application class.

Start by importing the component class:

```ts
import {ApiSpecOptimizerComponent} from '@microloop/apispec-optimizer';
```

In the constructor, add the component to your application:

```ts
this.component(ApiSpecOptimizerComponent);
```

This component provides a configuration for customizing the controller name and operationId of the OpenAPI spec.

```ts
import {CONTROLLER_NAME_KEY} from '@microloop/apispec-optimizer';

const apiSpecOptimizerOptions: ApiSpecOptimizerOptions = {
  customizeControllerName: (name, op, spec) => name + 'Api',
  customizeOperationId: (name, op, spec) => op[CONTROLLER_NAME_KEY] + '.' + name,
};
app.configure(ApiSpecOptimizerBindings.API_SPEC_OPTIMIZER).to(apiSpecOptimizerOptions);
```

## Optimization example

The OpenAPI spec generated by LoopBack applications is like:

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "LoopBack Application",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "/"
    }
  ],
  "paths": {
    "/test": {
      "get": {
        "x-controller-name": "TestController",
        "tags": ["TestController"],
        "operationId": "TestController.test",
        "responses": {
          "200": {
            "description": "test"
          }
        }
      }
    }
  }
}
```

After optimization with the configuration blow.

```ts
import {CONTROLLER_NAME_KEY} from '@microloop/apispec-optimizer';

const apiSpecOptimizerOptions: ApiSpecOptimizerOptions = {
  customizeControllerName: (name, op, spec) => name + 'Api',
  customizeOperationId: (name, op, spec) => op[CONTROLLER_NAME_KEY] + '.' + name,
};
app.configure(ApiSpecOptimizerBindings.API_SPEC_OPTIMIZER).to(apiSpecOptimizerOptions);
```

The OpenAPI spec is like:

```json
{
  "openapi": "3.0.0",
  "info": {
    "title": "LoopBack Application",
    "version": "1.0.0"
  },
  "servers": [
    {
      "url": "/"
    }
  ],
  "paths": {
    "/test": {
      "get": {
        "x-controller-name": "TestApi",
        "tags": ["TestApi"],
        "operationId": "TestApi.test",
        "responses": {
          "200": {
            "description": "test"
          }
        }
      }
    }
  }
}
```

## Tests

Run `npm test` from the root folder.

## License

MIT
npm package: @microloop/core
Description: packages
Author: microloop
Latest version: 4.5.10

# core

[![LoopBack](<https://github.com/strongloop/loopback-next/raw/master/docs/site/imgs/branding/Powered-by-LoopBack-Badge-(blue)-@2x.png>)](http://loopback.io/)

## Overview

`@microloop/core` is the [application core](https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/) for the
`bleco`. It contains

- adapters
- commands
- components
- constants
- decorators
- enums
- mixins
- models
- providers
- repositories
- sequence handlers
- utilities

that are used throughout the service catalog.

### Installation

```bash
npm install @microloop/core
```

`@microloop/core` is dependent on [`swagger-stats`](https://www.npmjs.com/package/swagger-stats), so if you haven't
added prom-client already, you should do this now. It's a peer dependency of swagger-stats as of version 0.95.19.

```bash
npm install prom-client@12 --save
```
npm package: @microloop/micro-user-tenant
Description: Microloop User Tenant MicroService
Author: ty
Latest version: 0.3.27

# @microloop/micro-user-tenant

> Microloop User Tenant MicroService. This service is responsible for managing user tenants.
>
> This service is forked from
> [loopback4-microservice-catalog](https://github.com/sourceloop/loopback4-microservice-catalog) and modified to work
> with microloop.
npm package: @micromatrix.org/docx-math-converter
Description: Converting LaTeX, MathML, or OMML strings to math objects using docx.js
Author: hideinmatrix
Latest version: 1.0.1

# docx-math-converter

将 LaTeX、MathML 或 OMML 字符串转换为 `docx` 可用的数学对象，支持 Node.js 和浏览器环境。

项目已经内置 MathML 到 OMML 的转换能力，使用时不需要再额外安装 `@seewo-doc/mathml2omml`。

## 特性

- 支持 `LaTeX -> Math`
- 支持 `MathML -> Math`
- 支持 `OMML -> Math`
- 可直接配合 `docx` 生成 `.docx` 文件

## 安装

```bash
pnpm add @micromatrix.org/docx-math-converter docx
```

## 环境要求

- Node.js 运行环境：`>=18.0.0`
- `docx`：`^9.6.1`
- 本仓库开发和构建使用 Vite 8，建议 Node.js：`^20.19.0 || >=22.12.0`

## API

### `convertMathMl2Math`

```ts
import { convertMathMl2Math } from '@micromatrix.org/docx-math-converter';

const mathObj = convertMathMl2Math(`
  <math display="block">
    <mrow>
      <mfrac>
        <mi>a</mi>
        <mi>b</mi>
      </mfrac>
      <mo>=</mo>
      <mfrac>
        <mrow>
          <mi>a</mi>
          <mo>×</mo>
          <mi>m</mi>
        </mrow>
        <mrow>
          <mi>b</mi>
          <mo>×</mo>
          <mi>m</mi>
        </mrow>
      </mfrac>
    </mrow>
  </math>
`);
```

### `convertOmml2Math`

```ts
import { convertOmml2Math } from '@micromatrix.org/docx-math-converter';

const mathObj = convertOmml2Math(`
  <m:oMath xmlns:m="http://schemas.openxmlformats.org/officeDocument/2006/math">
    <m:rad>
      <m:deg>
        <m:r>
          <m:t>3</m:t>
        </m:r>
      </m:deg>
      <m:e>
        <m:r>
          <m:t>1234</m:t>
        </m:r>
      </m:e>
    </m:rad>
  </m:oMath>
`);
```

### `mathJaxReady`

在使用 `convertLatex2Math` 之前，需要先初始化 MathJax：

```ts
import { mathJaxReady } from '@micromatrix.org/docx-math-converter';

await mathJaxReady();
```

### `convertLatex2Math`

```ts
import { mathJaxReady, convertLatex2Math } from '@micromatrix.org/docx-math-converter';

await mathJaxReady();
const mathObj = convertLatex2Math('(a\\pm b)^2=a^2\\pm2ab+b^2');
```

## 与 `docx` 一起使用

```ts
import fs from 'node:fs';
import { Document, Packer, Paragraph } from 'docx';
import { convertLatex2Math, mathJaxReady } from '@micromatrix.org/docx-math-converter';

await mathJaxReady();

const mathObj = convertLatex2Math('\\frac{a}{b}=\\frac{a\\times m}{b\\times m}');

const doc = new Document({
  sections: [
    {
      properties: {},
      children: [
        new Paragraph({
          children: [mathObj],
        }),
      ],
    },
  ],
});

const buffer = await Packer.toBuffer(doc);
fs.writeFileSync('example.docx', buffer);
```

## 开发

```bash
pnpm install
pnpm build
pnpm test
```

## 导出内容

当前导出的方法包括：

- `convertMathMl2Math`
- `convertOmml2Math`
- `mathJaxReady`
- `convertLatex2Math`

## 参考项目

- `seewo-doc/docx-math-converter`: https://github.com/seewo-doc/docx-math-converter
- `fiduswriter/mathml2omml`: https://github.com/fiduswriter/mathml2omml