diff --git a/types/steam-totp/index.d.ts b/types/steam-totp/index.d.ts new file mode 100644 index 0000000000..a3ff963428 --- /dev/null +++ b/types/steam-totp/index.d.ts @@ -0,0 +1,67 @@ +// Type definitions for steam-totp 2.0 +// Project: https://github.com/DoctorMcKay/node-steam-totp +// Definitions by: Max Uetrecht +// Definitions: https://github.com/DefinitelyTyped/DefinitelyTyped +// TypeScript Version: 2.2 + +/// + +export type TimeOffsetFunction = () => number; + +/** + * Returns the current local Unix time + * @param [timeOffset=0] - This many seconds will be added to the returned time + * @returns the current local Unix time + */ +export function time(timeOffset?: number): number; + +/** + * Generate a Steam-style TOTP authentication code. + * @param secret - Your TOTP shared_secret as a Buffer, hex, or base64 + * @param [timeOffset=0] - If you know how far off your clock is from the Steam servers, put the offset here in seconds + * @returns the generated auth code + */ +export function generateAuthCode(secret: string, timeOffset: number | TimeOffsetFunction): string; + +/** + * Generate a Steam-style TOTP authentication code. + * @param secret - Your TOTP shared_secret as a Buffer, hex, or base64 + * @param [timeOffset=0] - If you know how far off your clock is from the Steam servers, put the offset here in seconds + * @returns the generated auth code + */ +export function getAuthCode(secret: string, timeOffset: number | TimeOffsetFunction): string; + +/** + * Generate a base64 confirmation key for use with mobile trade confirmations. The key can only be used once. + * @param identitySecret - The identity_secret that you received when enabling two-factor authentication + * @param time - The Unix time for which you are generating this secret. Generally should be the current time. + * @param tag - The tag which identifies what this request (and therefore key) will be for. + * "conf" to load the confirmations page, "details" to load details about a trade, "allow" to confirm a trade, "cancel" to cancel it. + * @returns the generated confirmation key + */ +export function generateConfirmationKey(identitySecret: Buffer | string, time: number, tag: string): string; + +/** + * Generate a base64 confirmation key for use with mobile trade confirmations. The key can only be used once. + * @param identitySecret - The identity_secret that you received when enabling two-factor authentication + * @param time - The Unix time for which you are generating this secret. Generally should be the current time. + * @param tag - The tag which identifies what this request (and therefore key) will be for. + * "conf" to load the confirmations page, "details" to load details about a trade, "allow" to confirm a trade, "cancel" to cancel it. + * @returns the generated confirmation key + */ +export function getConfirmationKey(identitySecret: Buffer | string, time: number, tag: string): string; + +/** + * Requests the time offset from the Steam API. + * @param callback - The result of the steam api request + * @param [timeOffset=0] - If you know how far off your clock is from the Steam servers, put the offset here in seconds + * @returns the time offset + */ +export function getTimeOffset(callback: (error: Error, offset?: number, elapsedTime?: number) => void): void; + +/** + * Get a standardized device ID based on your SteamID. + * @param steamID - Your SteamID, either as a string or as an object which has a toString() method that returns the SteamID + * @returns the device ID + */ +export function getDeviceID(steamID: string | object): string; diff --git a/types/steam-totp/steam-totp-tests.ts b/types/steam-totp/steam-totp-tests.ts new file mode 100644 index 0000000000..57702ccaaa --- /dev/null +++ b/types/steam-totp/steam-totp-tests.ts @@ -0,0 +1,3 @@ +import steamTotp = require('steam-totp'); + +const time: number = steamTotp.time(); diff --git a/types/steam-totp/tsconfig.json b/types/steam-totp/tsconfig.json new file mode 100644 index 0000000000..01223cacba --- /dev/null +++ b/types/steam-totp/tsconfig.json @@ -0,0 +1,23 @@ +{ + "compilerOptions": { + "module": "commonjs", + "lib": [ + "es6" + ], + "noImplicitAny": true, + "noImplicitThis": true, + "strictNullChecks": true, + "strictFunctionTypes": true, + "baseUrl": "../", + "typeRoots": [ + "../" + ], + "types": [], + "noEmit": true, + "forceConsistentCasingInFileNames": true + }, + "files": [ + "index.d.ts", + "steam-totp-tests.ts" + ] +} diff --git a/types/steam-totp/tslint.json b/types/steam-totp/tslint.json new file mode 100644 index 0000000000..3db14f85ea --- /dev/null +++ b/types/steam-totp/tslint.json @@ -0,0 +1 @@ +{ "extends": "dtslint/dt.json" }