@graffiti-garden/implementation-local 1.1.0 → 1.2.0
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/browser/index.js +1 -1
- package/dist/browser/index.js.map +4 -4
- package/dist/cjs/objects.js +3 -7
- package/dist/cjs/objects.js.map +3 -3
- package/dist/esm/objects.js +3 -7
- package/dist/esm/objects.js.map +3 -3
- package/dist/objects.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/objects.ts +2 -8
package/dist/browser/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{c as i,e as o,f as d,g as a}from"./chunk-GE6AZATH.js";i();a();o();i();a();o();i();a();o();i();a();o();var Qt={type:"object",properties:{value:{type:"object"},channels:{type:"array",items:{type:"string"}},allowed:{type:"array",items:{type:"string"},nullable:!0},url:{type:"string"},actor:{type:"string"}},additionalProperties:!1,required:["value","channels","actor","url"]},Qr={...Qt,required:["value","channels"]};i();a();o();var L=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorForbidden",Object.setPrototypeOf(this,t.prototype)}},U=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorNotFound",Object.setPrototypeOf(this,t.prototype)}},ee=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorInvalidSchema",Object.setPrototypeOf(this,t.prototype)}},te=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorSchemaMismatch",Object.setPrototypeOf(this,t.prototype)}},re=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorTooLarge",Object.setPrototypeOf(this,t.prototype)}},ne=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorNotAcceptable",Object.setPrototypeOf(this,t.prototype)}},ie=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorCursorExpired",Object.setPrototypeOf(this,t.prototype)}};i();a();o();function ke(t){return typeof t=="string"?t:t.url}function ze(t,e){return!Array.isArray(t.allowed)||typeof e?.actor=="string"&&(t.actor===e.actor||t.allowed.includes(e.actor))}function Ie(t,e,r){if(r===t.actor)return t;let n=t.allowed&&r?[r]:void 0,c=t.channels.filter(u=>e.includes(u));return{...t,...n?{allowed:n}:{},channels:c}}function Ve(t,e){let[r,n]=t.toLowerCase().split(";")[0].split("/");return!r||!n?!1:e.some(c=>{let[u,s]=c.toLowerCase().split(";")[0].split("/");return!u||!s?!1:(u===r||u==="*")&&(s===n||s==="*")})}var xe;async function we(t){if(!xe){let{default:e}=await import("./ajv-IY2ZY7VT.js");xe=new e({strict:!1})}try{return xe.compile(t)}catch(e){throw new ee(e instanceof Error?e.message:String(e))}}i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();var er=Object.freeze({status:"aborted"});function b(t,e,r){function n(l,g){if(l._zod||Object.defineProperty(l,"_zod",{value:{def:g,constr:s,traits:new Set},enumerable:!1}),l._zod.traits.has(t))return;l._zod.traits.add(t),e(l,g);let p=s.prototype,y=Object.keys(p);for(let x=0;x<y.length;x++){let k=y[x];k in l||(l[k]=p[k].bind(l))}}let c=r?.Parent??Object;class u extends c{}Object.defineProperty(u,"name",{value:t});function s(l){var g;let p=r?.Parent?new u:this;n(p,l),(g=p._zod).deferred??(g.deferred=[]);for(let y of p._zod.deferred)y();return p}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:l=>r?.Parent&&l instanceof r.Parent?!0:l?._zod?.traits?.has(t)}),Object.defineProperty(s,"name",{value:t}),s}var O=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};var Se={};function E(t){return t&&Object.assign(Se,t),Se}i();a();o();i();a();o();i();a();o();function Be(t,e){return typeof e=="bigint"?e.toString():e}function Ue(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function ce(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}var Je=Symbol("evaluating");function I(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Je)return n===void 0&&(n=Je,n=r()),n},set(c){Object.defineProperty(t,e,{value:c})},configurable:!0})}function tr(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function rr(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}var Pe="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function ae(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var nr=Ue(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Ke(t){if(ae(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(ae(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function B(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function P(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function We(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var Xe={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function qe(t,e){if(!Ke(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let u=t._zod.def.shape;for(let s in e)if(Object.getOwnPropertyDescriptor(u,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let c=rr(t._zod.def,{get shape(){let u={...t._zod.def.shape,...e};return tr(this,"shape",u),u}});return B(t,c)}function C(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue!==!0)return!0;return!1}function K(t,e){return e.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function oe(t){return typeof t=="string"?t:t?.message}function N(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let c=oe(t.inst?._zod.def?.error?.(t))??oe(e?.error?.(t))??oe(r.customError?.(t))??oe(r.localeError?.(t))??"Invalid input";n.message=c}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function De(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}var He=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,Be,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Ye=b("$ZodError",He),W=b("$ZodError",He,{Parent:Error});var or=t=>(e,r,n,c)=>{let u=n?Object.assign(n,{async:!1}):{async:!1},s=e._zod.run({value:r,issues:[]},u);if(s instanceof Promise)throw new O;if(s.issues.length){let l=new(c?.Err??t)(s.issues.map(g=>N(g,u,E())));throw Pe(l,c?.callee),l}return s.value},ue=or(W),ar=t=>async(e,r,n,c)=>{let u=n?Object.assign(n,{async:!0}):{async:!0},s=e._zod.run({value:r,issues:[]},u);if(s instanceof Promise&&(s=await s),s.issues.length){let l=new(c?.Err??t)(s.issues.map(g=>N(g,u,E())));throw Pe(l,c?.callee),l}return s.value},se=ar(W),cr=t=>(e,r,n)=>{let c=n?{...n,async:!1}:{async:!1},u=e._zod.run({value:r,issues:[]},c);if(u instanceof Promise)throw new O;return u.issues.length?{success:!1,error:new(t??Ye)(u.issues.map(s=>N(s,c,E())))}:{success:!0,data:u.value}},X=cr(W),ur=t=>async(e,r,n)=>{let c=n?Object.assign(n,{async:!0}):{async:!0},u=e._zod.run({value:r,issues:[]},c);return u instanceof Promise&&(u=await u),u.issues.length?{success:!1,error:new t(u.issues.map(s=>N(s,c,E())))}:{success:!0,data:u.value}},q=ur(W);i();a();o();i();a();o();i();a();o();var sr="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",lr=new RegExp(`^${sr}$`);var et=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)};var tt=/^-?\d+$/,rt=/^-?\d+(?:\.\d+)?$/;var M=b("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),dr={number:"number",bigint:"bigint",object:"date"};var nt=b("$ZodCheckGreaterThan",(t,e)=>{M.init(t,e);let r=dr[typeof e.value];t._zod.onattach.push(n=>{let c=n._zod.bag,u=(e.inclusive?c.minimum:c.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>u&&(e.inclusive?c.minimum=e.value:c.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}});var it=b("$ZodCheckNumberFormat",(t,e)=>{M.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[c,u]=Xe[e.format];t._zod.onattach.push(s=>{let l=s._zod.bag;l.format=e.format,l.minimum=c,l.maximum=u,r&&(l.pattern=tt)}),t._zod.check=s=>{let l=s.value;if(r){if(!Number.isInteger(l)){s.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:l,inst:t});return}if(!Number.isSafeInteger(l)){l>0?s.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort}):s.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort});return}}l<c&&s.issues.push({origin:"number",input:l,code:"too_small",minimum:c,inclusive:!0,inst:t,continue:!e.abort}),l>u&&s.issues.push({origin:"number",input:l,code:"too_big",maximum:u,inclusive:!0,inst:t,continue:!e.abort})}});var ot=b("$ZodCheckStringFormat",(t,e)=>{var r,n;M.init(t,e),t._zod.onattach.push(c=>{let u=c._zod.bag;u.format=e.format,e.pattern&&(u.patterns??(u.patterns=new Set),u.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=c=>{e.pattern.lastIndex=0,!e.pattern.test(c.value)&&c.issues.push({origin:"string",code:"invalid_format",format:e.format,input:c.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})});i();a();o();i();a();o();var ct={major:4,minor:3,patch:5};var w=b("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=ct;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let c of n)for(let u of c._zod.onattach)u(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let c=(s,l,g)=>{let p=C(s),y;for(let x of l){if(x._zod.def.when){if(!x._zod.def.when(s))continue}else if(p)continue;let k=s.issues.length,z=x._zod.check(s);if(z instanceof Promise&&g?.async===!1)throw new O;if(y||z instanceof Promise)y=(y??Promise.resolve()).then(async()=>{await z,s.issues.length!==k&&(p||(p=C(s,k)))});else{if(s.issues.length===k)continue;p||(p=C(s,k))}}return y?y.then(()=>s):s},u=(s,l,g)=>{if(C(s))return s.aborted=!0,s;let p=c(l,n,g);if(p instanceof Promise){if(g.async===!1)throw new O;return p.then(y=>t._zod.parse(y,g))}return t._zod.parse(p,g)};t._zod.run=(s,l)=>{if(l.skipChecks)return t._zod.parse(s,l);if(l.direction==="backward"){let p=t._zod.parse({value:s.value,issues:[]},{...l,skipChecks:!0});return p instanceof Promise?p.then(y=>u(y,s,l)):u(p,s,l)}let g=t._zod.parse(s,l);if(g instanceof Promise){if(l.async===!1)throw new O;return g.then(p=>c(p,n,l))}return c(g,n,l)}}I(t,"~standard",()=>({validate:c=>{try{let u=X(t,c);return u.success?{value:u.data}:{issues:u.error?.issues}}catch{return q(t,c).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),me=b("$ZodString",(t,e)=>{w.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??et(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),Oe=b("$ZodStringFormat",(t,e)=>{ot.init(t,e),me.init(t,e)});var mt=b("$ZodURL",(t,e)=>{Oe.init(t,e),t._zod.check=r=>{try{let n=r.value.trim(),c=new URL(n);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(c.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(c.protocol.endsWith(":")?c.protocol.slice(0,-1):c.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=c.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}});var Ze=b("$ZodNumber",(t,e)=>{w.init(t,e),t._zod.pattern=t._zod.bag.pattern??rt,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let c=r.value;if(typeof c=="number"&&!Number.isNaN(c)&&Number.isFinite(c))return r;let u=typeof c=="number"?Number.isNaN(c)?"NaN":Number.isFinite(c)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:c,inst:t,...u?{received:u}:{}}),r}}),ft=b("$ZodNumberFormat",(t,e)=>{it.init(t,e),Ze.init(t,e)});var pt=b("$ZodUnknown",(t,e)=>{w.init(t,e),t._zod.parse=r=>r});function ut(t,e,r){t.issues.length&&e.issues.push(...K(r,t.issues)),e.value[r]=t.value}var gt=b("$ZodArray",(t,e)=>{w.init(t,e),t._zod.parse=(r,n)=>{let c=r.value;if(!Array.isArray(c))return r.issues.push({expected:"array",code:"invalid_type",input:c,inst:t}),r;r.value=Array(c.length);let u=[];for(let s=0;s<c.length;s++){let l=c[s],g=e.element._zod.run({value:l,issues:[]},n);g instanceof Promise?u.push(g.then(p=>ut(p,r,s))):ut(g,r,s)}return u.length?Promise.all(u).then(()=>r):r}});function de(t,e,r,n,c){if(t.issues.length){if(c&&!(r in n))return;e.issues.push(...K(r,t.issues))}t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}function fr(t){let e=Object.keys(t.shape);for(let n of e)if(!t.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=We(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function pr(t,e,r,n,c,u){let s=[],l=c.keySet,g=c.catchall._zod,p=g.def.type,y=g.optout==="optional";for(let x in e){if(l.has(x))continue;if(p==="never"){s.push(x);continue}let k=g.run({value:e[x],issues:[]},n);k instanceof Promise?t.push(k.then(z=>de(z,r,x,e,y))):de(k,r,x,e,y)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:e,inst:u}),t.length?Promise.all(t).then(()=>r):r}var vt=b("$ZodObject",(t,e)=>{if(w.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let l=e.shape;Object.defineProperty(e,"shape",{get:()=>{let g={...l};return Object.defineProperty(e,"shape",{value:g}),g}})}let n=Ue(()=>fr(e));I(t._zod,"propValues",()=>{let l=e.shape,g={};for(let p in l){let y=l[p]._zod;if(y.values){g[p]??(g[p]=new Set);for(let x of y.values)g[p].add(x)}}return g});let c=ae,u=e.catchall,s;t._zod.parse=(l,g)=>{s??(s=n.value);let p=l.value;if(!c(p))return l.issues.push({expected:"object",code:"invalid_type",input:p,inst:t}),l;l.value={};let y=[],x=s.shape;for(let k of s.keys){let z=x[k],T=z._zod.optout==="optional",V=z._zod.run({value:p[k],issues:[]},g);V instanceof Promise?y.push(V.then(be=>de(be,l,k,p,T))):de(V,l,k,p,T)}return u?pr(y,p,l,g,n.value,t):y.length?Promise.all(y).then(()=>l):l}});function st(t,e,r,n){for(let u of t)if(u.issues.length===0)return e.value=u.value,e;let c=t.filter(u=>!C(u));return c.length===1?(e.value=c[0].value,c[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(u=>u.issues.map(s=>N(s,n,E())))}),e)}var $t=b("$ZodUnion",(t,e)=>{w.init(t,e),I(t._zod,"optin",()=>e.options.some(c=>c._zod.optin==="optional")?"optional":void 0),I(t._zod,"optout",()=>e.options.some(c=>c._zod.optout==="optional")?"optional":void 0),I(t._zod,"values",()=>{if(e.options.every(c=>c._zod.values))return new Set(e.options.flatMap(c=>Array.from(c._zod.values)))}),I(t._zod,"pattern",()=>{if(e.options.every(c=>c._zod.pattern)){let c=e.options.map(u=>u._zod.pattern);return new RegExp(`^(${c.map(u=>ce(u.source)).join("|")})$`)}});let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(c,u)=>{if(r)return n(c,u);let s=!1,l=[];for(let g of e.options){let p=g._zod.run({value:c.value,issues:[]},u);if(p instanceof Promise)l.push(p),s=!0;else{if(p.issues.length===0)return p;l.push(p)}}return s?Promise.all(l).then(g=>st(g,c,t,u)):st(l,c,t,u)}});var ht=b("$ZodTuple",(t,e)=>{w.init(t,e);let r=e.items;t._zod.parse=(n,c)=>{let u=n.value;if(!Array.isArray(u))return n.issues.push({input:u,inst:t,expected:"tuple",code:"invalid_type"}),n;n.value=[];let s=[],l=[...r].reverse().findIndex(y=>y._zod.optin!=="optional"),g=l===-1?0:r.length-l;if(!e.rest){let y=u.length>r.length,x=u.length<g-1;if(y||x)return n.issues.push({...y?{code:"too_big",maximum:r.length,inclusive:!0}:{code:"too_small",minimum:r.length},input:u,inst:t,origin:"array"}),n}let p=-1;for(let y of r){if(p++,p>=u.length&&p>=g)continue;let x=y._zod.run({value:u[p],issues:[]},c);x instanceof Promise?s.push(x.then(k=>le(k,n,p))):le(x,n,p)}if(e.rest){let y=u.slice(r.length);for(let x of y){p++;let k=e.rest._zod.run({value:x,issues:[]},c);k instanceof Promise?s.push(k.then(z=>le(z,n,p))):le(k,n,p)}}return s.length?Promise.all(s).then(()=>n):n}});function le(t,e,r){t.issues.length&&e.issues.push(...K(r,t.issues)),e.value[r]=t.value}function lt(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}var _t=b("$ZodOptional",(t,e)=>{w.init(t,e),t._zod.optin="optional",t._zod.optout="optional",I(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),I(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${ce(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let c=e.innerType._zod.run(r,n);return c instanceof Promise?c.then(u=>lt(u,r.value)):lt(c,r.value)}return r.value===void 0?r:e.innerType._zod.run(r,n)}});var yt=b("$ZodNullable",(t,e)=>{w.init(t,e),I(t._zod,"optin",()=>e.innerType._zod.optin),I(t._zod,"optout",()=>e.innerType._zod.optout),I(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${ce(r.source)}|null)$`):void 0}),I(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)});var bt=b("$ZodCustom",(t,e)=>{M.init(t,e),w.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,c=e.fn(n);if(c instanceof Promise)return c.then(u=>dt(u,r,n,t));dt(c,r,n,t)}});function dt(t,e,r,n){if(!t){let c={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(c.params=n._zod.def.params),e.issues.push(De(c))}}i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();var kt;var Te=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];return this._map.set(e,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let c={...n,...this._map.get(e)};return Object.keys(c).length?c:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function zt(){return new Te}(kt=globalThis).__zod_globalRegistry??(kt.__zod_globalRegistry=zt());var Ee=globalThis.__zod_globalRegistry;i();a();o();function It(t,e){return new t({type:"string",...P(e)})}function wt(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...P(e)})}function St(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...P(e)})}function jt(t){return new t({type:"unknown"})}function Ne(t,e){return new nt({check:"greater_than",...P(e),value:t,inclusive:!0})}function Me(t){return Ne(0,t)}function Ut(t,e,r){let n=P(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();var D=b("ZodMiniType",(t,e)=>{if(!t._zod)throw new Error("Uninitialized schema in ZodMiniType.");w.init(t,e),t.def=e,t.type=e.type,t.parse=(r,n)=>ue(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>X(t,r,n),t.parseAsync=async(r,n)=>se(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>q(t,r,n),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]},{parent:!0}),t.with=t.check,t.clone=(r,n)=>B(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.apply=r=>r(t)}),Ae=b("ZodMiniString",(t,e)=>{me.init(t,e),D.init(t,e)});function R(t){return It(Ae,t)}var Pt=b("ZodMiniStringFormat",(t,e)=>{Oe.init(t,e),Ae.init(t,e)});var jr=b("ZodMiniURL",(t,e)=>{mt.init(t,e),Pt.init(t,e)});function j(t){return wt(jr,t)}var Dt=b("ZodMiniNumber",(t,e)=>{Ze.init(t,e),D.init(t,e)});var Ur=b("ZodMiniNumberFormat",(t,e)=>{ft.init(t,e),Dt.init(t,e)});function Ot(t){return St(Ur,t)}var Pr=b("ZodMiniUnknown",(t,e)=>{pt.init(t,e),D.init(t,e)});function Dr(){return jt(Pr)}var Or=b("ZodMiniArray",(t,e)=>{gt.init(t,e),D.init(t,e)});function F(t,e){return new Or({type:"array",element:t,...P(e)})}var Zr=b("ZodMiniObject",(t,e)=>{vt.init(t,e),D.init(t,e),I(t,"shape",()=>e.shape)});function Z(t,e){return new Zr({type:"object",shape:t,catchall:Dr(),...P(e)})}function Le(t,e){return qe(t,e)}var Tr=b("ZodMiniUnion",(t,e)=>{$t.init(t,e),D.init(t,e)});function Zt(t,e){return new Tr({type:"union",options:t,...P(e)})}var Er=b("ZodMiniTuple",(t,e)=>{ht.init(t,e),D.init(t,e)});function S(t,e,r){let n=e instanceof w,c=n?r:e,u=n?e:null;return new Er({type:"tuple",items:t,rest:u,...P(c)})}var Nr=b("ZodMiniOptional",(t,e)=>{_t.init(t,e),D.init(t,e)});function A(t){return new Nr({type:"optional",innerType:t})}var Mr=b("ZodMiniNullable",(t,e)=>{yt.init(t,e),D.init(t,e)});function pe(t){return new Mr({type:"nullable",innerType:t})}var Ar=b("ZodMiniCustom",(t,e)=>{bt.init(t,e),D.init(t,e)});function Lr(t,e){return Ut(Ar,t??(()=>!0),e)}function Tt(t,e={}){let r=Lr(n=>n instanceof t,e);return r._zod.bag.Class=t,r._zod.check=n=>{n.value instanceof t||n.issues.push({code:"invalid_type",expected:t.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}i();a();o();i();a();o();i();a();o();var At=Z({value:Z({}),channels:F(R()),allowed:A(pe(F(j())))}),ng=Le(At,{url:j(),actor:j()}),Nt=Zt([Z({url:j()}),j()]),G=Z({actor:j()}),Y=A(pe(G)),Lt=Z({data:Tt(Blob),allowed:A(pe(F(j())))}),ig=Le(Lt,{actor:j()}),Vr=Z({types:A(F(R())),maxBytes:A(Ot().check(Me()))});async function*Mt(t){for(;;){let e=await t.next();if(e.done){let{cursor:r,continue:n}=e.value;return{cursor:r,continue:(...c)=>{let u=S([Y]).parse(c);return n(...u)}}}else yield e.value}}var ge=class{constructor(e){this.graffiti=e,this.sessionEvents=this.graffiti.sessionEvents}sessionEvents;login=(...e)=>{let r=S([A(j())]).parse(e);return this.graffiti.login(...r)};logout=(...e)=>{let r=S([G]).parse(e);return this.graffiti.logout(...r)};handleToActor=(...e)=>{let r=S([R()]).parse(e);return this.graffiti.handleToActor(...r)};actorToHandle=(...e)=>{let r=S([j()]).parse(e);return this.graffiti.actorToHandle(...r)};post=(...e)=>{let r=S([At,G]).parse(e);return this.graffiti.post(...r)};get=(...e)=>{let r=S([Nt,Z({}),Y]).parse(e);return this.graffiti.get(r[0],r[1],r[2])};delete=(...e)=>{let r=S([Nt,G]).parse(e);return this.graffiti.delete(...r)};postMedia=(...e)=>{let r=S([Lt,G]).parse(e);return this.graffiti.postMedia(...r)};getMedia=(...e)=>{let r=S([j(),Vr,Y]).parse(e);return this.graffiti.getMedia(...r)};deleteMedia=(...e)=>{let r=S([j(),G]).parse(e);return this.graffiti.deleteMedia(...r)};discover=(...e)=>{let r=S([F(R()),Z({}),Y]).parse(e),n=this.graffiti.discover(r[0],r[1],r[2]);return Mt(n)};continueDiscover=(...e)=>{let r=S([R(),Y]).parse(e),n=this.graffiti.continueDiscover(...r);return Mt(n)}};i();a();o();i();a();o();function Ce(t){return btoa(String.fromCodePoint(...t)).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=+$/,"")}function Rt(t){let e=t.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4!==0;)e+="=";return Uint8Array.from(atob(e),r=>r.charCodeAt(0))}function Ft(t=32){let e=new Uint8Array(t);return crypto.getRandomValues(e),Ce(e)}var Gt="graffiti:";function Ct(t){let e=t.replace(/:/g,"!").replace(/\//g,"~");return encodeURIComponent(e)}function Jr(t){return decodeURIComponent(t).replace(/!/g,":").replace(/~/g,"/")}function Br(t,e,r){return`${r}${Ct(t)}:${Ct(e)}`}function Vt(t,e){return Br(t,e,Gt)}function Kr(t,e){if(!t.startsWith(e))throw new U(`URL does not start with ${e}`);let r=t.slice(e.length).split(":");if(r.length!==2)throw new U("URL has too many colon-seperated parts");let[n,c]=r.map(Jr);return{actor:n,id:c}}function ve(t){return Kr(t,Gt)}async function Jt(t){if(typeof FileReader<"u")return new Promise((e,r)=>{let n=new FileReader;n.onload=()=>{typeof n.result=="string"?e(n.result):r(new Error("Unexpected result type"))},n.onerror=r,n.readAsDataURL(t)});if(typeof d<"u"){let e=await t.arrayBuffer();return`data:${t.type};base64,${d.from(e).toString("base64")}`}throw new Error("Unsupported environment")}async function Bt(t){return await(await fetch(t)).blob()}var $e="did:local:",he=class{sessionEvents=new EventTarget;handleToActor=async e=>{let r=new TextEncoder().encode(e),n=Ce(r);return`${$e}${n}`};actorToHandle=async e=>{if(!e.startsWith($e))throw new Error(`actor must start with ${$e}`);let r=e.slice($e.length),n=Rt(r);return new TextDecoder().decode(n)};constructor(){(async()=>{await Promise.resolve();for(let n of this.getLoggedInHandles()){let c=new CustomEvent("login",{detail:{session:{actor:await this.handleToActor(n)}}});this.sessionEvents.dispatchEvent(c)}let r=new CustomEvent("initialized",{detail:{}});this.sessionEvents.dispatchEvent(r)})()}loggedInHandles=[];getLoggedInHandles(){if(typeof window<"u"){let e=window.localStorage.getItem("graffiti-handles");return e?e.split(",").map(decodeURIComponent):[]}else return this.loggedInHandles}setLoggedInHandles(e){typeof window<"u"?window.localStorage.setItem("graffiti-handles",e.join(",")):this.loggedInHandles=e}login=async e=>{await new Promise(n=>setTimeout(n,0));let r=e?await this.actorToHandle(e):void 0;if(typeof window<"u"&&(r=window.prompt("Choose a username to log in.",r)??void 0),r){let n=this.getLoggedInHandles();n.includes(r)||this.setLoggedInHandles([...n,r]),window.location.reload()}else{let n={error:new Error("No handle provided to login")},c=new CustomEvent("login",{detail:n});this.sessionEvents.dispatchEvent(c)}};logout=async e=>{let r=await this.actorToHandle(e.actor),n=this.getLoggedInHandles(),c=n.includes(r);c&&this.setLoggedInHandles(n.filter(l=>l!==r));let u=c?{actor:e.actor}:{actor:e.actor,error:new Error("Not logged in with that actor")},s=new CustomEvent("logout",{detail:u});this.sessionEvents.dispatchEvent(s)}};i();a();o();var _e=class{db_;options;get db(){return this.db_||(this.db_=(async()=>{let{default:e}=await import("./index-browser.es-UXYPGJ2M.js"),r={name:"graffitiDb",...this.options.pouchDBOptions},n=new e(r.name,r);return await n.put({_id:"_design/indexes",views:{objectsPerChannelAndLastModified:{map:function(c){let u=c.lastModified.toString().padStart(15,"0");c.channels.forEach(function(s){let l=encodeURIComponent(s)+"/"+u;emit(l)})}.toString()}}}).catch(c=>{if(!(c&&typeof c=="object"&&"name"in c&&c.name==="conflict"))throw c}),n})()),this.db_}async getOperationClock(){return Number((await(await this.db).info()).update_seq)}constructor(e){this.options=e??{}}get=async(...e)=>{let[r,n,c]=e,u=ke(r),s;try{s=await(await this.db).get(u)}catch{throw new U("The object you are trying to get either does not exist or you are not allowed to see it")}if(s.tombstone)throw new U("The object you are trying to get either does not exist or you are not allowed to see it");let{actor:l}=ve(u),{value:g,channels:p,allowed:y}=s,x={value:g,channels:p,allowed:y,url:u,actor:l};if(!ze(x,c))throw new U("The object you are trying to get either does not exist or you are not allowed to see it");let k=Ie(x,[],c?.actor);if(!(await we(n))(k))throw new te;return k};delete=async(...e)=>{let[r,n]=e,c=ke(r),{actor:u}=ve(c);if(u!==n.actor)throw new L("You cannot delete an object that you did not create.");let s;try{s=await(await this.db).get(c)}catch{throw new U("Object not found.")}if(s.tombstone)throw new U("Object not found.");s.tombstone=!0,s.lastModified=await this.getOperationClock();try{await(await this.db).put(s)}catch{throw new U("Object not found.")}let{value:l,channels:g,allowed:p}=s;return{value:l,channels:g,allowed:p,url:c,actor:u}};post=async(...e)=>{let[r,n]=e,c=n.actor,u=Ft(),s=Vt(c,u),{value:l,channels:g,allowed:p}=r,y={value:l,channels:g,allowed:p,lastModified:await this.getOperationClock(),tombstone:!1};return await(await this.db).put({_id:s,...y}),{channels:r.channels,value:r.value,...r.allowed?{allowed:r.allowed}:{},actor:c,url:s}};async*discoverMeta(e,r){if(r){let x=this.options.continueBuffer??1e3,k=Date.now()-r.lastDiscovered;k<x&&await new Promise(z=>setTimeout(z,x-k))}let[n,c,u]=e,s=await we(c),l=r?r.ifModifiedSince.toString().padStart(15,"0"):"",g="\uFFFF",p=new Set,y=await this.getOperationClock();for(let x of n){let k=encodeURIComponent(x)+"/",z=k+l,T=k+g,V=await(await this.db).query("indexes/objectsPerChannelAndLastModified",{startkey:z,endkey:T,include_docs:!0});for(let be of V.rows){let Q=be.doc;if(!Q)continue;let J=Q._id;if(p.has(J)||(p.add(J),!r&&Q.tombstone))continue;let{tombstone:Wt,value:Xt,channels:qt,allowed:Ht}=Q,{actor:Yt}=ve(J),Fe={url:J,value:Xt,allowed:Ht,channels:qt,actor:Yt};if(!ze(Fe,u))continue;let Ge=Ie(Fe,n,u?.actor);s(Ge)&&(yield Wt?{tombstone:!0,object:{url:J}}:{object:Ge})}}return{lastDiscovered:Date.now(),ifModifiedSince:y}}discoverCursor(e,r){let[n,c,u]=e;return"discover:"+JSON.stringify({channels:n,schema:c,continueParams:r,actor:u?.actor})}async*discoverContinue(e,r,n){if(n?.actor!==e[2]?.actor)throw new L("Cannot continue a cursor started by another actor");let c=this.discoverMeta(e,r);for(;;){let u=await c.next();if(u.done)return{continue:s=>this.discoverContinue(e,u.value,s),cursor:this.discoverCursor(e,u.value)};yield u.value}}discover=(...e)=>{let[r,n,c]=e,u=this.discoverMeta([r,n,c]),s=this;return(async function*(){for(;;){let l=await u.next();if(l.done)return{continue:g=>s.discoverContinue(e,l.value,g),cursor:s.discoverCursor(e,l.value)};l.value.tombstone||(yield l.value)}})()};continueDiscover=(...e)=>{let[r,n]=e;if(r.startsWith("discover:")){let{channels:c,schema:u,actor:s,continueParams:l}=JSON.parse(r.slice(9));return s&&s!==n?.actor?(async function*(){throw new L("Cannot continue a cursor started by another actor")})():this.discoverContinue([c,u,n],l)}else return(async function*(){throw new ie("Cursor not found")})()}};i();a();o();var Wr={properties:{value:{properties:{dataBase64:{type:"string"},type:{type:"string"},size:{type:"number"}},required:["dataBase64","type","size"]}}},ye=class{db;constructor(e){this.db=e}postMedia=async(...e)=>{let[r,n]=e,c=await Jt(r.data),u=r.data.type,{url:s}=await this.db.post({value:{dataBase64:c,type:u,size:r.data.size},channels:[],allowed:r.allowed},n);return s};getMedia=async(...e)=>{let[r,n,c]=e,u=await this.db.get(r,Wr,c),{dataBase64:s,type:l,size:g}=u.value;if(n?.maxBytes&&g>n.maxBytes)throw new re("File size exceeds limit");if(n?.types&&!Ve(l,n.types))throw new ne(`Unacceptable media type, ${l}`);let p=await Bt(s);if(p.size!==g||p.type!==l)throw new Error("Invalid data");return{data:p,actor:u.actor,allowed:u.allowed}};deleteMedia=async(...e)=>{let[r,n]=e;await this.db.delete(r,n)}};var Kt=class extends ge{constructor(e){let r=new Re(e);super(r)}},Re=class{graffitiLocalIdentity=new he;login=this.graffitiLocalIdentity.login.bind(this.graffitiLocalIdentity);logout=this.graffitiLocalIdentity.logout.bind(this.graffitiLocalIdentity);handleToActor=this.graffitiLocalIdentity.handleToActor.bind(this.graffitiLocalIdentity);actorToHandle=this.graffitiLocalIdentity.actorToHandle.bind(this.graffitiLocalIdentity);sessionEvents=this.graffitiLocalIdentity.sessionEvents;graffitiLocalObjects;post;get;delete;discover;continueDiscover;graffitiLocalMedia;postMedia;getMedia;deleteMedia;constructor(e){this.graffitiLocalObjects=new _e(e),this.post=this.graffitiLocalObjects.post.bind(this.graffitiLocalObjects),this.get=this.graffitiLocalObjects.get.bind(this.graffitiLocalObjects),this.delete=this.graffitiLocalObjects.delete.bind(this.graffitiLocalObjects),this.discover=this.graffitiLocalObjects.discover.bind(this.graffitiLocalObjects),this.continueDiscover=this.graffitiLocalObjects.continueDiscover.bind(this.graffitiLocalObjects),this.graffitiLocalMedia=new ye(this.graffitiLocalObjects),this.postMedia=this.graffitiLocalMedia.postMedia.bind(this.graffitiLocalMedia),this.getMedia=this.graffitiLocalMedia.getMedia.bind(this.graffitiLocalMedia),this.deleteMedia=this.graffitiLocalMedia.deleteMedia.bind(this.graffitiLocalMedia)}};export{Kt as GraffitiLocal};
|
|
1
|
+
import{c as i,e as o,f as d,g as a}from"./chunk-GE6AZATH.js";i();a();o();i();a();o();i();a();o();i();a();o();var Yt={type:"object",properties:{value:{type:"object"},channels:{type:"array",items:{type:"string"}},allowed:{type:"array",items:{type:"string"},nullable:!0},url:{type:"string"},actor:{type:"string"}},additionalProperties:!1,required:["value","channels","actor","url"]},Yr={...Yt,required:["value","channels"]};i();a();o();var L=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorForbidden",Object.setPrototypeOf(this,t.prototype)}},U=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorNotFound",Object.setPrototypeOf(this,t.prototype)}},Q=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorInvalidSchema",Object.setPrototypeOf(this,t.prototype)}},ee=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorSchemaMismatch",Object.setPrototypeOf(this,t.prototype)}},te=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorTooLarge",Object.setPrototypeOf(this,t.prototype)}},re=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorNotAcceptable",Object.setPrototypeOf(this,t.prototype)}},ne=class t extends Error{constructor(e){super(e),this.name="GraffitiErrorCursorExpired",Object.setPrototypeOf(this,t.prototype)}};i();a();o();function ke(t){return typeof t=="string"?t:t.url}function ze(t,e){return!Array.isArray(t.allowed)||typeof e?.actor=="string"&&(t.actor===e.actor||t.allowed.includes(e.actor))}function Ie(t,e,r){if(r===t.actor)return t;let n=t.allowed&&r?[r]:void 0,c=t.channels.filter(u=>e.includes(u));return{...t,...n?{allowed:n}:{},channels:c}}function Ve(t,e){let[r,n]=t.toLowerCase().split(";")[0].split("/");return!r||!n?!1:e.some(c=>{let[u,s]=c.toLowerCase().split(";")[0].split("/");return!u||!s?!1:(u===r||u==="*")&&(s===n||s==="*")})}var xe;async function we(t){if(!xe){let{default:e}=await import("./ajv-IY2ZY7VT.js");xe=new e({strict:!1})}try{return xe.compile(t)}catch(e){throw new Q(e instanceof Error?e.message:String(e))}}i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();var Qt=Object.freeze({status:"aborted"});function b(t,e,r){function n(l,g){if(l._zod||Object.defineProperty(l,"_zod",{value:{def:g,constr:s,traits:new Set},enumerable:!1}),l._zod.traits.has(t))return;l._zod.traits.add(t),e(l,g);let p=s.prototype,y=Object.keys(p);for(let x=0;x<y.length;x++){let k=y[x];k in l||(l[k]=p[k].bind(l))}}let c=r?.Parent??Object;class u extends c{}Object.defineProperty(u,"name",{value:t});function s(l){var g;let p=r?.Parent?new u:this;n(p,l),(g=p._zod).deferred??(g.deferred=[]);for(let y of p._zod.deferred)y();return p}return Object.defineProperty(s,"init",{value:n}),Object.defineProperty(s,Symbol.hasInstance,{value:l=>r?.Parent&&l instanceof r.Parent?!0:l?._zod?.traits?.has(t)}),Object.defineProperty(s,"name",{value:t}),s}var O=class extends Error{constructor(){super("Encountered Promise during synchronous parse. Use .parseAsync() instead.")}};var Se={};function E(t){return t&&Object.assign(Se,t),Se}i();a();o();i();a();o();i();a();o();function Be(t,e){return typeof e=="bigint"?e.toString():e}function Ue(t){return{get value(){{let r=t();return Object.defineProperty(this,"value",{value:r}),r}throw new Error("cached value already set")}}}function ae(t){let e=t.startsWith("^")?1:0,r=t.endsWith("$")?t.length-1:t.length;return t.slice(e,r)}var Je=Symbol("evaluating");function I(t,e,r){let n;Object.defineProperty(t,e,{get(){if(n!==Je)return n===void 0&&(n=Je,n=r()),n},set(c){Object.defineProperty(t,e,{value:c})},configurable:!0})}function er(t,e,r){Object.defineProperty(t,e,{value:r,writable:!0,enumerable:!0,configurable:!0})}function tr(...t){let e={};for(let r of t){let n=Object.getOwnPropertyDescriptors(r);Object.assign(e,n)}return Object.defineProperties({},e)}var Pe="captureStackTrace"in Error?Error.captureStackTrace:(...t)=>{};function oe(t){return typeof t=="object"&&t!==null&&!Array.isArray(t)}var rr=Ue(()=>{if(typeof navigator<"u"&&navigator?.userAgent?.includes("Cloudflare"))return!1;try{let t=Function;return new t(""),!0}catch{return!1}});function Ke(t){if(oe(t)===!1)return!1;let e=t.constructor;if(e===void 0||typeof e!="function")return!0;let r=e.prototype;return!(oe(r)===!1||Object.prototype.hasOwnProperty.call(r,"isPrototypeOf")===!1)}function B(t,e,r){let n=new t._zod.constr(e??t._zod.def);return(!e||r?.parent)&&(n._zod.parent=t),n}function P(t){let e=t;if(!e)return{};if(typeof e=="string")return{error:()=>e};if(e?.message!==void 0){if(e?.error!==void 0)throw new Error("Cannot specify both `message` and `error` params");e.error=e.message}return delete e.message,typeof e.error=="string"?{...e,error:()=>e.error}:e}function We(t){return Object.keys(t).filter(e=>t[e]._zod.optin==="optional"&&t[e]._zod.optout==="optional")}var Xe={safeint:[Number.MIN_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],int32:[-2147483648,2147483647],uint32:[0,4294967295],float32:[-34028234663852886e22,34028234663852886e22],float64:[-Number.MAX_VALUE,Number.MAX_VALUE]};function qe(t,e){if(!Ke(e))throw new Error("Invalid input to extend: expected a plain object");let r=t._zod.def.checks;if(r&&r.length>0){let u=t._zod.def.shape;for(let s in e)if(Object.getOwnPropertyDescriptor(u,s)!==void 0)throw new Error("Cannot overwrite keys on object schemas containing refinements. Use `.safeExtend()` instead.")}let c=tr(t._zod.def,{get shape(){let u={...t._zod.def.shape,...e};return er(this,"shape",u),u}});return B(t,c)}function C(t,e=0){if(t.aborted===!0)return!0;for(let r=e;r<t.issues.length;r++)if(t.issues[r]?.continue!==!0)return!0;return!1}function K(t,e){return e.map(r=>{var n;return(n=r).path??(n.path=[]),r.path.unshift(t),r})}function ie(t){return typeof t=="string"?t:t?.message}function N(t,e,r){let n={...t,path:t.path??[]};if(!t.message){let c=ie(t.inst?._zod.def?.error?.(t))??ie(e?.error?.(t))??ie(r.customError?.(t))??ie(r.localeError?.(t))??"Invalid input";n.message=c}return delete n.inst,delete n.continue,e?.reportInput||delete n.input,n}function De(...t){let[e,r,n]=t;return typeof e=="string"?{message:e,code:"custom",input:r,inst:n}:{...e}}var He=(t,e)=>{t.name="$ZodError",Object.defineProperty(t,"_zod",{value:t._zod,enumerable:!1}),Object.defineProperty(t,"issues",{value:e,enumerable:!1}),t.message=JSON.stringify(e,Be,2),Object.defineProperty(t,"toString",{value:()=>t.message,enumerable:!1})},Ye=b("$ZodError",He),W=b("$ZodError",He,{Parent:Error});var ir=t=>(e,r,n,c)=>{let u=n?Object.assign(n,{async:!1}):{async:!1},s=e._zod.run({value:r,issues:[]},u);if(s instanceof Promise)throw new O;if(s.issues.length){let l=new(c?.Err??t)(s.issues.map(g=>N(g,u,E())));throw Pe(l,c?.callee),l}return s.value},ce=ir(W),or=t=>async(e,r,n,c)=>{let u=n?Object.assign(n,{async:!0}):{async:!0},s=e._zod.run({value:r,issues:[]},u);if(s instanceof Promise&&(s=await s),s.issues.length){let l=new(c?.Err??t)(s.issues.map(g=>N(g,u,E())));throw Pe(l,c?.callee),l}return s.value},ue=or(W),ar=t=>(e,r,n)=>{let c=n?{...n,async:!1}:{async:!1},u=e._zod.run({value:r,issues:[]},c);if(u instanceof Promise)throw new O;return u.issues.length?{success:!1,error:new(t??Ye)(u.issues.map(s=>N(s,c,E())))}:{success:!0,data:u.value}},X=ar(W),cr=t=>async(e,r,n)=>{let c=n?Object.assign(n,{async:!0}):{async:!0},u=e._zod.run({value:r,issues:[]},c);return u instanceof Promise&&(u=await u),u.issues.length?{success:!1,error:new t(u.issues.map(s=>N(s,c,E())))}:{success:!0,data:u.value}},q=cr(W);i();a();o();i();a();o();i();a();o();var ur="(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))",sr=new RegExp(`^${ur}$`);var et=t=>{let e=t?`[\\s\\S]{${t?.minimum??0},${t?.maximum??""}}`:"[\\s\\S]*";return new RegExp(`^${e}$`)};var tt=/^-?\d+$/,rt=/^-?\d+(?:\.\d+)?$/;var M=b("$ZodCheck",(t,e)=>{var r;t._zod??(t._zod={}),t._zod.def=e,(r=t._zod).onattach??(r.onattach=[])}),lr={number:"number",bigint:"bigint",object:"date"};var nt=b("$ZodCheckGreaterThan",(t,e)=>{M.init(t,e);let r=lr[typeof e.value];t._zod.onattach.push(n=>{let c=n._zod.bag,u=(e.inclusive?c.minimum:c.exclusiveMinimum)??Number.NEGATIVE_INFINITY;e.value>u&&(e.inclusive?c.minimum=e.value:c.exclusiveMinimum=e.value)}),t._zod.check=n=>{(e.inclusive?n.value>=e.value:n.value>e.value)||n.issues.push({origin:r,code:"too_small",minimum:typeof e.value=="object"?e.value.getTime():e.value,input:n.value,inclusive:e.inclusive,inst:t,continue:!e.abort})}});var it=b("$ZodCheckNumberFormat",(t,e)=>{M.init(t,e),e.format=e.format||"float64";let r=e.format?.includes("int"),n=r?"int":"number",[c,u]=Xe[e.format];t._zod.onattach.push(s=>{let l=s._zod.bag;l.format=e.format,l.minimum=c,l.maximum=u,r&&(l.pattern=tt)}),t._zod.check=s=>{let l=s.value;if(r){if(!Number.isInteger(l)){s.issues.push({expected:n,format:e.format,code:"invalid_type",continue:!1,input:l,inst:t});return}if(!Number.isSafeInteger(l)){l>0?s.issues.push({input:l,code:"too_big",maximum:Number.MAX_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort}):s.issues.push({input:l,code:"too_small",minimum:Number.MIN_SAFE_INTEGER,note:"Integers must be within the safe integer range.",inst:t,origin:n,inclusive:!0,continue:!e.abort});return}}l<c&&s.issues.push({origin:"number",input:l,code:"too_small",minimum:c,inclusive:!0,inst:t,continue:!e.abort}),l>u&&s.issues.push({origin:"number",input:l,code:"too_big",maximum:u,inclusive:!0,inst:t,continue:!e.abort})}});var ot=b("$ZodCheckStringFormat",(t,e)=>{var r,n;M.init(t,e),t._zod.onattach.push(c=>{let u=c._zod.bag;u.format=e.format,e.pattern&&(u.patterns??(u.patterns=new Set),u.patterns.add(e.pattern))}),e.pattern?(r=t._zod).check??(r.check=c=>{e.pattern.lastIndex=0,!e.pattern.test(c.value)&&c.issues.push({origin:"string",code:"invalid_format",format:e.format,input:c.value,...e.pattern?{pattern:e.pattern.toString()}:{},inst:t,continue:!e.abort})}):(n=t._zod).check??(n.check=()=>{})});i();a();o();i();a();o();var ct={major:4,minor:3,patch:6};var w=b("$ZodType",(t,e)=>{var r;t??(t={}),t._zod.def=e,t._zod.bag=t._zod.bag||{},t._zod.version=ct;let n=[...t._zod.def.checks??[]];t._zod.traits.has("$ZodCheck")&&n.unshift(t);for(let c of n)for(let u of c._zod.onattach)u(t);if(n.length===0)(r=t._zod).deferred??(r.deferred=[]),t._zod.deferred?.push(()=>{t._zod.run=t._zod.parse});else{let c=(s,l,g)=>{let p=C(s),y;for(let x of l){if(x._zod.def.when){if(!x._zod.def.when(s))continue}else if(p)continue;let k=s.issues.length,z=x._zod.check(s);if(z instanceof Promise&&g?.async===!1)throw new O;if(y||z instanceof Promise)y=(y??Promise.resolve()).then(async()=>{await z,s.issues.length!==k&&(p||(p=C(s,k)))});else{if(s.issues.length===k)continue;p||(p=C(s,k))}}return y?y.then(()=>s):s},u=(s,l,g)=>{if(C(s))return s.aborted=!0,s;let p=c(l,n,g);if(p instanceof Promise){if(g.async===!1)throw new O;return p.then(y=>t._zod.parse(y,g))}return t._zod.parse(p,g)};t._zod.run=(s,l)=>{if(l.skipChecks)return t._zod.parse(s,l);if(l.direction==="backward"){let p=t._zod.parse({value:s.value,issues:[]},{...l,skipChecks:!0});return p instanceof Promise?p.then(y=>u(y,s,l)):u(p,s,l)}let g=t._zod.parse(s,l);if(g instanceof Promise){if(l.async===!1)throw new O;return g.then(p=>c(p,n,l))}return c(g,n,l)}}I(t,"~standard",()=>({validate:c=>{try{let u=X(t,c);return u.success?{value:u.data}:{issues:u.error?.issues}}catch{return q(t,c).then(s=>s.success?{value:s.data}:{issues:s.error?.issues})}},vendor:"zod",version:1}))}),de=b("$ZodString",(t,e)=>{w.init(t,e),t._zod.pattern=[...t?._zod.bag?.patterns??[]].pop()??et(t._zod.bag),t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=String(r.value)}catch{}return typeof r.value=="string"||r.issues.push({expected:"string",code:"invalid_type",input:r.value,inst:t}),r}}),Oe=b("$ZodStringFormat",(t,e)=>{ot.init(t,e),de.init(t,e)});var mt=b("$ZodURL",(t,e)=>{Oe.init(t,e),t._zod.check=r=>{try{let n=r.value.trim(),c=new URL(n);e.hostname&&(e.hostname.lastIndex=0,e.hostname.test(c.hostname)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid hostname",pattern:e.hostname.source,input:r.value,inst:t,continue:!e.abort})),e.protocol&&(e.protocol.lastIndex=0,e.protocol.test(c.protocol.endsWith(":")?c.protocol.slice(0,-1):c.protocol)||r.issues.push({code:"invalid_format",format:"url",note:"Invalid protocol",pattern:e.protocol.source,input:r.value,inst:t,continue:!e.abort})),e.normalize?r.value=c.href:r.value=n;return}catch{r.issues.push({code:"invalid_format",format:"url",input:r.value,inst:t,continue:!e.abort})}}});var Ze=b("$ZodNumber",(t,e)=>{w.init(t,e),t._zod.pattern=t._zod.bag.pattern??rt,t._zod.parse=(r,n)=>{if(e.coerce)try{r.value=Number(r.value)}catch{}let c=r.value;if(typeof c=="number"&&!Number.isNaN(c)&&Number.isFinite(c))return r;let u=typeof c=="number"?Number.isNaN(c)?"NaN":Number.isFinite(c)?void 0:"Infinity":void 0;return r.issues.push({expected:"number",code:"invalid_type",input:c,inst:t,...u?{received:u}:{}}),r}}),ft=b("$ZodNumberFormat",(t,e)=>{it.init(t,e),Ze.init(t,e)});var pt=b("$ZodUnknown",(t,e)=>{w.init(t,e),t._zod.parse=r=>r});function ut(t,e,r){t.issues.length&&e.issues.push(...K(r,t.issues)),e.value[r]=t.value}var gt=b("$ZodArray",(t,e)=>{w.init(t,e),t._zod.parse=(r,n)=>{let c=r.value;if(!Array.isArray(c))return r.issues.push({expected:"array",code:"invalid_type",input:c,inst:t}),r;r.value=Array(c.length);let u=[];for(let s=0;s<c.length;s++){let l=c[s],g=e.element._zod.run({value:l,issues:[]},n);g instanceof Promise?u.push(g.then(p=>ut(p,r,s))):ut(g,r,s)}return u.length?Promise.all(u).then(()=>r):r}});function le(t,e,r,n,c){if(t.issues.length){if(c&&!(r in n))return;e.issues.push(...K(r,t.issues))}t.value===void 0?r in n&&(e.value[r]=void 0):e.value[r]=t.value}function mr(t){let e=Object.keys(t.shape);for(let n of e)if(!t.shape?.[n]?._zod?.traits?.has("$ZodType"))throw new Error(`Invalid element at key "${n}": expected a Zod schema`);let r=We(t.shape);return{...t,keys:e,keySet:new Set(e),numKeys:e.length,optionalKeys:new Set(r)}}function fr(t,e,r,n,c,u){let s=[],l=c.keySet,g=c.catchall._zod,p=g.def.type,y=g.optout==="optional";for(let x in e){if(l.has(x))continue;if(p==="never"){s.push(x);continue}let k=g.run({value:e[x],issues:[]},n);k instanceof Promise?t.push(k.then(z=>le(z,r,x,e,y))):le(k,r,x,e,y)}return s.length&&r.issues.push({code:"unrecognized_keys",keys:s,input:e,inst:u}),t.length?Promise.all(t).then(()=>r):r}var vt=b("$ZodObject",(t,e)=>{if(w.init(t,e),!Object.getOwnPropertyDescriptor(e,"shape")?.get){let l=e.shape;Object.defineProperty(e,"shape",{get:()=>{let g={...l};return Object.defineProperty(e,"shape",{value:g}),g}})}let n=Ue(()=>mr(e));I(t._zod,"propValues",()=>{let l=e.shape,g={};for(let p in l){let y=l[p]._zod;if(y.values){g[p]??(g[p]=new Set);for(let x of y.values)g[p].add(x)}}return g});let c=oe,u=e.catchall,s;t._zod.parse=(l,g)=>{s??(s=n.value);let p=l.value;if(!c(p))return l.issues.push({expected:"object",code:"invalid_type",input:p,inst:t}),l;l.value={};let y=[],x=s.shape;for(let k of s.keys){let z=x[k],T=z._zod.optout==="optional",V=z._zod.run({value:p[k],issues:[]},g);V instanceof Promise?y.push(V.then(be=>le(be,l,k,p,T))):le(V,l,k,p,T)}return u?fr(y,p,l,g,n.value,t):y.length?Promise.all(y).then(()=>l):l}});function st(t,e,r,n){for(let u of t)if(u.issues.length===0)return e.value=u.value,e;let c=t.filter(u=>!C(u));return c.length===1?(e.value=c[0].value,c[0]):(e.issues.push({code:"invalid_union",input:e.value,inst:r,errors:t.map(u=>u.issues.map(s=>N(s,n,E())))}),e)}var $t=b("$ZodUnion",(t,e)=>{w.init(t,e),I(t._zod,"optin",()=>e.options.some(c=>c._zod.optin==="optional")?"optional":void 0),I(t._zod,"optout",()=>e.options.some(c=>c._zod.optout==="optional")?"optional":void 0),I(t._zod,"values",()=>{if(e.options.every(c=>c._zod.values))return new Set(e.options.flatMap(c=>Array.from(c._zod.values)))}),I(t._zod,"pattern",()=>{if(e.options.every(c=>c._zod.pattern)){let c=e.options.map(u=>u._zod.pattern);return new RegExp(`^(${c.map(u=>ae(u.source)).join("|")})$`)}});let r=e.options.length===1,n=e.options[0]._zod.run;t._zod.parse=(c,u)=>{if(r)return n(c,u);let s=!1,l=[];for(let g of e.options){let p=g._zod.run({value:c.value,issues:[]},u);if(p instanceof Promise)l.push(p),s=!0;else{if(p.issues.length===0)return p;l.push(p)}}return s?Promise.all(l).then(g=>st(g,c,t,u)):st(l,c,t,u)}});var ht=b("$ZodTuple",(t,e)=>{w.init(t,e);let r=e.items;t._zod.parse=(n,c)=>{let u=n.value;if(!Array.isArray(u))return n.issues.push({input:u,inst:t,expected:"tuple",code:"invalid_type"}),n;n.value=[];let s=[],l=[...r].reverse().findIndex(y=>y._zod.optin!=="optional"),g=l===-1?0:r.length-l;if(!e.rest){let y=u.length>r.length,x=u.length<g-1;if(y||x)return n.issues.push({...y?{code:"too_big",maximum:r.length,inclusive:!0}:{code:"too_small",minimum:r.length},input:u,inst:t,origin:"array"}),n}let p=-1;for(let y of r){if(p++,p>=u.length&&p>=g)continue;let x=y._zod.run({value:u[p],issues:[]},c);x instanceof Promise?s.push(x.then(k=>se(k,n,p))):se(x,n,p)}if(e.rest){let y=u.slice(r.length);for(let x of y){p++;let k=e.rest._zod.run({value:x,issues:[]},c);k instanceof Promise?s.push(k.then(z=>se(z,n,p))):se(k,n,p)}}return s.length?Promise.all(s).then(()=>n):n}});function se(t,e,r){t.issues.length&&e.issues.push(...K(r,t.issues)),e.value[r]=t.value}function lt(t,e){return t.issues.length&&e===void 0?{issues:[],value:void 0}:t}var _t=b("$ZodOptional",(t,e)=>{w.init(t,e),t._zod.optin="optional",t._zod.optout="optional",I(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,void 0]):void 0),I(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${ae(r.source)})?$`):void 0}),t._zod.parse=(r,n)=>{if(e.innerType._zod.optin==="optional"){let c=e.innerType._zod.run(r,n);return c instanceof Promise?c.then(u=>lt(u,r.value)):lt(c,r.value)}return r.value===void 0?r:e.innerType._zod.run(r,n)}});var yt=b("$ZodNullable",(t,e)=>{w.init(t,e),I(t._zod,"optin",()=>e.innerType._zod.optin),I(t._zod,"optout",()=>e.innerType._zod.optout),I(t._zod,"pattern",()=>{let r=e.innerType._zod.pattern;return r?new RegExp(`^(${ae(r.source)}|null)$`):void 0}),I(t._zod,"values",()=>e.innerType._zod.values?new Set([...e.innerType._zod.values,null]):void 0),t._zod.parse=(r,n)=>r.value===null?r:e.innerType._zod.run(r,n)});var bt=b("$ZodCustom",(t,e)=>{M.init(t,e),w.init(t,e),t._zod.parse=(r,n)=>r,t._zod.check=r=>{let n=r.value,c=e.fn(n);if(c instanceof Promise)return c.then(u=>dt(u,r,n,t));dt(c,r,n,t)}});function dt(t,e,r,n){if(!t){let c={code:"custom",input:r,inst:n,path:[...n._zod.def.path??[]],continue:!n._zod.def.abort};n._zod.def.params&&(c.params=n._zod.def.params),e.issues.push(De(c))}}i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();var kt;var Te=class{constructor(){this._map=new WeakMap,this._idmap=new Map}add(e,...r){let n=r[0];return this._map.set(e,n),n&&typeof n=="object"&&"id"in n&&this._idmap.set(n.id,e),this}clear(){return this._map=new WeakMap,this._idmap=new Map,this}remove(e){let r=this._map.get(e);return r&&typeof r=="object"&&"id"in r&&this._idmap.delete(r.id),this._map.delete(e),this}get(e){let r=e._zod.parent;if(r){let n={...this.get(r)??{}};delete n.id;let c={...n,...this._map.get(e)};return Object.keys(c).length?c:void 0}return this._map.get(e)}has(e){return this._map.has(e)}};function zt(){return new Te}(kt=globalThis).__zod_globalRegistry??(kt.__zod_globalRegistry=zt());var Ee=globalThis.__zod_globalRegistry;i();a();o();function It(t,e){return new t({type:"string",...P(e)})}function wt(t,e){return new t({type:"string",format:"url",check:"string_format",abort:!1,...P(e)})}function St(t,e){return new t({type:"number",check:"number_format",abort:!1,format:"safeint",...P(e)})}function jt(t){return new t({type:"unknown"})}function Ne(t,e){return new nt({check:"greater_than",...P(e),value:t,inclusive:!0})}function Me(t){return Ne(0,t)}function Ut(t,e,r){let n=P(r);return n.abort??(n.abort=!0),new t({type:"custom",check:"custom",fn:e,...n})}i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();i();a();o();var D=b("ZodMiniType",(t,e)=>{if(!t._zod)throw new Error("Uninitialized schema in ZodMiniType.");w.init(t,e),t.def=e,t.type=e.type,t.parse=(r,n)=>ce(t,r,n,{callee:t.parse}),t.safeParse=(r,n)=>X(t,r,n),t.parseAsync=async(r,n)=>ue(t,r,n,{callee:t.parseAsync}),t.safeParseAsync=async(r,n)=>q(t,r,n),t.check=(...r)=>t.clone({...e,checks:[...e.checks??[],...r.map(n=>typeof n=="function"?{_zod:{check:n,def:{check:"custom"},onattach:[]}}:n)]},{parent:!0}),t.with=t.check,t.clone=(r,n)=>B(t,r,n),t.brand=()=>t,t.register=((r,n)=>(r.add(t,n),t)),t.apply=r=>r(t)}),Ae=b("ZodMiniString",(t,e)=>{de.init(t,e),D.init(t,e)});function R(t){return It(Ae,t)}var Pt=b("ZodMiniStringFormat",(t,e)=>{Oe.init(t,e),Ae.init(t,e)});var Sr=b("ZodMiniURL",(t,e)=>{mt.init(t,e),Pt.init(t,e)});function S(t){return wt(Sr,t)}var Dt=b("ZodMiniNumber",(t,e)=>{Ze.init(t,e),D.init(t,e)});var jr=b("ZodMiniNumberFormat",(t,e)=>{ft.init(t,e),Dt.init(t,e)});function Ot(t){return St(jr,t)}var Ur=b("ZodMiniUnknown",(t,e)=>{pt.init(t,e),D.init(t,e)});function Pr(){return jt(Ur)}var Dr=b("ZodMiniArray",(t,e)=>{gt.init(t,e),D.init(t,e)});function F(t,e){return new Dr({type:"array",element:t,...P(e)})}var Or=b("ZodMiniObject",(t,e)=>{vt.init(t,e),D.init(t,e),I(t,"shape",()=>e.shape)});function Z(t,e){return new Or({type:"object",shape:t,catchall:Pr(),...P(e)})}function Le(t,e){return qe(t,e)}var Zr=b("ZodMiniUnion",(t,e)=>{$t.init(t,e),D.init(t,e)});function Zt(t,e){return new Zr({type:"union",options:t,...P(e)})}var Tr=b("ZodMiniTuple",(t,e)=>{ht.init(t,e),D.init(t,e)});function j(t,e,r){let n=e instanceof w,c=n?r:e,u=n?e:null;return new Tr({type:"tuple",items:t,rest:u,...P(c)})}var Er=b("ZodMiniOptional",(t,e)=>{_t.init(t,e),D.init(t,e)});function A(t){return new Er({type:"optional",innerType:t})}var Nr=b("ZodMiniNullable",(t,e)=>{yt.init(t,e),D.init(t,e)});function fe(t){return new Nr({type:"nullable",innerType:t})}var Mr=b("ZodMiniCustom",(t,e)=>{bt.init(t,e),D.init(t,e)});function Ar(t,e){return Ut(Mr,t??(()=>!0),e)}function Tt(t,e={}){let r=Ar(n=>n instanceof t,e);return r._zod.bag.Class=t,r._zod.check=n=>{n.value instanceof t||n.issues.push({code:"invalid_type",expected:t.name,input:n.value,inst:r,path:[...r._zod.def.path??[]]})},r}i();a();o();i();a();o();i();a();o();var Mt=Z({value:Z({}),channels:F(R()),allowed:A(fe(F(S())))}),Hp=Le(Mt,{url:S(),actor:S()}),Nt=Zt([Z({url:S()}),S()]),G=Z({actor:S()}),pe=A(fe(G)),At=Z({data:Tt(Blob),allowed:A(fe(F(S())))}),Yp=Le(At,{actor:S()}),Gr=Z({types:A(F(R())),maxBytes:A(Ot().check(Me()))}),ge=class{constructor(e){this.graffiti=e,this.sessionEvents=this.graffiti.sessionEvents}sessionEvents;login=(...e)=>{let r=j([A(S())]).parse(e);return this.graffiti.login(...r)};logout=(...e)=>{let r=j([G]).parse(e);return this.graffiti.logout(...r)};handleToActor=(...e)=>{let r=j([R()]).parse(e);return this.graffiti.handleToActor(...r)};actorToHandle=(...e)=>{let r=j([S()]).parse(e);return this.graffiti.actorToHandle(...r)};post=(...e)=>{let r=j([Mt,G]).parse(e);return this.graffiti.post(...r)};get=(...e)=>{let r=j([Nt,Z({}),pe]).parse(e);return this.graffiti.get(r[0],r[1],r[2])};delete=(...e)=>{let r=j([Nt,G]).parse(e);return this.graffiti.delete(...r)};postMedia=(...e)=>{let r=j([At,G]).parse(e);return this.graffiti.postMedia(...r)};getMedia=(...e)=>{let r=j([S(),Gr,pe]).parse(e);return this.graffiti.getMedia(...r)};deleteMedia=(...e)=>{let r=j([S(),G]).parse(e);return this.graffiti.deleteMedia(...r)};discover=(...e)=>{let r=j([F(R()),Z({}),pe]).parse(e);return this.graffiti.discover(r[0],r[1],r[2])};continueDiscover=(...e)=>{let r=j([R(),pe]).parse(e);return this.graffiti.continueDiscover(...r)}};i();a();o();i();a();o();function Ce(t){return btoa(String.fromCodePoint(...t)).replace(/\+/g,"-").replace(/\//g,"_").replace(/\=+$/,"")}function Ct(t){let e=t.replace(/-/g,"+").replace(/_/g,"/");for(;e.length%4!==0;)e+="=";return Uint8Array.from(atob(e),r=>r.charCodeAt(0))}function Rt(t=32){let e=new Uint8Array(t);return crypto.getRandomValues(e),Ce(e)}var Ft="graffiti:";function Lt(t){let e=t.replace(/:/g,"!").replace(/\//g,"~");return encodeURIComponent(e)}function Vr(t){return decodeURIComponent(t).replace(/!/g,":").replace(/~/g,"/")}function Jr(t,e,r){return`${r}${Lt(t)}:${Lt(e)}`}function Gt(t,e){return Jr(t,e,Ft)}function Br(t,e){if(!t.startsWith(e))throw new U(`URL does not start with ${e}`);let r=t.slice(e.length).split(":");if(r.length!==2)throw new U("URL has too many colon-seperated parts");let[n,c]=r.map(Vr);return{actor:n,id:c}}function ve(t){return Br(t,Ft)}async function Vt(t){if(typeof FileReader<"u")return new Promise((e,r)=>{let n=new FileReader;n.onload=()=>{typeof n.result=="string"?e(n.result):r(new Error("Unexpected result type"))},n.onerror=r,n.readAsDataURL(t)});if(typeof d<"u"){let e=await t.arrayBuffer();return`data:${t.type};base64,${d.from(e).toString("base64")}`}throw new Error("Unsupported environment")}async function Jt(t){return await(await fetch(t)).blob()}var $e="did:local:",he=class{sessionEvents=new EventTarget;handleToActor=async e=>{let r=new TextEncoder().encode(e),n=Ce(r);return`${$e}${n}`};actorToHandle=async e=>{if(!e.startsWith($e))throw new Error(`actor must start with ${$e}`);let r=e.slice($e.length),n=Ct(r);return new TextDecoder().decode(n)};constructor(){(async()=>{await Promise.resolve();for(let n of this.getLoggedInHandles()){let c=new CustomEvent("login",{detail:{session:{actor:await this.handleToActor(n)}}});this.sessionEvents.dispatchEvent(c)}let r=new CustomEvent("initialized",{detail:{}});this.sessionEvents.dispatchEvent(r)})()}loggedInHandles=[];getLoggedInHandles(){if(typeof window<"u"){let e=window.localStorage.getItem("graffiti-handles");return e?e.split(",").map(decodeURIComponent):[]}else return this.loggedInHandles}setLoggedInHandles(e){typeof window<"u"?window.localStorage.setItem("graffiti-handles",e.join(",")):this.loggedInHandles=e}login=async e=>{await new Promise(n=>setTimeout(n,0));let r=e?await this.actorToHandle(e):void 0;if(typeof window<"u"&&(r=window.prompt("Choose a username to log in.",r)??void 0),r){let n=this.getLoggedInHandles();n.includes(r)||this.setLoggedInHandles([...n,r]),window.location.reload()}else{let n={error:new Error("No handle provided to login")},c=new CustomEvent("login",{detail:n});this.sessionEvents.dispatchEvent(c)}};logout=async e=>{let r=await this.actorToHandle(e.actor),n=this.getLoggedInHandles(),c=n.includes(r);c&&this.setLoggedInHandles(n.filter(l=>l!==r));let u=c?{actor:e.actor}:{actor:e.actor,error:new Error("Not logged in with that actor")},s=new CustomEvent("logout",{detail:u});this.sessionEvents.dispatchEvent(s)}};i();a();o();var _e=class{db_;options;get db(){return this.db_||(this.db_=(async()=>{let{default:e}=await import("./index-browser.es-UXYPGJ2M.js"),r={name:"graffitiDb",...this.options.pouchDBOptions},n=new e(r.name,r);return await n.put({_id:"_design/indexes",views:{objectsPerChannelAndLastModified:{map:function(c){let u=c.lastModified.toString().padStart(15,"0");c.channels.forEach(function(s){let l=encodeURIComponent(s)+"/"+u;emit(l)})}.toString()}}}).catch(c=>{if(!(c&&typeof c=="object"&&"name"in c&&c.name==="conflict"))throw c}),n})()),this.db_}async getOperationClock(){return Number((await(await this.db).info()).update_seq)}constructor(e){this.options=e??{}}get=async(...e)=>{let[r,n,c]=e,u=ke(r),s;try{s=await(await this.db).get(u)}catch{throw new U("The object you are trying to get either does not exist or you are not allowed to see it")}if(s.tombstone)throw new U("The object you are trying to get either does not exist or you are not allowed to see it");let{actor:l}=ve(u),{value:g,channels:p,allowed:y}=s,x={value:g,channels:p,allowed:y,url:u,actor:l};if(!ze(x,c))throw new U("The object you are trying to get either does not exist or you are not allowed to see it");let k=Ie(x,[],c?.actor);if(!(await we(n))(k))throw new ee;return k};delete=async(...e)=>{let[r,n]=e,c=ke(r),{actor:u}=ve(c);if(u!==n.actor)throw new L("You cannot delete an object that you did not create.");let s;try{s=await(await this.db).get(c)}catch{throw new U("Object not found.")}if(s.tombstone)throw new U("Object not found.");s.tombstone=!0,s.lastModified=await this.getOperationClock();try{await(await this.db).put(s)}catch{throw new U("Object not found.")}let{value:l,channels:g,allowed:p}=s;return{value:l,channels:g,allowed:p,url:c,actor:u}};post=async(...e)=>{let[r,n]=e,c=n.actor,u=Rt(),s=Gt(c,u),{value:l,channels:g,allowed:p}=r,y={value:l,channels:g,allowed:p,lastModified:await this.getOperationClock(),tombstone:!1};return await(await this.db).put({_id:s,...y}),{channels:r.channels,value:r.value,...r.allowed?{allowed:r.allowed}:{},actor:c,url:s}};async*discoverMeta(e,r){if(r){let x=this.options.continueBuffer??1e3,k=Date.now()-r.lastDiscovered;k<x&&await new Promise(z=>setTimeout(z,x-k))}let[n,c,u]=e,s=await we(c),l=r?r.ifModifiedSince.toString().padStart(15,"0"):"",g="\uFFFF",p=new Set,y=await this.getOperationClock();for(let x of n){let k=encodeURIComponent(x)+"/",z=k+l,T=k+g,V=await(await this.db).query("indexes/objectsPerChannelAndLastModified",{startkey:z,endkey:T,include_docs:!0});for(let be of V.rows){let Y=be.doc;if(!Y)continue;let J=Y._id;if(p.has(J)||(p.add(J),!r&&Y.tombstone))continue;let{tombstone:Kt,value:Wt,channels:Xt,allowed:qt}=Y,{actor:Ht}=ve(J),Fe={url:J,value:Wt,allowed:qt,channels:Xt,actor:Ht};if(!ze(Fe,u))continue;let Ge=Ie(Fe,n,u?.actor);s(Ge)&&(yield Kt?{tombstone:!0,object:{url:J}}:{object:Ge})}}return{lastDiscovered:Date.now(),ifModifiedSince:y}}discoverCursor(e,r){let[n,c,u]=e;return"discover:"+JSON.stringify({channels:n,schema:c,continueParams:r,actor:u?.actor})}async*discoverContinue(e,r,n){if(n?.actor!==e[2]?.actor)throw new L("Cannot continue a cursor started by another actor");let c=this.discoverMeta(e,r);for(;;){let u=await c.next();if(u.done)return{cursor:this.discoverCursor(e,u.value)};yield u.value}}discover=(...e)=>{let[r,n,c]=e,u=this.discoverMeta([r,n,c]),s=this;return(async function*(){for(;;){let l=await u.next();if(l.done)return{cursor:s.discoverCursor(e,l.value)};l.value.tombstone||(yield l.value)}})()};continueDiscover=(...e)=>{let[r,n]=e;if(r.startsWith("discover:")){let{channels:c,schema:u,actor:s,continueParams:l}=JSON.parse(r.slice(9));return s&&s!==n?.actor?(async function*(){throw new L("Cannot continue a cursor started by another actor")})():this.discoverContinue([c,u,n],l,n)}else return(async function*(){throw new ne("Cursor not found")})()}};i();a();o();var Kr={properties:{value:{properties:{dataBase64:{type:"string"},type:{type:"string"},size:{type:"number"}},required:["dataBase64","type","size"]}}},ye=class{db;constructor(e){this.db=e}postMedia=async(...e)=>{let[r,n]=e,c=await Vt(r.data),u=r.data.type,{url:s}=await this.db.post({value:{dataBase64:c,type:u,size:r.data.size},channels:[],allowed:r.allowed},n);return s};getMedia=async(...e)=>{let[r,n,c]=e,u=await this.db.get(r,Kr,c),{dataBase64:s,type:l,size:g}=u.value;if(n?.maxBytes&&g>n.maxBytes)throw new te("File size exceeds limit");if(n?.types&&!Ve(l,n.types))throw new re(`Unacceptable media type, ${l}`);let p=await Jt(s);if(p.size!==g||p.type!==l)throw new Error("Invalid data");return{data:p,actor:u.actor,allowed:u.allowed}};deleteMedia=async(...e)=>{let[r,n]=e;await this.db.delete(r,n)}};var Bt=class extends ge{constructor(e){let r=new Re(e);super(r)}},Re=class{graffitiLocalIdentity=new he;login=this.graffitiLocalIdentity.login.bind(this.graffitiLocalIdentity);logout=this.graffitiLocalIdentity.logout.bind(this.graffitiLocalIdentity);handleToActor=this.graffitiLocalIdentity.handleToActor.bind(this.graffitiLocalIdentity);actorToHandle=this.graffitiLocalIdentity.actorToHandle.bind(this.graffitiLocalIdentity);sessionEvents=this.graffitiLocalIdentity.sessionEvents;graffitiLocalObjects;post;get;delete;discover;continueDiscover;graffitiLocalMedia;postMedia;getMedia;deleteMedia;constructor(e){this.graffitiLocalObjects=new _e(e),this.post=this.graffitiLocalObjects.post.bind(this.graffitiLocalObjects),this.get=this.graffitiLocalObjects.get.bind(this.graffitiLocalObjects),this.delete=this.graffitiLocalObjects.delete.bind(this.graffitiLocalObjects),this.discover=this.graffitiLocalObjects.discover.bind(this.graffitiLocalObjects),this.continueDiscover=this.graffitiLocalObjects.continueDiscover.bind(this.graffitiLocalObjects),this.graffitiLocalMedia=new ye(this.graffitiLocalObjects),this.postMedia=this.graffitiLocalMedia.postMedia.bind(this.graffitiLocalMedia),this.getMedia=this.graffitiLocalMedia.getMedia.bind(this.graffitiLocalMedia),this.deleteMedia=this.graffitiLocalMedia.deleteMedia.bind(this.graffitiLocalMedia)}};export{Bt as GraffitiLocal};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|