@nibgate/sdk 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,3 @@
1
- var Nibgate=(()=>{var Y=Object.defineProperty;var $e=Object.getOwnPropertyDescriptor;var je=Object.getOwnPropertyNames;var Fe=Object.prototype.hasOwnProperty;var he=(r,e)=>()=>(r&&(e=r(r=0)),e);var we=(r,e)=>{for(var t in e)Y(r,t,{get:e[t],enumerable:!0})},Je=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of je(e))!Fe.call(r,a)&&a!==t&&Y(r,a,{get:()=>e[a],enumerable:!(n=$e(e,a))||n.enumerable});return r};var Qe=r=>Je(Y({},"__esModule",{value:!0}),r);function et(r,e){return typeof e=="bigint"?e.toString():e}function z(r){return JSON.stringify(r,et)}var ae=he(()=>{});var Me={};we(Me,{createCircleGatewayBrowserAdapter:()=>ut});function st(r){let e=typeof r=="string"?r:z(r);return typeof Buffer<"u"?Buffer.from(e).toString("base64"):btoa(unescape(encodeURIComponent(e)))}function it(r){return typeof Buffer<"u"?Buffer.from(r,"base64").toString("utf8"):decodeURIComponent(escape(atob(r)))}async function ut(r={}){let e=r.signer||await r.getSigner?.();if(!e?.address||typeof e.signTypedData!="function")throw new Error("Circle Gateway browser adapter requires an EVM signer with address and signTypedData.");let t=r.clientModule||(r.clientModuleUrl?await ve(r.clientModuleUrl):await ve("@circle-fin/x402-batching/client")),{BatchEvmScheme:n}=t,a=new n(e),c=r.network||r.chainId&&`eip155:${r.chainId}`||"eip155:5042002";function s(o){if(o&&typeof o=="object")return o;if(!o||typeof o!="string")throw new Error("Missing PAYMENT-REQUIRED header.");return JSON.parse(it(o))}function d(o){let l=Array.isArray(o?.accepts)?o.accepts:[],i=l.find(y=>{let u=y.extra||{};return y.network===c&&u.name==="GatewayWalletBatched"&&u.version==="1"&&typeof u.verifyingContract=="string"})||l.find(y=>{let u=y.extra||{};return u.name==="GatewayWalletBatched"&&u.version==="1"&&typeof u.verifyingContract=="string"});if(!i){let y=l.map(m=>m.network).filter(Boolean).join(", ")||"none",u=l.some(m=>{let g=m.extra||{};return g.name==="GatewayWalletBatched"&&g.version==="1"&&typeof g.verifyingContract=="string"});throw new Error(u?`No Circle Gateway batching payment option found for ${c}. Server returned networks: ${y}.`:`The payment challenge is not a Circle Gateway batching challenge. Configure the creator access route with createCircleGatewayServer(...) or createNibgateServer({ paymentMode: 'circle-gateway', network: '${c}' }).`)}return i}return{signer:e,network:c,async pay({paymentRequiredHeader:o,challenge:l}){let i=s(o||l),y=d(i),u=i.x402Version??2,m=await a.createPaymentPayload(u,y),g=st({...m,resource:i.resource,accepted:y});return{paymentSignature:g,signature:g,metadata:{paymentProvider:"circle-gateway",network:y.network,payer:e.address,recipient:y.payTo||y.recipient,amount:y.amount,currency:y.asset}}}}}var ve,Ue=he(()=>{ae();ve=new Function("specifier","return import(specifier)")});var mt={};we(mt,{ACCESS_MODES:()=>M,CONTENT_TYPES:()=>v,NIBGATE_CONTENT_HASH_NAMESPACE:()=>Ee,NIBGATE_CONTENT_SETTING_FIELDS:()=>_e,NIBGATE_REPUTATION_ABI:()=>Pe,NIBGATE_REPUTATION_CHAIN_ID:()=>Te,NIBGATE_REPUTATION_CHAIN_NAME:()=>xe,NIBGATE_REPUTATION_CONTRACT:()=>se,NIBGATE_REPUTATION_RPC_URL:()=>Ce,PAYMENT_RAILS:()=>O,UNLOCK_MODES:()=>H,checkResourceAccess:()=>R,contentRatingHash:()=>ie,createCircleGatewayBrowserAdapter:()=>ue,createEvmGatewayUnlock:()=>qe,createGate:()=>A,createNibgate:()=>We,createNibgateContentSettings:()=>Re,createOnchainRating:()=>ze,createTransferCheckout:()=>G,createWalletCheckout:()=>He,gate:()=>dt,mountRatingUI:()=>Ge,nibgate:()=>De,normalizeAccessPolicy:()=>N,normalizeContentType:()=>U,normalizePaymentRail:()=>I,normalizeResource:()=>k,normalizeUnlockPolicy:()=>B,payAndUnlockResource:()=>de,payWithPaymentSignature:()=>le,payWithTransfer:()=>J,rateContentOnchain:()=>F,rateResource:()=>Oe,reviewTextHash:()=>Ae,settingsToAccessPolicy:()=>Ne,settingsToUnlockPolicy:()=>Ie,setupResourcePage:()=>Le,trackResourcePage:()=>Q,validateResourceMetadata:()=>Z});var O=["gateway","transfer"];function I(r,e="gateway"){let t=String(r||"").trim().toLowerCase().replace(/[-\s]+/g,"_");return t==="circle_gateway"||t==="x402"?"gateway":t==="direct_transfer"||t==="wallet_transfer"?"transfer":O.includes(t)?t:e}var v=["music","video","article","image"],Ye={audio:"music",song:"music",track:"music",album:"music",playlist:"music",photo:"image",picture:"image",illustration:"image",art:"image",movie:"video",clip:"video"},M=["free","paid","blocked"],H=["one_time","metered_stream","metered_read","time_pass","agent_quota"];function U(r){let e=String(r||"").trim().toLowerCase();return v.includes(e)?e:Ye[e]||"article"}function K(r,e="paid"){let t=String(r||"").trim().toLowerCase();return M.includes(t)?t:e}function N(r={}){if(typeof r=="string"){let e=K(r);return{humans:e,agents:e}}return{humans:K(r.humans||r.human||r.default,"paid"),agents:K(r.agents||r.agent||r.default,"paid")}}function B(r={}){let e=typeof r=="string"?{mode:r}:r||{},t=String(e.mode||e.type||"one_time").trim().toLowerCase().replace(/[-\s]+/g,"_");return{...e,mode:H.includes(t)?t:"one_time"}}function k(r={}){let e=typeof r=="string"?{id:r}:r||{},{publisher:t,publisherId:n,publisherWallet:a,publisherHandle:c,publisherName:s,publisherProfileUrl:d,publisherOrigin:o,publisherVerification:l,authorHandle:i,...y}=e;return{...y,id:String(e.id||e.contentId||e.slug||"").trim(),title:String(e.title||e.name||"").trim(),type:U(e.type||e.contentType),price:e.price??e.amount??"",paymentRail:I(e.paymentRail||e.paymentMode||e.rail),recipient:e.recipient||e.receiver||e.receiverAddress||e.payTo||e.creatorWallet||void 0,payTo:e.payTo||e.recipient||e.receiver||e.receiverAddress||e.creatorWallet||void 0,path:e.path||e.route||void 0,url:e.url||void 0,imageUrl:e.imageUrl||e.image||void 0,tags:e.tags||void 0,access:N(e.access),unlock:B(e.unlock),ratingsEnabled:e.ratingsEnabled??e.enableRatings??e.reputation?.ratingsEnabled??!0,reputation:{...typeof e.reputation=="object"&&e.reputation?e.reputation:{},ratingsEnabled:e.ratingsEnabled??e.enableRatings??e.reputation?.ratingsEnabled??!0}}}function V(r){return Array.isArray(r)?r.length>0:r!=null&&String(r).trim()!==""}function Ke(r={}){let e=N(r.access);return e.humans==="paid"||e.agents==="paid"||Number.parseFloat(r.price||r.amount||"0")>0}function Z(r={},e={}){let t=k(r),n=[],a=[],c=e.required||["id","title","url","type"],s=e.recommended||["description","imageUrl","tags"];for(let o of c)V(t[o])||a.push(`Missing required content metadata: ${o}`);for(let o of s)V(t[o])||n.push(`Missing recommended discovery metadata: ${o}`);v.includes(t.type)||a.push("Content type must be one of music, video, article, or image."),t.url&&!/^https?:\/\//i.test(String(t.url))&&n.push("Use an absolute canonical url for stronger discovery identity."),t.imageUrl&&!/^https?:\/\//i.test(String(t.imageUrl))&&n.push("Use an absolute imageUrl for thumbnails in Explore and agent discovery."),Ke(t)&&(V(t.price)||a.push("Paid content requires price."),V(t.recipient||t.payTo)||a.push("Paid content requires recipient/payTo wallet."));let d=Math.max(0,100-a.length*20-n.length*8);return{ok:a.length===0,score:d,errors:a,warnings:n,resource:t}}function q(r={}){let e=typeof r=="number"?r:r.rating??r.stars??r.ratingValue??r.score,t=Number.parseFloat(e),n=Number.isFinite(t)?Math.max(1,Math.min(50,t<=5?Math.round(t*10):Math.round(t))):null;return{...r,rating:n?n/10:void 0,ratingValue:n||void 0}}function X(r,e={},t={}){let n=k(r),c=q(e).ratingValue||0;return["Nibgate content rating",`site:${t.siteDomain||t.domain||n.siteDomain||n.domain||""}`,`content:${n.externalId||n.id}`,`url:${n.url||t.url||""}`,`rating:${c}`,"I confirm this rating is tied to my unlock/payment proof."].join(`
2
- `)}function h(){return typeof window>"u"?null:window}function Ze(r,e){let t=h();return t?(t.__nibgateClientQueue=t.__nibgateClientQueue||[],t.__nibgateClientQueue.push({eventName:r,payload:e}),!0):!1}function $(){let r=h();if(!r?.nibgateHub?.track||!Array.isArray(r.__nibgateClientQueue))return!1;let e=r.__nibgateClientQueue.splice(0);return e.forEach(t=>{r.nibgateHub.track(t.eventName,t.payload)}),e.length>0}function Xe(){let r=h();if(!r||r.__nibgateClientFlushStarted)return;r.__nibgateClientFlushStarted=!0;let e=0,t=r.setInterval(()=>{e+=1,$(),(r.nibgateHub?.track||e>=80)&&(r.clearInterval(t),r.__nibgateClientFlushStarted=!1)},250)}function x(r,e={}){let t=h();return t?t.nibgateHub?.track?(t.nibgateHub.track(r,e),$(),!0):(Ze(r,e),Xe(),!1):!1}function P(r,e={}){return{...e,resource:k(r)}}function ee(r){return`nibgate:unlock:${r.id||r.path||r.url||"content"}`}function te(r){return`nibgate:payment-proof:${r.id||r.path||r.url||"content"}`}function j(r,e={}){let t=h();if(!t)return!1;try{return t.localStorage.setItem(ee(r),JSON.stringify({unlockedAt:new Date().toISOString(),payment:e})),!0}catch{return!1}}function re(r,e){let t=h();if(!t||!e)return!1;try{let n=typeof e=="string"?e:JSON.stringify(e);return t.localStorage.setItem(te(r),n),!0}catch{return!1}}function ne(r){let e=h();if(!e)return"";try{return e.localStorage.getItem(te(r))||""}catch{return""}}function be(r){let e=k(r),t=h();if(!t)return!1;try{return t.localStorage.removeItem(te(e)),t.localStorage.removeItem(ee(e)),!0}catch{return!1}}function ke(r){let e=h();if(!e)return!1;try{return!!e.localStorage.getItem(ee(r))}catch{return!1}}ae();var tt="0xc62fad09",oe=`0x${"0".repeat(64)}`,Ee="nibgate:content:v1",Te=5042002,xe="Arc Testnet",Ce="https://rpc.testnet.arc.network",se="0x9f27fd62e75f86a3c7addfdba443aab1f930e281",Pe=[{type:"function",name:"rateContent",stateMutability:"nonpayable",inputs:[{name:"contentId",type:"bytes32"},{name:"rating",type:"uint8"},{name:"reviewHash",type:"bytes32"},{name:"unlockRef",type:"string"}],outputs:[]}];function rt(r=""){return String(r||"").replace(/^0x/i,"").toLowerCase()}function Se(r=""){let e=rt(r);if(e.length>64)throw new Error("ABI word is too long.");return e.padEnd(64,"0")}function ce(r=0){return Number(r||0).toString(16).padStart(64,"0")}function nt(r=""){return Array.from(new TextEncoder().encode(String(r||""))).map(e=>e.toString(16).padStart(2,"0")).join("")}function at(r=""){let e=nt(r),t=e.length/2,n=Math.ceil(t/32)*64;return ce(t)+e.padEnd(n,"0")}function ct({contentId:r,ratingValue:e,reviewHash:t,unlockRef:n}){return tt+Se(r)+ce(e)+Se(t||oe)+ce(128)+at(n||"")}function ie(r,e={}){let t=e.contentId||e.contentHash;if(!t)throw new Error("contentId/contentHash is required. Use the Nibgate backend prepare endpoint or pass a known content hash.");return t}function Ae(r=""){if(!r)return oe;throw new Error("Text review hashing is not available in direct-browser mode. Pass reviewHash from your app/backend.")}async function ot(r,e={}){if(e.contentId||e.contentHash)return{contentId:e.contentId||e.contentHash};let t=e.prepareUrl||e.indexUrl?.replace(/\/index$/,"/prepare");if(!t)throw new Error("contentId/contentHash or prepareUrl is required for onchain rating.");let n=await fetch(t,{method:"POST",headers:{"content-type":"application/json",...e.indexHeaders||{}},body:JSON.stringify({siteId:e.siteId,token:e.token,resource:r,url:r.url,path:r.path})}),a=await n.json().catch(()=>({}));if(!n.ok||!a.contentHash)throw new Error(a.error||"Could not prepare Nibgate onchain rating.");return a}async function F(r,e={}){let t=k(r),n=q(e.rating??e.stars??e);if(!n.ratingValue)throw new Error("Rating must be between 0.1 and 5 stars.");let a=e.provider||globalThis?.ethereum;if(!a?.request)throw new Error("Connect an EVM wallet to rate this content onchain.");let c=e.contractAddress||e.reputationContract||se;if(!c)throw new Error("Nibgate reputation contract address is not configured.");let s=await a.request({method:"eth_requestAccounts"}),d=Array.isArray(s)&&s[0]||"";if(!d)throw new Error("No wallet account selected.");let o=await ot(t,e),l=o.contentHash||o.contentId||ie(t,e),i=e.reviewHash||oe,y=String(e.unlockRef||e.paymentId||e.txHash||""),u=ct({contentId:l,ratingValue:n.ratingValue,reviewHash:i,unlockRef:y}),m=await a.request({method:"eth_sendTransaction",params:[{from:d,to:c,data:u}]}),g=P(t,{rating:n.rating,ratingValue:n.ratingValue,walletAddress:d,txHash:m,contentHash:l,reviewHash:i,proofType:"onchain_pending",proof:y,paymentId:e.paymentId,actor:e.actor||"human"});return x("content_rating",g),e.indexUrl&&await fetch(e.indexUrl,{method:"POST",headers:{"content-type":"application/json",...e.indexHeaders||{}},body:JSON.stringify({siteId:e.siteId,token:e.token,txHash:m,resource:t,url:t.url,path:t.path,actor:e.actor||"human"})}).catch(()=>null),{txHash:m,walletAddress:d,contentId:l,ratingValue:n.ratingValue,reviewHash:i}}function G(r,e={}){let t=k({...r,paymentRail:"transfer"}),n=e.sendTransfer||e.transfer;if(typeof n!="function")throw new Error("createTransferCheckout requires sendTransfer({ resource, recipient, amount, currency, network }) and a server verifyTransfer hook.");return{resource:t,async pay(a={}){let c=t.recipient||t.payTo,s=String(t.price||t.amount||"0"),d=t.currency||"USDC",o=e.network||a.challenge?.accepts?.[0]?.network||"eip155:5042002",l=await n({resource:t,recipient:c,amount:s,currency:d,network:o,challenge:a.challenge}),i=l?.txHash||l?.hash||l?.transactionHash||l?.paymentId||"";if(!i)throw new Error("Transfer checkout did not return a txHash.");return{paymentSignature:i,signature:i,memo:l.memo||"",metadata:{paymentProvider:"direct-transfer",paymentId:i,txHash:i,recipient:c,amount:Number(s),currency:d,network:o,...l.metadata||l}}}}}async function J(r,e={}){let n=await(e.checkout||G(r,e).pay)({resource:k(r),challenge:e.challenge||null}),a=n?.metadata?.txHash||n?.txHash||n?.paymentSignature||n?.signature||"";if(!a)throw new Error("Transfer checkout did not return a txHash.");return R(r,{...e,headers:{...e.headers||{},"x-nibgate-transfer-tx":a},payment:n.metadata||{paymentProvider:"direct-transfer",txHash:a,paymentId:a}})}var _e=[{name:"publishToNibgate",label:"Publish to Nibgate discovery",type:"boolean",defaultValue:!0},{name:"type",label:"Content type",type:"select",options:v,defaultValue:"article"},{name:"humanAccess",label:"Human access",type:"select",options:M,defaultValue:"paid"},{name:"agentAccess",label:"Agent access",type:"select",options:M,defaultValue:"paid"},{name:"unlockMode",label:"Unlock mode",type:"select",options:H,defaultValue:"one_time"},{name:"paymentRail",label:"Payment rail",type:"select",options:O,defaultValue:"gateway"},{name:"price",label:"Price",type:"text",defaultValue:"0.005"},{name:"currency",label:"Currency",type:"text",defaultValue:"USDC"},{name:"recipient",label:"Recipient wallet",type:"wallet",defaultValue:""},{name:"ratingsEnabled",label:"Enable ratings",type:"boolean",defaultValue:!0},{name:"license",label:"License / terms",type:"textarea",defaultValue:""}];function Re(r={}){let e=N(r.access||{humans:r.humanAccess,agents:r.agentAccess}),t=B(r.unlock||r.unlockMode||"one_time");return{publishToNibgate:r.publishToNibgate??r.publishedToNibgate??!0,type:U(r.type||r.contentType||"article"),humanAccess:e.humans,agentAccess:e.agents,unlockMode:t.mode,paymentRail:I(r.paymentRail||r.paymentMode||r.rail),price:String(r.price??r.amount??"0.005"),currency:r.currency||"USDC",recipient:r.recipient||r.payTo||r.receiverAddress||r.creatorWallet||"",ratingsEnabled:r.ratingsEnabled??r.enableRatings??r.reputation?.ratingsEnabled??!0,license:r.license||r.terms||""}}function Ne(r={}){return N({humans:r.humanAccess,agents:r.agentAccess})}function Ie(r={}){return B(r.unlockMode||r.unlock||"one_time")}async function ue(r={}){return(await Promise.resolve().then(()=>(Ue(),Me))).createCircleGatewayBrowserAdapter(r)}function A(r,e={}){let t=k(r),n=e.client||De;return{resource:t,content(a={}){return n.content(t,a)},view(a={}){return n.view(t,a)},track(a,c={}){return n.track(a,P(t,c))},unlockStarted(a={}){return n.unlockStarted(t,a)},unlockCompleted(a={}){return j(t,a),n.unlockCompleted(t,a)},paymentCompleted(a={}){return n.paymentCompleted(t,a)},isUnlocked(){return ke(t)},markUnlocked(a={}){return j(t,a),n.unlockCompleted(t,a),n.paymentCompleted(t,a),!0},async unlock(a={}){n.unlockStarted(t);let c=typeof a=="function"?await a(t):a;return j(t,c||{}),n.unlockCompleted(t,c||{}),n.paymentCompleted(t,c||{}),{unlocked:!0,resource:t,payment:c||{}}},rate(a={},c={}){return n.rateResource(t,a,c)}}}function Oe(r,e={},t={}){let n=k(r),a=q(e),c={...t,...a,ratingMessage:t.ratingMessage||e.message||e.ratingMessage||X(n,a,t),ratingSignature:t.ratingSignature||e.signature||e.ratingSignature||void 0,resource:n};return x("content_rating",c)}function Q(r,e={}){let t=A(r,e.gateOptions||{}),n=Z(t.resource,e.validation||{});return(n.warnings.length||n.errors.length)&&e.warn!==!1&&h()?.console?.warn&&h().console.warn("Nibgate content metadata needs attention",n),t.content({source:e.source,metadataQuality:{score:n.score,warnings:n.warnings,errors:n.errors},...e.content||{}}),t.view({source:e.source,path:e.path||h()?.location?.pathname||t.resource.path,referrer:e.referrer??h()?.document?.referrer??"",...e.view||{}}),t}async function R(r,e={}){let t=A(r,e.gateOptions||{}),n=e.accessPath||t.resource.accessPath||"/api/nibgate/access",a=typeof e.onStatus=="function"?e.onStatus:()=>{};a(e.checkingMessage||"Checking access route..."),t.unlockStarted({source:e.source,paymentProvider:e.paymentProvider||"nibgate-access-route"});let c=await fetch(n,{method:e.method||"GET",headers:{accept:"application/json",...ne(t.resource)?{"x-nibgate-payment-proof":ne(t.resource)}:{},...e.headers||{}},body:e.body}),s=await c.json().catch(()=>({}));if(c.status===402){if(t.track("payment_challenge_returned",{source:e.source,challenge:s,resource:t.resource}),a(e.challengeMessage||"Payment challenge returned. Continue with checkout."),typeof e.createPaymentSignature=="function"||typeof e.checkout=="function")return await le(r,{...e,challenge:s,paymentRequiredHeader:c.headers.get("PAYMENT-REQUIRED")||c.headers.get("payment-required")||""});if(e.autoPay&&e.payPath){let o=await de(r,e);return o.ok&&e.retryAfterPay!==!1?R(r,{...e,autoPay:!1}):o}return{ok:!1,status:c.status,challenge:s,resource:t.resource,response:c}}if(!c.ok)return a(s.error||e.errorMessage||"Access check failed"),{ok:!1,status:c.status,error:s.error||"Access check failed",payload:s,resource:t.resource,response:c};let d=e.payment||s.payment||null;return d&&(t.unlockCompleted(d),t.paymentCompleted(d)),a(e.successMessage||"Access allowed and Nibgate events emitted."),{ok:!0,status:c.status,payload:s,payment:d,resource:t.resource,response:c}}async function le(r,e={}){let t=A(r,e.gateOptions||{}),n=e.accessPath||t.resource.accessPath||"/api/nibgate/access",a=typeof e.onStatus=="function"?e.onStatus:()=>{};a(e.paymentMessage||"Waiting for wallet payment approval..."),t.unlockStarted({source:e.source,paymentProvider:e.paymentProvider||"wallet-gateway"});let c=e.paymentSignature||"",s=e.memo||"",d=e.payment||{};if(!c){let u=e.paymentRequiredHeader||"",m=e.challenge||null,w=await(e.createPaymentSignature||e.checkout)({resource:t.resource,challenge:m,paymentRequiredHeader:u,accessPath:n});c=w?.paymentSignature||w?.signature||w?.payment||"",s=w?.memo||w?.paymentMemo||"",d=w?.metadata||w?.paymentMetadata||w||{}}if(!c){let u="Wallet did not return a payment signature.";return t.track("payment_failed",{source:e.source,error:u}),a(u),{ok:!1,status:400,error:u,resource:t.resource}}let o=await fetch(n,{method:e.method||"GET",headers:{accept:"application/json","payment-signature":c,...s?{"payment-memo":s}:{},...e.headers||{}}}),l=await o.text(),i={};try{i=l?JSON.parse(l):{}}catch{i={error:l||"Payment verification failed"}}if(!o.ok){let u=i.detail||i.reason||i.invalidReason||i.error||l||"Payment verification failed",m=typeof u=="string"?u:z(u);return t.track("payment_failed",{source:e.source,status:o.status,error:m,...d}),a(e.paymentErrorMessage||m),{ok:!1,status:o.status,error:m,payload:i,resource:t.resource,response:o}}let y=i.payment||{paymentProvider:e.paymentProvider||"wallet-gateway",paymentId:c,memo:s,amount:Number(t.resource.price||0),revenue:Number(t.resource.price||0),currency:t.resource.currency||"USDC",...d};return re(t.resource,i.unlockProof),t.markUnlocked(y),a(e.paymentSuccessMessage||"Payment verified. Content unlocked."),{ok:!0,status:o.status,payload:i,payment:y,resource:t.resource,response:o}}function lt(r,e){let t=h();if(!r||!t)return;let n=typeof r=="string"?t.document.querySelector(r):r;n&&(n.textContent=e||"")}function Be(r,e){let t=h();if(!r||!t)return;let n=typeof r=="string"?t.document.querySelector(r):r;n&&"disabled"in n&&(n.disabled=!!e)}function He(r,e={}){let t=k(r),n=e.accessPath||t.accessPath||"/api/nibgate/access",a=e.button||null,c=e.status||null,s=typeof e.onStatus=="function"?e.onStatus:i=>lt(c,i),d=e.checkout||e.createPaymentSignature||e.pay;if(typeof d!="function")throw new Error("createWalletCheckout requires checkout/createPaymentSignature/pay callback for the active wallet or Gateway adapter.");async function o(i={}){Be(a,!0);try{return await R(t,{...e,...i,accessPath:n,createPaymentSignature:d,onStatus:s})}finally{Be(a,!1)}}function l(){let i=h();if(!i||!a)return{unlock:o};let y=typeof a=="string"?i.document.querySelector(a):a;return y&&y.addEventListener("click",()=>o().catch(u=>s(u.message||"Checkout failed."))),{unlock:o}}return{resource:t,unlock:o,mount:l}}function qe(r,e={}){let t=A(r,e.gateOptions||{}),n=h(),a=e.accessPath||t.resource.accessPath||"/api/nibgate/access",c=e.source||"nibgate-evm-gateway",s=e.network||"eip155:5042002",d=typeof e.status=="string"?n?.document.querySelector(e.status):e.status,o=typeof e.connectButton=="string"?n?.document.querySelector(e.connectButton):e.connectButton,l=typeof e.disconnectButton=="string"?n?.document.querySelector(e.disconnectButton):e.disconnectButton,i=typeof e.unlockButton=="string"?n?.document.querySelector(e.unlockButton):e.unlockButton,y=typeof e.clearButton=="string"?n?.document.querySelector(e.clearButton):e.clearButton,u=typeof e.walletLabel=="string"?n?.document.querySelector(e.walletLabel):e.walletLabel,m=typeof e.unlockedTarget=="string"?n?.document.querySelector(e.unlockedTarget):e.unlockedTarget,g="",w=!1;function T(f){typeof e.onStatus=="function"&&e.onStatus(f),d&&(d.textContent=f||"")}function L(f){return f?`${f.slice(0,6)}...${f.slice(-4)}`:""}function _(){return n?.ethereum||e.provider||null}function C(f){w=!!f,[o,l,i,y].forEach(b=>{b&&"disabled"in b&&(b.disabled=w||b===o&&!_()||b===l&&!g)})}function p(){let f=!!_();u&&(u.textContent=g?L(g):f?"Ready to connect":"No wallet detected"),o&&(o.textContent=g?"Connected":"Connect wallet"),l&&(l.textContent="Disconnect"),o&&"disabled"in o&&(o.disabled=w||!f),l&&"disabled"in l&&(l.disabled=w||!g)}function S(f,b={}){i&&(i.textContent=f?"Unlocked":`Unlock for ${t.resource.price} ${t.resource.currency||"USDC"}`),m&&("hidden"in m&&(m.hidden=!f),m.setAttribute("aria-hidden",f?"false":"true")),f&&t.markUnlocked(b)}async function E(){C(!0),T("Opening wallet connection...");try{let f=_();if(!f)throw new Error(e.noWalletMessage||"Install or open an EVM wallet to continue.");let b=await f.request({method:"eth_requestAccounts"});if(g=Array.isArray(b)&&b[0]||"",!g)throw new Error("No wallet account selected.");return p(),T("Wallet connected. You can unlock now."),g}finally{C(!1)}}async function W(){C(!0);try{let f=_();if(f?.request&&g)try{await f.request({method:"wallet_revokePermissions",params:[{eth_accounts:{}}]})}catch{}return g="",p(),T(e.disconnectMessage||"Wallet disconnected for this page."),!0}finally{C(!1)}}async function D(f){let b=_();if(!b)throw new Error(e.noWalletMessage||"Install or open an EVM wallet to continue.");return g||await E(),(await ue({network:s,signer:{address:g,signTypedData:Ve=>b.request({method:"eth_signTypedData_v4",params:[g,z(Ve)]})},clientModule:e.circleClientModule,clientModuleUrl:e.circleClientModuleUrl})).pay(f)}async function me(){C(!0);try{g||await E(),C(!0),T("Requesting Gateway unlock...");let f=await R(t.resource,{accessPath:a,source:c,paymentProvider:e.paymentProvider||"circle-gateway-browser",challengeMessage:e.challengeMessage||"Gateway payment required. Connect your wallet to continue...",paymentMessage:e.paymentMessage||"Approve the Gateway payment proof in your wallet...",successMessage:e.successMessage||`Unlocked ${t.resource.title||"content"}.`,checkout:D,onStatus:T});return f.ok&&(S(!0,f.payment||{}),typeof e.onUnlock=="function"&&e.onUnlock(f)),f}catch(f){let b=f?.message||"Unlock failed. Please try again.";return T(b),{ok:!1,status:0,error:b,resource:t.resource}}finally{C(!1),p()}}function fe(){be(t.resource),S(!1),T("Local payment proof cleared. The next unlock will require Gateway payment again.")}async function ye(){let f=_();try{let b=f?await f.request({method:"eth_accounts"}):[];g=Array.isArray(b)&&b[0]||""}catch{}p(),S(!1)}function ge(){return o?.addEventListener?.("click",()=>E().catch(f=>T(f?.message||"Could not connect wallet."))),l?.addEventListener?.("click",()=>W().catch(f=>T(f?.message||"Could not disconnect wallet."))),i?.addEventListener?.("click",()=>me()),y?.addEventListener?.("click",fe),ye(),Q(t.resource,{source:c}),pe}let pe={resource:t.resource,connect:E,disconnect:W,unlock:me,clear:fe,hydrate:ye,mount:ge,getWalletAddress:()=>g};return e.autoMount!==!1&&ge(),pe}function ze(r,e={}){let t=A(r,e.gateOptions||{}),n=h(),a=typeof e.status=="string"?n?.document.querySelector(e.status):e.status,c=typeof e.ratingTarget=="string"?n?.document.querySelector(e.ratingTarget):e.ratingTarget,s=e.ratingButtons||e.buttons||"[data-nibgate-rating-value], [data-rating]",o=(Array.isArray(e.buttons)?e.buttons:typeof e.buttons=="string"?Array.from(n?.document.querySelectorAll(e.buttons)||[]):e.buttons?[e.buttons]:null)||Array.from(n?.document.querySelectorAll(s)||[]),l=e.source||"nibgate-onchain-rating",i=!1,y=e.payment||null;function u(p){typeof e.onStatus=="function"&&e.onStatus(p),a&&(a.textContent=p||"")}function m(p){i=!!p,o.forEach(S=>{S&&"disabled"in S&&(S.disabled=i)})}function g(p=null){return y=p||null,y}function w(p){return c&&("hidden"in c&&(c.hidden=!p),c.setAttribute("aria-hidden",p?"false":"true")),!!p}function T(p){let S=p?.dataset?.nibgateRatingValue||p?.dataset?.rating||p?.value||p?.textContent,E=Number.parseFloat(String(S||"").replace(/[^\d.]/g,""));return Number.isFinite(E)?E:Number(e.rating||e.stars||0)}async function L(p={}){m(!0);try{let S=Number.parseFloat(p.rating??p.stars??p.value??e.rating??e.stars);if(!Number.isFinite(S))throw new Error("Choose a rating before sending.");let E=p.paymentId||e.paymentId||(typeof e.getPaymentId=="function"?e.getPaymentId():y?.paymentId),W=p.unlockRef||e.unlockRef||(typeof e.getUnlockRef=="function"?e.getUnlockRef():null)||E||y?.txHash||y?.transactionHash||"";u(e.pendingMessage||"Send the onchain rating transaction...");let D=await F(t.resource,{...e,...p,rating:S,paymentId:E,unlockRef:W,source:l});return u(e.successMessage||"Rating sent to Nibgate reputation."),typeof e.onRated=="function"&&e.onRated(D),D}catch(S){let E=S?.message||e.errorMessage||"Rating failed.";throw u(E),typeof e.onError=="function"&&e.onError(S),S}finally{m(!1)}}function _(){return o.forEach(p=>{p?.addEventListener?.("click",()=>L({rating:T(p)}).catch(()=>null))}),e.visible!==void 0&&w(!!e.visible),C}let C={resource:t.resource,rate:L,mount:_,setPayment:g,setVisible:w};return e.autoMount!==!1&&_(),C}function Ge(r,e={}){let t=A(r,e.gateOptions||{}),n=h();if(!n)return null;let a=typeof e.target=="string"?n.document.querySelector(e.target):e.target;if(!a)return null;let c=[1,2,3,4,5],s=0,d=n.document.createElement("div");d.className="nibgate-rating-ui",d.style.cssText="display:flex;align-items:center;gap:4px;padding:8px 0";let o=c.map(u=>{let m=n.document.createElement("button");return m.type="button",m.dataset.nibgateRatingValue=String(u),m.setAttribute("aria-label",`${u} star${u>1?"s":""}`),m.innerHTML="\u2606",m.style.cssText="background:none;border:none;font-size:24px;cursor:pointer;color:#ccc;transition:color 0.15s;padding:2px;line-height:1",m.addEventListener("mouseenter",()=>{o.forEach((g,w)=>g.style.color=w<u?"#f5b342":"#ccc")}),m.addEventListener("mouseleave",()=>{o.forEach((g,w)=>g.style.color=w<s?"#f5b342":"#ccc")}),m.addEventListener("click",()=>{s=u,o.forEach((g,w)=>g.style.color=w<u?"#f5b342":"#ccc"),i(t.resource,{rating:u}).catch(()=>{})}),d.appendChild(m),m}),l=n.document.createElement("span");l.style.cssText="font-size:13px;color:#888;margin-left:8px",l.textContent=e.label||"Rate this content",d.appendChild(l),a.appendChild(d);function i(u,m={}){return t.rate({...m,rating:u})}function y(u){s=u,o.forEach((m,g)=>m.style.color=g<u?"#f5b342":"#ccc")}return{resource:t.resource,container:d,setRating:y,rate:i}}async function de(r,e={}){let t=A(r,e.gateOptions||{}),n=e.payPath||t.resource.payPath||"/api/nibgate/pay",a=typeof e.onStatus=="function"?e.onStatus:()=>{};a(e.paymentMessage||"Starting payment..."),t.unlockStarted({source:e.source,paymentProvider:e.paymentProvider||"circle-gateway"});let c=await fetch(n,{method:e.payMethod||"POST",headers:{accept:"application/json","content-type":"application/json",...e.payHeaders||{}},body:JSON.stringify({resource:t.resource,...e.payPayload||{}})}),s=await c.json().catch(()=>({}));if(!c.ok||!s.success)return t.track("payment_failed",{source:e.source,status:c.status,error:s.error||"Payment failed",detail:s.detail||""}),a(s.detail||s.error||e.paymentErrorMessage||"Payment failed."),{ok:!1,status:c.status,payload:s,resource:t.resource,response:c};let d=s.payment||{paymentProvider:e.paymentProvider||"circle-gateway",paymentId:s.paymentId||`nibgate_payment_${Date.now()}`,amount:Number(t.resource.price||0),revenue:Number(t.resource.price||0),currency:t.resource.currency||"USDC"};return re(t.resource,s.unlockProof),t.markUnlocked(d),a(e.paymentSuccessMessage||"Payment verified. Content unlocked."),{ok:!0,status:c.status,payload:s,payment:d,resource:t.resource,response:c}}function Le(r,e={}){let t=Q(r,e),n=h();if(!n)return t;let a=typeof e.button=="string"?n.document.querySelector(e.button):e.button,c=typeof e.status=="string"?n.document.querySelector(e.status):e.status,s=e.onStatus||(d=>{c&&(c.textContent=d||"")});return a&&a.addEventListener("click",async()=>{a.disabled=!0;try{await R(r,{...e,onStatus:s})}finally{a.disabled=!1}}),t}function We(r={}){let e=r.resource?k(r.resource):null;function t(n={}){return k({...e||{},...typeof n=="string"?{id:n}:n})}return{content(n,a={}){return x("content_registered",P(t(n),a))},registerContent(n,a={}){return x("content_registered",P(t(n),a))},view(n,a={}){return x("resource_view",P(t(n),a))},track(n,a={}){return x(n||"custom",a)},unlockStarted(n,a={}){return x("unlock_started",P(t(n),a))},unlockCompleted(n,a={}){return x("unlock_completed",P(t(n),a))},paymentCompleted(n,a={}){return x("payment_completed",P(t(n),a))},rateResource(n,a={},c={}){return Oe(t(n),a,c)},ratingMessage(n,a={},c={}){return X(t(n),a,c)},gate(n,a={}){return A(t(n),{...a,client:this})},trackResourcePage(n,a={}){return Q(t(n),a)},checkResourceAccess(n,a={}){return R(t(n),a)},payWithPaymentSignature(n,a={}){return le(t(n),a)},createWalletCheckout(n,a={}){return He(t(n),a)},createCircleGatewayBrowserAdapter(n={}){return ue(n)},createTransferCheckout(n,a={}){return G(t(n),a)},payWithTransfer(n,a={}){return J(t(n),a)},createEvmGatewayUnlock(n,a={}){return qe(t(n),a)},createOnchainRating(n,a={}){return ze(t(n),a)},mountRatingUI(n,a={}){return Ge(t(n),a)},payAndUnlockResource(n,a={}){return de(t(n),a)},setupResourcePage(n,a={}){return Le(t(n),a)},normalizeResource:t,normalizeContentType:U,flush:$}}var De=We(),dt=A;return Qe(mt);})();
1
+ var Nibgate=(()=>{var ie=Object.defineProperty;var Fe=Object.getOwnPropertyDescriptor;var Je=Object.getOwnPropertyNames;var Qe=Object.prototype.hasOwnProperty;var Re=(r,e)=>()=>(r&&(e=r(r=0)),e);var Ce=(r,e)=>{for(var t in e)ie(r,t,{get:e[t],enumerable:!0})},Ye=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let a of Je(e))!Qe.call(r,a)&&a!==t&&ie(r,a,{get:()=>e[a],enumerable:!(n=Fe(e,a))||n.enumerable});return r};var Ke=r=>Ye(ie({},"__esModule",{value:!0}),r);function rt(r,e){return typeof e=="bigint"?e.toString():e}function H(r){return JSON.stringify(r,rt)}var X=Re(()=>{});var Me={};Ce(Me,{createCircleGatewayBrowserAdapter:()=>ot});function at(r){let e=typeof r=="string"?r:H(r);return typeof Buffer<"u"?Buffer.from(e).toString("base64"):btoa(unescape(encodeURIComponent(e)))}function ct(r){return typeof Buffer<"u"?Buffer.from(r,"base64").toString("utf8"):decodeURIComponent(escape(atob(r)))}async function ot(r={}){let e=r.signer||await r.getSigner?.();if(!e?.address||typeof e.signTypedData!="function")throw new Error("Circle Gateway browser adapter requires an EVM signer with address and signTypedData.");let t=r.clientModule||(r.clientModuleUrl?await ve(r.clientModuleUrl):await ve("@circle-fin/x402-batching/client")),{BatchEvmScheme:n}=t,a=new n(e),c=r.network||r.chainId&&`eip155:${r.chainId}`||"eip155:5042002";function s(o){if(o&&typeof o=="object")return o;if(!o||typeof o!="string")throw new Error("Missing PAYMENT-REQUIRED header.");return JSON.parse(ct(o))}function m(o){let l=Array.isArray(o?.accepts)?o.accepts:[],u=l.find(y=>{let i=y.extra||{};return y.network===c&&i.name==="GatewayWalletBatched"&&i.version==="1"&&typeof i.verifyingContract=="string"})||l.find(y=>{let i=y.extra||{};return i.name==="GatewayWalletBatched"&&i.version==="1"&&typeof i.verifyingContract=="string"});if(!u){let y=l.map(d=>d.network).filter(Boolean).join(", ")||"none",i=l.some(d=>{let g=d.extra||{};return g.name==="GatewayWalletBatched"&&g.version==="1"&&typeof g.verifyingContract=="string"});throw new Error(i?`No Circle Gateway batching payment option found for ${c}. Server returned networks: ${y}.`:`The payment challenge is not a Circle Gateway batching challenge. Configure the creator access route with createCircleGatewayServer(...) or createNibgateServer({ paymentMode: 'circle-gateway', network: '${c}' }).`)}return u}return{signer:e,network:c,async pay({paymentRequiredHeader:o,challenge:l}){let u=s(o||l),y=m(u),i=u.x402Version??2,d=await a.createPaymentPayload(i,y),g=at({...d,resource:u.resource,accepted:y});return{paymentSignature:g,signature:g,metadata:{paymentProvider:"circle-gateway",network:y.network,payer:e.address,recipient:y.payTo||y.recipient,amount:y.amount,currency:y.asset}}}}}var ve,Ue=Re(()=>{X();ve=new Function("specifier","return import(specifier)")});var ft={};Ce(ft,{ACCESS_MODES:()=>B,CONTENT_TYPES:()=>U,NIBGATE_CONTENT_HASH_NAMESPACE:()=>Oe,NIBGATE_CONTENT_SETTING_FIELDS:()=>Le,NIBGATE_REPUTATION_ABI:()=>ze,NIBGATE_REPUTATION_CHAIN_ID:()=>He,NIBGATE_REPUTATION_CHAIN_NAME:()=>qe,NIBGATE_REPUTATION_CONTRACT:()=>pe,NIBGATE_REPUTATION_RPC_URL:()=>Ge,PAYMENT_RAILS:()=>q,UNLOCK_MODES:()=>G,checkResourceAccess:()=>x,contentRatingHash:()=>he,createCircleGatewayBrowserAdapter:()=>D,createEvmGatewayUnlock:()=>ne,createGate:()=>E,createNibgate:()=>we,createNibgateContentSettings:()=>De,createOnchainRating:()=>ce,createTransferCheckout:()=>$,createWalletCheckout:()=>te,mountRatingUI:()=>oe,nibgate:()=>ke,normalizeAccessPolicy:()=>I,normalizeContentType:()=>N,normalizePaymentRail:()=>M,normalizeResource:()=>w,normalizeUnlockPolicy:()=>O,payAndUnlockResource:()=>W,payWithPaymentSignature:()=>z,payWithTransfer:()=>se,rateContentOnchain:()=>ae,rateResource:()=>V,reviewTextHash:()=>We,settingsToAccessPolicy:()=>Ve,settingsToUnlockPolicy:()=>$e,setupResourcePage:()=>ee,trackResourcePage:()=>v,validateResourceMetadata:()=>Y});var q=["gateway","transfer"];function M(r,e="gateway"){let t=String(r||"").trim().toLowerCase().replace(/[-\s]+/g,"_");return t==="circle_gateway"||t==="x402"?"gateway":t==="direct_transfer"||t==="wallet_transfer"?"transfer":q.includes(t)?t:e}var U=["music","video","article","image"],Ze={audio:"music",song:"music",track:"music",album:"music",playlist:"music",photo:"image",picture:"image",illustration:"image",art:"image",movie:"video",clip:"video"},B=["free","paid","blocked"],G=["one_time","metered_stream","metered_read","time_pass","agent_quota"];function N(r){let e=String(r||"").trim().toLowerCase();return U.includes(e)?e:Ze[e]||"article"}function ue(r,e="paid"){let t=String(r||"").trim().toLowerCase();return B.includes(t)?t:e}function I(r={}){if(typeof r=="string"){let e=ue(r);return{humans:e,agents:e}}return{humans:ue(r.humans||r.human||r.default,"paid"),agents:ue(r.agents||r.agent||r.default,"paid")}}function O(r={}){let e=typeof r=="string"?{mode:r}:r||{},t=String(e.mode||e.type||"one_time").trim().toLowerCase().replace(/[-\s]+/g,"_");return{...e,mode:G.includes(t)?t:"one_time"}}function w(r={}){let e=typeof r=="string"?{id:r}:r||{},{publisher:t,publisherId:n,publisherWallet:a,publisherHandle:c,publisherName:s,publisherProfileUrl:m,publisherOrigin:o,publisherVerification:l,authorHandle:u,...y}=e;return{...y,id:String(e.id||e.contentId||e.slug||"").trim(),title:String(e.title||e.name||"").trim(),type:N(e.type||e.contentType),price:e.price??e.amount??"",paymentRail:M(e.paymentRail||e.paymentMode||e.rail),recipient:e.recipient||e.receiver||e.receiverAddress||e.payTo||e.creatorWallet||void 0,payTo:e.payTo||e.recipient||e.receiver||e.receiverAddress||e.creatorWallet||void 0,path:e.path||e.route||void 0,url:e.url||void 0,imageUrl:e.imageUrl||e.image||void 0,tags:e.tags||void 0,access:I(e.access),unlock:O(e.unlock),ratingsEnabled:e.ratingsEnabled??e.enableRatings??e.reputation?.ratingsEnabled??!0,reputation:{...typeof e.reputation=="object"&&e.reputation?e.reputation:{},ratingsEnabled:e.ratingsEnabled??e.enableRatings??e.reputation?.ratingsEnabled??!0}}}function Q(r){return Array.isArray(r)?r.length>0:r!=null&&String(r).trim()!==""}function Xe(r={}){let e=I(r.access);return e.humans==="paid"||e.agents==="paid"||Number.parseFloat(r.price||r.amount||"0")>0}function Y(r={},e={}){let t=w(r),n=[],a=[],c=e.required||["id","title","url","type"],s=e.recommended||["description","imageUrl","tags"];for(let o of c)Q(t[o])||a.push(`Missing required content metadata: ${o}`);for(let o of s)Q(t[o])||n.push(`Missing recommended discovery metadata: ${o}`);U.includes(t.type)||a.push("Content type must be one of music, video, article, or image."),t.url&&!/^https?:\/\//i.test(String(t.url))&&n.push("Use an absolute canonical url for stronger discovery identity."),t.imageUrl&&!/^https?:\/\//i.test(String(t.imageUrl))&&n.push("Use an absolute imageUrl for thumbnails in Explore and agent discovery."),Xe(t)&&(Q(t.price)||a.push("Paid content requires price."),Q(t.recipient||t.payTo)||a.push("Paid content requires recipient/payTo wallet."));let m=Math.max(0,100-a.length*20-n.length*8);return{ok:a.length===0,score:m,errors:a,warnings:n,resource:t}}function h(){return typeof window>"u"?null:window}function et(r,e){let t=h();return t?(t.__nibgateClientQueue=t.__nibgateClientQueue||[],t.__nibgateClientQueue.push({eventName:r,payload:e}),!0):!1}function K(){let r=h();if(!r?.nibgateHub?.track||!Array.isArray(r.__nibgateClientQueue))return!1;let e=r.__nibgateClientQueue.splice(0);return e.forEach(t=>{r.nibgateHub.track(t.eventName,t.payload)}),e.length>0}function tt(){let r=h();if(!r||r.__nibgateClientFlushStarted)return;r.__nibgateClientFlushStarted=!0;let e=0,t=r.setInterval(()=>{e+=1,K(),(r.nibgateHub?.track||e>=80)&&(r.clearInterval(t),r.__nibgateClientFlushStarted=!1)},250)}function R(r,e={}){let t=h();return t?t.nibgateHub?.track?(t.nibgateHub.track(r,e),K(),!0):(et(r,e),tt(),!1):!1}function P(r,e={}){return{...e,resource:w(r)}}function le(r){return`nibgate:unlock:${r.id||r.path||r.url||"content"}`}function me(r){return`nibgate:payment-proof:${r.id||r.path||r.url||"content"}`}function Z(r,e={}){let t=h();if(!t)return!1;try{return t.localStorage.setItem(le(r),JSON.stringify({unlockedAt:new Date().toISOString(),payment:e})),!0}catch{return!1}}function de(r,e){let t=h();if(!t||!e)return!1;try{let n=typeof e=="string"?e:JSON.stringify(e);return t.localStorage.setItem(me(r),n),!0}catch{return!1}}function fe(r){let e=h();if(!e)return"";try{return e.localStorage.getItem(me(r))||""}catch{return""}}function Pe(r){let e=w(r),t=h();if(!t)return!1;try{return t.localStorage.removeItem(me(e)),t.localStorage.removeItem(le(e)),!0}catch{return!1}}function Ae(r){let e=h();if(!e)return!1;try{return!!e.localStorage.getItem(le(r))}catch{return!1}}var _e=null;function Ne(r){_e=r}function E(r,e={}){let t=w(r),n=e.client||_e;return{resource:t,content(a={}){return n.content(t,a)},view(a={}){return n.view(t,a)},track(a,c={}){return n.track(a,P(t,c))},unlockStarted(a={}){return n.unlockStarted(t,a)},unlockCompleted(a={}){return Z(t,a),n.unlockCompleted(t,a)},paymentCompleted(a={}){return n.paymentCompleted(t,a)},isUnlocked(){return Ae(t)},markUnlocked(a={}){return Z(t,a),n.unlockCompleted(t,a),n.paymentCompleted(t,a),!0},async unlock(a={}){n.unlockStarted(t);let c=typeof a=="function"?await a(t):a;return Z(t,c||{}),n.unlockCompleted(t,c||{}),n.paymentCompleted(t,c||{}),{unlocked:!0,resource:t,payment:c||{}}},rate(a={},c={}){return n.rateResource(t,a,c)}}}X();function v(r,e={}){let t=E(r,e.gateOptions||{}),n=Y(t.resource,e.validation||{});return(n.warnings.length||n.errors.length)&&e.warn!==!1&&h()?.console?.warn&&h().console.warn("Nibgate content metadata needs attention",n),t.content({source:e.source,metadataQuality:{score:n.score,warnings:n.warnings,errors:n.errors},...e.content||{}}),t.view({source:e.source,path:e.path||h()?.location?.pathname||t.resource.path,referrer:e.referrer??h()?.document?.referrer??"",...e.view||{}}),t}function ee(r,e={}){let t=v(r,e),n=h();if(!n)return t;let a=typeof e.button=="string"?n.document.querySelector(e.button):e.button,c=typeof e.status=="string"?n.document.querySelector(e.status):e.status,s=e.onStatus||(m=>{c&&(c.textContent=m||"")});return a&&a.addEventListener("click",async()=>{a.disabled=!0;try{await x(r,{...e,onStatus:s})}finally{a.disabled=!1}}),t}async function x(r,e={}){let t=E(r,e.gateOptions||{}),n=e.accessPath||t.resource.accessPath||"/api/nibgate/access",a=typeof e.onStatus=="function"?e.onStatus:()=>{};a(e.checkingMessage||"Checking access route..."),t.unlockStarted({source:e.source,paymentProvider:e.paymentProvider||"nibgate-access-route"});let c=await fetch(n,{method:e.method||"GET",headers:{accept:"application/json",...fe(t.resource)?{"x-nibgate-payment-proof":fe(t.resource)}:{},...e.headers||{}},body:e.body}),s=await c.json().catch(()=>({}));if(c.status===402){if(t.track("payment_challenge_returned",{source:e.source,challenge:s,resource:t.resource}),a(e.challengeMessage||"Payment challenge returned. Continue with checkout."),typeof e.createPaymentSignature=="function"||typeof e.checkout=="function")return z(r,{...e,challenge:s,paymentRequiredHeader:c.headers.get("PAYMENT-REQUIRED")||c.headers.get("payment-required")||""});if(e.autoPay&&e.payPath){let o=await W(r,e);return o.ok&&e.retryAfterPay!==!1?x(r,{...e,autoPay:!1}):o}return{ok:!1,status:c.status,challenge:s,resource:t.resource,response:c}}if(!c.ok)return a(s.error||e.errorMessage||"Access check failed"),{ok:!1,status:c.status,error:s.error||"Access check failed",payload:s,resource:t.resource,response:c};let m=e.payment||s.payment||null;return m&&(t.unlockCompleted(m),t.paymentCompleted(m)),a(e.successMessage||"Access allowed and Nibgate events emitted."),{ok:!0,status:c.status,payload:s,payment:m,resource:t.resource,response:c}}async function z(r,e={}){let t=E(r,e.gateOptions||{}),n=e.accessPath||t.resource.accessPath||"/api/nibgate/access",a=typeof e.onStatus=="function"?e.onStatus:()=>{};a(e.paymentMessage||"Waiting for wallet payment approval..."),t.unlockStarted({source:e.source,paymentProvider:e.paymentProvider||"wallet-gateway"});let c=e.paymentSignature||"",s=e.memo||"",m=e.payment||{};if(!c){let i=e.paymentRequiredHeader||"",d=e.challenge||null,k=await(e.createPaymentSignature||e.checkout)({resource:t.resource,challenge:d,paymentRequiredHeader:i,accessPath:n});c=k?.paymentSignature||k?.signature||k?.payment||"",s=k?.memo||k?.paymentMemo||"",m=k?.metadata||k?.paymentMetadata||k||{}}if(!c){let i="Wallet did not return a payment signature.";return t.track("payment_failed",{source:e.source,error:i}),a(i),{ok:!1,status:400,error:i,resource:t.resource}}let o=await fetch(n,{method:e.method||"GET",headers:{accept:"application/json","payment-signature":c,...s?{"payment-memo":s}:{},...e.headers||{}}}),l=await o.text(),u={};try{u=l?JSON.parse(l):{}}catch{u={error:l||"Payment verification failed"}}if(!o.ok){let i=u.detail||u.reason||u.invalidReason||u.error||l||"Payment verification failed",d=typeof i=="string"?i:H(i);return t.track("payment_failed",{source:e.source,status:o.status,error:d,...m}),a(e.paymentErrorMessage||d),{ok:!1,status:o.status,error:d,payload:u,resource:t.resource,response:o}}let y=u.payment||{paymentProvider:e.paymentProvider||"wallet-gateway",paymentId:c,memo:s,amount:Number(t.resource.price||0),revenue:Number(t.resource.price||0),currency:t.resource.currency||"USDC",...m};return de(t.resource,u.unlockProof),t.markUnlocked(y),a(e.paymentSuccessMessage||"Payment verified. Content unlocked."),{ok:!0,status:o.status,payload:u,payment:y,resource:t.resource,response:o}}async function W(r,e={}){let t=E(r,e.gateOptions||{}),n=e.payPath||t.resource.payPath||"/api/nibgate/pay",a=typeof e.onStatus=="function"?e.onStatus:()=>{};a(e.paymentMessage||"Starting payment..."),t.unlockStarted({source:e.source,paymentProvider:e.paymentProvider||"circle-gateway"});let c=await fetch(n,{method:e.payMethod||"POST",headers:{accept:"application/json","content-type":"application/json",...e.payHeaders||{}},body:JSON.stringify({resource:t.resource,...e.payPayload||{}})}),s=await c.json().catch(()=>({}));if(!c.ok||!s.ok)return t.track("payment_failed",{source:e.source,status:c.status,error:s.error||"Payment failed",detail:s.detail||""}),a(s.detail||s.error||e.paymentErrorMessage||"Payment failed."),{ok:!1,status:c.status,payload:s,resource:t.resource,response:c};let m=s.payment||{paymentProvider:e.paymentProvider||"circle-gateway",paymentId:s.paymentId||`nibgate_payment_${Date.now()}`,amount:Number(t.resource.price||0),revenue:Number(t.resource.price||0),currency:t.resource.currency||"USDC"};return de(t.resource,s.unlockProof),t.markUnlocked(m),a(e.paymentSuccessMessage||"Payment verified. Content unlocked."),{ok:!0,status:c.status,payload:s,payment:m,resource:t.resource,response:c}}function nt(r,e){let t=h();if(!r||!t)return;let n=typeof r=="string"?t.document.querySelector(r):r;n&&(n.textContent=e||"")}function Ie(r,e){let t=h();if(!r||!t)return;let n=typeof r=="string"?t.document.querySelector(r):r;n&&"disabled"in n&&(n.disabled=!!e)}function te(r,e={}){let t=w(r),n=e.accessPath||t.accessPath||"/api/nibgate/access",a=e.button||null,c=e.status||null,s=typeof e.onStatus=="function"?e.onStatus:u=>nt(c,u),m=e.checkout||e.createPaymentSignature||e.pay;if(typeof m!="function")throw new Error("createWalletCheckout requires checkout/createPaymentSignature/pay callback for the active wallet or Gateway adapter.");async function o(u={}){Ie(a,!0);try{return await x(t,{...e,...u,accessPath:n,createPaymentSignature:m,onStatus:s})}finally{Ie(a,!1)}}function l(){let u=h();if(!u||!a)return{unlock:o};let y=typeof a=="string"?u.document.querySelector(a):a;return y&&y.addEventListener("click",()=>o().catch(i=>s(i.message||"Checkout failed."))),{unlock:o}}return{resource:t,unlock:o,mount:l}}function L(r={}){let e=typeof r=="number"?r:r.rating??r.stars??r.ratingValue??r.score,t=Number.parseFloat(e),n=Number.isFinite(t)?Math.max(1,Math.min(50,t<=5?Math.round(t*10):Math.round(t))):null;return{...r,rating:n?n/10:void 0,ratingValue:n||void 0}}function re(r,e={},t={}){let n=w(r),c=L(e).ratingValue||0;return["Nibgate content rating",`site:${t.siteDomain||t.domain||n.siteDomain||n.domain||""}`,`content:${n.externalId||n.id}`,`url:${n.url||t.url||""}`,`rating:${c}`,"I confirm this rating is tied to my unlock/payment proof."].join(`
2
+ `)}X();async function D(r={}){return(await Promise.resolve().then(()=>(Ue(),Me))).createCircleGatewayBrowserAdapter(r)}function ne(r,e={}){let t=E(r,e.gateOptions||{}),n=h(),a=e.accessPath||t.resource.accessPath||"/api/nibgate/access",c=e.source||"nibgate-evm-gateway",s=e.network||"eip155:5042002",m=typeof e.status=="string"?n?.document.querySelector(e.status):e.status,o=typeof e.connectButton=="string"?n?.document.querySelector(e.connectButton):e.connectButton,l=typeof e.disconnectButton=="string"?n?.document.querySelector(e.disconnectButton):e.disconnectButton,u=typeof e.unlockButton=="string"?n?.document.querySelector(e.unlockButton):e.unlockButton,y=typeof e.clearButton=="string"?n?.document.querySelector(e.clearButton):e.clearButton,i=typeof e.walletLabel=="string"?n?.document.querySelector(e.walletLabel):e.walletLabel,d=typeof e.unlockedTarget=="string"?n?.document.querySelector(e.unlockedTarget):e.unlockedTarget,g="",k=!1;function C(f){typeof e.onStatus=="function"&&e.onStatus(f),m&&(m.textContent=f||"")}function j(f){return f?`${f.slice(0,6)}...${f.slice(-4)}`:""}function _(){return n?.ethereum||e.provider||null}function A(f){k=!!f,[o,l,u,y].forEach(b=>{b&&"disabled"in b&&(b.disabled=k||b===o&&!_()||b===l&&!g)})}function p(){let f=!!_();i&&(i.textContent=g?j(g):f?"Ready to connect":"No wallet detected"),o&&(o.textContent=g?"Connected":"Connect wallet"),l&&(l.textContent="Disconnect"),o&&"disabled"in o&&(o.disabled=k||!f),l&&"disabled"in l&&(l.disabled=k||!g)}function S(f,b={}){u&&(u.textContent=f?"Unlocked":`Unlock for ${t.resource.price} ${t.resource.currency||"USDC"}`),d&&("hidden"in d&&(d.hidden=!f),d.setAttribute("aria-hidden",f?"false":"true")),f&&t.markUnlocked(b)}async function T(){A(!0),C("Opening wallet connection...");try{let f=_();if(!f)throw new Error(e.noWalletMessage||"Install or open an EVM wallet to continue.");let b=await f.request({method:"eth_requestAccounts"});if(g=Array.isArray(b)&&b[0]||"",!g)throw new Error("No wallet account selected.");return p(),C("Wallet connected. You can unlock now."),g}finally{A(!1)}}async function F(){A(!0);try{let f=_();if(f?.request&&g)try{await f.request({method:"wallet_revokePermissions",params:[{eth_accounts:{}}]})}catch{}return g="",p(),C(e.disconnectMessage||"Wallet disconnected for this page."),!0}finally{A(!1)}}async function J(f){let b=_();if(!b)throw new Error(e.noWalletMessage||"Install or open an EVM wallet to continue.");return g||await T(),(await D({network:s,signer:{address:g,signTypedData:je=>b.request({method:"eth_signTypedData_v4",params:[g,H(je)]})},clientModule:e.circleClientModule,clientModuleUrl:e.circleClientModuleUrl})).pay(f)}async function be(){A(!0);try{g||await T(),A(!0),C("Requesting Gateway unlock...");let f=await x(t.resource,{accessPath:a,source:c,paymentProvider:e.paymentProvider||"circle-gateway-browser",challengeMessage:e.challengeMessage||"Gateway payment required. Connect your wallet to continue...",paymentMessage:e.paymentMessage||"Approve the Gateway payment proof in your wallet...",successMessage:e.successMessage||`Unlocked ${t.resource.title||"content"}.`,checkout:J,onStatus:C});return f.ok&&(S(!0,f.payment||{}),typeof e.onUnlock=="function"&&e.onUnlock(f)),f}catch(f){let b=f?.message||"Unlock failed. Please try again.";return C(b),{ok:!1,status:0,error:b,resource:t.resource}}finally{A(!1),p()}}function Se(){Pe(t.resource),S(!1),C("Local payment proof cleared. The next unlock will require Gateway payment again.")}async function Ee(){let f=_();try{let b=f?await f.request({method:"eth_accounts"}):[];g=Array.isArray(b)&&b[0]||""}catch{}p(),S(!1)}function xe(){return o?.addEventListener?.("click",()=>T().catch(f=>C(f?.message||"Could not connect wallet."))),l?.addEventListener?.("click",()=>F().catch(f=>C(f?.message||"Could not disconnect wallet."))),u?.addEventListener?.("click",()=>be()),y?.addEventListener?.("click",Se),Ee(),v(t.resource,{source:c}),Te}let Te={resource:t.resource,connect:T,disconnect:F,unlock:be,clear:Se,hydrate:Ee,mount:xe,getWalletAddress:()=>g};return e.autoMount!==!1&&xe(),Te}var st="0xc62fad09",ge=`0x${"0".repeat(64)}`,Oe="nibgate:content:v1",He=5042002,qe="Arc Testnet",Ge="https://rpc.testnet.arc.network",pe="0x9f27fd62e75f86a3c7addfdba443aab1f930e281",ze=[{type:"function",name:"rateContent",stateMutability:"nonpayable",inputs:[{name:"contentId",type:"bytes32"},{name:"rating",type:"uint8"},{name:"reviewHash",type:"bytes32"},{name:"unlockRef",type:"string"}],outputs:[]}];function it(r=""){return String(r||"").replace(/^0x/i,"").toLowerCase()}function Be(r=""){let e=it(r);if(e.length>64)throw new Error("ABI word is too long.");return e.padEnd(64,"0")}function ye(r=0){return Number(r||0).toString(16).padStart(64,"0")}function ut(r=""){return Array.from(new TextEncoder().encode(String(r||""))).map(e=>e.toString(16).padStart(2,"0")).join("")}function lt(r=""){let e=ut(r),t=e.length/2,n=Math.ceil(t/32)*64;return ye(t)+e.padEnd(n,"0")}function mt({contentId:r,ratingValue:e,reviewHash:t,unlockRef:n}){return st+Be(r)+ye(e)+Be(t||ge)+ye(128)+lt(n||"")}function he(r,e={}){let t=e.contentId||e.contentHash;if(!t)throw new Error("contentId/contentHash is required. Use the Nibgate backend prepare endpoint or pass a known content hash.");return t}function We(r=""){if(!r)return ge;throw new Error("Text review hashing is not available in direct-browser mode. Pass reviewHash from your app/backend.")}async function dt(r,e={}){if(e.contentId||e.contentHash)return{contentId:e.contentId||e.contentHash};let t=e.prepareUrl||e.indexUrl?.replace(/\/index$/,"/prepare");if(!t)throw new Error("contentId/contentHash or prepareUrl is required for onchain rating.");let n=await fetch(t,{method:"POST",headers:{"content-type":"application/json",...e.indexHeaders||{}},body:JSON.stringify({siteId:e.siteId,token:e.token,resource:r,url:r.url,path:r.path})}),a=await n.json().catch(()=>({}));if(!n.ok||!a.contentHash)throw new Error(a.error||"Could not prepare Nibgate onchain rating.");return a}async function ae(r,e={}){let t=w(r),n=L(e.rating??e.stars??e);if(!n.ratingValue)throw new Error("Rating must be between 0.1 and 5 stars.");let a=e.provider||globalThis?.ethereum;if(!a?.request)throw new Error("Connect an EVM wallet to rate this content onchain.");let c=e.contractAddress||e.reputationContract||pe;if(!c)throw new Error("Nibgate reputation contract address is not configured.");let s=await a.request({method:"eth_requestAccounts"}),m=Array.isArray(s)&&s[0]||"";if(!m)throw new Error("No wallet account selected.");let o=await dt(t,e),l=o.contentHash||o.contentId||he(t,e),u=e.reviewHash||ge,y=String(e.unlockRef||e.paymentId||e.txHash||""),i=mt({contentId:l,ratingValue:n.ratingValue,reviewHash:u,unlockRef:y}),d=await a.request({method:"eth_sendTransaction",params:[{from:m,to:c,data:i}]}),g=P(t,{rating:n.rating,ratingValue:n.ratingValue,walletAddress:m,txHash:d,contentHash:l,reviewHash:u,proofType:"onchain_pending",proof:y,paymentId:e.paymentId,actor:e.actor||"human"});return R("content_rating",g),e.indexUrl&&await fetch(e.indexUrl,{method:"POST",headers:{"content-type":"application/json",...e.indexHeaders||{}},body:JSON.stringify({siteId:e.siteId,token:e.token,txHash:d,resource:t,url:t.url,path:t.path,actor:e.actor||"human"})}).catch(()=>null),{txHash:d,walletAddress:m,contentId:l,ratingValue:n.ratingValue,reviewHash:u}}function V(r,e={},t={}){let n=w(r),a=L(e),c={...t,...a,ratingMessage:t.ratingMessage||e.message||e.ratingMessage||re(n,a,t),ratingSignature:t.ratingSignature||e.signature||e.ratingSignature||void 0,resource:n};return R("content_rating",c)}function ce(r,e={}){let t=E(r,e.gateOptions||{}),n=h(),a=typeof e.status=="string"?n?.document.querySelector(e.status):e.status,c=typeof e.ratingTarget=="string"?n?.document.querySelector(e.ratingTarget):e.ratingTarget,s=e.ratingButtons||e.buttons||"[data-nibgate-rating-value], [data-rating]",o=(Array.isArray(e.buttons)?e.buttons:typeof e.buttons=="string"?Array.from(n?.document.querySelectorAll(e.buttons)||[]):e.buttons?[e.buttons]:null)||Array.from(n?.document.querySelectorAll(s)||[]),l=e.source||"nibgate-onchain-rating",u=!1,y=e.payment||null;function i(p){typeof e.onStatus=="function"&&e.onStatus(p),a&&(a.textContent=p||"")}function d(p){u=!!p,o.forEach(S=>{S&&"disabled"in S&&(S.disabled=u)})}function g(p=null){return y=p||null,y}function k(p){return c&&("hidden"in c&&(c.hidden=!p),c.setAttribute("aria-hidden",p?"false":"true")),!!p}function C(p){let S=p?.dataset?.nibgateRatingValue||p?.dataset?.rating||p?.value||p?.textContent,T=Number.parseFloat(String(S||"").replace(/[^\d.]/g,""));return Number.isFinite(T)?T:Number(e.rating||e.stars||0)}async function j(p={}){d(!0);try{let S=Number.parseFloat(p.rating??p.stars??p.value??e.rating??e.stars);if(!Number.isFinite(S))throw new Error("Choose a rating before sending.");let T=p.paymentId||e.paymentId||(typeof e.getPaymentId=="function"?e.getPaymentId():y?.paymentId),F=p.unlockRef||e.unlockRef||(typeof e.getUnlockRef=="function"?e.getUnlockRef():null)||T||y?.txHash||y?.transactionHash||"";i(e.pendingMessage||"Send the onchain rating transaction...");let J=await ae(t.resource,{...e,...p,rating:S,paymentId:T,unlockRef:F,source:l});return i(e.successMessage||"Rating sent to Nibgate reputation."),typeof e.onRated=="function"&&e.onRated(J),J}catch(S){let T=S?.message||e.errorMessage||"Rating failed.";throw i(T),typeof e.onError=="function"&&e.onError(S),S}finally{d(!1)}}function _(){return o.forEach(p=>{p?.addEventListener?.("click",()=>j({rating:C(p)}).catch(()=>null))}),e.visible!==void 0&&k(!!e.visible),A}let A={resource:t.resource,rate:j,mount:_,setPayment:g,setVisible:k};return e.autoMount!==!1&&_(),A}function oe(r,e={}){let t=E(r,e.gateOptions||{}),n=h();if(!n)return null;let a=typeof e.target=="string"?n.document.querySelector(e.target):e.target;if(!a)return null;let c=[1,2,3,4,5],s=0,m=n.document.createElement("div");m.className="nibgate-rating-ui",m.style.cssText="display:flex;align-items:center;gap:4px;padding:8px 0";let o=c.map(i=>{let d=n.document.createElement("button");return d.type="button",d.dataset.nibgateRatingValue=String(i),d.setAttribute("aria-label",`${i} star${i>1?"s":""}`),d.innerHTML="\u2606",d.style.cssText="background:none;border:none;font-size:24px;cursor:pointer;color:#ccc;transition:color 0.15s;padding:2px;line-height:1",d.addEventListener("mouseenter",()=>{o.forEach((g,k)=>g.style.color=k<i?"#f5b342":"#ccc")}),d.addEventListener("mouseleave",()=>{o.forEach((g,k)=>g.style.color=k<s?"#f5b342":"#ccc")}),d.addEventListener("click",()=>{s=i,o.forEach((g,k)=>g.style.color=k<i?"#f5b342":"#ccc"),V(t.resource,{rating:i}).catch(()=>{})}),m.appendChild(d),d}),l=n.document.createElement("span");l.style.cssText="font-size:13px;color:#888;margin-left:8px",l.textContent=e.label||"Rate this content",m.appendChild(l),a.appendChild(m);function u(i,d={}){return t.rate({...d,rating:i})}function y(i){s=i,o.forEach((d,g)=>d.style.color=g<i?"#f5b342":"#ccc")}return{resource:t.resource,container:m,setRating:y,rate:u}}function $(r,e={}){let t=w({...r,paymentRail:"transfer"}),n=e.sendTransfer||e.transfer;if(typeof n!="function")throw new Error("createTransferCheckout requires sendTransfer({ resource, recipient, amount, currency, network }) and a server verifyTransfer hook.");return{resource:t,async pay(a={}){let c=t.recipient||t.payTo,s=String(t.price||t.amount||"0"),m=t.currency||"USDC",o=e.network||a.challenge?.accepts?.[0]?.network||"eip155:5042002",l=await n({resource:t,recipient:c,amount:s,currency:m,network:o,challenge:a.challenge}),u=l?.txHash||l?.hash||l?.transactionHash||l?.paymentId||"";if(!u)throw new Error("Transfer checkout did not return a txHash.");return{paymentSignature:u,signature:u,memo:l.memo||"",metadata:{paymentProvider:"direct-transfer",paymentId:u,txHash:u,recipient:c,amount:Number(s),currency:m,network:o,...l.metadata||l}}}}}async function se(r,e={}){let n=await(e.checkout||$(r,e).pay)({resource:w(r),challenge:e.challenge||null}),a=n?.metadata?.txHash||n?.txHash||n?.paymentSignature||n?.signature||"";if(!a)throw new Error("Transfer checkout did not return a txHash.");return x(r,{...e,headers:{...e.headers||{},"x-nibgate-transfer-tx":a},payment:n.metadata||{paymentProvider:"direct-transfer",txHash:a,paymentId:a}})}function we(r={}){let e=r.resource?w(r.resource):null;function t(n={}){return w({...e||{},...typeof n=="string"?{id:n}:n})}return{content(n,a={}){return R("content_registered",P(t(n),a))},registerContent(n,a={}){return R("content_registered",P(t(n),a))},view(n,a={}){return R("resource_view",P(t(n),a))},track(n,a={}){return R(n||"custom",a)},unlockStarted(n,a={}){return R("unlock_started",P(t(n),a))},unlockCompleted(n,a={}){return R("unlock_completed",P(t(n),a))},paymentCompleted(n,a={}){return R("payment_completed",P(t(n),a))},rateResource(n,a={},c={}){return V(t(n),a,c)},ratingMessage(n,a={},c={}){return re(t(n),a,c)},gate(n,a={}){return E(t(n),{...a,client:this})},trackResourcePage(n,a={}){return v(t(n),a)},checkResourceAccess(n,a={}){return x(t(n),a)},payWithPaymentSignature(n,a={}){return z(t(n),a)},createWalletCheckout(n,a={}){return te(t(n),a)},createCircleGatewayBrowserAdapter(n={}){return D(n)},createTransferCheckout(n,a={}){return $(t(n),a)},payWithTransfer(n,a={}){return se(t(n),a)},createEvmGatewayUnlock(n,a={}){return ne(t(n),a)},createOnchainRating(n,a={}){return ce(t(n),a)},mountRatingUI(n,a={}){return oe(t(n),a)},payAndUnlockResource(n,a={}){return W(t(n),a)},setupResourcePage(n,a={}){return ee(t(n),a)},normalizeResource:t,normalizeContentType:N,flush:K}}var ke=we();Ne(ke);var Le=[{name:"publishToNibgate",label:"Publish to Nibgate discovery",type:"boolean",defaultValue:!0},{name:"type",label:"Content type",type:"select",options:U,defaultValue:"article"},{name:"humanAccess",label:"Human access",type:"select",options:B,defaultValue:"paid"},{name:"agentAccess",label:"Agent access",type:"select",options:B,defaultValue:"paid"},{name:"unlockMode",label:"Unlock mode",type:"select",options:G,defaultValue:"one_time"},{name:"paymentRail",label:"Payment rail",type:"select",options:q,defaultValue:"gateway"},{name:"price",label:"Price",type:"text",defaultValue:"0.005"},{name:"currency",label:"Currency",type:"text",defaultValue:"USDC"},{name:"recipient",label:"Recipient wallet",type:"wallet",defaultValue:""},{name:"ratingsEnabled",label:"Enable ratings",type:"boolean",defaultValue:!0},{name:"license",label:"License / terms",type:"textarea",defaultValue:""}];function De(r={}){let e=I(r.access||{humans:r.humanAccess,agents:r.agentAccess}),t=O(r.unlock||r.unlockMode||"one_time");return{publishToNibgate:r.publishToNibgate??r.publishedToNibgate??!0,type:N(r.type||r.contentType||"article"),humanAccess:e.humans,agentAccess:e.agents,unlockMode:t.mode,paymentRail:M(r.paymentRail||r.paymentMode||r.rail),price:String(r.price??r.amount??"0.005"),currency:r.currency||"USDC",recipient:r.recipient||r.payTo||r.receiverAddress||r.creatorWallet||"",ratingsEnabled:r.ratingsEnabled??r.enableRatings??r.reputation?.ratingsEnabled??!0,license:r.license||r.terms||""}}function Ve(r={}){return I({humans:r.humanAccess,agents:r.agentAccess})}function $e(r={}){return O(r.unlockMode||r.unlock||"one_time")}return Ke(ft);})();
3
3
  //# sourceMappingURL=nibgate.min.js.map