https://jkindex.io/_next/static/chunks/9116-1c22d36b0f4b5914.js?dpl=dpl_6HPzDxijKYTnKEPK6FbkSXwTmRwe
1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9116],{29116:function(t,n,e){e.d(n,{AF:function(){return R},C:function(){return h},T:function(){return y},Tz:function(){return m},WL:function(){return S},Ws:function(){return w},Zz:function(){return I},bw:function(){return E},cq:function(){return v},d:function(){return P},dD:function(){return C},fV:function(){return f},ki:function(){return b},mb:function(){return d},oO:function(){return g},qC:function(){return k},r9:function(){return o.r},vX:function(){return L},vv:function(){return _},yY:function(){return p},zV:function(){return A}});var r=e(86112),o=e(77433);let a=(0,o.r)(),c=new Map,i=new Map,s=!1,l=0;async function u(t,n){let e="".concat(a).concat(t),r="".concat(e);if(s){if(Date.now()-l<3e4)throw Error("Service temporarily unavailable. Please try again in a moment.");s=!1}if(!(null==n?void 0:n.skipDeduplication)&&c.has(r))return c.get(r);let o="error:".concat(e),u=i.get(o);if(u&&u.count>=3){if(Date.now()-u.lastError<6e4)throw Error("Request failed. Please try again later.");i.delete(o)}let d=(async()=>{var t,a,u,d;try{let r=new AbortController,a=(null==n?void 0:n.timeout)||1e4,c=setTimeout(()=>r.abort(),a),u=await fetch(e,{signal:r.signal});if(clearTimeout(c),s&&(s=!1),i.delete(o),!u.ok){if(404===u.status){let t="Not found";try{let n=await u.json();n.detail&&(t=n.detail)}catch(n){t=u.statusText||"Not found"}throw Error(t)}if(u.status>=500){let n=(null===(t=i.get(o))||void 0===t?void 0:t.count)||0;i.set(o,{count:n+1,lastError:Date.now()}),n>=3&&(s=!0,l=Date.now())}let n="API error: ".concat(u.status," ").concat(u.statusText);try{let t=await u.json();t.detail&&(n=t.detail)}catch(t){}throw Error(n)}return u.json()}catch(t){if("AbortError"===t.name)throw Error("Request timeout. Please try again.");if((null===(a=t.message)||void 0===a?void 0:a.includes("Failed to fetch"))||(null===(u=t.message)||void 0===u?void 0:u.includes("NetworkError"))){let t=(null===(d=i.get(o))||void 0===d?void 0:d.count)||0;i.set(o,{count:t+1,lastError:Date.now()}),t>=3&&(s=!0,l=Date.now())}throw t}finally{c.delete(r)}})();return(null==n?void 0:n.skipDeduplication)||c.set(r,d),d}async function d(t,n){if(!t||t.trim().length<2)return[];try{let e=new URLSearchParams({q:t.trim()});return(null==n?void 0:n.setSlug)&&e.set("set_slug",n.setSlug),await u("/search?".concat(e))}catch(c){let e=(null==n?void 0:n.setSlug)?"&set_slug=".concat(encodeURIComponent(n.setSlug)):"",r="error:".concat(a,"/search?q=").concat(encodeURIComponent(t.trim())).concat(e),o=i.get(r);if((!o||o.count<3)&&console.error("Search error:",c),null==n?void 0:n.throwOnError)throw c;return[]}}async function g(t){try{return await u("/card/".concat(t))}catch(c){var n,e;if((null===(n=c.message)||void 0===n?void 0:n.includes("404"))||(null===(e=c.message)||void 0===e?void 0:e.includes("Not found"))){let n="error:".concat(a,"/card/").concat(t);throw i.has(n)||(console.warn("Card ".concat(t," not found")),i.set(n,{count:1,lastError:Date.now()})),Error("Card not found")}let r="error:".concat(a,"/card/").concat(t),o=i.get(r);throw(!o||o.count<3)&&console.error("Get card detail error:",c),c}}async function m(t){try{return await u("/card/".concat(t,"/readiness"))}catch(t){return null}}async function h(t){return(0,r.rn)("card-index-score:".concat(t),async()=>{let n=await fetch("".concat(a,"/card/").concat(t,"/index-score"));if(!n.ok)throw Error("card index-score ".concat(n.status));return n.json()})}async function f(t){try{return await u("/card/by-canonical/".concat(encodeURIComponent(t)))}catch(c){var n,e;if((null===(n=c.message)||void 0===n?void 0:n.includes("404"))||(null===(e=c.message)||void 0===e?void 0:e.includes("Not found"))){let n="error:".concat(a,"/card/by-canonical/").concat(t);throw i.has(n)||(console.warn("Card with canonical_id '".concat(t,"' not found")),i.set(n,{count:1,lastError:Date.now()})),Error("Card with canonical_id '".concat(t,"' not found"))}let r="error:".concat(a,"/card/by-canonical/").concat(t),o=i.get(r);throw(!o||o.count<3)&&console.error("Get card by canonical_id error:",c),c}}async function y(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:365,e=arguments.length>2?arguments[2]:void 0,r=!(arguments.length>3)||void 0===arguments[3]||arguments[3],o=arguments.length>4?arguments[4]:void 0,c=arguments.length>5?arguments[5]:void 0;try{let a=new URLSearchParams({days:n.toString(),exclude_lots:r.toString()});return e&&a.append("segment",e),void 0!==o&&a.append("min_grade",o.toString()),c&&a.append("edition",c),await u("/card/".concat(t,"/prices?").concat(a.toString()))}catch(r){let n="error:".concat(a,"/card/").concat(t,"/prices"),e=i.get(n);return(!e||e.count<3)&&console.error("Get card prices error:",r),[]}}async function v(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:365,e=arguments.length>2?arguments[2]:void 0,r=!(arguments.length>3)||void 0===arguments[3]||arguments[3],o=arguments.length>4?arguments[4]:void 0,c=arguments.length>5?arguments[5]:void 0;try{let a=new URLSearchParams({days:n.toString(),exclude_lots:r.toString()});return e&&a.append("segment",e),void 0!==o&&a.append("min_grade",o.toString()),c&&a.append("edition",c),await u("/card/".concat(t,"/stats?").concat(a.toString()))}catch(r){let n="error:".concat(a,"/card/").concat(t,"/stats"),e=i.get(n);return(!e||e.count<3)&&console.error("Get card stats error:",r),{count_sales:0,latest_price:null,market_price:null,listed_price_median:null,average_price:null,median_price:null,min_price:null,max_price:null,count_listings:0}}}async function p(t,n){try{let e=new URLSearchParams;(null==n?void 0:n.segment)&&e.set("segment",n.segment),(null==n?void 0:n.condition)&&e.set("condition",n.condition),(null==n?void 0:n.grade)!==void 0&&e.set("grade",n.grade.toString()),(null==n?void 0:n.gradingCompany)&&e.set("grading_company",n.gradingCompany),(null==n?void 0:n.edition)&&e.set("edition",n.edition),(null==n?void 0:n.printing)&&e.set("printing",n.printing);let o=e.toString()?"?".concat(e.toString()):"";return await (0,r.rn)("card-market-context:".concat(t,":").concat(o),()=>u("/card/".concat(t,"/market_context").concat(o)))}catch(r){let n="error:".concat(a,"/card/").concat(t,"/market_context"),e=i.get(n);return(!e||e.count<3)&&console.error("Get card market context error:",r),null}}async function w(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"raw_NM",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:90;try{return await (0,r.rn)("card-segments:".concat(t,":").concat(n,":").concat(e),()=>u("/card/".concat(t,"/segments_summary?segment=").concat(encodeURIComponent(n),"&days=").concat(e)))}catch(r){let n="error:".concat(a,"/card/").concat(t,"/segments_summary"),e=i.get(n);return(!e||e.count<3)&&console.error("Get segments summary error:",r),[]}}async function _(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:365;return(0,r.rn)("card-segments-bulk:".concat(t,":").concat(n),()=>u("/card/".concat(t,"/segments_summary_bulk?days=").concat(n)))}async function S(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"Near Mint",e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"1st Edition",o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"English",c=arguments.length>4&&void 0!==arguments[4]&&arguments[4],s=arguments.length>5?arguments[5]:void 0,l=arguments.length>6?arguments[6]:void 0;try{let a=new URLSearchParams({condition:n,printing:e,language:o});return s&&a.set("range",s),void 0!==l&&a.set("limit",String(l)),c&&a.set("include_raw_sales","true"),await (0,r.rn)("card-sales:".concat(t,":").concat(a.toString()),()=>u("/card/".concat(t,"/sales_history?").concat(a.toString()),{timeout:3e4}))}catch(r){var d,g;let n="error:".concat(a,"/card/").concat(t,"/sales_history"),e=i.get(n);if((!e||e.count<3)&&console.error("Get sales history error:",r),(null===(d=r.message)||void 0===d?void 0:d.includes("TCGPlayer product ID not found"))||(null===(g=r.message)||void 0===g?void 0:g.includes("No TCGPlayer product ID found")))return{items:[],pagination:{page:1,page_size:0,total_items:0,total_pages:0}
1,card_id:Number(t),canonical_id:"",product_id:null,sales:[],count:0,cached:!1,loading:!1,message:r.message||"Sales history is not available for this card."};throw r}}async function E(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:10;try{let e=new URLSearchParams({limit:n.toString()});return await u("/card/".concat(t,"/ebay?").concat(e.toString()),{timeout:15e3})}catch(r){let n="error:".concat(a,"/card/").concat(t,"/ebay"),e=i.get(n);return(!e||e.count<3)&&console.error("Get eBay listings error:",r),[]}}async function b(t){return u(t?"/sets?tcg_slug=".concat(encodeURIComponent(t)):"/sets",{timeout:5e3})}async function R(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:1,e=arguments.length>2&&void 0!==arguments[2]?arguments[2]:100,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"name",o=arguments.length>4?arguments[4]:void 0,a=r&&"name"!==r?"&sort=".concat(encodeURIComponent(r)):"",c=o?"&fields=".concat(encodeURIComponent(o)):"";return u("/sets/".concat(t,"/cards?page=").concat(n,"&page_size=").concat(e).concat(a).concat(c),{timeout:"activity"===r||"ungraded"===r||"psa9"===r||"psa10"===r?6e4:1e4})}async function P(t){return u("/sets/".concat(t,"/master-set-price"),{timeout:1e4})}async function k(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:30,e=arguments.length>2?arguments[2]:void 0;try{let r=new URLSearchParams({days:n.toString()});return e&&r.append("segment",e),await u("/card/".concat(t,"/market_consistency?").concat(r.toString()),{timeout:1e4})}catch(o){let e="error:".concat(a,"/card/").concat(t,"/market_consistency"),r=i.get(e);return(!r||r.count<3)&&console.error("Get market consistency error:",o),{card_id:Number(t),ebay_median:null,tcgplayer_median:null,discrepancy_percent:null,direction:null,outliers_removed:0,days_covered:n,insufficient_data:!0,notes:"Unable to fetch market consistency data. Please try again later.",ebay_count:0,tcgplayer_count:0}}}async function C(t,n){let e=new URLSearchParams;return void 0!==t&&e.append("limit",t.toString()),void 0!==n&&e.append("offset",n.toString()),u("/news".concat(e.toString()?"?".concat(e.toString()):""),{timeout:5e3})}async function I(t,n,e){let r=new URLSearchParams;return void 0!==t&&r.append("limit",t.toString()),void 0!==n&&r.append("offset",n.toString()),e&&r.append("tcg",e),u("/articles".concat(r.toString()?"?".concat(r.toString()):""),{timeout:5e3})}async function L(t){try{return await u("/articles/".concat(encodeURIComponent(t)),{timeout:5e3})}catch(c){var n,e;if((null===(n=c.message)||void 0===n?void 0:n.includes("404"))||(null===(e=c.message)||void 0===e?void 0:e.includes("Not found"))){let n="error:".concat(a,"/articles/").concat(t);throw i.has(n)||(console.warn("Article with slug '".concat(t,"' not found")),i.set(n,{count:1,lastError:Date.now()})),Error("Article with slug '".concat(t,"' not found"))}let r="error:".concat(a,"/articles/").concat(t),o=i.get(r);throw(!o||o.count<3)&&console.error("Get article by slug error:",c),c}}async function A(t){try{let n="undefined"!=typeof AbortSignal&&"timeout"in AbortSignal?AbortSignal.timeout(45e3):void 0,e=await fetch("".concat(a,"/contact"),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t),...n?{signal:n}:{}});if(!e.ok){if(429===e.status){let t=e.headers.get("Retry-After"),n=e.headers.get("X-RateLimit-Limit"),r=e.headers.get("X-RateLimit-Remaining"),o=e.headers.get("X-RateLimit-Reset"),a="Too many requests. Please try again";if(t){let n=parseInt(t,10);if(n<60)a+=" in ".concat(n," second").concat(1!==n?"s":"",".");else{let t=Math.ceil(n/60);a+=" in ".concat(t," minute").concat(1!==t?"s":"",".")}}else a+=" later.";let c=Error(a);throw c.retryAfter=t?parseInt(t,10):null,c.rateLimitLimit=n?parseInt(n,10):null,c.rateLimitRemaining=r?parseInt(r,10):null,c.rateLimitReset=o?parseInt(o,10):null,c}let t="Failed to submit your message. Please try again.";try{let n=await e.json();n.detail&&(t=n.detail)}catch(n){t=e.statusText||t}throw Error(t)}return e.json()}catch(t){if((null==t?void 0:t.name)==="TimeoutError"||(null==t?void 0:t.name)==="AbortError")throw Error("Request timed out. Check your network, confirm the site uses NEXT_PUBLIC_API_BASE=â¦/api/v1, and try again.");if(t instanceof Error)throw t;throw Error("Failed to submit your message. Please try again.")}}window.__API_BASE_LOGGED||(console.log("\uD83D\uDD27 API_BASE configured as:",a),window.__API_BASE_LOGGED=!0)}}]);
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.