@yellowman617/securepass-pro-sdk
Version:
Official JavaScript SDK for SecurePass Pro - The most secure password generator with cryptographically secure 256-bit encryption
3 lines (2 loc) • 2.96 kB
JavaScript
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).SecurePassSDK=t()}(this,function(){"use strict";class e{constructor(e,t={}){if(this.apiKey=e,this.baseURL=t.baseURL||"https://securepasspro.com/api",this.timeout=t.timeout||1e4,!this.apiKey||"string"!=typeof this.apiKey||this.apiKey.length<10)throw new Error("Invalid API key provided")}async generatePassword(e={}){try{const t=Math.min(Math.max(e.length||16,8),64);return await this._makeRequest(`/generate?length=${t}`,{method:"GET"})}catch(e){throw new Error(`Password generation failed: ${e.message}`)}}async generateBulkPasswords(e,t={}){const a=Math.min(e,1e3),r=Math.min(Math.max(t.length||16,8),64);try{return await this._makeRequest(`/generate-bulk?count=${a}&length=${r}`,{method:"GET"})}catch(e){throw new Error(`Bulk password generation failed: ${e.message}`)}}async getTeamInfo(e){try{return await this._makeRequest(`/team?teamId=${e}`,{method:"GET"})}catch(e){throw new Error(`Failed to get team info: ${e.message}`)}}async addTeamMember(e,t,a="member"){try{return await this._makeRequest("/team",{method:"POST",body:JSON.stringify({action:"add_member",teamId:e,memberEmail:t,role:a})})}catch(e){throw new Error(`Failed to add team member: ${e.message}`)}}async removeTeamMember(e,t){try{return await this._makeRequest("/team",{method:"POST",body:JSON.stringify({action:"remove_member",teamId:e,memberEmail:t})})}catch(e){throw new Error(`Failed to remove team member: ${e.message}`)}}async updateTeamMemberRole(e,t,a){try{return await this._makeRequest("/team",{method:"POST",body:JSON.stringify({action:"update_role",teamId:e,memberEmail:t,role:a})})}catch(e){throw new Error(`Failed to update team member role: ${e.message}`)}}async getUsage(){try{return await this._makeRequest("/user")}catch(e){throw new Error(`Failed to get usage data: ${e.message}`)}}async testConnection(){try{return{success:!0,message:"API connection successful",data:await this._makeRequest("/test")}}catch(e){return{success:!1,message:e.message}}}async _makeRequest(e,t={}){const a=`${this.baseURL}${e}`;if(!e||"string"!=typeof e)throw new Error("Invalid endpoint");const r={method:t.method||"GET",headers:{"Content-Type":"application/json",Authorization:`Bearer ${this.apiKey}`,"User-Agent":"SecurePass-SDK/1.0.0"},timeout:this.timeout,...t};t.body&&(r.body=t.body);try{const e=new AbortController,t=setTimeout(()=>e.abort(),this.timeout),s=await fetch(a,{...r,signal:e.signal});if(clearTimeout(t),!s.ok){const e=await s.json().catch(()=>({}));throw new Error(e.message||`HTTP ${s.status}: ${s.statusText}`)}return await s.json()}catch(e){if("AbortError"===e.name)throw new Error("Request timeout");throw e}}}return"undefined"!=typeof module&&module.exports?module.exports=e:"undefined"!=typeof window&&(window.SecurePassSDK=e),e});
//# sourceMappingURL=securepass-sdk.min.js.map