Comparing version
@@ -1,2 +0,2 @@ | ||
import e from"lodash.mergewith";import t from"lodash.reduce";import{customAlphabet as r}from"nanoid";import{compress as n,isCompressed as o,decompress as s}from"minie";function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(this,arguments)}const i=e=>Symbol(`📦${e}`),a=e=>`${e.toString()}`,f=e=>{var t;if("symbol"==typeof e)return e;const r=null==e.match||null==(t=e.match(/\(.+\)/g))?void 0:t[0];if(!r)throw new Error("Invalid symbol string");const n=p.find(e=>e.toString().includes(r.slice(1,-1)));if(!n)throw new Error("No symbol found");return n},u=i("RF"),l=i("PR"),d=i("CA"),y=i("UA"),h=i("UO"),p=[u,l,d,y,h],g=i("DT"),m=i("CX"),b=i("RT"),w=i("SR"),R=i("IP");var v={__proto__:null,createSymbol:i,toString:a,toSymbol:f,Reference:u,ParentReference:l,CreatedAt:d,UpdatedAt:y,UpdateIndex:h,ContextSymbols:p,Data:g,Contexts:m,Root:b,Source:w,IsProxied:R};const O=r("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",12),S=e=>"object"==typeof e&&null!==e,j=()=>`${O()}${process.hrtime.bigint().toString(36)}`,A=(e,t)=>"symbol"==typeof t?t:Array.isArray(e)&&"number"==typeof+t&&!Number.isNaN(+t)?+t:`${t}`,P=(e,t)=>{const r=(e,t)=>{const r=A(e,t);return Reflect.get(e,r)};return"string"!=typeof t?r(e,t):`${t}`.split(".").reduce(r,e)},C=(e,t,r,n=e)=>{const o=A(e,t);return Reflect.set(e,o,r,n)},k=(e,t)=>{for(const r of Reflect.ownKeys(e)){const n=Reflect.get(e,r);S(n)&&(t(r,n,e),k(n,t))}},x=(e,r,n=e)=>t(e,(e,t,n)=>{const o=r(e,t,n);return S(o[n])?e[n]=x(e[n],r):e=o,e},n),E=e=>Object.keys(e).reduce((t,r)=>{const n=Reflect.get(e,r);return Array.prototype.push.call(t,r),S(n)&&Array.prototype.push.apply(t,E(n).map(e=>`${r}.${e}`)),t},[]),N=e=>(Object.freeze(e),void 0===e||Object.getOwnPropertyNames(e).forEach(t=>{null===e[t]||"object"!=typeof e[t]&&"function"!=typeof e[t]||Object.isFrozen(e[t])||N(e[t])}),e);var _={__proto__:null,UID_LENGTH:12,TS_LENGTH:10,uid:O,isObjectLike:S,newReference:j,parseKey:A,get:P,set:C,traverse:k,reduceDeep:x,flatKeys:E,deepFreeze:N};const I={configurable:!0,writable:!1,enumerable:!1},$=(e,t,r)=>{if(!S(e))return;const{forceNewReference:n=!0}=r||{};let o=L(e)||j(),s=L(t),i=T(e)||(new Date).getTime();if(n||!S(t)||Array.isArray(t)){if(o===s)throw new Error(`Parent (${s}) can't have the same reference as the target ${o}`)}else J(e)!==s&&(o=s,s=J(t),i=T(t));Object.defineProperties(e,{[u]:c({},I,{value:o}),[l]:c({},I,{value:s}),[d]:c({},I,{value:i}),[y]:c({},I,{value:(new Date).getTime()}),[h]:c({},I,{value:`${process.hrtime.bigint()}`})})},D=(e,t={asStringKey:!1,isDefinedOnly:!0})=>{if(!S(e))throw new Error("Source must be an ObjectLike.");return Object.getOwnPropertySymbols(e).reduce((r,n)=>{if(p.includes(n)){const o=t.asStringKey?a(n):n,s=Reflect.get(e,n);(t.isDefinedOnly||void 0!==s)&&Reflect.set(r,o,c({},I,{value:s}))}return r},{})},K=(e,t,r={asSymbolKey:!1})=>{if(!S(e))throw new Error("Source must be an ObjectLike.");const n=Reflect.ownKeys(t).reduce((e,n)=>{const o=Reflect.get(t,n),s=r.asSymbolKey?f(n):n;return Reflect.set(e,s,o),e},{});Object.defineProperties(e,c({},Object.getOwnPropertyDescriptors(e),n))},U=e=>{if(!S(e))return;const t=Reflect.get(e,h);return t?BigInt(t):void 0},T=e=>S(e)?Reflect.get(e,y):void 0,L=e=>S(e)?Reflect.get(e,u):void 0,J=e=>S(e)?Reflect.get(e,l):void 0,z=e=>S(e)?Reflect.get(e,w):void 0,F=e=>{const t=new Map;return k({target:e},(e,r)=>{const n=L(r);n&&t.set(n,r)}),t},B=(e,t)=>(U(e)||Infinity)>(U(t)||Infinity)?1:-1;var G={__proto__:null,descriptorDefaults:I,inherit:$,get:D,set:K,copy:(e,t)=>{const r=D(e);return K(t,r),t},getUpdateIndex:U,getCreatedAt:T,getUpdatedAt:e=>S(e)?Reflect.get(e,y):void 0,getReference:L,getParentReference:J,getSource:z,getReferences:F,getParentReferences:e=>{const t=new Set;return k(e,(e,r)=>{const n=J(r);n&&t.add(n)}),[...t.values()]},sortByOldestUpdate:B};const H=a(b),M=a(g),W=a(m),X=(e,t)=>t===H?e:P(e,t),q=(e,t={output:"compressed"})=>{if(Q(e))return e;if(!S(e)||!L(e))throw new Error("Source must be a valid ObjectLike created via make() method.");const r=[H,...E(e)].reduce((t,r)=>{const n=X(e,r);if(!S(n))return t;const o=D(n,{asStringKey:!0});return Object.keys(o||{}).length&&(t[r]=o),t},{}),o={[M]:ee(e),[W]:r};return"compressed"===t.output?n(JSON.stringify(o)):o},Q=e=>o(e)||S(e)&&Reflect.has(e,W),V=e=>{let t=e;if(o(t))try{t=JSON.parse(s(t))}catch(e){throw new Error("Invalid compressed data")}if(!S(t)||!Reflect.has(t,W))throw new Error("Written object must be valid. (created via write() method).");const r=Reflect.get(t,M),n=Reflect.get(t,W),c=ee(r);for(const e of Object.keys(n)){const t=X(c,e),r=Reflect.get(n,e);K(t,r,{asSymbolKey:!0})}return c},Y=(e,t)=>{const r=ee(se(e)),n=se(t);if(void 0!==n&&!L(n))throw new Error(`Parent object doesn't include any references. Run it through make() first. ${n}`);$(r,n,{forceNewReference:!1});const o=x(r,(e,t,r)=>(S(t)&&$(t,e),S(e)&&(e[r]=t),e));return Z(o)},Z=e=>S(e)?new Proxy(e,{get:(e,t)=>t===R||(t===w?e:P(e,t)),set(e,t,r,n){const o=Y(r,e);return C(e,t,o,n),!0}}):e,ee=(e,t={withContext:!0})=>{if(!S(e))return e;const r=Array.isArray(e)?[]:{};if(t.withContext){const t=D(e);K(r,t)}for(const n of Object.keys(e))Reflect.set(r,n,ee(Reflect.get(e,n),t));return r},te=e=>ee(z(e)||e,{withContext:!1}),re=(t,r)=>Reflect.get(e({root:ee(t)},{root:ee(r)},(e,t)=>{if(Array.isArray(e)&&Array.isArray(t)){const r=ee(e);if(Array.isArray(t)){for(const e of r){const r=S(e)&&t.find(t=>L(t)===L(e));r&&Object.assign(e,re(e,r))}for(const e of t)S(e)&&r.findIndex(t=>L(t)===L(e))>-1||r.push(e)}return r}}),"root"),ne=(...e)=>{const t=e.reduce((e,t)=>{const[,...r]=Array.from(F(t).keys());for(const t of r)e.add(t);return e},new Set);return e.find(e=>!t.has(L(e)))},oe=(...e)=>{const t=e.map(se).sort(B),r=ne(...t);if(!r)return{data:void 0,unstitchedPatches:t,stitchedPatchesCount:0};t.splice(t.indexOf(r),1);let n=new Set(F(r).keys()),o=ee(r),s=0,c=1;for(;t.length&&s<t.length;){const e=t.shift(),r=L(e),i=J(e);if(r||i)if(n.has(r)||n.has(i)){const t=F(e);n=new Set([...n,...t.keys()]),s=0,o=Reflect.get(x({root:o},(t,n,o)=>(L(n)===i&&Array.isArray(n)?t[o]=re(n,[e]):L(n)===r?t[o]=re(n,e):S(t)&&(t[o]=n),t),{root:o}),"root"),c++}else t.push(e),s++;else o=re(o,e),c++}return{data:o,unstitchedPatches:t,stitchedPatchesCount:c}},se=e=>Q(e)?V(e):e,ce=(...e)=>{const{data:t,unstitchedPatches:r,stitchedPatchesCount:n}=oe(...e);if(!n)throw new Error("Could not determine a way to stitch the patches.");if(r.length)throw new Error("Could not stitch all patches.");return t},ie=(e,...t)=>{const r=ee(e);return Object.defineProperties(r,t.reduce((e,t)=>(e[t]={writable:!1,value:N(Reflect.get(r,t))},e),{}))};class ae extends Array{push(...e){const t=e.map(e=>q(e));return super.push(...t)}add(...e){const t=e.map(e=>q(e));return super.push(...t),t}read(e){const t=JSON.parse(s(e)),r=new ae;return r.push(...t),r}write(){return n(JSON.stringify(this))}stitch(){return ce(...this)}}var fe={make:Y,stitch:ce,write:q,read:V,Patches:ae};export{G as Context,ae as Patches,v as Symbols,ee as clone,fe as default,ne as findMainPatch,Q as isWritten,Y as make,re as merge,se as parse,ie as protect,Z as proxy,V as read,oe as report,ce as stitch,te as unmake,_ as utils,q as write}; | ||
import e from"lodash.mergewith";import t from"lodash.reduce";import{customAlphabet as r}from"nanoid";import{compress as n,isCompressed as o,decompress as s}from"minie";function c(){return c=Object.assign?Object.assign.bind():function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var n in r)Object.prototype.hasOwnProperty.call(r,n)&&(e[n]=r[n])}return e},c.apply(this,arguments)}const i=e=>Symbol(`📦${e}`),a=e=>`${e.toString()}`,f=e=>{var t;if("symbol"==typeof e)return e;const r=null==e.match||null==(t=e.match(/\(.+\)/g))?void 0:t[0];if(!r)throw new Error("Invalid symbol string");const n=p.find(e=>e.toString().includes(r.slice(1,-1)));if(!n)throw new Error("No symbol found");return n},u=i("RF"),l=i("PR"),d=i("CA"),h=i("UA"),y=i("UO"),p=[u,l,d,h,y],g=i("DT"),m=i("CX"),w=i("RT"),b=i("SR"),R=i("IP");var v={__proto__:null,createSymbol:i,toString:a,toSymbol:f,Reference:u,ParentReference:l,CreatedAt:d,UpdatedAt:h,UpdateIndex:y,ContextSymbols:p,Data:g,Contexts:m,Root:w,Source:b,IsProxied:R};const O=r("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",12),S=e=>"object"==typeof e&&null!==e,j=()=>`${O()}${process.hrtime.bigint().toString(36)}`,A=(e,t)=>"symbol"==typeof t?t:Array.isArray(e)&&"number"==typeof+t&&!Number.isNaN(+t)?+t:`${t}`,P=(e,t)=>{const r=(e,t)=>{const r=A(e,t);return Reflect.get(e,r)};return"string"!=typeof t?r(e,t):`${t}`.split(".").reduce(r,e)},k=(e,t,r,n=e)=>{const o=A(e,t);return Reflect.set(e,o,r,n)},C=(e,t)=>{for(const r of Reflect.ownKeys(e)){const n=Reflect.get(e,r);S(n)&&(t(r,n,e),C(n,t))}},x=(e,r,n=e)=>t(e,(e,t,n)=>{const o=r(e,t,n);return S(o[n])?e[n]=x(e[n],r):e=o,e},n),E=e=>Object.keys(e).reduce((t,r)=>{const n=Reflect.get(e,r);return Array.prototype.push.call(t,r),S(n)&&Array.prototype.push.apply(t,E(n).map(e=>`${r}.${e}`)),t},[]),N=e=>(Object.freeze(e),void 0===e||Object.getOwnPropertyNames(e).forEach(t=>{null===e[t]||"object"!=typeof e[t]&&"function"!=typeof e[t]||Object.isFrozen(e[t])||N(e[t])}),e);var _={__proto__:null,UID_LENGTH:12,TS_LENGTH:10,uid:O,isObjectLike:S,newReference:j,parseKey:A,get:P,set:k,traverse:C,reduceDeep:x,flatKeys:E,deepFreeze:N};const I={configurable:!0,writable:!1,enumerable:!1},$=(e,t,r)=>{if(!S(e))return;const{forceNewReference:n=!0}=r||{};let o=L(e)||j(),s=L(t),i=T(e)||(new Date).getTime();if(n||!S(t)||Array.isArray(t)){if(o===s)throw new Error(`Parent (${s}) can't have the same reference as the target ${o}`)}else J(e)!==s&&(o=s,s=J(t),i=T(t));Object.defineProperties(e,{[u]:c({},I,{value:o}),[l]:c({},I,{value:s}),[d]:c({},I,{value:i}),[h]:c({},I,{value:(new Date).getTime()}),[y]:c({},I,{value:`${process.hrtime.bigint()}`})})},D=(e,t={asStringKey:!1,isDefinedOnly:!0})=>{if(!S(e))throw new Error("Source must be an ObjectLike.");return Object.getOwnPropertySymbols(e).reduce((r,n)=>{if(p.includes(n)){const o=t.asStringKey?a(n):n,s=Reflect.get(e,n);(t.isDefinedOnly||void 0!==s)&&Reflect.set(r,o,c({},I,{value:s}))}return r},{})},K=(e,t,r={asSymbolKey:!1})=>{if(!S(e))throw new Error("Source must be an ObjectLike.");const n=Reflect.ownKeys(t).reduce((e,n)=>{const o=Reflect.get(t,n),s=r.asSymbolKey?f(n):n;return Reflect.set(e,s,o),e},{});Object.defineProperties(e,c({},Object.getOwnPropertyDescriptors(e),n))},U=e=>{if(!S(e))return;const t=Reflect.get(e,y);return t?BigInt(t):void 0},T=e=>S(e)?Reflect.get(e,h):void 0,L=e=>S(e)?Reflect.get(e,u):void 0,J=e=>S(e)?Reflect.get(e,l):void 0,z=e=>S(e)?Reflect.get(e,b):void 0,F=e=>{const t=new Map;return C({target:e},(e,r)=>{const n=L(r);n&&t.set(n,r)}),t},B=(e,t)=>(U(e)||Infinity)>(U(t)||Infinity)?1:-1;var G={__proto__:null,descriptorDefaults:I,inherit:$,get:D,set:K,copy:(e,t)=>{const r=D(e);return K(t,r),t},getUpdateIndex:U,getCreatedAt:T,getUpdatedAt:e=>S(e)?Reflect.get(e,h):void 0,getReference:L,getParentReference:J,getSource:z,getReferences:F,getParentReferences:e=>{const t=new Set;return C(e,(e,r)=>{const n=J(r);n&&t.add(n)}),[...t.values()]},sortByOldestUpdate:B};const H=(e,t={withContext:!0})=>{if(!S(e))return e;const r=Array.isArray(e)?[]:{};if(t.withContext){const t=D(e);K(r,t)}for(const n of Object.keys(e))Reflect.set(r,n,H(Reflect.get(e,n),t));return r},M=a(w),W=a(g),X=a(m),q=(e,t)=>t===M?e:P(e,t),Q=(e,t={output:"compressed"})=>{if(V(e))return e;if(!S(e)||!L(e))throw new Error("Source must be a valid ObjectLike created via make() method.");const r=[M,...E(e)].reduce((t,r)=>{const n=q(e,r);if(!S(n))return t;const o=D(n,{asStringKey:!0});return Object.keys(o||{}).length&&(t[r]=o),t},{}),o={[W]:H(e),[X]:r};return"compressed"===t.output?n(JSON.stringify(o)):o},V=e=>o(e)||S(e)&&Reflect.has(e,X),Y=e=>{let t=e;if(o(t))try{t=JSON.parse(s(t))}catch(e){throw new Error("Invalid compressed data")}if(!S(t)||!Reflect.has(t,X))throw new Error("Written object must be valid. (created via write() method).");const r=Reflect.get(t,W),n=Reflect.get(t,X),c=H(r);for(const e of Object.keys(n)){const t=q(c,e),r=Reflect.get(n,e);K(t,r,{asSymbolKey:!0})}return c},Z=(e,t)=>{const r=H(se(e)),n=se(t);if(void 0!==n&&!L(n))throw new Error(`Parent object doesn't include any references. Run it through make() first. ${n}`);$(r,n,{forceNewReference:!1});const o=x(r,(e,t,r)=>(S(t)&&$(t,e),S(e)&&(e[r]=t),e));return ee(o)},ee=e=>S(e)?new Proxy(e,{get:(e,t)=>t===R||(t===b?e:P(e,t)),set(e,t,r,n){const o=Z(r,e);return k(e,t,o,n),!0}}):e,te=e=>H(z(e)||e,{withContext:!1}),re=(t,r)=>Reflect.get(e({root:H(t)},{root:H(r)},(e,t)=>{if(Array.isArray(e)&&Array.isArray(t)){const r=H(e);if(Array.isArray(t)){for(const e of r){const r=S(e)&&t.find(t=>L(t)===L(e));r&&Object.assign(e,re(e,r))}for(const e of t)S(e)&&r.findIndex(t=>L(t)===L(e))>-1||r.push(e)}return r}}),"root"),ne=(...e)=>{const t=e.reduce((e,t)=>{const[,...r]=Array.from(F(t).keys());for(const t of r)e.add(t);return e},new Set);return e.find(e=>!t.has(L(e)))},oe=(...e)=>{const t=e.map(se).sort(B),r=ne(...t);if(!r)return{data:void 0,unstitchedPatches:t,stitchedPatchesCount:0};t.splice(t.indexOf(r),1);let n=new Set(F(r).keys()),o=H(r),s=0,c=1;for(;t.length&&s<t.length;){const e=t.shift(),r=L(e),i=J(e);if(r||i)if(n.has(r)||n.has(i)){const t=F(e);n=new Set([...n,...t.keys()]),s=0,o=Reflect.get(x({root:o},(t,n,o)=>(L(n)===i&&Array.isArray(n)?t[o]=re(n,[e]):L(n)===r?t[o]=re(n,e):S(t)&&(t[o]=n),t),{root:o}),"root"),c++}else t.push(e),s++;else o=re(o,e),c++}return{data:o,unstitchedPatches:t,stitchedPatchesCount:c}},se=e=>V(e)?Y(e):e,ce=(...e)=>{const{data:t,unstitchedPatches:r,stitchedPatchesCount:n}=oe(...e);if(!n)throw new Error("Could not determine a way to stitch the patches.");if(r.length)throw new Error("Could not stitch all patches.");return t},ie=(e,...t)=>{const r=H(e);return Object.defineProperties(r,t.reduce((e,t)=>(e[t]={writable:!1,value:N(Reflect.get(r,t))},e),{}))};class ae extends Array{push(...e){const t=e.map(e=>Q(e));return super.push(...t)}add(...e){const t=e.map(e=>Q(e));return super.push(...t),t}read(e){const t=JSON.parse(s(e)),r=new ae;return r.push(...t),r}write(){return n(JSON.stringify(this))}stitch(){return ce(...this)}}const fe={make:Z,stitch:ce,write:Q,read:Y,Patches:ae};var ue={make:Z,stitch:ce,write:Q,read:Y,Patches:ae};export{G as Context,ae as Patches,v as Symbols,fe as cagibi,H as clone,ue as default,ne as findMainPatch,V as isWritten,Z as make,re as merge,se as parse,ie as protect,ee as proxy,Y as read,oe as report,ce as stitch,te as unmake,_ as utils,Q as write}; | ||
//# sourceMappingURL=cagibi.modern.js.map |
{ | ||
"name": "cagibi", | ||
"description": "Tiny asynchronous state management based on static data stitching", | ||
"version": "0.0.29", | ||
"type": "module", | ||
"version": "0.0.30", | ||
"source": "src/index.ts", | ||
"exports": { | ||
"require": "./lib/cagibi.js", | ||
"require": "./lib/cagibi.cjs", | ||
"default": "./lib/cagibi.modern.js" | ||
}, | ||
"main": "./lib/cagibi.js", | ||
"main": "./lib/cagibi.cjs", | ||
"module": "./lib/cagibi.module.js", | ||
@@ -12,0 +13,0 @@ "unpkg": "./lib/cagibi.umd.js", |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Minified code
QualityThis package contains minified code. This may be harmless in some cases where minified code is included in packaged libraries, however packages on npm should not minify code.
Found 1 instance in 1 package
438781
0.22%6
-14.29%Yes
NaN