license-DwnCXVVv.js

2.2 KB · raw

1var e=`123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz`;function t(t){let n=0n;for(let r of t){let t=e.indexOf(r);if(t===-1)throw Error(`Invalid base58 character`);n=n*58n+BigInt(t)}let r=n.toString(16).padStart(2,`0`),i=r.length%2?`0`+r:r,a=new Uint8Array(i.length/2);for(let e=0;e<i.length;e+=2)a[e/2]=parseInt(i.slice(e,e+2),16);return a}function n(e){return e.join(``)}var r=`29d0f82eb3527b99635336f5e9bef4ae07f80b32de5206b312e74eb3632d3599`,i=`PPK-`;async function a(){let e=o(r);return crypto.subtle.importKey(`raw`,e,{name:`Ed25519`},!0,[`verify`])}function o(e){let t=new Uint8Array(e.length/2);for(let n=0;n<e.length;n+=2)t[n/2]=parseInt(e.slice(n,n+2),16);return t}async function s(e){if(!e||typeof e!=`string`)return{valid:!1,plan:`free`};let r=e.trim();if(!r.startsWith(i))return{valid:!1,plan:`free`};try{let e=r.slice(4).split(`-`);if(e.length!==5)return{valid:!1,plan:`free`};let i=t(n(e));if(i.length!==76)return{valid:!1,plan:`free`};let o=i.slice(0,12),s=i.slice(12,76);if(o[0]!==1||o[1]!==1||o[2]!==1)return{valid:!1,plan:`free`};let c=new DataView(o.buffer,o.byteOffset+3,4).getUint32(0,!0),l=new Date(c*86400*1e3),u=await a();return await crypto.subtle.verify(`Ed25519`,u,s,o)?{valid:!0,plan:`pro`,issued:l}:{valid:!1,plan:`free`}}catch{return{valid:!1,plan:`free`}}}async function c(){try{let e=(await chrome.storage.local.get(`peach_license`)).peach_license;return e?s(e):{valid:!1,plan:`free`}}catch{return{valid:!1,plan:`free`}}}async function l(e){let t=await s(e);return t.valid&&t.plan===`pro`?(await chrome.storage.local.set({peach_license:e.trim()}),t):{valid:!1,plan:`free`}}async function u(){let e=await c();return e.valid&&e.plan===`pro`}async function d(){try{return(await chrome.storage.local.get(`peach_license`)).peach_license??null}catch{return null}}async function f(){await chrome.storage.local.remove(`peach_license`)}var p=`peach_pro_celebrated`;async function m(){let e=await c();return!e.valid||e.plan!==`pro`?!1:!(await chrome.storage.local.get(p))[p]}async function h(){await chrome.storage.local.set({[p]:!0})}export{l as activateLicense,f as deactivateLicense,c as getLicenseInfo,d as getLicenseKey,u as isProUser,h as markCelebrationPlayed,m as shouldPlayCelebration};