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