Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

doura

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

doura - npm Package Compare versions

Comparing version 0.0.11 to 0.0.12

2

dist/doura.d.ts

@@ -282,3 +282,3 @@ export declare type Action = ModifyAction | PatchAction | ReplaceAction;

export declare function snapshot<T>(value: T, draft: Drafted): T;
export declare function snapshot<T>(value: T, draft: Drafted, snapshots?: Map<any, any>): T;

@@ -285,0 +285,0 @@ export declare type State = StateObject;

@@ -1,1 +0,1 @@

const t=()=>{},e=Object.create(null),s=[],n=Object.assign,i=Object.prototype.hasOwnProperty,r=(t,e)=>i.call(t,e),o=Object.prototype.toString,c=t=>o.call(t),a=Array.isArray,l=t=>"[object Map]"===c(t),h=t=>"[object Set]"===c(t),u=t=>"function"==typeof t,f=t=>"string"==typeof t,p=t=>"symbol"==typeof t,d=t=>null!==t&&"object"==typeof t,_=t=>c(t).slice(8,-1),y=t=>"[object Object]"===c(t),g=t=>f(t)&&"NaN"!==t&&"-"!==t[0]&&""+parseInt(t,10)===t,b=(t,e)=>Object.is(t,e),w=(t,e,s)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:s})};function v(t,e){if(!t)throw new Error(`[Doura] ${e||""}`)}const m=Array.prototype.slice;const S=Object.prototype.propertyIsEnumerable;function O(t){return Array.isArray(t)?m.call(t):l(t)?new Map(t):h(t)?new Set(t):Object.getPrototypeOf(t)===Object.prototype?function(t){const e={},s=x(t);for(let n=0;n<s.length;n++){const i=s[n],r=t[i];S.call(t,i)?e[i]=r:Object.defineProperty(e,i,{configurable:!0,writable:!0,enumerable:!1,value:r})}return e}(t):function(t){const e=Object.getOwnPropertyDescriptors(t),s=x(e);for(let n=0;n<s.length;n++){const i=s[n],r=e[i];!1===r.writable&&(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(e[i]={configurable:!0,writable:!0,enumerable:r.enumerable,value:t[i]})}return Object.create(Object.getPrototypeOf(t),e)}(t)}const x="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?t=>Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t)):Object.getOwnPropertyNames;function j(t,e,s=!1){y(t)?(s?Object.keys:x)(t).forEach((n=>{s&&"symbol"==typeof n||e(n,t[n],t)})):t.forEach(((s,n)=>e(n,s,t)))}function E(t,e,s){l(t)?t.set(e,s):h(t)?(t.delete(e),t.add(s)):t[e]=s}const P=t=>t;function M(t,...e){console.warn(`[Doura warn] ${t}`,...e)}function R(t){switch(_(t)){case"Object":return 1;case"Array":return 2;case"Set":return 3;case"Map":return 4;default:return 0}}function C(t){return!!t&&!!t.__r_state}function I(t){const e=A(t);return e?I(e.base):t}function A(t){return t&&t.__r_state}function D(t){return t.copy||t.base}function $(t){t.modified||(t.modified=!0,t.parent&&$(t.parent))}let k;class L{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&k&&(this.parent=k,this.index=(k.scopes||(k.scopes=[])).push(this)-1)}run(t){if(this.active){const e=k;try{return k=this,t()}finally{k=e}}}on(){k=this}off(){k=this.parent}stop(t){if(this.active){let e,s;for(e=0,s=this.effects.length;e<s;e++)this.effects[e].stop();for(e=0,s=this.cleanups.length;e<s;e++)this.cleanups[e]();if(this.scopes)for(e=0,s=this.scopes.length;e<s;e++)this.scopes[e].stop(!0);if(this.parent&&!t){const t=this.parent.scopes.pop();t&&t!==this&&(this.parent.scopes[this.index]=t,t.index=this.index)}this.active=!1}}}const T=t=>{const e=new Set(t);return e.w=0,e.n=0,e},N=t=>(t.w&K)>0,V=t=>(t.n&K)>0,H=new WeakMap,U=new WeakMap;let X=0,K=1;let z;const Y=Symbol(""),J=Symbol("");let F=0;class W{constructor(t,e=null,s){this.fn=t,this.scheduler=e,this.id=F++,this.deps=[],this.active=!0,this.parent=void 0,function(t,e=k){e&&e.active&&e.effects.push(t)}(this,s)}run(){if(!this.active)return this.fn();let t=z;const e=q;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=z,z=this,q=!0,K=1<<++X,X<=30?(({deps:t})=>{if(t.length)for(let e=0;e<t.length;e++)t[e].w|=K})(this):B(this),this.fn()}finally{X<=30&&(t=>{const{deps:e}=t;if(e.length){let s=0;for(let n=0;n<e.length;n++){const i=e[n];N(i)&&!V(i)?i.delete(t):e[s++]=i,i.w&=~K,i.n&=~K}e.length=s}})(this),K=1<<--X,z=this.parent,q=e,this.parent=void 0,this.deferStop&&this.stop()}}stop(){z===this?this.deferStop=!0:this.active&&(B(this),this.onStop&&this.onStop(),this.active=!1)}}function B(t){const{deps:e}=t;if(e.length){for(let s=0;s<e.length;s++)e[s].delete(t);e.length=0}}let q=!0;const G=[];function Q(){G.push(q),q=!1}function Z(){const t=G.pop();q=void 0===t||t}function tt(t,e,s){if(q&&z){let e=H.get(t);e||H.set(t,e=new Map);let n=e.get(s);n||e.set(s,n=T()),st(n)}}function et(t){if(q&&z){const e=t.__r_state;if(!e)return;let s=U.get(e);s||U.set(e,s=T()),st(s)}}function st(t){let e=!1;X<=30?V(t)||(t.n|=K,e=!N(t)):e=!t.has(z),e&&(t.add(z),z.deps.push(t))}function nt(t){const e=U.get(t);if(e){const t=[...e];for(const e of t)e.view&&(e.view.mightChange=!0)}}function it(t,e,s,n,i){var r;const o=H.get(t),c=t.base;let h=[];if(o)if("clear"===e)h=[...o.values()];else if("length"===s&&a(c))o.forEach(((t,e)=>{("length"===e||e>=n)&&h.push(t)}));else switch(void 0!==s&&h.push(o.get(s)),e){case"add":a(c)?g(s)&&h.push(o.get("length")):(h.push(o.get(Y)),l(c)&&h.push(o.get(J)));break;case"delete":a(c)||(h.push(o.get(Y)),l(c)&&h.push(o.get(J)));break;case"set":l(c)&&h.push(o.get(Y))}if(1===h.length)h[0]&&rt(h[0]);else{const t=[];for(const e of h)e&&t.push(...e);rt(T(t))}const u=null===(r=t.root)||void 0===r?void 0:r.listeners;u&&u.length&&u.forEach((t=>t()))}function rt(t){const e=a(t)?t:[...t];for(const s of e)s.view&&ot(s);for(const s of e)s.view||ot(s)}function ot(t){(t!==z||t.allowRecurse)&&(t.scheduler?t.scheduler():t.run())}class ct{constructor(t,{disableCache:e=!1}){this.dep=void 0,this.mightChange=!1,this.dirty=!0,this.effect=new W(t,(()=>{this.dirty||(this.dirty=!0,function(t){(t=I(t)).dep&&rt(t.dep)}(this))})),this.effect.view=this,this.effect.active=this._cacheable=!e}get value(){const t=I(this);return function(t){q&&z&&st((t=I(t)).dep||(t.dep=T()))}(t),!t.dirty&&t._cacheable||(t.dirty=!1,t._value=t.effect.run()),t._value}set value(t){}}const at=new Set(["__proto__"]),lt=new Set(Object.getOwnPropertyNames(Symbol).filter((t=>"arguments"!==t&&"caller"!==t)).map((t=>Symbol[t])).filter(p));function ht(t){t.copy||(t.copy=O(t.base))}function ut(t,e){const s=t.__r_state;return(s?D(s):t)[e]}const ft=_t(),pt=dt();function dt(){const t={};return["includes","indexOf","lastIndexOf"].forEach((e=>{t[e]=function(...t){const s=A(this),n=D(s);for(let e=0,r=this.length;e<r;e++)tt(s,0,e+"");const i=n[e](...t);return-1===i||!1===i?n[e](...t.map(I)):i}})),["push","pop","shift","unshift","splice"].forEach((e=>{t[e]=function(...t){Q();const s=D(A(this))[e].apply(this,t);return Z(),s}})),t}function _t(){return function(t,e,s){const n=D(t);if("__r_isReactive"===e)return!0;if("__r_state"===e&&s===Ct.get(t))return t;if(a(n)&&r(pt,e))return Reflect.get(pt,e,s);let i=Reflect.get(n,e,s);return(p(e)?lt.has(e):at.has(e))?i:(tt(t,0,e),r(n,e)?(t.disposed||!d(i)||(C(i)||(ht(t),i=t.copy[e]=At(i,t)),et(i)),i):i)}}function yt(){return function(t,e,s,n){const i=D(t),o=ut(i,e),c=a(i)&&g(e)?Number(e)<i.length:r(i,e);if(!t.modified){const n=null==o?void 0:o.__r_state;if(n&&n.base===s)return t.copy[e]=s,!0;if(b(s,o)&&(void 0!==s||r(t.base,e)))return!0;ht(t),$(t)}return b(t.copy[e],s)&&(void 0!==s||e in t.copy)||(t.copy[e]=s,t===A(n)&&(c?b(s,o)||it(t,"set",e,s):it(t,"add",e,s),function(t){let e=t;for(;e;)nt(e),e=e.parent}(t))),!0}}const gt={get:ft,set:yt(),deleteProperty:function(t,e){const s=r(D(t),e);if((void 0!==ut(t.base,e)||e in t.base)&&(ht(t),$(t)),t.copy){const n=delete t.copy[e];return n&&s&&it(t,"delete",e,void 0),n}return!0},has:function(t,e){const s=D(t),n=Reflect.has(s,e);return p(e)&&lt.has(e)||tt(t,0,e),n},ownKeys:function(t){const e=D(t);return tt(t,0,a(e)?"length":Y),Reflect.ownKeys(e)},setPrototypeOf:function(t,e){const s=Reflect.setPrototypeOf(t.base,e);return s&&t.copy&&Reflect.setPrototypeOf(t.copy,e),s},getOwnPropertyDescriptor:function(t,e){const s=D(t),n=Reflect.getOwnPropertyDescriptor(s,e);return n?{writable:!0,configurable:!a(s)||"length"!==e,enumerable:n.enumerable,value:s[e]}:n}};function bt(t){t.copy||(t.copy=new Set,t.base.forEach((e=>{if(d(e)){const s=At(e,t);et(s),e!==s&&t.drafts.set(e,s),t.copy.add(s)}else t.copy.add(e)})))}function wt(t){1===t.type?function(t){t.copy||(t.copy=new Map(t.base))}(t):bt(t)}function vt(t){const e=this.__r_state,s=D(e);if(tt(e,0,t),!s.has(t))return;let n=s.get(t);return d(n)?(C(n)||(wt(e),n=At(n,e),e.copy.set(t,n)),et(n),n):n}function mt(t,e){const s=this.__r_state,n=D(s),i=n.has(t),r=n.get(t),o=()=>{wt(s),$(s),s.copy.set(t,e)};return i?b(e,r)||(o(),it(s,"set",t,e)):(o(),it(s,"add",t,e)),this}function St(t){const e=this.__r_state;return D(e).has(t)||(bt(e),$(e),e.copy.add(t),it(e,"add",t,t)),this}function Ot(t){const e=this.__r_state;return tt(e,0,t),e.copy?!!e.copy.has(t)||2===e.type&&(e.drafts.has(t)&&e.drafts.has(e.drafts.get(t))):e.base.has(t)}function xt(t){const e=this.__r_state,s=D(e),n=s.has(t);"get"in s&&s.get(t),wt(e),$(e);let i=e.copy.delete(t);return 2!==e.type||i||(i=!!e.drafts.has(t)&&e.drafts.delete(e.drafts.get(t))),n&&it(e,"delete",t,void 0),i}function jt(){const t=this.__r_state,e=D(t),s=0!==e.size,n=e.clear();return s&&(wt(t),$(t),t.copy.clear(),it(t,"clear",void 0,void 0)),n}function Et(){const t={get:vt,get size(){return tt(t=this.__r_state,0,Y),D(t).size;var t},has:Ot,add:St,set:mt,delete:xt,clear:jt,keys(){const t=this.__r_state;return 1===t.type?function(t){return tt(t,0,J),D(t).keys()}(t):function(t){return tt(t,0,Y),bt(t),t.copy.values()}(t)},forEach(t,e){const s=this.__r_state;1===s.type?function(t,e,s,n){tt(e,0,Y),D(e).forEach(((i,r)=>s.call(n,e.proxy.get(r),r,t)))}(this,s,t,e):function(t,e,s,n){const i=e.proxy.values();let r=i.next();for(;!r.done;)s.call(n,r.value,r.value,t),r=i.next()}(this,s,t,e)}};return["values","entries",Symbol.iterator].forEach((e=>{t[e]=function(t){return function(...e){const s=this.__r_state,n=1===s.type,i="entries"===t||t===Symbol.iterator&&n;if(n){const t=s.proxy.keys();return{next(){const{value:e,done:n}=t.next(),r=s.proxy.get(e);return n?{value:r,done:n}:{value:i?[e,r]:r,done:n}},[Symbol.iterator](){return this}}}return tt(s,0,Y),bt(s),s.copy[t](...e)}}(e)})),[t]}const[Pt]=Et();function Mt(){const t=Pt;return(e,s,n)=>{if("__r_isReactive"===s)return!0;if("__r_state"===s)return e;const i=D(e);return Reflect.get(r(t,s)&&s in i?t:i,s,n)}}const Rt={get:Mt()};const Ct=new WeakMap;let It=0;function At(t,e){const s=R(t);if(0===s)return t;if(t.__r_skip||!Object.isExtensible(t))return t;if(t.__r_state)return t;let n={type:0,id:It++,root:null,parent:e,base:t,proxy:null,copy:null,modified:!1,disposed:!1,listeners:[],children:[]},i=n,r=gt;3===s?(n.type=2,n.drafts=new Map,i=new Set,r=Rt):4===s?(n.type=1,i=new Map,r=Rt):2===s&&(i=[]),i!==n&&Object.keys(n).forEach((t=>{Object.defineProperty(i,t,{configurable:!0,enumerable:!0,writable:!0,value:n[t]})}));const o=new Proxy(i,r);return i.proxy=o,e?(i.root=e.root,e.children.push(i)):i.root=i,Ct.set(i,o),i.proxy}function Dt(t,e){const s=function(t,{copies:e,proxies:s}){const n=t=>{switch(R(t)){case 1:case 2:return u;case 4:case 3:return h;default:throw new Error("Unpected Error. Please file an issue on https://github.com/dourajs/doura")}},i=t=>{if(!d(t))return t;if(C(t)){let i=s.get(t);if(!i){const r=e.get(t.__r_state);s.set(t,i=new Proxy(r,n(r)))}return i}return t},o=t=>function(...e){const s=this.__r_raw,n="entries"===t||t===Symbol.iterator&&l(this),r=s[t](...e);return{next(){const{value:t,done:e}=r.next();return e?{value:i(t),done:e}:{value:n?[t[0],i(t[1])]:i(t),done:e}},[Symbol.iterator](){return this}}},c=t=>function(...e){return this.__r_raw[t](...e)},a={get size(){return this.__r_raw.size},get(t){const e=this.__r_raw;if(e.has(t))return i(e.get(t))},forEach(t,e){const s=this.__r_raw;return s.forEach(((n,r)=>(n=i(n),t.call(e,n,l(s)?r:n,s))))}};["has","add","set","delete","clear"].forEach((t=>{a[t]=c(t)})),["keys","values","entries",Symbol.iterator].forEach((t=>{a[t]=o(t)}));const h={get:(t,e,s)=>"__r_raw"===e?t:Reflect.get(r(a,e)&&e in t?a:t,e,s)},u={get:(t,e,s)=>i(Reflect.get(t,e,s))};return n(t)}(t,e);if(C(t)){return new Proxy(e.copies.get(t.__r_state),s)}return new Proxy(O(t),s)}function $t(t,e){if(!d(t))return t;const s=function(t){const e=new Map,s={copies:e,proxies:new Map},n=[t.__r_state];for(;n.length;){const t=n.pop();let s;t.modified?(s=O(t.copy),kt(t,s)):s=t.base,e.set(t,s);for(const e of t.children)n.push(e)}return s}(e);return Dt(t,s)}function kt(t,e){t.modified=!1,t.base=e}function Lt(t,e){const s=t.createView((function(){return e(this,this.$actions)})),n=s.getSnapshot;return n.destory=function(){s.effect.stop();const e=t.effectScope.effects.indexOf(s.effect);e>=0&&t.effectScope.effects.splice(e,1)},n}const Tt=n({$name:t=>t.name,$rawState:t=>t.getState(),$state:t=>t.stateValue,$actions:t=>t.actions,$views:t=>t.views,$patch:t=>t.patch,$onAction:t=>t.onAction,$subscribe:t=>t.subscribe,$isolate:t=>t.isolate,$getApi:t=>t.getApi,$createView:t=>Lt.bind(null,t)}),Nt=t=>({_:e},s)=>{const{actions:n,views:i,accessCache:o,ctx:c}=e;let a;if(a=t?e.getState():e.stateValue,"$"!==s[0]){const t=o[s];if(void 0!==t)switch(t){case 0:return a[s];case 2:return i[s];case 1:return n[s];case 3:return c[s]}else{if(r(a,s))return o[s]=0,a[s];if(r(c,s))return o[s]=3,c[s]}}const l=Tt[s];return l?l(e):r(c,s)?(o[s]=3,c[s]):void((t=>"_"===t||"$"===t)(s[0])&&r(a,s)&&M(`Property ${JSON.stringify(s)} must be accessed via $state because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`))},Vt=({_:t},e,s)=>{const{ctx:n,actions:i,views:o,accessContext:c,stateRef:{value:a}}=t;return r(a,e)?1!==c&&(a[e]=s,!0):!r(i,e)&&(!r(o,e)&&("$state"===e?"bigint"!=typeof s&&"symbol"!=typeof s&&(t.replace(s),!0):("$"!==e[0]||!r(Tt,e))&&(n[e]=s,!0)))},Ht={get:Nt(!1),set:Vt},Ut={get:Nt(!0),set:Vt};function Xt(t,e,...s){console.error(t)}let Kt=!1,zt=!1;const Yt=[];let Jt=0;const Ft=[];let Wt=null,Bt=0;const qt=[];let Gt=null,Qt=0;const Zt=Promise.resolve();let te=null,ee=null;function se(t){const e=te||Zt;return t?e.then(this?t.bind(this):t):e}function ne(t){Yt.length&&Yt.includes(t,Kt&&t.allowRecurse?Jt+1:Jt)||t===ee||(null==t.id?Yt.push(t):Yt.splice(function(t){let e=Jt+1,s=Yt.length;for(;e<s;){const n=e+s>>>1;oe(Yt[n])<t?e=n+1:s=n}return e}(t.id),0,t),Kt||zt||(zt=!0,te=Zt.then(ce)))}function ie(t){const e=Yt.indexOf(t);e>=Jt&&Yt.splice(e,1)}function re(t,e=null){if(Ft.length){for(ee=e,Wt=[...new Set(Ft)],Ft.length=0,Bt=0;Bt<Wt.length;Bt++)Wt[Bt]();Wt=null,Bt=0,ee=null,re(t,e)}}const oe=t=>null==t.id?1/0:t.id;function ce(t){zt=!1,Kt=!0,re(t),Yt.sort(((t,e)=>oe(t)-oe(e)));try{for(Jt=0;Jt<Yt.length;Jt++){const t=Yt[Jt];if(t&&!1!==t.active){0;try{t()}catch(e){Xt(e)}}}}finally{Jt=0,Yt.length=0,function(t){if(re(),qt.length){const t=[...new Set(qt)];if(qt.length=0,Gt)return void Gt.push(...t);for(Gt=t,Gt.sort(((t,e)=>oe(t)-oe(e))),Qt=0;Qt<Gt.length;Qt++)Gt[Qt]();Gt=null,Qt=0}}(),Kt=!1,te=null,(Yt.length||Ft.length||qt.length)&&ce(t)}}var ae;function le(t,e){const s=Object.keys(e);s.length&&s.forEach((s=>{r(t,s)&&y(e[s])?le(t[s],e[s]):t[s]=e[s]}))}function he(t){t.dirty=!0}!function(t){t.REPLACE="replace",t.MODIFY="modify",t.PATCH="patch"}(ae||(ae={}));class ue{constructor(e,{name:s,initState:n}){var i;this.viewInstances=[],this._actionDepth=0,this._api=null,this._actionListeners=new Set,this._subscribers=new Set,this._depListenersHandlers=[],this._watchStateChange=!0,this._destroyed=!1,this.patch=this.patch.bind(this),this.onAction=this.onAction.bind(this),this.subscribe=this.subscribe.bind(this),this.isolate=this.isolate.bind(this),this.getApi=this.getApi.bind(this),this._update=this._update.bind(this),this.options=e,this.name=s||"",this._isDispatching=!1,this._initState=n||e.state,this.stateRef=At({value:this._initState}),this._update.__name=s,this._draftListenerHandler=function(e,s){const n=e.__r_state;return n.disposed?t:(n.listeners.push(s),()=>{const t=n.listeners.indexOf(s);t>=0&&n.listeners.splice(t,1)})}(this.stateRef,(()=>{this._watchStateChange&&ne(this._update)})),this._setState(this._initState),this.actions=Object.create(null),this.views=Object.create(null),this.accessContext=0,this.ctx={},w(this.ctx,"_",this),this.accessCache=Object.create(null),this.proxy=new Proxy(this.ctx,Ht),this.publicInst=new Proxy(this.ctx,Ut),this.effectScope=new L(i),this._initActions(),this._initViews()}patch(t){y(t)&&this._currentState&&(this._watchStateChange=!1,le(this.proxy.$state,t),this._watchStateChange=!0,this.dispatch({type:ae.PATCH,args:{patch:t}}))}replace(t){if(d(t)){this._watchStateChange=!1,this.stateRef.value=t,this._watchStateChange=!0;for(const t of this.viewInstances)t.effect.scheduler();this.dispatch({type:ae.REPLACE,payload:t})}else M(`replace argument should be an object, but receive a ${Object.prototype.toString.call(t)}`)}getState(){return this._currentState}getApi(){if(null===this._api){const t=this._api=Object.assign(Object.assign({},this._currentState),this.views);for(const e of Object.keys(this.actions))w(t,e,this.actions[e])}return this._api}onAction(t){return this._actionListeners.add(t),()=>{this._actionListeners.delete(t)}}subscribe(t){return this._subscribers.add(t),()=>{this._subscribers.delete(t)}}isolate(t){Q();const e=t(this.stateValue);return Z(),e}depend(t){this._depListenersHandlers.push(t.subscribe((t=>{this._triggerListener(Object.assign(Object.assign({},t),{model:this.proxy}))})))}createView(t){let e;return this.effectScope.run((()=>{e=function(t,e={}){return new ct(t,e)}((()=>{const n=this.accessContext;this.accessContext=1;const i=e.__externalArgs;try{return t.call(this.proxy,this.proxy,...i||s)}finally{this.accessContext=n}}))})),e.getSnapshot=()=>{const t=e.value;return e.mightChange?(e.mightChange=!1,e.__snapshot=$t(t,this.stateRef.value)):e.__pre!==t&&(e.__snapshot=$t(t,this.stateRef.value)),e.__pre=t,e.__snapshot},this.viewInstances.push(e),e}reducer(t,e){switch(e.type){case ae.MODIFY:case ae.PATCH:return $t(this.stateRef.value,this.stateRef.value);case ae.REPLACE:return e.payload;default:return t}}dispatch(t){if(void 0===t.type)return t;if(this._isDispatching)return t;let e;try{this._isDispatching=!0,e=this.reducer(this._currentState,t)}finally{this._isDispatching=!1}return e!==this._currentState&&(this._setState(e),this._triggerListener(Object.assign({type:t.type,model:this.proxy,target:this.proxy},t.args))),t}destroy(){this._destroyed=!0,this._api=null,this._currentState=null,this.stateRef={value:null},this._subscribers.clear(),this.effectScope.stop();for(const t of this._depListenersHandlers)t();this._draftListenerHandler()}_setState(t){this._api=null,this._currentState=t,this.stateValue=this.stateRef.value}_update(){!this._destroyed&&function(t){return t.__r_state.modified}(this.stateRef)&&(this.dispatch({type:ae.MODIFY}),function(t){const e=t.__r_state;e&&(e.modified=!1)}(this.stateRef))}_triggerListener(t){for(const e of this._subscribers)e(t)}_initActions(){const t=this.options.actions;if(t)for(const e of Object.keys(t)){this.accessCache[e]=1;const s=t[e];Object.defineProperty(this.actions,e,{configurable:!0,enumerable:!0,writable:!1,value:(...t)=>{if(1===this.accessContext)return;let n;this._actionDepth++;try{for(const s of this._actionListeners)s({name:e,args:t});n=s.call(this.proxy,...t)}finally{0==--this._actionDepth&&(ie(this._update),this._update())}return n}})}}_initViews(){const t=this.options.views;if(t)for(const e of Object.keys(t)){this.accessCache[e]=2;const s=t[e],n=s.length>1,i=this.createView(s),r=i;0;Object.defineProperty(this.views,e,{configurable:!0,enumerable:!0,get:n?()=>(...t)=>{const e=r.__externalArgs;if(e){if(e.length!==t.length)he(i);else for(let s=0;s<e.length;s++)if(e[s]!==t[s]){he(i);break}}else he(i);return r.__externalArgs=t,i.getSnapshot()}:i.getSnapshot,set:()=>!1})}}}function fe(t,e={}){return new ue(t,e)}let pe=null;function de(t){pe=t}class _e{constructor(t=e,s=[]){this._subscribers=new Set,this._initialState=t,this._models=(()=>{const t=new Map,e={get:e=>t.get(e),set(e,s){t.set(e,s)},each(e){for(const[s,n]of t.entries())e(n,s)},clear(){e.each((t=>t.destroy())),t.clear()}};return e})();const n=()=>{for(const t of this._subscribers)t()};this._onModelChange=()=>{ne(n)},this._hooks=s.map((([t,e])=>t(e))),this._hooks.map((e=>{var s;return null===(s=e.onInit)||void 0===s?void 0:s.call(e,{initialState:t},{doura:this})}))}getModel(t,e){return this.getModelInstance({name:t,model:e}).publicInst}getDetachedModel(t){return this.getModelInstance({model:t}).publicInst}getModelInstance({name:t,model:e}){const s=t&&this._models.get(t);if(s)return s;let n;if("function"==typeof e){const s=pe,i=this._createModelProxy();try{de({manager:this,model:i}),n=this._initModel({name:t,model:e()})}finally{de(s)}i.setModel(n)}else{if("object"!=typeof e)throw new Error("invalid model");n=this._initModel({name:t,model:e})}return n}getState(){const t={};return this._models.each(((e,s)=>{t[s]=e.getState()})),t}subscribe(t){return this._subscribers.add(t),()=>{this._subscribers.delete(t)}}destroy(){this._hooks.map((t=>{var e;return null===(e=t.onDestroy)||void 0===e?void 0:e.call(t)})),this._models.clear(),this._subscribers.clear(),this._initialState=e}_createModelProxy(){const t=[];return{addChild(e){t.push(e)},setModel(e){for(const s of t)e.depend(s);t.length=0}}}_initModel({name:t,model:e}){if(!t)return fe(e);this._hooks.map((s=>{var n;return null===(n=s.onModel)||void 0===n?void 0:n.call(s,t,e,{doura:this})}));const s=fe(e,{name:t,initState:this._getInitialState(t)});return s.subscribe(this._onModelChange),this._models.set(t,s),this._hooks.map((t=>{var e;null===(e=t.onModelInstance)||void 0===e||e.call(t,s.publicInst,{doura:this})})),s}_getInitialState(t){const e=this._initialState[t];return e&&delete this._initialState[t],e}}function ye(t,e){if(!pe)throw new Error("Invalid use() call. use() can only be called inside of the body of a function model. This could happen for one of the following reasons:\n1. You might be breaking the Rules of Doura\n2. You might have more than one copy of Doura in the same app");const{manager:s,model:n}=pe;let i,r;return"string"==typeof t?(r=t,i=s.getModelInstance({name:r,model:e})):i=s.getModelInstance({model:e=t}),n.addChild(i),i.proxy}function ge({initialState:t,plugins:e=[]}={}){return function({initialState:t,plugins:e}={}){return new _e(t,e)}({initialState:t,plugins:e})}var be=function(){if("undefined"==typeof window||!window.__REDUX_DEVTOOLS_EXTENSION__)return{};let t=0;const e=new Set;let s;return{onInit(n,{doura:i}){if(window.__doura=i,"undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__){s=window.__REDUX_DEVTOOLS_EXTENSION__.connect({name:`doura${0===t?"":t}`}),t+=1,s.init(i.getState());const n=t=>{switch(t.type){case"ACTION":return void v("string"==typeof t.payload,"Unsupported action format");case"DISPATCH":switch(t.payload.type){case"RESET":case"COMMIT":return s.init(i.getState());case"ROLLBACK":try{const e=JSON.parse(t.state);return s.init(e)}catch(e){console.warn("[Doura Devtool] Could not parse the received json.")}return s.init(i.getState());case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return}}};e.add(s.subscribe(n))}},onModelInstance(t,{doura:e}){t.$subscribe((t=>{var{type:n,model:i}=t,r=function(t,e){var s={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(s[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(s[n[i]]=t[n[i]])}return s}(t,["type","model"]);const o=e.getState();delete o._,s.send(Object.assign({type:`${i.$name||"anonymous"}@${n}`},r),o)}))},onDestroy(){window.__REDUX_DEVTOOLS_EXTENSION__.disconnect(s);for(const t of e.values())t();e.clear()}}};export{t as NOOP,n as assign,w as def,P as defineModel,be as devtool,ge as doura,At as draft,j as each,s as emptyArray,e as emptyObject,r as hasOwn,v as invariant,b as is,a as isArray,u as isFunction,g as isIntegerKey,l as isMap,d as isObject,y as isPlainObject,h as isSet,f as isString,p as isSymbol,se as nextTick,o as objectToString,x as ownKeys,E as set,O as shallowCopy,$t as snapshot,_ as toRawType,c as toTypeString,ye as use};
const t=()=>{},e=Object.create(null),s=[],n=Object.assign,i=Object.prototype.hasOwnProperty,r=(t,e)=>i.call(t,e),o=Object.prototype.toString,c=t=>o.call(t),a=Array.isArray,l=t=>"[object Map]"===c(t),h=t=>"[object Set]"===c(t),u=t=>"function"==typeof t,f=t=>"string"==typeof t,p=t=>"symbol"==typeof t,d=t=>null!==t&&"object"==typeof t,_=t=>c(t).slice(8,-1),y=t=>"[object Object]"===c(t),g=t=>f(t)&&"NaN"!==t&&"-"!==t[0]&&""+parseInt(t,10)===t,b=(t,e)=>Object.is(t,e),w=(t,e,s)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:s})};function v(t,e){if(!t)throw new Error(`[Doura] ${e||""}`)}const S=Array.prototype.slice;const m=Object.prototype.propertyIsEnumerable;function O(t){return Array.isArray(t)?S.call(t):l(t)?new Map(t):h(t)?new Set(t):Object.getPrototypeOf(t)===Object.prototype?function(t){const e={},s=x(t);for(let n=0;n<s.length;n++){const i=s[n],r=t[i];m.call(t,i)?e[i]=r:Object.defineProperty(e,i,{configurable:!0,writable:!0,enumerable:!1,value:r})}return e}(t):function(t){const e=Object.getOwnPropertyDescriptors(t),s=x(e);for(let n=0;n<s.length;n++){const i=s[n],r=e[i];!1===r.writable&&(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(e[i]={configurable:!0,writable:!0,enumerable:r.enumerable,value:t[i]})}return Object.create(Object.getPrototypeOf(t),e)}(t)}const x="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?t=>Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t)):Object.getOwnPropertyNames;function j(t,e,s=!1){y(t)?(s?Object.keys:x)(t).forEach((n=>{s&&"symbol"==typeof n||e(n,t[n],t)})):t.forEach(((s,n)=>e(n,s,t)))}function E(t,e,s){l(t)?t.set(e,s):h(t)?(t.delete(e),t.add(s)):t[e]=s}const P=t=>t;function M(t,...e){console.warn(`[Doura warn] ${t}`,...e)}function R(t){switch(_(t)){case"Object":return 1;case"Array":return 2;case"Set":return 3;case"Map":return 4;default:return 0}}function C(t){return!!t&&!!t.__r_state}function D(t){const e=I(t);return e?D(e.base):t}function I(t){return t&&t.__r_state}function A(t){return t.copy||t.base}function $(t){t.modified||(t.modified=!0,t.parent&&$(t.parent))}let T;class k{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&T&&(this.parent=T,this.index=(T.scopes||(T.scopes=[])).push(this)-1)}run(t){if(this.active){const e=T;try{return T=this,t()}finally{T=e}}}on(){T=this}off(){T=this.parent}stop(t){if(this.active){let e,s;for(e=0,s=this.effects.length;e<s;e++)this.effects[e].stop();for(e=0,s=this.cleanups.length;e<s;e++)this.cleanups[e]();if(this.scopes)for(e=0,s=this.scopes.length;e<s;e++)this.scopes[e].stop(!0);if(this.parent&&!t){const t=this.parent.scopes.pop();t&&t!==this&&(this.parent.scopes[this.index]=t,t.index=this.index)}this.active=!1}}}const L=t=>{const e=new Set(t);return e.w=0,e.n=0,e},N=t=>(t.w&K)>0,V=t=>(t.n&K)>0,H=new WeakMap,U=new WeakMap;let X=0,K=1;let z;const Y=Symbol(""),J=Symbol("");let F=0;class W{constructor(t,e=null,s){this.fn=t,this.scheduler=e,this.id=F++,this.deps=[],this.active=!0,this.parent=void 0,function(t,e=T){e&&e.active&&e.effects.push(t)}(this,s)}run(){if(!this.active)return this.fn();let t=z;const e=q;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=z,z=this,q=!0,K=1<<++X,X<=30?(({deps:t})=>{if(t.length)for(let e=0;e<t.length;e++)t[e].w|=K})(this):B(this),this.fn()}finally{X<=30&&(t=>{const{deps:e}=t;if(e.length){let s=0;for(let n=0;n<e.length;n++){const i=e[n];N(i)&&!V(i)?i.delete(t):e[s++]=i,i.w&=~K,i.n&=~K}e.length=s}})(this),K=1<<--X,z=this.parent,q=e,this.parent=void 0,this.deferStop&&this.stop()}}stop(){z===this?this.deferStop=!0:this.active&&(B(this),this.onStop&&this.onStop(),this.active=!1)}}function B(t){const{deps:e}=t;if(e.length){for(let s=0;s<e.length;s++)e[s].delete(t);e.length=0}}let q=!0;const G=[];function Q(){G.push(q),q=!1}function Z(){const t=G.pop();q=void 0===t||t}function tt(t,e,s){if(q&&z){let e=H.get(t);e||H.set(t,e=new Map);let n=e.get(s);n||e.set(s,n=L()),st(n)}}function et(t){if(q&&z){const e=t.__r_state;if(!e)return;let s=U.get(e);s||U.set(e,s=L()),st(s)}}function st(t){let e=!1;X<=30?V(t)||(t.n|=K,e=!N(t)):e=!t.has(z),e&&(t.add(z),z.deps.push(t))}function nt(t){const e=U.get(t);if(e){const t=[...e];for(const e of t)e.view&&(e.view.mightChange=!0)}}function it(t,e,s,n,i){var r;const o=H.get(t),c=t.base;let h=[];if(o)if("clear"===e)h=[...o.values()];else if("length"===s&&a(c))o.forEach(((t,e)=>{("length"===e||e>=n)&&h.push(t)}));else switch(void 0!==s&&h.push(o.get(s)),e){case"add":a(c)?g(s)&&h.push(o.get("length")):(h.push(o.get(Y)),l(c)&&h.push(o.get(J)));break;case"delete":a(c)||(h.push(o.get(Y)),l(c)&&h.push(o.get(J)));break;case"set":l(c)&&h.push(o.get(Y))}if(1===h.length)h[0]&&rt(h[0]);else{const t=[];for(const e of h)e&&t.push(...e);rt(L(t))}const u=null===(r=t.root)||void 0===r?void 0:r.listeners;u&&u.length&&u.forEach((t=>t()))}function rt(t){const e=a(t)?t:[...t];for(const s of e)s.view&&ot(s);for(const s of e)s.view||ot(s)}function ot(t){(t!==z||t.allowRecurse)&&(t.scheduler?t.scheduler():t.run())}class ct{constructor(t,{disableCache:e=!1}){this.dep=void 0,this.mightChange=!1,this.dirty=!0,this.effect=new W(t,(()=>{this.dirty||(this.dirty=!0,function(t){(t=D(t)).dep&&rt(t.dep)}(this))})),this.effect.view=this,this.effect.active=this._cacheable=!e}get value(){const t=D(this);return function(t){q&&z&&st((t=D(t)).dep||(t.dep=L()))}(t),!t.dirty&&t._cacheable||(t.dirty=!1,t._value=t.effect.run()),t._value}set value(t){}}const at=new Set(["__proto__"]),lt=new Set(Object.getOwnPropertyNames(Symbol).filter((t=>"arguments"!==t&&"caller"!==t)).map((t=>Symbol[t])).filter(p));function ht(t){t.copy||(t.copy=O(t.base))}function ut(t,e){const s=t.__r_state;return(s?A(s):t)[e]}const ft=_t(),pt=dt();function dt(){const t={};return["includes","indexOf","lastIndexOf"].forEach((e=>{t[e]=function(...t){const s=I(this),n=A(s);for(let e=0,r=this.length;e<r;e++)tt(s,0,e+"");const i=n[e](...t);return-1===i||!1===i?n[e](...t.map(D)):i}})),["push","pop","shift","unshift","splice"].forEach((e=>{t[e]=function(...t){Q();const s=A(I(this))[e].apply(this,t);return Z(),s}})),t}function _t(){return function(t,e,s){const n=A(t);if("__r_isReactive"===e)return!0;if("__r_state"===e&&s===Ct.get(t))return t;if(a(n)&&r(pt,e))return Reflect.get(pt,e,s);let i=Reflect.get(n,e,s);return(p(e)?lt.has(e):at.has(e))?i:(tt(t,0,e),r(n,e)?(t.disposed||!d(i)||(C(i)||(ht(t),i=t.copy[e]=It(i,t)),et(i)),i):i)}}function yt(){return function(t,e,s,n){const i=A(t),o=ut(i,e),c=a(i)&&g(e)?Number(e)<i.length:r(i,e);if(!t.modified){const n=null==o?void 0:o.__r_state;if(n&&n.base===s)return t.copy[e]=s,!0;if(b(s,o)&&(void 0!==s||r(t.base,e)))return!0;ht(t),$(t)}return b(t.copy[e],s)&&(void 0!==s||e in t.copy)||(t.copy[e]=s,t===I(n)&&(c?b(s,o)||it(t,"set",e,s):it(t,"add",e,s),function(t){let e=t;for(;e;)nt(e),e=e.parent}(t))),!0}}const gt={get:ft,set:yt(),deleteProperty:function(t,e){const s=r(A(t),e);if((void 0!==ut(t.base,e)||e in t.base)&&(ht(t),$(t)),t.copy){const n=delete t.copy[e];return n&&s&&it(t,"delete",e,void 0),n}return!0},has:function(t,e){const s=A(t),n=Reflect.has(s,e);return p(e)&&lt.has(e)||tt(t,0,e),n},ownKeys:function(t){const e=A(t);return tt(t,0,a(e)?"length":Y),Reflect.ownKeys(e)},setPrototypeOf:function(t,e){const s=Reflect.setPrototypeOf(t.base,e);return s&&t.copy&&Reflect.setPrototypeOf(t.copy,e),s},getOwnPropertyDescriptor:function(t,e){const s=A(t),n=Reflect.getOwnPropertyDescriptor(s,e);return n?{writable:!0,configurable:!a(s)||"length"!==e,enumerable:n.enumerable,value:s[e]}:n}};function bt(t){t.copy||(t.copy=new Set,t.base.forEach((e=>{if(d(e)){const s=It(e,t);et(s),e!==s&&t.drafts.set(e,s),t.copy.add(s)}else t.copy.add(e)})))}function wt(t){1===t.type?function(t){t.copy||(t.copy=new Map(t.base))}(t):bt(t)}function vt(t){const e=this.__r_state,s=A(e);if(tt(e,0,t),!s.has(t))return;let n=s.get(t);return d(n)?(C(n)||(wt(e),n=It(n,e),e.copy.set(t,n)),et(n),n):n}function St(t,e){const s=this.__r_state,n=A(s),i=n.has(t),r=n.get(t),o=()=>{wt(s),$(s),s.copy.set(t,e)};return i?b(e,r)||(o(),it(s,"set",t,e)):(o(),it(s,"add",t,e)),this}function mt(t){const e=this.__r_state;return A(e).has(t)||(bt(e),$(e),e.copy.add(t),it(e,"add",t,t)),this}function Ot(t){const e=this.__r_state;return tt(e,0,t),e.copy?!!e.copy.has(t)||2===e.type&&(e.drafts.has(t)&&e.drafts.has(e.drafts.get(t))):e.base.has(t)}function xt(t){const e=this.__r_state,s=A(e),n=s.has(t);"get"in s&&s.get(t),wt(e),$(e);let i=e.copy.delete(t);return 2!==e.type||i||(i=!!e.drafts.has(t)&&e.drafts.delete(e.drafts.get(t))),n&&it(e,"delete",t,void 0),i}function jt(){const t=this.__r_state,e=A(t),s=0!==e.size,n=e.clear();return s&&(wt(t),$(t),t.copy.clear(),it(t,"clear",void 0,void 0)),n}function Et(){const t={get:vt,get size(){return tt(t=this.__r_state,0,Y),A(t).size;var t},has:Ot,add:mt,set:St,delete:xt,clear:jt,keys(){const t=this.__r_state;return 1===t.type?function(t){return tt(t,0,J),A(t).keys()}(t):function(t){return tt(t,0,Y),bt(t),t.copy.values()}(t)},forEach(t,e){const s=this.__r_state;1===s.type?function(t,e,s,n){tt(e,0,Y),A(e).forEach(((i,r)=>s.call(n,e.proxy.get(r),r,t)))}(this,s,t,e):function(t,e,s,n){const i=e.proxy.values();let r=i.next();for(;!r.done;)s.call(n,r.value,r.value,t),r=i.next()}(this,s,t,e)}};return["values","entries",Symbol.iterator].forEach((e=>{t[e]=function(t){return function(...e){const s=this.__r_state,n=1===s.type,i="entries"===t||t===Symbol.iterator&&n;if(n){const t=s.proxy.keys();return{next(){const{value:e,done:n}=t.next(),r=s.proxy.get(e);return n?{value:r,done:n}:{value:i?[e,r]:r,done:n}},[Symbol.iterator](){return this}}}return tt(s,0,Y),bt(s),s.copy[t](...e)}}(e)})),[t]}const[Pt]=Et();function Mt(){const t=Pt;return(e,s,n)=>{if("__r_isReactive"===s)return!0;if("__r_state"===s)return e;const i=A(e);return Reflect.get(r(t,s)&&s in i?t:i,s,n)}}const Rt={get:Mt()};const Ct=new WeakMap;let Dt=0;function It(t,e){const s=R(t);if(0===s)return t;if(t.__r_skip||!Object.isExtensible(t))return t;if(t.__r_state)return t;let n={type:0,id:Dt++,root:null,parent:e,base:t,proxy:null,copy:null,modified:!1,disposed:!1,listeners:[],children:[]},i=n,r=gt;3===s?(n.type=2,n.drafts=new Map,i=new Set,r=Rt):4===s?(n.type=1,i=new Map,r=Rt):2===s&&(i=[]),i!==n&&Object.keys(n).forEach((t=>{Object.defineProperty(i,t,{configurable:!0,enumerable:!0,writable:!0,value:n[t]})}));const o=new Proxy(i,r);return i.proxy=o,e?(i.root=e.root,e.children.push(i)):i.root=i,Ct.set(i,o),i.proxy}function At(t,e){const s=function(t,{copies:e,snapshots:s}){const n=t=>{switch(R(t)){case 1:case 2:return u;case 4:case 3:return h;default:throw new Error("Unpected Error. Please file an issue on https://github.com/dourajs/doura")}},i=t=>{if(!d(t))return t;if(C(t)){let i=s.get(t);if(!i){const r=e.get(t.__r_state);s.set(t,i=new Proxy(r,n(r)))}return i}return t},o=t=>function(...e){const s=this.__r_raw,n="entries"===t||t===Symbol.iterator&&l(this),r=s[t](...e);return{next(){const{value:t,done:e}=r.next();return e?{value:i(t),done:e}:{value:n?[t[0],i(t[1])]:i(t),done:e}},[Symbol.iterator](){return this}}},c=t=>function(...e){return this.__r_raw[t](...e)},a={get size(){return this.__r_raw.size},get(t){const e=this.__r_raw;if(e.has(t))return i(e.get(t))},forEach(t,e){const s=this.__r_raw;return s.forEach(((n,r)=>(n=i(n),t.call(e,n,l(s)?r:n,s))))}};["has","add","set","delete","clear"].forEach((t=>{a[t]=c(t)})),["keys","values","entries",Symbol.iterator].forEach((t=>{a[t]=o(t)}));const h={get:(t,e,s)=>"__r_raw"===e?t:Reflect.get(r(a,e)&&e in t?a:t,e,s)},u={get:(t,e,s)=>i(Reflect.get(t,e,s))};return n(t)}(t,e);if(C(t)){return new Proxy(e.copies.get(t.__r_state),s)}return new Proxy(t,s)}function $t(t,e,s){if(!d(t))return t;const n=function(t,e){const s=new Map,n={copies:s,snapshots:e||new Map},i=n.snapshots,r=[t.__r_state];for(;r.length;){const t=r.pop();let e;t.modified?(e=O(t.copy),Tt(t,e),i.delete(t.proxy)):e=At(t.base,n),s.set(t,e);for(const s of t.children)r.push(s)}return n}(e,s);return At(t,n)}function Tt(t,e){t.modified=!1,t.base=e}function kt(t,e){const s=t.createView((function(){return e(this,this.$actions)})),n=s.getSnapshot;return n.destory=function(){s.effect.stop();const e=t.effectScope.effects.indexOf(s.effect);e>=0&&t.effectScope.effects.splice(e,1)},n}const Lt=n({$name:t=>t.name,$rawState:t=>t.getState(),$state:t=>t.stateValue,$actions:t=>t.actions,$views:t=>t.views,$patch:t=>t.patch,$onAction:t=>t.onAction,$subscribe:t=>t.subscribe,$isolate:t=>t.isolate,$getApi:t=>t.getApi,$createView:t=>kt.bind(null,t)}),Nt=t=>({_:e},s)=>{const{actions:n,views:i,accessCache:o,ctx:c}=e;let a;if(a=t?e.getState():e.stateValue,"$"!==s[0]){const t=o[s];if(void 0!==t)switch(t){case 0:return a[s];case 2:return i[s];case 1:return n[s];case 3:return c[s]}else{if(r(a,s))return o[s]=0,a[s];if(r(c,s))return o[s]=3,c[s]}}const l=Lt[s];return l?l(e):r(c,s)?(o[s]=3,c[s]):void((t=>"_"===t||"$"===t)(s[0])&&r(a,s)&&M(`Property ${JSON.stringify(s)} must be accessed via $state because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`))},Vt=({_:t},e,s)=>{const{ctx:n,actions:i,views:o,accessContext:c,stateRef:{value:a}}=t;return r(a,e)?1!==c&&(a[e]=s,!0):!r(i,e)&&(!r(o,e)&&("$state"===e?"bigint"!=typeof s&&"symbol"!=typeof s&&(t.replace(s),!0):("$"!==e[0]||!r(Lt,e))&&(n[e]=s,!0)))},Ht={get:Nt(!1),set:Vt},Ut={get:Nt(!0),set:Vt};function Xt(t,e,...s){console.error(t)}let Kt=!1,zt=!1;const Yt=[];let Jt=0;const Ft=[];let Wt=null,Bt=0;const qt=[];let Gt=null,Qt=0;const Zt=Promise.resolve();let te=null,ee=null;function se(t){const e=te||Zt;return t?e.then(this?t.bind(this):t):e}function ne(t){Yt.length&&Yt.includes(t,Kt&&t.allowRecurse?Jt+1:Jt)||t===ee||(null==t.id?Yt.push(t):Yt.splice(function(t){let e=Jt+1,s=Yt.length;for(;e<s;){const n=e+s>>>1;oe(Yt[n])<t?e=n+1:s=n}return e}(t.id),0,t),Kt||zt||(zt=!0,te=Zt.then(ce)))}function ie(t){const e=Yt.indexOf(t);e>=Jt&&Yt.splice(e,1)}function re(t,e=null){if(Ft.length){for(ee=e,Wt=[...new Set(Ft)],Ft.length=0,Bt=0;Bt<Wt.length;Bt++)Wt[Bt]();Wt=null,Bt=0,ee=null,re(t,e)}}const oe=t=>null==t.id?1/0:t.id;function ce(t){zt=!1,Kt=!0,re(t),Yt.sort(((t,e)=>oe(t)-oe(e)));try{for(Jt=0;Jt<Yt.length;Jt++){const t=Yt[Jt];if(t&&!1!==t.active){0;try{t()}catch(e){Xt(e)}}}}finally{Jt=0,Yt.length=0,function(t){if(re(),qt.length){const t=[...new Set(qt)];if(qt.length=0,Gt)return void Gt.push(...t);for(Gt=t,Gt.sort(((t,e)=>oe(t)-oe(e))),Qt=0;Qt<Gt.length;Qt++)Gt[Qt]();Gt=null,Qt=0}}(),Kt=!1,te=null,(Yt.length||Ft.length||qt.length)&&ce(t)}}var ae;function le(t,e){const s=Object.keys(e);s.length&&s.forEach((s=>{r(t,s)&&y(e[s])?le(t[s],e[s]):t[s]=e[s]}))}function he(t){t.dirty=!0}!function(t){t.REPLACE="replace",t.MODIFY="modify",t.PATCH="patch"}(ae||(ae={}));class ue{constructor(e,{name:s,initState:n}){var i;this.viewInstances=[],this._actionDepth=0,this._api=null,this._actionListeners=new Set,this._subscribers=new Set,this._depListenersHandlers=[],this._watchStateChange=!0,this._destroyed=!1,this._lastDraftToSnapshot=new Map,this.patch=this.patch.bind(this),this.onAction=this.onAction.bind(this),this.subscribe=this.subscribe.bind(this),this.isolate=this.isolate.bind(this),this.getApi=this.getApi.bind(this),this._update=this._update.bind(this),this.options=e,this.name=s||"",this._isDispatching=!1,this._initState=n||e.state,this.stateRef=It({value:this._initState}),this._update.__name=s,this._draftListenerHandler=function(e,s){const n=e.__r_state;return n.disposed?t:(n.listeners.push(s),()=>{const t=n.listeners.indexOf(s);t>=0&&n.listeners.splice(t,1)})}(this.stateRef,(()=>{this._watchStateChange&&ne(this._update)})),this._setState(this._initState),this.actions=Object.create(null),this.views=Object.create(null),this.accessContext=0,this.ctx={},w(this.ctx,"_",this),this.accessCache=Object.create(null),this.proxy=new Proxy(this.ctx,Ht),this.publicInst=new Proxy(this.ctx,Ut),this.effectScope=new k(i),this._initActions(),this._initViews()}patch(t){y(t)&&this._currentState&&(this._watchStateChange=!1,le(this.proxy.$state,t),this._watchStateChange=!0,this.dispatch({type:ae.PATCH,args:{patch:t}}))}replace(t){if(d(t)){this._watchStateChange=!1,this.stateRef.value=t,this._watchStateChange=!0;for(const t of this.viewInstances)t.effect.scheduler();this.dispatch({type:ae.REPLACE,payload:t})}else M(`replace argument should be an object, but receive a ${Object.prototype.toString.call(t)}`)}getState(){return this._currentState}getApi(){if(null===this._api){const t=this._api=Object.assign(Object.assign({},this._currentState),this.views);for(const e of Object.keys(this.actions))w(t,e,this.actions[e])}return this._api}onAction(t){return this._actionListeners.add(t),()=>{this._actionListeners.delete(t)}}subscribe(t){return this._subscribers.add(t),()=>{this._subscribers.delete(t)}}isolate(t){Q();const e=t(this.stateValue);return Z(),e}depend(t){this._depListenersHandlers.push(t.subscribe((t=>{this._triggerListener(Object.assign(Object.assign({},t),{model:this.proxy}))})))}createView(t){let e;return this.effectScope.run((()=>{e=function(t,e={}){return new ct(t,e)}((()=>{const n=this.accessContext;this.accessContext=1;const i=e.__externalArgs;try{return t.call(this.proxy,this.proxy,...i||s)}finally{this.accessContext=n}}))})),e.getSnapshot=()=>{const t=e.value;return e.mightChange?(e.mightChange=!1,e.__snapshot=$t(t,this.stateRef.value)):e.__pre!==t&&(e.__snapshot=$t(t,this.stateRef.value)),e.__pre=t,e.__snapshot},this.viewInstances.push(e),e}reducer(t,e){switch(e.type){case ae.MODIFY:case ae.PATCH:{const t=new Map(this._lastDraftToSnapshot);return this._lastDraftToSnapshot=t,$t(this.stateRef.value,this.stateRef.value,this._lastDraftToSnapshot)}case ae.REPLACE:return e.payload;default:return t}}dispatch(t){if(void 0===t.type)return t;if(this._isDispatching)return t;let e;try{this._isDispatching=!0,e=this.reducer(this._currentState,t)}finally{this._isDispatching=!1}return e!==this._currentState&&(this._setState(e),this._triggerListener(Object.assign({type:t.type,model:this.proxy,target:this.proxy},t.args))),t}destroy(){this._destroyed=!0,this._api=null,this._lastDraftToSnapshot.clear(),this._currentState=null,this.stateRef={value:null},this._subscribers.clear(),this.effectScope.stop();for(const t of this._depListenersHandlers)t();this._draftListenerHandler()}_setState(t){this._api=null,this._currentState=t,this.stateValue=this.stateRef.value}_update(){!this._destroyed&&function(t){return t.__r_state.modified}(this.stateRef)&&(this.dispatch({type:ae.MODIFY}),function(t){const e=t.__r_state;e&&(e.modified=!1)}(this.stateRef))}_triggerListener(t){for(const e of this._subscribers)e(t)}_initActions(){const t=this.options.actions;if(t)for(const e of Object.keys(t)){this.accessCache[e]=1;const s=t[e];Object.defineProperty(this.actions,e,{configurable:!0,enumerable:!0,writable:!1,value:(...t)=>{if(1===this.accessContext)return;let n;this._actionDepth++;try{for(const s of this._actionListeners)s({name:e,args:t});n=s.call(this.proxy,...t)}finally{0==--this._actionDepth&&(ie(this._update),this._update())}return n}})}}_initViews(){const t=this.options.views;if(t)for(const e of Object.keys(t)){this.accessCache[e]=2;const s=t[e],n=s.length>1,i=this.createView(s),r=i;0;Object.defineProperty(this.views,e,{configurable:!0,enumerable:!0,get:n?()=>(...t)=>{const e=r.__externalArgs;if(e){if(e.length!==t.length)he(i);else for(let s=0;s<e.length;s++)if(e[s]!==t[s]){he(i);break}}else he(i);return r.__externalArgs=t,i.getSnapshot()}:i.getSnapshot,set:()=>!1})}}}function fe(t,e={}){return new ue(t,e)}let pe=null;function de(t){pe=t}class _e{constructor(t=e,s=[]){this._subscribers=new Set,this._initialState=t,this._models=(()=>{const t=new Map,e={get:e=>t.get(e),set(e,s){t.set(e,s)},each(e){for(const[s,n]of t.entries())e(n,s)},clear(){e.each((t=>t.destroy())),t.clear()}};return e})();const n=()=>{for(const t of this._subscribers)t()};this._onModelChange=()=>{ne(n)},this._hooks=s.map((([t,e])=>t(e))),this._hooks.map((e=>{var s;return null===(s=e.onInit)||void 0===s?void 0:s.call(e,{initialState:t},{doura:this})}))}getModel(t,e){return this.getModelInstance({name:t,model:e}).publicInst}getDetachedModel(t){return this.getModelInstance({model:t}).publicInst}getModelInstance({name:t,model:e}){const s=t&&this._models.get(t);if(s)return s;let n;if("function"==typeof e){const s=pe,i=this._createModelProxy();try{de({manager:this,model:i}),n=this._initModel({name:t,model:e()})}finally{de(s)}i.setModel(n)}else{if("object"!=typeof e)throw new Error("invalid model");n=this._initModel({name:t,model:e})}return n}getState(){const t={};return this._models.each(((e,s)=>{t[s]=e.getState()})),t}subscribe(t){return this._subscribers.add(t),()=>{this._subscribers.delete(t)}}destroy(){this._hooks.map((t=>{var e;return null===(e=t.onDestroy)||void 0===e?void 0:e.call(t)})),this._models.clear(),this._subscribers.clear(),this._initialState=e}_createModelProxy(){const t=[];return{addChild(e){t.push(e)},setModel(e){for(const s of t)e.depend(s);t.length=0}}}_initModel({name:t,model:e}){if(!t)return fe(e);this._hooks.map((s=>{var n;return null===(n=s.onModel)||void 0===n?void 0:n.call(s,t,e,{doura:this})}));const s=fe(e,{name:t,initState:this._getInitialState(t)});return s.subscribe(this._onModelChange),this._models.set(t,s),this._hooks.map((t=>{var e;null===(e=t.onModelInstance)||void 0===e||e.call(t,s.publicInst,{doura:this})})),s}_getInitialState(t){const e=this._initialState[t];return e&&delete this._initialState[t],e}}function ye(t,e){if(!pe)throw new Error("Invalid use() call. use() can only be called inside of the body of a function model. This could happen for one of the following reasons:\n1. You might be breaking the Rules of Doura\n2. You might have more than one copy of Doura in the same app");const{manager:s,model:n}=pe;let i,r;return"string"==typeof t?(r=t,i=s.getModelInstance({name:r,model:e})):i=s.getModelInstance({model:e=t}),n.addChild(i),i.proxy}function ge({initialState:t,plugins:e=[]}={}){return function({initialState:t,plugins:e}={}){return new _e(t,e)}({initialState:t,plugins:e})}var be=function(){if("undefined"==typeof window||!window.__REDUX_DEVTOOLS_EXTENSION__)return{};let t=0;const e=new Set;let s;return{onInit(n,{doura:i}){if(window.__doura=i,"undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__){s=window.__REDUX_DEVTOOLS_EXTENSION__.connect({name:`doura${0===t?"":t}`}),t+=1,s.init(i.getState());const n=t=>{switch(t.type){case"ACTION":return void v("string"==typeof t.payload,"Unsupported action format");case"DISPATCH":switch(t.payload.type){case"RESET":case"COMMIT":return s.init(i.getState());case"ROLLBACK":try{const e=JSON.parse(t.state);return s.init(e)}catch(e){console.warn("[Doura Devtool] Could not parse the received json.")}return s.init(i.getState());case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return}}};e.add(s.subscribe(n))}},onModelInstance(t,{doura:e}){t.$subscribe((t=>{var{type:n,model:i}=t,r=function(t,e){var s={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(s[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(s[n[i]]=t[n[i]])}return s}(t,["type","model"]);const o=e.getState();delete o._,s.send(Object.assign({type:`${i.$name||"anonymous"}@${n}`},r),o)}))},onDestroy(){window.__REDUX_DEVTOOLS_EXTENSION__.disconnect(s);for(const t of e.values())t();e.clear()}}};export{t as NOOP,n as assign,w as def,P as defineModel,be as devtool,ge as doura,It as draft,j as each,s as emptyArray,e as emptyObject,r as hasOwn,v as invariant,b as is,a as isArray,u as isFunction,g as isIntegerKey,l as isMap,d as isObject,y as isPlainObject,h as isSet,f as isString,p as isSymbol,se as nextTick,o as objectToString,x as ownKeys,E as set,O as shallowCopy,$t as snapshot,_ as toRawType,c as toTypeString,ye as use};

@@ -1,1 +0,1 @@

var Doura=function(t){"use strict";const e=()=>{},s=Object.create(null),n=[],i=Object.assign,r=Object.prototype.hasOwnProperty,o=(t,e)=>r.call(t,e),c=Object.prototype.toString,a=t=>c.call(t),l=Array.isArray,h=t=>"[object Map]"===a(t),u=t=>"[object Set]"===a(t),f=t=>"string"==typeof t,p=t=>"symbol"==typeof t,d=t=>null!==t&&"object"==typeof t,_=t=>a(t).slice(8,-1),y=t=>"[object Object]"===a(t),g=t=>f(t)&&"NaN"!==t&&"-"!==t[0]&&""+parseInt(t,10)===t,b=(t,e)=>Object.is(t,e),w=(t,e,s)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:s})};function v(t,e){if(!t)throw new Error(`[Doura] ${e||""}`)}const m=Array.prototype.slice;const S=Object.prototype.propertyIsEnumerable;function O(t){return Array.isArray(t)?m.call(t):h(t)?new Map(t):u(t)?new Set(t):Object.getPrototypeOf(t)===Object.prototype?function(t){const e={},s=x(t);for(let n=0;n<s.length;n++){const i=s[n],r=t[i];S.call(t,i)?e[i]=r:Object.defineProperty(e,i,{configurable:!0,writable:!0,enumerable:!1,value:r})}return e}(t):function(t){const e=Object.getOwnPropertyDescriptors(t),s=x(e);for(let n=0;n<s.length;n++){const i=s[n],r=e[i];!1===r.writable&&(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(e[i]={configurable:!0,writable:!0,enumerable:r.enumerable,value:t[i]})}return Object.create(Object.getPrototypeOf(t),e)}(t)}const x="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?t=>Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t)):Object.getOwnPropertyNames;function j(t,...e){console.warn(`[Doura warn] ${t}`,...e)}function E(t){switch(_(t)){case"Object":return 1;case"Array":return 2;case"Set":return 3;case"Map":return 4;default:return 0}}function P(t){return!!t&&!!t.__r_state}function M(t){const e=R(t);return e?M(e.base):t}function R(t){return t&&t.__r_state}function C(t){return t.copy||t.base}function I(t){t.modified||(t.modified=!0,t.parent&&I(t.parent))}let A;class D{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&A&&(this.parent=A,this.index=(A.scopes||(A.scopes=[])).push(this)-1)}run(t){if(this.active){const e=A;try{return A=this,t()}finally{A=e}}}on(){A=this}off(){A=this.parent}stop(t){if(this.active){let e,s;for(e=0,s=this.effects.length;e<s;e++)this.effects[e].stop();for(e=0,s=this.cleanups.length;e<s;e++)this.cleanups[e]();if(this.scopes)for(e=0,s=this.scopes.length;e<s;e++)this.scopes[e].stop(!0);if(this.parent&&!t){const t=this.parent.scopes.pop();t&&t!==this&&(this.parent.scopes[this.index]=t,t.index=this.index)}this.active=!1}}}const $=t=>{const e=new Set(t);return e.w=0,e.n=0,e},T=t=>(t.w&H)>0,k=t=>(t.n&H)>0,L=new WeakMap,N=new WeakMap;let V=0,H=1;let U;const X=Symbol(""),K=Symbol("");let z=0;class Y{constructor(t,e=null,s){this.fn=t,this.scheduler=e,this.id=z++,this.deps=[],this.active=!0,this.parent=void 0,function(t,e=A){e&&e.active&&e.effects.push(t)}(this,s)}run(){if(!this.active)return this.fn();let t=U;const e=J;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=U,U=this,J=!0,H=1<<++V,V<=30?(({deps:t})=>{if(t.length)for(let e=0;e<t.length;e++)t[e].w|=H})(this):F(this),this.fn()}finally{V<=30&&(t=>{const{deps:e}=t;if(e.length){let s=0;for(let n=0;n<e.length;n++){const i=e[n];T(i)&&!k(i)?i.delete(t):e[s++]=i,i.w&=~H,i.n&=~H}e.length=s}})(this),H=1<<--V,U=this.parent,J=e,this.parent=void 0,this.deferStop&&this.stop()}}stop(){U===this?this.deferStop=!0:this.active&&(F(this),this.onStop&&this.onStop(),this.active=!1)}}function F(t){const{deps:e}=t;if(e.length){for(let s=0;s<e.length;s++)e[s].delete(t);e.length=0}}let J=!0;const W=[];function B(){W.push(J),J=!1}function q(){const t=W.pop();J=void 0===t||t}function G(t,e,s){if(J&&U){let e=L.get(t);e||L.set(t,e=new Map);let n=e.get(s);n||e.set(s,n=$()),Z(n)}}function Q(t){if(J&&U){const e=t.__r_state;if(!e)return;let s=N.get(e);s||N.set(e,s=$()),Z(s)}}function Z(t){let e=!1;V<=30?k(t)||(t.n|=H,e=!T(t)):e=!t.has(U),e&&(t.add(U),U.deps.push(t))}function tt(t){const e=N.get(t);if(e){const t=[...e];for(const e of t)e.view&&(e.view.mightChange=!0)}}function et(t,e,s,n,i){var r;const o=L.get(t),c=t.base;let a=[];if(o)if("clear"===e)a=[...o.values()];else if("length"===s&&l(c))o.forEach(((t,e)=>{("length"===e||e>=n)&&a.push(t)}));else switch(void 0!==s&&a.push(o.get(s)),e){case"add":l(c)?g(s)&&a.push(o.get("length")):(a.push(o.get(X)),h(c)&&a.push(o.get(K)));break;case"delete":l(c)||(a.push(o.get(X)),h(c)&&a.push(o.get(K)));break;case"set":h(c)&&a.push(o.get(X))}if(1===a.length)a[0]&&st(a[0]);else{const t=[];for(const e of a)e&&t.push(...e);st($(t))}const u=null===(r=t.root)||void 0===r?void 0:r.listeners;u&&u.length&&u.forEach((t=>t()))}function st(t){const e=l(t)?t:[...t];for(const s of e)s.view&&nt(s);for(const s of e)s.view||nt(s)}function nt(t){(t!==U||t.allowRecurse)&&(t.scheduler?t.scheduler():t.run())}class it{constructor(t,{disableCache:e=!1}){this.dep=void 0,this.mightChange=!1,this.dirty=!0,this.effect=new Y(t,(()=>{this.dirty||(this.dirty=!0,function(t){(t=M(t)).dep&&st(t.dep)}(this))})),this.effect.view=this,this.effect.active=this._cacheable=!e}get value(){const t=M(this);return function(t){J&&U&&Z((t=M(t)).dep||(t.dep=$()))}(t),!t.dirty&&t._cacheable||(t.dirty=!1,t._value=t.effect.run()),t._value}set value(t){}}const rt=new Set(["__proto__"]),ot=new Set(Object.getOwnPropertyNames(Symbol).filter((t=>"arguments"!==t&&"caller"!==t)).map((t=>Symbol[t])).filter(p));function ct(t){t.copy||(t.copy=O(t.base))}function at(t,e){const s=t.__r_state;return(s?C(s):t)[e]}const lt=ft(),ht=ut();function ut(){const t={};return["includes","indexOf","lastIndexOf"].forEach((e=>{t[e]=function(...t){const s=R(this),n=C(s);for(let e=0,r=this.length;e<r;e++)G(s,0,e+"");const i=n[e](...t);return-1===i||!1===i?n[e](...t.map(M)):i}})),["push","pop","shift","unshift","splice"].forEach((e=>{t[e]=function(...t){B();const s=C(R(this))[e].apply(this,t);return q(),s}})),t}function ft(){return function(t,e,s){const n=C(t);if("__r_isReactive"===e)return!0;if("__r_state"===e&&s===Pt.get(t))return t;if(l(n)&&o(ht,e))return Reflect.get(ht,e,s);let i=Reflect.get(n,e,s);return(p(e)?ot.has(e):rt.has(e))?i:(G(t,0,e),o(n,e)?(t.disposed||!d(i)||(P(i)||(ct(t),i=t.copy[e]=Rt(i,t)),Q(i)),i):i)}}function pt(){return function(t,e,s,n){const i=C(t),r=at(i,e),c=l(i)&&g(e)?Number(e)<i.length:o(i,e);if(!t.modified){const n=null==r?void 0:r.__r_state;if(n&&n.base===s)return t.copy[e]=s,!0;if(b(s,r)&&(void 0!==s||o(t.base,e)))return!0;ct(t),I(t)}return b(t.copy[e],s)&&(void 0!==s||e in t.copy)||(t.copy[e]=s,t===R(n)&&(c?b(s,r)||et(t,"set",e,s):et(t,"add",e,s),function(t){let e=t;for(;e;)tt(e),e=e.parent}(t))),!0}}const dt={get:lt,set:pt(),deleteProperty:function(t,e){const s=o(C(t),e);if((void 0!==at(t.base,e)||e in t.base)&&(ct(t),I(t)),t.copy){const n=delete t.copy[e];return n&&s&&et(t,"delete",e,void 0),n}return!0},has:function(t,e){const s=C(t),n=Reflect.has(s,e);return p(e)&&ot.has(e)||G(t,0,e),n},ownKeys:function(t){const e=C(t);return G(t,0,l(e)?"length":X),Reflect.ownKeys(e)},setPrototypeOf:function(t,e){const s=Reflect.setPrototypeOf(t.base,e);return s&&t.copy&&Reflect.setPrototypeOf(t.copy,e),s},getOwnPropertyDescriptor:function(t,e){const s=C(t),n=Reflect.getOwnPropertyDescriptor(s,e);return n?{writable:!0,configurable:!l(s)||"length"!==e,enumerable:n.enumerable,value:s[e]}:n}};function _t(t){t.copy||(t.copy=new Set,t.base.forEach((e=>{if(d(e)){const s=Rt(e,t);Q(s),e!==s&&t.drafts.set(e,s),t.copy.add(s)}else t.copy.add(e)})))}function yt(t){1===t.type?function(t){t.copy||(t.copy=new Map(t.base))}(t):_t(t)}function gt(t){const e=this.__r_state,s=C(e);if(G(e,0,t),!s.has(t))return;let n=s.get(t);return d(n)?(P(n)||(yt(e),n=Rt(n,e),e.copy.set(t,n)),Q(n),n):n}function bt(t,e){const s=this.__r_state,n=C(s),i=n.has(t),r=n.get(t),o=()=>{yt(s),I(s),s.copy.set(t,e)};return i?b(e,r)||(o(),et(s,"set",t,e)):(o(),et(s,"add",t,e)),this}function wt(t){const e=this.__r_state;return C(e).has(t)||(_t(e),I(e),e.copy.add(t),et(e,"add",t,t)),this}function vt(t){const e=this.__r_state;return G(e,0,t),e.copy?!!e.copy.has(t)||2===e.type&&(e.drafts.has(t)&&e.drafts.has(e.drafts.get(t))):e.base.has(t)}function mt(t){const e=this.__r_state,s=C(e),n=s.has(t);"get"in s&&s.get(t),yt(e),I(e);let i=e.copy.delete(t);return 2!==e.type||i||(i=!!e.drafts.has(t)&&e.drafts.delete(e.drafts.get(t))),n&&et(e,"delete",t,void 0),i}function St(){const t=this.__r_state,e=C(t),s=0!==e.size,n=e.clear();return s&&(yt(t),I(t),t.copy.clear(),et(t,"clear",void 0,void 0)),n}function Ot(){const t={get:gt,get size(){return G(t=this.__r_state,0,X),C(t).size;var t},has:vt,add:wt,set:bt,delete:mt,clear:St,keys(){const t=this.__r_state;return 1===t.type?function(t){return G(t,0,K),C(t).keys()}(t):function(t){return G(t,0,X),_t(t),t.copy.values()}(t)},forEach(t,e){const s=this.__r_state;1===s.type?function(t,e,s,n){G(e,0,X),C(e).forEach(((i,r)=>s.call(n,e.proxy.get(r),r,t)))}(this,s,t,e):function(t,e,s,n){const i=e.proxy.values();let r=i.next();for(;!r.done;)s.call(n,r.value,r.value,t),r=i.next()}(this,s,t,e)}};return["values","entries",Symbol.iterator].forEach((e=>{t[e]=function(t){return function(...e){const s=this.__r_state,n=1===s.type,i="entries"===t||t===Symbol.iterator&&n;if(n){const t=s.proxy.keys();return{next(){const{value:e,done:n}=t.next(),r=s.proxy.get(e);return n?{value:r,done:n}:{value:i?[e,r]:r,done:n}},[Symbol.iterator](){return this}}}return G(s,0,X),_t(s),s.copy[t](...e)}}(e)})),[t]}const[xt]=Ot();function jt(){const t=xt;return(e,s,n)=>{if("__r_isReactive"===s)return!0;if("__r_state"===s)return e;const i=C(e);return Reflect.get(o(t,s)&&s in i?t:i,s,n)}}const Et={get:jt()};const Pt=new WeakMap;let Mt=0;function Rt(t,e){const s=E(t);if(0===s)return t;if(t.__r_skip||!Object.isExtensible(t))return t;if(t.__r_state)return t;let n={type:0,id:Mt++,root:null,parent:e,base:t,proxy:null,copy:null,modified:!1,disposed:!1,listeners:[],children:[]},i=n,r=dt;3===s?(n.type=2,n.drafts=new Map,i=new Set,r=Et):4===s?(n.type=1,i=new Map,r=Et):2===s&&(i=[]),i!==n&&Object.keys(n).forEach((t=>{Object.defineProperty(i,t,{configurable:!0,enumerable:!0,writable:!0,value:n[t]})}));const o=new Proxy(i,r);return i.proxy=o,e?(i.root=e.root,e.children.push(i)):i.root=i,Pt.set(i,o),i.proxy}function Ct(t,e){const s=function(t,{copies:e,proxies:s}){const n=t=>{switch(E(t)){case 1:case 2:return u;case 4:case 3:return l;default:throw new Error("Unpected Error. Please file an issue on https://github.com/dourajs/doura")}},i=t=>{if(!d(t))return t;if(P(t)){let i=s.get(t);if(!i){const r=e.get(t.__r_state);s.set(t,i=new Proxy(r,n(r)))}return i}return t},r=t=>function(...e){const s=this.__r_raw,n="entries"===t||t===Symbol.iterator&&h(this),r=s[t](...e);return{next(){const{value:t,done:e}=r.next();return e?{value:i(t),done:e}:{value:n?[t[0],i(t[1])]:i(t),done:e}},[Symbol.iterator](){return this}}},c=t=>function(...e){return this.__r_raw[t](...e)},a={get size(){return this.__r_raw.size},get(t){const e=this.__r_raw;if(e.has(t))return i(e.get(t))},forEach(t,e){const s=this.__r_raw;return s.forEach(((n,r)=>(n=i(n),t.call(e,n,h(s)?r:n,s))))}};["has","add","set","delete","clear"].forEach((t=>{a[t]=c(t)})),["keys","values","entries",Symbol.iterator].forEach((t=>{a[t]=r(t)}));const l={get:(t,e,s)=>"__r_raw"===e?t:Reflect.get(o(a,e)&&e in t?a:t,e,s)},u={get:(t,e,s)=>i(Reflect.get(t,e,s))};return n(t)}(t,e);if(P(t)){return new Proxy(e.copies.get(t.__r_state),s)}return new Proxy(O(t),s)}function It(t,e){if(!d(t))return t;const s=function(t){const e=new Map,s={copies:e,proxies:new Map},n=[t.__r_state];for(;n.length;){const t=n.pop();let s;t.modified?(s=O(t.copy),At(t,s)):s=t.base,e.set(t,s);for(const e of t.children)n.push(e)}return s}(e);return Ct(t,s)}function At(t,e){t.modified=!1,t.base=e}function Dt(t,e){const s=t.createView((function(){return e(this,this.$actions)})),n=s.getSnapshot;return n.destory=function(){s.effect.stop();const e=t.effectScope.effects.indexOf(s.effect);e>=0&&t.effectScope.effects.splice(e,1)},n}const $t=i({$name:t=>t.name,$rawState:t=>t.getState(),$state:t=>t.stateValue,$actions:t=>t.actions,$views:t=>t.views,$patch:t=>t.patch,$onAction:t=>t.onAction,$subscribe:t=>t.subscribe,$isolate:t=>t.isolate,$getApi:t=>t.getApi,$createView:t=>Dt.bind(null,t)}),Tt=t=>({_:e},s)=>{const{actions:n,views:i,accessCache:r,ctx:c}=e;let a;if(a=t?e.getState():e.stateValue,"$"!==s[0]){const t=r[s];if(void 0!==t)switch(t){case 0:return a[s];case 2:return i[s];case 1:return n[s];case 3:return c[s]}else{if(o(a,s))return r[s]=0,a[s];if(o(c,s))return r[s]=3,c[s]}}const l=$t[s];return l?l(e):o(c,s)?(r[s]=3,c[s]):void((t=>"_"===t||"$"===t)(s[0])&&o(a,s)&&j(`Property ${JSON.stringify(s)} must be accessed via $state because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`))},kt=({_:t},e,s)=>{const{ctx:n,actions:i,views:r,accessContext:c,stateRef:{value:a}}=t;return o(a,e)?1!==c&&(a[e]=s,!0):!o(i,e)&&(!o(r,e)&&("$state"===e?"bigint"!=typeof s&&"symbol"!=typeof s&&(t.replace(s),!0):("$"!==e[0]||!o($t,e))&&(n[e]=s,!0)))},Lt={get:Tt(!1),set:kt},Nt={get:Tt(!0),set:kt};function Vt(t,e,...s){console.error(t)}let Ht=!1,Ut=!1;const Xt=[];let Kt=0;const zt=[];let Yt=null,Ft=0;const Jt=[];let Wt=null,Bt=0;const qt=Promise.resolve();let Gt=null,Qt=null;function Zt(t){Xt.length&&Xt.includes(t,Ht&&t.allowRecurse?Kt+1:Kt)||t===Qt||(null==t.id?Xt.push(t):Xt.splice(function(t){let e=Kt+1,s=Xt.length;for(;e<s;){const n=e+s>>>1;se(Xt[n])<t?e=n+1:s=n}return e}(t.id),0,t),Ht||Ut||(Ut=!0,Gt=qt.then(ne)))}function te(t){const e=Xt.indexOf(t);e>=Kt&&Xt.splice(e,1)}function ee(t,e=null){if(zt.length){for(Qt=e,Yt=[...new Set(zt)],zt.length=0,Ft=0;Ft<Yt.length;Ft++)Yt[Ft]();Yt=null,Ft=0,Qt=null,ee(t,e)}}const se=t=>null==t.id?1/0:t.id;function ne(t){Ut=!1,Ht=!0,ee(t),Xt.sort(((t,e)=>se(t)-se(e)));try{for(Kt=0;Kt<Xt.length;Kt++){const t=Xt[Kt];if(t&&!1!==t.active){0;try{t()}catch(e){Vt(e)}}}}finally{Kt=0,Xt.length=0,function(t){if(ee(),Jt.length){const t=[...new Set(Jt)];if(Jt.length=0,Wt)return void Wt.push(...t);for(Wt=t,Wt.sort(((t,e)=>se(t)-se(e))),Bt=0;Bt<Wt.length;Bt++)Wt[Bt]();Wt=null,Bt=0}}(),Ht=!1,Gt=null,(Xt.length||zt.length||Jt.length)&&ne(t)}}var ie;function re(t,e){const s=Object.keys(e);s.length&&s.forEach((s=>{o(t,s)&&y(e[s])?re(t[s],e[s]):t[s]=e[s]}))}function oe(t){t.dirty=!0}!function(t){t.REPLACE="replace",t.MODIFY="modify",t.PATCH="patch"}(ie||(ie={}));class ce{constructor(t,{name:s,initState:n}){var i;this.viewInstances=[],this._actionDepth=0,this._api=null,this._actionListeners=new Set,this._subscribers=new Set,this._depListenersHandlers=[],this._watchStateChange=!0,this._destroyed=!1,this.patch=this.patch.bind(this),this.onAction=this.onAction.bind(this),this.subscribe=this.subscribe.bind(this),this.isolate=this.isolate.bind(this),this.getApi=this.getApi.bind(this),this._update=this._update.bind(this),this.options=t,this.name=s||"",this._isDispatching=!1,this._initState=n||t.state,this.stateRef=Rt({value:this._initState}),this._update.__name=s,this._draftListenerHandler=function(t,s){const n=t.__r_state;return n.disposed?e:(n.listeners.push(s),()=>{const t=n.listeners.indexOf(s);t>=0&&n.listeners.splice(t,1)})}(this.stateRef,(()=>{this._watchStateChange&&Zt(this._update)})),this._setState(this._initState),this.actions=Object.create(null),this.views=Object.create(null),this.accessContext=0,this.ctx={},w(this.ctx,"_",this),this.accessCache=Object.create(null),this.proxy=new Proxy(this.ctx,Lt),this.publicInst=new Proxy(this.ctx,Nt),this.effectScope=new D(i),this._initActions(),this._initViews()}patch(t){y(t)&&this._currentState&&(this._watchStateChange=!1,re(this.proxy.$state,t),this._watchStateChange=!0,this.dispatch({type:ie.PATCH,args:{patch:t}}))}replace(t){if(d(t)){this._watchStateChange=!1,this.stateRef.value=t,this._watchStateChange=!0;for(const t of this.viewInstances)t.effect.scheduler();this.dispatch({type:ie.REPLACE,payload:t})}else j(`replace argument should be an object, but receive a ${Object.prototype.toString.call(t)}`)}getState(){return this._currentState}getApi(){if(null===this._api){const t=this._api=Object.assign(Object.assign({},this._currentState),this.views);for(const e of Object.keys(this.actions))w(t,e,this.actions[e])}return this._api}onAction(t){return this._actionListeners.add(t),()=>{this._actionListeners.delete(t)}}subscribe(t){return this._subscribers.add(t),()=>{this._subscribers.delete(t)}}isolate(t){B();const e=t(this.stateValue);return q(),e}depend(t){this._depListenersHandlers.push(t.subscribe((t=>{this._triggerListener(Object.assign(Object.assign({},t),{model:this.proxy}))})))}createView(t){let e;return this.effectScope.run((()=>{e=function(t,e={}){return new it(t,e)}((()=>{const s=this.accessContext;this.accessContext=1;const i=e.__externalArgs;try{return t.call(this.proxy,this.proxy,...i||n)}finally{this.accessContext=s}}))})),e.getSnapshot=()=>{const t=e.value;return e.mightChange?(e.mightChange=!1,e.__snapshot=It(t,this.stateRef.value)):e.__pre!==t&&(e.__snapshot=It(t,this.stateRef.value)),e.__pre=t,e.__snapshot},this.viewInstances.push(e),e}reducer(t,e){switch(e.type){case ie.MODIFY:case ie.PATCH:return It(this.stateRef.value,this.stateRef.value);case ie.REPLACE:return e.payload;default:return t}}dispatch(t){if(void 0===t.type)return t;if(this._isDispatching)return t;let e;try{this._isDispatching=!0,e=this.reducer(this._currentState,t)}finally{this._isDispatching=!1}return e!==this._currentState&&(this._setState(e),this._triggerListener(Object.assign({type:t.type,model:this.proxy,target:this.proxy},t.args))),t}destroy(){this._destroyed=!0,this._api=null,this._currentState=null,this.stateRef={value:null},this._subscribers.clear(),this.effectScope.stop();for(const t of this._depListenersHandlers)t();this._draftListenerHandler()}_setState(t){this._api=null,this._currentState=t,this.stateValue=this.stateRef.value}_update(){!this._destroyed&&function(t){return t.__r_state.modified}(this.stateRef)&&(this.dispatch({type:ie.MODIFY}),function(t){const e=t.__r_state;e&&(e.modified=!1)}(this.stateRef))}_triggerListener(t){for(const e of this._subscribers)e(t)}_initActions(){const t=this.options.actions;if(t)for(const e of Object.keys(t)){this.accessCache[e]=1;const s=t[e];Object.defineProperty(this.actions,e,{configurable:!0,enumerable:!0,writable:!1,value:(...t)=>{if(1===this.accessContext)return;let n;this._actionDepth++;try{for(const s of this._actionListeners)s({name:e,args:t});n=s.call(this.proxy,...t)}finally{0==--this._actionDepth&&(te(this._update),this._update())}return n}})}}_initViews(){const t=this.options.views;if(t)for(const e of Object.keys(t)){this.accessCache[e]=2;const s=t[e],n=s.length>1,i=this.createView(s),r=i;0;Object.defineProperty(this.views,e,{configurable:!0,enumerable:!0,get:n?()=>(...t)=>{const e=r.__externalArgs;if(e){if(e.length!==t.length)oe(i);else for(let s=0;s<e.length;s++)if(e[s]!==t[s]){oe(i);break}}else oe(i);return r.__externalArgs=t,i.getSnapshot()}:i.getSnapshot,set:()=>!1})}}}function ae(t,e={}){return new ce(t,e)}let le=null;function he(t){le=t}class ue{constructor(t=s,e=[]){this._subscribers=new Set,this._initialState=t,this._models=(()=>{const t=new Map,e={get:e=>t.get(e),set(e,s){t.set(e,s)},each(e){for(const[s,n]of t.entries())e(n,s)},clear(){e.each((t=>t.destroy())),t.clear()}};return e})();const n=()=>{for(const t of this._subscribers)t()};this._onModelChange=()=>{Zt(n)},this._hooks=e.map((([t,e])=>t(e))),this._hooks.map((e=>{var s;return null===(s=e.onInit)||void 0===s?void 0:s.call(e,{initialState:t},{doura:this})}))}getModel(t,e){return this.getModelInstance({name:t,model:e}).publicInst}getDetachedModel(t){return this.getModelInstance({model:t}).publicInst}getModelInstance({name:t,model:e}){const s=t&&this._models.get(t);if(s)return s;let n;if("function"==typeof e){const s=le,i=this._createModelProxy();try{he({manager:this,model:i}),n=this._initModel({name:t,model:e()})}finally{he(s)}i.setModel(n)}else{if("object"!=typeof e)throw new Error("invalid model");n=this._initModel({name:t,model:e})}return n}getState(){const t={};return this._models.each(((e,s)=>{t[s]=e.getState()})),t}subscribe(t){return this._subscribers.add(t),()=>{this._subscribers.delete(t)}}destroy(){this._hooks.map((t=>{var e;return null===(e=t.onDestroy)||void 0===e?void 0:e.call(t)})),this._models.clear(),this._subscribers.clear(),this._initialState=s}_createModelProxy(){const t=[];return{addChild(e){t.push(e)},setModel(e){for(const s of t)e.depend(s);t.length=0}}}_initModel({name:t,model:e}){if(!t)return ae(e);this._hooks.map((s=>{var n;return null===(n=s.onModel)||void 0===n?void 0:n.call(s,t,e,{doura:this})}));const s=ae(e,{name:t,initState:this._getInitialState(t)});return s.subscribe(this._onModelChange),this._models.set(t,s),this._hooks.map((t=>{var e;null===(e=t.onModelInstance)||void 0===e||e.call(t,s.publicInst,{doura:this})})),s}_getInitialState(t){const e=this._initialState[t];return e&&delete this._initialState[t],e}}var fe=function(){if("undefined"==typeof window||!window.__REDUX_DEVTOOLS_EXTENSION__)return{};let t=0;const e=new Set;let s;return{onInit(n,{doura:i}){if(window.__doura=i,"undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__){s=window.__REDUX_DEVTOOLS_EXTENSION__.connect({name:`doura${0===t?"":t}`}),t+=1,s.init(i.getState());const n=t=>{switch(t.type){case"ACTION":return void v("string"==typeof t.payload,"Unsupported action format");case"DISPATCH":switch(t.payload.type){case"RESET":case"COMMIT":return s.init(i.getState());case"ROLLBACK":try{const e=JSON.parse(t.state);return s.init(e)}catch(e){console.warn("[Doura Devtool] Could not parse the received json.")}return s.init(i.getState());case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return}}};e.add(s.subscribe(n))}},onModelInstance(t,{doura:e}){t.$subscribe((t=>{var{type:n,model:i}=t,r=function(t,e){var s={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(s[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(s[n[i]]=t[n[i]])}return s}(t,["type","model"]);const o=e.getState();delete o._,s.send(Object.assign({type:`${i.$name||"anonymous"}@${n}`},r),o)}))},onDestroy(){window.__REDUX_DEVTOOLS_EXTENSION__.disconnect(s);for(const t of e.values())t();e.clear()}}};return t.NOOP=e,t.assign=i,t.def=w,t.defineModel=t=>t,t.devtool=fe,t.doura=function({initialState:t,plugins:e=[]}={}){return function({initialState:t,plugins:e}={}){return new ue(t,e)}({initialState:t,plugins:e})},t.draft=Rt,t.each=function(t,e,s=!1){y(t)?(s?Object.keys:x)(t).forEach((n=>{s&&"symbol"==typeof n||e(n,t[n],t)})):t.forEach(((s,n)=>e(n,s,t)))},t.emptyArray=n,t.emptyObject=s,t.hasOwn=o,t.invariant=v,t.is=b,t.isArray=l,t.isFunction=t=>"function"==typeof t,t.isIntegerKey=g,t.isMap=h,t.isObject=d,t.isPlainObject=y,t.isSet=u,t.isString=f,t.isSymbol=p,t.nextTick=function(t){const e=Gt||qt;return t?e.then(this?t.bind(this):t):e},t.objectToString=c,t.ownKeys=x,t.set=function(t,e,s){h(t)?t.set(e,s):u(t)?(t.delete(e),t.add(s)):t[e]=s},t.shallowCopy=O,t.snapshot=It,t.toRawType=_,t.toTypeString=a,t.use=function(t,e){if(!le)throw new Error("Invalid use() call. use() can only be called inside of the body of a function model. This could happen for one of the following reasons:\n1. You might be breaking the Rules of Doura\n2. You might have more than one copy of Doura in the same app");const{manager:s,model:n}=le;let i,r;return"string"==typeof t?(r=t,i=s.getModelInstance({name:r,model:e})):i=s.getModelInstance({model:e=t}),n.addChild(i),i.proxy},t}({});
var Doura=function(t){"use strict";const e=()=>{},s=Object.create(null),n=[],i=Object.assign,r=Object.prototype.hasOwnProperty,o=(t,e)=>r.call(t,e),c=Object.prototype.toString,a=t=>c.call(t),l=Array.isArray,h=t=>"[object Map]"===a(t),u=t=>"[object Set]"===a(t),f=t=>"string"==typeof t,p=t=>"symbol"==typeof t,d=t=>null!==t&&"object"==typeof t,_=t=>a(t).slice(8,-1),y=t=>"[object Object]"===a(t),g=t=>f(t)&&"NaN"!==t&&"-"!==t[0]&&""+parseInt(t,10)===t,b=(t,e)=>Object.is(t,e),w=(t,e,s)=>{Object.defineProperty(t,e,{configurable:!0,enumerable:!1,value:s})};function v(t,e){if(!t)throw new Error(`[Doura] ${e||""}`)}const S=Array.prototype.slice;const m=Object.prototype.propertyIsEnumerable;function O(t){return Array.isArray(t)?S.call(t):h(t)?new Map(t):u(t)?new Set(t):Object.getPrototypeOf(t)===Object.prototype?function(t){const e={},s=x(t);for(let n=0;n<s.length;n++){const i=s[n],r=t[i];m.call(t,i)?e[i]=r:Object.defineProperty(e,i,{configurable:!0,writable:!0,enumerable:!1,value:r})}return e}(t):function(t){const e=Object.getOwnPropertyDescriptors(t),s=x(e);for(let n=0;n<s.length;n++){const i=s[n],r=e[i];!1===r.writable&&(r.writable=!0,r.configurable=!0),(r.get||r.set)&&(e[i]={configurable:!0,writable:!0,enumerable:r.enumerable,value:t[i]})}return Object.create(Object.getPrototypeOf(t),e)}(t)}const x="undefined"!=typeof Reflect&&Reflect.ownKeys?Reflect.ownKeys:void 0!==Object.getOwnPropertySymbols?t=>Object.getOwnPropertyNames(t).concat(Object.getOwnPropertySymbols(t)):Object.getOwnPropertyNames;function j(t,...e){console.warn(`[Doura warn] ${t}`,...e)}function E(t){switch(_(t)){case"Object":return 1;case"Array":return 2;case"Set":return 3;case"Map":return 4;default:return 0}}function P(t){return!!t&&!!t.__r_state}function M(t){const e=R(t);return e?M(e.base):t}function R(t){return t&&t.__r_state}function C(t){return t.copy||t.base}function D(t){t.modified||(t.modified=!0,t.parent&&D(t.parent))}let I;class A{constructor(t=!1){this.active=!0,this.effects=[],this.cleanups=[],!t&&I&&(this.parent=I,this.index=(I.scopes||(I.scopes=[])).push(this)-1)}run(t){if(this.active){const e=I;try{return I=this,t()}finally{I=e}}}on(){I=this}off(){I=this.parent}stop(t){if(this.active){let e,s;for(e=0,s=this.effects.length;e<s;e++)this.effects[e].stop();for(e=0,s=this.cleanups.length;e<s;e++)this.cleanups[e]();if(this.scopes)for(e=0,s=this.scopes.length;e<s;e++)this.scopes[e].stop(!0);if(this.parent&&!t){const t=this.parent.scopes.pop();t&&t!==this&&(this.parent.scopes[this.index]=t,t.index=this.index)}this.active=!1}}}const T=t=>{const e=new Set(t);return e.w=0,e.n=0,e},$=t=>(t.w&H)>0,k=t=>(t.n&H)>0,L=new WeakMap,N=new WeakMap;let V=0,H=1;let U;const X=Symbol(""),K=Symbol("");let z=0;class Y{constructor(t,e=null,s){this.fn=t,this.scheduler=e,this.id=z++,this.deps=[],this.active=!0,this.parent=void 0,function(t,e=I){e&&e.active&&e.effects.push(t)}(this,s)}run(){if(!this.active)return this.fn();let t=U;const e=J;for(;t;){if(t===this)return;t=t.parent}try{return this.parent=U,U=this,J=!0,H=1<<++V,V<=30?(({deps:t})=>{if(t.length)for(let e=0;e<t.length;e++)t[e].w|=H})(this):F(this),this.fn()}finally{V<=30&&(t=>{const{deps:e}=t;if(e.length){let s=0;for(let n=0;n<e.length;n++){const i=e[n];$(i)&&!k(i)?i.delete(t):e[s++]=i,i.w&=~H,i.n&=~H}e.length=s}})(this),H=1<<--V,U=this.parent,J=e,this.parent=void 0,this.deferStop&&this.stop()}}stop(){U===this?this.deferStop=!0:this.active&&(F(this),this.onStop&&this.onStop(),this.active=!1)}}function F(t){const{deps:e}=t;if(e.length){for(let s=0;s<e.length;s++)e[s].delete(t);e.length=0}}let J=!0;const W=[];function B(){W.push(J),J=!1}function q(){const t=W.pop();J=void 0===t||t}function G(t,e,s){if(J&&U){let e=L.get(t);e||L.set(t,e=new Map);let n=e.get(s);n||e.set(s,n=T()),Z(n)}}function Q(t){if(J&&U){const e=t.__r_state;if(!e)return;let s=N.get(e);s||N.set(e,s=T()),Z(s)}}function Z(t){let e=!1;V<=30?k(t)||(t.n|=H,e=!$(t)):e=!t.has(U),e&&(t.add(U),U.deps.push(t))}function tt(t){const e=N.get(t);if(e){const t=[...e];for(const e of t)e.view&&(e.view.mightChange=!0)}}function et(t,e,s,n,i){var r;const o=L.get(t),c=t.base;let a=[];if(o)if("clear"===e)a=[...o.values()];else if("length"===s&&l(c))o.forEach(((t,e)=>{("length"===e||e>=n)&&a.push(t)}));else switch(void 0!==s&&a.push(o.get(s)),e){case"add":l(c)?g(s)&&a.push(o.get("length")):(a.push(o.get(X)),h(c)&&a.push(o.get(K)));break;case"delete":l(c)||(a.push(o.get(X)),h(c)&&a.push(o.get(K)));break;case"set":h(c)&&a.push(o.get(X))}if(1===a.length)a[0]&&st(a[0]);else{const t=[];for(const e of a)e&&t.push(...e);st(T(t))}const u=null===(r=t.root)||void 0===r?void 0:r.listeners;u&&u.length&&u.forEach((t=>t()))}function st(t){const e=l(t)?t:[...t];for(const s of e)s.view&&nt(s);for(const s of e)s.view||nt(s)}function nt(t){(t!==U||t.allowRecurse)&&(t.scheduler?t.scheduler():t.run())}class it{constructor(t,{disableCache:e=!1}){this.dep=void 0,this.mightChange=!1,this.dirty=!0,this.effect=new Y(t,(()=>{this.dirty||(this.dirty=!0,function(t){(t=M(t)).dep&&st(t.dep)}(this))})),this.effect.view=this,this.effect.active=this._cacheable=!e}get value(){const t=M(this);return function(t){J&&U&&Z((t=M(t)).dep||(t.dep=T()))}(t),!t.dirty&&t._cacheable||(t.dirty=!1,t._value=t.effect.run()),t._value}set value(t){}}const rt=new Set(["__proto__"]),ot=new Set(Object.getOwnPropertyNames(Symbol).filter((t=>"arguments"!==t&&"caller"!==t)).map((t=>Symbol[t])).filter(p));function ct(t){t.copy||(t.copy=O(t.base))}function at(t,e){const s=t.__r_state;return(s?C(s):t)[e]}const lt=ft(),ht=ut();function ut(){const t={};return["includes","indexOf","lastIndexOf"].forEach((e=>{t[e]=function(...t){const s=R(this),n=C(s);for(let e=0,r=this.length;e<r;e++)G(s,0,e+"");const i=n[e](...t);return-1===i||!1===i?n[e](...t.map(M)):i}})),["push","pop","shift","unshift","splice"].forEach((e=>{t[e]=function(...t){B();const s=C(R(this))[e].apply(this,t);return q(),s}})),t}function ft(){return function(t,e,s){const n=C(t);if("__r_isReactive"===e)return!0;if("__r_state"===e&&s===Pt.get(t))return t;if(l(n)&&o(ht,e))return Reflect.get(ht,e,s);let i=Reflect.get(n,e,s);return(p(e)?ot.has(e):rt.has(e))?i:(G(t,0,e),o(n,e)?(t.disposed||!d(i)||(P(i)||(ct(t),i=t.copy[e]=Rt(i,t)),Q(i)),i):i)}}function pt(){return function(t,e,s,n){const i=C(t),r=at(i,e),c=l(i)&&g(e)?Number(e)<i.length:o(i,e);if(!t.modified){const n=null==r?void 0:r.__r_state;if(n&&n.base===s)return t.copy[e]=s,!0;if(b(s,r)&&(void 0!==s||o(t.base,e)))return!0;ct(t),D(t)}return b(t.copy[e],s)&&(void 0!==s||e in t.copy)||(t.copy[e]=s,t===R(n)&&(c?b(s,r)||et(t,"set",e,s):et(t,"add",e,s),function(t){let e=t;for(;e;)tt(e),e=e.parent}(t))),!0}}const dt={get:lt,set:pt(),deleteProperty:function(t,e){const s=o(C(t),e);if((void 0!==at(t.base,e)||e in t.base)&&(ct(t),D(t)),t.copy){const n=delete t.copy[e];return n&&s&&et(t,"delete",e,void 0),n}return!0},has:function(t,e){const s=C(t),n=Reflect.has(s,e);return p(e)&&ot.has(e)||G(t,0,e),n},ownKeys:function(t){const e=C(t);return G(t,0,l(e)?"length":X),Reflect.ownKeys(e)},setPrototypeOf:function(t,e){const s=Reflect.setPrototypeOf(t.base,e);return s&&t.copy&&Reflect.setPrototypeOf(t.copy,e),s},getOwnPropertyDescriptor:function(t,e){const s=C(t),n=Reflect.getOwnPropertyDescriptor(s,e);return n?{writable:!0,configurable:!l(s)||"length"!==e,enumerable:n.enumerable,value:s[e]}:n}};function _t(t){t.copy||(t.copy=new Set,t.base.forEach((e=>{if(d(e)){const s=Rt(e,t);Q(s),e!==s&&t.drafts.set(e,s),t.copy.add(s)}else t.copy.add(e)})))}function yt(t){1===t.type?function(t){t.copy||(t.copy=new Map(t.base))}(t):_t(t)}function gt(t){const e=this.__r_state,s=C(e);if(G(e,0,t),!s.has(t))return;let n=s.get(t);return d(n)?(P(n)||(yt(e),n=Rt(n,e),e.copy.set(t,n)),Q(n),n):n}function bt(t,e){const s=this.__r_state,n=C(s),i=n.has(t),r=n.get(t),o=()=>{yt(s),D(s),s.copy.set(t,e)};return i?b(e,r)||(o(),et(s,"set",t,e)):(o(),et(s,"add",t,e)),this}function wt(t){const e=this.__r_state;return C(e).has(t)||(_t(e),D(e),e.copy.add(t),et(e,"add",t,t)),this}function vt(t){const e=this.__r_state;return G(e,0,t),e.copy?!!e.copy.has(t)||2===e.type&&(e.drafts.has(t)&&e.drafts.has(e.drafts.get(t))):e.base.has(t)}function St(t){const e=this.__r_state,s=C(e),n=s.has(t);"get"in s&&s.get(t),yt(e),D(e);let i=e.copy.delete(t);return 2!==e.type||i||(i=!!e.drafts.has(t)&&e.drafts.delete(e.drafts.get(t))),n&&et(e,"delete",t,void 0),i}function mt(){const t=this.__r_state,e=C(t),s=0!==e.size,n=e.clear();return s&&(yt(t),D(t),t.copy.clear(),et(t,"clear",void 0,void 0)),n}function Ot(){const t={get:gt,get size(){return G(t=this.__r_state,0,X),C(t).size;var t},has:vt,add:wt,set:bt,delete:St,clear:mt,keys(){const t=this.__r_state;return 1===t.type?function(t){return G(t,0,K),C(t).keys()}(t):function(t){return G(t,0,X),_t(t),t.copy.values()}(t)},forEach(t,e){const s=this.__r_state;1===s.type?function(t,e,s,n){G(e,0,X),C(e).forEach(((i,r)=>s.call(n,e.proxy.get(r),r,t)))}(this,s,t,e):function(t,e,s,n){const i=e.proxy.values();let r=i.next();for(;!r.done;)s.call(n,r.value,r.value,t),r=i.next()}(this,s,t,e)}};return["values","entries",Symbol.iterator].forEach((e=>{t[e]=function(t){return function(...e){const s=this.__r_state,n=1===s.type,i="entries"===t||t===Symbol.iterator&&n;if(n){const t=s.proxy.keys();return{next(){const{value:e,done:n}=t.next(),r=s.proxy.get(e);return n?{value:r,done:n}:{value:i?[e,r]:r,done:n}},[Symbol.iterator](){return this}}}return G(s,0,X),_t(s),s.copy[t](...e)}}(e)})),[t]}const[xt]=Ot();function jt(){const t=xt;return(e,s,n)=>{if("__r_isReactive"===s)return!0;if("__r_state"===s)return e;const i=C(e);return Reflect.get(o(t,s)&&s in i?t:i,s,n)}}const Et={get:jt()};const Pt=new WeakMap;let Mt=0;function Rt(t,e){const s=E(t);if(0===s)return t;if(t.__r_skip||!Object.isExtensible(t))return t;if(t.__r_state)return t;let n={type:0,id:Mt++,root:null,parent:e,base:t,proxy:null,copy:null,modified:!1,disposed:!1,listeners:[],children:[]},i=n,r=dt;3===s?(n.type=2,n.drafts=new Map,i=new Set,r=Et):4===s?(n.type=1,i=new Map,r=Et):2===s&&(i=[]),i!==n&&Object.keys(n).forEach((t=>{Object.defineProperty(i,t,{configurable:!0,enumerable:!0,writable:!0,value:n[t]})}));const o=new Proxy(i,r);return i.proxy=o,e?(i.root=e.root,e.children.push(i)):i.root=i,Pt.set(i,o),i.proxy}function Ct(t,e){const s=function(t,{copies:e,snapshots:s}){const n=t=>{switch(E(t)){case 1:case 2:return u;case 4:case 3:return l;default:throw new Error("Unpected Error. Please file an issue on https://github.com/dourajs/doura")}},i=t=>{if(!d(t))return t;if(P(t)){let i=s.get(t);if(!i){const r=e.get(t.__r_state);s.set(t,i=new Proxy(r,n(r)))}return i}return t},r=t=>function(...e){const s=this.__r_raw,n="entries"===t||t===Symbol.iterator&&h(this),r=s[t](...e);return{next(){const{value:t,done:e}=r.next();return e?{value:i(t),done:e}:{value:n?[t[0],i(t[1])]:i(t),done:e}},[Symbol.iterator](){return this}}},c=t=>function(...e){return this.__r_raw[t](...e)},a={get size(){return this.__r_raw.size},get(t){const e=this.__r_raw;if(e.has(t))return i(e.get(t))},forEach(t,e){const s=this.__r_raw;return s.forEach(((n,r)=>(n=i(n),t.call(e,n,h(s)?r:n,s))))}};["has","add","set","delete","clear"].forEach((t=>{a[t]=c(t)})),["keys","values","entries",Symbol.iterator].forEach((t=>{a[t]=r(t)}));const l={get:(t,e,s)=>"__r_raw"===e?t:Reflect.get(o(a,e)&&e in t?a:t,e,s)},u={get:(t,e,s)=>i(Reflect.get(t,e,s))};return n(t)}(t,e);if(P(t)){return new Proxy(e.copies.get(t.__r_state),s)}return new Proxy(t,s)}function Dt(t,e,s){if(!d(t))return t;const n=function(t,e){const s=new Map,n={copies:s,snapshots:e||new Map},i=n.snapshots,r=[t.__r_state];for(;r.length;){const t=r.pop();let e;t.modified?(e=O(t.copy),It(t,e),i.delete(t.proxy)):e=Ct(t.base,n),s.set(t,e);for(const s of t.children)r.push(s)}return n}(e,s);return Ct(t,n)}function It(t,e){t.modified=!1,t.base=e}function At(t,e){const s=t.createView((function(){return e(this,this.$actions)})),n=s.getSnapshot;return n.destory=function(){s.effect.stop();const e=t.effectScope.effects.indexOf(s.effect);e>=0&&t.effectScope.effects.splice(e,1)},n}const Tt=i({$name:t=>t.name,$rawState:t=>t.getState(),$state:t=>t.stateValue,$actions:t=>t.actions,$views:t=>t.views,$patch:t=>t.patch,$onAction:t=>t.onAction,$subscribe:t=>t.subscribe,$isolate:t=>t.isolate,$getApi:t=>t.getApi,$createView:t=>At.bind(null,t)}),$t=t=>({_:e},s)=>{const{actions:n,views:i,accessCache:r,ctx:c}=e;let a;if(a=t?e.getState():e.stateValue,"$"!==s[0]){const t=r[s];if(void 0!==t)switch(t){case 0:return a[s];case 2:return i[s];case 1:return n[s];case 3:return c[s]}else{if(o(a,s))return r[s]=0,a[s];if(o(c,s))return r[s]=3,c[s]}}const l=Tt[s];return l?l(e):o(c,s)?(r[s]=3,c[s]):void((t=>"_"===t||"$"===t)(s[0])&&o(a,s)&&j(`Property ${JSON.stringify(s)} must be accessed via $state because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`))},kt=({_:t},e,s)=>{const{ctx:n,actions:i,views:r,accessContext:c,stateRef:{value:a}}=t;return o(a,e)?1!==c&&(a[e]=s,!0):!o(i,e)&&(!o(r,e)&&("$state"===e?"bigint"!=typeof s&&"symbol"!=typeof s&&(t.replace(s),!0):("$"!==e[0]||!o(Tt,e))&&(n[e]=s,!0)))},Lt={get:$t(!1),set:kt},Nt={get:$t(!0),set:kt};function Vt(t,e,...s){console.error(t)}let Ht=!1,Ut=!1;const Xt=[];let Kt=0;const zt=[];let Yt=null,Ft=0;const Jt=[];let Wt=null,Bt=0;const qt=Promise.resolve();let Gt=null,Qt=null;function Zt(t){Xt.length&&Xt.includes(t,Ht&&t.allowRecurse?Kt+1:Kt)||t===Qt||(null==t.id?Xt.push(t):Xt.splice(function(t){let e=Kt+1,s=Xt.length;for(;e<s;){const n=e+s>>>1;se(Xt[n])<t?e=n+1:s=n}return e}(t.id),0,t),Ht||Ut||(Ut=!0,Gt=qt.then(ne)))}function te(t){const e=Xt.indexOf(t);e>=Kt&&Xt.splice(e,1)}function ee(t,e=null){if(zt.length){for(Qt=e,Yt=[...new Set(zt)],zt.length=0,Ft=0;Ft<Yt.length;Ft++)Yt[Ft]();Yt=null,Ft=0,Qt=null,ee(t,e)}}const se=t=>null==t.id?1/0:t.id;function ne(t){Ut=!1,Ht=!0,ee(t),Xt.sort(((t,e)=>se(t)-se(e)));try{for(Kt=0;Kt<Xt.length;Kt++){const t=Xt[Kt];if(t&&!1!==t.active){0;try{t()}catch(e){Vt(e)}}}}finally{Kt=0,Xt.length=0,function(t){if(ee(),Jt.length){const t=[...new Set(Jt)];if(Jt.length=0,Wt)return void Wt.push(...t);for(Wt=t,Wt.sort(((t,e)=>se(t)-se(e))),Bt=0;Bt<Wt.length;Bt++)Wt[Bt]();Wt=null,Bt=0}}(),Ht=!1,Gt=null,(Xt.length||zt.length||Jt.length)&&ne(t)}}var ie;function re(t,e){const s=Object.keys(e);s.length&&s.forEach((s=>{o(t,s)&&y(e[s])?re(t[s],e[s]):t[s]=e[s]}))}function oe(t){t.dirty=!0}!function(t){t.REPLACE="replace",t.MODIFY="modify",t.PATCH="patch"}(ie||(ie={}));class ce{constructor(t,{name:s,initState:n}){var i;this.viewInstances=[],this._actionDepth=0,this._api=null,this._actionListeners=new Set,this._subscribers=new Set,this._depListenersHandlers=[],this._watchStateChange=!0,this._destroyed=!1,this._lastDraftToSnapshot=new Map,this.patch=this.patch.bind(this),this.onAction=this.onAction.bind(this),this.subscribe=this.subscribe.bind(this),this.isolate=this.isolate.bind(this),this.getApi=this.getApi.bind(this),this._update=this._update.bind(this),this.options=t,this.name=s||"",this._isDispatching=!1,this._initState=n||t.state,this.stateRef=Rt({value:this._initState}),this._update.__name=s,this._draftListenerHandler=function(t,s){const n=t.__r_state;return n.disposed?e:(n.listeners.push(s),()=>{const t=n.listeners.indexOf(s);t>=0&&n.listeners.splice(t,1)})}(this.stateRef,(()=>{this._watchStateChange&&Zt(this._update)})),this._setState(this._initState),this.actions=Object.create(null),this.views=Object.create(null),this.accessContext=0,this.ctx={},w(this.ctx,"_",this),this.accessCache=Object.create(null),this.proxy=new Proxy(this.ctx,Lt),this.publicInst=new Proxy(this.ctx,Nt),this.effectScope=new A(i),this._initActions(),this._initViews()}patch(t){y(t)&&this._currentState&&(this._watchStateChange=!1,re(this.proxy.$state,t),this._watchStateChange=!0,this.dispatch({type:ie.PATCH,args:{patch:t}}))}replace(t){if(d(t)){this._watchStateChange=!1,this.stateRef.value=t,this._watchStateChange=!0;for(const t of this.viewInstances)t.effect.scheduler();this.dispatch({type:ie.REPLACE,payload:t})}else j(`replace argument should be an object, but receive a ${Object.prototype.toString.call(t)}`)}getState(){return this._currentState}getApi(){if(null===this._api){const t=this._api=Object.assign(Object.assign({},this._currentState),this.views);for(const e of Object.keys(this.actions))w(t,e,this.actions[e])}return this._api}onAction(t){return this._actionListeners.add(t),()=>{this._actionListeners.delete(t)}}subscribe(t){return this._subscribers.add(t),()=>{this._subscribers.delete(t)}}isolate(t){B();const e=t(this.stateValue);return q(),e}depend(t){this._depListenersHandlers.push(t.subscribe((t=>{this._triggerListener(Object.assign(Object.assign({},t),{model:this.proxy}))})))}createView(t){let e;return this.effectScope.run((()=>{e=function(t,e={}){return new it(t,e)}((()=>{const s=this.accessContext;this.accessContext=1;const i=e.__externalArgs;try{return t.call(this.proxy,this.proxy,...i||n)}finally{this.accessContext=s}}))})),e.getSnapshot=()=>{const t=e.value;return e.mightChange?(e.mightChange=!1,e.__snapshot=Dt(t,this.stateRef.value)):e.__pre!==t&&(e.__snapshot=Dt(t,this.stateRef.value)),e.__pre=t,e.__snapshot},this.viewInstances.push(e),e}reducer(t,e){switch(e.type){case ie.MODIFY:case ie.PATCH:{const t=new Map(this._lastDraftToSnapshot);return this._lastDraftToSnapshot=t,Dt(this.stateRef.value,this.stateRef.value,this._lastDraftToSnapshot)}case ie.REPLACE:return e.payload;default:return t}}dispatch(t){if(void 0===t.type)return t;if(this._isDispatching)return t;let e;try{this._isDispatching=!0,e=this.reducer(this._currentState,t)}finally{this._isDispatching=!1}return e!==this._currentState&&(this._setState(e),this._triggerListener(Object.assign({type:t.type,model:this.proxy,target:this.proxy},t.args))),t}destroy(){this._destroyed=!0,this._api=null,this._lastDraftToSnapshot.clear(),this._currentState=null,this.stateRef={value:null},this._subscribers.clear(),this.effectScope.stop();for(const t of this._depListenersHandlers)t();this._draftListenerHandler()}_setState(t){this._api=null,this._currentState=t,this.stateValue=this.stateRef.value}_update(){!this._destroyed&&function(t){return t.__r_state.modified}(this.stateRef)&&(this.dispatch({type:ie.MODIFY}),function(t){const e=t.__r_state;e&&(e.modified=!1)}(this.stateRef))}_triggerListener(t){for(const e of this._subscribers)e(t)}_initActions(){const t=this.options.actions;if(t)for(const e of Object.keys(t)){this.accessCache[e]=1;const s=t[e];Object.defineProperty(this.actions,e,{configurable:!0,enumerable:!0,writable:!1,value:(...t)=>{if(1===this.accessContext)return;let n;this._actionDepth++;try{for(const s of this._actionListeners)s({name:e,args:t});n=s.call(this.proxy,...t)}finally{0==--this._actionDepth&&(te(this._update),this._update())}return n}})}}_initViews(){const t=this.options.views;if(t)for(const e of Object.keys(t)){this.accessCache[e]=2;const s=t[e],n=s.length>1,i=this.createView(s),r=i;0;Object.defineProperty(this.views,e,{configurable:!0,enumerable:!0,get:n?()=>(...t)=>{const e=r.__externalArgs;if(e){if(e.length!==t.length)oe(i);else for(let s=0;s<e.length;s++)if(e[s]!==t[s]){oe(i);break}}else oe(i);return r.__externalArgs=t,i.getSnapshot()}:i.getSnapshot,set:()=>!1})}}}function ae(t,e={}){return new ce(t,e)}let le=null;function he(t){le=t}class ue{constructor(t=s,e=[]){this._subscribers=new Set,this._initialState=t,this._models=(()=>{const t=new Map,e={get:e=>t.get(e),set(e,s){t.set(e,s)},each(e){for(const[s,n]of t.entries())e(n,s)},clear(){e.each((t=>t.destroy())),t.clear()}};return e})();const n=()=>{for(const t of this._subscribers)t()};this._onModelChange=()=>{Zt(n)},this._hooks=e.map((([t,e])=>t(e))),this._hooks.map((e=>{var s;return null===(s=e.onInit)||void 0===s?void 0:s.call(e,{initialState:t},{doura:this})}))}getModel(t,e){return this.getModelInstance({name:t,model:e}).publicInst}getDetachedModel(t){return this.getModelInstance({model:t}).publicInst}getModelInstance({name:t,model:e}){const s=t&&this._models.get(t);if(s)return s;let n;if("function"==typeof e){const s=le,i=this._createModelProxy();try{he({manager:this,model:i}),n=this._initModel({name:t,model:e()})}finally{he(s)}i.setModel(n)}else{if("object"!=typeof e)throw new Error("invalid model");n=this._initModel({name:t,model:e})}return n}getState(){const t={};return this._models.each(((e,s)=>{t[s]=e.getState()})),t}subscribe(t){return this._subscribers.add(t),()=>{this._subscribers.delete(t)}}destroy(){this._hooks.map((t=>{var e;return null===(e=t.onDestroy)||void 0===e?void 0:e.call(t)})),this._models.clear(),this._subscribers.clear(),this._initialState=s}_createModelProxy(){const t=[];return{addChild(e){t.push(e)},setModel(e){for(const s of t)e.depend(s);t.length=0}}}_initModel({name:t,model:e}){if(!t)return ae(e);this._hooks.map((s=>{var n;return null===(n=s.onModel)||void 0===n?void 0:n.call(s,t,e,{doura:this})}));const s=ae(e,{name:t,initState:this._getInitialState(t)});return s.subscribe(this._onModelChange),this._models.set(t,s),this._hooks.map((t=>{var e;null===(e=t.onModelInstance)||void 0===e||e.call(t,s.publicInst,{doura:this})})),s}_getInitialState(t){const e=this._initialState[t];return e&&delete this._initialState[t],e}}var fe=function(){if("undefined"==typeof window||!window.__REDUX_DEVTOOLS_EXTENSION__)return{};let t=0;const e=new Set;let s;return{onInit(n,{doura:i}){if(window.__doura=i,"undefined"!=typeof window&&window.__REDUX_DEVTOOLS_EXTENSION__){s=window.__REDUX_DEVTOOLS_EXTENSION__.connect({name:`doura${0===t?"":t}`}),t+=1,s.init(i.getState());const n=t=>{switch(t.type){case"ACTION":return void v("string"==typeof t.payload,"Unsupported action format");case"DISPATCH":switch(t.payload.type){case"RESET":case"COMMIT":return s.init(i.getState());case"ROLLBACK":try{const e=JSON.parse(t.state);return s.init(e)}catch(e){console.warn("[Doura Devtool] Could not parse the received json.")}return s.init(i.getState());case"JUMP_TO_STATE":case"JUMP_TO_ACTION":return}}};e.add(s.subscribe(n))}},onModelInstance(t,{doura:e}){t.$subscribe((t=>{var{type:n,model:i}=t,r=function(t,e){var s={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(s[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(n=Object.getOwnPropertySymbols(t);i<n.length;i++)e.indexOf(n[i])<0&&Object.prototype.propertyIsEnumerable.call(t,n[i])&&(s[n[i]]=t[n[i]])}return s}(t,["type","model"]);const o=e.getState();delete o._,s.send(Object.assign({type:`${i.$name||"anonymous"}@${n}`},r),o)}))},onDestroy(){window.__REDUX_DEVTOOLS_EXTENSION__.disconnect(s);for(const t of e.values())t();e.clear()}}};return t.NOOP=e,t.assign=i,t.def=w,t.defineModel=t=>t,t.devtool=fe,t.doura=function({initialState:t,plugins:e=[]}={}){return function({initialState:t,plugins:e}={}){return new ue(t,e)}({initialState:t,plugins:e})},t.draft=Rt,t.each=function(t,e,s=!1){y(t)?(s?Object.keys:x)(t).forEach((n=>{s&&"symbol"==typeof n||e(n,t[n],t)})):t.forEach(((s,n)=>e(n,s,t)))},t.emptyArray=n,t.emptyObject=s,t.hasOwn=o,t.invariant=v,t.is=b,t.isArray=l,t.isFunction=t=>"function"==typeof t,t.isIntegerKey=g,t.isMap=h,t.isObject=d,t.isPlainObject=y,t.isSet=u,t.isString=f,t.isSymbol=p,t.nextTick=function(t){const e=Gt||qt;return t?e.then(this?t.bind(this):t):e},t.objectToString=c,t.ownKeys=x,t.set=function(t,e,s){h(t)?t.set(e,s):u(t)?(t.delete(e),t.add(s)):t[e]=s},t.shallowCopy=O,t.snapshot=Dt,t.toRawType=_,t.toTypeString=a,t.use=function(t,e){if(!le)throw new Error("Invalid use() call. use() can only be called inside of the body of a function model. This could happen for one of the following reasons:\n1. You might be breaking the Rules of Doura\n2. You might have more than one copy of Doura in the same app");const{manager:s,model:n}=le;let i,r;return"string"==typeof t?(r=t,i=s.getModelInstance({name:r,model:e})):i=s.getModelInstance({model:e=t}),n.addChild(i),i.proxy},t}({});
{
"name": "doura",
"version": "0.0.11",
"version": "0.0.12",
"description": "Reactive and intuitive state management",

@@ -5,0 +5,0 @@ "main": "index.js",

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc