+1
-1
@@ -1,1 +0,1 @@ | ||
| var l=(e,r)=>()=>(e&&(r=e(e=0)),r);var p,h=l(()=>{p={name:"memorio",version:"2.5.1",type:"module",private:!1,main:"index.js",license:"MIT",typings:"./types/*",description:"Memorio, State + Observer and Store for an easy life",copyright:"Copyright (c) 2025 Dario Passariello",homepage:"https://a51.gitbook.io/memorio",author:{name:"Dario Passariello",url:"https://dario.passariello.ca/",email:"dariopassariello@gmail.com"},support:{name:"Dario Passariello",url:"https://github.com/passariello/",email:"dariopassariello@gmail.com"},contributors:[{name:"Dario Passariello",email:"dariopassarielloa@gmail.com"},{name:"Valeria Cala Scaglitta",email:"valeriacalascaglitta@gmail.com"}],keywords:["biglogic","a51","memorio","state","store","observer","useObserver","dario","passariello"],funding:[{type:"patreon",url:"https://www.patreon.com/passariello"}],typing:["types/*"],exports:{".":{types:"./types/index.d.ts",import:"./index.js",default:"./index.js"},"./types/*":"./types/*"},scripts:{build:"node ./esbuild.config.mjs",watch:'nodemon --watch * --exec "npm run build "',"npm:publish":"npm run build && npm publish ./dist",test:"cd tests && npm run test",lint:"cd tests && npm run lint",tsc:"tsc --noEmit"},devDependencies:{"@types/node":"25.3.2",esbuild:"0.27.3","esbuild-node-externals":"1.20.1","esbuild-plugin-alias":"0.2.1","esbuild-plugin-copy":"2.1.1",typescript:"5.9.3"}}});var y,m=l(()=>{"use strict";a();h();Object.defineProperty(globalThis,"memorio",{value:{},writable:!1,configurable:!0,enumerable:!1});Object.defineProperty(globalThis,"events",{value:{},writable:!0,enumerable:!1});Object.defineProperty(memorio,"version",{writable:!1,enumerable:!1,value:p.version});y=["list","state","store","idb","observer","useObserver","remove","removeAll"]});var v=l(()=>{"use strict";a();Object.defineProperty(memorio,"dispatch",{writable:!1,enumerable:!1,value:{set:(e,r={})=>{globalThis.dispatchEvent(new CustomEvent(String(e),r))},listen:(e,r=null,o=!1)=>{globalThis.observer?.list?.[e]?.length>0&&globalThis.observer?.remove?.(e);let i=r?t=>setTimeout(()=>r(t),1):void 0;i&&globalThis.addEventListener(e,i),i&&(globalThis.events[e]=i)},remove:e=>{let r=globalThis.events?.[e];r&&(globalThis.removeEventListener(e,r),delete globalThis.events[e])}}})});var T=l(()=>{"use strict";a();memorio.propertyName=(e,r)=>String(r).replace("() => ","")});var S,O,P=l(()=>{"use strict";a();m();Object.defineProperty(memorio,"objPath",{writable:!1,enumerable:!1,value:(e,r,o=".")=>{let i=r.concat(e).join(o);return globalThis.memorio._tracking&&globalThis.memorio._trackedPaths?.add("state."+i),i}});globalThis.memorio._tracking=!1;globalThis.memorio._trackedPaths=new Set;globalThis.memorio._locked=!1;S=e=>new Proxy({},{get(r,o){return o===Symbol.toPrimitive||o==="toString"?()=>e:S(`${e}.${String(o)}`)}}),O=(e,r,o=[])=>{let i=t=>{try{globalThis.memorio?.dispatch?.set?.(t,{detail:{name:t}})}catch{}};return new Proxy(e,{get(t,s){if(s==="__path")return o.length>0?"state."+o.join("."):"state";if(s==="path")return S("state");if(s==="list")return console.debug('Some state could be hidden when you use "state.list". Use "state" to see the complete list '),JSON.parse(JSON.stringify(globalThis.state));if(globalThis.memorio._tracking&&typeof s=="string"){let n=o.length>0?"state."+o.concat(s).join("."):"state."+s;globalThis.memorio._trackedPaths?.add(n)}if(s==="remove")return n=>(delete t[n],!0);if(s==="removeAll")return()=>{try{for(let n in t)typeof t[n]!="function"&&!["list","remove","removeAll"].includes(n)&&(Object.isFrozen(t[n])||delete t[n],delete t[n])}catch(n){console.debug(n)}};if(Object.isFrozen(t[s]))return t[s];if(s==="lock"||s==="unlock"){let n=Reflect.get(t,s);if(n)return n}try{let n=Reflect.get(t,s);return n&&typeof n=="object"&&["Array","Object"].includes(n.constructor.name)?O(n,r,o.concat(s)):n}catch(n){console.error("Error: ",n);return}},set(t,s,n){if(globalThis.memorio._locked)return console.error("Error: state is locked. Use state.unlock() to enable modifications."),!1;if(y.includes(s))return console.error("key "+s+" is protected"),!1;if(t[s]&&typeof t[s]=="object"&&Object.isFrozen(t[s]))return console.error(`Error: state '${s}' is locked`),!1;if(t[s]&&typeof t[s]=="object"&&t[s].__locked)return console.error(`Error: state '${s}' is locked. Use state.${s}.unlock() to enable modifications.`),!1;try{let u=globalThis.memorio.objPath?.(s,o)??s;if(r({action:"set",path:u,target:t,newValue:n,previousValue:Reflect.get(t,s)}),i("state."+u),Reflect.set(t,s,n),t[s]&&typeof t[s]=="object"){let b=t[s];if(b&&typeof b=="object")try{Object.defineProperty(b,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!1}),Object.defineProperty(b,"lock",{writable:!1,enumerable:!1,configurable:!1,value:()=>{Object.defineProperty(b,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!0}),console.info(`State '${s}' is now locked.`)}}),Object.defineProperty(b,"unlock",{writable:!1,enumerable:!1,configurable:!1,value:()=>{Object.defineProperty(b,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!1}),console.info(`State '${s}' is now unlocked.`)}})}catch{}}return!0}catch(u){return console.error("Error in set trap:",u),!1}},deleteProperty(t,s){try{let n=globalThis.memorio.objPath?.(s,o);return r({action:"delete",path:n,target:t}),Reflect.deleteProperty(t,s)}catch(n){return console.error("Error in deleteProperty trap:",n),!1}}})};globalThis?.state?globalThis.state=state:globalThis.state=O({},()=>{});globalThis.state.lock=()=>{globalThis.memorio._locked=!0,console.info("State is now locked. All modifications are blocked.")};globalThis.state.unlock=()=>{globalThis.memorio._locked=!1,console.info("State is now unlocked. Modifications are allowed.")};Object.defineProperty(globalThis,"state",{enumerable:!1,configurable:!0})});var U,j=l(()=>{"use strict";a();globalThis.observer||(globalThis.observer=null);Object.defineProperty(globalThis,"observer",{enumerable:!1,configurable:!0});U=(e,r=null,o=!0)=>{console.warn('DEPRECATED: "observer" is deprecated and will be removed in future versions. Please use "useObserver" instead.');try{if(!(t=>t.split(".")[0]!=="state"?(console.error(`Observer Error: You need to declare 'state.' or 'store.'. The '${t}' string is incorrect!`),!1):!0)(e))return}catch(i){console.error(i);return}if(!e&&!r){console.error("Observer Error: You need to setup observer correctly, Some parameters are missed!");return}if(!e&&r){console.error("Observer Error: You need to declare what state need to be monitored as string like 'state.test'.");return}if(e&&!r){let i=(String(e),{detail:{name:String(e)}}),t=globalThis.observer;t?.list?.[e]&&globalThis.memorio.dispatch.remove(i),t?.list?.[e]||globalThis.memorio.dispatch.listen(i),console.debug("called: ",e);return}if(e&&r){if(typeof e!="string"||typeof r!="function"){console.error("Observer Error: name of state need to be a 'string' like 'state.test' and the callback need to be a 'function'");return}let i=globalThis.observer;i?.list?.[e]&&globalThis.memorio.dispatch.remove(e,r,o),i?.list?.[e]||globalThis.memorio.dispatch.listen(e,r,o);return}};globalThis.observer=U;Object.defineProperties(globalThis.observer,{list:{get:()=>globalThis.events},remove:{value:e=>{e&&(globalThis.memorio.dispatch.remove(e),delete globalThis.events[e])}},removeAll:{get:()=>{let e=globalThis.observer,r=e?.list;return r&&Object.keys(r).forEach(o=>{e?.remove?.(o)}),!0}}});Object.freeze(observer)});var w=l(()=>{"use strict";a();globalThis.useObserver||(globalThis.useObserver=null);Object.defineProperty(globalThis,"useObserver",{value:null,writable:!0,enumerable:!1,configurable:!0});globalThis.useObserver=((e,r)=>{if(!r||typeof e!="function")return()=>{};let o=[],i=Array.isArray(r)&&!r.__path?r:[r];try{return i.forEach(t=>{let s="";if(typeof t=="function"){let n=globalThis.memorio.propertyName;if(typeof n=="function"){let u=n(globalThis.state,t);u&&(s=u)}}else typeof t=="object"&&t!==null?s=t.__path||(typeof t.toString=="function"&&t.toString()!=="[object Object]"?t.toString():""):typeof t=="string"&&(t.startsWith("state.")||t.startsWith("store."))&&(s=t);if(s){s=s.replace(/^(\(\)\s*=>\s*)/,"").replace(/^globalThis\./,"").replace(/^state\./,"");let n=s.startsWith("store.")||s.startsWith("state.")?s:"state."+s;globalThis.memorio.dispatch.listen(n,()=>e()),o.push(n)}else{globalThis.memorio._trackedPaths?.clear(),globalThis.memorio._tracking=!0;try{e()}catch{}globalThis.memorio._tracking=!1,globalThis.memorio._trackedPaths?.forEach(n=>{o.includes(n)||(console.info(`useObserver: [Auto-Discovery] -> "${n}"`),globalThis.memorio.dispatch.listen(n,()=>e()),o.push(n))})}}),o.length>0?console.info(`useObserver: Monitoring ${o.length} paths.`):console.warn("useObserver: No paths resolved for monitoring. Check your dependencies!"),()=>{o.forEach(t=>{globalThis.memorio.dispatch&&typeof globalThis.memorio.dispatch.remove=="function"&&(globalThis.memorio.dispatch.remove(t),console.debug(`useObserver: Stopped monitoring "${t}"`))})}}catch(t){return console.debug("useObserver Error:",t),()=>{}}});Object.freeze(globalThis.useObserver)});var x=l(()=>{"use strict";a();Object.defineProperty(globalThis,"store",{value:new Proxy({},{}),enumerable:!1,configurable:!0});Object.defineProperties(store,{get:{value:e=>{if(e){try{let r=globalThis.localStorage.getItem(e);return r&&JSON.parse(r)}catch(r){console.debug(`Error parsing store item '${e}':`,r)}return null}}},set:{value:(e,r)=>{if(e){try{r==null?globalThis.localStorage.setItem(e,JSON.stringify(null)):typeof r=="object"||typeof r=="number"||typeof r=="boolean"||typeof r=="string"?globalThis.localStorage.setItem(e,JSON.stringify(r)):typeof r=="function"&&console.debug("It's not secure to store functions.")}catch(o){console.debug(`Error setting store item '${e}':`,o)}return null}}},remove:{value:e=>{if(e)return globalThis.localStorage.getItem(e)?(globalThis.localStorage.removeItem(e),!0):!1}},delete:{value:e=>(store.remove(e),!0)},removeAll:{value:()=>(globalThis.localStorage.clear(),!0)},clearAll:{value:()=>(store.removeAll(),!0)},quota:{value:async()=>globalThis.navigator&&"storage"in globalThis.navigator&&"estimate"in globalThis.navigator.storage?globalThis.navigator.storage.estimate().then(({usage:e,quota:r})=>{let o=e??0,i=r??0;return o&&i&&console.debug(`Using ${o/1024} out of ${i/1024} Mb.`),[o/1024,i/1024]}).catch(e=>(console.debug("Error estimating quota:",e),[0,0])):[0,0]},size:{value:()=>{let e=0;return Object.keys(globalThis.localStorage).forEach(r=>{let o=globalThis.localStorage.getItem(r);o&&(e+=o.length)}),e}}});Object.freeze(store)});var E=l(()=>{"use strict";a();Object.defineProperty(globalThis,"session",{value:new Proxy({},{}),enumerable:!1,configurable:!0});Object.defineProperties(session,{get:{value:e=>{if(e)try{let r=globalThis.sessionStorage.getItem(e);return r&&JSON.parse(r)}catch(r){console.debug(`Error parsing session item '${e}':`,r)}}},set:{value:(e,r)=>{if(e)try{r==null?globalThis.sessionStorage.setItem(e,JSON.stringify(null)):typeof r=="object"||typeof r=="number"||typeof r=="boolean"||typeof r=="string"?globalThis.sessionStorage.setItem(e,JSON.stringify(r)):typeof r=="function"&&console.debug("It's not secure to session functions.")}catch(o){console.debug(`Error setting session item '${e}':`,o)}}},remove:{value:e=>{if(e&&globalThis.sessionStorage.getItem(e))return globalThis.sessionStorage.removeItem(e),!0}},delete:{value:e=>(session.remove(e),!0)},removeAll:{value:()=>(globalThis.sessionStorage.clear(),!0)},clearAll:{value:()=>(session.removeAll(),!0)},quota:{value:async()=>globalThis.navigator&&"storage"in globalThis.navigator&&"estimate"in globalThis.navigator.storage?globalThis.navigator.storage.estimate().then(({usage:e,quota:r})=>{let o=e??0,i=r??0;return o&&i&&console.debug(`Using ${o/1024} out of ${i/1024} Mb.`),[o/1024,i/1024]}).catch(e=>(console.debug("Error estimating quota:",e),[0,0])):[0,0]},size:{value:()=>{let e=0;return Object.keys(globalThis.sessionStorage).forEach(r=>{let o=globalThis.sessionStorage.getItem(r);o&&(e+=o.length)}),e}}});Object.freeze(session)});var d,$=l(()=>{"use strict";a();d={};Object.defineProperty(globalThis,"cache",{value:new Proxy({},{get(e,r){let o=r;return o==="get"?i=>d[i]:o==="set"?(i,t)=>{d[i]=t}:o==="remove"?i=>(delete d[i],!0):o==="removeAll"?()=>(Object.keys(d).forEach(i=>delete d[i]),!0):o==="clear"?()=>(Object.keys(d).forEach(i=>delete d[i]),!0):d[o]},set(e,r,o){return d[r]=o,!0},deleteProperty(e,r){return delete d[r],!0}}),enumerable:!1,configurable:!0});Object.freeze(cache)});var W={};var D=l(()=>{"use strict";a();idb.db.create=(e,r=1)=>new Promise((o,i)=>{if(!idb.db.support())return i(new Error("IndexedDB not supported"));let t=globalThis.indexedDB.open(e,r);t.onerror=()=>{console.debug(`IndexedDB error: ${t.error?.message}`),i(t.error)},t.onsuccess=()=>{console.debug(`Database ${e} connected successfully`),idb.db.list(),o(t.result)},t.onupgradeneeded=()=>{console.debug(`Database ${e} upgrade/creation initiated`)}})});var Y={};var k=l(()=>{"use strict";a();idb.db.list=async()=>{if(!("indexedDB"in globalThis)||!indexedDB.databases)return[];try{let e=await indexedDB.databases();return globalThis.idbases=e||[],await idb.db.size(),globalThis.idbases}catch(e){return console.error("Error listing databases:",e),[]}};idb.db.list()});var L={};var _=l(()=>{"use strict";a();idb.db.exist=e=>idbases?.some(r=>r.name===e)});var G={};var I=l(()=>{"use strict";a();idb.db.quota=()=>navigator.storage.estimate()});var H={};var q=l(()=>{"use strict";a();idb.db.delete=e=>new Promise((r,o)=>{console.debug(`Removing database ${e}...`);let i=()=>{let t=indexedDB.deleteDatabase(e);t.onsuccess=()=>{console.debug(`${e} database removed successfully`),idb.db.list(),r()},t.onerror=()=>{console.error(`Error removing ${e}:`,t.error),o(t.error)},t.onblocked=()=>{console.warn(`Deletion of ${e} is blocked. Please close other tabs.`)}};confirm(`Are you sure you want to remove the "${e}" database?`)?i():(console.debug("Database deletion cancelled by user."),r())})});var K={};var z=l(()=>{"use strict";a();idb.db.size=async()=>{if(!(!idbases||idbases.length===0))for(let e=0;e<idbases.length;e++){let r=idbases[e];try{let o=await idb.db.create(r.name,r.version),i=Array.from(o.objectStoreNames),t=0;for(let s of i){let n=await idb.table.size(o,s);t+=n}r.size=t,o.close()}catch(o){console.debug(`Could not calculate size for ${r.name}:`,o)}}}});var Q={};var A=l(()=>{"use strict";a();idb.db.version=e=>{let r=0;for(let o of idbases){o.name===e&&(r=o.version);break}return r}});var X={};var B=l(()=>{"use strict";a();idb.db.support=()=>{let e="indexedDB"in globalThis;return e||console.debug("Your environment doesn't support IndexedDB"),e}});var Z={};var R=l(()=>{"use strict";a();idb.table.create=(e,r)=>new Promise(async(o,i)=>{try{let s=(Number(idb.db.version(e))||0)+1,n=indexedDB.open(e,s);n.onupgradeneeded=u=>{let b=u.target.result;if(!b.objectStoreNames.contains(r)){let c=b.createObjectStore(r,{keyPath:"id",autoIncrement:!0});c.createIndex("id","id",{unique:!0}),c.createIndex("data","data",{unique:!1}),console.debug(`Table ${r} created in ${e}`)}},n.onsuccess=()=>{n.result.close(),idb.db.list(),o()},n.onerror=()=>{console.error(`Error creating table ${r}:`,n.error),i(n.error)}}catch(t){console.error("Critical error in table.create:",t),i(t)}})});var ee={};var N=l(()=>{"use strict";a();idb.table.size=(e,r)=>new Promise((o,i)=>{if(!e)return i(new Error("Database instance is required"));if(!e.objectStoreNames.contains(r))return o(0);let t=0,s=0,b=e.transaction([r],"readonly").objectStore(r).openCursor();b.onsuccess=async c=>{let g=c.target.result;if(g){try{let f=g.value;t+=JSON.stringify(f).length}catch(f){console.debug("Error stringifying IDB value tracking size:",f)}s++,s%200===0&&await new Promise(f=>setTimeout(f,0)),g.continue()}else o(t)},b.onerror=()=>{i(b.error)}})});var re={};var C=l(()=>{"use strict";a();idb.data.delete=(e,r,o)=>new Promise((i,t)=>{let s=indexedDB.open(e);s.onsuccess=()=>{let n=s.result;if(!n.objectStoreNames.contains(r))return n.close(),t(new Error(`Table ${r} not found`));let c=n.transaction(r,"readwrite").objectStore(r).delete(o);c.onsuccess=()=>{n.close(),console.debug(`Record ${o} deleted from ${r}`),i()},c.onerror=()=>{n.close(),t(c.error)}},s.onerror=()=>t(s.error)});idb.data.delete.all=(e,r)=>new Promise((o,i)=>{let t=indexedDB.open(e);t.onsuccess=s=>{let n=s.target.result;if(!n.objectStoreNames.contains(r))return n.close(),i(new Error(`Table ${r} not found`));let c=n.transaction(r,"readwrite").objectStore(r).clear();c.onsuccess=()=>{n.close(),console.debug(`All data cleared from ${r}`),o()},c.onerror=()=>{n.close(),i(c.error)}},t.onerror=()=>i(t.error)})});var te={};var J=l(()=>{"use strict";a();idb.data.set=(e,r,o)=>new Promise((i,t)=>{let s=indexedDB.open(e);s.onsuccess=()=>{let n=s.result;if(!n.objectStoreNames.contains(r))return n.close(),t(new Error(`Table ${r} does not exist in ${e}`));let c=n.transaction(r,"readwrite").objectStore(r).put(o);c.onsuccess=()=>{n.close(),console.debug(`Data saved in ${e}.${r}`),i(c.result)},c.onerror=g=>{n.close(),console.debug(`Database insert error: ${c.error?.message}`),t(c.error)}},s.onerror=()=>{t(s.error)}})});var oe={};var V=l(()=>{"use strict";a();idb.data.get=(e,r,o)=>new Promise((i,t)=>{let s=indexedDB.open(e);s.onsuccess=n=>{let u=n.target.result;if(!u.objectStoreNames.contains(r))return u.close(),t(new Error(`Table ${r} not found in ${e}`));let g=u.transaction(r,"readonly").objectStore(r).get(o);g.onsuccess=()=>{u.close(),i(g.result)},g.onerror=()=>{u.close(),t(g.error)}},s.onerror=()=>{t(s.error)}})});var M=l(()=>{"use strict";a();(async()=>(Object.defineProperty(globalThis,"idb",{value:{db:{},table:{},data:{}},writable:!0,configurable:!0,enumerable:!1}),Object.defineProperty(globalThis,"idbases",{value:[],writable:!0,configurable:!0,enumerable:!1}),await Promise.all([Promise.resolve().then(()=>(D(),W)),Promise.resolve().then(()=>(k(),Y)),Promise.resolve().then(()=>(_(),L)),Promise.resolve().then(()=>(I(),G)),Promise.resolve().then(()=>(q(),H)),Promise.resolve().then(()=>(z(),K)),Promise.resolve().then(()=>(A(),Q)),Promise.resolve().then(()=>(B(),X)),Promise.resolve().then(()=>(R(),Z)),Promise.resolve().then(()=>(N(),ee)),Promise.resolve().then(()=>(C(),re)),Promise.resolve().then(()=>(J(),te)),Promise.resolve().then(()=>(V(),oe))]),Object.preventExtensions(idb),Object.seal(idb),Object.freeze(idb)))()});var a=l(()=>{m();v();T();P();j();w();x();E();$();M()});a(); | ||
| var l=(e,r)=>()=>(e&&(r=e(e=0)),r);var p,h=l(()=>{p={name:"memorio",version:"2.5.2",type:"module",private:!1,main:"index.js",license:"MIT",typings:"./types/*",description:"Memorio, State + Observer and Store for an easy life",copyright:"Copyright (c) 2025 Dario Passariello",homepage:"https://a51.gitbook.io/memorio",author:{name:"Dario Passariello",url:"https://dario.passariello.ca/",email:"dariopassariello@gmail.com"},support:{name:"Dario Passariello",url:"https://github.com/passariello/",email:"dariopassariello@gmail.com"},contributors:[{name:"Dario Passariello",email:"dariopassarielloa@gmail.com"},{name:"Valeria Cala Scaglitta",email:"valeriacalascaglitta@gmail.com"}],keywords:["biglogic","a51","memorio","state","store","observer","useObserver","dario","passariello"],funding:[{type:"patreon",url:"https://www.patreon.com/passariello"}],typing:["types/*"],exports:{".":{types:"./types/index.d.ts",import:"./index.js",default:"./index.js"},"./types/*":"./types/*"},scripts:{build:"node ./esbuild.config.mjs",watch:'nodemon --watch * --exec "npm run build "',"npm:publish":"npm run build && npm publish ./dist",test:"cd tests && npm run test",lint:"cd tests && npm run lint",tsc:"tsc --noEmit"},devDependencies:{"@types/node":"25.3.3",esbuild:"0.27.3","esbuild-node-externals":"1.20.1","esbuild-plugin-alias":"0.2.1","esbuild-plugin-copy":"2.1.1",typescript:"5.9.3"}}});var y,m=l(()=>{"use strict";a();h();Object.defineProperty(globalThis,"memorio",{value:{},writable:!1,configurable:!0,enumerable:!1});Object.defineProperty(globalThis,"events",{value:{},writable:!0,enumerable:!1});Object.defineProperty(memorio,"version",{writable:!1,enumerable:!1,value:p.version});y=["list","state","store","idb","observer","useObserver","remove","removeAll"]});var v=l(()=>{"use strict";a();Object.defineProperty(memorio,"dispatch",{writable:!1,enumerable:!1,value:{set:(e,r={})=>{globalThis.dispatchEvent(new CustomEvent(String(e),r))},listen:(e,r=null,o=!1)=>{globalThis.observer?.list?.[e]?.length>0&&globalThis.observer?.remove?.(e);let i=r?t=>setTimeout(()=>r(t),1):void 0;i&&globalThis.addEventListener(e,i),i&&(globalThis.events[e]=i)},remove:e=>{let r=globalThis.events?.[e];r&&(globalThis.removeEventListener(e,r),delete globalThis.events[e])}}})});var T=l(()=>{"use strict";a();memorio.propertyName=(e,r)=>String(r).replace("() => ","")});var P,O=l(()=>{"use strict";a();m();Object.defineProperty(memorio,"objPath",{writable:!1,enumerable:!1,value:(e,r,o=".")=>{let i=r.concat(e).join(o);return globalThis.memorio._tracking&&globalThis.memorio._trackedPaths?.add("state."+i),i}});globalThis.memorio._tracking=!1;globalThis.memorio._trackedPaths=new Set;globalThis.memorio._locked=!1;P=(e,r,o=[])=>{let i=t=>{try{globalThis.memorio?.dispatch?.set?.(t,{detail:{name:t}})}catch{}};return new Proxy(e,{get(t,s){if(s==="__path")return o.length>0?"state."+o.join("."):"state";if(s==="list")return console.debug('Some state could be hidden when you use "state.list". Use "state" to see the complete list '),JSON.parse(JSON.stringify(globalThis.state));if(globalThis.memorio._tracking&&typeof s=="string"){let n=o.length>0?"state."+o.concat(s).join("."):"state."+s;globalThis.memorio._trackedPaths?.add(n)}if(s==="remove")return n=>(delete t[n],!0);if(s==="removeAll")return()=>{try{for(let n in t)typeof t[n]!="function"&&!["list","remove","removeAll"].includes(n)&&(Object.isFrozen(t[n])||delete t[n],delete t[n])}catch(n){console.debug(n)}};if(Object.isFrozen(t[s]))return t[s];if(s==="lock"||s==="unlock"){let n=Reflect.get(t,s);if(n)return n}try{let n=Reflect.get(t,s);return n&&typeof n=="object"&&["Array","Object"].includes(n.constructor.name)?P(n,r,o.concat(s)):n}catch(n){console.error("Error: ",n);return}},set(t,s,n){if(globalThis.memorio._locked)return console.error("Error: state is locked. Use state.unlock() to enable modifications."),!1;if(y.includes(s))return console.error("key "+s+" is protected"),!1;if(t[s]&&typeof t[s]=="object"&&Object.isFrozen(t[s]))return console.error(`Error: state '${s}' is locked`),!1;if(t[s]&&typeof t[s]=="object"&&t[s].__locked)return console.error(`Error: state '${s}' is locked. Use state.${s}.unlock() to enable modifications.`),!1;try{let u=globalThis.memorio.objPath?.(s,o)??s;if(r({action:"set",path:u,target:t,newValue:n,previousValue:Reflect.get(t,s)}),i("state."+u),Reflect.set(t,s,n),t[s]&&typeof t[s]=="object"){let b=t[s];if(b&&typeof b=="object")try{Object.defineProperty(b,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!1}),Object.defineProperty(b,"lock",{writable:!1,enumerable:!1,configurable:!1,value:()=>{Object.defineProperty(b,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!0}),console.info(`State '${s}' is now locked.`)}}),Object.defineProperty(b,"unlock",{writable:!1,enumerable:!1,configurable:!1,value:()=>{Object.defineProperty(b,"__locked",{writable:!0,enumerable:!1,configurable:!1,value:!1}),console.info(`State '${s}' is now unlocked.`)}})}catch{}}return!0}catch(u){return console.error("Error in set trap:",u),!1}},deleteProperty(t,s){try{let n=globalThis.memorio.objPath?.(s,o);return r({action:"delete",path:n,target:t}),Reflect.deleteProperty(t,s)}catch(n){return console.error("Error in deleteProperty trap:",n),!1}},ownKeys(t){return Reflect.ownKeys(t)},getOwnPropertyDescriptor(t,s){return Reflect.getOwnPropertyDescriptor(t,s)}})};globalThis?.state?globalThis.state=state:globalThis.state=P({},()=>{});globalThis.state.lock=()=>{globalThis.memorio._locked=!0,console.info("State is now locked. All modifications are blocked.")};globalThis.state.unlock=()=>{globalThis.memorio._locked=!1,console.info("State is now unlocked. Modifications are allowed.")};Object.defineProperty(globalThis,"state",{enumerable:!1,configurable:!0})});var F,S=l(()=>{"use strict";a();globalThis.observer||(globalThis.observer=null);Object.defineProperty(globalThis,"observer",{enumerable:!1,configurable:!0});F=(e,r=null,o=!0)=>{console.warn('DEPRECATED: "observer" is deprecated and will be removed in future versions. Please use "useObserver" instead.');try{if(!(t=>t.split(".")[0]!=="state"?(console.error(`Observer Error: You need to declare 'state.' or 'store.'. The '${t}' string is incorrect!`),!1):!0)(e))return}catch(i){console.error(i);return}if(!e&&!r){console.error("Observer Error: You need to setup observer correctly, Some parameters are missed!");return}if(!e&&r){console.error("Observer Error: You need to declare what state need to be monitored as string like 'state.test'.");return}if(e&&!r){let i=(String(e),{detail:{name:String(e)}}),t=globalThis.observer;t?.list?.[e]&&globalThis.memorio.dispatch.remove(i),t?.list?.[e]||globalThis.memorio.dispatch.listen(i),console.debug("called: ",e);return}if(e&&r){if(typeof e!="string"||typeof r!="function"){console.error("Observer Error: name of state need to be a 'string' like 'state.test' and the callback need to be a 'function'");return}let i=globalThis.observer;i?.list?.[e]&&globalThis.memorio.dispatch.remove(e,r,o),i?.list?.[e]||globalThis.memorio.dispatch.listen(e,r,o);return}};globalThis.observer=F;Object.defineProperties(globalThis.observer,{list:{get:()=>globalThis.events},remove:{value:e=>{e&&(globalThis.memorio.dispatch.remove(e),delete globalThis.events[e])}},removeAll:{get:()=>{let e=globalThis.observer,r=e?.list;return r&&Object.keys(r).forEach(o=>{e?.remove?.(o)}),!0}}});Object.freeze(observer)});var w=l(()=>{"use strict";a();globalThis.useObserver||(globalThis.useObserver=null);Object.defineProperty(globalThis,"useObserver",{value:null,writable:!0,enumerable:!1,configurable:!0});globalThis.useObserver=((e,r)=>{if(!r||typeof e!="function")return()=>{};let o=[],i=Array.isArray(r)&&!r.__path?r:[r];try{return i.forEach(t=>{let s="";if(typeof t=="function"){let n=globalThis.memorio.propertyName;if(typeof n=="function"){let u=n(globalThis.state,t);u&&(s=u)}}else typeof t=="object"&&t!==null?s=t.__path||(typeof t.toString=="function"&&t.toString()!=="[object Object]"?t.toString():""):typeof t=="string"&&(t.startsWith("state.")||t.startsWith("store."))&&(s=t);if(s){s=s.replace(/^(\(\)\s*=>\s*)/,"").replace(/^globalThis\./,"").replace(/^state\./,"");let n=s.startsWith("store.")||s.startsWith("state.")?s:"state."+s;globalThis.memorio.dispatch.listen(n,()=>e()),o.push(n)}else{globalThis.memorio._trackedPaths?.clear(),globalThis.memorio._tracking=!0;try{e()}catch{}globalThis.memorio._tracking=!1,globalThis.memorio._trackedPaths?.forEach(n=>{o.includes(n)||(console.info(`useObserver: [Auto-Discovery] -> "${n}"`),globalThis.memorio.dispatch.listen(n,()=>e()),o.push(n))})}}),o.length>0?console.info(`useObserver: Monitoring ${o.length} paths.`):console.warn("useObserver: No paths resolved for monitoring. Check your dependencies!"),()=>{o.forEach(t=>{globalThis.memorio.dispatch&&typeof globalThis.memorio.dispatch.remove=="function"&&(globalThis.memorio.dispatch.remove(t),console.debug(`useObserver: Stopped monitoring "${t}"`))})}}catch(t){return console.debug("useObserver Error:",t),()=>{}}});Object.freeze(globalThis.useObserver)});var j=l(()=>{"use strict";a();Object.defineProperty(globalThis,"store",{value:new Proxy({},{}),enumerable:!1,configurable:!0});Object.defineProperties(store,{get:{value:e=>{if(e){try{let r=globalThis.localStorage.getItem(e);return r&&JSON.parse(r)}catch(r){console.debug(`Error parsing store item '${e}':`,r)}return null}}},set:{value:(e,r)=>{if(e){try{r==null?globalThis.localStorage.setItem(e,JSON.stringify(null)):typeof r=="object"||typeof r=="number"||typeof r=="boolean"||typeof r=="string"?globalThis.localStorage.setItem(e,JSON.stringify(r)):typeof r=="function"&&console.debug("It's not secure to store functions.")}catch(o){console.debug(`Error setting store item '${e}':`,o)}return null}}},remove:{value:e=>{if(e)return globalThis.localStorage.getItem(e)?(globalThis.localStorage.removeItem(e),!0):!1}},delete:{value:e=>(store.remove(e),!0)},removeAll:{value:()=>(globalThis.localStorage.clear(),!0)},clearAll:{value:()=>(store.removeAll(),!0)},quota:{value:async()=>globalThis.navigator&&"storage"in globalThis.navigator&&"estimate"in globalThis.navigator.storage?globalThis.navigator.storage.estimate().then(({usage:e,quota:r})=>{let o=e??0,i=r??0;return o&&i&&console.debug(`Using ${o/1024} out of ${i/1024} Mb.`),[o/1024,i/1024]}).catch(e=>(console.debug("Error estimating quota:",e),[0,0])):[0,0]},size:{value:()=>{let e=0;return Object.keys(globalThis.localStorage).forEach(r=>{let o=globalThis.localStorage.getItem(r);o&&(e+=o.length)}),e}}});Object.freeze(store)});var x=l(()=>{"use strict";a();Object.defineProperty(globalThis,"session",{value:new Proxy({},{}),enumerable:!1,configurable:!0});Object.defineProperties(session,{get:{value:e=>{if(e)try{let r=globalThis.sessionStorage.getItem(e);return r&&JSON.parse(r)}catch(r){console.debug(`Error parsing session item '${e}':`,r)}}},set:{value:(e,r)=>{if(e)try{r==null?globalThis.sessionStorage.setItem(e,JSON.stringify(null)):typeof r=="object"||typeof r=="number"||typeof r=="boolean"||typeof r=="string"?globalThis.sessionStorage.setItem(e,JSON.stringify(r)):typeof r=="function"&&console.debug("It's not secure to session functions.")}catch(o){console.debug(`Error setting session item '${e}':`,o)}}},remove:{value:e=>{if(e&&globalThis.sessionStorage.getItem(e))return globalThis.sessionStorage.removeItem(e),!0}},delete:{value:e=>(session.remove(e),!0)},removeAll:{value:()=>(globalThis.sessionStorage.clear(),!0)},clearAll:{value:()=>(session.removeAll(),!0)},quota:{value:async()=>globalThis.navigator&&"storage"in globalThis.navigator&&"estimate"in globalThis.navigator.storage?globalThis.navigator.storage.estimate().then(({usage:e,quota:r})=>{let o=e??0,i=r??0;return o&&i&&console.debug(`Using ${o/1024} out of ${i/1024} Mb.`),[o/1024,i/1024]}).catch(e=>(console.debug("Error estimating quota:",e),[0,0])):[0,0]},size:{value:()=>{let e=0;return Object.keys(globalThis.sessionStorage).forEach(r=>{let o=globalThis.sessionStorage.getItem(r);o&&(e+=o.length)}),e}}});Object.freeze(session)});var d,E=l(()=>{"use strict";a();d={};Object.defineProperty(globalThis,"cache",{value:new Proxy({},{get(e,r){let o=r;return o==="get"?i=>d[i]:o==="set"?(i,t)=>{d[i]=t}:o==="remove"?i=>(delete d[i],!0):o==="removeAll"?()=>(Object.keys(d).forEach(i=>delete d[i]),!0):o==="clear"?()=>(Object.keys(d).forEach(i=>delete d[i]),!0):d[o]},set(e,r,o){return d[r]=o,!0},deleteProperty(e,r){return delete d[r],!0}}),enumerable:!1,configurable:!0});Object.freeze(cache)});var U={};var D=l(()=>{"use strict";a();idb.db.create=(e,r=1)=>new Promise((o,i)=>{if(!idb.db.support())return i(new Error("IndexedDB not supported"));let t=globalThis.indexedDB.open(e,r);t.onerror=()=>{console.debug(`IndexedDB error: ${t.error?.message}`),i(t.error)},t.onsuccess=()=>{console.debug(`Database ${e} connected successfully`),idb.db.list(),o(t.result)},t.onupgradeneeded=()=>{console.debug(`Database ${e} upgrade/creation initiated`)}})});var W={};var $=l(()=>{"use strict";a();idb.db.list=async()=>{if(!("indexedDB"in globalThis)||!indexedDB.databases)return[];try{let e=await indexedDB.databases();return globalThis.idbases=e||[],await idb.db.size(),globalThis.idbases}catch(e){return console.error("Error listing databases:",e),[]}};idb.db.list()});var Y={};var k=l(()=>{"use strict";a();idb.db.exist=e=>idbases?.some(r=>r.name===e)});var L={};var _=l(()=>{"use strict";a();idb.db.quota=()=>navigator.storage.estimate()});var K={};var I=l(()=>{"use strict";a();idb.db.delete=e=>new Promise((r,o)=>{console.debug(`Removing database ${e}...`);let i=()=>{let t=indexedDB.deleteDatabase(e);t.onsuccess=()=>{console.debug(`${e} database removed successfully`),idb.db.list(),r()},t.onerror=()=>{console.error(`Error removing ${e}:`,t.error),o(t.error)},t.onblocked=()=>{console.warn(`Deletion of ${e} is blocked. Please close other tabs.`)}};confirm(`Are you sure you want to remove the "${e}" database?`)?i():(console.debug("Database deletion cancelled by user."),r())})});var G={};var q=l(()=>{"use strict";a();idb.db.size=async()=>{if(!(!idbases||idbases.length===0))for(let e=0;e<idbases.length;e++){let r=idbases[e];try{let o=await idb.db.create(r.name,r.version),i=Array.from(o.objectStoreNames),t=0;for(let s of i){let n=await idb.table.size(o,s);t+=n}r.size=t,o.close()}catch(o){console.debug(`Could not calculate size for ${r.name}:`,o)}}}});var H={};var z=l(()=>{"use strict";a();idb.db.version=e=>{let r=0;for(let o of idbases){o.name===e&&(r=o.version);break}return r}});var Q={};var A=l(()=>{"use strict";a();idb.db.support=()=>{let e="indexedDB"in globalThis;return e||console.debug("Your environment doesn't support IndexedDB"),e}});var X={};var B=l(()=>{"use strict";a();idb.table.create=(e,r)=>new Promise(async(o,i)=>{try{let s=(Number(idb.db.version(e))||0)+1,n=indexedDB.open(e,s);n.onupgradeneeded=u=>{let b=u.target.result;if(!b.objectStoreNames.contains(r)){let c=b.createObjectStore(r,{keyPath:"id",autoIncrement:!0});c.createIndex("id","id",{unique:!0}),c.createIndex("data","data",{unique:!1}),console.debug(`Table ${r} created in ${e}`)}},n.onsuccess=()=>{n.result.close(),idb.db.list(),o()},n.onerror=()=>{console.error(`Error creating table ${r}:`,n.error),i(n.error)}}catch(t){console.error("Critical error in table.create:",t),i(t)}})});var Z={};var R=l(()=>{"use strict";a();idb.table.size=(e,r)=>new Promise((o,i)=>{if(!e)return i(new Error("Database instance is required"));if(!e.objectStoreNames.contains(r))return o(0);let t=0,s=0,b=e.transaction([r],"readonly").objectStore(r).openCursor();b.onsuccess=async c=>{let g=c.target.result;if(g){try{let f=g.value;t+=JSON.stringify(f).length}catch(f){console.debug("Error stringifying IDB value tracking size:",f)}s++,s%200===0&&await new Promise(f=>setTimeout(f,0)),g.continue()}else o(t)},b.onerror=()=>{i(b.error)}})});var ee={};var N=l(()=>{"use strict";a();idb.data.delete=(e,r,o)=>new Promise((i,t)=>{let s=indexedDB.open(e);s.onsuccess=()=>{let n=s.result;if(!n.objectStoreNames.contains(r))return n.close(),t(new Error(`Table ${r} not found`));let c=n.transaction(r,"readwrite").objectStore(r).delete(o);c.onsuccess=()=>{n.close(),console.debug(`Record ${o} deleted from ${r}`),i()},c.onerror=()=>{n.close(),t(c.error)}},s.onerror=()=>t(s.error)});idb.data.delete.all=(e,r)=>new Promise((o,i)=>{let t=indexedDB.open(e);t.onsuccess=s=>{let n=s.target.result;if(!n.objectStoreNames.contains(r))return n.close(),i(new Error(`Table ${r} not found`));let c=n.transaction(r,"readwrite").objectStore(r).clear();c.onsuccess=()=>{n.close(),console.debug(`All data cleared from ${r}`),o()},c.onerror=()=>{n.close(),i(c.error)}},t.onerror=()=>i(t.error)})});var re={};var C=l(()=>{"use strict";a();idb.data.set=(e,r,o)=>new Promise((i,t)=>{let s=indexedDB.open(e);s.onsuccess=()=>{let n=s.result;if(!n.objectStoreNames.contains(r))return n.close(),t(new Error(`Table ${r} does not exist in ${e}`));let c=n.transaction(r,"readwrite").objectStore(r).put(o);c.onsuccess=()=>{n.close(),console.debug(`Data saved in ${e}.${r}`),i(c.result)},c.onerror=g=>{n.close(),console.debug(`Database insert error: ${c.error?.message}`),t(c.error)}},s.onerror=()=>{t(s.error)}})});var te={};var J=l(()=>{"use strict";a();idb.data.get=(e,r,o)=>new Promise((i,t)=>{let s=indexedDB.open(e);s.onsuccess=n=>{let u=n.target.result;if(!u.objectStoreNames.contains(r))return u.close(),t(new Error(`Table ${r} not found in ${e}`));let g=u.transaction(r,"readonly").objectStore(r).get(o);g.onsuccess=()=>{u.close(),i(g.result)},g.onerror=()=>{u.close(),t(g.error)}},s.onerror=()=>{t(s.error)}})});var V=l(()=>{"use strict";a();(async()=>(Object.defineProperty(globalThis,"idb",{value:{db:{},table:{},data:{}},writable:!0,configurable:!0,enumerable:!1}),Object.defineProperty(globalThis,"idbases",{value:[],writable:!0,configurable:!0,enumerable:!1}),await Promise.all([Promise.resolve().then(()=>(D(),U)),Promise.resolve().then(()=>($(),W)),Promise.resolve().then(()=>(k(),Y)),Promise.resolve().then(()=>(_(),L)),Promise.resolve().then(()=>(I(),K)),Promise.resolve().then(()=>(q(),G)),Promise.resolve().then(()=>(z(),H)),Promise.resolve().then(()=>(A(),Q)),Promise.resolve().then(()=>(B(),X)),Promise.resolve().then(()=>(R(),Z)),Promise.resolve().then(()=>(N(),ee)),Promise.resolve().then(()=>(C(),re)),Promise.resolve().then(()=>(J(),te))]),Object.preventExtensions(idb),Object.seal(idb),Object.freeze(idb)))()});var a=l(()=>{m();v();T();O();S();w();j();x();E();V()});a(); |
+3
-3
| { | ||
| "name": "memorio", | ||
| "version": "2.5.1", | ||
| "version": "2.5.2", | ||
| "type": "module", | ||
@@ -69,3 +69,3 @@ "private": false, | ||
| "devDependencies": { | ||
| "@types/node": "25.3.2", | ||
| "@types/node": "25.3.3", | ||
| "esbuild": "0.27.3", | ||
@@ -77,2 +77,2 @@ "esbuild-node-externals": "1.20.1", | ||
| } | ||
| } | ||
| } |
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
Long strings
Supply chain riskContains long string literals, which may be a sign of obfuscated or packed code.
Found 1 instance in 1 package
238996
-0.04%