bump package version to 1.1.5
[squeep-totp] / lib / totp.js
index a1d2fce6820afffc3a2d892565262666897f6363..aff5d961331caa33389f337efeef17122f6f53df 100644 (file)
@@ -5,21 +5,21 @@ const HOTP = require('./hotp');
 class TimeBasedOneTimePassword extends HOTP {
   /**
    * 
-   * @param {Object} options
-   * @param {Number} options.codeLength
-   * @param {Buffer|String} options.key
-   * @param {String} options.keyEncoding
-   * @param {String} options.algorithm
-   * @param {Number} options.timeStepSeconds
-   * @param {Number} options.timeStepStartSeconds
-   * @param {Number} options.driftForward
-   * @param {Number} options.driftBackward
+   * @param {object} options options
+   * @param {number} options.codeLength digits in code
+   * @param {Buffer|string} options.key secret key
+   * @param {string} options.keyEncoding secret key encoding
+   * @param {string} options.algorithm algorithm
+   * @param {number} options.timeStepSeconds seconds per increment
+   * @param {number} options.timeStepStartSeconds seconds offset
+   * @param {number} options.driftForward allowed future steps to check
+   * @param {number} options.driftBackward allowed past steps to check
    */
   constructor(options) {
     const _options = { ...options };
     super(_options);
     this.driftOffsets = [
-      0n, // check now first
+      0n, // Check now first
       ...Array.from({ length: this.driftBackward }, (v, k) => BigInt(-(k + 1))),
       ...Array.from({ length: this.driftForward }, (v, k) => BigInt(k + 1)),
     ];
@@ -35,6 +35,7 @@ class TimeBasedOneTimePassword extends HOTP {
 
   /**
    * The type used when constructing the otpauth URI.
+   * @returns {string} otp auth type
    */
   static get _type() {
     return 'totp';
@@ -42,13 +43,14 @@ class TimeBasedOneTimePassword extends HOTP {
 
   /**
    * Derive counter from epoch.
+   * @returns {bigint} time based counter
    */
   get counter() {
     const epoch = Math.floor(Date.now() / 1000);
     return BigInt(Math.floor((epoch - this.timeStepStartSeconds) / this.timeStepSeconds));
   }
 
-  set counter(_) { /* ignore assignment */ } // eslint-disable-line class-methods-use-this
+  set counter(_) { /* Ignore assignment */ } // eslint-disable-line class-methods-use-this
 
   static get _defaultOptions() {
     const options = Object.assign(super._defaultOptions, {
@@ -63,8 +65,8 @@ class TimeBasedOneTimePassword extends HOTP {
 
   /**
    * 
-   * @param {BigInt=} count 
-   * @returns {String}
+   * @param {bigint=} count counter value
+   * @returns {string} code
    */
   generate(count = this.counter) {
     return super.generate(count);
@@ -72,9 +74,9 @@ class TimeBasedOneTimePassword extends HOTP {
 
   /**
    * 
-   * @param {String} hotp
-   * @param {BigInt=} count
-   * @returns {Boolean}
+   * @param {string} hotp code
+   * @param {bigint=} count counter value
+   * @returns {boolean} is valid
    */
   validate(hotp, count) {
     const counter = count ?? this.counter;