From 010180d607fc728438a2fea28c318980fa38c10c Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Tue, 29 Nov 2022 22:40:11 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=F0=9F=91=8C=20IMPROVE:=20Drop=20Node.js=20?= =?UTF-8?q?<=2014=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .autod.conf.js | 22 --------- .github/workflows/nodejs.yml | 46 +++++++++++++++++++ .travis.yml | 21 --------- app/extend/context.js | 1 + package.json | 31 +++++++------ test/fixtures/app-ts/config/config.default.ts | 2 +- 6 files changed, 65 insertions(+), 58 deletions(-) delete mode 100644 .autod.conf.js create mode 100644 .github/workflows/nodejs.yml delete mode 100644 .travis.yml 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..53c32bc --- /dev/null +++ b/.github/workflows/nodejs.yml @@ -0,0 +1,46 @@ +# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node +# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions + +name: Node.js CI + +on: + push: + branches: + - main + - master + pull_request: + branches: + - main + - master + schedule: + - cron: '0 2 * * *' + +jobs: + build: + runs-on: ${{ matrix.os }} + + strategy: + fail-fast: false + matrix: + node-version: [14, 16, 18] + os: [ubuntu-latest] + + steps: + - name: Checkout Git Source + uses: actions/checkout@v2 + + - name: Use Node.js ${{ matrix.node-version }} + uses: actions/setup-node@v3 + with: + node-version: ${{ matrix.node-version }} + + - name: Install Dependencies + run: npm i + + - name: Continuous Integration + run: npm run ci + + - name: Code Coverage + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} 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/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/package.json b/package.json index ef4088c..7d489cf 100644 --- a/package.json +++ b/package.json @@ -24,34 +24,37 @@ ], "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-ci": "^2.2.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", + "typescript": "^4.9.3" }, "engines": { - "node": ">=8.0.0" + "node": ">=14.19.0" + }, + "ci": { + "version": "14, 16, 18", + "os": "linux" }, "scripts": { "test": "npm run lint && 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 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 +} From 51e0ec392301bd601184e51ee6f421f0d6c1b6c8 Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Sun, 18 Dec 2022 09:28:58 +0800 Subject: [PATCH 2/3] f --- .github/workflows/nodejs.yml | 52 ++++++++--------------------------- .github/workflows/release.yml | 17 ++++++++++++ README.md | 7 +---- package.json | 5 ---- 4 files changed, 30 insertions(+), 51 deletions(-) create mode 100644 .github/workflows/release.yml diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 53c32bc..22a8662 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -1,46 +1,18 @@ -# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node -# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions - -name: Node.js CI +name: CI on: push: - branches: - - main - - master - pull_request: - branches: - - main - - master - schedule: - - cron: '0 2 * * *' - -jobs: - build: - runs-on: ${{ matrix.os }} - - strategy: - fail-fast: false - matrix: - node-version: [14, 16, 18] - os: [ubuntu-latest] + branches: [ master ] - steps: - - name: Checkout Git Source - uses: actions/checkout@v2 - - - name: Use Node.js ${{ matrix.node-version }} - uses: actions/setup-node@v3 - with: - node-version: ${{ matrix.node-version }} - - - name: Install Dependencies - run: npm i + pull_request: + branches: [ master ] - - name: Continuous Integration - run: npm run ci + workflow_dispatch: {} - - name: Code Coverage - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} +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/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/package.json b/package.json index 7d489cf..7151142 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,6 @@ "devDependencies": { "egg": "^3.5.0", "egg-bin": "^5.5.0", - "egg-ci": "^2.2.0", "egg-mock": "^5.2.1", "egg-passport-github": "*", "egg-passport-twitter": "*", @@ -45,10 +44,6 @@ "engines": { "node": ">=14.19.0" }, - "ci": { - "version": "14, 16, 18", - "os": "linux" - }, "scripts": { "test": "npm run lint && npm run test-local", "test-local": "egg-bin test", From 0d656cbb5adacdc52af797df616218ddf92ecfa8 Mon Sep 17 00:00:00 2001 From: fengmk2 Date: Sun, 18 Dec 2022 11:26:13 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=F0=9F=A4=96=20TEST:=20Add=20tsd?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.d.ts | 3 +++ index.test-d.ts | 10 ++++++++++ package.json | 6 ++++-- 3 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 index.test-d.ts 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 7151142..07802c9 100644 --- a/package.json +++ b/package.json @@ -39,17 +39,19 @@ "eslint-config-egg": "^12.1.0", "passport-localapikey": "^0.0.3", "runscript": "^1.5.3", + "tsd": "^0.25.0", "typescript": "^4.9.3" }, "engines": { "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 test lib app *.js", - "ci": "npm run lint && npm run cov" + "ci": "npm run lint && npm run tsd && npm run cov" }, "repository": { "type": "git",