UNPKG

multipassify-ts

Version:

This is an example TypeScript Package ready to be published on npm. It has been set up with automated tests and package publishing workflow using GitHub Actions CI/CD. It is made primarily for GitHub + VS Code (Windows / Mac / Linux) users who are about t

1 lines 1.73 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.exampleTypescriptPackage=t():e.exampleTypescriptPackage=t()}(this,(function(){return(()=>{var e={574:function(e,t,r){"use strict";var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.Multipassify=void 0;var i=n(r(85)),o=function(){function e(e){if(!(e.length>0))throw new Error("Invalid Secret");var t=i.default.createHash("sha256").update(e).digest();this._encryptionKey=t.subarray(0,16),this._signingKey=t.subarray(16,32)}return e.prototype.encode=function(e){if(!e)throw new Error("No data encoded");e.created_at=(new Date).toISOString();var t=this.encrypt(JSON.stringify(e));return Buffer.concat([t,this.sign(t)]).toString("base64url")},e.prototype.generateUrl=function(e,t){if(!t)throw new Error("No domain specified");return"https://"+t+"/account/login/multipass/"+this.encode(e)},e.prototype.sign=function(e){return i.default.createHmac("sha256",this._signingKey).update(e).digest()},e.prototype.encrypt=function(e){var t=i.default.randomBytes(16),r=i.default.createCipheriv("aes-128-cbc",this._encryptionKey,t);return Buffer.concat([t,r.update(e,"utf8"),r.final()])},e}();t.Multipassify=o},85:()=>{}},t={};function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}var n={};return(()=>{"use strict";var e=n;Object.defineProperty(e,"__esModule",{value:!0}),e.Multipassify=void 0;var t=r(574);Object.defineProperty(e,"Multipassify",{enumerable:!0,get:function(){return t.Multipassify}})})(),n})()}));