memorio 4.7.3 → 4.8.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/index.cjs CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
- var x=(e,t)=>()=>(e&&(t=e(e=0)),t);var a=x(()=>{});var m,Ot,Je;exports.propertyName = void 0;exports.internal = void 0;var O=x(()=>{a();m={debug:false,tracking:false,trackedPaths:new Set,locked:false,lastAccessedPath:"",stateVersion:0,currentContext:null,mutations:[],undoStack:[],redoStack:[],maxHistory:100,historyEnabled:false},Ot={get debug(){return m.debug},set debug(e){m.debug=e;},get tracking(){return m.tracking},set tracking(e){m.tracking=e;},get trackedPaths(){return m.trackedPaths},clearTrackedPaths(){m.trackedPaths.clear();},get locked(){return m.locked},set locked(e){m.locked=e;},get lastAccessedPath(){return m.lastAccessedPath},set lastAccessedPath(e){m.lastAccessedPath=e;},get stateVersion(){return m.stateVersion},bumpStateVersion(){return m.stateVersion=(m.stateVersion||0)+1,m.stateVersion},get currentContext(){return m.currentContext},set currentContext(e){m.currentContext=e;},get mutations(){return m.mutations},get undoStack(){return m.undoStack},get redoStack(){return m.redoStack},get maxHistory(){return m.maxHistory},set maxHistory(e){m.maxHistory=e;},get historyEnabled(){return m.historyEnabled},set historyEnabled(e){m.historyEnabled=e;},recordMutation(e){m.historyEnabled&&(m.mutations.push(e),m.mutations.length>m.maxHistory&&m.mutations.shift(),m.undoStack.push(e),m.undoStack.length>m.maxHistory&&m.undoStack.shift(),m.redoStack=[]);},popUndo(){let e=m.undoStack.pop();return e&&m.redoStack.push(e),e},popRedo(){let e=m.redoStack.pop();return e&&m.undoStack.push(e),e},canUndo(){return m.undoStack.length>0},canRedo(){return m.redoStack.length>0},clearHistory(){m.mutations=[],m.undoStack=[],m.redoStack=[];},clearRedo(){m.redoStack=[];}},Je=["list","state","store","idb","observer","useObserver","remove","removeAll","_platform","_capabilities","_sessionId"],exports.propertyName=(e,t)=>String(t!==void 0?t:e).replace("() => ",""),exports.internal=Ot;});exports.message = void 0;var c,v=x(()=>{a();O();exports.message=(...e)=>{exports.internal.debug===true&&console.debug(...e);},c=exports.message;});function X(){let e=globalThis;if(typeof e.crypto<"u"&&e.crypto.randomUUID)return e.crypto.randomUUID();if(typeof e.crypto<"u"&&e.crypto.getRandomValues){let t=new Uint8Array(16);return e.crypto.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}return `session_${Date.now()}_${Math.random().toString(36).substring(2,15)}`}function K(){let e=globalThis;return e.Deno&&e.Deno.version?"deno":typeof process<"u"&&process.versions&&process.versions.node?"node":typeof globalThis<"u"&&typeof globalThis.ServiceWorkerGlobalScope<"u"?"edge":typeof window<"u"&&typeof document<"u"?"browser":"unknown"}function ae(){return K()==="browser"}function le(){return K()==="node"}function ce(){return K()==="deno"}function ue(){return K()==="edge"}function me(){try{if(typeof sessionStorage<"u"){let e="__memorio_test__";return sessionStorage.setItem(e,"1"),sessionStorage.removeItem(e),sessionStorage}}catch{}return null}function de(){try{if(typeof localStorage<"u"){let e="__memorio_test__";return localStorage.setItem(e,"1"),localStorage.removeItem(e),localStorage}}catch{}return null}function fe(){return typeof indexedDB<"u"}function $t(){return typeof globalThis.dispatchEvent=="function"}function q(){let e=K(),t=typeof globalThis.isSecureContext<"u"?globalThis.isSecureContext:e==="browser";return {platform:e,hasSessionStorage:me()!==null,hasLocalStorage:de()!==null,hasIndexedDB:fe(),hasDispatchEvent:$t(),hasNavigator:typeof navigator<"u",hasProcess:typeof process<"u",isSecureContext:t,sessionId:X()}}function Qe(){let e=q(),t=globalThis;e.hasDispatchEvent||(t.dispatchEvent=function(r){return true},typeof CustomEvent>"u"&&(t.CustomEvent=class{type;detail;constructor(n,o={}){this.type=n,this.detail=o;}})),typeof t.addEventListener!="function"&&(t.addEventListener=function(r,n){z.has(r)||z.set(r,[]),z.get(r).push(n);},t.removeEventListener=function(r,n){let o=z.get(r);if(o){let s=o.indexOf(n);s>-1&&o.splice(s,1);}},t.dispatchEvent=function(r){let n=z.get(r.type);return n&&n.forEach(o=>{try{o(r);}catch(s){console.error("Event listener error:",s);}}),true});}function F(e){let t=e||`context_${X()}`;be(t);let r={state:{},store:new Map,session:new Map,cache:new Map};return pe.set(t,r),{id:t,state:r.state,store:{get:n=>{let o=r.store.get(n);return o?JSON.parse(o):null},set:(n,o)=>{r.store.set(n,JSON.stringify(o));},remove:n=>r.store.delete(n),removeAll:()=>r.store.clear(),clearAll:()=>r.store.clear(),size:()=>r.store.size,isPersistent:false},session:{get:n=>{let o=r.session.get(n);return o?JSON.parse(o):null},set:(n,o)=>{r.session.set(n,JSON.stringify(o));},remove:n=>r.session.delete(n),removeAll:()=>r.session.clear(),clearAll:()=>r.session.clear(),size:()=>r.session.size,isPersistent:false},cache:{get:n=>r.cache.get(n),set:(n,o)=>r.cache.set(n,o),remove:n=>r.cache.delete(n),removeAll:()=>r.cache.clear(),clear:()=>r.cache.clear()}}}function ge(){return Array.from(pe.keys())}function ye(e){return pe.delete(e)}function be(e){exports.internal.currentContext=e;}var z,pe,J=x(()=>{a();O();z=new Map;pe=new Map;});var It={};var Ze=x(()=>{a();w();v();exports.idb.db.create=(e,t=1)=>new Promise((r,n)=>{if(!exports.idb.db.support())return n(new Error("IndexedDB not supported"));let o=globalThis.indexedDB.open(e,t);o.onerror=()=>{c(`IndexedDB error: ${o.error?.message}`),n(o.error);},o.onsuccess=()=>{c(`Database ${e} connected successfully`),r(o.result);},o.onupgradeneeded=()=>{c(`Database ${e} upgrade/creation initiated`);};});});var Nt={};var et=x(()=>{a();w();exports.idb.db.list=async()=>{if(!("indexedDB"in globalThis)||!indexedDB.databases)return [];try{let e=await indexedDB.databases();return globalThis.idbases=e||[],await exports.idb.db.size(),globalThis.idbases}catch(e){return console.error("Error listing databases:",e),[]}};});var Vt={};var tt=x(()=>{a();w();exports.idb.db.exist=e=>idbases?.some(t=>t.name===e);});var Bt={};var rt=x(()=>{a();w();exports.idb.db.quota=()=>navigator.storage.estimate();});var Lt={};var ot=x(()=>{a();w();v();exports.idb.db.delete=e=>new Promise((t,r)=>{c(`Removing database ${e}...`),(()=>{let o=indexedDB.deleteDatabase(e);o.onsuccess=()=>{c(`${e} database removed successfully`),exports.idb.db.list(),t();},o.onerror=()=>{console.error(`Error removing ${e}:`,o.error),r(o.error);},o.onblocked=()=>{console.warn(`Deletion of ${e} is blocked. Please close other tabs.`);};})();});});var Ht={};var nt=x(()=>{a();w();v();exports.idb.db.size=async()=>{if(!(!idbases||idbases.length===0))for(let e=0;e<idbases.length;e++){let t=idbases[e];try{let r=await exports.idb.db.create(t.name,t.version),n=Array.from(r.objectStoreNames),o=0;for(let s of n){let i=await exports.idb.table.size(r,s);o+=i;}t.size=o,r.close();}catch(r){c(`Could not calculate size for ${t.name}:${r}`);}}};});var Ut={};var st=x(()=>{a();w();exports.idb.db.version=e=>{let t=0;for(let r of idbases){r.name===e&&(t=r.version);break}return t};});var Jt={};var it=x(()=>{a();w();v();exports.idb.db.support=()=>{let e="indexedDB"in globalThis;return e||c("Your environment doesn't support IndexedDB"),e};});var zt={};var at=x(()=>{a();w();v();exports.idb.table.create=(e,t)=>new Promise((r,n)=>{try{let s=(Number(exports.idb.db.version(e))||0)+1,i=indexedDB.open(e,s);i.onupgradeneeded=d=>{let f=d.target.result;if(!f.objectStoreNames.contains(t)){let g=f.createObjectStore(t,{keyPath:"id",autoIncrement:!0});g.createIndex("id","id",{unique:!0}),g.createIndex("data","data",{unique:!1}),c(`Table ${t} created in ${e}`);}},i.onsuccess=()=>{i.result.close(),exports.idb.db.list(),r();},i.onerror=()=>{console.error(`Error creating table ${t}:`,i.error),n(i.error);};}catch(o){console.error("Critical error in table.create:",o),n(o);}});});var Kt={};var lt=x(()=>{a();w();v();exports.idb.table.size=(e,t)=>new Promise((r,n)=>{if(!e)return n(new Error("Database instance is required"));if(!e.objectStoreNames.contains(t))return r(0);let o=0,s=0,f=e.transaction([t],"readonly").objectStore(t).openCursor();f.onsuccess=async g=>{let y=g.target.result;if(y){try{let T=y.value;o+=JSON.stringify(T).length;}catch(T){c(`Error stringifying IDB value tracking size:${T}`);}s++,s%200===0&&await new Promise(T=>setTimeout(T,0)),y.continue();}else r(o);},f.onerror=()=>{n(f.error);};});});var qt={};var ct=x(()=>{a();w();v();exports.idb.data.delete=(e,t,r)=>new Promise((n,o)=>{let s=indexedDB.open(e);s.onsuccess=()=>{let i=s.result;if(!i.objectStoreNames.contains(t))return i.close(),o(new Error(`Table ${t} not found`));let g=i.transaction(t,"readwrite").objectStore(t).delete(r);g.onsuccess=()=>{i.close(),c(`Record ${r} deleted from ${t}`),n();},g.onerror=()=>{i.close(),o(g.error);};},s.onerror=()=>o(s.error);});exports.idb.data.delete.all=(e,t)=>new Promise((r,n)=>{let o=indexedDB.open(e);o.onsuccess=s=>{let i=s.target.result;if(!i.objectStoreNames.contains(t))return i.close(),n(new Error(`Table ${t} not found`));let g=i.transaction(t,"readwrite").objectStore(t).clear();g.onsuccess=()=>{i.close(),c(`All data cleared from ${t}`),r();},g.onerror=()=>{i.close(),n(g.error);};},o.onerror=()=>n(o.error);});});var Ft={};var ut=x(()=>{a();w();v();exports.idb.data.set=(e,t,r)=>new Promise((n,o)=>{let s=indexedDB.open(e);s.onsuccess=()=>{let i=s.result;if(!i.objectStoreNames.contains(t))return i.close(),o(new Error(`Table ${t} does not exist in ${e}`));let g=i.transaction(t,"readwrite").objectStore(t).put(r);g.onsuccess=()=>{i.close(),c(`Data saved in ${e}.${t}`),n(g.result);},g.onerror=y=>{i.close(),c(`Database insert error: ${g.error?.message}`),o(g.error);};},s.onerror=()=>{o(s.error);};});});var Wt={};var mt=x(()=>{a();w();exports.idb.data.get=(e,t,r)=>new Promise((n,o)=>{let s=indexedDB.open(e);s.onsuccess=i=>{let d=i.target.result;if(!d.objectStoreNames.contains(t))return d.close(),o(new Error(`Table ${t} not found in ${e}`));let y=d.transaction(t,"readonly").objectStore(t).get(r);y.onsuccess=()=>{d.close(),n(y.result);},y.onerror=()=>{d.close(),o(y.error);};},s.onerror=()=>{o(s.error);};});});var Gt;exports.idb = void 0;var w=x(()=>{a();J();Gt=fe(),exports.idb={db:{},table:{},data:{}};Gt?(async()=>(Object.defineProperty(exports.idb,"db",{value:{},writable:true,configurable:true}),Object.defineProperty(exports.idb,"table",{value:{},writable:true,configurable:true}),Object.defineProperty(exports.idb,"data",{value:{},writable:true,configurable:true}),Object.defineProperty(globalThis,"idbases",{value:[],writable:true,configurable:true,enumerable:false}),await Promise.all([Promise.resolve().then(()=>(Ze(),It)),Promise.resolve().then(()=>(et(),Nt)),Promise.resolve().then(()=>(tt(),Vt)),Promise.resolve().then(()=>(rt(),Bt)),Promise.resolve().then(()=>(ot(),Lt)),Promise.resolve().then(()=>(nt(),Ht)),Promise.resolve().then(()=>(st(),Ut)),Promise.resolve().then(()=>(it(),Jt)),Promise.resolve().then(()=>(at(),zt)),Promise.resolve().then(()=>(lt(),Kt)),Promise.resolve().then(()=>(ct(),qt)),Promise.resolve().then(()=>(ut(),Ft)),Promise.resolve().then(()=>(mt(),Wt))]),Object.preventExtensions(exports.idb),Object.seal(exports.idb),Object.freeze(exports.idb)))():(exports.idb._disabled=true,exports.idb._warning="IndexedDB is not available in this environment (Node.js/Deno). Use store or session for persistence.",console.warn("Memorio IDB: IndexedDB is not available in this environment. Use store or session for data persistence."));});a();a();O();v();a();var h={set:(e,t={})=>{globalThis.dispatchEvent(new CustomEvent(String(e),t));},listen:(e,t=null,r)=>{if(globalThis.events?.[e])return;let n=t?o=>{let s=o;return globalThis.queueMicrotask?globalThis.queueMicrotask(()=>t(s)):Promise.resolve().then(()=>t(s))}:void 0;n&&globalThis.addEventListener(e,n),n&&(globalThis.events[e]=n);},remove:e=>{let t=globalThis.events?.[e];t&&(globalThis.removeEventListener(e,t),delete globalThis.events[e]);}};a();v();var U=new Map,ze=(e,t,r)=>{let n=[];if(t.type&&t.type!=="any"){let o=Array.isArray(e)?"array":typeof e;if(o!==t.type)return n.push(`${r}: expected ${t.type}, got ${o}`),{valid:false,errors:n}}if(t.enum&&!t.enum.includes(e)&&n.push(`${r}: value must be one of [${t.enum.map(String).join(", ")}]`),t.validator){let o=t.validator(e);o!==true&&n.push(`${r}: ${typeof o=="string"?o:"validation failed"}`);}if(typeof e=="number"&&(t.min!==void 0&&e<t.min&&n.push(`${r}: value ${e} is less than minimum ${t.min}`),t.max!==void 0&&e>t.max&&n.push(`${r}: value ${e} exceeds maximum ${t.max}`)),typeof e=="string"&&(t.min!==void 0&&e.length<t.min&&n.push(`${r}: string length ${e.length} is less than minimum ${t.min}`),t.max!==void 0&&e.length>t.max&&n.push(`${r}: string length ${e.length} exceeds maximum ${t.max}`),t.pattern&&!t.pattern.test(e)&&n.push(`${r}: string does not match required pattern`)),t.type==="object"&&e&&typeof e=="object"&&!Array.isArray(e)){if(t.required)for(let o of t.required)o in e||n.push(`${r}: missing required property '${o}'`);if(t.properties){for(let[o,s]of Object.entries(t.properties))if(o in e&&e[o]!==void 0){let i=ze(e[o],s,`${r}.${o}`);i.valid||n.push(...i.errors||[]);}}}return n.length===0?{valid:true}:{valid:false,errors:n}},Ke=(e,t)=>{let r=U.get(e);return r?ze(t,r,e):{valid:true}},qe=(e,t)=>{typeof t=="function"?U.set(e,{validator:t}):U.set(e,t),c(`[memorio schema] Registered schema for '${e}'`);},Fe=e=>U.delete(e),We=()=>Array.from(U.keys()),Ct=e=>U.get(e),M={register:qe,validate:Ke,unregister:Fe,list:We,get:Ct};var Y=Symbol("memorio.target"),Ge=new WeakMap,R=(e,t=null)=>{if(e===null||typeof e!="object")return e;if(e[Y]!==void 0)return R(e[Y],t);if(t){if(t.has(e))return e;t.add(e);}let r=e.constructor?.name;if(r!=="Object"&&r!=="Array")return e;let n=Array.isArray(e)?[]:{};for(let o of Reflect.ownKeys(e))n[o]=R(e[o],t);return n},Ye=(e,t,r=".")=>t.concat(e).join(r),Xe=(e,t,r=[])=>{let n=o=>{try{h.set(o,{detail:{name:o}});}catch{}};return new Proxy(e,{get(o,s){if(s==="__path")return r.length>0?"state."+r.join("."):"state";if(s===Y||o[Y]!==void 0)return o;if(s==="list")return c('Some state could be hidden when you use "state.list". Use "state" to see the complete list '),JSON.parse(JSON.stringify(o));if(typeof s=="string"){let i=r.length>0?"state."+r.concat(s).join("."):"state."+s;exports.internal.lastAccessedPath=i,exports.internal.tracking&&exports.internal.trackedPaths.add(i);}if(s==="_lastPath")return exports.internal.lastAccessedPath;if(s==="remove")return i=>(delete o[i],true);if(s==="removeAll")return ()=>{try{for(let i in o)typeof o[i]!="function"&&!["list","remove","removeAll","lock","unlock"].includes(i)&&delete o[i];}catch(i){console.error(i);}};if(Object.isFrozen(o[s]))return o[s];if(s==="lock"||s==="unlock"){let i=Reflect.get(o,s);if(i)return i}try{let i=Reflect.get(o,s);if(i&&typeof i=="object"&&["Array","Object"].includes(i.constructor.name)){let d=Ge.get(i);return d||(d=Xe(i,t,r.concat(s)),Ge.set(i,d)),d}return i}catch(i){console.error("Error: ",i);return}},set(o,s,i){if(exports.internal.locked)return console.error("Error: state is locked. Use state.unlock() to enable modifications."),false;if(Je.includes(s))return console.error("key "+s+" is protected"),false;if(o[s]&&typeof o[s]=="object"&&Object.isFrozen(o[s]))return console.error(`Error: state '${s}' is locked`),false;if(o[s]&&typeof o[s]=="object"&&o[s].__locked)return console.error(`Error: state '${s}' is locked. Use state.${s}.unlock() to enable modifications.`),false;try{let d=Ye(s,r),f=R(i),g=M.validate(d,f);if(!g.valid)return exports.internal.debug&&console.error(`[memorio schema] Validation failed for '${d}':`,g.errors),c(`[memorio schema] Validation failed for '${d}': `+(g.errors?.join(", ")||"unknown error")),!1;if(t({action:"set",path:d,target:o,newValue:f,previousValue:Reflect.get(o,s)}),n("state."+d),Reflect.set(o,s,f),exports.internal.bumpStateVersion(),o[s]&&typeof o[s]=="object"){let y=o[s];if(y&&typeof y=="object")try{Object.defineProperty(y,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!1}),Object.defineProperty(y,"lock",{writable:!1,enumerable:!1,configurable:!1,value:()=>{Object.defineProperty(y,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!0}),c(`State '${s}' is now locked.`);}}),Object.defineProperty(y,"unlock",{writable:!1,enumerable:!1,configurable:!1,value:()=>{Object.defineProperty(y,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!1}),c(`State '${s}' is now unlocked.`);}});}catch{}}return !0}catch(d){return console.error("Error in set trap:",d),false}},deleteProperty(o,s){try{let i=Ye(s,r),d=Reflect.get(o,s);return t({action:"delete",path:i,target:o,previousValue:d}),Reflect.deleteProperty(o,s)}catch(i){return console.error("Error in deleteProperty trap:",i),false}},ownKeys(o){return Reflect.ownKeys(o)},getOwnPropertyDescriptor(o,s){return Reflect.getOwnPropertyDescriptor(o,s)}})},b=Xe({},e=>{exports.internal.historyEnabled&&exports.internal.recordMutation({path:e.path,action:e.action,newValue:e.newValue,previousValue:e.previousValue,timestamp:Date.now()});});b.lock=()=>{exports.internal.locked=true,c("State is now locked. All modifications are blocked.");};b.unlock=()=>{exports.internal.locked=false,c("State is now unlocked. Modifications are allowed.");};a();J();O();v();var k=de(),he=new Map;function N(){let t=exports.internal.currentContext||""||"default";return he.has(t)||he.set(t,new Map),he.get(t)}var I=k!==null;function j(){let e=exports.internal.currentContext||"";return e?`${e}-`:"memorio_store_"}function ve(e){return !e||typeof e!="string"?(console.warn("[memorio store] key is empty or not a string - operation aborted"),""):e.length>512?(console.warn(`[memorio store] key "${e}" exceeds 512 chars - operation aborted`),""):j()+e}function _t(e){let t=I?k.getItem(e):N().get(e);return t&&JSON.parse(t)}function Dt(e,t){let r=JSON.stringify(t);I?k.setItem(e,r):N().set(e,r);}function Rt(e){if(I){if(k.getItem(e))return k.removeItem(e),true}else if(N().has(e))return N().delete(e),true;return false}var S=new Proxy({},{});Object.defineProperty(globalThis,"store",{value:S,enumerable:false,configurable:true});Object.defineProperties(S,{get:{value:e=>{if(!e)return console.warn("[memorio store] store.get() called with empty or null key - returning null"),null;try{return _t(ve(e))}catch(t){exports.message(`Error parsing store item '${e}': ${t}`);}return null}},getMultiple:{value:e=>{let t={};for(let r of e)try{let n=S.get(r);n&&(t[r]=n);}catch(n){console.debug(`[memorio store] getMultiple error for key "${r}":`,n);}return t}},set:{value:(e,t)=>{if(!e)return console.warn("[memorio store] store.set() called with empty or null key - write aborted"),false;let r=ve(e);if(!r)return false;if(typeof t=="function")return console.warn("[memorio store] functions are not storable - write aborted for key: "+e),exports.message("Storing functions is not secure and is blocked for safety."),false;try{Dt(r,t);}catch(n){return exports.message(`Error setting store item '${e}': ${n}`),false}return true}},remove:{value:e=>{if(!e)return console.debug("[memorio store] store.remove() called with empty or null key - returning false"),false;let t=ve(e);if(!t)return false;try{return Rt(t)}catch(r){exports.message(`Error removing store item '${e}': ${r}`);}return false}},delete:{value:e=>S.remove(e)},removeAll:{value:()=>{if(I){let e=[];for(let t=0;t<k.length;t++){let r=k.key(t);r?.startsWith(j())&&e.push(r);}e.forEach(t=>k.removeItem(t));}else N().clear();return true}},clearAll:{value:()=>(S.removeAll(),true)},quota:{value:async()=>[0,0]},size:{value:()=>{let e=0;return I?Object.keys(k).forEach(t=>{if(t.startsWith(j())){let r=k.getItem(t);r&&(e+=r.length);}}):N().forEach(t=>{e+=t.length;}),e}},isPersistent:{get:()=>I},list:{value:()=>{let e={};try{if(I)for(let t=0;t<k.length;t++){let r=k.key(t);if(r?.startsWith(j())){let n=r.replace(j(),""),o=k.getItem(r);if(o!==null)try{e[n]=JSON.parse(o);}catch{e[n]=o;}}}else N().forEach((t,r)=>{if(r.startsWith(j())){let n=r.replace(j(),"");try{e[n]=JSON.parse(t);}catch{e[n]=t;}}});}catch(t){exports.message(`Error listing store items: ${t}`);}return e}}});Object.freeze(S);a();J();O();v();var P=me(),xe=new Map;function L(){let t=exports.internal.currentContext||""||"default";return xe.has(t)||xe.set(t,new Map),xe.get(t)}var B=P!==null;function V(){let e=exports.internal.currentContext||"";return e?`${e}-`:"memorio_session_"}function Se(e){return !e||typeof e!="string"?(console.warn("[memorio session] key is empty or not a string - operation aborted"),""):e.length>512?(console.warn(`[memorio session] key "${e}" exceeds 512 chars - operation aborted`),""):V()+e}function Mt(e){let t=B?P.getItem(e):L().get(e);return t&&JSON.parse(t)}function At(e,t){let r=JSON.stringify(t);B?P.setItem(e,r):L().set(e,r);}function jt(e){if(B){if(P.getItem(e))return P.removeItem(e),true}else if(L().has(e))return L().delete(e),true;return false}var C=new Proxy({},{});Object.defineProperty(globalThis,"session",{value:C,enumerable:false,configurable:true});Object.defineProperties(C,{get:{value:e=>{if(!e)return console.warn("[memorio session] session.get() called with empty or null key - returning null"),null;try{return Mt(Se(e))}catch(t){exports.message(`Error parsing session item '${e}':${t}`);}return null}},set:{value:(e,t)=>{if(!e)return console.warn("[memorio session] session.set() called with empty or null key - write aborted"),false;let r=Se(e);if(!r)return false;if(typeof t=="function")return console.warn("[memorio session] functions are not storable - write aborted for key: "+e),exports.message("It's not secure to session functions."),false;try{At(r,t);}catch(n){return exports.message(`Error setting session item '${e}': ${n}`),false}return true}},remove:{value:e=>{if(!e)return console.warn("[memorio session] session.remove() called with empty or null key - returning false"),false;let t=Se(e);if(!t)return false;try{return jt(t)}catch(r){exports.message(`Error removing session item '${e}': ${r}`);}return false}},delete:{value:e=>C.remove(e)},removeAll:{value:()=>{if(B){let e=[];for(let t=0;t<P.length;t++){let r=P.key(t);r?.startsWith(V())&&e.push(r);}e.forEach(t=>P.removeItem(t));}else L().clear();return true}},clearAll:{value:()=>(C.removeAll(),true)},quota:{value:async()=>[0,0]},size:{value:()=>{let e=0;return B?Object.keys(P).forEach(t=>{if(t.startsWith(V())){let r=P.getItem(t);r&&(e+=r.length);}}):L().forEach(t=>{e+=t.length;}),e}},isPersistent:{get:()=>B},list:{value:()=>{let e={};try{if(B)for(let t=0;t<P.length;t++){let r=P.key(t);if(r?.startsWith(V())){let n=r.replace(V(),""),o=P.getItem(r);if(o!==null)try{e[n]=JSON.parse(o);}catch{e[n]=o;}}}else L().forEach((t,r)=>{if(r.startsWith(V())){let n=r.replace(V(),"");try{e[n]=JSON.parse(t);}catch{e[n]=t;}}});}catch(t){exports.message(`Error listing session items: ${t}`);}return e}}});Object.freeze(C);a();var _={},Q=new Proxy({},{get(e,t){let r=t;return r==="get"?n=>_[n]:r==="set"?(n,o)=>{_[n]=o;}:r==="remove"?n=>(delete _[n],true):r==="removeAll"?()=>(Object.keys(_).forEach(n=>delete _[n]),true):r==="clear"?()=>(Object.keys(_).forEach(n=>delete _[n]),true):r==="list"?()=>({..._}):_[r]},set(e,t,r){return _[t]=r,true},deleteProperty(e,t){return delete _[t],true}});Object.freeze(Q);w();a();v();var dt=false,Yt=(e,t=null,r=true)=>{dt||(console.warn('DEPRECATED: "observer" is deprecated and will be removed in future versions. Please use "useObserver" instead.'),dt=true);let n=s=>typeof s=="string"?s:s&&typeof s=="object"&&s.__path?s.__path:null,o=n(e);if(!e&&!t){console.error("Observer Error: You need to setup observer correctly, Some parameters are missed!");return}if(!e&&t){console.error("Observer Error: You need to declare what state need to be monitored as string like 'state.test'.");return}if(o){let s=o.split(".");if(s[0]!=="state"&&s[0]!=="store"){console.error(`Observer Error: You need to declare 'state.' or 'store.'. The '${o}' string is incorrect!`);return}}if(e&&!t){let s=n(e);if(!s)return;globalThis.observer?.list?.[s]&&h.remove(s),c(`called: ${s}`);return}if(e&&t){let s=n(e);if(!s)return;if(typeof e!="string"&&!(e&&typeof e=="object")){console.error("Observer Error: name of state need to be a 'string' like 'state.test' or a direct state value");return}let i=Array.isArray(t)?t:[t];globalThis.observer?.list?.[s]&&h.remove(s),i.forEach(f=>{typeof f=="function"&&h.listen(s,f,r);});return}},Z=Yt;Object.defineProperties(Z,{list:{get:()=>globalThis.events},remove:{value:e=>{e&&(h.remove(e),delete globalThis.events[e]);}},removeAll:{get:()=>{let e=globalThis.observer,t=e?.list;return t&&Object.keys(t).forEach(r=>{e?.remove?.(r);}),true}},has:{value:e=>!!globalThis.observer?.list?.[e]}});a();v();O();globalThis.useObserver||(globalThis.useObserver=null);Object.defineProperty(globalThis,"useObserver",{value:null,writable:true,enumerable:false,configurable:true});var ee=((e,t=[])=>{if(!t||typeof e!="function")return ()=>{};let r=[],n=Array.isArray(t)&&!t.__path?t:[t];try{return n.forEach(o=>{let s="";if(typeof o=="function"){let i=exports.propertyName(o);i&&(s=i);}else typeof o=="object"&&o!==null&&(s=o.__path||(typeof o.toString=="function"&&o.toString()!=="[object Object]"?o.toString():""));if(s){s=s.replace(/^(\(\)\s*=>\s*)/,"").replace(/^globalThis\./,"").replace(/^state\./,"");let i=s.startsWith("store.")||s.startsWith("state.")?s:"state."+s;h.listen(i,()=>e()),r.push(i);}else {exports.internal.clearTrackedPaths(),exports.internal.tracking=!0;try{e();}catch{}exports.internal.tracking=!1,exports.internal.trackedPaths.forEach(i=>{r.includes(i)||(c(`useObserver: [Auto-Discovery] -> "${i}"`),h.listen(i,()=>e()),r.push(i));});}}),r.length>0?c(`useObserver: Monitoring ${r.length} paths.`):console.warn("useObserver: No paths resolved for monitoring. Check your dependencies!"),()=>{r.forEach(o=>{typeof h.remove=="function"&&(h.remove(o),c(`useObserver: Stopped monitoring "${o}"`));});}}catch(o){return c(`useObserver Error: ${o}`),()=>{}}});globalThis.useObserver=ee;Object.freeze(globalThis.useObserver);v();a();O();function Xt(){return exports.internal.debug===true}function ft(){if(!globalThis.store)return {};let e={},t=globalThis.store;if(typeof t.list=="function")try{return t.list()}catch{}if(typeof t.get=="function"){for(let r of Object.keys(t))if(!["get","set","remove","delete","removeAll","clearAll","size","isPersistent","list"].includes(r))try{let n=t.get(r);n!=null&&(e[r]=n);}catch{}}return e}function pt(){if(!globalThis.session)return {};let e={},t=globalThis.session;if(typeof t.list=="function")try{return t.list()}catch{}if(typeof t.get=="function"){for(let r of Object.keys(t))if(!["get","set","remove","delete","removeAll","clearAll","size","isPersistent","list"].includes(r))try{let n=t.get(r);n!=null&&(e[r]=n);}catch{}}return e}var Qt=()=>{if(Xt()){if(globalThis.state){let e=globalThis.state.list,t;typeof e=="function"?t=e():typeof e=="object"&&e!==null?t=e:t=globalThis.state,console.table(t);}if(globalThis.store&&console.table(ft()),globalThis.session&&console.table(pt()),globalThis.cache){let e=globalThis.cache.list,t;typeof e=="function"?t=e():typeof e=="object"&&e!==null?t=e:t=globalThis.cache,console.table(t);}}},Zt=()=>{let e=t=>{if(!t)return 0;if(typeof t.list=="function")try{let r=t.list();return Object.keys(r).length}catch{}return Object.keys(t).length};return {stateKeys:e(globalThis.state),storeKeys:e(globalThis.store),sessionKeys:e(globalThis.session),cacheKeys:e(globalThis.cache),idbDatabases:0,lastUpdate:new Date().toISOString()}},W=e=>{globalThis[e]&&typeof globalThis[e].clear=="function"?globalThis[e].clear():console.error(`Module ${e} not found or does not support clear()`);},er=()=>{W("state"),W("store"),W("session"),W("cache");},tr=()=>{let e=()=>{if(globalThis.state)try{return typeof globalThis.state.list=="function"?globalThis.state.list():globalThis.state}catch{return}},t=()=>ft(),r=()=>pt(),n=()=>{if(globalThis.cache)try{return typeof globalThis.cache.list=="function"?globalThis.cache.list():globalThis.cache}catch{return}},o={state:e(),store:t(),session:r(),cache:n(),exportedAt:new Date().toISOString()};return JSON.stringify(o,null,2)},rr=e=>{try{let t=JSON.parse(e);t.state&&Object.entries(t.state).forEach(([r,n])=>{globalThis.state&&r!=="list"&&r!=="remove"&&r!=="removeAll"&&(globalThis.state[r]=n);}),t.store&&globalThis.store&&typeof globalThis.store.set=="function"&&Object.entries(t.store).forEach(([r,n])=>{globalThis.store.set(r,n);}),t.session&&globalThis.session&&typeof globalThis.session.set=="function"&&Object.entries(t.session).forEach(([r,n])=>{globalThis.session.set(r,n);}),t.cache&&globalThis.cache&&Object.entries(t.cache).forEach(([r,n])=>{globalThis.cache&&r!=="get"&&r!=="set"&&r!=="remove"&&r!=="clear"&&(globalThis.cache[r]=n);});}catch(t){console.error("%c\u2717 Import failed:","color: #F44336",t);}},or=(e,t)=>{if(!globalThis[e]){console.error(`Module ${e} not found`);return}let r=globalThis[e],n=r[t];if(console.debug(`\u{1F441} Watching ${e}.${t} (initial: ${JSON.stringify(n)})`),e==="state"&&globalThis.memorio?.dispatch){let o=s=>{s.detail?.name?.includes(t)&&console.debug(`\u{1F441} Change: ${e}.${t} =`,s.detail.value);};r.addEventListener?.("memorio-change",o);}},nr=()=>{console.debug(`
5
+ var v=(e,t)=>()=>(e&&(t=e(e=0)),t);var a=v(()=>{});var p,mr,ut;exports.propertyName = void 0;exports.internal = void 0;var M=v(()=>{a();p={debug:false,tracking:false,trackedPaths:new Set,locked:false,lastAccessedPath:"",stateVersion:0,currentContext:null,mutations:[],undoStack:[],redoStack:[],maxHistory:100,historyEnabled:false},mr={get debug(){return p.debug},set debug(e){p.debug=e;},get tracking(){return p.tracking},set tracking(e){p.tracking=e;},get trackedPaths(){return p.trackedPaths},clearTrackedPaths(){p.trackedPaths.clear();},get locked(){return p.locked},set locked(e){p.locked=e;},get lastAccessedPath(){return p.lastAccessedPath},set lastAccessedPath(e){p.lastAccessedPath=e;},get stateVersion(){return p.stateVersion},bumpStateVersion(){return p.stateVersion=(p.stateVersion||0)+1,p.stateVersion},get currentContext(){return p.currentContext},set currentContext(e){p.currentContext=e;},get mutations(){return p.mutations},get undoStack(){return p.undoStack},get redoStack(){return p.redoStack},get maxHistory(){return p.maxHistory},set maxHistory(e){p.maxHistory=e;},get historyEnabled(){return p.historyEnabled},set historyEnabled(e){p.historyEnabled=e;},recordMutation(e){p.historyEnabled&&(p.mutations.push(e),p.mutations.length>p.maxHistory&&p.mutations.shift(),p.undoStack.push(e),p.undoStack.length>p.maxHistory&&p.undoStack.shift(),p.redoStack=[]);},popUndo(){let e=p.undoStack.pop();return e&&p.redoStack.push(e),e},popRedo(){let e=p.redoStack.pop();return e&&p.undoStack.push(e),e},canUndo(){return p.undoStack.length>0},canRedo(){return p.redoStack.length>0},clearHistory(){p.mutations=[],p.undoStack=[],p.redoStack=[];},clearRedo(){p.redoStack=[];}},ut=["list","state","store","idb","sqlite","observer","useObserver","remove","removeAll","_platform","_capabilities","_sessionId"],exports.propertyName=(e,t)=>String(t!==void 0?t:e).replace("() => ",""),exports.internal=mr;});exports.message = void 0;var c,S=v(()=>{a();M();exports.message=(...e)=>{exports.internal.debug===true&&console.debug(...e);},c=exports.message;});function le(){let e=globalThis;if(typeof e.crypto<"u"&&e.crypto.randomUUID)return e.crypto.randomUUID();if(typeof e.crypto<"u"&&e.crypto.getRandomValues){let t=new Uint8Array(16);return e.crypto.getRandomValues(t),Array.from(t,r=>r.toString(16).padStart(2,"0")).join("")}return `session_${Date.now()}_${Math.random().toString(36).substring(2,15)}`}function ee(){let e=globalThis;return e.Deno&&e.Deno.version?"deno":typeof process<"u"&&process.versions&&process.versions.node?"node":typeof globalThis<"u"&&typeof globalThis.ServiceWorkerGlobalScope<"u"?"edge":typeof window<"u"&&typeof document<"u"?"browser":"unknown"}function Se(){return ee()==="browser"}function we(){return ee()==="node"}function Ee(){return ee()==="deno"}function Te(){return ee()==="edge"}function Pe(){try{if(typeof sessionStorage<"u"){let e="__memorio_test__";return sessionStorage.setItem(e,"1"),sessionStorage.removeItem(e),sessionStorage}}catch{}return null}function _e(){try{if(typeof localStorage<"u"){let e="__memorio_test__";return localStorage.setItem(e,"1"),localStorage.removeItem(e),localStorage}}catch{}return null}function ke(){return typeof indexedDB<"u"}function te(){let e=globalThis;return typeof e.WebAssembly>"u"||typeof e.WebAssembly.instantiate!="function"?false:typeof e.window<"u"}function fr(){return typeof globalThis.dispatchEvent=="function"}function re(){let e=ee(),t=typeof globalThis.isSecureContext<"u"?globalThis.isSecureContext:e==="browser";return {platform:e,hasSessionStorage:Pe()!==null,hasLocalStorage:_e()!==null,hasIndexedDB:ke(),hasSqlJs:te(),hasDispatchEvent:fr(),hasNavigator:typeof navigator<"u",hasProcess:typeof process<"u",isSecureContext:t,sessionId:le()}}function vt(){let e=re(),t=globalThis;e.hasDispatchEvent||(t.dispatchEvent=function(r){return true},typeof CustomEvent>"u"&&(t.CustomEvent=class{type;detail;constructor(o,n={}){this.type=o,this.detail=n;}})),typeof t.addEventListener!="function"&&(t.addEventListener=function(r,o){Z.has(r)||Z.set(r,[]),Z.get(r).push(o);},t.removeEventListener=function(r,o){let n=Z.get(r);if(n){let s=n.indexOf(o);s>-1&&n.splice(s,1);}},t.dispatchEvent=function(r){let o=Z.get(r.type);return o&&o.forEach(n=>{try{n(r);}catch(s){console.error("Event listener error:",s);}}),true});}function oe(e){let t=e||`context_${le()}`;Ce(t);let r={state:{},store:new Map,session:new Map,cache:new Map};return Oe.set(t,r),{id:t,state:r.state,store:{get:o=>{let n=r.store.get(o);return n?JSON.parse(n):null},set:(o,n)=>{r.store.set(o,JSON.stringify(n));},remove:o=>r.store.delete(o),removeAll:()=>r.store.clear(),clearAll:()=>r.store.clear(),size:()=>r.store.size,isPersistent:false},session:{get:o=>{let n=r.session.get(o);return n?JSON.parse(n):null},set:(o,n)=>{r.session.set(o,JSON.stringify(n));},remove:o=>r.session.delete(o),removeAll:()=>r.session.clear(),clearAll:()=>r.session.clear(),size:()=>r.session.size,isPersistent:false},cache:{get:o=>r.cache.get(o),set:(o,n)=>r.cache.set(o,n),remove:o=>r.cache.delete(o),removeAll:()=>r.cache.clear(),clear:()=>r.cache.clear()}}}function qe(){return Array.from(Oe.keys())}function Me(e){return Oe.delete(e)}function Ce(e){exports.internal.currentContext=e;}var Z,Oe,L=v(()=>{a();M();Z=new Map;Oe=new Map;});function U(){let t=exports.internal.currentContext||""||"default";return $e.has(t)||$e.set(t,new Map),$e.get(t)}function N(){let e=exports.internal.currentContext||"";return e?`${e}-`:"memorio_store_"}function je(e){return !e||typeof e!="string"?(console.warn("[memorio store] key is empty or not a string - operation aborted"),""):e.length>512?(console.warn(`[memorio store] key "${e}" exceeds 512 chars - operation aborted`),""):N()+e}function pr(e){let t=B?O.getItem(e):U().get(e);return t&&JSON.parse(t)}function yr(e,t){let r=JSON.stringify(t);B?O.setItem(e,r):U().set(e,r);}function gr(e){if(B){if(O.getItem(e))return O.removeItem(e),true}else if(U().has(e))return U().delete(e),true;return false}var O,$e,B;exports.store = void 0;var F=v(()=>{a();L();M();S();O=_e(),$e=new Map;B=O!==null;exports.store=new Proxy({},{});Object.defineProperty(globalThis,"store",{value:exports.store,enumerable:false,configurable:true});Object.defineProperties(exports.store,{get:{value:e=>{if(!e)return console.warn("[memorio store] store.get() called with empty or null key - returning null"),null;try{return pr(je(e))}catch(t){exports.message(`Error parsing store item '${e}': ${t}`);}return null}},getMultiple:{value:e=>{let t={};for(let r of e)try{let o=exports.store.get(r);o&&(t[r]=o);}catch(o){console.debug(`[memorio store] getMultiple error for key "${r}":`,o);}return t}},set:{value:(e,t)=>{if(!e)return console.warn("[memorio store] store.set() called with empty or null key - write aborted"),false;let r=je(e);if(!r)return false;if(typeof t=="function")return console.warn("[memorio store] functions are not storable - write aborted for key: "+e),exports.message("Storing functions is not secure and is blocked for safety."),false;try{yr(r,t);}catch(o){return exports.message(`Error setting store item '${e}': ${o}`),false}return true}},remove:{value:e=>{if(!e)return console.debug("[memorio store] store.remove() called with empty or null key - returning false"),false;let t=je(e);if(!t)return false;try{return gr(t)}catch(r){exports.message(`Error removing store item '${e}': ${r}`);}return false}},delete:{value:e=>exports.store.remove(e)},removeAll:{value:()=>{if(B){let e=[];for(let t=0;t<O.length;t++){let r=O.key(t);r?.startsWith(N())&&e.push(r);}e.forEach(t=>O.removeItem(t));}else U().clear();return true}},clearAll:{value:()=>(exports.store.removeAll(),true)},quota:{value:async()=>[0,0]},size:{value:()=>{let e=0;return B?Object.keys(O).forEach(t=>{if(t.startsWith(N())){let r=O.getItem(t);r&&(e+=r.length);}}):U().forEach(t=>{e+=t.length;}),e}},isPersistent:{get:()=>B},list:{value:()=>{let e={};try{if(B)for(let t=0;t<O.length;t++){let r=O.key(t);if(r?.startsWith(N())){let o=r.replace(N(),""),n=O.getItem(r);if(n!==null)try{e[o]=JSON.parse(n);}catch{e[o]=n;}}}else U().forEach((t,r)=>{if(r.startsWith(N())){let o=r.replace(N(),"");try{e[o]=JSON.parse(t);}catch{e[o]=t;}}});}catch(t){exports.message(`Error listing store items: ${t}`);}return e}}});Object.freeze(exports.store);});var xr={};var xt=v(()=>{a();E();S();exports.idb.db.create=(e,t=1)=>new Promise((r,o)=>{if(!exports.idb.db.support())return o(new Error("IndexedDB not supported"));let n=globalThis.indexedDB.open(e,t);n.onerror=()=>{c(`IndexedDB error: ${n.error?.message}`),o(n.error);},n.onsuccess=()=>{c(`Database ${e} connected successfully`),r(n.result);},n.onupgradeneeded=()=>{c(`Database ${e} upgrade/creation initiated`);};});});var Sr={};var St=v(()=>{a();E();exports.idb.db.list=async()=>{if(!("indexedDB"in globalThis)||!indexedDB.databases)return [];try{let e=await indexedDB.databases();return globalThis.idbases=e||[],await exports.idb.db.size(),globalThis.idbases}catch(e){return console.error("Error listing databases:",e),[]}};});var wr={};var wt=v(()=>{a();E();exports.idb.db.exist=e=>idbases?.some(t=>t.name===e);});var Er={};var Et=v(()=>{a();E();exports.idb.db.quota=()=>navigator.storage.estimate();});var Tr={};var Tt=v(()=>{a();E();S();exports.idb.db.delete=e=>new Promise((t,r)=>{c(`Removing database ${e}...`),(()=>{let n=indexedDB.deleteDatabase(e);n.onsuccess=()=>{c(`${e} database removed successfully`),exports.idb.db.list(),t();},n.onerror=()=>{console.error(`Error removing ${e}:`,n.error),r(n.error);},n.onblocked=()=>{console.warn(`Deletion of ${e} is blocked. Please close other tabs.`);};})();});});var Pr={};var Pt=v(()=>{a();E();S();exports.idb.db.size=async()=>{if(!(!idbases||idbases.length===0))for(let e=0;e<idbases.length;e++){let t=idbases[e];try{let r=await exports.idb.db.create(t.name,t.version),o=Array.from(r.objectStoreNames),n=0;for(let s of o){let i=await exports.idb.table.size(r,s);n+=i;}t.size=n,r.close();}catch(r){c(`Could not calculate size for ${t.name}:${r}`);}}};});var _r={};var _t=v(()=>{a();E();exports.idb.db.version=e=>{let t=0;for(let r of idbases){r.name===e&&(t=r.version);break}return t};});var kr={};var kt=v(()=>{a();E();S();exports.idb.db.support=()=>{let e="indexedDB"in globalThis;return e||c("Your environment doesn't support IndexedDB"),e};});var Or={};var Ot=v(()=>{a();E();S();exports.idb.table.create=(e,t)=>new Promise((r,o)=>{try{let s=(Number(exports.idb.db.version(e))||0)+1,i=indexedDB.open(e,s);i.onupgradeneeded=l=>{let y=l.target.result;if(!y.objectStoreNames.contains(t)){let g=y.createObjectStore(t,{keyPath:"id",autoIncrement:!0});g.createIndex("id","id",{unique:!0}),g.createIndex("data","data",{unique:!1}),c(`Table ${t} created in ${e}`);}},i.onsuccess=()=>{i.result.close(),exports.idb.db.list(),r();},i.onerror=()=>{console.error(`Error creating table ${t}:`,i.error),o(i.error);};}catch(n){console.error("Critical error in table.create:",n),o(n);}});});var qr={};var qt=v(()=>{a();E();S();exports.idb.table.size=(e,t)=>new Promise((r,o)=>{if(!e)return o(new Error("Database instance is required"));if(!e.objectStoreNames.contains(t))return r(0);let n=0,s=0,y=e.transaction([t],"readonly").objectStore(t).openCursor();y.onsuccess=async g=>{let h=g.target.result;if(h){try{let k=h.value;n+=JSON.stringify(k).length;}catch(k){c(`Error stringifying IDB value tracking size:${k}`);}s++,s%200===0&&await new Promise(k=>setTimeout(k,0)),h.continue();}else r(n);},y.onerror=()=>{o(y.error);};});});var Mr={};var Mt=v(()=>{a();E();S();exports.idb.data.delete=(e,t,r)=>new Promise((o,n)=>{let s=indexedDB.open(e);s.onsuccess=()=>{let i=s.result;if(!i.objectStoreNames.contains(t))return i.close(),n(new Error(`Table ${t} not found`));let g=i.transaction(t,"readwrite").objectStore(t).delete(r);g.onsuccess=()=>{i.close(),c(`Record ${r} deleted from ${t}`),o();},g.onerror=()=>{i.close(),n(g.error);};},s.onerror=()=>n(s.error);});exports.idb.data.delete.all=(e,t)=>new Promise((r,o)=>{let n=indexedDB.open(e);n.onsuccess=s=>{let i=s.target.result;if(!i.objectStoreNames.contains(t))return i.close(),o(new Error(`Table ${t} not found`));let g=i.transaction(t,"readwrite").objectStore(t).clear();g.onsuccess=()=>{i.close(),c(`All data cleared from ${t}`),r();},g.onerror=()=>{i.close(),o(g.error);};},n.onerror=()=>o(n.error);});});var Cr={};var Ct=v(()=>{a();E();S();exports.idb.data.set=(e,t,r)=>new Promise((o,n)=>{let s=indexedDB.open(e);s.onsuccess=()=>{let i=s.result;if(!i.objectStoreNames.contains(t))return i.close(),n(new Error(`Table ${t} does not exist in ${e}`));let g=i.transaction(t,"readwrite").objectStore(t).put(r);g.onsuccess=()=>{i.close(),c(`Data saved in ${e}.${t}`),o(g.result);},g.onerror=h=>{i.close(),c(`Database insert error: ${g.error?.message}`),n(g.error);};},s.onerror=()=>{n(s.error);};});});var $r={};var $t=v(()=>{a();E();exports.idb.data.get=(e,t,r)=>new Promise((o,n)=>{let s=indexedDB.open(e);s.onsuccess=i=>{let l=i.target.result;if(!l.objectStoreNames.contains(t))return l.close(),n(new Error(`Table ${t} not found in ${e}`));let h=l.transaction(t,"readonly").objectStore(t).get(r);h.onsuccess=()=>{l.close(),o(h.result);},h.onerror=()=>{l.close(),n(h.error);};},s.onerror=()=>{n(s.error);};});});var jr;exports.idb = void 0;var E=v(()=>{a();L();jr=ke(),exports.idb={db:{},table:{},data:{}};jr?(async()=>(Object.defineProperty(exports.idb,"db",{value:{},writable:true,configurable:true}),Object.defineProperty(exports.idb,"table",{value:{},writable:true,configurable:true}),Object.defineProperty(exports.idb,"data",{value:{},writable:true,configurable:true}),Object.defineProperty(globalThis,"idbases",{value:[],writable:true,configurable:true,enumerable:false}),await Promise.all([Promise.resolve().then(()=>(xt(),xr)),Promise.resolve().then(()=>(St(),Sr)),Promise.resolve().then(()=>(wt(),wr)),Promise.resolve().then(()=>(Et(),Er)),Promise.resolve().then(()=>(Tt(),Tr)),Promise.resolve().then(()=>(Pt(),Pr)),Promise.resolve().then(()=>(_t(),_r)),Promise.resolve().then(()=>(kt(),kr)),Promise.resolve().then(()=>(Ot(),Or)),Promise.resolve().then(()=>(qt(),qr)),Promise.resolve().then(()=>(Mt(),Mr)),Promise.resolve().then(()=>(Ct(),Cr)),Promise.resolve().then(()=>($t(),$r))]),Object.preventExtensions(exports.idb),Object.seal(exports.idb),Object.freeze(exports.idb)))():(exports.idb._disabled=true,exports.idb._warning="IndexedDB is not available in this environment (Node.js/Deno). Use store or session for persistence.",console.warn("Memorio IDB: IndexedDB is not available in this environment. Use store or session for data persistence."));});var Jr={};function Rr(){let e=globalThis;return typeof e.document<"u"&&typeof e.document.createElement=="function"}function Ir(e){let t=globalThis;return t.__memorioSqlJsScript===e?Promise.resolve():(Re||(Re=new Promise((r,o)=>{if(t.initSqlJs&&typeof t.initSqlJs=="function"){t.__memorioSqlJsScript=e,r();return}if(!Rr()){o(new Error("memorio sqlite: no document available to load sql.js"));return}let n=t.document.createElement("script");n.src=e,n.async=true,n.onload=()=>{t.__memorioSqlJsScript=e,r();},n.onerror=()=>o(new Error(`memorio sqlite: failed to load sql.js from ${e}`)),t.document.head.appendChild(n);})),Re)}var ue,me,jt,Dr,Ar,Re,Lr,Dt=v(()=>{a();P();L();S();ue=null,me=null,jt="https://cdn.jsdelivr.net/npm/sql.js/dist/sql-wasm-browser.js",Dr=jt.replace(/sql-wasm-browser\.js$/,""),Ar=e=>(globalThis.sqliteWasmBase||Dr)+e,Re=null;Lr=async()=>{let e=globalThis;return typeof e.initSqlJs=="function"?e.initSqlJs:(await Ir(jt),e.initSqlJs||e)};exports.sqlite.db.support=()=>te();exports.sqlite.db.getSQL=async()=>{if(me)return me;if(ue)return ue;let e=globalThis,t=e.sqliteConfig||{},r=(async()=>{if(typeof t.loader=="function")return await t.loader();let o=await Lr(),s=await(typeof o=="function"?o:o&&(o.default||o))({locateFile:t.locateFile||Ar});return e.sqliteVersion=s?.version||"sql.js",c("Memorio SQLite: sql.js engine loaded"),s})();ue=r;try{return me=await r,me}catch(o){try{exports.sqlite._disabled=!0;}catch{}try{exports.sqlite._warning='Memorio SQLite: sql.js could not be loaded. Install sql.js (npm i sql.js) and configure a loader via sqlite.config({ loader: () => import("sql.js") }).';}catch{}throw console.warn("Memorio SQLite: failed to load sql.js",o),o}finally{ue=null;}};exports.sqlite.db.version=()=>globalThis.sqliteVersion||null;});function Nr(){let e=j.sqliteConfig||{};return e.namespace?`ns:${e.namespace}`:"default"}function Ie(e){return `memorio:sqlite:db:${Nr()}:${e}`}function Br(e){let t=e instanceof Uint8Array?e:new Uint8Array(e),r="",o=t.byteLength;for(let n=0;n<o;n++)r+=String.fromCharCode(t[n]);return typeof btoa=="function"?btoa(r):typeof Buffer<"u"?Buffer.from(t).toString("base64"):""}function Ur(e){if(typeof Buffer<"u")return new Uint8Array(Buffer.from(e,"base64"));if(typeof atob!="function")throw new Error("memorio sqlite: no base64 decoder available");let t=atob(e),r=t.length,o=new Uint8Array(r);for(let n=0;n<r;n++)o[n]=t.charCodeAt(n);return o}function de(e){return new Promise(t=>{let r=j.__sqliteDbs&&j.__sqliteDbs[e];if(!r||typeof r.export!="function"){t(false);return}try{let o=r.export();exports.store.set(Ie(e),Br(o)),c(`Memorio SQLite: persisted '${e}' to store`),t(!0);}catch(o){console.warn("Memorio SQLite: persist snapshot failed",o),t(false);}})}function Le(e){let t=exports.store.get(Ie(e));if(!t)return null;try{return Ur(t)}catch{return null}}function Vr(e){exports.store.remove(Ie(e));}function Rt(e,t){if(!(!t||typeof t.updateHook!="function")){At[e]=true;try{t.updateHook(()=>{Q[e]&&clearTimeout(Q[e]),Q[e]=setTimeout(()=>{Q[e]=null,de(e);},250);});}catch(r){console.warn("Memorio SQLite: could not attach updateHook",r);}}}var j,At,Q,It=v(()=>{a();P();F();S();j=globalThis,At={},Q={};exports.sqlite.db.persist=async(e="memorio")=>de(e);exports.sqlite.db.download=async(e="memorio",t=`${e}.sqlite`)=>{let r=globalThis;if(!(r.__sqliteDbs&&r.__sqliteDbs[e]))return console.warn(`Memorio SQLite: cannot download '${e}' \u2014 database not found. Create it with sqlite.db.create('${e}').`),false;let n;try{n=await exports.sqlite.db.export(e);}catch(y){return console.warn("Memorio SQLite: export failed during download",y),false}if(!n)return false;if(typeof r.document>"u"||typeof r.Blob>"u")return console.warn("Memorio SQLite: sqlite.db.download() requires a browser environment."),false;let s=r.URL||r.webkitURL;if(!s||typeof s.createObjectURL!="function")return false;let i=s.createObjectURL(new Blob([n],{type:"application/x-sqlite3"})),l=r.document.createElement("a");return l.style.display="none",l.href=i,l.download=t,r.document.body.appendChild(l),l.click(),setTimeout(()=>{try{s.revokeObjectURL(i);}catch{}l.remove();},1e3),true};exports.sqlite.db.close=async(e="memorio")=>{let t=j.__sqliteDbs&&j.__sqliteDbs[e];if(t&&typeof t.close=="function"){try{await de(e);}catch{}try{t.close();}catch(r){console.warn("Memorio SQLite: close failed",r);}}if(j.__sqliteDbs&&delete j.__sqliteDbs[e],j.sqlbases){let r=j.sqlbases.findIndex(o=>o&&o.name===e);r>-1&&j.sqlbases.splice(r,1);}delete At[e],Q[e]&&(clearTimeout(Q[e]),Q[e]=null),Vr(e);};exports.sqlite.db.loadSnapshot=Le;exports.sqlite.db.saveSnapshot=de;});var Hr={};var Lt=v(()=>{a();P();S();It();exports.sqlite.db.create=async(e="memorio",t={})=>{let r=await exports.sqlite.db.getSQL(),o=globalThis,n=!!(t&&t.persistence)||!!(o.sqliteConfig&&o.sqliteConfig.persistence),s;if(n&&!t.data){let h=Le(e);h&&(s=h);}let i=t&&t.data||s,l;i&&typeof i.byteLength=="number"?(l=new r.Database(i),c(`Memorio SQLite: database '${e}' opened (persistence=${n})`)):(l=new r.Database,c(`Memorio SQLite: database '${e}' created (persistence=${n})`));let y={...t,persistence:n};o.__sqliteDbs||(o.__sqliteDbs={}),o.__sqliteDbs[e]=l,o.sqlbases||(o.sqlbases=[]);let g=o.sqlbases.findIndex(h=>h&&h.name===e);return g>-1?o.sqlbases[g]={name:e,db:l,persistence:y.persistence}:o.sqlbases.push({name:e,db:l,persistence:y.persistence}),n&&Rt(e,l),l};});var zr={};var Jt=v(()=>{a();P();exports.sqlite.db.get=(e="memorio")=>{let t=globalThis.__sqliteDbs;if(!t||!t[e])throw new Error(`SQLite database '${e}' does not exist. Create it with sqlite.db.create('${e}').`);return t[e]};});var Qr={};var Nt=v(()=>{a();P();S();exports.sqlite.db.delete=e=>{let t=globalThis.__sqliteDbs;if(!t||!t[e])return false;try{t[e].close();}catch{}delete t[e];let r=globalThis;return r.sqlbases&&(r.sqlbases=r.sqlbases.filter(o=>o&&o.name!==e)),c(`Memorio SQLite: database '${e}' deleted`),true};});var Kr={};var Bt=v(()=>{a();P();exports.sqlite.db.list=()=>{let e=globalThis.__sqliteDbs;return e?Object.keys(e):[]};});var Wr={};var Ut=v(()=>{a();P();exports.sqlite.db.size=async e=>{let t=globalThis.__sqliteDbs;if(!t)return 0;let r=n=>n&&(n.byteLength||n.length)||0;if(e){let n=exports.sqlite.db.get(e);return r(n.export())}let o=0;for(let n of Object.keys(t))try{o+=r(t[n].export());}catch{}return o};});var Fr={};var Vt=v(()=>{a();P();exports.sqlite.db.export=async(e="memorio")=>exports.sqlite.db.get(e).export();});var Gr={};var Ht=v(()=>{a();P();exports.sqlite.db.import=async(e,t)=>exports.sqlite.db.create(e,{data:t});});var Yr={};var zt=v(()=>{a();P();S();exports.sqlite.query.run=async(e="memorio",t,r=[])=>{let o=exports.sqlite.db.get(e);return c(`Memorio SQLite: run -> ${t}`),o.run(t,r),o.getRowsModified()};});var Xr={};var Qt=v(()=>{a();P();exports.sqlite.query.select=async(e="memorio",t,r=[])=>{let n=exports.sqlite.db.get(e).prepare(t,r),s=[];try{for(;n.step();)s.push(n.getAsObject());}finally{try{n.free();}catch{}}return s};});var Zr={};var Kt=v(()=>{a();P();exports.sqlite.data.set=async(e="memorio",t,r=[])=>exports.sqlite.query.run(e,t,r);});var eo={};var Wt=v(()=>{a();P();exports.sqlite.data.get=async(e="memorio",t,r=[])=>{let o=await exports.sqlite.query.select(e,t,r);return o.length?o[0]:null};});var to;exports.sqlite = void 0;var P=v(()=>{a();L();to=te(),exports.sqlite={db:{},query:{},data:{}};exports.sqlite.config=e=>{let t=globalThis;return t.sqliteConfig={...t.sqliteConfig,...e},e&&e.wasmUrl&&(t.sqliteWasmBase=e.wasmUrl.endsWith("/")?e.wasmUrl:e.wasmUrl+"/"),exports.sqlite};Object.defineProperty(exports.sqlite,"ready",{enumerable:false,configurable:false,get:()=>{let e=globalThis;return e.sqliteReady||(e.sqliteReady=typeof exports.sqlite.db.getSQL=="function"?exports.sqlite.db.getSQL().then(()=>{}).catch(()=>{}):Promise.resolve()),e.sqliteReady}});to?(async()=>(Object.defineProperty(exports.sqlite,"db",{value:{},writable:false,configurable:true,enumerable:true}),Object.defineProperty(exports.sqlite,"query",{value:{},writable:false,configurable:true,enumerable:true}),Object.defineProperty(exports.sqlite,"data",{value:{},writable:false,configurable:true,enumerable:true}),Object.defineProperty(globalThis,"sqlbases",{value:[],writable:true,configurable:true,enumerable:false}),await Promise.all([Promise.resolve().then(()=>(Dt(),Jr)),Promise.resolve().then(()=>(Lt(),Hr)),Promise.resolve().then(()=>(Jt(),zr)),Promise.resolve().then(()=>(Nt(),Qr)),Promise.resolve().then(()=>(Bt(),Kr)),Promise.resolve().then(()=>(Ut(),Wr)),Promise.resolve().then(()=>(Vt(),Fr)),Promise.resolve().then(()=>(Ht(),Gr)),Promise.resolve().then(()=>(zt(),Yr)),Promise.resolve().then(()=>(Qt(),Xr)),Promise.resolve().then(()=>(Kt(),Zr)),Promise.resolve().then(()=>(Wt(),eo))])))():(globalThis.sqliteDisabled=true,globalThis.sqliteWarning='SQLite (sql.js) is not available in this environment. It requires a browser with WebAssembly support. Install the optional "sql.js" package to enable it.',exports.sqlite._disabled=true,exports.sqlite._warning=globalThis.sqliteWarning,console.warn("Memorio SQLite: sql.js is not available in this environment (requires browser + WebAssembly). Use store or session for persistence."));});a();a();M();S();a();var w={set:(e,t={})=>{globalThis.dispatchEvent(new CustomEvent(String(e),t));},listen:(e,t=null,r)=>{if(globalThis.events?.[e])return;let o=t?n=>{let s=n;return globalThis.queueMicrotask?globalThis.queueMicrotask(()=>t(s)):Promise.resolve().then(()=>t(s))}:void 0;o&&globalThis.addEventListener(e,o),o&&(globalThis.events[e]=o);},remove:e=>{let t=globalThis.events?.[e];t&&(globalThis.removeEventListener(e,t),delete globalThis.events[e]);}};a();S();var W=new Map,mt=(e,t,r)=>{let o=[];if(t.type&&t.type!=="any"){let n=Array.isArray(e)?"array":typeof e;if(n!==t.type)return o.push(`${r}: expected ${t.type}, got ${n}`),{valid:false,errors:o}}if(t.enum&&!t.enum.includes(e)&&o.push(`${r}: value must be one of [${t.enum.map(String).join(", ")}]`),t.validator){let n=t.validator(e);n!==true&&o.push(`${r}: ${typeof n=="string"?n:"validation failed"}`);}if(typeof e=="number"&&(t.min!==void 0&&e<t.min&&o.push(`${r}: value ${e} is less than minimum ${t.min}`),t.max!==void 0&&e>t.max&&o.push(`${r}: value ${e} exceeds maximum ${t.max}`)),typeof e=="string"&&(t.min!==void 0&&e.length<t.min&&o.push(`${r}: string length ${e.length} is less than minimum ${t.min}`),t.max!==void 0&&e.length>t.max&&o.push(`${r}: string length ${e.length} exceeds maximum ${t.max}`),t.pattern&&!t.pattern.test(e)&&o.push(`${r}: string does not match required pattern`)),t.type==="object"&&e&&typeof e=="object"&&!Array.isArray(e)){if(t.required)for(let n of t.required)n in e||o.push(`${r}: missing required property '${n}'`);if(t.properties){for(let[n,s]of Object.entries(t.properties))if(n in e&&e[n]!==void 0){let i=mt(e[n],s,`${r}.${n}`);i.valid||o.push(...i.errors||[]);}}}return o.length===0?{valid:true}:{valid:false,errors:o}},dt=(e,t)=>{let r=W.get(e);return r?mt(t,r,e):{valid:true}},ft=(e,t)=>{typeof t=="function"?W.set(e,{validator:t}):W.set(e,t),c(`[memorio schema] Registered schema for '${e}'`);},pt=e=>W.delete(e),yt=()=>Array.from(W.keys()),dr=e=>W.get(e),I={register:ft,validate:dt,unregister:pt,list:yt,get:dr};var ae=Symbol("memorio.target"),gt=new WeakMap,A=(e,t=null)=>{if(e===null||typeof e!="object")return e;if(e[ae]!==void 0)return A(e[ae],t);if(t){if(t.has(e))return e;t.add(e);}let r=e.constructor?.name;if(r!=="Object"&&r!=="Array")return e;let o=Array.isArray(e)?[]:{};for(let n of Reflect.ownKeys(e))o[n]=A(e[n],t);return o},bt=(e,t,r=".")=>t.concat(e).join(r),ht=(e,t,r=[])=>{let o=n=>{try{w.set(n,{detail:{name:n}});}catch{}};return new Proxy(e,{get(n,s){if(s==="__path")return r.length>0?"state."+r.join("."):"state";if(s===ae||n[ae]!==void 0)return n;if(s==="list")return c('Some state could be hidden when you use "state.list". Use "state" to see the complete list '),JSON.parse(JSON.stringify(n));if(typeof s=="string"){let i=r.length>0?"state."+r.concat(s).join("."):"state."+s;exports.internal.lastAccessedPath=i,exports.internal.tracking&&exports.internal.trackedPaths.add(i);}if(s==="_lastPath")return exports.internal.lastAccessedPath;if(s==="remove")return i=>(delete n[i],true);if(s==="removeAll")return ()=>{try{for(let i in n)typeof n[i]!="function"&&!["list","remove","removeAll","lock","unlock"].includes(i)&&delete n[i];}catch(i){console.error(i);}};if(Object.isFrozen(n[s]))return n[s];if(s==="lock"||s==="unlock"){let i=Reflect.get(n,s);if(i)return i}try{let i=Reflect.get(n,s);if(i&&typeof i=="object"&&["Array","Object"].includes(i.constructor.name)){let l=gt.get(i);return l||(l=ht(i,t,r.concat(s)),gt.set(i,l)),l}return i}catch(i){console.error("Error: ",i);return}},set(n,s,i){if(exports.internal.locked)return console.error("Error: state is locked. Use state.unlock() to enable modifications."),false;if(ut.includes(s))return console.error("key "+s+" is protected"),false;if(n[s]&&typeof n[s]=="object"&&Object.isFrozen(n[s]))return console.error(`Error: state '${s}' is locked`),false;if(n[s]&&typeof n[s]=="object"&&n[s].__locked)return console.error(`Error: state '${s}' is locked. Use state.${s}.unlock() to enable modifications.`),false;try{let l=bt(s,r),y=A(i),g=I.validate(l,y);if(!g.valid)return exports.internal.debug&&console.error(`[memorio schema] Validation failed for '${l}':`,g.errors),c(`[memorio schema] Validation failed for '${l}': `+(g.errors?.join(", ")||"unknown error")),!1;if(t({action:"set",path:l,target:n,newValue:y,previousValue:Reflect.get(n,s)}),o("state."+l),Reflect.set(n,s,y),exports.internal.bumpStateVersion(),n[s]&&typeof n[s]=="object"){let h=n[s];if(h&&typeof h=="object")try{Object.defineProperty(h,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!1}),Object.defineProperty(h,"lock",{writable:!1,enumerable:!1,configurable:!1,value:()=>{Object.defineProperty(h,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!0}),c(`State '${s}' is now locked.`);}}),Object.defineProperty(h,"unlock",{writable:!1,enumerable:!1,configurable:!1,value:()=>{Object.defineProperty(h,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!1}),c(`State '${s}' is now unlocked.`);}});}catch{}}return !0}catch(l){return console.error("Error in set trap:",l),false}},deleteProperty(n,s){try{let i=bt(s,r),l=Reflect.get(n,s);return t({action:"delete",path:i,target:n,previousValue:l}),Reflect.deleteProperty(n,s)}catch(i){return console.error("Error in deleteProperty trap:",i),false}},ownKeys(n){return Reflect.ownKeys(n)},getOwnPropertyDescriptor(n,s){return Reflect.getOwnPropertyDescriptor(n,s)}})},x=ht({},e=>{exports.internal.historyEnabled&&exports.internal.recordMutation({path:e.path,action:e.action,newValue:e.newValue,previousValue:e.previousValue,timestamp:Date.now()});});x.lock=()=>{exports.internal.locked=true,c("State is now locked. All modifications are blocked.");};x.unlock=()=>{exports.internal.locked=false,c("State is now unlocked. Modifications are allowed.");};F();a();L();M();S();var q=Pe(),De=new Map;function z(){let t=exports.internal.currentContext||""||"default";return De.has(t)||De.set(t,new Map),De.get(t)}var H=q!==null;function V(){let e=exports.internal.currentContext||"";return e?`${e}-`:"memorio_session_"}function Ae(e){return !e||typeof e!="string"?(console.warn("[memorio session] key is empty or not a string - operation aborted"),""):e.length>512?(console.warn(`[memorio session] key "${e}" exceeds 512 chars - operation aborted`),""):V()+e}function br(e){let t=H?q.getItem(e):z().get(e);return t&&JSON.parse(t)}function hr(e,t){let r=JSON.stringify(t);H?q.setItem(e,r):z().set(e,r);}function vr(e){if(H){if(q.getItem(e))return q.removeItem(e),true}else if(z().has(e))return z().delete(e),true;return false}var C=new Proxy({},{});Object.defineProperty(globalThis,"session",{value:C,enumerable:false,configurable:true});Object.defineProperties(C,{get:{value:e=>{if(!e)return console.warn("[memorio session] session.get() called with empty or null key - returning null"),null;try{return br(Ae(e))}catch(t){exports.message(`Error parsing session item '${e}':${t}`);}return null}},set:{value:(e,t)=>{if(!e)return console.warn("[memorio session] session.set() called with empty or null key - write aborted"),false;let r=Ae(e);if(!r)return false;if(typeof t=="function")return console.warn("[memorio session] functions are not storable - write aborted for key: "+e),exports.message("It's not secure to session functions."),false;try{hr(r,t);}catch(o){return exports.message(`Error setting session item '${e}': ${o}`),false}return true}},remove:{value:e=>{if(!e)return console.warn("[memorio session] session.remove() called with empty or null key - returning false"),false;let t=Ae(e);if(!t)return false;try{return vr(t)}catch(r){exports.message(`Error removing session item '${e}': ${r}`);}return false}},delete:{value:e=>C.remove(e)},removeAll:{value:()=>{if(H){let e=[];for(let t=0;t<q.length;t++){let r=q.key(t);r?.startsWith(V())&&e.push(r);}e.forEach(t=>q.removeItem(t));}else z().clear();return true}},clearAll:{value:()=>(C.removeAll(),true)},quota:{value:async()=>[0,0]},size:{value:()=>{let e=0;return H?Object.keys(q).forEach(t=>{if(t.startsWith(V())){let r=q.getItem(t);r&&(e+=r.length);}}):z().forEach(t=>{e+=t.length;}),e}},isPersistent:{get:()=>H},list:{value:()=>{let e={};try{if(H)for(let t=0;t<q.length;t++){let r=q.key(t);if(r?.startsWith(V())){let o=r.replace(V(),""),n=q.getItem(r);if(n!==null)try{e[o]=JSON.parse(n);}catch{e[o]=n;}}}else z().forEach((t,r)=>{if(r.startsWith(V())){let o=r.replace(V(),"");try{e[o]=JSON.parse(t);}catch{e[o]=t;}}});}catch(t){exports.message(`Error listing session items: ${t}`);}return e}}});Object.freeze(C);a();var $={},ce=new Proxy({},{get(e,t){let r=t;return r==="get"?o=>$[o]:r==="set"?(o,n)=>{$[o]=n;}:r==="remove"?o=>(delete $[o],true):r==="removeAll"?()=>(Object.keys($).forEach(o=>delete $[o]),true):r==="clear"?()=>(Object.keys($).forEach(o=>delete $[o]),true):r==="list"?()=>({...$}):$[r]},set(e,t,r){return $[t]=r,true},deleteProperty(e,t){return delete $[t],true}});Object.freeze(ce);E();P();a();S();var ro=(e,t=null,r=true)=>{let o=s=>typeof s=="string"?s:s&&typeof s=="object"&&s.__path?s.__path:null,n=o(e);if(!e&&!t){console.error("Observer Error: You need to setup observer correctly, Some parameters are missed!");return}if(!e&&t){console.error("Observer Error: You need to declare what state need to be monitored as string like 'state.test'.");return}if(n){let s=n.split(".");if(s[0]!=="state"&&s[0]!=="store"){console.error(`Observer Error: You need to declare 'state.' or 'store.'. The '${n}' string is incorrect!`);return}}if(e&&!t){let s=o(e);if(!s)return;globalThis.observer?.list?.[s]&&w.remove(s),c(`called: ${s}`);return}if(e&&t){let s=o(e);if(!s)return;if(typeof e!="string"&&!(e&&typeof e=="object")){console.error("Observer Error: name of state need to be a 'string' like 'state.test' or a direct state value");return}let i=Array.isArray(t)?t:[t];globalThis.observer?.list?.[s]&&w.remove(s),i.forEach(y=>{typeof y=="function"&&w.listen(s,y,r);});return}},fe=ro;Object.defineProperties(fe,{list:{get:()=>globalThis.events},remove:{value:e=>{e&&(w.remove(e),delete globalThis.events[e]);}},removeAll:{get:()=>{let e=globalThis.observer,t=e?.list;return t&&Object.keys(t).forEach(r=>{e?.remove?.(r);}),true}},has:{value:e=>!!globalThis.observer?.list?.[e]}});a();S();M();globalThis.useObserver||(globalThis.useObserver=null);Object.defineProperty(globalThis,"useObserver",{value:null,writable:true,enumerable:false,configurable:true});var pe=((e,t=[])=>{if(!t||typeof e!="function")return ()=>{};let r=[],o=Array.isArray(t)&&!t.__path?t:[t];try{return o.forEach(n=>{let s="";if(typeof n=="function"){let i=exports.propertyName(n);i&&(s=i);}else typeof n=="object"&&n!==null&&(s=n.__path||(typeof n.toString=="function"&&n.toString()!=="[object Object]"?n.toString():""));if(s){s=s.replace(/^(\(\)\s*=>\s*)/,"").replace(/^globalThis\./,"").replace(/^state\./,"");let i=s.startsWith("store.")||s.startsWith("state.")?s:"state."+s;w.listen(i,()=>e()),r.push(i);}else {exports.internal.clearTrackedPaths(),exports.internal.tracking=!0;try{e();}catch{}exports.internal.tracking=!1,exports.internal.trackedPaths.forEach(i=>{r.includes(i)||(c(`useObserver: [Auto-Discovery] -> "${i}"`),w.listen(i,()=>e()),r.push(i));});}}),r.length>0?c(`useObserver: Monitoring ${r.length} paths.`):console.warn("useObserver: No paths resolved for monitoring. Check your dependencies!"),()=>{r.forEach(n=>{typeof w.remove=="function"&&(w.remove(n),c(`useObserver: Stopped monitoring "${n}"`));});}}catch(n){return c(`useObserver Error: ${n}`),()=>{}}});globalThis.useObserver=pe;Object.freeze(globalThis.useObserver);S();a();M();function oo(){return exports.internal.debug===true}function Ft(){if(!globalThis.store)return {};let e={},t=globalThis.store;if(typeof t.list=="function")try{return t.list()}catch{}if(typeof t.get=="function"){for(let r of Object.keys(t))if(!["get","set","remove","delete","removeAll","clearAll","size","isPersistent","list"].includes(r))try{let o=t.get(r);o!=null&&(e[r]=o);}catch{}}return e}function Gt(){if(!globalThis.session)return {};let e={},t=globalThis.session;if(typeof t.list=="function")try{return t.list()}catch{}if(typeof t.get=="function"){for(let r of Object.keys(t))if(!["get","set","remove","delete","removeAll","clearAll","size","isPersistent","list"].includes(r))try{let o=t.get(r);o!=null&&(e[r]=o);}catch{}}return e}var no=()=>{if(oo()){if(globalThis.state){let e=globalThis.state.list,t;typeof e=="function"?t=e():typeof e=="object"&&e!==null?t=e:t=globalThis.state,console.table(t);}if(globalThis.store&&console.table(Ft()),globalThis.session&&console.table(Gt()),globalThis.cache){let e=globalThis.cache.list,t;typeof e=="function"?t=e():typeof e=="object"&&e!==null?t=e:t=globalThis.cache,console.table(t);}}},so=()=>{let e=t=>{if(!t)return 0;if(typeof t.list=="function")try{let r=t.list();return Object.keys(r).length}catch{}return Object.keys(t).length};return {stateKeys:e(globalThis.state),storeKeys:e(globalThis.store),sessionKeys:e(globalThis.session),cacheKeys:e(globalThis.cache),idbDatabases:0,sqliteDbCount:typeof globalThis.sqlite?.db?.list=="function"?globalThis.sqlite.db.list().length:(globalThis.sqlbases||[]).length,lastUpdate:new Date().toISOString()}},ne=e=>{globalThis[e]&&typeof globalThis[e].clear=="function"?globalThis[e].clear():console.error(`Module ${e} not found or does not support clear()`);},io=()=>{ne("state"),ne("store"),ne("session"),ne("cache");},ao=()=>{let e=()=>{if(globalThis.state)try{return typeof globalThis.state.list=="function"?globalThis.state.list():globalThis.state}catch{return}},t=()=>Ft(),r=()=>Gt(),o=()=>{if(globalThis.cache)try{return typeof globalThis.cache.list=="function"?globalThis.cache.list():globalThis.cache}catch{return}},n={state:e(),store:t(),session:r(),cache:o(),exportedAt:new Date().toISOString()};return JSON.stringify(n,null,2)},lo=e=>{try{let t=JSON.parse(e);t.state&&Object.entries(t.state).forEach(([r,o])=>{globalThis.state&&r!=="list"&&r!=="remove"&&r!=="removeAll"&&(globalThis.state[r]=o);}),t.store&&globalThis.store&&typeof globalThis.store.set=="function"&&Object.entries(t.store).forEach(([r,o])=>{globalThis.store.set(r,o);}),t.session&&globalThis.session&&typeof globalThis.session.set=="function"&&Object.entries(t.session).forEach(([r,o])=>{globalThis.session.set(r,o);}),t.cache&&globalThis.cache&&Object.entries(t.cache).forEach(([r,o])=>{globalThis.cache&&r!=="get"&&r!=="set"&&r!=="remove"&&r!=="clear"&&(globalThis.cache[r]=o);});}catch(t){console.error("%c\u2717 Import failed:","color: #F44336",t);}},co=(e,t)=>{if(!globalThis[e]){console.error(`Module ${e} not found`);return}let r=globalThis[e],o=r[t];if(console.debug(`\u{1F441} Watching ${e}.${t} (initial: ${JSON.stringify(o)})`),e==="state"&&globalThis.memorio?.dispatch){let n=s=>{s.detail?.name?.includes(t)&&console.debug(`\u{1F441} Change: ${e}.${t} =`,s.detail.value);};r.addEventListener?.("memorio-change",n);}},uo=()=>{console.debug(`
6
6
  \u{1F9E0} Memorio DevTools Help
7
7
 
8
8
  Available commands:
@@ -20,10 +20,11 @@ Shortcuts:
20
20
  store - globalThis.store
21
21
  session - globalThis.session
22
22
  cache - globalThis.cache
23
- `);},we={inspect:Qt,stats:Zt,clear:W,clearAll:er,exportData:tr,importData:rr,watch:or,help:nr};a();O();v();var sr={enabled:true,logToConsole:true,modules:["state","store","session","cache","idb"],maxEntries:1e3};function ir(){return exports.internal.debug===true}var D={...sr},A=[],ar=e=>{D={...D,...e};},lr=()=>{D.enabled=true;},cr=()=>{D.enabled=false;},gt=e=>D.enabled&&D.modules.includes(e),ur=(e,t,r,n,o)=>{if(!gt(e))return;let s={timestamp:new Date().toISOString(),module:e,action:t,path:r,value:n,previousValue:o};if(A.push(s),A.length>D.maxEntries&&A.shift(),D.logToConsole&&ir()){let i=`[Memorio:${e.toUpperCase()}]`,d=mr(e);c(`%c${i}%c ${t} ${r},
24
- color: ${d}; font-weight: bold,
25
- color: inherit`),n!==void 0&&c(` \u2192 value:${n}`),o!==void 0&&c(` \u2190 previous:${o}`);}D.customHandler&&D.customHandler(s);},mr=e=>({state:"#4CAF50",store:"#2196F3",session:"#FF9800",cache:"#9C27B0",idb:"#F44336"})[e]||"#888888",dr=()=>[...A],fr=()=>{A.length=0;},pr=()=>{let e={total:A.length,state:0,store:0,session:0,cache:0,idb:0,set:0,get:0,delete:0,clear:0};for(let t of A)if(t){let r=t.module,n=t.action;r&&typeof e[r]=="number"&&e[r]++,n&&typeof e[n]=="number"&&e[n]++;}return e},gr=()=>JSON.stringify(A,null,2),Ee={configure:ar,enable:lr,disable:cr,isEnabled:gt,log:ur,getHistory:dr,clearHistory:fr,getStats:pr,exportLogs:gr};O();J();a();J();O();var te={version:"4.7.3"};w();v();a();function Te(){return b}a();O();v();function yt(e){if(e===null||typeof e!="object")return e;let t=e.constructor?.name;if(t!=="Object"&&t!=="Array")return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}var Pe=()=>yt(R(b)),Oe=e=>{let t=[],r=(n,o,s)=>{let i=n?Object.keys(n):[],d=o?Object.keys(o):[];for(let f of d){let g=s?`${s}.${f}`:f,y=n?n[f]:void 0,T=o[f];y!==T&&(typeof y!==typeof T||y===void 0?t.push({path:g,oldValue:y,newValue:T}):y&&typeof y=="object"?r(y,T,g):y!==T&&t.push({path:g,oldValue:y,newValue:T}));}for(let f of i)if(!(f in(o||{}))){let g=s?`${s}.${f}`:f;t.push({path:g,oldValue:n[f],newValue:void 0});}};return r(e,R(b),""),t},Ce=(e=true)=>{exports.internal.historyEnabled=e,c(`[memorio history] Tracking ${e?"enabled":"disabled"}`);};var $e=()=>[...exports.internal.mutations],_e=()=>exports.internal.canUndo(),De=()=>exports.internal.canRedo(),Re=()=>{if(!exports.internal.historyEnabled){c("[memorio history] History is not enabled");return}let e=exports.internal.popUndo();if(e)return br(e),c(`[memorio history] Undid: ${e.action} ${e.path}`),e},Me=()=>{if(!exports.internal.historyEnabled){c("[memorio history] History is not enabled");return}let e=exports.internal.popRedo();if(e)return hr(e),c(`[memorio history] Redid: ${e.action} ${e.path}`),e};function br(e){let t=exports.internal.historyEnabled;exports.internal.historyEnabled=false;try{e.action==="set"?e.previousValue===void 0?bt(e.path):ke(e.path,e.previousValue):e.action==="delete"&&e.previousValue!==void 0&&ke(e.path,e.previousValue);}finally{exports.internal.historyEnabled=t;}}function hr(e){let t=exports.internal.historyEnabled;exports.internal.historyEnabled=false;try{e.action==="set"?ke(e.path,e.newValue):e.action==="delete"&&bt(e.path);}finally{exports.internal.historyEnabled=t;}}function ke(e,t){let r=e.split("."),n=b;for(let o=0;o<r.length-1;o++){let s=r[o];n[s]===void 0&&(n[s]={}),n=n[s];}n[r[r.length-1]]=t;}function bt(e){let t=e.split(".");if(t.length===1){b.remove(t[0]);return}let r=b;for(let n=0;n<t.length-1;n++){let o=t[n];if(r[o]===void 0)return;r=r[o];}delete r[t[t.length-1]];}var Ae=e=>{b.removeAll();for(let t of Object.keys(e))b[t]=yt(e[t]);exports.internal.clearHistory(),c("[memorio history] State rolled back to snapshot");},je=()=>{exports.internal.clearHistory(),c("[memorio history] History cleared");},Ie=()=>{exports.internal.clearRedo();};a();var Ne=()=>{let e=R(b);return Object.keys(e).filter(t=>!["list","remove","removeAll","lock","unlock"].includes(t))},Ve=e=>{if(!e||typeof e!="string")return false;let t=e.replace(/^state\./,"").split("."),r=b;for(let n of t){if(r==null)return false;r=r[n];}return r!==void 0},Be=e=>{let[t,r]=ht(e);return !t||r===void 0?"undefined":Array.isArray(r)?"array":typeof r},Le=e=>{let[t,r]=ht(e);if(!(!t||r===void 0))return vr(r)},He=()=>{let e=[],t=(r,n)=>{if(r===null||typeof r!="object"||Array.isArray(r))return;let o=Object.keys(r).filter(s=>!["list","remove","removeAll","lock","unlock"].includes(s));for(let s of o){let i=n?`${n}.${s}`:s,d=r[s],f=d!==void 0,g=f?Array.isArray(d)?"array":typeof d:"undefined";e.push({path:i,type:g,defined:f}),f&&typeof d=="object"&&!Array.isArray(d)&&d.constructor?.name==="Object"&&t(d,i);}};return t(R(b),""),e};function ht(e){if(!e||typeof e!="string")return [false,void 0];let t=e.replace(/^state\./,"").split("."),r=b;for(let n of t){if(r==null)return [false,void 0];r=r[n];}return [r!==void 0,r]}function vr(e){if(e===null||typeof e!="object")return e;let t=e.constructor?.name;if(t!=="Object"&&t!=="Array")return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}a();w();var oe="__memorio_memory_index__",vt="__memorio_superseded__";function Ue(e){return e.startsWith(vt)?e:`${vt}${e}`}function xt(e){return e?Array.isArray(e)?e:[e]:[]}function xr(e,t){if(t.scope)return t.scope;let r=JSON.stringify(e).length;return r>1e6?"durable":("local")}function $(){return Date.now()}function ne(e){return e.ttl===null||e.ttl===void 0?false:$()-e.createdAt>e.ttl}function Sr(e,t){return e.status==="obsolete"||e.status==="superseded"||ne(e)?t.includeObsolete??false:!(t.type&&!(Array.isArray(t.type)?t.type:[t.type]).includes(e.type)||t.minConfidence!==void 0&&e.confidence<t.minConfidence)}function wr(e,t){return !(e.status!=="active"||ne(e)||t.tags&&!(Array.isArray(t.tags)?t.tags:[t.tags]).some(o=>e.tags.includes(o))||t.types&&!(Array.isArray(t.types)?t.types:[t.types]).includes(e.type)||t.minConfidence!==void 0&&e.confidence<t.minConfidence||t.scopes&&!t.scopes.includes(e.scope))}function Er(e){let t=($()-e.createdAt)/36e5,r=Math.max(.1,1/(1+t*.5)),n=e.confidence,o=1+e.tags.length*.1,s={decision:1.5,context:1.3,preference:1.2,task:1,fact:.8},i={hot:1.5,session:1.2,local:1,durable:.8};return r*n*o*s[e.type]*i[e.scope]}function wt(e,t){if(!t||typeof t!="string")return;let r=t.replace(/^state\./,"").split("."),n=e;for(let o of r){if(n==null)return;n=n[o];}return n}function Et(e,t,r){if(!t||typeof t!="string")return;let n=t.replace(/^state\./,"").split("."),o=e;for(let s=0;s<n.length-1;s++){let i=n[s];(o[i]===void 0||o[i]===null)&&(o[i]={}),o=o[i];}o[n[n.length-1]]=r;}async function H(e){let t=e.status==="superseded"?Ue(e.id||e.key):e.key,r=JSON.stringify(e);switch(e.scope){case "hot":Et(b,t,e.value);break;case "session":C.set(t,r);break;case "local":S.set(t,r);break;case "durable":await exports.idb.set("memories",t,r);break}await Tr(e.id||e.key,e.scope,e.status==="superseded");}async function Tt(e,t,r=false){let n=r?Ue(e):e,o;switch(t){case "hot":{let s=wt(b,n);return s===void 0?null:kt(e,s,t)}case "session":o=C.get(n);break;case "local":o=S.get(n);break;case "durable":o=await exports.idb.get("memories",n);break}if(!o)return null;try{let s=JSON.parse(o);return s.id=s.id||e,s}catch{return null}}function kt(e,t,r){return {id:e,key:e,value:t,type:"fact",confidence:1,scope:r,ttl:null,tags:[],status:"active",createdAt:$(),lastConfirmedAt:$(),supersededId:null}}async function St(e,t,r=false){let n=r?Ue(e):e;switch(t){case "hot":Et(b,n,void 0);break;case "session":C.remove(n);break;case "local":S.remove(n);break;case "durable":await exports.idb.deleteKey("memories",n);break}await kr(e,r);}async function G(){try{let e=S.get(oe);return e?JSON.parse(e):{}}catch{return {}}}async function Tr(e,t,r=false){let n=await G();n[e]={scope:t,superseded:r},S.set(oe,JSON.stringify(n));}async function kr(e,t=false){let r=await G(),n=r[e];n&&(t&&n.superseded||!t&&!n.superseded)&&delete r[e],S.set(oe,JSON.stringify(r));}async function re(){let e=await G(),t=[];for(let[r,n]of Object.entries(e)){let o=await Tt(r,n.scope,n.superseded);o&&(o.id=o.id||r,o.supersededId=o.supersededId??null,t.push(o));}return t}async function Pr(){let e=await re(),t=0;for(let r of e)ne(r)&&r.status==="active"&&(r.status="obsolete",await H(r),t++);return t}var se={async remember(e,t,r={}){let n=await this._getEntry(e);if(n&&n.status==="active"){let d=`${n.id}__v${Date.now()}`,f={...n,id:d,key:n.key,status:"superseded",supersededId:null,lastConfirmedAt:$()};await H(f);}let o=xr(t,r),s=xt(r.tags),i={id:r.id||e,key:e,value:t,type:r.type||"fact",confidence:r.confidence??1,scope:o,ttl:r.ttl??null,tags:s,source:r.source,status:"active",createdAt:$(),lastConfirmedAt:$(),supersededId:n?n.id:null};await H(i),h.set("memorio:memory:remembered",{key:e,scope:o,entryId:i.id});},async recall(e,t={}){let r=await this._getEntry(e);return !r||!Sr(r,t)?null:(r.lastConfirmedAt=$(),await H(r),h.set("memorio:memory:recalled",{key:e}),r.value)},async context(e={}){return (await re()).filter(o=>wr(o,e)).map(o=>({entry:o,score:Er(o)})).sort((o,s)=>s.score-o.score).slice(0,e.maxEntries??25).map(({entry:o})=>({key:o.key,value:o.value,type:o.type,confidence:o.confidence,scope:o.scope,tags:o.tags,age:$()-o.createdAt,accessCount:o.tags.length+1,lastAccessedAt:o.lastConfirmedAt}))},async forget(e){let t=await this._getEntry(e);t&&(await St(t.id||e,t.scope,t.status==="superseded"),h.set("memorio:memory:forgotten",{key:e}));},async update(e,t,r={}){let n=await this._getEntry(e);if(!n){await this.remember(e,t,r);return}let o=`${n.id}__v${$()}`,s={...n,id:o,key:n.key,status:"superseded",supersededId:null,lastConfirmedAt:$()};await H(s);let i={...n,value:t,lastConfirmedAt:$(),...r.scope?{scope:r.scope}:{},...r.ttl!==void 0?{ttl:r.ttl}:{},...r.type?{type:r.type}:{},...r.confidence!==void 0?{confidence:r.confidence}:{},...r.tags!==void 0?{tags:xt(r.tags)}:{},...r.source?{source:r.source}:{}};await H(i),h.set("memorio:memory:updated",{key:e,entryId:i.id});},async stats(){let e=await re(),t={hot:0,session:0,local:0,durable:0},r={},n=0;for(let o of e)t[o.scope]=(t[o.scope]||0)+1,ne(o)&&n++,r[o.type]=(r[o.type]||0)+1;return {total:e.length,byScope:t,byType:r,expired:n}},async forgetExpired(){return Pr()},async clear(){let e=await G();for(let[t,r]of Object.entries(e))await St(t,r.scope,r.superseded);S.remove(oe);},async _getEntry(e){let r=(await G())[e];if(!r){let n=wt(b,e);return n!==void 0?kt(e,n,"hot"):null}return Tt(e,r.scope,r.superseded)},async _loadAll(){return re()},async _save(e){await H(e);}};Object.defineProperty(globalThis,"memorio",{value:{setProps:()=>{},obj:{},array:[],dispatch:h,message:exports.message,devtools:we,logger:Ee,setDescription:()=>{}},writable:false,configurable:true,enumerable:false});Object.defineProperty(globalThis,"events",{value:{},writable:true,enumerable:false});typeof globalThis.addEventListener=="function"&&h.listen("memorio:memory:cleanup",async()=>se.forgetExpired?.());Object.defineProperty(memorio,"version",{writable:false,enumerable:false,value:te.version});Object.defineProperty(memorio,"debug",{get:()=>exports.internal.debug,set:e=>{exports.internal.debug=e;},enumerable:false});var Pt=q();Object.defineProperty(memorio,"_platform",{writable:false,enumerable:false,value:Pt.platform});Object.defineProperty(memorio,"_capabilities",{writable:false,enumerable:false,value:Pt});Object.defineProperty(memorio,"_sessionId",{writable:false,enumerable:false,value:X()});Qe();memorio.isBrowser=ae;memorio.isNode=le;memorio.isDeno=ce;memorio.isEdge=ue;memorio.getCapabilities=q;memorio.createContext=F;memorio.listContexts=ge;memorio.deleteContext=ye;memorio.isolate=e=>F(e);memorio.registerSchema=M.register;memorio.validate=M.validate;memorio.unregisterSchema=M.unregister;memorio.listSchemas=M.list;memorio.typed=Te;memorio.snapshot=Pe;memorio.diff=Oe;memorio.undo=Re;memorio.redo=Me;memorio.canUndo=_e;memorio.canRedo=De;memorio.rollback=Ae;memorio.trace=$e;memorio.enableHistory=Ce;memorio.clearHistory=je;memorio.clearRedo=Ie;memorio.stateKeys=Ne;memorio.pathExists=Ve;memorio.stateType=Be;memorio.stateGet=Le;memorio.stateSchema=He;memorio.memory=se;Object.defineProperty(globalThis,"state",{value:b,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"store",{value:S,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"session",{value:C,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"cache",{value:Q,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"idb",{value:exports.idb,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"observer",{value:Z,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"useObserver",{value:ee,writable:true,enumerable:false,configurable:true});Object.defineProperty(memorio,"dispatch",{value:h,writable:true,enumerable:false,configurable:true});Object.defineProperty(memorio,"setContext",{writable:false,enumerable:false,value:e=>be(e)});Object.defineProperty(memorio,"getContext",{writable:false,enumerable:false,value:()=>exports.internal.currentContext});Object.defineProperty(globalThis,"$state",{get:()=>globalThis.state,configurable:true});Object.defineProperty(globalThis,"$store",{get:()=>globalThis.store,configurable:true});Object.defineProperty(globalThis,"$session",{get:()=>globalThis.session,configurable:true});Object.defineProperty(globalThis,"$cache",{get:()=>globalThis.cache,configurable:true});memorio.help=function(){console.debug(`
26
- \u{1F9E0} Memorio ${te.version} - Help
23
+ sqlite - globalThis.sqlite (SQLite / sql.js, browser only)
24
+ `);},Je={inspect:no,stats:so,clear:ne,clearAll:io,exportData:ao,importData:lo,watch:co,help:uo};a();M();S();var mo={enabled:true,logToConsole:true,modules:["state","store","session","cache","idb"],maxEntries:1e3};function fo(){return exports.internal.debug===true}var D={...mo},J=[],po=e=>{D={...D,...e};},yo=()=>{D.enabled=true;},go=()=>{D.enabled=false;},Yt=e=>D.enabled&&D.modules.includes(e),bo=(e,t,r,o,n)=>{if(!Yt(e))return;let s={timestamp:new Date().toISOString(),module:e,action:t,path:r,value:o,previousValue:n};if(J.push(s),J.length>D.maxEntries&&J.shift(),D.logToConsole&&fo()){let i=`[Memorio:${e.toUpperCase()}]`,l=ho(e);c(`%c${i}%c ${t} ${r},
25
+ color: ${l}; font-weight: bold,
26
+ color: inherit`),o!==void 0&&c(` \u2192 value:${o}`),n!==void 0&&c(` \u2190 previous:${n}`);}D.customHandler&&D.customHandler(s);},ho=e=>({state:"#4CAF50",store:"#2196F3",session:"#FF9800",cache:"#9C27B0",idb:"#F44336"})[e]||"#888888",vo=()=>[...J],xo=()=>{J.length=0;},So=()=>{let e={total:J.length,state:0,store:0,session:0,cache:0,idb:0,set:0,get:0,delete:0,clear:0};for(let t of J)if(t){let r=t.module,o=t.action;r&&typeof e[r]=="number"&&e[r]++,o&&typeof e[o]=="number"&&e[o]++;}return e},wo=()=>JSON.stringify(J,null,2),Ne={configure:po,enable:yo,disable:go,isEnabled:Yt,log:bo,getHistory:vo,clearHistory:xo,getStats:So,exportLogs:wo};M();L();a();L();M();var ye={version:"4.8.0"};F();E();P();S();a();function Be(){return x}a();M();S();function Xt(e){if(e===null||typeof e!="object")return e;let t=e.constructor?.name;if(t!=="Object"&&t!=="Array")return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}var Ve=()=>Xt(A(x)),He=e=>{let t=[],r=(o,n,s)=>{let i=o?Object.keys(o):[],l=n?Object.keys(n):[];for(let y of l){let g=s?`${s}.${y}`:y,h=o?o[y]:void 0,k=n[y];h!==k&&(typeof h!==typeof k||h===void 0?t.push({path:g,oldValue:h,newValue:k}):h&&typeof h=="object"?r(h,k,g):h!==k&&t.push({path:g,oldValue:h,newValue:k}));}for(let y of i)if(!(y in(n||{}))){let g=s?`${s}.${y}`:y;t.push({path:g,oldValue:o[y],newValue:void 0});}};return r(e,A(x),""),t},ze=(e=true)=>{exports.internal.historyEnabled=e,c(`[memorio history] Tracking ${e?"enabled":"disabled"}`);};var Qe=()=>[...exports.internal.mutations],Ke=()=>exports.internal.canUndo(),We=()=>exports.internal.canRedo(),Fe=()=>{if(!exports.internal.historyEnabled){c("[memorio history] History is not enabled");return}let e=exports.internal.popUndo();if(e)return To(e),c(`[memorio history] Undid: ${e.action} ${e.path}`),e},Ge=()=>{if(!exports.internal.historyEnabled){c("[memorio history] History is not enabled");return}let e=exports.internal.popRedo();if(e)return Po(e),c(`[memorio history] Redid: ${e.action} ${e.path}`),e};function To(e){let t=exports.internal.historyEnabled;exports.internal.historyEnabled=false;try{e.action==="set"?e.previousValue===void 0?Zt(e.path):Ue(e.path,e.previousValue):e.action==="delete"&&e.previousValue!==void 0&&Ue(e.path,e.previousValue);}finally{exports.internal.historyEnabled=t;}}function Po(e){let t=exports.internal.historyEnabled;exports.internal.historyEnabled=false;try{e.action==="set"?Ue(e.path,e.newValue):e.action==="delete"&&Zt(e.path);}finally{exports.internal.historyEnabled=t;}}function Ue(e,t){let r=e.split("."),o=x;for(let n=0;n<r.length-1;n++){let s=r[n];o[s]===void 0&&(o[s]={}),o=o[s];}o[r[r.length-1]]=t;}function Zt(e){let t=e.split(".");if(t.length===1){x.remove(t[0]);return}let r=x;for(let o=0;o<t.length-1;o++){let n=t[o];if(r[n]===void 0)return;r=r[n];}delete r[t[t.length-1]];}var Ye=e=>{x.removeAll();for(let t of Object.keys(e))x[t]=Xt(e[t]);exports.internal.clearHistory(),c("[memorio history] State rolled back to snapshot");},Xe=()=>{exports.internal.clearHistory(),c("[memorio history] History cleared");},Ze=()=>{exports.internal.clearRedo();};a();var et=()=>{let e=A(x);return Object.keys(e).filter(t=>!["list","remove","removeAll","lock","unlock"].includes(t))},tt=e=>{if(!e||typeof e!="string")return false;let t=e.replace(/^state\./,"").split("."),r=x;for(let o of t){if(r==null)return false;r=r[o];}return r!==void 0},rt=e=>{let[t,r]=er(e);return !t||r===void 0?"undefined":Array.isArray(r)?"array":typeof r},ot=e=>{let[t,r]=er(e);if(!(!t||r===void 0))return _o(r)},nt=()=>{let e=[],t=(r,o)=>{if(r===null||typeof r!="object"||Array.isArray(r))return;let n=Object.keys(r).filter(s=>!["list","remove","removeAll","lock","unlock"].includes(s));for(let s of n){let i=o?`${o}.${s}`:s,l=r[s],y=l!==void 0,g=y?Array.isArray(l)?"array":typeof l:"undefined";e.push({path:i,type:g,defined:y}),y&&typeof l=="object"&&!Array.isArray(l)&&l.constructor?.name==="Object"&&t(l,i);}};return t(A(x),""),e};function er(e){if(!e||typeof e!="string")return [false,void 0];let t=e.replace(/^state\./,"").split("."),r=x;for(let o of t){if(r==null)return [false,void 0];r=r[o];}return [r!==void 0,r]}function _o(e){if(e===null||typeof e!="object")return e;let t=e.constructor?.name;if(t!=="Object"&&t!=="Array")return e;try{return JSON.parse(JSON.stringify(e))}catch{return e}}a();F();E();a();F();var R=globalThis,ko=10*1024*1024;function se(){let e=R.memorioSyncConfig;if(e&&typeof e.namespace=="string"&&e.namespace)return `ns:${e.namespace}`;let t=R.memorio?R.memorio._currentContext:void 0,r=typeof t=="string"&&t?t:"";return r?`ctx:${r}`:"default"}function tr(){return !!R.memorioSyncConfig}var Y=e=>`memorio:sync:${e}:`,G=e=>`${Y(e)}index`;function Oo(e){let t=JSON.stringify(e);if(t.length>ko)throw new Error("memorio sync: memory entry exceeds maximum size");return t}function st(e){try{return JSON.parse(e)}catch{return null}}var it={async append(e,t){let r=se(),o={...e,operation:t,updatedAt:e.updatedAt||Date.now(),version:e.version||1,sync:"pending"},n=Oo(o),s=`${Y(r)}${o.id}`;exports.store.set(s,n);let i=exports.store.get(G(r))||[];return i.includes(o.id)||i.push(o.id),exports.store.set(G(r),JSON.stringify(i)),o},async pending(){let e=se(),t=[],r=exports.store.get(G(e))||[];for(let o of r){let n=exports.store.get(`${Y(e)}${o}`);if(!n)continue;let s=st(n);s&&s.sync!=="synced"&&t.push(s);}return t.sort((o,n)=>(o.updatedAt||0)-(n.updatedAt||0)),t},async markSynced(e){if(!e.length)return 0;let t=se(),r=0,o=exports.store.get(G(t))||[];for(let n of o){if(!e.includes(n))continue;let s=`${Y(t)}${n}`,i=exports.store.get(s);if(!i)continue;let l=st(i);!l||l.sync==="synced"||(l.sync="synced",exports.store.set(s,JSON.stringify(l)),r++);}return r},async get(e){let t=se(),r=exports.store.get(`${Y(t)}${e}`);return st(r??"")},async clear(){let e=se(),t=exports.store.get(G(e))||[];for(let r of t)exports.store.remove(`${Y(e)}${r}`);exports.store.remove(G(e));},async replay(){let e={synced:[]};if(!tr())return e;let r=(R.memorioSyncConfig||{}).provider;if(!r||typeof r.push!="function")return e;let o=await this.pending();if(o.length)try{let n=await r.push(o);e.synced=n?.synced||[],e.conflicts=n?.conflicts,e.error=n?.error,e.synced.length&&await this.markSynced(e.synced);}catch(n){e.error=String(n);}if(typeof r.pull=="function")try{let n=o.length?Math.min(...o.map(i=>i.updatedAt||0)):0,s=await r.pull(n);for(let i of s||[])await this.append(i,i.operation||"confirm"),await this.markSynced([i.id]);}catch{}return e},status(){return Promise.resolve("store")}};function rr(e){let t=R.memorioSyncConfig||{};return R.memorioSyncConfig={...t,...e},it}if(typeof R.addEventListener=="function"){let e=false;R.addEventListener("focus",()=>{e||!tr()||(e=true,it.replay().finally(()=>{e=false;}));});}var at=it;var he="__memorio_memory_index__",or="__memorio_superseded__";function lt(){return !!globalThis.memorioSyncConfig}async function X(e,t){if(lt()&&e.scope!=="hot")try{await at.append(e,t);}catch{}}function ct(e){return e.startsWith(or)?e:`${or}${e}`}function nr(e){return e?Array.isArray(e)?e:[e]:[]}function qo(e,t){if(t.scope)return t.scope;let r=JSON.stringify(e).length;return r>1e6?"durable":("local")}function _(){return Date.now()}function be(e){return e.ttl===null||e.ttl===void 0?false:_()-e.createdAt>e.ttl}function Mo(e,t){return e.status==="obsolete"||e.status==="superseded"||be(e)?t.includeObsolete??false:!(t.type&&!(Array.isArray(t.type)?t.type:[t.type]).includes(e.type)||t.minConfidence!==void 0&&e.confidence<t.minConfidence)}function Co(e,t){return !(e.status!=="active"||be(e)||t.tags&&!(Array.isArray(t.tags)?t.tags:[t.tags]).some(n=>e.tags.includes(n))||t.types&&!(Array.isArray(t.types)?t.types:[t.types]).includes(e.type)||t.minConfidence!==void 0&&e.confidence<t.minConfidence||t.scopes&&!t.scopes.includes(e.scope))}function $o(e){let t=(_()-e.createdAt)/36e5,r=Math.max(.1,1/(1+t*.5)),o=e.confidence,n=1+e.tags.length*.1,s={decision:1.5,context:1.3,preference:1.2,task:1,fact:.8},i={hot:1.5,session:1.2,local:1,durable:.8};return r*o*n*s[e.type]*i[e.scope]}function ir(e,t){if(!t||typeof t!="string")return;let r=t.replace(/^state\./,"").split("."),o=e;for(let n of r){if(o==null)return;o=o[n];}return o}function ar(e,t,r){if(!t||typeof t!="string")return;let o=t.replace(/^state\./,"").split("."),n=e;for(let s=0;s<o.length-1;s++){let i=o[s];(n[i]===void 0||n[i]===null)&&(n[i]={}),n=n[i];}n[o[o.length-1]]=r;}async function K(e){let t=e.status==="superseded"?ct(e.id||e.key):e.key,r=JSON.stringify(e);switch(e.scope){case "hot":ar(x,t,e.value);break;case "session":C.set(t,r);break;case "local":exports.store.set(t,r);break;case "durable":await exports.idb.set("memories",t,r);break}await jo(e.id||e.key,e.scope,e.status==="superseded");}async function lr(e,t,r=false){let o=r?ct(e):e,n;switch(t){case "hot":{let s=ir(x,o);return s===void 0?null:cr(e,s,t)}case "session":n=C.get(o);break;case "local":n=exports.store.get(o);break;case "durable":n=await exports.idb.get("memories",o);break}if(!n)return null;try{let s=JSON.parse(n);return s.id=s.id||e,s}catch{return null}}function cr(e,t,r){return {id:e,key:e,value:t,type:"fact",confidence:1,scope:r,ttl:null,tags:[],status:"active",createdAt:_(),lastConfirmedAt:_(),supersededId:null}}async function sr(e,t,r=false){let o=r?ct(e):e;switch(t){case "hot":ar(x,o,void 0);break;case "session":C.remove(o);break;case "local":exports.store.remove(o);break;case "durable":await exports.idb.deleteKey("memories",o);break}await Do(e,r);}async function ie(){try{let e=exports.store.get(he);return e?JSON.parse(e):{}}catch{return {}}}async function jo(e,t,r=false){let o=await ie();o[e]={scope:t,superseded:r},exports.store.set(he,JSON.stringify(o));}async function Do(e,t=false){let r=await ie(),o=r[e];o&&(t&&o.superseded||!t&&!o.superseded)&&delete r[e],exports.store.set(he,JSON.stringify(r));}async function ge(){let e=await ie(),t=[];for(let[r,o]of Object.entries(e)){let n=await lr(r,o.scope,o.superseded);n&&(n.id=n.id||r,n.supersededId=n.supersededId??null,t.push(n));}return t}var ve={async remember(e,t,r={}){let o=await this._getEntry(e);if(o&&o.status==="active"){let l=`${o.id}__v${Date.now()}`,y={...o,id:l,key:o.key,status:"superseded",supersededId:null,lastConfirmedAt:_()};await K(y),await X(y,"supersede");}let n=qo(t,r),s=nr(r.tags),i={id:r.id||e,key:e,value:t,type:r.type||"fact",confidence:r.confidence??1,scope:n,ttl:r.ttl??null,tags:s,source:r.source,status:"active",createdAt:_(),lastConfirmedAt:_(),updatedAt:_(),version:o&&o.version?o.version+1:1,sync:lt()?"pending":void 0,supersededId:o?o.id:null};await K(i),await X(i,"remember"),w.set("memorio:memory:remembered",{key:e,scope:n,entryId:i.id});},async recall(e,t={}){let r=await this._getEntry(e);return !r||!Mo(r,t)?null:(r.lastConfirmedAt=_(),await K(r),w.set("memorio:memory:recalled",{key:e}),r.value)},async context(e={}){return (await ge()).filter(n=>Co(n,e)).map(n=>({entry:n,score:$o(n)})).sort((n,s)=>s.score-n.score).slice(0,e.maxEntries??25).map(({entry:n})=>({key:n.key,value:n.value,type:n.type,confidence:n.confidence,scope:n.scope,tags:n.tags,age:_()-n.createdAt,accessCount:n.tags.length+1,lastAccessedAt:n.lastConfirmedAt}))},async forget(e){let t=await this._getEntry(e);t&&(await sr(t.id||e,t.scope,t.status==="superseded"),await X(t,"forget"),w.set("memorio:memory:forgotten",{key:e}));},async update(e,t,r={}){let o=await this._getEntry(e);if(!o){await this.remember(e,t,r);return}let n=`${o.id}__v${_()}`,s={...o,id:n,key:o.key,status:"superseded",supersededId:null,lastConfirmedAt:_()};await K(s),await X(s,"supersede");let i={...o,value:t,lastConfirmedAt:_(),updatedAt:_(),version:(o.version?o.version:0)+1,sync:lt()?"pending":void 0,...r.scope?{scope:r.scope}:{},...r.ttl!==void 0?{ttl:r.ttl}:{},...r.type?{type:r.type}:{},...r.confidence!==void 0?{confidence:r.confidence}:{},...r.tags!==void 0?{tags:nr(r.tags)}:{},...r.source?{source:r.source}:{}};await K(i),await X(i,"update"),w.set("memorio:memory:updated",{key:e,entryId:i.id});},async stats(){let e=await ge(),t={hot:0,session:0,local:0,durable:0},r={},o=0;for(let n of e)t[n.scope]=(t[n.scope]||0)+1,be(n)&&o++,r[n.type]=(r[n.type]||0)+1;return {total:e.length,byScope:t,byType:r,expired:o}},async forgetExpired(){let e=await ge(),t=0;for(let r of e)be(r)&&r.status==="active"&&(r.status="obsolete",r.updatedAt=_(),r.operation="expire",await K(r),await X(r,"expire"),t++);return t},async clear(){let e=await ie();for(let[t,r]of Object.entries(e))await sr(t,r.scope,r.superseded);exports.store.remove(he);},async _getEntry(e){let r=(await ie())[e];if(!r){let o=ir(x,e);return o!==void 0?cr(e,o,"hot"):null}return lr(e,r.scope,r.superseded)},async _loadAll(){return ge()},async _save(e){await K(e);},journal:at,configure(e){return rr(e),this}};Object.defineProperty(globalThis,"memorio",{value:{setProps:()=>{},obj:{},array:[],dispatch:w,message:exports.message,devtools:Je,logger:Ne,setDescription:()=>{}},writable:false,configurable:true,enumerable:false});Object.defineProperty(globalThis,"events",{value:{},writable:true,enumerable:false});typeof globalThis.addEventListener=="function"&&w.listen("memorio:memory:cleanup",async()=>ve.forgetExpired?.());Object.defineProperty(memorio,"version",{writable:false,enumerable:false,value:ye.version});Object.defineProperty(memorio,"debug",{get:()=>exports.internal.debug,set:e=>{exports.internal.debug=e;},enumerable:false});var ur=re();Object.defineProperty(memorio,"_platform",{writable:false,enumerable:false,value:ur.platform});Object.defineProperty(memorio,"_capabilities",{writable:false,enumerable:false,value:ur});Object.defineProperty(memorio,"_sessionId",{writable:false,enumerable:false,value:le()});vt();memorio.isBrowser=Se;memorio.isNode=we;memorio.isDeno=Ee;memorio.isEdge=Te;memorio.getCapabilities=re;memorio.createContext=oe;memorio.listContexts=qe;memorio.deleteContext=Me;memorio.isolate=e=>oe(e);memorio.registerSchema=I.register;memorio.validate=I.validate;memorio.unregisterSchema=I.unregister;memorio.listSchemas=I.list;memorio.typed=Be;memorio.snapshot=Ve;memorio.diff=He;memorio.undo=Fe;memorio.redo=Ge;memorio.canUndo=Ke;memorio.canRedo=We;memorio.rollback=Ye;memorio.trace=Qe;memorio.enableHistory=ze;memorio.clearHistory=Xe;memorio.clearRedo=Ze;memorio.stateKeys=et;memorio.pathExists=tt;memorio.stateType=rt;memorio.stateGet=ot;memorio.stateSchema=nt;memorio.memory=ve;Object.defineProperty(globalThis,"state",{value:x,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"store",{value:exports.store,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"session",{value:C,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"cache",{value:ce,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"idb",{value:exports.idb,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"sqlite",{value:exports.sqlite,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"observer",{value:fe,writable:true,enumerable:false,configurable:true});Object.defineProperty(globalThis,"useObserver",{value:pe,writable:true,enumerable:false,configurable:true});Object.defineProperty(memorio,"dispatch",{value:w,writable:true,enumerable:false,configurable:true});Object.defineProperty(memorio,"setContext",{writable:false,enumerable:false,value:e=>Ce(e)});Object.defineProperty(memorio,"getContext",{writable:false,enumerable:false,value:()=>exports.internal.currentContext});Object.defineProperty(globalThis,"$state",{get:()=>globalThis.state,configurable:true});Object.defineProperty(globalThis,"$store",{get:()=>globalThis.store,configurable:true});Object.defineProperty(globalThis,"$session",{get:()=>globalThis.session,configurable:true});Object.defineProperty(globalThis,"$cache",{get:()=>globalThis.cache,configurable:true});memorio.help=function(){console.debug(`
27
+ \u{1F9E0} Memorio ${ye.version} - Help
27
28
 
28
29
  Core Modules:
29
30
  state - Reactive state management
@@ -31,6 +32,7 @@ Core Modules:
31
32
  session - Session storage (sessionStorage/Map)
32
33
  cache - In-memory cache
33
34
  idb - IndexedDB (browser only)
35
+ sqlite - SQLite in browser (sql.js, optional)
34
36
 
35
37
  API:
36
38
  memorio.typed<T>() - Type-safe view of global state (compile-time only)
@@ -67,14 +69,17 @@ Memory System:
67
69
  memorio.memory.forget(key) - Delete a specific memory
68
70
  memorio.memory.context(opts) - Get ranked relevant memories (semantic context for AI)
69
71
  memorio.memory.stats() - Memory usage statistics
70
- memorio.memory.forgetExpired() - Remove all expired entries
71
- memorio.memory.clear() - Wipe all memories
72
+ memorio.memory.forgetExpired() - Remove all expired entries
73
+ memorio.memory.clear() - Wipe all memories
74
+ memorio.memory.configure({ sync }) - Optional cloud-sync provider + namespace
75
+ memorio.memory.journal.pending() - Local op journal (SQLite/store)
72
76
 
73
77
  Scopes:
74
78
  hot - In-memory reactive state (volatile, fastest)
75
79
  session - sessionStorage (persists across page reloads, cleared on tab close)
76
80
  local - localStorage (persistent, survives browser restart)
77
81
  durable - IndexedDB (large datasets, async)
82
+ sql - SQLite / sql.js (browser, optional, full SQL)
78
83
 
79
84
  TTL options:
80
85
  ttl: number (milliseconds) or null (never expires)
@@ -83,9 +88,9 @@ Memory types:
83
88
  fact, preference, decision, task, context
84
89
 
85
90
  Shortcuts:
86
- state, store, session, cache, idb - direct access to modules
91
+ state, store, session, cache, idb, sqlite - direct access to modules
87
92
  `);};memorio.help=function(){console.debug(`
88
- \u{1F9E0} Memorio ${te.version} - Help
93
+ \u{1F9E0} Memorio ${ye.version} - Help
89
94
 
90
95
  Core Modules:
91
96
  state - Reactive state management
@@ -93,6 +98,7 @@ Core Modules:
93
98
  session - Session storage (sessionStorage/Map)
94
99
  cache - In-memory cache
95
100
  idb - IndexedDB (browser only)
101
+ sqlite - SQLite in browser (sql.js, optional)
96
102
 
97
103
  API:
98
104
  memorio.typed<T>() - Type-safe view of global state (compile-time only)
@@ -146,14 +152,17 @@ Memory System:
146
152
  memorio.memory.forget(key) - Delete a specific memory
147
153
  memorio.memory.context(opts) - Get ranked relevant memories (semantic context for AI)
148
154
  memorio.memory.stats() - Memory usage statistics
149
- memorio.memory.forgetExpired() - Remove all expired entries
150
- memorio.memory.clear() - Wipe all memories
155
+ memorio.memory.forgetExpired() - Remove all expired entries
156
+ memorio.memory.clear() - Wipe all memories
157
+ memorio.memory.configure({ sync }) - Optional cloud-sync provider + namespace
158
+ memorio.memory.journal.pending() - Local op journal (SQLite/store)
151
159
 
152
160
  Scopes:
153
161
  hot - In-memory reactive state (volatile, fastest)
154
162
  session - sessionStorage (persists across page reloads, cleared on tab close)
155
163
  local - localStorage (persistent, survives browser restart)
156
164
  durable - IndexedDB (large datasets, async)
165
+ sql - SQLite / sql.js (browser, optional, full SQL)
157
166
 
158
167
  TTL options:
159
168
  ttl: number (milliseconds) or null (never expires)
@@ -162,53 +171,52 @@ Memory types:
162
171
  fact, preference, decision, task, context
163
172
 
164
173
  Shortcuts:
165
- state, store, session, cache, idb - direct access to modules
166
- `);};var Or=globalThis.memorio,ms=globalThis.events,ds=e=>F(e),fs=globalThis.memorio?.help,ps=e=>exports.internal.currentContext=e,gs=()=>exports.internal.currentContext,ys=Or;
167
-
168
- exports.cache = Q;
169
- exports.canRedo = De;
170
- exports.canUndo = _e;
171
- exports.clearHistory = je;
172
- exports.clearRedo = Ie;
173
- exports.createContext = F;
174
- exports.default = ys;
175
- exports.deleteContext = ye;
176
- exports.devtools = we;
177
- exports.diff = Oe;
178
- exports.dispatch = h;
179
- exports.enableHistory = Ce;
180
- exports.events = ms;
181
- exports.getCapabilities = q;
182
- exports.getContext = gs;
183
- exports.help = fs;
184
- exports.isBrowser = ae;
185
- exports.isDeno = ce;
186
- exports.isEdge = ue;
187
- exports.isNode = le;
188
- exports.isolate = ds;
189
- exports.listContexts = ge;
190
- exports.listSchemas = We;
191
- exports.logger = Ee;
192
- exports.memorio = Or;
193
- exports.memory = se;
194
- exports.observer = Z;
195
- exports.pathExists = Ve;
196
- exports.redo = Me;
197
- exports.registerSchema = qe;
198
- exports.rollback = Ae;
199
- exports.schema = M;
174
+ state, store, session, cache, idb, sqlite - direct access to modules
175
+ `);};var Ao=globalThis.memorio,la=globalThis.events,ca=e=>oe(e),ua=globalThis.memorio?.help,ma=e=>exports.internal.currentContext=e,da=()=>exports.internal.currentContext,fa=Ao;
176
+
177
+ exports.cache = ce;
178
+ exports.canRedo = We;
179
+ exports.canUndo = Ke;
180
+ exports.clearHistory = Xe;
181
+ exports.clearRedo = Ze;
182
+ exports.createContext = oe;
183
+ exports.default = fa;
184
+ exports.deleteContext = Me;
185
+ exports.devtools = Je;
186
+ exports.diff = He;
187
+ exports.dispatch = w;
188
+ exports.enableHistory = ze;
189
+ exports.events = la;
190
+ exports.getCapabilities = re;
191
+ exports.getContext = da;
192
+ exports.help = ua;
193
+ exports.isBrowser = Se;
194
+ exports.isDeno = Ee;
195
+ exports.isEdge = Te;
196
+ exports.isNode = we;
197
+ exports.isolate = ca;
198
+ exports.listContexts = qe;
199
+ exports.listSchemas = yt;
200
+ exports.logger = Ne;
201
+ exports.memorio = Ao;
202
+ exports.memory = ve;
203
+ exports.observer = fe;
204
+ exports.pathExists = tt;
205
+ exports.redo = Ge;
206
+ exports.registerSchema = ft;
207
+ exports.rollback = Ye;
208
+ exports.schema = I;
200
209
  exports.session = C;
201
- exports.setContext = ps;
202
- exports.snapshot = Pe;
203
- exports.state = b;
204
- exports.stateGet = Le;
205
- exports.stateKeys = Ne;
206
- exports.stateSchema = He;
207
- exports.stateType = Be;
208
- exports.store = S;
209
- exports.trace = $e;
210
- exports.typed = Te;
211
- exports.undo = Re;
212
- exports.unregisterSchema = Fe;
213
- exports.useObserver = ee;
214
- exports.validate = Ke;
210
+ exports.setContext = ma;
211
+ exports.snapshot = Ve;
212
+ exports.state = x;
213
+ exports.stateGet = ot;
214
+ exports.stateKeys = et;
215
+ exports.stateSchema = nt;
216
+ exports.stateType = rt;
217
+ exports.trace = Qe;
218
+ exports.typed = Be;
219
+ exports.undo = Fe;
220
+ exports.unregisterSchema = pt;
221
+ exports.useObserver = pe;
222
+ exports.validate = dt;
package/index.d.ts CHANGED
@@ -16,6 +16,7 @@
16
16
  /// <reference path="./types/store.d.ts" />
17
17
  /// <reference path="./types/cache.d.ts" />
18
18
  /// <reference path="./types/idb.d.ts" />
19
+ /// <reference path="./types/sqlite.d.ts" />
19
20
 
20
21
  export * from './types/exports'
21
22
  export { default } from './types/exports'