From 99a1d0b73d763e99aa960c4ca358cfd3b4a6f8b9 Mon Sep 17 00:00:00 2001 From: Renaud Date: Mon, 10 Jul 2017 04:33:01 +0200 Subject: [PATCH 1/7] Added declarations for 'passport-discord'. --- types/passport-discord/index.d.ts | 75 +++++++++++++++++++ .../passport-discord-tests.ts | 25 +++++++ types/passport-discord/tsconfig.json | 22 ++++++ types/passport-discord/tslint.json | 7 ++ 4 files changed, 129 insertions(+) create mode 100644 types/passport-discord/index.d.ts create mode 100644 types/passport-discord/passport-discord-tests.ts create mode 100644 types/passport-discord/tsconfig.json create mode 100644 types/passport-discord/tslint.json diff --git a/types/passport-discord/index.d.ts b/types/passport-discord/index.d.ts new file mode 100644 index 0000000000..13a00148b5 --- /dev/null +++ b/types/passport-discord/index.d.ts @@ -0,0 +1,75 @@ +// Type definitions for passport-discord 0.1 +// Project: https://github.com/nicholastay/passport-discord#readme +// Definitions by: My Self +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped + +/** Declaration file generated by dts-gen */ + +export = passport_discord; + +declare class passport_discord { + constructor(options: any, verify: any); + + authorizationParams(options: any): any; + + checkScope(scope: any, accessToken: any, cb: any): any; + + userProfile(accessToken: any, done: any): any; + + static Strategy: any; + +} + +declare namespace passport_discord { + namespace prototype { + function authenticate(req: any, options: any): any; + + function authorizationParams(options: any): any; + + function checkScope(scope: any, accessToken: any, cb: any): any; + + function parseErrorResponse(body: any, status: any): any; + + function tokenParams(options: any): any; + + function userProfile(accessToken: any, done: any): any; + + namespace authenticate { + const prototype: { + }; + + } + + namespace authorizationParams { + const prototype: { + }; + + } + + namespace checkScope { + const prototype: { + }; + + } + + namespace parseErrorResponse { + const prototype: { + }; + + } + + namespace tokenParams { + const prototype: { + }; + + } + + namespace userProfile { + const prototype: { + }; + + } + + } + +} diff --git a/types/passport-discord/passport-discord-tests.ts b/types/passport-discord/passport-discord-tests.ts new file mode 100644 index 0000000000..6fb4b8016a --- /dev/null +++ b/types/passport-discord/passport-discord-tests.ts @@ -0,0 +1,25 @@ +/** + * Created by kzaY on 07/09/2017. + */ +import passport = require('passport'); +import discord = require('passport-discord'); + +// just some test model +let User = { + findOrCreate(discordId: any, callback: (err: any, user: any) => void): void { + callback(null, { username: 'james' }); + } +}; + +passport.use(new discord.Strategy( + { + clientID: 'id', + clientSecret: 'secret', + callbackURL: 'callbackURL' + }, + (accessToken: string, refreshToken: string, profile: any, cb: any) => { + User.findOrCreate({ discordId: profile.id }, (err, user) => { + return cb(err, user); + }); + } +)); diff --git a/types/passport-discord/tsconfig.json b/types/passport-discord/tsconfig.json new file mode 100644 index 0000000000..da28db2fea --- /dev/null +++ b/types/passport-discord/tsconfig.json @@ -0,0 +1,22 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "passport-discord-tests.ts" + ] +} diff --git a/types/passport-discord/tslint.json b/types/passport-discord/tslint.json new file mode 100644 index 0000000000..c9a409bbed --- /dev/null +++ b/types/passport-discord/tslint.json @@ -0,0 +1,7 @@ +{ + "extends": "dtslint/dt.json", + "rules": { + // This package uses the Function type, and it will take effort to fix. + "ban-types": false + } +} From 0ddc7720f11f6ce407e780ad6d365e44e8faf36d Mon Sep 17 00:00:00 2001 From: Renaud Date: Mon, 10 Jul 2017 05:06:57 +0200 Subject: [PATCH 2/7] update profile --- types/passport-discord/index.d.ts | 87 +++++++++++-------------------- 1 file changed, 29 insertions(+), 58 deletions(-) diff --git a/types/passport-discord/index.d.ts b/types/passport-discord/index.d.ts index 13a00148b5..ccc181b137 100644 --- a/types/passport-discord/index.d.ts +++ b/types/passport-discord/index.d.ts @@ -1,75 +1,46 @@ // Type definitions for passport-discord 0.1 // Project: https://github.com/nicholastay/passport-discord#readme -// Definitions by: My Self +// Definitions by: Gonthier Renaud // Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped - +// TypeScript Version: 2.2 /** Declaration file generated by dts-gen */ -export = passport_discord; +import * as passport from 'passport'; +import * as express from 'express'; -declare class passport_discord { - constructor(options: any, verify: any); +export class Strategy implements passport.Strategy { + constructor(options: Strategy.StrategyOption, verify: (accessToken: string, refreshToken: string, profile: Strategy.Profile, done: (error: any, user?: any) => void) => void); + name: string; + authenticate: (req: express.Request, options?: Object) => void; authorizationParams(options: any): any; checkScope(scope: any, accessToken: any, cb: any): any; + parseErrorResponse(body: any, status: any): any; + + tokenParams(options: any): any; + userProfile(accessToken: any, done: any): any; - - static Strategy: any; - } -declare namespace passport_discord { - namespace prototype { - function authenticate(req: any, options: any): any; - - function authorizationParams(options: any): any; - - function checkScope(scope: any, accessToken: any, cb: any): any; - - function parseErrorResponse(body: any, status: any): any; - - function tokenParams(options: any): any; - - function userProfile(accessToken: any, done: any): any; - - namespace authenticate { - const prototype: { - }; - - } - - namespace authorizationParams { - const prototype: { - }; - - } - - namespace checkScope { - const prototype: { - }; - - } - - namespace parseErrorResponse { - const prototype: { - }; - - } - - namespace tokenParams { - const prototype: { - }; - - } - - namespace userProfile { - const prototype: { - }; - - } - +export namespace Strategy { + interface StrategyOption { + clientID: string; + clientSecret: string; + callbackURL: string; + scope: string[]; } + interface Profile extends passport.Profile { + profileUrl: string; + id: any; + username: string; + discriminator: string; + avatar: string; + verified: boolean; + email: string; + _raw: any; + _json: any; + } } From 7bd9fe438a0827db8cb2c8cad8a9fa1aef5c19cb Mon Sep 17 00:00:00 2001 From: Renaud Date: Mon, 10 Jul 2017 05:13:10 +0200 Subject: [PATCH 3/7] scope optional --- types/passport-discord/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/passport-discord/index.d.ts b/types/passport-discord/index.d.ts index ccc181b137..6c96a153df 100644 --- a/types/passport-discord/index.d.ts +++ b/types/passport-discord/index.d.ts @@ -29,7 +29,7 @@ export namespace Strategy { clientID: string; clientSecret: string; callbackURL: string; - scope: string[]; + scope?: string[]; } interface Profile extends passport.Profile { From 20d87a9915a45b8122efc5a3a4148595168ab298 Mon Sep 17 00:00:00 2001 From: Renaud Date: Thu, 13 Jul 2017 23:47:52 +0200 Subject: [PATCH 4/7] remove rules tslint --- types/passport-discord/tslint.json | 2 -- 1 file changed, 2 deletions(-) diff --git a/types/passport-discord/tslint.json b/types/passport-discord/tslint.json index c9a409bbed..724f3870ca 100644 --- a/types/passport-discord/tslint.json +++ b/types/passport-discord/tslint.json @@ -1,7 +1,5 @@ { "extends": "dtslint/dt.json", "rules": { - // This package uses the Function type, and it will take effort to fix. - "ban-types": false } } From 7b9fa0f9f6570f376b278e4316b1d5fa909a467b Mon Sep 17 00:00:00 2001 From: Renaud Date: Thu, 13 Jul 2017 23:48:03 +0200 Subject: [PATCH 5/7] change to process envv var --- types/passport-discord/passport-discord-tests.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/types/passport-discord/passport-discord-tests.ts b/types/passport-discord/passport-discord-tests.ts index 6fb4b8016a..e6da1b58b7 100644 --- a/types/passport-discord/passport-discord-tests.ts +++ b/types/passport-discord/passport-discord-tests.ts @@ -13,9 +13,9 @@ let User = { passport.use(new discord.Strategy( { - clientID: 'id', - clientSecret: 'secret', - callbackURL: 'callbackURL' + clientID: process.env.DISCORD_CLIENT_ID, + clientSecret: process.env.DISCORD_CLIENT_SECRET, + callbackURL: process.env.DISCORD_CALLBACK }, (accessToken: string, refreshToken: string, profile: any, cb: any) => { User.findOrCreate({ discordId: profile.id }, (err, user) => { From 0af509d69b85cfc7b254112732f051c2f31fb743 Mon Sep 17 00:00:00 2001 From: Renaud Date: Fri, 14 Jul 2017 00:23:02 +0200 Subject: [PATCH 6/7] update test --- types/passport-discord/passport-discord-tests.ts | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/types/passport-discord/passport-discord-tests.ts b/types/passport-discord/passport-discord-tests.ts index e6da1b58b7..96c6381c14 100644 --- a/types/passport-discord/passport-discord-tests.ts +++ b/types/passport-discord/passport-discord-tests.ts @@ -11,11 +11,12 @@ let User = { } }; + passport.use(new discord.Strategy( { - clientID: process.env.DISCORD_CLIENT_ID, - clientSecret: process.env.DISCORD_CLIENT_SECRET, - callbackURL: process.env.DISCORD_CALLBACK + clientID: 'clientID', + clientSecret: 'clientSecret', + callbackURL: 'callbackURL' }, (accessToken: string, refreshToken: string, profile: any, cb: any) => { User.findOrCreate({ discordId: profile.id }, (err, user) => { From d2111191e9d51a9d854a376021804487525d08af Mon Sep 17 00:00:00 2001 From: Renaud Date: Fri, 14 Jul 2017 00:37:11 +0200 Subject: [PATCH 7/7] remove space and minus object --- types/passport-discord/index.d.ts | 2 +- types/passport-discord/passport-discord-tests.ts | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/types/passport-discord/index.d.ts b/types/passport-discord/index.d.ts index 6c96a153df..8cc99df36d 100644 --- a/types/passport-discord/index.d.ts +++ b/types/passport-discord/index.d.ts @@ -11,7 +11,7 @@ import * as express from 'express'; export class Strategy implements passport.Strategy { constructor(options: Strategy.StrategyOption, verify: (accessToken: string, refreshToken: string, profile: Strategy.Profile, done: (error: any, user?: any) => void) => void); name: string; - authenticate: (req: express.Request, options?: Object) => void; + authenticate: (req: express.Request, options?: object) => void; authorizationParams(options: any): any; diff --git a/types/passport-discord/passport-discord-tests.ts b/types/passport-discord/passport-discord-tests.ts index 96c6381c14..9585093a56 100644 --- a/types/passport-discord/passport-discord-tests.ts +++ b/types/passport-discord/passport-discord-tests.ts @@ -11,7 +11,6 @@ let User = { } }; - passport.use(new discord.Strategy( { clientID: 'clientID',