@permaweb/libs 0.0.24 → 0.0.25

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.
package/dist/index.cjs CHANGED
@@ -24,5 +24,5 @@
24
24
  ${b}
25
25
  }
26
26
  }
27
- }`;return e.queryKey&&(Z=`${e.queryKey}: ${Z}`),Z}async function Ve(e){try{return await(await fetch(`https://${e.gateway}/graphql`,{method:"POST",headers:{"Content-Type":"application/json"},body:e.query})).json()}catch(t){throw t}}var He=f.goldsky,Je=100;async function le(e,t){let n=[{name:"Authority",value:d.mu}];t.tags&&t.tags.length>0&&t.tags.forEach(r=>n.push(r));try{let r=await e.ao.spawn({module:t.module,scheduler:t.scheduler,signer:e.signer,tags:n,data:t.data});return m(`Process ID: ${r}`),r}catch(r){throw new Error(r.message??"Error spawning process")}}function pe(e){return async t=>await D(e,t)}async function D(e,t){try{let n=[{name:"Action",value:t.action}];t.tags&&n.push(...t.tags);let r=t.useRawData?t.data:JSON.stringify(t.data);return await e.ao.message({process:t.processId,signer:e.signer,tags:n,data:r})}catch(n){throw new Error(n)}}function ue(e){return async t=>await h(e,t)}async function h(e,t){try{let n=[{name:"Action",value:t.action}];t.tags&&n.push(...t.tags);let r;if(typeof t.data=="object")r=JSON.stringify(t.data||{});else if(typeof t.data=="string"){try{JSON.parse(t.data)}catch(a){throw console.error(a),new Error("Invalid JSON data")}r=t.data}let o=await e.ao.dryrun({process:t.processId,tags:n,data:r});if(o.Messages&&o.Messages.length){if(o.Messages[0].Data)return JSON.parse(o.Messages[0].Data);if(o.Messages[0].Tags)return o.Messages[0].Tags.reduce((a,s)=>(a[s.name]=s.value,a),{})}}catch(n){throw new Error(n.message??"Error dryrunning process")}}async function Ye(e,t){try{let{Messages:n}=await e.ao.result({message:t.messageId,process:t.processId});if(n&&n.length){let r={};return n.forEach(o=>{let a=U(o.Tags,"Action")||t.action,s=null,u=o.Data;if(u)try{s=JSON.parse(u)}catch{s=u}let l=U(o.Tags,"Status"),g=U(o.Tags,"Message");r[a]={id:t.messageId,status:l,message:g,data:s}}),r}else return null}catch(n){console.error(n)}}async function ye(e,t){let n=null;if(t.evalSrc?n=t.evalSrc:t.evalTxId&&(n=await Ke(t.evalTxId)),n)try{let r=await D(e,{processId:t.processId,action:"Eval",data:n,tags:t.evalTags||null,useRawData:!0});return m(`Eval: ${r}`),await Ye(e,{processId:t.processId,messageId:r,action:"Eval"})}catch(r){throw new Error(r.message??"Error sending process eval")}return null}function de(e){return async(t,n)=>{try{let r={module:t.module||d.module,scheduler:t.scheduler||d.scheduler};t.spawnData&&(r.data=t.spawnData),t.spawnTags&&(r.tags=t.spawnTags),n&&n("Spawning process...");let o=await le(e,r);if(t.evalTxId||t.evalSrc){n&&n("Retrieving process..."),await me(o,n),n&&n("Process retrieved!"),n&&n("Sending eval...");try{await ye(e,{processId:o,evalTxId:t.evalTxId||null,evalSrc:t.evalSrc||null,evalTags:t.evalTags})&&n&&n("Eval complete")}catch(a){throw new Error(a.message??"Error creating process")}}return o}catch(r){throw new Error(r.message??"Error creating process")}}}async function S(e,t,n){try{let r={module:t.module||d.module,scheduler:t.scheduler||d.scheduler};t.spawnData&&(r.data=t.spawnData),t.spawnTags&&(r.tags=t.spawnTags),n&&n("Spawning process...");let o=await le(e,r);if(n&&n("Retrieving process..."),await me(o,n),t.evalTxId||t.evalSrc){n&&n("Process retrieved!"),n&&n("Sending eval...");try{await ye(e,{processId:o,evalTxId:t.evalTxId||null,evalSrc:t.evalSrc||null,evalTags:t.evalTags})&&n&&n("Eval complete")}catch(a){throw new Error(a.message??"Error creating process")}}return o}catch(r){throw new Error(r.message??"Error creating process")}}async function me(e,t){let n=0;for(;n<Je;){await new Promise(o=>setTimeout(o,2e3));let r=await x({gateway:He,ids:[e]});if(r?.data?.length){let o=r.data[0].node.id;return m(`Process found: ${o} (Try ${n+1})`),o}else m(`Process not found: ${e} (Try ${n+1})`),n++}throw new Error("Process not found, please try again")}async function Ke(e){try{return await(await fetch($(e))).text()}catch(t){throw new Error(t)}}var Gt=c(i(),1);function ge(e){return async t=>{if(L(t))return t;if(!e.arweave)throw new Error("Must initialize with Arweave in order to create transactions");try{return await fe(e,{data:t})}catch(n){throw new Error(n.message??"Error resolving transaction")}}}async function I(e,t){if(L(t))return t;if(!e.arweave)throw new Error("Must initialize with Arweave in order to create transactions");try{return await fe(e,{data:t})}catch(n){throw new Error(n.message??"Error resolving transaction")}}async function fe(e,t){let n=null,r=null;try{typeof t.data=="string"&&t.data.startsWith("data:")&&(n=Buffer.from(ae(t.data),"base64"),r=oe(t.data))}catch(o){throw new Error(o)}if(n&&r){let o=se(n);if(m(`Content upload size: ${o}`),o<Number(re.dispatchUploadSize)){let a=await e.arweave.createTransaction({data:n},"use_wallet");return a.addTag(p.keys.contentType,r),t.tags&&t.tags.length>0&&t.tags.forEach(u=>a.addTag(u.name,u.value)),(await global.window.arweaveWallet.dispatch(a)).id}else throw new Error("Data exceeds max upload limit")}else throw new Error("Error preparing transaction data")}var wn=c(i(),1);var Ft=c(i(),1);function B(e){return async(t,n)=>{let r=tt(t);if(r)throw new Error(r);let o=ne[t.contentType]?.serialize(t.data)??t.data,a=et(t);try{return await S(e,{spawnTags:a,spawnData:o},n?u=>n(u):void 0)}catch(s){throw new Error(s.message??"Error creating asset")}}}async function j(e,t,n){try{let r=A(await h(e,{processId:t,action:"Info"}));if(n?.useGateway){let o=await x({gateway:f.goldsky,ids:[t],tags:null,owners:null,cursor:null});return{...o?.data?.[0]?Q(o.data[0]):{},...r}}return{id:t,...r}}catch(r){throw new Error(r.message||"Error fetching atomic asset")}}function Te(e){return async(t,n)=>await j(e,t,n)}async function he(e){try{let t=await x({gateway:f.arweave,ids:e??null,tags:null,owners:null,cursor:null});return t&&t.data.length?t.data.map(n=>Q(n)):null}catch(t){throw new Error(t)}}function Q(e){let t={id:e.node.id,owner:e.node.owner.address};for(let n of e.node.tags){let r=n.name,a=(r.startsWith(`${p.keys.bootloader}-`)?r.slice(`${p.keys.bootloader}-`.length):r).split("-").map((u,l)=>l===0?u.toLowerCase():u.charAt(0).toUpperCase()+u.slice(1).toLowerCase()).join(""),s;try{s=JSON.parse(n.value)}catch{s=n.value.toString()}t[a]=s}return t}function et(e){let t=[{name:p.keys.bootloaderInit,value:e.src??d.src.asset},{name:p.keys.creator,value:e.creator},{name:p.keys.assetType,value:e.assetType},{name:p.keys.contentType,value:e.contentType},{name:p.keys.implements,value:"ANS-110"},{name:p.keys.dateCreated,value:new Date().getTime().toString()},T("Name",e.name),T("Description",e.description),T("Topics",JSON.stringify(e.topics)),T("Ticker","ATOMIC"),T("Denomination",e.denomination?.toString()??"1"),T("TotalSupply",e.supply?.toString()??"1"),T("Transferable",e.transferable?.toString()??"true"),T("Creator",e.creator)];if(e.metadata)for(let n in e.metadata)t.push(T(R(n),e.metadata[n].toString()));return e.tags&&e.tags.forEach(n=>t.push(n)),t}function tt(e){if(typeof e!="object"||e===null)return"The provided arguments are invalid or empty.";let t=["name","description","topics","creator","data","contentType","assetType"];for(let n of t)if(!(n in e))return`Missing field '${n}'`;return typeof e.name!="string"||e.name.trim()===""?"Name is required":typeof e.description!="string"?"The description must be a valid string":!Array.isArray(e.topics)||e.topics.length===0?"Topics are required":typeof e.creator!="string"||e.creator.trim()===""?"Creator is required":e.data===void 0||e.data===null?"Data field is required":typeof e.contentType!="string"||e.contentType.trim()===""?"Content type must be a non-empty string":typeof e.assetType!="string"||e.assetType.trim()===""?"Type must be a non-empty string":"supply"in e&&(typeof e.supply!="number"||e.supply<=0)?"Supply must be a positive number":"denomination"in e&&(typeof e.denomination!="number"||e.denomination<=0)?"Denomination must be a positive number":"transferable"in e&&typeof e.transferable!="boolean"?"Transferable must be a boolean value":"metadata"in e&&typeof e.metadata!="object"?"Metadata must be an object":"tags"in e&&(!Array.isArray(e.tags)||e.tags.some(n=>typeof n!="object"))?"Tags must be an array of objects":"src"in e&&typeof e.src!="string"?"Source must be a valid string":null}var Kt=c(i(),1);var nt="eXCtpVbcd_jZ0dmU2PZ8focaKxBGECBQ8wMib7sIVPo",G="lJovHqM9hwNjHV5JoY9NGWtt0WD-5D4gOqNL2VWW5jk";function we(e){return async(t,n)=>{if(!e.signer)throw new Error("No signer provided");let r=new Date().getTime().toString(),o=[{name:p.keys.contentType,value:"application/json"},{name:p.keys.creator,value:t.creator},{name:p.keys.ans110.title,value:W(t.title)},{name:p.keys.ans110.description,value:W(t.description)},{name:p.keys.ans110.type,value:p.values.document},{name:p.keys.dateCreated,value:r},{name:p.keys.name,value:W(t.title)},{name:"Action",value:"Add-Collection"}],a=null,s=null;try{a=t.banner?await I(e,t.thumbnail):G,s=t.banner?await I(e,t.banner):nt,t.thumbnail&&o.push({name:p.keys.thumbnail,value:a}),t.banner&&o.push({name:p.keys.banner,value:s})}catch(g){console.error(g)}let u=await fetch($(d.src.collection));if(!u.ok)throw new Error("Unable to fetch process src");let l=await u.text();l=l.replace(/'<NAME>'/g,F(t.title)),l=l.replace(/'<DESCRIPTION>'/g,F(t.description)),l=l.replace(/<CREATOR>/g,t.creator),l=l.replace(/<THUMBNAIL>/g,a||G),l=l.replace(/<BANNER>/g,s||G),l=l.replace(/<DATECREATED>/g,r),l=l.replace(/<LASTUPDATE>/g,r);try{let g=await S(e,{spawnTags:o},n?k=>n(k):void 0);m("Sending eval message to collection..."),n&&n("Sending eval message to collection..."),await e.ao.message({process:g,signer:e.signer,tags:[{name:"Action",value:"Eval"}],data:l});let b=[{name:"Action",value:"Add-Collection"},{name:"CollectionId",value:g},{name:"Name",value:W(t.title)},{name:"Creator",value:t.creator},{name:"DateCreated",value:r}];return s&&b.push({name:"Banner",value:s}),a&&b.push({name:"Thumbnail",value:a}),t.skipRegistry||(m("Sending collection to registry..."),n&&n("Sending collection to registry..."),await e.ao.message({process:d.collectionRegistry,signer:e.signer,tags:b})),m("Sending profile request..."),n&&n("Sending profile request..."),await e.ao.message({process:g,signer:e.signer,tags:[{name:"Action",value:"Add-Collection-To-Profile"},{name:"ProfileProcess",value:t.creator}]}),g}catch(g){throw new Error(g.message??"Error creating collection")}}}function ve(e){return async t=>await D(e,{processId:t.creator,action:"Run-Action",tags:[{name:"ForwardTo",value:t.collectionId},{name:"ForwardAction",value:"Update-Assets"}],data:{Target:t.collectionId,Action:"Update-Assets",Input:JSON.stringify({AssetIds:t.assetIds,UpdateType:t.updateType})}})}function Ae(e){return async t=>{let n=await h(e,{processId:t,action:"Info"});return{...{id:t,title:n.Name,description:n.Description,creator:n.Creator,dateCreated:n.DateCreated,thumbnail:n.Thumbnail??G,banner:n.Banner??G},assetIds:n.Assets}}}function xe(e){return async t=>{let n=t.creator?"Get-Collections-By-User":"Get-Collections",r=await h(e,{processId:d.collectionRegistry,action:n,tags:t.creator?[{name:"Creator",value:t.creator}]:null});return r&&r.Collections&&r.Collections.length?r.Collections.map(a=>({id:a.Id,title:a.Name.replace(/\[|\]/g,""),description:a.Description,creator:a.Creator,dateCreated:a.DateCreated,banner:a.Banner,thumbnail:a.Thumbnail})):null}}var on=c(i(),1);function De(e){let t=B(e);return async(n,r)=>{let o=n.tags?n.tags:[];o.push({name:"Data-Source",value:n.parentId}),o.push({name:"Root-Source",value:n.rootId??n.parentId});let a={name:`Comment on ${n.parentId}`,description:`Comment on ${n.parentId}`,topics:["comment"],creator:n.creator,data:n.content,contentType:"text/plain",assetType:"comment",tags:o};return t(a,r)}}function be(e){return async t=>{try{let n=await j(e,t,{useGateway:!0}),r=n?.dataSource,o=n?.rootSource;if(!r||!o)throw new Error("dataSource and rootSource must be present on a comment");return{content:await Pe(t),parentId:r,rootId:o}}catch(n){throw new Error(n.message??"Error getting comment")}}}function Ce(e){return async t=>{if(!t.parentId&&!t.rootId)throw new Error("Must provide either parentId or rootId");let n=[];t.parentId&&n.push({name:"Data-Source",values:[t.parentId??""]}),t.rootId&&n.push({name:"Root-Source",values:[t.rootId??""]});let r=await x({gateway:f.goldsky,ids:null,tags:n,owners:null,cursor:null}),o=[];r&&r.data.length&&(o=r.data.map(s=>Q(s)));let a=[];for(let s of o){let u=s?.dataSource,l=s?.rootSource;if(!u||!l)throw new Error("dataSource and rootSource must be present on a comment");a.push({id:s.id,content:await Pe(s.id),parentId:u,rootId:l})}return a}}async function Pe(e){try{return await(await fetch($(e))).text()}catch(t){throw new Error(t.message??"Error getting comment data")}}var hn=c(i(),1);var pn=c(i(),1);function _(e){return async(t,n)=>{try{let r=[{name:p.keys.bootloaderInit,value:d.src.zone}];return t.tags&&t.tags.length&&t.tags.forEach(a=>r.push(a)),await S(e,{spawnTags:r},n?a=>n(a):void 0)}catch(r){throw new Error(r.message??"Error creating zone")}}}function V(e){return async(t,n)=>{try{let r=Object.entries(t).map(([a,s])=>({key:a,value:s}));return await D(e,{processId:n,action:"Zone-Update",data:r})}catch(r){throw new Error(r)}}}function Se(e){return async(t,n)=>{try{return await D(e,{processId:n,action:"Zone-Append",tags:[{name:"Path",value:t.path}],data:t.data})}catch(r){throw new Error(r)}}}function H(e){return async t=>{try{let n=await h(e,{processId:t,action:"Info"});return A(n)}catch(n){throw new Error(n)}}}function Ie(e){return async(t,n)=>{try{if(!e.signer)throw new Error("No signer provided");let o=[{name:"Date-Created",value:new Date().getTime().toString()},{name:"Action",value:"Create-Profile"}],a=null,s=null;try{t.thumbnail&&(a=await I(e,t.thumbnail)),t.banner&&(s=await I(e,t.banner))}catch(b){console.error(b)}let u=await S(e,{spawnTags:o,evalTxId:d.src.profile},b=>m(b)),l={UserName:t.userName,DisplayName:t.displayName,Description:t.description};a&&(l.ProfileImage=a),s&&(l.CoverImage=s),m("Updating profile..."),n&&n("Updating profile...");let g=await D(e,{processId:u,action:"Update-Profile",data:l});return m(`Profile update: ${g}`),u}catch(r){throw new Error(r.message??"Error creating profile")}}}function Ee(e){return async(t,n,r)=>{if(n){let o={UserName:t.userName,DisplayName:t.displayName,Description:t.description};if(t.thumbnail)try{o.Thumbnail=await I(e,t.thumbnail)}catch(a){r&&r(`Failed to resolve thumbnail: ${a.message}`)}if(t.banner)try{o.Banner=await I(e,t.banner)}catch(a){r&&r(`Failed to resolve banner: ${a.message}`)}try{m("Updating profile..."),r&&r("Updating profile...");let a=await D(e,{processId:n,action:"Update-Profile",data:o});return m(`Profile update: ${a}`),a}catch(a){throw new Error(a.message??"Error updating profile")}}else throw new Error("No profile provided")}}function J(e){return async t=>{try{let n=await h(e,{processId:t,action:"Info"}),{Profile:r={},...o}=n,a={...o,...r};return{id:t,...A(a)}}catch(n){throw new Error(n.message??"Error fetching profile")}}}function Ne(e){let t=J(e);return async n=>{try{let r=await h(e,{processId:d.profileRegistry,action:"Get-Profiles-By-Delegate",data:{Address:n}}),o;if(r&&r.length>0&&r[0].ProfileId)return o=r[0].ProfileId,await t(o)}catch(r){throw new Error(r.message??"Error fetching profile")}}}globalThis.Buffer||(globalThis.Buffer=Re.Buffer);function ot(e){return{createZone:_(e),updateZone:V(e),addToZone:Se(e),getZone:H(e),createProfile:Ie(e),updateProfile:Ee(e),getProfileById:J(e),getProfileByWalletAddress:Ne(e),createAtomicAsset:B(e),getAtomicAsset:Te(e),getAtomicAssets:he,createComment:De(e),getComment:be(e),getComments:Ce(e),createCollection:we(e),updateCollectionAssets:ve(e),getCollection:Ae(e),getCollections:xe(e),resolveTransaction:ge(e),getGQLData:x,createProcess:de(e),readProcess:ue(e),sendMessage:pe(e),mapFromProcessCase:A,mapToProcessCase:R}}var at={init:ot};
27
+ }`;return e.queryKey&&(Z=`${e.queryKey}: ${Z}`),Z}async function Ve(e){try{return await(await fetch(`https://${e.gateway}/graphql`,{method:"POST",headers:{"Content-Type":"application/json"},body:e.query})).json()}catch(t){throw t}}var He=f.goldsky,Je=100;async function le(e,t){let n=[{name:"Authority",value:d.mu}];t.tags&&t.tags.length>0&&t.tags.forEach(r=>n.push(r));try{let r=await e.ao.spawn({module:t.module,scheduler:t.scheduler,signer:e.signer,tags:n,data:t.data});return m(`Process ID: ${r}`),r}catch(r){throw new Error(r.message??"Error spawning process")}}function pe(e){return async t=>await D(e,t)}async function D(e,t){try{let n=[{name:"Action",value:t.action}];t.tags&&n.push(...t.tags);let r=t.useRawData?t.data:JSON.stringify(t.data);return await e.ao.message({process:t.processId,signer:e.signer,tags:n,data:r})}catch(n){throw new Error(n)}}function ue(e){return async t=>await h(e,t)}async function h(e,t){try{let n=[{name:"Action",value:t.action}];t.tags&&n.push(...t.tags);let r;if(typeof t.data=="object")r=JSON.stringify(t.data||{});else if(typeof t.data=="string"){try{JSON.parse(t.data)}catch(a){throw console.error(a),new Error("Invalid JSON data")}r=t.data}let o=await e.ao.dryrun({process:t.processId,tags:n,data:r});if(o.Messages&&o.Messages.length){if(o.Messages[0].Data)return JSON.parse(o.Messages[0].Data);if(o.Messages[0].Tags)return o.Messages[0].Tags.reduce((a,s)=>(a[s.name]=s.value,a),{})}}catch(n){throw new Error(n.message??"Error dryrunning process")}}async function Ye(e,t){try{let{Messages:n}=await e.ao.result({message:t.messageId,process:t.processId});if(n&&n.length){let r={};return n.forEach(o=>{let a=U(o.Tags,"Action")||t.action,s=null,u=o.Data;if(u)try{s=JSON.parse(u)}catch{s=u}let l=U(o.Tags,"Status"),g=U(o.Tags,"Message");r[a]={id:t.messageId,status:l,message:g,data:s}}),r}else return null}catch(n){console.error(n)}}async function ye(e,t){let n=null;if(t.evalSrc?n=t.evalSrc:t.evalTxId&&(n=await Ke(t.evalTxId)),n)try{let r=await D(e,{processId:t.processId,action:"Eval",data:n,tags:t.evalTags||null,useRawData:!0});return m(`Eval: ${r}`),await Ye(e,{processId:t.processId,messageId:r,action:"Eval"})}catch(r){throw new Error(r.message??"Error sending process eval")}return null}function de(e){return async(t,n)=>{try{let r={module:t.module||d.module,scheduler:t.scheduler||d.scheduler};t.data&&(r.data=t.data),t.tags&&(r.tags=t.tags),n&&n("Spawning process...");let o=await le(e,r);if(n&&n("Retrieving process..."),await me(o,n),t.evalTxId||t.evalSrc){n&&n("Process retrieved!"),n&&n("Sending eval...");try{await ye(e,{processId:o,evalTxId:t.evalTxId||null,evalSrc:t.evalSrc||null,evalTags:t.evalTags})&&n&&n("Eval complete")}catch(a){throw new Error(a.message??"Error creating process")}}return o}catch(r){throw new Error(r.message??"Error creating process")}}}async function S(e,t,n){try{let r={module:t.module||d.module,scheduler:t.scheduler||d.scheduler};t.data&&(r.data=t.data),t.tags&&(r.tags=t.tags),n&&n("Spawning process...");let o=await le(e,r);if(n&&n("Retrieving process..."),await me(o,n),t.evalTxId||t.evalSrc){n&&n("Process retrieved!"),n&&n("Sending eval...");try{await ye(e,{processId:o,evalTxId:t.evalTxId||null,evalSrc:t.evalSrc||null,evalTags:t.evalTags})&&n&&n("Eval complete")}catch(a){throw new Error(a.message??"Error creating process")}}return o}catch(r){throw new Error(r.message??"Error creating process")}}async function me(e,t){let n=0;for(;n<Je;){await new Promise(o=>setTimeout(o,2e3));let r=await x({gateway:He,ids:[e]});if(r?.data?.length){let o=r.data[0].node.id;return m(`Process found: ${o} (Try ${n+1})`),o}else m(`Process not found: ${e} (Try ${n+1})`),n++}throw new Error("Process not found, please try again")}async function Ke(e){try{return await(await fetch($(e))).text()}catch(t){throw new Error(t)}}var Gt=c(i(),1);function ge(e){return async t=>{if(L(t))return t;if(!e.arweave)throw new Error("Must initialize with Arweave in order to create transactions");try{return await fe(e,{data:t})}catch(n){throw new Error(n.message??"Error resolving transaction")}}}async function I(e,t){if(L(t))return t;if(!e.arweave)throw new Error("Must initialize with Arweave in order to create transactions");try{return await fe(e,{data:t})}catch(n){throw new Error(n.message??"Error resolving transaction")}}async function fe(e,t){let n=null,r=null;try{typeof t.data=="string"&&t.data.startsWith("data:")&&(n=Buffer.from(ae(t.data),"base64"),r=oe(t.data))}catch(o){throw new Error(o)}if(n&&r){let o=se(n);if(m(`Content upload size: ${o}`),o<Number(re.dispatchUploadSize)){let a=await e.arweave.createTransaction({data:n},"use_wallet");return a.addTag(p.keys.contentType,r),t.tags&&t.tags.length>0&&t.tags.forEach(u=>a.addTag(u.name,u.value)),(await global.window.arweaveWallet.dispatch(a)).id}else throw new Error("Data exceeds max upload limit")}else throw new Error("Error preparing transaction data")}var wn=c(i(),1);var Ft=c(i(),1);function B(e){return async(t,n)=>{let r=tt(t);if(r)throw new Error(r);let o=ne[t.contentType]?.serialize(t.data)??t.data,a=et(t);try{return await S(e,{tags:a,data:o},n?u=>n(u):void 0)}catch(s){throw new Error(s.message??"Error creating asset")}}}async function j(e,t,n){try{let r=A(await h(e,{processId:t,action:"Info"}));if(n?.useGateway){let o=await x({gateway:f.goldsky,ids:[t],tags:null,owners:null,cursor:null});return{...o?.data?.[0]?Q(o.data[0]):{},...r}}return{id:t,...r}}catch(r){throw new Error(r.message||"Error fetching atomic asset")}}function Te(e){return async(t,n)=>await j(e,t,n)}async function he(e){try{let t=await x({gateway:f.arweave,ids:e??null,tags:null,owners:null,cursor:null});return t&&t.data.length?t.data.map(n=>Q(n)):null}catch(t){throw new Error(t)}}function Q(e){let t={id:e.node.id,owner:e.node.owner.address};for(let n of e.node.tags){let r=n.name,a=(r.startsWith(`${p.keys.bootloader}-`)?r.slice(`${p.keys.bootloader}-`.length):r).split("-").map((u,l)=>l===0?u.toLowerCase():u.charAt(0).toUpperCase()+u.slice(1).toLowerCase()).join(""),s;try{s=JSON.parse(n.value)}catch{s=n.value.toString()}t[a]=s}return t}function et(e){let t=[{name:p.keys.bootloaderInit,value:e.src??d.src.asset},{name:p.keys.creator,value:e.creator},{name:p.keys.assetType,value:e.assetType},{name:p.keys.contentType,value:e.contentType},{name:p.keys.implements,value:"ANS-110"},{name:p.keys.dateCreated,value:new Date().getTime().toString()},T("Name",e.name),T("Description",e.description),T("Topics",JSON.stringify(e.topics)),T("Ticker","ATOMIC"),T("Denomination",e.denomination?.toString()??"1"),T("TotalSupply",e.supply?.toString()??"1"),T("Transferable",e.transferable?.toString()??"true"),T("Creator",e.creator)];if(e.metadata)for(let n in e.metadata)t.push(T(R(n),e.metadata[n].toString()));return e.tags&&e.tags.forEach(n=>t.push(n)),t}function tt(e){if(typeof e!="object"||e===null)return"The provided arguments are invalid or empty.";let t=["name","description","topics","creator","data","contentType","assetType"];for(let n of t)if(!(n in e))return`Missing field '${n}'`;return typeof e.name!="string"||e.name.trim()===""?"Name is required":typeof e.description!="string"?"The description must be a valid string":!Array.isArray(e.topics)||e.topics.length===0?"Topics are required":typeof e.creator!="string"||e.creator.trim()===""?"Creator is required":e.data===void 0||e.data===null?"Data field is required":typeof e.contentType!="string"||e.contentType.trim()===""?"Content type must be a non-empty string":typeof e.assetType!="string"||e.assetType.trim()===""?"Type must be a non-empty string":"supply"in e&&(typeof e.supply!="number"||e.supply<=0)?"Supply must be a positive number":"denomination"in e&&(typeof e.denomination!="number"||e.denomination<=0)?"Denomination must be a positive number":"transferable"in e&&typeof e.transferable!="boolean"?"Transferable must be a boolean value":"metadata"in e&&typeof e.metadata!="object"?"Metadata must be an object":"tags"in e&&(!Array.isArray(e.tags)||e.tags.some(n=>typeof n!="object"))?"Tags must be an array of objects":"src"in e&&typeof e.src!="string"?"Source must be a valid string":null}var Kt=c(i(),1);var nt="eXCtpVbcd_jZ0dmU2PZ8focaKxBGECBQ8wMib7sIVPo",G="lJovHqM9hwNjHV5JoY9NGWtt0WD-5D4gOqNL2VWW5jk";function we(e){return async(t,n)=>{if(!e.signer)throw new Error("No signer provided");let r=new Date().getTime().toString(),o=[{name:p.keys.contentType,value:"application/json"},{name:p.keys.creator,value:t.creator},{name:p.keys.ans110.title,value:W(t.title)},{name:p.keys.ans110.description,value:W(t.description)},{name:p.keys.ans110.type,value:p.values.document},{name:p.keys.dateCreated,value:r},{name:p.keys.name,value:W(t.title)},{name:"Action",value:"Add-Collection"}],a=null,s=null;try{a=t.banner?await I(e,t.thumbnail):G,s=t.banner?await I(e,t.banner):nt,t.thumbnail&&o.push({name:p.keys.thumbnail,value:a}),t.banner&&o.push({name:p.keys.banner,value:s})}catch(g){console.error(g)}let u=await fetch($(d.src.collection));if(!u.ok)throw new Error("Unable to fetch process src");let l=await u.text();l=l.replace(/'<NAME>'/g,F(t.title)),l=l.replace(/'<DESCRIPTION>'/g,F(t.description)),l=l.replace(/<CREATOR>/g,t.creator),l=l.replace(/<THUMBNAIL>/g,a||G),l=l.replace(/<BANNER>/g,s||G),l=l.replace(/<DATECREATED>/g,r),l=l.replace(/<LASTUPDATE>/g,r);try{let g=await S(e,{tags:o},n?k=>n(k):void 0);m("Sending eval message to collection..."),n&&n("Sending eval message to collection..."),await e.ao.message({process:g,signer:e.signer,tags:[{name:"Action",value:"Eval"}],data:l});let b=[{name:"Action",value:"Add-Collection"},{name:"CollectionId",value:g},{name:"Name",value:W(t.title)},{name:"Creator",value:t.creator},{name:"DateCreated",value:r}];return s&&b.push({name:"Banner",value:s}),a&&b.push({name:"Thumbnail",value:a}),t.skipRegistry||(m("Sending collection to registry..."),n&&n("Sending collection to registry..."),await e.ao.message({process:d.collectionRegistry,signer:e.signer,tags:b})),m("Sending profile request..."),n&&n("Sending profile request..."),await e.ao.message({process:g,signer:e.signer,tags:[{name:"Action",value:"Add-Collection-To-Profile"},{name:"ProfileProcess",value:t.creator}]}),g}catch(g){throw new Error(g.message??"Error creating collection")}}}function ve(e){return async t=>await D(e,{processId:t.creator,action:"Run-Action",tags:[{name:"ForwardTo",value:t.collectionId},{name:"ForwardAction",value:"Update-Assets"}],data:{Target:t.collectionId,Action:"Update-Assets",Input:JSON.stringify({AssetIds:t.assetIds,UpdateType:t.updateType})}})}function Ae(e){return async t=>{let n=await h(e,{processId:t,action:"Info"});return{...{id:t,title:n.Name,description:n.Description,creator:n.Creator,dateCreated:n.DateCreated,thumbnail:n.Thumbnail??G,banner:n.Banner??G},assetIds:n.Assets}}}function xe(e){return async t=>{let n=t.creator?"Get-Collections-By-User":"Get-Collections",r=await h(e,{processId:d.collectionRegistry,action:n,tags:t.creator?[{name:"Creator",value:t.creator}]:null});return r&&r.Collections&&r.Collections.length?r.Collections.map(a=>({id:a.Id,title:a.Name.replace(/\[|\]/g,""),description:a.Description,creator:a.Creator,dateCreated:a.DateCreated,banner:a.Banner,thumbnail:a.Thumbnail})):null}}var on=c(i(),1);function De(e){let t=B(e);return async(n,r)=>{let o=n.tags?n.tags:[];o.push({name:"Data-Source",value:n.parentId}),o.push({name:"Root-Source",value:n.rootId??n.parentId});let a={name:`Comment on ${n.parentId}`,description:`Comment on ${n.parentId}`,topics:["comment"],creator:n.creator,data:n.content,contentType:"text/plain",assetType:"comment",tags:o};return t(a,r)}}function be(e){return async t=>{try{let n=await j(e,t,{useGateway:!0}),r=n?.dataSource,o=n?.rootSource;if(!r||!o)throw new Error("dataSource and rootSource must be present on a comment");return{content:await Pe(t),parentId:r,rootId:o}}catch(n){throw new Error(n.message??"Error getting comment")}}}function Ce(e){return async t=>{if(!t.parentId&&!t.rootId)throw new Error("Must provide either parentId or rootId");let n=[];t.parentId&&n.push({name:"Data-Source",values:[t.parentId??""]}),t.rootId&&n.push({name:"Root-Source",values:[t.rootId??""]});let r=await x({gateway:f.goldsky,ids:null,tags:n,owners:null,cursor:null}),o=[];r&&r.data.length&&(o=r.data.map(s=>Q(s)));let a=[];for(let s of o){let u=s?.dataSource,l=s?.rootSource;if(!u||!l)throw new Error("dataSource and rootSource must be present on a comment");a.push({id:s.id,content:await Pe(s.id),parentId:u,rootId:l})}return a}}async function Pe(e){try{return await(await fetch($(e))).text()}catch(t){throw new Error(t.message??"Error getting comment data")}}var hn=c(i(),1);var pn=c(i(),1);function _(e){return async(t,n)=>{try{let r=[{name:p.keys.bootloaderInit,value:d.src.zone}];return t.tags&&t.tags.length&&t.tags.forEach(a=>r.push(a)),await S(e,{tags:r},n?a=>n(a):void 0)}catch(r){throw new Error(r.message??"Error creating zone")}}}function V(e){return async(t,n)=>{try{let r=Object.entries(t).map(([a,s])=>({key:a,value:s}));return await D(e,{processId:n,action:"Zone-Update",data:r})}catch(r){throw new Error(r)}}}function Se(e){return async(t,n)=>{try{return await D(e,{processId:n,action:"Zone-Append",tags:[{name:"Path",value:t.path}],data:t.data})}catch(r){throw new Error(r)}}}function H(e){return async t=>{try{let n=await h(e,{processId:t,action:"Info"});return A(n)}catch(n){throw new Error(n)}}}function Ie(e){return async(t,n)=>{try{if(!e.signer)throw new Error("No signer provided");let o=[{name:"Date-Created",value:new Date().getTime().toString()},{name:"Action",value:"Create-Profile"}],a=null,s=null;try{t.thumbnail&&(a=await I(e,t.thumbnail)),t.banner&&(s=await I(e,t.banner))}catch(b){console.error(b)}let u=await S(e,{tags:o,evalTxId:d.src.profile},b=>m(b)),l={UserName:t.userName,DisplayName:t.displayName,Description:t.description};a&&(l.ProfileImage=a),s&&(l.CoverImage=s),m("Updating profile..."),n&&n("Updating profile...");let g=await D(e,{processId:u,action:"Update-Profile",data:l});return m(`Profile update: ${g}`),u}catch(r){throw new Error(r.message??"Error creating profile")}}}function Ee(e){return async(t,n,r)=>{if(n){let o={UserName:t.userName,DisplayName:t.displayName,Description:t.description};if(t.thumbnail)try{o.Thumbnail=await I(e,t.thumbnail)}catch(a){r&&r(`Failed to resolve thumbnail: ${a.message}`)}if(t.banner)try{o.Banner=await I(e,t.banner)}catch(a){r&&r(`Failed to resolve banner: ${a.message}`)}try{m("Updating profile..."),r&&r("Updating profile...");let a=await D(e,{processId:n,action:"Update-Profile",data:o});return m(`Profile update: ${a}`),a}catch(a){throw new Error(a.message??"Error updating profile")}}else throw new Error("No profile provided")}}function J(e){return async t=>{try{let n=await h(e,{processId:t,action:"Info"}),{Profile:r={},...o}=n,a={...o,...r};return{id:t,...A(a)}}catch(n){throw new Error(n.message??"Error fetching profile")}}}function Ne(e){let t=J(e);return async n=>{try{let r=await h(e,{processId:d.profileRegistry,action:"Get-Profiles-By-Delegate",data:{Address:n}}),o;if(r&&r.length>0&&r[0].ProfileId)return o=r[0].ProfileId,await t(o)}catch(r){throw new Error(r.message??"Error fetching profile")}}}globalThis.Buffer||(globalThis.Buffer=Re.Buffer);function ot(e){return{createZone:_(e),updateZone:V(e),addToZone:Se(e),getZone:H(e),createProfile:Ie(e),updateProfile:Ee(e),getProfileById:J(e),getProfileByWalletAddress:Ne(e),createAtomicAsset:B(e),getAtomicAsset:Te(e),getAtomicAssets:he,createComment:De(e),getComment:be(e),getComments:Ce(e),createCollection:we(e),updateCollectionAssets:ve(e),getCollection:Ae(e),getCollections:xe(e),resolveTransaction:ge(e),getGQLData:x,createProcess:de(e),readProcess:ue(e),sendMessage:pe(e),mapFromProcessCase:A,mapToProcessCase:R}}var at={init:ot};
28
28
  //# sourceMappingURL=index.cjs.map