PageSourceSearch

https://freeguardvpn.com/_nuxt/D-EDKmd7.js

js freeguardvpn.com collected 2026-09-24 13:58:27 UTC 2,373 bytes, 1 lines download raw bytes

1import{z as e,j as t,M as n}from"./CSQlBOCQ.js";const r=["plus","pro","max"],i=["weekly","monthly","yearly"],a="fg_membership_checkout_v1",l="fg_membership_retention_dismissed_v1";function s(e){return Array.isArray(e)?e.flatMap((e=>{if(!e||!/^price_[A-Za-z0-9_]+$/.test(e.price_id||"")||!Number.isSafeInteger(e.amount)||e.amount<=0||!/^[a-z]{3}$/i.test(e.currency||""))return[];const t=e.entitlement_tier??"plus",n=1===e.interval_count?{week:"weekly",month:"monthly",year:"yearly"}[e.interval]:"month"===e.interval&&12===e.interval_count?"yearly":null;return!r.includes(t)||!n||e.billing_period&&e.billing_period!==n?[]:[{...e,entitlement_tier:t,billing_period:n}]})):[]}function o(e,t,n){const r=e.filter((e=>e.entitlement_tier===t&&e.billing_period===n));return 1===r.length?r[0]:null}function u(e,r){const i=new URL(e,"https://freeguard.invalid"),a=new URL(t(e,Object.fromEntries(i.searchParams)),"https://freeguard.invalid");return a.searchParams.set("plan",r.entitlement_tier||"plus"),a.searchParams.set("period",r.billing_period||{week:"weekly",month:"monthly",year:"yearly"}[r.interval]),a.searchParams.set("price_id",r.price_id),a.searchParams.has("ctx_until")||a.searchParams.set("ctx_until",String(Date.now()+n)),a.searchParams.delete("checkout_return"),a.pathname+a.search+(a.hash||"#pricing-cards")}function c(t,n){const r=e(n);return r.plan&&r.period?n.price_id?"string"!=typeof n.price_id?null:t.find((e=>e.price_id===n.price_id&&e.entitlement_tier===r.plan&&e.billing_period===r.period))||null:o(t,r.plan,r.period):null}function m(e,t,n){if(!t)return null;if("upfront"===n){const n="yearly"===t.billing_period?"monthly":"monthly"===t.billing_period?"weekly":null;return n?o(e,t.entitlement_tier,n):null}if("usage"===n){const n=r.indexOf(t.entitlement_tier);return n>0?o(e,r[n-1],t.billing_period):null}return null}function p(e){const t=e?.data?.fiat_equivalent;if(![0,200].includes(e?.code)||"number"!=typeof t||!Number.isFinite(t)||t<=0)throw new Error("minimum_amount_unavailable");return t}function _(e,t=Date.now()){try{const n=JSON.parse(e.getItem(a)),r=new URL(n.url);return!/^cs_[A-Za-z0-9_]+$/.test(n.sessionId)||"https:"!==r.protocol||"checkout.stripe.com"!==r.hostname||!Number.isFinite(n.createdAt)||n.createdAt>t||t-n.createdAt>864e5?null:n}catch{return null}}export{i as B,r as M,a as P,l as R,m as a,c as b,o as m,s as n,u as p,_ as r,p as v};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.