open-index/open-npm huggingface dataset:
npm package: @midwayjs/jwt
Description: midway jwt component
Author: Nawbc
Latest version: 3.20.23

## 开始

安装 `npm i @midwayjs/jwt `

可配合 @midwayjs/passport 使用

config.{env}.ts

```ts
config.jwt = {
  secret: 'dev123456',
  expiresIn: '10d', // https://github.com/vercel/ms
};
```

```ts
import { JWTService } from '@midwayjs/jwt';

@Provide()
class Demo {
  @Inject()
  jwt: JwtService;
}
```

## API

**请不要在 payload 存放任何敏感信息**

- public async sign(payload: JwtPayload, options?: SignOptions, secret?: Secret): Promise<string | void>
- public signSync(payload: JwtPayload, options?: SignOptions, secret?: Secret): string | void

- verifySync(token: string,options?: VerifyOptions & { complete: true },secret?: Secret): Jwt | string | JwtPayload
- public async verify(token: string,options?: VerifyOptions & { complete: true },secret?: Secret | GetPublicKeyOrSecret): Promise<JwtType | undefined | JwtPayload>

- decodeSync(token: string,options?: DecodeOptions & { complete: true } & { json: true }): Jwt | null | JwtPayload | string
npm package: @midwayjs/kafka
Description: Midway Framework for kafka
Author: chenzhaozheng
Latest version: 3.20.23

# midway framework for kafka

[![Package Quality](http://npm.packagequality.com/shield/midway-web.svg)](http://packagequality.com/#?package=midway-web)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/midwayjs/midway/pulls)

this is a sub package for midway.


this module use [kafkaJS](https://kafka.js.org)

Document: [https://midwayjs.org](https://midwayjs.org)

## License

[MIT]((https://github.com/midwayjs/midway/blob/master/LICENSE))
npm package: @midwayjs/koa
Description: Midway Web Framework for KOA
Author: Harry Chen
Latest version: 3.20.23

# midway for koa

[![Package Quality](http://npm.packagequality.com/shield/@midwayjs/koa.svg)](http://packagequality.com/#?package=@midwayjs/koa)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/midwayjs/midway/pulls)

this is a sub package for midway.

Document: [https://midwayjs.org](https://midwayjs.org)

## License

[MIT]((https://github.com/midwayjs/midway/blob/master/LICENSE))
npm package: @midwayjs/leoric
Description: Leoric as a Midway model component
Author: Chen Yangjian
Latest version: 3.20.23

# midway leoric component

this is a sub package for midway.

Document: [https://midwayjs.org](https://midwayjs.org)

## Usage

```ts
// src/configuration.ts
import { Configuration, ILifeCycle } from '@midwayjs/core';
import * as leoric from '@midwayjs/leoric';

@Configuration({
  imports: [
    leoric,
  ],

})
export class ContainerLifeCycle implements ILifeCycle {}
```

```ts
// src/config/config.default.ts
export default () => {
  return {
    leoric: {
      dataSource: {
        default: {
          dialect: 'sqlite',
          database: path.join(__dirname, '../../', 'database.sqlite'),
          sync: true,
          models: [
            '**/models/*{.ts,.js}'
          ]
        },
      },
    },
  }
}
```

```ts
// src/controller/user.ts
import { Controller } from '@midwayjs/core';
import { InjectModel } from '@midwayjs/leoric';
import User from '../model/user';

@Controller('/api/users')
export class UserController {
  @InjectModel(User)
  User: typeof User;

  @Get('/')
  async index() {
    return await this.User.order('id', 'desc').limit(10);
  }
}
```

## License

[MIT]((https://github.com/midwayjs/midway/blob/master/LICENSE))
npm package: @midwayjs/locate
Description: Locating midway application locations
Author: Harry Chen
Latest version: 1.8.1

# midway locate

[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/midwayjs/midway-locate/blob/master/LICENSE)
[![GitHub tag](https://img.shields.io/github/tag/midwayjs/midway-locate.svg)]()
[![Build Status](https://travis-ci.com/midwayjs/midway-locate.svg?branch=develop)](https://travis-ci.com/midwayjs/midway-locate)
[![Test Coverage](https://img.shields.io/codecov/c/github/midwayjs/midway-locate/master.svg)](https://codecov.io/gh/midwayjs/midway-locate/branch/master)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/midwayjs/midway-locate/pulls)


扫描仓库目录结构，找出 midway 的代码位置。

## API

```ts
import { Locator } from '@midwayjs/locate';

const locator = new Locator();
const result = await locator.run();
console.log(result);
```

## Return

- result
  - `cwd` 当前命令执行路径，一般是项目根目录
  - `midwayRoot` midway 项目根目录，根据 package.json 查找
  - `tsCodeRoot` typescript 构建时获取的代码根路径，比如 src/controller/a.ts 和 src/controller/b.ts，tsc 构建时，会在 dist 目录中输出 a.js 和 b.js，这个时候根路径为 src/controller
  - `tsConfigFilePath` tsconfig.json 的路径，从 tsCodeRoot 到 midwayRoot 之间的最接近的 tsconfig 文件
  - `tsBuildRoot` 根据 tsconfig.json，获取到的构建输出的目录
  - `integrationProject`: 是否是一体化项目
  - `integrationProjectType`: 项目类型
  - `usingDependencies`: 使用的依赖，一体化项目会根据 tsCodeRoot 分析使用的依赖（package.json 的子集），其他项目直接读取 package.json 中的依赖
  - `usingDependenciesVersion`: 带版本，同上

## 其他

可以在 package.json 中传入 `tsCodeRoot` 和 `tsBuildRoot`，但是以 `run` 的参数为主。

```json
{
  "midway-integration": {
    "tsCodeRoot": "src/apis",
    "tsBuildRoot": "build/faas"
  }
}
```

## 支持目录

- [x] 纯 midway 项目
- [x] midway + 前端（分目录）
- [x] midway + 前端（合目录）
- [x] 纯 midway-faas
- [x] midway-faas + 前端（分目录）
- [x] midway-faas + 前端（合目录）

## License

[MIT](http://github.com/midwayjs/midway-locate/blob/master/LICENSE)
npm package: @midwayjs/luckyeye
Description: check node.js application
Author: czy88840616@gmail.com
Latest version: 1.1.0

# LuckyEye

![](https://img.alicdn.com/tfs/TB1mhZBauuSBuNjy1XcXXcYjFXa-1080-700.png)

用于检查 Node.js 应用的各项问题，用于在出错的时候进行自助式快速排查的小工具。

## 使用

```sh
npm i @midwayjs/luckyeye --save-dev
npx luckyeye
```

在 `package.json` 中加入下面的包配置。

```json
{
  "midway-luckyeye": {
    "packages": [
      "midway_v2"
    ]
  }
}
```

`midway_v2` 是默认的针对 midway v2 的规则检查包。

也可以使用自己的 npm 包规则。

```json
{
  "midway-luckyeye": {
    "packages": [
      "npm:xxxx"
    ]
  }
}
```


## API

luckyeye 工具可以添加一些通用的检查项，目前没有实现插件机制，最好的方式就是进行提交 MR。

luckyeye 工具的想法是把检查项分为几个规则组，每个规则组里有对应的检查项，相当于 mocha 的两层维度，每个规则组目前由一个文件（函数）表示。

通过简单的 `register` 方法和传入的 runner 对象实现了一个简单的检查器。

目前 runner 支持输出消息，检查，警告这三类，同时也支持特定场景的忽略情况，支持同步和异步操作。

以下是简单的例子。

```js
exports.register = (runner) => {
  runner
    .group('基础环境检查')
    .skipWhen(() => {
      // 下面的就不走了
      return true;
    })
    .info('node 版本', () => {
      // 输出一些信息
      return 'v12.9.0'
    })
    .check('检查文件是否存在', () => {
      // 检查
      return [fs.existsSync('/home/admin/.image_info'), '未找到信息'];
    })
    .warn('警告', async () => {
      return [true, '输出警告的信息']
    });

};
```

runner 包括几个通用的输出接口

- group(groupName: string)
- check(title: string, () => {}) : Promise \<Array[result: boolean, failMessage: string]>
- info(title: string, () => {}) : Promise \<Array[message: string]>
- warn(title: string, () => {}) : Promise \<Array[result: boolean, warnMessage: string]>
- skipWhen(() => {}): Promise \<result: boolean> 返回true，则整段跳过执行，类似 xdescribe

接口很简单，看 /src/rule 目录下的例子就好。

如果要发布为 npm 包，需要导出包含 rules 属性的规则数组。

```js
exports.rules = [
  register
]
```

## Reporter

luckyeye 设计能支持多个不同的 Reporter，目前实现只有 ConsoleReporter。
npm package: @midwayjs/mcp
Description: Midway Framework for mcp
Author: Harry Chen
Latest version: 4.0.2

# midway framework for mcp

[![Package Quality](http://npm.packagequality.com/shield/midway-web.svg)](http://packagequality.com/#?package=midway-web)
[![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](https://github.com/midwayjs/midway/pulls)

this is a sub package for midway.

Document: [https://midwayjs.org](https://midwayjs.org)

## License

[MIT](https://github.com/midwayjs/midway/blob/master/LICENSE)