this.me 3.1.2 → 3.1.3
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/me.cjs +1 -1
- package/dist/me.es.js +1056 -722
- package/dist/me.umd.js +1 -1
- package/dist/src/me.d.ts +61 -2
- package/dist/src/types.d.ts +2 -0
- package/package.json +3 -1
package/dist/me.umd.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(function(H,W){typeof exports=="object"&&typeof module<"u"?module.exports=W():typeof define=="function"&&define.amd?define(W):(H=typeof globalThis<"u"?globalThis:H||self,H.Me=W())})(this,(function(){"use strict";function W(f){return{__ptr:f}}function K(f){return!!f&&typeof f=="object"&&typeof f.__ptr=="string"&&f.__ptr.length>0}function ye(f){return{__id:f}}function Zt(f){return!!f&&typeof f=="object"&&typeof f.__id=="string"&&f.__id.length>0}function ve(f){return!!f&&typeof f=="object"&&typeof f.path=="string"&&typeof f.hash=="string"&&typeof f.timestamp=="number"}function E(f){return f.length===0?{scope:[],leaf:null}:{scope:f.slice(0,-1),leaf:f[f.length-1]}}function Yt(f,r){if(r.length>f.length)return!1;for(let e=0;e<r.length;e++)if(f[e]!==r[e])return!1;return!0}function U(f){const r=f.trim().toLowerCase();if(r.length<3||r.length>63)throw new Error(`Invalid username length: ${r.length}. Expected 3..63 characters.`);if(!/^[a-z0-9][a-z0-9-]*[a-z0-9]$/.test(r))throw new Error(`Invalid username. Use only [a-z0-9-], and start/end with [a-z0-9]. Got: ${f}`);if(r.includes("--"))throw new Error(`Invalid username. "--" is not allowed. Got: ${f}`);return r}function I(f,r){return f[r]?.kind??null}function me(f,r){if(f.length!==1||f[0]!=="+"||!Array.isArray(r)||r.length<2)return null;const n=String(r[0]??"").trim(),i=String(r[1]??"").trim();return!n||!i||n==="+"?null:{op:n,kind:i}}function be(f,r,e){if(r.length===0)return null;const{scope:n,leaf:i}=E(r);return!i||I(f,i)!=="secret"||typeof e!="string"?null:{scopeKey:n.join(".")}}function Se(f,r,e){if(r.length===0)return null;const{scope:n,leaf:i}=E(r);return!i||I(f,i)!=="noise"||typeof e!="string"?null:{scopeKey:n.join(".")}}function ke(f,r,e){if(r.length===0)return null;const{leaf:n}=E(r);if(!n||I(f,n)!=="pointer"||typeof e!="string")return null;const i=e.trim().replace(/^\./,"");return i?{targetPath:i}:null}function Pe(f,r,e){if(r.length===1&&I(f,r[0])==="identity")return typeof e!="string"?null:{id:U(e),targetPath:[]};const{scope:n,leaf:i}=E(r);return!i||I(f,i)!=="identity"||typeof e!="string"?null:{id:U(e),targetPath:n}}function xe(f,r,e){if(r.length===0)return null;const{scope:n,leaf:i}=E(r);if(!i||I(f,i)!=="eval")return null;if(typeof e=="function")return{mode:"thunk",targetPath:n,thunk:e};if(Array.isArray(e)&&e.length>=2){const o=String(e[0]??"").trim(),l=String(e[1]??"").trim();return!o||!l?null:{mode:"assign",targetPath:n,name:o,expr:l}}return null}function _e(f,r,e){if(r.length===0)return null;const{scope:n,leaf:i}=E(r);if(!i||I(f,i)!=="query")return null;let o=null,l;if(Array.isArray(e)&&e.length>0)Array.isArray(e[0])&&(e.length===1||typeof e[1]=="function")?(o=e[0],l=typeof e[1]=="function"?e[1]:void 0):o=e;else return null;if(!Array.isArray(o)||o.length===0)return null;const s=o.map(c=>String(c)).map(c=>c.trim()).filter(c=>c.length>0);return s.length===0?null:{targetPath:n,paths:s,fn:l}}function Ae(f,r,e){if(r.length===0)return null;const{scope:n,leaf:i}=E(r);if(!i||I(f,i)!=="remove")return null;if(e==null)return{targetPath:n};if(typeof e=="string"){const o=e.split(".").filter(Boolean);return{targetPath:[...n,...o]}}return null}var Be=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Fe(f){return f&&f.__esModule&&Object.prototype.hasOwnProperty.call(f,"default")?f.default:f}var Qt={exports:{}};var oe;function we(){return oe||(oe=1,(function(f){(function(){var r="input is invalid type",e="finalize already called",n=typeof window=="object",i=n?window:{};i.JS_SHA3_NO_WINDOW&&(n=!1);var o=!n&&typeof self=="object",l=!i.JS_SHA3_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;l?i=Be:o&&(i=self);for(var s=!i.JS_SHA3_NO_COMMON_JS&&!0&&f.exports,c=!i.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",a="0123456789abcdef".split(""),p=[31,7936,2031616,520093696],g=[4,1024,262144,67108864],v=[1,256,65536,16777216],x=[6,1536,393216,100663296],P=[0,8,16,24],_=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],B=[224,256,384,512],C=[128,256],O=["hex","buffer","arrayBuffer","array","digest"],N={128:168,256:136},$=i.JS_SHA3_NO_NODE_JS||!Array.isArray?function(t){return Object.prototype.toString.call(t)==="[object Array]"}:Array.isArray,M=c&&(i.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)?function(t){return typeof t=="object"&&t.buffer&&t.buffer.constructor===ArrayBuffer}:ArrayBuffer.isView,z=function(t){var u=typeof t;if(u==="string")return[t,!0];if(u!=="object"||t===null)throw new Error(r);if(c&&t.constructor===ArrayBuffer)return[new Uint8Array(t),!1];if(!$(t)&&!M(t))throw new Error(r);return[t,!1]},ce=function(t){return z(t)[0].length===0},re=function(t){for(var u=[],h=0;h<t.length;++h)u[h]=t[h];return u},ae=function(t,u,h){return function(d){return new F(t,u,t).update(d)[h]()}},ue=function(t,u,h){return function(d,y){return new F(t,u,y).update(d)[h]()}},fe=function(t,u,h){return function(d,y,m,S){return j["cshake"+t].update(d,y,m,S)[h]()}},he=function(t,u,h){return function(d,y,m,S){return j["kmac"+t].update(d,y,m,S)[h]()}},G=function(t,u,h,d){for(var y=0;y<O.length;++y){var m=O[y];t[m]=u(h,d,m)}return t},de=function(t,u){var h=ae(t,u,"hex");return h.create=function(){return new F(t,u,t)},h.update=function(d){return h.create().update(d)},G(h,ae,t,u)},Me=function(t,u){var h=ue(t,u,"hex");return h.create=function(d){return new F(t,u,d)},h.update=function(d,y){return h.create(y).update(d)},G(h,ue,t,u)},ze=function(t,u){var h=N[t],d=fe(t,u,"hex");return d.create=function(y,m,S){return ce(m)&&ce(S)?j["shake"+t].create(y):new F(t,u,y).bytepad([m,S],h)},d.update=function(y,m,S,b){return d.create(m,S,b).update(y)},G(d,fe,t,u)},Re=function(t,u){var h=N[t],d=he(t,u,"hex");return d.create=function(y,m,S){return new ie(t,u,m).bytepad(["KMAC",S],h).bytepad([y],h)},d.update=function(y,m,S,b){return d.create(y,S,b).update(m)},G(d,he,t,u)},pe=[{name:"keccak",padding:v,bits:B,createMethod:de},{name:"sha3",padding:x,bits:B,createMethod:de},{name:"shake",padding:p,bits:C,createMethod:Me},{name:"cshake",padding:g,bits:C,createMethod:ze},{name:"kmac",padding:g,bits:C,createMethod:Re}],j={},V=[],T=0;T<pe.length;++T)for(var R=pe[T],Z=R.bits,L=0;L<Z.length;++L){var ne=R.name+"_"+Z[L];if(V.push(ne),j[ne]=R.createMethod(Z[L],R.padding),R.name!=="sha3"){var ge=R.name+Z[L];V.push(ge),j[ge]=j[ne]}}function F(t,u,h){this.blocks=[],this.s=[],this.padding=u,this.outputBits=h,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(t<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=h>>5,this.extraBytes=(h&31)>>3;for(var d=0;d<50;++d)this.s[d]=0}F.prototype.update=function(t){if(this.finalized)throw new Error(e);var u=z(t);t=u[0];for(var h=u[1],d=this.blocks,y=this.byteCount,m=t.length,S=this.blockCount,b=0,w=this.s,k,A;b<m;){if(this.reset)for(this.reset=!1,d[0]=this.block,k=1;k<S+1;++k)d[k]=0;if(h)for(k=this.start;b<m&&k<y;++b)A=t.charCodeAt(b),A<128?d[k>>2]|=A<<P[k++&3]:A<2048?(d[k>>2]|=(192|A>>6)<<P[k++&3],d[k>>2]|=(128|A&63)<<P[k++&3]):A<55296||A>=57344?(d[k>>2]|=(224|A>>12)<<P[k++&3],d[k>>2]|=(128|A>>6&63)<<P[k++&3],d[k>>2]|=(128|A&63)<<P[k++&3]):(A=65536+((A&1023)<<10|t.charCodeAt(++b)&1023),d[k>>2]|=(240|A>>18)<<P[k++&3],d[k>>2]|=(128|A>>12&63)<<P[k++&3],d[k>>2]|=(128|A>>6&63)<<P[k++&3],d[k>>2]|=(128|A&63)<<P[k++&3]);else for(k=this.start;b<m&&k<y;++b)d[k>>2]|=t[b]<<P[k++&3];if(this.lastByteIndex=k,k>=y){for(this.start=k-y,this.block=d[S],k=0;k<S;++k)w[k]^=d[k];J(w),this.reset=!0}else this.start=k}return this},F.prototype.encode=function(t,u){var h=t&255,d=1,y=[h];for(t=t>>8,h=t&255;h>0;)y.unshift(h),t=t>>8,h=t&255,++d;return u?y.push(d):y.unshift(d),this.update(y),y.length},F.prototype.encodeString=function(t){var u=z(t);t=u[0];var h=u[1],d=0,y=t.length;if(h)for(var m=0;m<t.length;++m){var S=t.charCodeAt(m);S<128?d+=1:S<2048?d+=2:S<55296||S>=57344?d+=3:(S=65536+((S&1023)<<10|t.charCodeAt(++m)&1023),d+=4)}else d=y;return d+=this.encode(d*8),this.update(t),d},F.prototype.bytepad=function(t,u){for(var h=this.encode(u),d=0;d<t.length;++d)h+=this.encodeString(t[d]);var y=(u-h%u)%u,m=[];return m.length=y,this.update(m),this},F.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var t=this.blocks,u=this.lastByteIndex,h=this.blockCount,d=this.s;if(t[u>>2]|=this.padding[u&3],this.lastByteIndex===this.byteCount)for(t[0]=t[h],u=1;u<h+1;++u)t[u]=0;for(t[h-1]|=2147483648,u=0;u<h;++u)d[u]^=t[u];J(d)}},F.prototype.toString=F.prototype.hex=function(){this.finalize();for(var t=this.blockCount,u=this.s,h=this.outputBlocks,d=this.extraBytes,y=0,m=0,S="",b;m<h;){for(y=0;y<t&&m<h;++y,++m)b=u[y],S+=a[b>>4&15]+a[b&15]+a[b>>12&15]+a[b>>8&15]+a[b>>20&15]+a[b>>16&15]+a[b>>28&15]+a[b>>24&15];m%t===0&&(u=re(u),J(u),y=0)}return d&&(b=u[y],S+=a[b>>4&15]+a[b&15],d>1&&(S+=a[b>>12&15]+a[b>>8&15]),d>2&&(S+=a[b>>20&15]+a[b>>16&15])),S},F.prototype.arrayBuffer=function(){this.finalize();var t=this.blockCount,u=this.s,h=this.outputBlocks,d=this.extraBytes,y=0,m=0,S=this.outputBits>>3,b;d?b=new ArrayBuffer(h+1<<2):b=new ArrayBuffer(S);for(var w=new Uint32Array(b);m<h;){for(y=0;y<t&&m<h;++y,++m)w[m]=u[y];m%t===0&&(u=re(u),J(u))}return d&&(w[m]=u[y],b=b.slice(0,S)),b},F.prototype.buffer=F.prototype.arrayBuffer,F.prototype.digest=F.prototype.array=function(){this.finalize();for(var t=this.blockCount,u=this.s,h=this.outputBlocks,d=this.extraBytes,y=0,m=0,S=[],b,w;m<h;){for(y=0;y<t&&m<h;++y,++m)b=m<<2,w=u[y],S[b]=w&255,S[b+1]=w>>8&255,S[b+2]=w>>16&255,S[b+3]=w>>24&255;m%t===0&&(u=re(u),J(u))}return d&&(b=m<<2,w=u[y],S[b]=w&255,d>1&&(S[b+1]=w>>8&255),d>2&&(S[b+2]=w>>16&255)),S};function ie(t,u,h){F.call(this,t,u,h)}ie.prototype=new F,ie.prototype.finalize=function(){return this.encode(this.outputBits,!0),F.prototype.finalize.call(this)};var J=function(t){var u,h,d,y,m,S,b,w,k,A,Y,Q,X,tt,et,rt,nt,it,ot,lt,st,ct,at,ut,ft,ht,dt,pt,gt,yt,vt,mt,bt,St,kt,Pt,xt,_t,At,Bt,Ft,wt,Et,Ct,Ot,It,Nt,jt,Tt,Kt,Mt,zt,Rt,Wt,Dt,$t,Vt,Lt,Jt,Ht,Ut,qt,Gt;for(d=0;d<48;d+=2)y=t[0]^t[10]^t[20]^t[30]^t[40],m=t[1]^t[11]^t[21]^t[31]^t[41],S=t[2]^t[12]^t[22]^t[32]^t[42],b=t[3]^t[13]^t[23]^t[33]^t[43],w=t[4]^t[14]^t[24]^t[34]^t[44],k=t[5]^t[15]^t[25]^t[35]^t[45],A=t[6]^t[16]^t[26]^t[36]^t[46],Y=t[7]^t[17]^t[27]^t[37]^t[47],Q=t[8]^t[18]^t[28]^t[38]^t[48],X=t[9]^t[19]^t[29]^t[39]^t[49],u=Q^(S<<1|b>>>31),h=X^(b<<1|S>>>31),t[0]^=u,t[1]^=h,t[10]^=u,t[11]^=h,t[20]^=u,t[21]^=h,t[30]^=u,t[31]^=h,t[40]^=u,t[41]^=h,u=y^(w<<1|k>>>31),h=m^(k<<1|w>>>31),t[2]^=u,t[3]^=h,t[12]^=u,t[13]^=h,t[22]^=u,t[23]^=h,t[32]^=u,t[33]^=h,t[42]^=u,t[43]^=h,u=S^(A<<1|Y>>>31),h=b^(Y<<1|A>>>31),t[4]^=u,t[5]^=h,t[14]^=u,t[15]^=h,t[24]^=u,t[25]^=h,t[34]^=u,t[35]^=h,t[44]^=u,t[45]^=h,u=w^(Q<<1|X>>>31),h=k^(X<<1|Q>>>31),t[6]^=u,t[7]^=h,t[16]^=u,t[17]^=h,t[26]^=u,t[27]^=h,t[36]^=u,t[37]^=h,t[46]^=u,t[47]^=h,u=A^(y<<1|m>>>31),h=Y^(m<<1|y>>>31),t[8]^=u,t[9]^=h,t[18]^=u,t[19]^=h,t[28]^=u,t[29]^=h,t[38]^=u,t[39]^=h,t[48]^=u,t[49]^=h,tt=t[0],et=t[1],It=t[11]<<4|t[10]>>>28,Nt=t[10]<<4|t[11]>>>28,pt=t[20]<<3|t[21]>>>29,gt=t[21]<<3|t[20]>>>29,Ht=t[31]<<9|t[30]>>>23,Ut=t[30]<<9|t[31]>>>23,wt=t[40]<<18|t[41]>>>14,Et=t[41]<<18|t[40]>>>14,St=t[2]<<1|t[3]>>>31,kt=t[3]<<1|t[2]>>>31,rt=t[13]<<12|t[12]>>>20,nt=t[12]<<12|t[13]>>>20,jt=t[22]<<10|t[23]>>>22,Tt=t[23]<<10|t[22]>>>22,yt=t[33]<<13|t[32]>>>19,vt=t[32]<<13|t[33]>>>19,qt=t[42]<<2|t[43]>>>30,Gt=t[43]<<2|t[42]>>>30,Wt=t[5]<<30|t[4]>>>2,Dt=t[4]<<30|t[5]>>>2,Pt=t[14]<<6|t[15]>>>26,xt=t[15]<<6|t[14]>>>26,it=t[25]<<11|t[24]>>>21,ot=t[24]<<11|t[25]>>>21,Kt=t[34]<<15|t[35]>>>17,Mt=t[35]<<15|t[34]>>>17,mt=t[45]<<29|t[44]>>>3,bt=t[44]<<29|t[45]>>>3,ut=t[6]<<28|t[7]>>>4,ft=t[7]<<28|t[6]>>>4,$t=t[17]<<23|t[16]>>>9,Vt=t[16]<<23|t[17]>>>9,_t=t[26]<<25|t[27]>>>7,At=t[27]<<25|t[26]>>>7,lt=t[36]<<21|t[37]>>>11,st=t[37]<<21|t[36]>>>11,zt=t[47]<<24|t[46]>>>8,Rt=t[46]<<24|t[47]>>>8,Ct=t[8]<<27|t[9]>>>5,Ot=t[9]<<27|t[8]>>>5,ht=t[18]<<20|t[19]>>>12,dt=t[19]<<20|t[18]>>>12,Lt=t[29]<<7|t[28]>>>25,Jt=t[28]<<7|t[29]>>>25,Bt=t[38]<<8|t[39]>>>24,Ft=t[39]<<8|t[38]>>>24,ct=t[48]<<14|t[49]>>>18,at=t[49]<<14|t[48]>>>18,t[0]=tt^~rt&it,t[1]=et^~nt&ot,t[10]=ut^~ht&pt,t[11]=ft^~dt>,t[20]=St^~Pt&_t,t[21]=kt^~xt&At,t[30]=Ct^~It&jt,t[31]=Ot^~Nt&Tt,t[40]=Wt^~$t&Lt,t[41]=Dt^~Vt&Jt,t[2]=rt^~it<,t[3]=nt^~ot&st,t[12]=ht^~pt&yt,t[13]=dt^~gt&vt,t[22]=Pt^~_t&Bt,t[23]=xt^~At&Ft,t[32]=It^~jt&Kt,t[33]=Nt^~Tt&Mt,t[42]=$t^~Lt&Ht,t[43]=Vt^~Jt&Ut,t[4]=it^~lt&ct,t[5]=ot^~st&at,t[14]=pt^~yt&mt,t[15]=gt^~vt&bt,t[24]=_t^~Bt&wt,t[25]=At^~Ft&Et,t[34]=jt^~Kt&zt,t[35]=Tt^~Mt&Rt,t[44]=Lt^~Ht&qt,t[45]=Jt^~Ut&Gt,t[6]=lt^~ct&tt,t[7]=st^~at&et,t[16]=yt^~mt&ut,t[17]=vt^~bt&ft,t[26]=Bt^~wt&St,t[27]=Ft^~Et&kt,t[36]=Kt^~zt&Ct,t[37]=Mt^~Rt&Ot,t[46]=Ht^~qt&Wt,t[47]=Ut^~Gt&Dt,t[8]=ct^~tt&rt,t[9]=at^~et&nt,t[18]=mt^~ut&ht,t[19]=bt^~ft&dt,t[28]=wt^~St&Pt,t[29]=Et^~kt&xt,t[38]=zt^~Ct&It,t[39]=Rt^~Ot&Nt,t[48]=qt^~Wt&$t,t[49]=Gt^~Dt&Vt,t[0]^=_[d],t[1]^=_[d+1]};if(s)f.exports=j;else for(T=0;T<V.length;++T)i[V[T]]=j[V[T]]})()})(Qt)),Qt.exports}var Ee=we();const Ce=Fe(Ee),{keccak256:le}=Ce;function Xt(f){return new TextEncoder().encode(f)}function Oe(f){const r=f.startsWith("0x")?f.slice(2):f,e=new Uint8Array(r.length/2);for(let n=0;n<e.length;n++)e[n]=parseInt(r.substring(n*2,n*2+2),16);return e}function Ie(f){let r="";for(let e=0;e<f.length;e++)r+=f[e].toString(16).padStart(2,"0");return"0x"+r}function te(f,r,e){const n=JSON.stringify(f),i=Xt(n),o=le(r+":"+e.join(".")),l=Xt(o),s=new Uint8Array(i.length);for(let c=0;c<i.length;c++)s[c]=i[c]^l[c%l.length];return Ie(s)}function q(f,r,e){try{const n=Oe(f),i=le(r+":"+e.join(".")),o=Xt(i),l=new Uint8Array(n.length);for(let c=0;c<n.length;c++)l[c]=n[c]^o[c%o.length];const s=new TextDecoder().decode(l);return JSON.parse(s)}catch{return null}}function Ne(f){if(typeof f!="string"||!f.startsWith("0x"))return!1;const r=f.slice(2);return r.length<2||r.length%2!==0?!1:/^[0-9a-fA-F]+$/.test(r)}function je(f){const r=[];let e="",n=0,i=null;for(let l=0;l<f.length;l++){const s=f[l];if(i){e+=s,s===i&&(i=null);continue}if(s==='"'||s==="'"){i=s,e+=s;continue}if(s==="["){n++,e+=s;continue}if(s==="]"){n=Math.max(0,n-1),e+=s;continue}if(s==="."&&n===0){const c=e.trim();c&&r.push(c),e="";continue}e+=s}const o=e.trim();return o&&r.push(o),r}function Te(f,r,e){if(r.length===0){if(e.length===1&&typeof e[0]=="string"){const p=e[0].trim(),g=p.startsWith("_")||p.startsWith("~")||p.startsWith("@"),v=p.includes("."),x=/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(p);if(v||g||x){const P=je(p);return f.readPath(P)}}if(e.length===0)return f.createProxy([]);const c=f.normalizeArgs(e),a=f.postulate([],c);return a!==void 0?a:f.createProxy([])}const n=f.normalizeArgs(e),i=f.postulate(r,n),{scope:o,leaf:l}=f.splitPath(r),s=l?f.opKind(l):null;if(f.isThought(i)){const c=s?o:r;return f.createProxy(c)}return i!==void 0?i:f.createProxy(r)}function Ke(f,r,e={}){const{path:n,expression:i}=r,o=me(n,i);if(o)return{kind:"return",value:{define:o}};const l=be(f,n,i);if(l)return{kind:"commit",instructions:[{path:l.scopeKey?l.scopeKey.split(".").filter(Boolean):[],op:"secret",value:i}]};const s=Se(f,n,i);if(s)return{kind:"commit",instructions:[{path:s.scopeKey?s.scopeKey.split(".").filter(Boolean):[],op:"noise",value:i}]};const c=ke(f,n,i);if(c){const{scope:x}=E(n);return{kind:"commit",instructions:[{path:x,op:"ptr",value:W(c.targetPath)}]}}const a=Pe(f,n,i);if(a)return{kind:"commit",instructions:[{path:a.targetPath,op:"id",value:ye(a.id)}]};const p=Ae(f,n,i);if(p)return{kind:"commit",instructions:[{path:p.targetPath,op:"remove",value:"-"}]};const g=xe(f,n,i);if(g){if(g.mode==="assign")return{kind:"commit",instructions:[{path:[...g.targetPath,g.name],op:"derive",value:{kind:"expr",source:g.expr}}]};if(!e.evaluateThunk)throw new Error('Non-serializable derivation: "=" thunk requires `evaluateThunk` or serializable DNA.');const x=e.evaluateThunk(g.thunk);return g.targetPath.length===0?{kind:"return",value:x}:{kind:"commit",instructions:[{path:g.targetPath,op:"derive",value:x}]}}const v=_e(f,n,i);if(v){if(!e.readPath)return{kind:"commit",instructions:[{path:v.targetPath,op:"query",value:{paths:v.paths}}]};const x=v.paths.map(_=>e.readPath(_.split(".").filter(Boolean))),P=v.fn?v.fn(...x):x;return v.targetPath.length===0?{kind:"return",value:P}:{kind:"commit",instructions:[{path:v.targetPath,op:"query",value:P}]}}return{kind:"commit",instructions:[{path:n,op:"set",value:i}]}}const se="+";function D(f){let r=2166136261;for(let e=0;e<f.length;e++)r^=f.charCodeAt(e),r=Math.imul(r,16777619);return("00000000"+(r>>>0).toString(16)).slice(-8)}class ee{constructor(r){this.localSecrets={},this.localNoises={},this.encryptedBranches={},this.index={},this._shortTermMemory=[],this.operators={_:{kind:"secret"},"~":{kind:"noise"},__:{kind:"pointer"},"->":{kind:"pointer"},"@":{kind:"identity"},"=":{kind:"eval"},"?":{kind:"query"},"-":{kind:"remove"}},this.localSecrets={},this.localNoises={},this.encryptedBranches={},this.index={},this.operators={_:{kind:"secret"},"~":{kind:"noise"},__:{kind:"pointer"},"->":{kind:"pointer"},"@":{kind:"identity"},"=":{kind:"eval"},"?":{kind:"query"},"-":{kind:"remove"}},this._shortTermMemory=[],r!==void 0&&this.postulate([],r),this.rebuildIndex();const e=this.createProxy([]);return Object.setPrototypeOf(e,ee.prototype),Object.assign(e,this),e}get shortTermMemory(){return this._shortTermMemory}inspect(r){const e=r?.last;return{thoughts:typeof e=="number"&&Number.isFinite(e)&&e>0?this._shortTermMemory.slice(-Math.floor(e)):this._shortTermMemory.slice(),index:{...this.index},encryptedScopes:Object.keys(this.encryptedBranches),secretScopes:Object.keys(this.localSecrets),noiseScopes:Object.keys(this.localNoises)}}isRemoveCall(r,e){if(r.length===0)return null;const{scope:n,leaf:i}=E(r);if(!i||this.opKind(i)!=="remove")return null;if(e==null)return{targetPath:n};if(typeof e=="string"){const o=e.split(".").filter(Boolean);return{targetPath:[...n,...o]}}return null}createProxy(r){const e=this,n=(...i)=>Te({createProxy:o=>e.createProxy(o),normalizeArgs:o=>e.normalizeArgs(o),readPath:o=>e.readPath(o),postulate:(o,l)=>e.postulate(o,l),opKind:o=>e.opKind(o),splitPath:E,isThought:ve},r,i);return new Proxy(n,{get(i,o){if(typeof o=="symbol")return i[o];if(o in e){const s=e[o];return typeof s=="function"?s.bind(e):s}const l=[...r,String(o)];return e.createProxy(l)},apply(i,o,l){return Reflect.apply(i,void 0,l)}})}normalizeArgs(r){if(r.length!==0)return r.length===1?r[0]:r}opKind(r){return this.operators[r]?.kind??null}isSecretScopeCall(r,e){if(r.length===0)return null;const{scope:n,leaf:i}=E(r);return!i||this.opKind(i)!=="secret"||typeof e!="string"?null:{scopeKey:n.join(".")}}isNoiseScopeCall(r,e){if(r.length===0)return null;const{scope:n,leaf:i}=E(r);return!i||this.opKind(i)!=="noise"||typeof e!="string"?null:{scopeKey:n.join(".")}}isPointerCall(r,e){if(r.length===0)return null;const{leaf:n}=E(r);if(!n||this.opKind(n)!=="pointer"||typeof e!="string")return null;const i=e.trim().replace(/^\./,"");return i?{targetPath:i}:null}isIdentityCall(r,e){if(r.length===1&&this.opKind(r[0])==="identity")return typeof e!="string"?null:{id:U(e),targetPath:[]};const{scope:n,leaf:i}=E(r);return!i||this.opKind(i)!=="identity"||typeof e!="string"?null:{id:U(e),targetPath:n}}isEvalCall(r,e){if(r.length===0)return null;const{scope:n,leaf:i}=E(r);if(!i||this.opKind(i)!=="eval")return null;if(typeof e=="function")return{mode:"thunk",targetPath:n,thunk:e};if(Array.isArray(e)&&e.length>=2){const o=String(e[0]??"").trim(),l=String(e[1]??"").trim();return!o||!l?null:{mode:"assign",targetPath:n,name:o,expr:l}}return null}isQueryCall(r,e){if(r.length===0)return null;const{scope:n,leaf:i}=E(r);if(!i||this.opKind(i)!=="query")return null;let o=null,l;if(Array.isArray(e)&&e.length>0)Array.isArray(e[0])&&(e.length===1||typeof e[1]=="function")?(o=e[0],l=typeof e[1]=="function"?e[1]:void 0):o=e;else return null;if(!Array.isArray(o)||o.length===0)return null;const s=o.map(c=>String(c)).map(c=>c.trim()).filter(c=>c.length>0);return s.length===0?null:{targetPath:n,paths:s,fn:l}}isDefineOpCall(r,e){if(r.length!==1||r[0]!==se||!Array.isArray(e)||e.length<2)return null;const i=String(e[0]??"").trim(),o=String(e[1]??"").trim();return!i||!o||i===se?null:{op:i,kind:o}}commitThoughtOnly(r,e,n,i){const o=r.join("."),l=this.computeEffectiveSecret(r),s=JSON.stringify({path:o,operator:e,expression:n,value:i,effectiveSecret:l}),c=D(s),a=Date.now(),p={path:o,operator:e,expression:n,value:i,effectiveSecret:l,hash:c,timestamp:a};return this._shortTermMemory.push(p),this.rebuildIndex(),p}commitValueMapping(r,e,n=null){let i=e;const o=r.join("."),l=this.computeEffectiveSecret(r),s=this.resolveBranchScope(r);if(s&&s.length===0&&this.localSecrets[""]&&this.localSecrets[o],s&&s.length>0){const c=this.computeEffectiveSecret(s),a=r.slice(s.length),p=this.getBranchBlob(s);let g={};if(p&&c){const v=q(p,c,s);v&&typeof v=="object"&&(g=v)}if(a.length===0)(typeof g!="object"||g===null)&&(g={}),g.expression=e;else{let v=g;for(let x=0;x<a.length-1;x++){const P=a[x];(!v[P]||typeof v[P]!="object")&&(v[P]={}),v=v[P]}v[a[a.length-1]]=e}if(c){const v=te(g,c,s);this.setBranchBlob(s,v)}i=e}else if(l){const c=n!=="="&&n!=="?";K(e)||Zt(e)||!c?i=e:i=te(e,l,r)}else i=e;return this.commitThoughtOnly(r,n,e,i)}commitMapping(r,e=null){switch(r.op){case"set":return this.commitValueMapping(r.path,r.value,e);case"ptr":return this.commitValueMapping(r.path,r.value,"__");case"id":return this.commitValueMapping(r.path,r.value,"@");case"secret":{if(typeof r.value!="string")return;const n=r.path.join(".");return this.localSecrets[n]=r.value,this.commitThoughtOnly(r.path,"_","***","***")}default:return}}tryResolveEvalToken(r,e){const n=c=>{if(typeof c=="number"&&Number.isFinite(c))return c;if(typeof c=="string"){const a=Number(c);if(Number.isFinite(a))return a}return null};if(r.startsWith("__ptr.")){const c=this.getIndex(e);if(!K(c))return{ok:!1};const a=r.slice(6).split(".").filter(Boolean),p=[...c.__ptr.split(".").filter(Boolean),...a],g=this.readPath(p),v=n(g);return v===null?{ok:!1}:{ok:!0,value:v}}const i=r.split(".").filter(Boolean),o=[...e,...i];let l=this.readPath(o);l==null&&(l=this.readPath(i));const s=n(l);return s===null?{ok:!1}:{ok:!0,value:s}}tryEvaluateAssignExpression(r,e){const n=String(e??"").trim();if(!n)return{ok:!1};if(/['"`]/.test(n))return{ok:!1};if(!/^[\w.\s+\-*/%()[\]<>!=&|]+$/.test(n))return{ok:!1};const i=String.raw`[A-Za-z_][A-Za-z0-9_]*(?:\[(?:"[^"]*"|'[^']*'|[^\]]+)\])*`,o=new RegExp(String.raw`__ptr(?:\.${i})*|${i}(?:\.${i})*`,"g"),l={true:!0,false:!1,null:null,undefined:void 0,NaN:NaN,Infinity:1/0},s=[],c=new Map;let a=!1;const p=n.replace(o,g=>{let v=c.get(g);if(v===void 0)if(Object.prototype.hasOwnProperty.call(l,g))v=s.length,s.push(l[g]),c.set(g,v);else{const x=this.tryResolveEvalToken(g,r);if(!x.ok)return a=!0,g;v=s.length,s.push(x.value),c.set(g,v)}return`__v[${v}]`});if(a)return{ok:!1};if(!/^[\s\d+\-*/%().<>=!&|\[\]_v]+$/.test(p))return{ok:!1};try{const g=Function("__v",`"use strict"; return (${p});`)(s);if(typeof g=="number"&&Number.isFinite(g))return{ok:!0,value:g};if(typeof g=="boolean")return{ok:!0,value:g}}catch{return{ok:!1}}return{ok:!1}}postulate(r,e,n=null){let i=r;const o=this.isDefineOpCall(i,e);if(o){this.operators[o.op]={kind:o.kind};return}const{leaf:l}=E(i),s=l?this.opKind(l):null;if(s===null||s==="secret"||s==="pointer"||s==="identity"){const x=Ke(this.operators,{path:i,expression:e});if(x.kind==="commit"){const P=new Set(["set","secret","ptr","id"]);if(x.instructions.every(B=>P.has(B.op))){let B;for(const C of x.instructions){const O=this.commitMapping(C,n);O&&(B=O)}if(B)return B}}}const a=this.isEvalCall(i,e);if(a){if(a.mode==="thunk"){const B=a.thunk();return a.targetPath.length===0?B:this.postulate(a.targetPath,B,"=")}if(this.pathContainsIterator(a.targetPath)){const B=this.collectIteratorIndices(a.targetPath);let C;for(const O of B){const N=this.normalizeSelectorPath(this.substituteIteratorInPath(a.targetPath,O)),$=this.normalizeSelectorPath([...N,a.name]),M=this.substituteIteratorInExpression(a.expr,O),z=this.tryEvaluateAssignExpression(N,M);C=this.postulate($,z.ok?z.value:M,"=")}return C}if(this.pathContainsFilterSelector(a.targetPath)){const B=this.collectFilteredScopes(a.targetPath);let C;for(const O of B){const N=this.normalizeSelectorPath(O),$=this.normalizeSelectorPath([...N,a.name]),M=this.tryEvaluateAssignExpression(N,a.expr);C=this.postulate($,M.ok?M.value:a.expr,"=")}return C}const x=this.normalizeSelectorPath([...a.targetPath,a.name]),P=this.normalizeSelectorPath(a.targetPath),_=this.tryEvaluateAssignExpression(P,a.expr);return _.ok?this.postulate(x,_.value,"="):this.postulate(x,a.expr,"=")}const p=this.isQueryCall(i,e);if(p){const x=p.paths.map(_=>this.readPath(_.split(".").filter(Boolean))),P=p.fn?p.fn(...x):x;return p.targetPath.length===0?P:this.postulate(p.targetPath,P,"?")}const g=this.isRemoveCall(i,e);if(g){this.removeSubtree(g.targetPath);return}const v=this.isNoiseScopeCall(i,e);if(v){this.localNoises[v.scopeKey]=e;const x=v.scopeKey?v.scopeKey.split(".").filter(Boolean):[];return this.commitThoughtOnly(x,"~","***","***")}return this.commitValueMapping(i,e,n)}removeSubtree(r){const e=r.join(".");for(const a of Object.keys(this.localSecrets)){if(e===""){delete this.localSecrets[a];continue}(a===e||a.startsWith(e+"."))&&delete this.localSecrets[a]}for(const a of Object.keys(this.localNoises)){if(e===""){delete this.localNoises[a];continue}(a===e||a.startsWith(e+"."))&&delete this.localNoises[a]}for(const a of Object.keys(this.encryptedBranches)){if(e===""){delete this.encryptedBranches[a];continue}if(a===e||a.startsWith(e+".")){delete this.encryptedBranches[a];continue}const p=a.split(".").filter(Boolean);if(!Yt(r,p)||r.length<=p.length)continue;const g=this.computeEffectiveSecret(p);if(!g)continue;const v=this.getBranchBlob(p);if(!v)continue;const x=q(v,g,p);if(!x||typeof x!="object")continue;const P=r.slice(p.length);let _=x;for(let B=0;B<P.length-1;B++){const C=P[B];if(!_||typeof _!="object"||!(C in _)){_=null;break}_=_[C]}if(_&&typeof _=="object"){delete _[P[P.length-1]];const B=te(x,g,p);this.setBranchBlob(p,B)}}const n=r.join("."),i=Date.now(),o=this.computeEffectiveSecret(r),l=JSON.stringify({path:n,operator:"-",expression:"-",value:"-",effectiveSecret:o}),s=D(l),c={path:n,operator:"-",expression:"-",value:"-",effectiveSecret:o,hash:s,timestamp:i};this._shortTermMemory.push(c),this.rebuildIndex()}computeEffectiveSecret(r){let e=null,n=null;this.localNoises[""]!==void 0&&(e="",n=this.localNoises[""]);for(let o=1;o<=r.length;o++){const l=r.slice(0,o).join(".");this.localNoises[l]!==void 0&&(e=l,n=this.localNoises[l])}let i="root";n?i=D("noise::"+n):this.localSecrets[""]&&(i=D(i+"::"+this.localSecrets[""])),e===null||e===""||e.split(".").filter(Boolean).length;for(let o=1;o<=r.length;o++){const l=r.slice(0,o).join(".");if(this.localSecrets[l]){if(e!==null&&e!==""){const s=e+".";if(!(l===e||l.startsWith(s)))continue}i=D(i+"::"+this.localSecrets[l])}}return i==="root"?"":i}rebuildIndex(){const r={};for(const e of this._shortTermMemory){const n=e.path,i=n.split(".").filter(Boolean),o=this.resolveBranchScope(i),l=o&&o.length>0&&Yt(i,o);if(e.operator==="-"){if(n===""){for(const c of Object.keys(r))delete r[c];continue}const s=n+".";for(const c of Object.keys(r))(c===n||c.startsWith(s))&&delete r[c];continue}l||(r[n]=e.value)}this.index=r}getIndex(r){return this.index[r.join(".")]}setIndex(r,e){this.index[r.join(".")]=e}resolveIndexPointerPath(r,e=8){let n=r;for(let i=0;i<e;i++){const o=this.getIndex(n);if(K(o)){n=o.__ptr.split(".").filter(Boolean);continue}let l=!1;for(let s=n.length-1;s>=0;s--){const c=n.slice(0,s),a=this.getIndex(c);if(!K(a))continue;const p=a.__ptr.split(".").filter(Boolean),g=n.slice(s);n=[...p,...g],l=!0;break}if(!l)return{path:n,raw:o}}return{path:n,raw:void 0}}setBranchBlob(r,e){const n=r.join(".");this.encryptedBranches[n]=e}getBranchBlob(r){const e=r.join(".");return this.encryptedBranches[e]}resolveBranchScope(r){let e=null;this.localSecrets[""]&&(e=[]);for(let n=1;n<=r.length;n++){const i=r.slice(0,n),o=i.join(".");this.localSecrets[o]&&(e=i)}return e}normalizeSelectorPath(r){const e=[];for(const n of r){const i=String(n).trim();if(!i)continue;const o=i.indexOf("[");if(o===-1){e.push(i);continue}const l=i.slice(0,o).trim(),s=i.slice(o);l&&e.push(l);const c=Array.from(s.matchAll(/\[([^\]]*)\]/g));if(c.map(p=>p[0]).join("")!==s){e.push(s);continue}for(const p of c){let g=(p[1]??"").trim();(g.startsWith('"')&&g.endsWith('"')||g.startsWith("'")&&g.endsWith("'"))&&(g=g.slice(1,-1)),g&&e.push(g)}}return e}pathContainsIterator(r){return r.some(e=>e.includes("[i]"))}substituteIteratorInPath(r,e){return r.map(n=>n.split("[i]").join(`[${e}]`))}substituteIteratorInExpression(r,e){return String(r??"").split("[i]").join(`[${e}]`)}collectIteratorIndices(r){const e=r.findIndex(o=>o.includes("[i]"));if(e===-1)return[];const n=[];for(let o=0;o<=e;o++){const l=r[o];if(o===e){const s=l.split("[i]").join("").trim();s&&n.push(s)}else n.push(l)}const i=new Set;for(const o of Object.keys(this.index)){const l=o.split(".").filter(Boolean);if(l.length<=n.length)continue;let s=!0;for(let c=0;c<n.length;c++)if(l[c]!==n[c]){s=!1;break}s&&i.add(l[n.length])}return Array.from(i).sort((o,l)=>{const s=Number(o),c=Number(l),a=Number.isFinite(s),p=Number.isFinite(c);return a&&p?s-c:a?-1:p?1:o.localeCompare(l)})}parseFilterExpression(r){const n=String(r??"").trim().match(/^(.+?)\s*(>=|<=|==|!=|>|<)\s*(.+)$/);if(!n)return null;const i=n[1].trim(),o=n[2],l=n[3].trim();return!i||!l?null:{left:i,op:o,right:l}}parseLogicalFilterExpression(r){const e=String(r??"").trim();if(!e)return null;const n=e.split(/\s*(&&|\|\|)\s*/).filter(l=>l.length>0);if(n.length===0)return null;const i=[],o=[];for(let l=0;l<n.length;l++)if(l%2===0){const s=this.parseFilterExpression(n[l]);if(!s)return null;i.push(s)}else{const s=n[l];if(s!=="&&"&&s!=="||")return null;o.push(s)}return i.length===0||o.length!==Math.max(0,i.length-1)?null:{clauses:i,ops:o}}compareValues(r,e,n){switch(e){case">":return r>n;case"<":return r<n;case">=":return r>=n;case"<=":return r<=n;case"==":return r==n;case"!=":return r!=n;default:return!1}}parseLiteralOrPath(r){const e=r.trim();if(e.startsWith('"')&&e.endsWith('"')||e.startsWith("'")&&e.endsWith("'"))return{kind:"literal",value:e.slice(1,-1)};if(e==="true")return{kind:"literal",value:!0};if(e==="false")return{kind:"literal",value:!1};if(e==="null")return{kind:"literal",value:null};const n=Number(e);return Number.isFinite(n)?{kind:"literal",value:n}:{kind:"path",parts:this.normalizeSelectorPath(e.split(".").filter(Boolean))}}resolveRelativeFirst(r,e){const n=this.readPath([...r,...e]);return n??this.readPath(e)}evaluateFilterClauseForScope(r,e){const n=this.normalizeSelectorPath(e.left.split(".").filter(Boolean)),i=this.resolveRelativeFirst(r,n);if(i==null)return!1;const o=this.parseLiteralOrPath(e.right),l=o.kind==="literal"?o.value:this.resolveRelativeFirst(r,o.parts);return l==null?!1:this.compareValues(i,e.op,l)}evaluateLogicalFilterForScope(r,e){const n=this.parseLogicalFilterExpression(e);if(!n)return!1;let i=this.evaluateFilterClauseForScope(r,n.clauses[0]);for(let o=1;o<n.clauses.length;o++){const l=this.evaluateFilterClauseForScope(r,n.clauses[o]);i=n.ops[o-1]==="&&"?i&&l:i||l}return i}collectChildrenForPrefix(r){const e=new Set;for(const n of Object.keys(this.index)){const i=n.split(".").filter(Boolean);if(i.length<=r.length)continue;let o=!0;for(let l=0;l<r.length;l++)if(i[l]!==r[l]){o=!1;break}o&&e.add(i[r.length])}return Array.from(e)}parseSelectorSegment(r){const e=String(r??"").trim(),n=e.indexOf("["),i=e.lastIndexOf("]");if(n<=0||i<=n||i!==e.length-1)return null;const o=e.slice(0,n).trim(),l=e.slice(n+1,i).trim();return!o||!l?null:{base:o,selector:l}}parseSelectorKeys(r){const e=r.trim();if(e.startsWith("[")&&e.endsWith("]")){const i=e.slice(1,-1).trim();return i?i.split(",").map(l=>l.trim()).filter(Boolean).map(l=>l.startsWith('"')&&l.endsWith('"')||l.startsWith("'")&&l.endsWith("'")?l.slice(1,-1):l):[]}const n=e.match(/^(-?\d+)\s*\.\.\s*(-?\d+)$/);if(n){const i=Number(n[1]),o=Number(n[2]);if(!Number.isFinite(i)||!Number.isFinite(o))return null;const l=i<=o?1:-1,s=[];if(Math.abs(o-i)>1e4)return null;for(let a=i;l>0?a<=o:a>=o;a+=l)s.push(String(a));return s}return null}parseTransformSelector(r){const n=r.trim().match(/^([A-Za-z_][A-Za-z0-9_]*)\s*=>\s*(.+)$/);if(!n)return null;const i=n[1].trim(),o=n[2].trim();return!i||!o?null:{varName:i,expr:o}}evaluateTransformPath(r){const e=r.findIndex(a=>{const p=this.parseSelectorSegment(a);return p?this.parseTransformSelector(p.selector)!==null:!1});if(e===-1)return;const n=this.parseSelectorSegment(r[e]);if(!n)return;const i=this.parseTransformSelector(n.selector);if(!i)return;const o=[...r.slice(0,e),n.base];if(r.slice(e+1).length>0)return;const s=this.collectChildrenForPrefix(o),c={};for(const a of s){const p=[...o,a],g=i.expr.replace(new RegExp(String.raw`\b${i.varName}\.`,"g"),""),v=this.tryEvaluateAssignExpression(p,g);v.ok&&(c[a]=v.value)}return c}evaluateSelectionPath(r){const e=r.findIndex(c=>this.parseSelectorSegment(c)!==null);if(e===-1)return;const n=this.parseSelectorSegment(r[e]);if(!n)return;const i=this.parseSelectorKeys(n.selector);if(i===null)return;const o=[...r.slice(0,e),n.base],l=r.slice(e+1),s={};for(const c of i){const a=[...o,c],p=l.length===0?this.buildPublicSubtree(a):this.readPath([...a,...l]);p!==void 0&&(s[c]=p)}return s}buildPublicSubtree(r){const e=r.join("."),n={};let i=!1;for(const[o,l]of Object.entries(this.index)){if(o===e)return l;if(!o.startsWith(e+"."))continue;const s=o.slice(e.length+1).split(".").filter(Boolean);let c=n;for(let a=0;a<s.length-1;a++){const p=s[a];(!c[p]||typeof c[p]!="object")&&(c[p]={}),c=c[p]}c[s[s.length-1]]=l,i=!0}return i?n:void 0}evaluateFilterPath(r){const e=r.findIndex(c=>this.parseLogicalFilterExpression(c)!==null);if(e===-1)return;const n=r[e],i=r.slice(0,e),o=r.slice(e+1);if(i.length===0)return;const l=this.collectChildrenForPrefix(i),s={};for(const c of l){const a=[...i,c];this.evaluateLogicalFilterForScope(a,n)&&(o.length===0?s[c]=this.buildPublicSubtree(a):s[c]=this.readPath([...a,...o]))}return s}pathContainsFilterSelector(r){return r.some(e=>{const n=this.parseSelectorSegment(e);return n?this.parseLogicalFilterExpression(n.selector)!==null:!1})}collectFilteredScopes(r){const e=r.findIndex(c=>{const a=this.parseSelectorSegment(c);return a?this.parseLogicalFilterExpression(a.selector)!==null:!1});if(e===-1)return[];const n=this.parseSelectorSegment(r[e]);if(!n)return[];const i=[...r.slice(0,e),n.base],o=r.slice(e+1),l=this.collectChildrenForPrefix(i),s=[];for(const c of l){const a=[...i,c];this.evaluateLogicalFilterForScope(a,n.selector)&&s.push([...a,...o])}return s}readPath(r){const e=this.evaluateTransformPath(r);if(e!==void 0)return e;const n=this.evaluateSelectionPath(r);if(n!==void 0)return n;r=this.normalizeSelectorPath(r);const i=this.evaluateFilterPath(r);if(i!==void 0)return i;const o=this.resolveBranchScope(r);if(o&&o.length>0&&Yt(r,o)){if(r.length===o.length)return;const p=this.computeEffectiveSecret(o);if(!p)return null;const g=this.getBranchBlob(o);if(!g)return;const v=q(g,p,o);if(!v||typeof v!="object")return;const x=r.slice(o.length);let P=v;for(const _ of x){if(!P||typeof P!="object")return;P=P[_]}return K(P)?this.readPath(P.__ptr.split(".").filter(Boolean)):(Zt(P),P)}const l=this.getIndex(r);if(K(l))return l;const s=this.resolveIndexPointerPath(r),c=s.raw;if(c===void 0)return s.path.length===r.length&&s.path.every((g,v)=>g===r[v])?void 0:this.readPath(s.path);if(K(c))return this.readPath(c.__ptr.split(".").filter(Boolean));if(Zt(c)||!Ne(c))return c;const a=this.computeEffectiveSecret(r);return a?q(c,a,r):null}}return ee}));
|
|
1
|
+
(function(q,W){typeof exports=="object"&&typeof module<"u"?module.exports=W():typeof define=="function"&&define.amd?define(W):(q=typeof globalThis<"u"?globalThis:q||self,q.Me=W())})(this,(function(){"use strict";function W(f){return{__ptr:f}}function D(f){return!!f&&typeof f=="object"&&typeof f.__ptr=="string"&&f.__ptr.length>0}function ye(f){return{__id:f}}function Qt(f){return!!f&&typeof f=="object"&&typeof f.__id=="string"&&f.__id.length>0}function ve(f){return!!f&&typeof f=="object"&&typeof f.path=="string"&&typeof f.hash=="string"&&typeof f.timestamp=="number"}function I(f){return f.length===0?{scope:[],leaf:null}:{scope:f.slice(0,-1),leaf:f[f.length-1]}}function U(f,r){if(r.length>f.length)return!1;for(let t=0;t<r.length;t++)if(f[t]!==r[t])return!1;return!0}function Z(f){const r=f.trim().toLowerCase();if(r.length<3||r.length>63)throw new Error(`Invalid username length: ${r.length}. Expected 3..63 characters.`);if(!/^[a-z0-9][a-z0-9-]*[a-z0-9]$/.test(r))throw new Error(`Invalid username. Use only [a-z0-9-], and start/end with [a-z0-9]. Got: ${f}`);if(r.includes("--"))throw new Error(`Invalid username. "--" is not allowed. Got: ${f}`);return r}function z(f,r){return f[r]?.kind??null}function me(f,r){if(f.length!==1||f[0]!=="+"||!Array.isArray(r)||r.length<2)return null;const n=String(r[0]??"").trim(),i=String(r[1]??"").trim();return!n||!i||n==="+"?null:{op:n,kind:i}}function be(f,r,t){if(r.length===0)return null;const{scope:n,leaf:i}=I(r);return!i||z(f,i)!=="secret"||typeof t!="string"?null:{scopeKey:n.join(".")}}function ke(f,r,t){if(r.length===0)return null;const{scope:n,leaf:i}=I(r);return!i||z(f,i)!=="noise"||typeof t!="string"?null:{scopeKey:n.join(".")}}function Se(f,r,t){if(r.length===0)return null;const{leaf:n}=I(r);if(!n||z(f,n)!=="pointer"||typeof t!="string")return null;const i=t.trim().replace(/^\./,"");return i?{targetPath:i}:null}function Pe(f,r,t){if(r.length===1&&z(f,r[0])==="identity")return typeof t!="string"?null:{id:Z(t),targetPath:[]};const{scope:n,leaf:i}=I(r);return!i||z(f,i)!=="identity"||typeof t!="string"?null:{id:Z(t),targetPath:n}}function xe(f,r,t){if(r.length===0)return null;const{scope:n,leaf:i}=I(r);if(!i||z(f,i)!=="eval")return null;if(typeof t=="function")return{mode:"thunk",targetPath:n,thunk:t};if(Array.isArray(t)&&t.length>=2){const o=String(t[0]??"").trim(),s=String(t[1]??"").trim();return!o||!s?null:{mode:"assign",targetPath:n,name:o,expr:s}}return null}function _e(f,r,t){if(r.length===0)return null;const{scope:n,leaf:i}=I(r);if(!i||z(f,i)!=="query")return null;let o=null,s;if(Array.isArray(t)&&t.length>0)Array.isArray(t[0])&&(t.length===1||typeof t[1]=="function")?(o=t[0],s=typeof t[1]=="function"?t[1]:void 0):o=t;else return null;if(!Array.isArray(o)||o.length===0)return null;const a=o.map(l=>String(l)).map(l=>l.trim()).filter(l=>l.length>0);return a.length===0?null:{targetPath:n,paths:a,fn:s}}function Be(f,r,t){if(r.length===0)return null;const{scope:n,leaf:i}=I(r);if(!i||z(f,i)!=="remove")return null;if(t==null)return{targetPath:n};if(typeof t=="string"){const o=t.split(".").filter(Boolean);return{targetPath:[...n,...o]}}return null}var Ae=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Ee(f){return f&&f.__esModule&&Object.prototype.hasOwnProperty.call(f,"default")?f.default:f}var Xt={exports:{}};var se;function Fe(){return se||(se=1,(function(f){(function(){var r="input is invalid type",t="finalize already called",n=typeof window=="object",i=n?window:{};i.JS_SHA3_NO_WINDOW&&(n=!1);var o=!n&&typeof self=="object",s=!i.JS_SHA3_NO_NODE_JS&&typeof process=="object"&&process.versions&&process.versions.node;s?i=Ae:o&&(i=self);for(var a=!i.JS_SHA3_NO_COMMON_JS&&!0&&f.exports,l=!i.JS_SHA3_NO_ARRAY_BUFFER&&typeof ArrayBuffer<"u",c="0123456789abcdef".split(""),d=[31,7936,2031616,520093696],y=[4,1024,262144,67108864],v=[1,256,65536,16777216],S=[6,1536,393216,100663296],p=[0,8,16,24],_=[1,0,32898,0,32906,2147483648,2147516416,2147483648,32907,0,2147483649,0,2147516545,2147483648,32777,2147483648,138,0,136,0,2147516425,0,2147483658,0,2147516555,0,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,2147483648,32778,0,2147483658,2147483648,2147516545,2147483648,32896,2147483648,2147483649,0,2147516424,2147483648],A=[224,256,384,512],B=[128,256],F=["hex","buffer","arrayBuffer","array","digest"],O={128:168,256:136},E=i.JS_SHA3_NO_NODE_JS||!Array.isArray?function(e){return Object.prototype.toString.call(e)==="[object Array]"}:Array.isArray,T=l&&(i.JS_SHA3_NO_ARRAY_BUFFER_IS_VIEW||!ArrayBuffer.isView)?function(e){return typeof e=="object"&&e.buffer&&e.buffer.constructor===ArrayBuffer}:ArrayBuffer.isView,j=function(e){var u=typeof e;if(u==="string")return[e,!0];if(u!=="object"||e===null)throw new Error(r);if(l&&e.constructor===ArrayBuffer)return[new Uint8Array(e),!1];if(!E(e)&&!T(e))throw new Error(r);return[e,!1]},$=function(e){return j(e)[0].length===0},ne=function(e){for(var u=[],h=0;h<e.length;++h)u[h]=e[h];return u},ce=function(e,u,h){return function(g){return new N(e,u,e).update(g)[h]()}},ue=function(e,u,h){return function(g,m){return new N(e,u,m).update(g)[h]()}},fe=function(e,u,h){return function(g,m,b,P){return M["cshake"+e].update(g,m,b,P)[h]()}},he=function(e,u,h){return function(g,m,b,P){return M["kmac"+e].update(g,m,b,P)[h]()}},Y=function(e,u,h,g){for(var m=0;m<F.length;++m){var b=F[m];e[b]=u(h,g,b)}return e},pe=function(e,u){var h=ce(e,u,"hex");return h.create=function(){return new N(e,u,e)},h.update=function(g){return h.create().update(g)},Y(h,ce,e,u)},Me=function(e,u){var h=ue(e,u,"hex");return h.create=function(g){return new N(e,u,g)},h.update=function(g,m){return h.create(m).update(g)},Y(h,ue,e,u)},Ke=function(e,u){var h=O[e],g=fe(e,u,"hex");return g.create=function(m,b,P){return $(b)&&$(P)?M["shake"+e].create(m):new N(e,u,m).bytepad([b,P],h)},g.update=function(m,b,P,k){return g.create(b,P,k).update(m)},Y(g,fe,e,u)},De=function(e,u){var h=O[e],g=he(e,u,"hex");return g.create=function(m,b,P){return new oe(e,u,b).bytepad(["KMAC",P],h).bytepad([m],h)},g.update=function(m,b,P,k){return g.create(m,P,k).update(b)},Y(g,he,e,u)},de=[{name:"keccak",padding:v,bits:A,createMethod:pe},{name:"sha3",padding:S,bits:A,createMethod:pe},{name:"shake",padding:d,bits:B,createMethod:Me},{name:"cshake",padding:y,bits:B,createMethod:Ke},{name:"kmac",padding:y,bits:B,createMethod:De}],M={},H=[],K=0;K<de.length;++K)for(var R=de[K],Q=R.bits,L=0;L<Q.length;++L){var ie=R.name+"_"+Q[L];if(H.push(ie),M[ie]=R.createMethod(Q[L],R.padding),R.name!=="sha3"){var ge=R.name+Q[L];H.push(ge),M[ge]=M[ie]}}function N(e,u,h){this.blocks=[],this.s=[],this.padding=u,this.outputBits=h,this.reset=!0,this.finalized=!1,this.block=0,this.start=0,this.blockCount=1600-(e<<1)>>5,this.byteCount=this.blockCount<<2,this.outputBlocks=h>>5,this.extraBytes=(h&31)>>3;for(var g=0;g<50;++g)this.s[g]=0}N.prototype.update=function(e){if(this.finalized)throw new Error(t);var u=j(e);e=u[0];for(var h=u[1],g=this.blocks,m=this.byteCount,b=e.length,P=this.blockCount,k=0,C=this.s,x,w;k<b;){if(this.reset)for(this.reset=!1,g[0]=this.block,x=1;x<P+1;++x)g[x]=0;if(h)for(x=this.start;k<b&&x<m;++k)w=e.charCodeAt(k),w<128?g[x>>2]|=w<<p[x++&3]:w<2048?(g[x>>2]|=(192|w>>6)<<p[x++&3],g[x>>2]|=(128|w&63)<<p[x++&3]):w<55296||w>=57344?(g[x>>2]|=(224|w>>12)<<p[x++&3],g[x>>2]|=(128|w>>6&63)<<p[x++&3],g[x>>2]|=(128|w&63)<<p[x++&3]):(w=65536+((w&1023)<<10|e.charCodeAt(++k)&1023),g[x>>2]|=(240|w>>18)<<p[x++&3],g[x>>2]|=(128|w>>12&63)<<p[x++&3],g[x>>2]|=(128|w>>6&63)<<p[x++&3],g[x>>2]|=(128|w&63)<<p[x++&3]);else for(x=this.start;k<b&&x<m;++k)g[x>>2]|=e[k]<<p[x++&3];if(this.lastByteIndex=x,x>=m){for(this.start=x-m,this.block=g[P],x=0;x<P;++x)C[x]^=g[x];J(C),this.reset=!0}else this.start=x}return this},N.prototype.encode=function(e,u){var h=e&255,g=1,m=[h];for(e=e>>8,h=e&255;h>0;)m.unshift(h),e=e>>8,h=e&255,++g;return u?m.push(g):m.unshift(g),this.update(m),m.length},N.prototype.encodeString=function(e){var u=j(e);e=u[0];var h=u[1],g=0,m=e.length;if(h)for(var b=0;b<e.length;++b){var P=e.charCodeAt(b);P<128?g+=1:P<2048?g+=2:P<55296||P>=57344?g+=3:(P=65536+((P&1023)<<10|e.charCodeAt(++b)&1023),g+=4)}else g=m;return g+=this.encode(g*8),this.update(e),g},N.prototype.bytepad=function(e,u){for(var h=this.encode(u),g=0;g<e.length;++g)h+=this.encodeString(e[g]);var m=(u-h%u)%u,b=[];return b.length=m,this.update(b),this},N.prototype.finalize=function(){if(!this.finalized){this.finalized=!0;var e=this.blocks,u=this.lastByteIndex,h=this.blockCount,g=this.s;if(e[u>>2]|=this.padding[u&3],this.lastByteIndex===this.byteCount)for(e[0]=e[h],u=1;u<h+1;++u)e[u]=0;for(e[h-1]|=2147483648,u=0;u<h;++u)g[u]^=e[u];J(g)}},N.prototype.toString=N.prototype.hex=function(){this.finalize();for(var e=this.blockCount,u=this.s,h=this.outputBlocks,g=this.extraBytes,m=0,b=0,P="",k;b<h;){for(m=0;m<e&&b<h;++m,++b)k=u[m],P+=c[k>>4&15]+c[k&15]+c[k>>12&15]+c[k>>8&15]+c[k>>20&15]+c[k>>16&15]+c[k>>28&15]+c[k>>24&15];b%e===0&&(u=ne(u),J(u),m=0)}return g&&(k=u[m],P+=c[k>>4&15]+c[k&15],g>1&&(P+=c[k>>12&15]+c[k>>8&15]),g>2&&(P+=c[k>>20&15]+c[k>>16&15])),P},N.prototype.arrayBuffer=function(){this.finalize();var e=this.blockCount,u=this.s,h=this.outputBlocks,g=this.extraBytes,m=0,b=0,P=this.outputBits>>3,k;g?k=new ArrayBuffer(h+1<<2):k=new ArrayBuffer(P);for(var C=new Uint32Array(k);b<h;){for(m=0;m<e&&b<h;++m,++b)C[b]=u[m];b%e===0&&(u=ne(u),J(u))}return g&&(C[b]=u[m],k=k.slice(0,P)),k},N.prototype.buffer=N.prototype.arrayBuffer,N.prototype.digest=N.prototype.array=function(){this.finalize();for(var e=this.blockCount,u=this.s,h=this.outputBlocks,g=this.extraBytes,m=0,b=0,P=[],k,C;b<h;){for(m=0;m<e&&b<h;++m,++b)k=b<<2,C=u[m],P[k]=C&255,P[k+1]=C>>8&255,P[k+2]=C>>16&255,P[k+3]=C>>24&255;b%e===0&&(u=ne(u),J(u))}return g&&(k=b<<2,C=u[m],P[k]=C&255,g>1&&(P[k+1]=C>>8&255),g>2&&(P[k+2]=C>>16&255)),P};function oe(e,u,h){N.call(this,e,u,h)}oe.prototype=new N,oe.prototype.finalize=function(){return this.encode(this.outputBits,!0),N.prototype.finalize.call(this)};var J=function(e){var u,h,g,m,b,P,k,C,x,w,X,tt,et,rt,nt,it,ot,st,lt,at,ct,ut,ft,ht,pt,dt,gt,yt,vt,mt,bt,kt,St,Pt,xt,_t,Bt,At,Et,Ft,wt,Nt,Ct,Ot,It,Tt,jt,zt,Mt,Kt,Dt,Rt,Wt,Vt,$t,Ht,Lt,Jt,qt,Ut,Zt,Gt,Yt;for(g=0;g<48;g+=2)m=e[0]^e[10]^e[20]^e[30]^e[40],b=e[1]^e[11]^e[21]^e[31]^e[41],P=e[2]^e[12]^e[22]^e[32]^e[42],k=e[3]^e[13]^e[23]^e[33]^e[43],C=e[4]^e[14]^e[24]^e[34]^e[44],x=e[5]^e[15]^e[25]^e[35]^e[45],w=e[6]^e[16]^e[26]^e[36]^e[46],X=e[7]^e[17]^e[27]^e[37]^e[47],tt=e[8]^e[18]^e[28]^e[38]^e[48],et=e[9]^e[19]^e[29]^e[39]^e[49],u=tt^(P<<1|k>>>31),h=et^(k<<1|P>>>31),e[0]^=u,e[1]^=h,e[10]^=u,e[11]^=h,e[20]^=u,e[21]^=h,e[30]^=u,e[31]^=h,e[40]^=u,e[41]^=h,u=m^(C<<1|x>>>31),h=b^(x<<1|C>>>31),e[2]^=u,e[3]^=h,e[12]^=u,e[13]^=h,e[22]^=u,e[23]^=h,e[32]^=u,e[33]^=h,e[42]^=u,e[43]^=h,u=P^(w<<1|X>>>31),h=k^(X<<1|w>>>31),e[4]^=u,e[5]^=h,e[14]^=u,e[15]^=h,e[24]^=u,e[25]^=h,e[34]^=u,e[35]^=h,e[44]^=u,e[45]^=h,u=C^(tt<<1|et>>>31),h=x^(et<<1|tt>>>31),e[6]^=u,e[7]^=h,e[16]^=u,e[17]^=h,e[26]^=u,e[27]^=h,e[36]^=u,e[37]^=h,e[46]^=u,e[47]^=h,u=w^(m<<1|b>>>31),h=X^(b<<1|m>>>31),e[8]^=u,e[9]^=h,e[18]^=u,e[19]^=h,e[28]^=u,e[29]^=h,e[38]^=u,e[39]^=h,e[48]^=u,e[49]^=h,rt=e[0],nt=e[1],Tt=e[11]<<4|e[10]>>>28,jt=e[10]<<4|e[11]>>>28,yt=e[20]<<3|e[21]>>>29,vt=e[21]<<3|e[20]>>>29,Ut=e[31]<<9|e[30]>>>23,Zt=e[30]<<9|e[31]>>>23,Nt=e[40]<<18|e[41]>>>14,Ct=e[41]<<18|e[40]>>>14,Pt=e[2]<<1|e[3]>>>31,xt=e[3]<<1|e[2]>>>31,it=e[13]<<12|e[12]>>>20,ot=e[12]<<12|e[13]>>>20,zt=e[22]<<10|e[23]>>>22,Mt=e[23]<<10|e[22]>>>22,mt=e[33]<<13|e[32]>>>19,bt=e[32]<<13|e[33]>>>19,Gt=e[42]<<2|e[43]>>>30,Yt=e[43]<<2|e[42]>>>30,Vt=e[5]<<30|e[4]>>>2,$t=e[4]<<30|e[5]>>>2,_t=e[14]<<6|e[15]>>>26,Bt=e[15]<<6|e[14]>>>26,st=e[25]<<11|e[24]>>>21,lt=e[24]<<11|e[25]>>>21,Kt=e[34]<<15|e[35]>>>17,Dt=e[35]<<15|e[34]>>>17,kt=e[45]<<29|e[44]>>>3,St=e[44]<<29|e[45]>>>3,ht=e[6]<<28|e[7]>>>4,pt=e[7]<<28|e[6]>>>4,Ht=e[17]<<23|e[16]>>>9,Lt=e[16]<<23|e[17]>>>9,At=e[26]<<25|e[27]>>>7,Et=e[27]<<25|e[26]>>>7,at=e[36]<<21|e[37]>>>11,ct=e[37]<<21|e[36]>>>11,Rt=e[47]<<24|e[46]>>>8,Wt=e[46]<<24|e[47]>>>8,Ot=e[8]<<27|e[9]>>>5,It=e[9]<<27|e[8]>>>5,dt=e[18]<<20|e[19]>>>12,gt=e[19]<<20|e[18]>>>12,Jt=e[29]<<7|e[28]>>>25,qt=e[28]<<7|e[29]>>>25,Ft=e[38]<<8|e[39]>>>24,wt=e[39]<<8|e[38]>>>24,ut=e[48]<<14|e[49]>>>18,ft=e[49]<<14|e[48]>>>18,e[0]=rt^~it&st,e[1]=nt^~ot<,e[10]=ht^~dt&yt,e[11]=pt^~gt&vt,e[20]=Pt^~_t&At,e[21]=xt^~Bt&Et,e[30]=Ot^~Tt&zt,e[31]=It^~jt&Mt,e[40]=Vt^~Ht&Jt,e[41]=$t^~Lt&qt,e[2]=it^~st&at,e[3]=ot^~lt&ct,e[12]=dt^~yt&mt,e[13]=gt^~vt&bt,e[22]=_t^~At&Ft,e[23]=Bt^~Et&wt,e[32]=Tt^~zt&Kt,e[33]=jt^~Mt&Dt,e[42]=Ht^~Jt&Ut,e[43]=Lt^~qt&Zt,e[4]=st^~at&ut,e[5]=lt^~ct&ft,e[14]=yt^~mt&kt,e[15]=vt^~bt&St,e[24]=At^~Ft&Nt,e[25]=Et^~wt&Ct,e[34]=zt^~Kt&Rt,e[35]=Mt^~Dt&Wt,e[44]=Jt^~Ut&Gt,e[45]=qt^~Zt&Yt,e[6]=at^~ut&rt,e[7]=ct^~ft&nt,e[16]=mt^~kt&ht,e[17]=bt^~St&pt,e[26]=Ft^~Nt&Pt,e[27]=wt^~Ct&xt,e[36]=Kt^~Rt&Ot,e[37]=Dt^~Wt&It,e[46]=Ut^~Gt&Vt,e[47]=Zt^~Yt&$t,e[8]=ut^~rt&it,e[9]=ft^~nt&ot,e[18]=kt^~ht&dt,e[19]=St^~pt>,e[28]=Nt^~Pt&_t,e[29]=Ct^~xt&Bt,e[38]=Rt^~Ot&Tt,e[39]=Wt^~It&jt,e[48]=Gt^~Vt&Ht,e[49]=Yt^~$t&Lt,e[0]^=_[g],e[1]^=_[g+1]};if(a)f.exports=M;else for(K=0;K<H.length;++K)i[H[K]]=M[H[K]]})()})(Xt)),Xt.exports}var we=Fe();const Ne=Ee(we),{keccak256:le}=Ne;function te(f){return new TextEncoder().encode(f)}function Ce(f){const r=f.startsWith("0x")?f.slice(2):f,t=new Uint8Array(r.length/2);for(let n=0;n<t.length;n++)t[n]=parseInt(r.substring(n*2,n*2+2),16);return t}function Oe(f){let r="";for(let t=0;t<f.length;t++)r+=f[t].toString(16).padStart(2,"0");return"0x"+r}function ee(f,r,t){const n=JSON.stringify(f),i=te(n),o=le(r+":"+t.join(".")),s=te(o),a=new Uint8Array(i.length);for(let l=0;l<i.length;l++)a[l]=i[l]^s[l%s.length];return Oe(a)}function G(f,r,t){try{const n=Ce(f),i=le(r+":"+t.join(".")),o=te(i),s=new Uint8Array(n.length);for(let l=0;l<n.length;l++)s[l]=n[l]^o[l%o.length];const a=new TextDecoder().decode(s);return JSON.parse(a)}catch{return null}}function Ie(f){if(typeof f!="string"||!f.startsWith("0x"))return!1;const r=f.slice(2);return r.length<2||r.length%2!==0?!1:/^[0-9a-fA-F]+$/.test(r)}function Te(f){const r=[];let t="",n=0,i=null;for(let s=0;s<f.length;s++){const a=f[s];if(i){t+=a,a===i&&(i=null);continue}if(a==='"'||a==="'"){i=a,t+=a;continue}if(a==="["){n++,t+=a;continue}if(a==="]"){n=Math.max(0,n-1),t+=a;continue}if(a==="."&&n===0){const l=t.trim();l&&r.push(l),t="";continue}t+=a}const o=t.trim();return o&&r.push(o),r}function je(f,r,t){if(r.length===0){if(t.length===1&&typeof t[0]=="string"){const d=t[0].trim(),y=d.startsWith("_")||d.startsWith("~")||d.startsWith("@"),v=d.includes("."),S=/^[a-zA-Z][a-zA-Z0-9_-]*$/.test(d);if(v||y||S){const p=Te(d);return f.readPath(p)}}if(t.length===0)return f.createProxy([]);const l=f.normalizeArgs(t),c=f.postulate([],l);return c!==void 0?c:f.createProxy([])}const n=f.normalizeArgs(t),i=f.postulate(r,n),{scope:o,leaf:s}=f.splitPath(r),a=s?f.opKind(s):null;if(f.isThought(i)){const l=a?o:r;return f.createProxy(l)}return i!==void 0?i:f.createProxy(r)}function ze(f,r,t={}){const{path:n,expression:i}=r,o=me(n,i);if(o)return{kind:"return",value:{define:o}};const s=be(f,n,i);if(s)return{kind:"commit",instructions:[{path:s.scopeKey?s.scopeKey.split(".").filter(Boolean):[],op:"secret",value:i}]};const a=ke(f,n,i);if(a)return{kind:"commit",instructions:[{path:a.scopeKey?a.scopeKey.split(".").filter(Boolean):[],op:"noise",value:i}]};const l=Se(f,n,i);if(l){const{scope:S}=I(n);return{kind:"commit",instructions:[{path:S,op:"ptr",value:W(l.targetPath)}]}}const c=Pe(f,n,i);if(c)return{kind:"commit",instructions:[{path:c.targetPath,op:"id",value:ye(c.id)}]};const d=Be(f,n,i);if(d)return{kind:"commit",instructions:[{path:d.targetPath,op:"remove",value:"-"}]};const y=xe(f,n,i);if(y){if(y.mode==="assign")return{kind:"commit",instructions:[{path:[...y.targetPath,y.name],op:"derive",value:{kind:"expr",source:y.expr}}]};if(!t.evaluateThunk)throw new Error('Non-serializable derivation: "=" thunk requires `evaluateThunk` or serializable DNA.');const S=t.evaluateThunk(y.thunk);return y.targetPath.length===0?{kind:"return",value:S}:{kind:"commit",instructions:[{path:y.targetPath,op:"derive",value:S}]}}const v=_e(f,n,i);if(v){if(!t.readPath)return{kind:"commit",instructions:[{path:v.targetPath,op:"query",value:{paths:v.paths}}]};const S=v.paths.map(_=>t.readPath(_.split(".").filter(Boolean))),p=v.fn?v.fn(...S):S;return v.targetPath.length===0?{kind:"return",value:p}:{kind:"commit",instructions:[{path:v.targetPath,op:"query",value:p}]}}return{kind:"commit",instructions:[{path:n,op:"set",value:i}]}}const ae="+";function V(f){let r=2166136261;for(let t=0;t<f.length;t++)r^=f.charCodeAt(t),r=Math.imul(r,16777619);return("00000000"+(r>>>0).toString(16)).slice(-8)}class re{constructor(r){this.localSecrets={},this.localNoises={},this.encryptedBranches={},this.index={},this._shortTermMemory=[],this.derivations={},this.refSubscribers={},this.unsafeEval=!1,this.operators={_:{kind:"secret"},"~":{kind:"noise"},__:{kind:"pointer"},"->":{kind:"pointer"},"@":{kind:"identity"},"=":{kind:"eval"},"?":{kind:"query"},"-":{kind:"remove"}},this.localSecrets={},this.localNoises={},this.encryptedBranches={},this.index={},this.operators={_:{kind:"secret"},"~":{kind:"noise"},__:{kind:"pointer"},"->":{kind:"pointer"},"@":{kind:"identity"},"=":{kind:"eval"},"?":{kind:"query"},"-":{kind:"remove"}},this._shortTermMemory=[],r!==void 0&&this.postulate([],r),this.rebuildIndex();const t=this.createProxy([]);return Object.setPrototypeOf(t,re.prototype),Object.assign(t,this),t}get shortTermMemory(){return this._shortTermMemory}inspect(r){const t=r?.last;return{thoughts:typeof t=="number"&&Number.isFinite(t)&&t>0?this._shortTermMemory.slice(-Math.floor(t)):this._shortTermMemory.slice(),index:{...this.index},encryptedScopes:Object.keys(this.encryptedBranches),secretScopes:Object.keys(this.localSecrets),noiseScopes:Object.keys(this.localNoises)}}explain(r){const t=this.normalizeSelectorPath(String(r??"").split(".").filter(Boolean)),n=t.join("."),i=this.readPath(t),o=this.derivations[n];if(!o)return{path:n,value:i,derivation:null,meta:{dependsOn:[]}};const s=o.refs.map(a=>{const l=this.normalizeSelectorPath(a.path.split(".").filter(Boolean)),c=this.resolveBranchScope(l),d=!!(c&&c.length>0&&U(l,c)),y=this.readPath(l);return{label:a.label,path:a.path,value:d?"●●●●":y,origin:d?"stealth":"public",masked:d}});return{path:n,value:i,derivation:{expression:o.expression,inputs:s},meta:{dependsOn:o.refs.map(a=>a.path),lastComputedAt:o.lastComputedAt}}}cloneValue(r){const t=globalThis.structuredClone;return typeof t=="function"?t(r):JSON.parse(JSON.stringify(r))}exportSnapshot(){return this.cloneValue({shortTermMemory:this._shortTermMemory,localSecrets:this.localSecrets,localNoises:this.localNoises,encryptedBranches:this.encryptedBranches,operators:this.operators})}importSnapshot(r){const t=this.cloneValue(r??{});this._shortTermMemory=Array.isArray(t.shortTermMemory)?t.shortTermMemory:[],this.localSecrets=t.localSecrets&&typeof t.localSecrets=="object"?t.localSecrets:{},this.localNoises=t.localNoises&&typeof t.localNoises=="object"?t.localNoises:{},this.encryptedBranches=t.encryptedBranches&&typeof t.encryptedBranches=="object"?t.encryptedBranches:{},this.derivations={},this.refSubscribers={};const n={_:{kind:"secret"},"~":{kind:"noise"},__:{kind:"pointer"},"->":{kind:"pointer"},"@":{kind:"identity"},"=":{kind:"eval"},"?":{kind:"query"},"-":{kind:"remove"}};this.operators=t.operators&&typeof t.operators=="object"?{...n,...t.operators}:n,this.rebuildIndex()}rehydrate(r){this.importSnapshot(r)}replayThoughts(r){this.localSecrets={},this.localNoises={},this.encryptedBranches={},this.index={},this._shortTermMemory=[],this.derivations={},this.refSubscribers={};for(const t of r||[]){const n=String(t.path||"").split(".").filter(Boolean);if(t.operator==="_"){this.postulate([...n,"_"],typeof t.expression=="string"?t.expression:"***");continue}if(t.operator==="~"){this.postulate([...n,"~"],typeof t.expression=="string"?t.expression:"***");continue}if(t.operator==="@"){const i=t.expression&&t.expression.__id||t.value&&t.value.__id||t.value;typeof i=="string"&&i.length>0&&this.postulate([...n,"@"],i);continue}if(t.operator==="__"||t.operator==="->"){const i=t.expression&&t.expression.__ptr||t.value&&t.value.__ptr||t.value;typeof i=="string"&&i.length>0&&this.postulate([...n,"__"],i);continue}if(t.operator==="-"){this.removeSubtree(n);continue}if(t.operator==="="||t.operator==="?"){this.postulate(n,t.value,t.operator);continue}this.postulate(n,t.expression,t.operator)}this.rebuildIndex()}isRemoveCall(r,t){if(r.length===0)return null;const{scope:n,leaf:i}=I(r);if(!i||this.opKind(i)!=="remove")return null;if(t==null)return{targetPath:n};if(typeof t=="string"){const o=t.split(".").filter(Boolean);return{targetPath:[...n,...o]}}return null}createProxy(r){const t=this,n=(...i)=>je({createProxy:o=>t.createProxy(o),normalizeArgs:o=>t.normalizeArgs(o),readPath:o=>t.readPath(o),postulate:(o,s)=>t.postulate(o,s),opKind:o=>t.opKind(o),splitPath:I,isThought:ve},r,i);return new Proxy(n,{get(i,o){if(typeof o=="symbol")return i[o];if(o in t){const a=t[o];return typeof a=="function"?a.bind(t):a}const s=[...r,String(o)];return t.createProxy(s)},apply(i,o,s){return Reflect.apply(i,void 0,s)}})}normalizeArgs(r){if(r.length!==0)return r.length===1?r[0]:r}opKind(r){return this.operators[r]?.kind??null}isSecretScopeCall(r,t){if(r.length===0)return null;const{scope:n,leaf:i}=I(r);return!i||this.opKind(i)!=="secret"||typeof t!="string"?null:{scopeKey:n.join(".")}}isNoiseScopeCall(r,t){if(r.length===0)return null;const{scope:n,leaf:i}=I(r);return!i||this.opKind(i)!=="noise"||typeof t!="string"?null:{scopeKey:n.join(".")}}isPointerCall(r,t){if(r.length===0)return null;const{leaf:n}=I(r);if(!n||this.opKind(n)!=="pointer"||typeof t!="string")return null;const i=t.trim().replace(/^\./,"");return i?{targetPath:i}:null}isIdentityCall(r,t){if(r.length===1&&this.opKind(r[0])==="identity")return typeof t!="string"?null:{id:Z(t),targetPath:[]};const{scope:n,leaf:i}=I(r);return!i||this.opKind(i)!=="identity"||typeof t!="string"?null:{id:Z(t),targetPath:n}}isEvalCall(r,t){if(r.length===0)return null;const{scope:n,leaf:i}=I(r);if(!i||this.opKind(i)!=="eval")return null;if(typeof t=="function")return{mode:"thunk",targetPath:n,thunk:t};if(Array.isArray(t)&&t.length>=2){const o=String(t[0]??"").trim(),s=String(t[1]??"").trim();return!o||!s?null:{mode:"assign",targetPath:n,name:o,expr:s}}return null}isQueryCall(r,t){if(r.length===0)return null;const{scope:n,leaf:i}=I(r);if(!i||this.opKind(i)!=="query")return null;let o=null,s;if(Array.isArray(t)&&t.length>0)Array.isArray(t[0])&&(t.length===1||typeof t[1]=="function")?(o=t[0],s=typeof t[1]=="function"?t[1]:void 0):o=t;else return null;if(!Array.isArray(o)||o.length===0)return null;const a=o.map(l=>String(l)).map(l=>l.trim()).filter(l=>l.length>0);return a.length===0?null:{targetPath:n,paths:a,fn:s}}isDefineOpCall(r,t){if(r.length!==1||r[0]!==ae||!Array.isArray(t)||t.length<2)return null;const i=String(t[0]??"").trim(),o=String(t[1]??"").trim();return!i||!o||i===ae?null:{op:i,kind:o}}getPrevThoughtHash(){return this._shortTermMemory[this._shortTermMemory.length-1]?.hash??""}extractExpressionRefs(r){const t=String(r??"").trim();if(!t)return[];const n=String.raw`[A-Za-z_][A-Za-z0-9_]*(?:\[(?:"[^"]*"|'[^']*'|[^\]]+)\])*`,i=new RegExp(String.raw`__ptr(?:\.${n})*|${n}(?:\.${n})*`,"g"),o=new Set(["true","false","null","undefined","NaN","Infinity"]),s=new Set,a=t.match(i)||[];for(const l of a)o.has(l)||s.add(l);return Array.from(s)}resolveRefPath(r,t){if(!r||r.startsWith("__ptr."))return null;const n=this.normalizeSelectorPath(r.split(".").filter(Boolean));if(n.length===0)return null;const i=this.normalizeSelectorPath([...t,...n]).join("."),o=this.normalizeSelectorPath(n).join(".");return r.includes(".")?o:i}unregisterDerivation(r){const t=this.derivations[r];if(t){for(const n of t.refs){const i=this.refSubscribers[n.path]||[];this.refSubscribers[n.path]=i.filter(o=>o!==r),this.refSubscribers[n.path].length===0&&delete this.refSubscribers[n.path]}delete this.derivations[r]}}registerDerivation(r,t,n){const i=r.join(".");this.unregisterDerivation(i);const o=this.extractExpressionRefs(n),s=[],a=new Set;for(const l of o){const c=this.resolveRefPath(l,t);if(!c||a.has(c))continue;a.add(c),s.push({label:l,path:c});const d=this.refSubscribers[c]||[];d.includes(i)||d.push(i),this.refSubscribers[c]=d}this.derivations[i]={expression:n,evalScope:[...t],refs:s,lastComputedAt:Date.now()}}recomputeTarget(r){const t=this.derivations[r];if(!t)return!1;const n=this.normalizeSelectorPath(r.split(".").filter(Boolean)),i=this.tryEvaluateAssignExpression(t.evalScope,t.expression);return this.postulate(n,i.ok?i.value:t.expression,"="),t.lastComputedAt=Date.now(),!0}invalidateFromPath(r){const t=this.normalizeSelectorPath(r).join(".");if(!t)return;const n=[t],i=new Set;for(;n.length>0;){const o=n.shift(),s=this.refSubscribers[o]||[];for(const a of s){if(i.has(a))continue;i.add(a),this.recomputeTarget(a)&&n.push(a)}}}clearDerivationsByPrefix(r){const t=r.join(".");for(const n of Object.keys(this.derivations))(t===""||n===t||n.startsWith(t+"."))&&this.unregisterDerivation(n)}commitThoughtOnly(r,t,n,i){const o=r.join("."),s=this.computeEffectiveSecret(r),a=this.getPrevThoughtHash(),l=JSON.stringify({path:o,operator:t,expression:n,value:i,effectiveSecret:s,prevHash:a}),c=V(l),d=Date.now(),y={path:o,operator:t,expression:n,value:i,effectiveSecret:s,hash:c,prevHash:a,timestamp:d};return this._shortTermMemory.push(y),this.rebuildIndex(),y}commitValueMapping(r,t,n=null){let i=t;const o=r.join("."),s=this.computeEffectiveSecret(r),a=this.resolveBranchScope(r);if(a&&a.length===0&&this.localSecrets[""]&&this.localSecrets[o],a&&a.length>0){const l=this.computeEffectiveSecret(a),c=r.slice(a.length),d=this.getBranchBlob(a);let y={};if(d&&l){const v=G(d,l,a);v&&typeof v=="object"&&(y=v)}if(c.length===0)(typeof y!="object"||y===null)&&(y={}),y.expression=t;else{let v=y;for(let S=0;S<c.length-1;S++){const p=c[S];(!v[p]||typeof v[p]!="object")&&(v[p]={}),v=v[p]}v[c[c.length-1]]=t}if(l){const v=ee(y,l,a);this.setBranchBlob(a,v)}i=t}else if(s){const l=n!=="="&&n!=="?";D(t)||Qt(t)||!l?i=t:i=ee(t,s,r)}else i=t;return this.commitThoughtOnly(r,n,t,i)}commitMapping(r,t=null){switch(r.op){case"set":return this.commitValueMapping(r.path,r.value,t);case"ptr":return this.commitValueMapping(r.path,r.value,"__");case"id":return this.commitValueMapping(r.path,r.value,"@");case"secret":{if(typeof r.value!="string")return;const n=r.path.join(".");return this.localSecrets[n]=r.value,this.commitThoughtOnly(r.path,"_","***","***")}default:return}}tryResolveEvalTokenValue(r,t){if(r.startsWith("__ptr.")){const s=this.getIndex(t);if(!D(s))return{ok:!1};const a=r.slice(6).split(".").filter(Boolean),l=[...s.__ptr.split(".").filter(Boolean),...a],c=this.readPath(l);return c==null?{ok:!1}:{ok:!0,value:c}}const n=r.split(".").filter(Boolean),i=[...t,...n];let o=this.readPath(i);return o==null&&(o=this.readPath(n)),o==null?{ok:!1}:{ok:!0,value:o}}tokenizeEvalExpression(r){const t=[],n=String.raw`[A-Za-z_][A-Za-z0-9_]*(?:\[(?:"[^"]*"|'[^']*'|[^\]]+)\])*`,i=new RegExp(String.raw`^(?:__ptr(?:\.${n})*|${n}(?:\.${n})*)`),o={true:!0,false:!1,null:null,undefined:void 0,NaN:NaN,Infinity:1/0},s=new Set([">=","<=","==","!=","&&","||"]),a=new Set(["+","-","*","/","%","<",">","!"]);let l=0;for(;l<r.length;){const c=r[l];if(/\s/.test(c)){l++;continue}if(c==="("){t.push({kind:"lparen"}),l++;continue}if(c===")"){t.push({kind:"rparen"}),l++;continue}const d=r.slice(l,l+2);if(s.has(d)){t.push({kind:"op",value:d}),l+=2;continue}if(a.has(c)){t.push({kind:"op",value:c}),l++;continue}if(/\d/.test(c)||c==="."&&/\d/.test(r[l+1]??"")){let v=l;for(;v<r.length&&/[0-9]/.test(r[v]);)v++;if(r[v]===".")for(v++;v<r.length&&/[0-9]/.test(r[v]);)v++;if(r[v]==="e"||r[v]==="E"){let p=v+1;(r[p]==="+"||r[p]==="-")&&p++;let _=!1;for(;p<r.length&&/[0-9]/.test(r[p]);)_=!0,p++;if(!_)return null;v=p}const S=Number(r.slice(l,v));if(!Number.isFinite(S))return null;t.push({kind:"literal",value:S}),l=v;continue}const y=r.slice(l).match(i);if(y&&y[0]){const v=y[0];Object.prototype.hasOwnProperty.call(o,v)?t.push({kind:"literal",value:o[v]}):t.push({kind:"identifier",value:v}),l+=v.length;continue}return null}return t}tryEvaluateAssignExpression(r,t){const n=String(t??"").trim();if(!n)return{ok:!1};if(!/^[A-Za-z0-9_\s+\-*/%().<>=!&|\[\]"']+$/.test(n))return{ok:!1};if(this.unsafeEval)return{ok:!1};const i=this.tokenizeEvalExpression(n);if(!i||i.length===0)return{ok:!1};const o={"u-":7,"!":7,"*":6,"/":6,"%":6,"+":5,"-":5,"<":4,"<=":4,">":4,">=":4,"==":3,"!=":3,"&&":2,"||":1},s=new Set(["u-","!"]),a=[],l=[];let c="start";for(const S of i){if(S.kind==="literal"||S.kind==="identifier"){a.push(S),c="value";continue}if(S.kind==="lparen"){l.push(S),c="lparen";continue}if(S.kind==="rparen"){let _=!1;for(;l.length>0;){const A=l.pop();if(A.kind==="lparen"){_=!0;break}a.push(A)}if(!_)return{ok:!1};c="rparen";continue}let p=S.value;if(p==="-"&&(c==="start"||c==="op"||c==="lparen"))p="u-";else{if(p==="!"&&(c==="value"||c==="rparen"))return{ok:!1};if(p!=="!"&&(c==="start"||c==="op"||c==="lparen"))return{ok:!1}}for(;l.length>0;){const _=l[l.length-1];if(_.kind!=="op")break;const A=o[_.value]??-1,B=o[p]??-1;if(B<0)return{ok:!1};if(!(s.has(p)?B<A:B<=A))break;a.push(l.pop())}l.push({kind:"op",value:p}),c="op"}if(c==="op"||c==="lparen"||c==="start")return{ok:!1};for(;l.length>0;){const S=l.pop();if(S.kind==="lparen")return{ok:!1};a.push(S)}const d=S=>{if(typeof S=="number"&&Number.isFinite(S))return S;if(typeof S=="string"){const p=Number(S);if(Number.isFinite(p))return p}return null},y=[];for(const S of a){if(S.kind==="literal"){y.push(S.value);continue}if(S.kind==="identifier"){const E=this.tryResolveEvalTokenValue(S.value,r);if(!E.ok)return{ok:!1};y.push(E.value);continue}const p=S.value;if(p==="u-"||p==="!"){if(y.length<1)return{ok:!1};const E=y.pop();if(p==="u-"){const T=d(E);if(T===null)return{ok:!1};y.push(-T)}else y.push(!E);continue}if(y.length<2)return{ok:!1};const _=y.pop(),A=y.pop();if(p==="&&"||p==="||"){y.push(p==="&&"?!!A&&!!_:!!A||!!_);continue}if(p==="=="||p==="!="){y.push(p==="=="?A==_:A!=_);continue}if(p==="<"||p==="<="||p===">"||p===">="){const E=d(A),T=d(_);if(E===null||T===null)return{ok:!1};p==="<"&&y.push(E<T),p==="<="&&y.push(E<=T),p===">"&&y.push(E>T),p===">="&&y.push(E>=T);continue}const B=d(A),F=d(_);if(B===null||F===null)return{ok:!1};let O;if(p==="+")O=B+F;else if(p==="-")O=B-F;else if(p==="*")O=B*F;else if(p==="/")O=B/F;else if(p==="%")O=B%F;else return{ok:!1};if(!Number.isFinite(O))return{ok:!1};y.push(O)}if(y.length!==1)return{ok:!1};const v=y[0];return typeof v=="number"&&Number.isFinite(v)?{ok:!0,value:v}:typeof v=="boolean"?{ok:!0,value:v}:{ok:!1}}postulate(r,t,n=null){let i=r;const o=this.isDefineOpCall(i,t);if(o){this.operators[o.op]={kind:o.kind};return}const{leaf:s}=I(i),a=s?this.opKind(s):null;if(a===null||a==="secret"||a==="pointer"||a==="identity"){const p=ze(this.operators,{path:i,expression:t});if(p.kind==="commit"){const _=new Set(["set","secret","ptr","id"]);if(p.instructions.every(B=>_.has(B.op))){let B;const F=[];for(const O of p.instructions){const E=this.commitMapping(O,n);E&&(B=E,F.push(E.path.split(".").filter(Boolean)))}if(B){for(const O of F)this.invalidateFromPath(O);return B}}}}const c=this.isEvalCall(i,t);if(c){if(c.mode==="thunk"){const B=c.thunk();return c.targetPath.length===0?B:this.postulate(c.targetPath,B,"=")}if(this.pathContainsIterator(c.targetPath)){const B=this.collectIteratorIndices(c.targetPath);let F;for(const O of B){const E=this.normalizeSelectorPath(this.substituteIteratorInPath(c.targetPath,O)),T=this.normalizeSelectorPath([...E,c.name]),j=this.substituteIteratorInExpression(c.expr,O);this.registerDerivation(T,E,j);const $=this.tryEvaluateAssignExpression(E,j);F=this.postulate(T,$.ok?$.value:j,"=")}return F}if(this.pathContainsFilterSelector(c.targetPath)){const B=this.collectFilteredScopes(c.targetPath);let F;for(const O of B){const E=this.normalizeSelectorPath(O),T=this.normalizeSelectorPath([...E,c.name]);this.registerDerivation(T,E,c.expr);const j=this.tryEvaluateAssignExpression(E,c.expr);F=this.postulate(T,j.ok?j.value:c.expr,"=")}return F}const p=this.normalizeSelectorPath([...c.targetPath,c.name]),_=this.normalizeSelectorPath(c.targetPath);this.registerDerivation(p,_,c.expr);const A=this.tryEvaluateAssignExpression(_,c.expr);return A.ok?this.postulate(p,A.value,"="):this.postulate(p,c.expr,"=")}const d=this.isQueryCall(i,t);if(d){const p=d.paths.map(A=>this.readPath(A.split(".").filter(Boolean))),_=d.fn?d.fn(...p):p;return d.targetPath.length===0?_:this.postulate(d.targetPath,_,"?")}const y=this.isRemoveCall(i,t);if(y){this.removeSubtree(y.targetPath);return}const v=this.isNoiseScopeCall(i,t);if(v){this.localNoises[v.scopeKey]=t;const p=v.scopeKey?v.scopeKey.split(".").filter(Boolean):[];return this.commitThoughtOnly(p,"~","***","***")}const S=this.commitValueMapping(i,t,n);return this.invalidateFromPath(i),S}removeSubtree(r){this.clearDerivationsByPrefix(r);const t=r.join(".");for(const d of Object.keys(this.localSecrets)){if(t===""){delete this.localSecrets[d];continue}(d===t||d.startsWith(t+"."))&&delete this.localSecrets[d]}for(const d of Object.keys(this.localNoises)){if(t===""){delete this.localNoises[d];continue}(d===t||d.startsWith(t+"."))&&delete this.localNoises[d]}for(const d of Object.keys(this.encryptedBranches)){if(t===""){delete this.encryptedBranches[d];continue}if(d===t||d.startsWith(t+".")){delete this.encryptedBranches[d];continue}const y=d.split(".").filter(Boolean);if(!U(r,y)||r.length<=y.length)continue;const v=this.computeEffectiveSecret(y);if(!v)continue;const S=this.getBranchBlob(y);if(!S)continue;const p=G(S,v,y);if(!p||typeof p!="object")continue;const _=r.slice(y.length);let A=p;for(let B=0;B<_.length-1;B++){const F=_[B];if(!A||typeof A!="object"||!(F in A)){A=null;break}A=A[F]}if(A&&typeof A=="object"){delete A[_[_.length-1]];const B=ee(p,v,y);this.setBranchBlob(y,B)}}const n=r.join("."),i=Date.now(),o=this.computeEffectiveSecret(r),s=this.getPrevThoughtHash(),a=JSON.stringify({path:n,operator:"-",expression:"-",value:"-",effectiveSecret:o,prevHash:s}),l=V(a),c={path:n,operator:"-",expression:"-",value:"-",effectiveSecret:o,hash:l,prevHash:s,timestamp:i};this._shortTermMemory.push(c),this.rebuildIndex()}computeEffectiveSecret(r){let t=null,n=null;this.localNoises[""]!==void 0&&(t="",n=this.localNoises[""]);for(let o=1;o<=r.length;o++){const s=r.slice(0,o).join(".");this.localNoises[s]!==void 0&&(t=s,n=this.localNoises[s])}let i="root";n?i=V("noise::"+n):this.localSecrets[""]&&(i=V(i+"::"+this.localSecrets[""])),t===null||t===""||t.split(".").filter(Boolean).length;for(let o=1;o<=r.length;o++){const s=r.slice(0,o).join(".");if(this.localSecrets[s]){if(t!==null&&t!==""){const a=t+".";if(!(s===t||s.startsWith(a)))continue}i=V(i+"::"+this.localSecrets[s])}}return i==="root"?"":i}rebuildIndex(){const r={},t=this._shortTermMemory.map((n,i)=>({t:n,i})).sort((n,i)=>n.t.timestamp!==i.t.timestamp?n.t.timestamp-i.t.timestamp:n.t.hash!==i.t.hash?n.t.hash<i.t.hash?-1:1:n.i-i.i).map(n=>n.t);for(const n of t){const i=n.path,o=i.split(".").filter(Boolean),s=this.resolveBranchScope(o),a=s&&s.length>0&&U(o,s);if(n.operator==="-"){if(i===""){for(const c of Object.keys(r))delete r[c];continue}const l=i+".";for(const c of Object.keys(r))(c===i||c.startsWith(l))&&delete r[c];continue}a||(r[i]=n.value)}this.index=r}getIndex(r){return this.index[r.join(".")]}setIndex(r,t){this.index[r.join(".")]=t}resolveIndexPointerPath(r,t=8){let n=r;for(let i=0;i<t;i++){const o=this.getIndex(n);if(D(o)){n=o.__ptr.split(".").filter(Boolean);continue}let s=!1;for(let a=n.length-1;a>=0;a--){const l=n.slice(0,a),c=this.getIndex(l);if(!D(c))continue;const d=c.__ptr.split(".").filter(Boolean),y=n.slice(a);n=[...d,...y],s=!0;break}if(!s)return{path:n,raw:o}}return{path:n,raw:void 0}}setBranchBlob(r,t){const n=r.join(".");this.encryptedBranches[n]=t}getBranchBlob(r){const t=r.join(".");return this.encryptedBranches[t]}resolveBranchScope(r){let t=null;this.localSecrets[""]&&(t=[]);for(let n=1;n<=r.length;n++){const i=r.slice(0,n),o=i.join(".");this.localSecrets[o]&&(t=i)}return t}normalizeSelectorPath(r){const t=[];for(const n of r){const i=String(n).trim();if(!i)continue;const o=i.indexOf("[");if(o===-1){t.push(i);continue}const s=i.slice(0,o).trim(),a=i.slice(o);s&&t.push(s);const l=Array.from(a.matchAll(/\[([^\]]*)\]/g));if(l.map(d=>d[0]).join("")!==a){t.push(a);continue}for(const d of l){let y=(d[1]??"").trim();(y.startsWith('"')&&y.endsWith('"')||y.startsWith("'")&&y.endsWith("'"))&&(y=y.slice(1,-1)),y&&t.push(y)}}return t}pathContainsIterator(r){return r.some(t=>t.includes("[i]"))}substituteIteratorInPath(r,t){return r.map(n=>n.split("[i]").join(`[${t}]`))}substituteIteratorInExpression(r,t){return String(r??"").split("[i]").join(`[${t}]`)}collectIteratorIndices(r){const t=r.findIndex(o=>o.includes("[i]"));if(t===-1)return[];const n=[];for(let o=0;o<=t;o++){const s=r[o];if(o===t){const a=s.split("[i]").join("").trim();a&&n.push(a)}else n.push(s)}const i=new Set;for(const o of Object.keys(this.index)){const s=o.split(".").filter(Boolean);if(s.length<=n.length)continue;let a=!0;for(let l=0;l<n.length;l++)if(s[l]!==n[l]){a=!1;break}a&&i.add(s[n.length])}return Array.from(i).sort((o,s)=>{const a=Number(o),l=Number(s),c=Number.isFinite(a),d=Number.isFinite(l);return c&&d?a-l:c?-1:d?1:o.localeCompare(s)})}parseFilterExpression(r){const n=String(r??"").trim().match(/^(.+?)\s*(>=|<=|==|!=|>|<)\s*(.+)$/);if(!n)return null;const i=n[1].trim(),o=n[2],s=n[3].trim();return!i||!s?null:{left:i,op:o,right:s}}parseLogicalFilterExpression(r){const t=String(r??"").trim();if(!t)return null;const n=t.split(/\s*(&&|\|\|)\s*/).filter(s=>s.length>0);if(n.length===0)return null;const i=[],o=[];for(let s=0;s<n.length;s++)if(s%2===0){const a=this.parseFilterExpression(n[s]);if(!a)return null;i.push(a)}else{const a=n[s];if(a!=="&&"&&a!=="||")return null;o.push(a)}return i.length===0||o.length!==Math.max(0,i.length-1)?null:{clauses:i,ops:o}}compareValues(r,t,n){switch(t){case">":return r>n;case"<":return r<n;case">=":return r>=n;case"<=":return r<=n;case"==":return r==n;case"!=":return r!=n;default:return!1}}parseLiteralOrPath(r){const t=r.trim();if(t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'"))return{kind:"literal",value:t.slice(1,-1)};if(t==="true")return{kind:"literal",value:!0};if(t==="false")return{kind:"literal",value:!1};if(t==="null")return{kind:"literal",value:null};const n=Number(t);return Number.isFinite(n)?{kind:"literal",value:n}:{kind:"path",parts:this.normalizeSelectorPath(t.split(".").filter(Boolean))}}resolveRelativeFirst(r,t){const n=this.readPath([...r,...t]);return n??this.readPath(t)}evaluateFilterClauseForScope(r,t){const n=this.normalizeSelectorPath(t.left.split(".").filter(Boolean)),i=this.resolveRelativeFirst(r,n);if(i==null)return!1;const o=this.parseLiteralOrPath(t.right),s=o.kind==="literal"?o.value:this.resolveRelativeFirst(r,o.parts);return s==null?!1:this.compareValues(i,t.op,s)}evaluateLogicalFilterForScope(r,t){const n=this.parseLogicalFilterExpression(t);if(!n)return!1;let i=this.evaluateFilterClauseForScope(r,n.clauses[0]);for(let o=1;o<n.clauses.length;o++){const s=this.evaluateFilterClauseForScope(r,n.clauses[o]);i=n.ops[o-1]==="&&"?i&&s:i||s}return i}collectChildrenForPrefix(r){const t=new Set;for(const n of Object.keys(this.index)){const i=n.split(".").filter(Boolean);if(i.length<=r.length)continue;let o=!0;for(let s=0;s<r.length;s++)if(i[s]!==r[s]){o=!1;break}o&&t.add(i[r.length])}return Array.from(t)}parseSelectorSegment(r){const t=String(r??"").trim(),n=t.indexOf("["),i=t.lastIndexOf("]");if(n<=0||i<=n||i!==t.length-1)return null;const o=t.slice(0,n).trim(),s=t.slice(n+1,i).trim();return!o||!s?null:{base:o,selector:s}}parseSelectorKeys(r){const t=r.trim();if(t.startsWith("[")&&t.endsWith("]")){const i=t.slice(1,-1).trim();return i?i.split(",").map(s=>s.trim()).filter(Boolean).map(s=>s.startsWith('"')&&s.endsWith('"')||s.startsWith("'")&&s.endsWith("'")?s.slice(1,-1):s):[]}const n=t.match(/^(-?\d+)\s*\.\.\s*(-?\d+)$/);if(n){const i=Number(n[1]),o=Number(n[2]);if(!Number.isFinite(i)||!Number.isFinite(o))return null;const s=i<=o?1:-1,a=[];if(Math.abs(o-i)>1e4)return null;for(let c=i;s>0?c<=o:c>=o;c+=s)a.push(String(c));return a}return null}parseTransformSelector(r){const n=r.trim().match(/^([A-Za-z_][A-Za-z0-9_]*)\s*=>\s*(.+)$/);if(!n)return null;const i=n[1].trim(),o=n[2].trim();return!i||!o?null:{varName:i,expr:o}}evaluateTransformPath(r){const t=r.findIndex(c=>{const d=this.parseSelectorSegment(c);return d?this.parseTransformSelector(d.selector)!==null:!1});if(t===-1)return;const n=this.parseSelectorSegment(r[t]);if(!n)return;const i=this.parseTransformSelector(n.selector);if(!i)return;const o=[...r.slice(0,t),n.base];if(r.slice(t+1).length>0)return;const a=this.collectChildrenForPrefix(o),l={};for(const c of a){const d=[...o,c],y=i.expr.replace(new RegExp(String.raw`\b${i.varName}\.`,"g"),""),v=this.tryEvaluateAssignExpression(d,y);v.ok&&(l[c]=v.value)}return l}evaluateSelectionPath(r){const t=r.findIndex(l=>this.parseSelectorSegment(l)!==null);if(t===-1)return;const n=this.parseSelectorSegment(r[t]);if(!n)return;const i=this.parseSelectorKeys(n.selector);if(i===null)return;const o=[...r.slice(0,t),n.base],s=r.slice(t+1),a={};for(const l of i){const c=[...o,l],d=s.length===0?this.buildPublicSubtree(c):this.readPath([...c,...s]);d!==void 0&&(a[l]=d)}return a}buildPublicSubtree(r){const t=r.join("."),n={};let i=!1;for(const[o,s]of Object.entries(this.index)){if(o===t)return s;if(!o.startsWith(t+"."))continue;const a=o.slice(t.length+1).split(".").filter(Boolean);let l=n;for(let c=0;c<a.length-1;c++){const d=a[c];(!l[d]||typeof l[d]!="object")&&(l[d]={}),l=l[d]}l[a[a.length-1]]=s,i=!0}return i?n:void 0}evaluateFilterPath(r){const t=r.findIndex(l=>this.parseLogicalFilterExpression(l)!==null);if(t===-1)return;const n=r[t],i=r.slice(0,t),o=r.slice(t+1);if(i.length===0)return;const s=this.collectChildrenForPrefix(i),a={};for(const l of s){const c=[...i,l];this.evaluateLogicalFilterForScope(c,n)&&(o.length===0?a[l]=this.buildPublicSubtree(c):a[l]=this.readPath([...c,...o]))}return a}pathContainsFilterSelector(r){return r.some(t=>{const n=this.parseSelectorSegment(t);return n?this.parseLogicalFilterExpression(n.selector)!==null:!1})}collectFilteredScopes(r){const t=r.findIndex(l=>{const c=this.parseSelectorSegment(l);return c?this.parseLogicalFilterExpression(c.selector)!==null:!1});if(t===-1)return[];const n=this.parseSelectorSegment(r[t]);if(!n)return[];const i=[...r.slice(0,t),n.base],o=r.slice(t+1),s=this.collectChildrenForPrefix(i),a=[];for(const l of s){const c=[...i,l];this.evaluateLogicalFilterForScope(c,n.selector)&&a.push([...c,...o])}return a}readPath(r){const t=this.evaluateTransformPath(r);if(t!==void 0)return t;const n=this.evaluateSelectionPath(r);if(n!==void 0)return n;r=this.normalizeSelectorPath(r);const i=this.evaluateFilterPath(r);if(i!==void 0)return i;const o=this.resolveBranchScope(r);if(o&&o.length>0&&U(r,o)){if(r.length===o.length)return;const d=this.computeEffectiveSecret(o);if(!d)return null;const y=this.getBranchBlob(o);if(!y)return;const v=G(y,d,o);if(!v||typeof v!="object")return;const S=r.slice(o.length);let p=v;for(const _ of S){if(!p||typeof p!="object")return;p=p[_]}return D(p)?this.readPath(p.__ptr.split(".").filter(Boolean)):(Qt(p),p)}const s=this.getIndex(r);if(D(s))return s;const a=this.resolveIndexPointerPath(r),l=a.raw;if(l===void 0)return a.path.length===r.length&&a.path.every((y,v)=>y===r[v])?void 0:this.readPath(a.path);if(D(l))return this.readPath(l.__ptr.split(".").filter(Boolean));if(Qt(l)||!Ie(l))return l;const c=this.computeEffectiveSecret(r);return c?G(l,c,r):null}}return re}));
|
package/dist/src/me.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Thought } from './types.js';
|
|
1
|
+
import { Thought, EncryptedBlob } from './types.js';
|
|
2
2
|
export type MEProxy = ME & {
|
|
3
3
|
[key: string]: any;
|
|
4
4
|
(...args: any[]): MEProxy;
|
|
@@ -10,6 +10,9 @@ export declare class ME {
|
|
|
10
10
|
private encryptedBranches;
|
|
11
11
|
private index;
|
|
12
12
|
private _shortTermMemory;
|
|
13
|
+
private derivations;
|
|
14
|
+
private refSubscribers;
|
|
15
|
+
private readonly unsafeEval;
|
|
13
16
|
get shortTermMemory(): Thought[];
|
|
14
17
|
inspect(opts?: {
|
|
15
18
|
last?: number;
|
|
@@ -20,6 +23,53 @@ export declare class ME {
|
|
|
20
23
|
secretScopes: string[];
|
|
21
24
|
noiseScopes: string[];
|
|
22
25
|
};
|
|
26
|
+
explain(path: string): {
|
|
27
|
+
path: string;
|
|
28
|
+
value: any;
|
|
29
|
+
derivation: null | {
|
|
30
|
+
expression: string;
|
|
31
|
+
inputs: Array<{
|
|
32
|
+
label: string;
|
|
33
|
+
path: string;
|
|
34
|
+
value: any;
|
|
35
|
+
origin: "public" | "stealth";
|
|
36
|
+
masked: boolean;
|
|
37
|
+
}>;
|
|
38
|
+
};
|
|
39
|
+
meta: {
|
|
40
|
+
dependsOn: string[];
|
|
41
|
+
lastComputedAt?: number;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
private cloneValue;
|
|
45
|
+
exportSnapshot(): {
|
|
46
|
+
shortTermMemory: Thought[];
|
|
47
|
+
localSecrets: Record<string, string>;
|
|
48
|
+
localNoises: Record<string, string>;
|
|
49
|
+
encryptedBranches: Record<string, EncryptedBlob>;
|
|
50
|
+
operators: Record<string, {
|
|
51
|
+
kind: string;
|
|
52
|
+
}>;
|
|
53
|
+
};
|
|
54
|
+
importSnapshot(snapshot: {
|
|
55
|
+
shortTermMemory?: Thought[];
|
|
56
|
+
localSecrets?: Record<string, string>;
|
|
57
|
+
localNoises?: Record<string, string>;
|
|
58
|
+
encryptedBranches?: Record<string, EncryptedBlob>;
|
|
59
|
+
operators?: Record<string, {
|
|
60
|
+
kind: string;
|
|
61
|
+
}>;
|
|
62
|
+
}): void;
|
|
63
|
+
rehydrate(snapshot: {
|
|
64
|
+
shortTermMemory?: Thought[];
|
|
65
|
+
localSecrets?: Record<string, string>;
|
|
66
|
+
localNoises?: Record<string, string>;
|
|
67
|
+
encryptedBranches?: Record<string, EncryptedBlob>;
|
|
68
|
+
operators?: Record<string, {
|
|
69
|
+
kind: string;
|
|
70
|
+
}>;
|
|
71
|
+
}): void;
|
|
72
|
+
replayThoughts(thoughts: Thought[]): void;
|
|
23
73
|
private operators;
|
|
24
74
|
/**
|
|
25
75
|
* Constructor base:
|
|
@@ -40,10 +90,19 @@ export declare class ME {
|
|
|
40
90
|
private isEvalCall;
|
|
41
91
|
private isQueryCall;
|
|
42
92
|
private isDefineOpCall;
|
|
93
|
+
private getPrevThoughtHash;
|
|
94
|
+
private extractExpressionRefs;
|
|
95
|
+
private resolveRefPath;
|
|
96
|
+
private unregisterDerivation;
|
|
97
|
+
private registerDerivation;
|
|
98
|
+
private recomputeTarget;
|
|
99
|
+
private invalidateFromPath;
|
|
100
|
+
private clearDerivationsByPrefix;
|
|
43
101
|
private commitThoughtOnly;
|
|
44
102
|
private commitValueMapping;
|
|
45
103
|
private commitMapping;
|
|
46
|
-
private
|
|
104
|
+
private tryResolveEvalTokenValue;
|
|
105
|
+
private tokenizeEvalExpression;
|
|
47
106
|
private tryEvaluateAssignExpression;
|
|
48
107
|
private postulate;
|
|
49
108
|
private removeSubtree;
|
package/dist/src/types.d.ts
CHANGED
|
@@ -21,6 +21,8 @@ export interface Thought {
|
|
|
21
21
|
effectiveSecret: string;
|
|
22
22
|
/** portable hash (FNV-1a 32-bit in me.ts) */
|
|
23
23
|
hash: string;
|
|
24
|
+
/** previous thought hash for chain integrity (genesis = "") */
|
|
25
|
+
prevHash?: string;
|
|
24
26
|
timestamp: number;
|
|
25
27
|
}
|
|
26
28
|
export type MePointer = {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "this.me",
|
|
3
|
-
"version": "3.1.
|
|
3
|
+
"version": "3.1.3",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/me.cjs",
|
|
6
6
|
"module": "./dist/me.es.js",
|
|
@@ -18,6 +18,8 @@
|
|
|
18
18
|
"build": "vite build --config vite.config.ts",
|
|
19
19
|
"preview": "vite preview --config vite.config.ts",
|
|
20
20
|
"test:ts": "tsc --noEmit",
|
|
21
|
+
"test:umd": "node tests/umd.test.cjs",
|
|
22
|
+
"test:prebuild": "node tests/pre-build.test.mjs",
|
|
21
23
|
"test:contracts": "node tests/contracts/dsl.contract.test.mjs",
|
|
22
24
|
"prepublishOnly": "npm run build",
|
|
23
25
|
"docs:api": "typedoc",
|