diff --git a/.autod.conf.js b/.autod.conf.js deleted file mode 100644 index ae8fefb..0000000 --- a/.autod.conf.js +++ /dev/null @@ -1,22 +0,0 @@ -'use strict'; - -module.exports = { - write: true, - prefix: '^', - test: [ - 'test', - 'benchmark', - ], - devdep: [ - 'egg-bin', - 'autod', - 'eslint', - 'eslint-config-egg', - ], - exclude: [ - './test/fixtures', - ], - keep: [ - 'passport', - ], -}; diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml new file mode 100644 index 0000000..22a8662 --- /dev/null +++ b/.github/workflows/nodejs.yml @@ -0,0 +1,18 @@ +name: CI + +on: + push: + branches: [ master ] + + pull_request: + branches: [ master ] + + workflow_dispatch: {} + +jobs: + Job: + name: Node.js + uses: artusjs/github-actions/.github/workflows/node-test.yml@v1 + with: + os: 'ubuntu-latest' + version: '14, 16, 18' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..1612587 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,17 @@ +name: Release + +on: + push: + branches: [ master ] + + workflow_dispatch: {} + +jobs: + release: + name: Node.js + uses: artusjs/github-actions/.github/workflows/node-release.yml@v1 + secrets: + NPM_TOKEN: ${{ secrets.NPM_TOKEN }} + GIT_TOKEN: ${{ secrets.GIT_TOKEN }} + with: + checkTest: false diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 7fb68a8..0000000 --- a/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -sudo: false -language: node_js -node_js: - - '8' - - '9' -install: - - npm i npminstall && npminstall -script: - - npm run ci -after_script: - - npminstall codecov && codecov -env: - global: - # EGG_PASSPORT_TWITTER_CONSUMER_SECRET - - secure: "aNsMN4elXkDQ1rvikWW3wOSMzVj5G7VLBhVJWq2yj7Om+tfSMn+uzZppnBhHuYR6PjWu9UEliuk+EdF2nrdaFwb1LY3yfUwyqkDCj1/UXVPewchx2W4vwvWw0zKanE5UFMou8zNq44Gm3PWdeE3EcqeNN4qJb6i6kqnJTMBn+bxij0wRULiv4NnvUCliroSvBLu6bW3gE4Il8kqSXw5kJ+4haFF6kYFW5bjrg+zHB13zBrfv5KBdwiMtHsjsOFoHhaR/ijWaPLGpBVja19OnDrsMvWL0TLiEmyqCmECXrmL4bMPSby4w6Chx8OJNhIzhH1OgMYy7kucJn3s3x3rAZNNtLENsSI+VC4zh0spAt9gbdF4WCltVme9BNVOYy2lbfjUsvKmh+4WaX7F/yNITIq7CvaNH/7Fw+9c2BY4Blq846Qt0lDfqEczr9eqrRVUQrFVlElXWV/voGWChpv8ce+uYbjrRpf9ajOBBZy3080gwj5bEnu/Xx7bSjXILZv4mbbkGXYuMEU6fYdnMd19+UxpP2H21cGqmlCd0jL9r+zPsRGT9uu34uh8t5ASsiGnWhXAsk+i83ZxUXN6eXn5i3gQdYuATUNPFcyJLNgQZ1XNKQHavnNqf80f6KU8ppCiUNbAl5u+afzsv92JD64L26amBoFIq1mD83cMUmKjdB1Y=" - # EGG_PASSPORT_WEIBO_CLIENT_ID - - secure: "dmar092ZvqXn/MVsH96s/upjgaIy3lRZEzQM5jnDekedMDbR2ZQs8N5IhE6w97JagGL4hm1TF/ZSOrmuFLU/WeOfArEkrKbJYaSRU43E49hiaW63/j9JwNEB0YXfwNgs2f5gr7FIw2/d/NUitheqnPbaamo+2l8gt3W/F04m/lDxlVoFmtwMrWYA+K4g/OhgQwe0WSMQzEPJ74W48hdQF/eSsYFQSAx6iQu8oM6Kz9C5GWX75vXeI1RJglv61wH7TKnj+YJY6RnW/VVxRmFu0utc6nSOaxDoncX9R8CuCYcj/HDrsF0K006ph/nIsDwDEtyA62KJYi/fluowUCeBIvleFj7r/c1Yx2O35TIEYsJNOBZWn+oeWmni+7htYVRYX7zKFIy6AENYDXWIVJe1tiCMeNTaTUUar/lF+UFu+sF7Z8p21izCD/gqYYvqWy0cZ/+Qb5tisyfzUWShMKhC/mrldb+bXtSzmSZfX7gP5JQeEuxdUF7HM3RHwaW+x1ORBjbvyZF5t1J3Pl095SGb/46wCLOkVmBsIvj0Gj+BcNWxaLro0IVyFF1SzjuWHcqHFx3RKe1puknIv8BKpoqMQCryBPsMRje09nXwbdP5L32ZpNjhf5i1lCVdzXGOAVfYa2GbuXoB+960SgFjmtxeRJP89QCyRFPRPV2MrUWvQPU=" - # EGG_PASSPORT_TWITTER_CONSUMER_KEY - - secure: "a66F9RKyMDITxM3iEJA811mvHOY3wFgJFRVLU1uHz9BmmpUoqL9uKEhrcdJFgjfLTfxQfv6hk6HR4lg9MUyDf3NgF0U4KzC2guOHykMRd4NM7iVyO/FMMTkLiTd+QVYPAhqg9FsYEW9tLg2AJCU/pm7997zOJ0Qk9ibUCBWjrIKtZHPqcRWJ3dgXxSXc9WhinN5bbAzqj2GFXxNpGun1lHxNOzpF9g8p5R8crm2JEx1bywFzU1PxH1vKvF4EA37dCUnF4Qg1MTB1Wrdz5Agk7qda0kN/WCbWpcNAAWAwSAaAQKJemD28Hh52E6bj8ZmVerXJY0rzzk5utZxNOIAOKeBWWx+b9F2WRPiNnE4fsXos0ldwGGodOOM5MYfb3QSqDANQoMV+KTu26NV/Sy47epV0ohSc8L9Vg/pgUzPIxDMHdZgODP6UNRWeyA/Vi4TC04bCJQsIxxqxMk9rDe4nI7dz7nf33oEYl4BGrGBWCGkysAEo8Vz31ZPM6rDjXhmxmH+CtbWoFWnvqNxsEePjJl3tDXxBlzoqhSiHau+Z+Du8WdAOjZFWOuby46vmJU1a3DwdPt3V2aIhLLV1Mln2RcU11E7Mi13KKalcTugFsi57XaeJP30pcqkA9tRgozCxWXdoThQItVgu3ikCCpJPf2MUu9ciCN+Cl65LXLIMq5c=" - # EGG_PASSPORT_WEIBO_CLIENT_SECRET - - secure: "FvjTYNVg+0H4+AJzZeZDQu2uu52kbdGfpKWnIh4owQXBGT3T3nIfzbCZPpDVaJcv/JyGSzkP4WuH/KvxuLu1ZzgRTu1r48rAIiuBcmQDzlSUQ0e5Gyfj3bwCASPgrkXTc6vC/SwvWIsAf6NAPwkS/NMaP1R71IJ0RSLs04JdU4zmoLTD6Yt896Tjf99MtAzqY+VfvLh8W4v5fa7a3WoNeXJW46deqh0yV/vQbH4HwbAipExTSMUlMk1xK+s9wqiafJEepU2wvIQps2sOLTytDV+6BDYKjyVEjs3cRJkpa8gFo16aOs09r3wuwtd5QJUQTTbOYhCTuQ6DKbxQHvOoT2Bw9uyP/jVF2xTPGxLOupn7cis+tgj/bmke/mJrZtb3+uZaKNXjGUXhz7a9mYWQgN+8hOVM2ia5goOWxGEMcaEbk5jir9XQRjyYeljfbyT3KXgAL8k61cYdPCGqXfvZVpYJbPHMOAQ+lyaV8TEqmPgJewWDUvhINc7QLmZCY5NwbqabAhYeKqIZG9oG/17gKBwDSDHtzTRN5Y//LQuctMBRSQN1tO0bw/ND0tOEGI71uXCwN/xMDC/vMAr0FqkFb2gH+hxAIrSM8/e6fUm0gMog0YzVwJtvEqSTRlrSB/bKsy7e/3Jf1HiiMvqDmPWTW/P8+zBcxJ74Ez8Joe02vr0=" diff --git a/README.md b/README.md index 0cb2b68..c8050dd 100644 --- a/README.md +++ b/README.md @@ -1,20 +1,15 @@ # egg-passport [![NPM version][npm-image]][npm-url] -[![build status][travis-image]][travis-url] +[![Node.js CI](https://github.com/eggjs/egg-passport/actions/workflows/nodejs.yml/badge.svg)](https://github.com/eggjs/egg-passport/actions/workflows/nodejs.yml) [![Test coverage][codecov-image]][codecov-url] -[![David deps][david-image]][david-url] [![Known Vulnerabilities][snyk-image]][snyk-url] [![npm download][download-image]][download-url] [npm-image]: https://img.shields.io/npm/v/egg-passport.svg?style=flat-square [npm-url]: https://npmjs.org/package/egg-passport -[travis-image]: https://img.shields.io/travis/eggjs/egg-passport.svg?style=flat-square -[travis-url]: https://travis-ci.org/eggjs/egg-passport [codecov-image]: https://img.shields.io/codecov/c/github/eggjs/egg-passport.svg?style=flat-square [codecov-url]: https://codecov.io/github/eggjs/egg-passport?branch=master -[david-image]: https://img.shields.io/david/eggjs/egg-passport.svg?style=flat-square -[david-url]: https://david-dm.org/eggjs/egg-passport [snyk-image]: https://snyk.io/test/npm/egg-passport/badge.svg?style=flat-square [snyk-url]: https://snyk.io/test/npm/egg-passport [download-image]: https://img.shields.io/npm/dm/egg-passport.svg?style=flat-square diff --git a/app/extend/context.js b/app/extend/context.js index 298e995..cf323e0 100644 --- a/app/extend/context.js +++ b/app/extend/context.js @@ -30,6 +30,7 @@ module.exports = { /** * Terminate an existing login session. * + * @param {...any} args * @api public */ logout(...args) { diff --git a/index.d.ts b/index.d.ts index d55b66e..1f4a501 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,3 +1,4 @@ +import * as Egg from 'egg'; import { Context, Request } from 'egg'; import { AuthenticateOptions, Strategy, Authenticator } from 'passport'; @@ -61,3 +62,5 @@ declare module 'egg' { passportBitbucket?: EggPassportCommonConfig } } + +export = Egg; diff --git a/index.test-d.ts b/index.test-d.ts new file mode 100644 index 0000000..ec9a6bd --- /dev/null +++ b/index.test-d.ts @@ -0,0 +1,10 @@ +import { expectType } from 'tsd'; +import * as egg from '.'; + +const app = {} as egg.Application; +const ctx = {} as egg.Context; + +expectType(ctx.isAuthenticated()); + +// expectType(app.passport.mount('foo')); +expectType(app.config.passportLocal?.passwordField!); diff --git a/package.json b/package.json index ef4088c..07802c9 100644 --- a/package.json +++ b/package.json @@ -24,34 +24,34 @@ ], "dependencies": { "@types/passport": "^1.0.11", - "debug": "^3.1.0", + "debug": "^4.3.4", "passport": "^0.6.0" }, "devDependencies": { - "autod": "^3.0.1", - "egg": "^2.0.0", - "egg-bin": "^4.3.7", - "egg-mock": "^3.14.0", + "egg": "^3.5.0", + "egg-bin": "^5.5.0", + "egg-mock": "^5.2.1", "egg-passport-github": "*", "egg-passport-twitter": "*", "egg-passport-weibo": "*", - "egg-ts-helper": "^1.14.0", - "eslint": "^4.13.1", - "eslint-config-egg": "^5.1.1", + "egg-ts-helper": "^1.33.0", + "eslint": "^8.28.0", + "eslint-config-egg": "^12.1.0", "passport-localapikey": "^0.0.3", - "runscript": "^1.3.0", - "typescript": "^3.1.6" + "runscript": "^1.5.3", + "tsd": "^0.25.0", + "typescript": "^4.9.3" }, "engines": { - "node": ">=8.0.0" + "node": ">=14.19.0" }, "scripts": { - "test": "npm run lint && npm run test-local", + "tsd": "tsd", + "test": "npm run lint && npm run tsd && npm run test-local", "test-local": "egg-bin test", "cov": "egg-bin cov", - "lint": "eslint config test lib app *.js", - "ci": "npm run lint && npm run cov", - "autod": "autod" + "lint": "eslint test lib app *.js", + "ci": "npm run lint && npm run tsd && npm run cov" }, "repository": { "type": "git", diff --git a/test/fixtures/app-ts/config/config.default.ts b/test/fixtures/app-ts/config/config.default.ts index 77d5216..f6ea06d 100755 --- a/test/fixtures/app-ts/config/config.default.ts +++ b/test/fixtures/app-ts/config/config.default.ts @@ -35,4 +35,4 @@ export default (appInfo: EggAppInfo) => { }; return config -} \ No newline at end of file +}