UNPKG

eve

Version:

Filesystem-first framework for durable backend AI agents that run anywhere.

1 lines 1.87 kB
import{toErrorMessage}from"#shared/errors.js";const ATTACHMENT_REF_SCHEME=`eve-attachment:`,ATTACHMENT_REF_WIRE_VERSION=`1`;function isValidSize(e){return Number.isFinite(e)&&Number.isInteger(e)&&e>=0}function encodeAttachmentRef(e){if(e.size!==void 0&&!isValidSize(e.size))throw RangeError(`AttachmentRef.size must be a non-negative integer. Received: ${String(e.size)}.`);let n=e.size===void 0?{params:e.params}:{params:e.params,size:e.size},r=Buffer.from(JSON.stringify(n),`utf8`).toString(`base64url`),i=new URL(ATTACHMENT_REF_SCHEME);return i.searchParams.set(`v`,`1`),i.searchParams.set(`p`,r),i}function parseAttachmentRef(n){if(n.protocol!==`eve-attachment:`)throw Error(`AttachmentRef URL must use scheme "${ATTACHMENT_REF_SCHEME}". Got: "${n.protocol}".`);let r=n.searchParams.get(`v`);if(r!==`1`)throw Error(`AttachmentRef wire format version must be "1". Got: ${r===null?`missing`:JSON.stringify(r)}.`);let i=n.searchParams.get(`p`);if(i===null||i===``)throw Error(`AttachmentRef URL is missing the required "p" payload query param.`);let a;try{let e=Buffer.from(i,`base64url`).toString(`utf8`);a=JSON.parse(e)}catch(t){throw Error(`AttachmentRef payload is not valid base64url-encoded JSON: ${toErrorMessage(t)}`)}if(typeof a!=`object`||!a||Array.isArray(a))throw Error(`AttachmentRef payload must decode to a JSON object.`);let o=a;if(!(`params`in o))throw Error(`AttachmentRef payload is missing the required "params" field.`);let s=o.params;if(!(`size`in o))return{params:s};let c=o.size;if(typeof c!=`number`||!isValidSize(c))throw Error(`AttachmentRef payload "size" must be a non-negative integer. Got: ${JSON.stringify(c)}.`);return{params:s,size:c}}function isAttachmentRefUrl(e){return e instanceof URL&&e.protocol===`eve-attachment:`}export{ATTACHMENT_REF_SCHEME,ATTACHMENT_REF_WIRE_VERSION,encodeAttachmentRef,isAttachmentRefUrl,parseAttachmentRef};