@firsthandjs/core 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
package/dist/flags.d.ts CHANGED
@@ -12,8 +12,6 @@ export declare const WATCHING: number;
12
12
  export declare const DIRTY: number;
13
13
  /** A transitive dependency may have changed. Resolve by checking deps. */
14
14
  export declare const PENDING: number;
15
- /** The node is currently in the flush queue. */
16
- export declare const QUEUED: number;
17
15
  /** The node has been disposed; it must never run again. */
18
16
  export declare const DISPOSED: number;
19
17
  /** A computed has produced a value at least once. */
@@ -1 +1 @@
1
- {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oEAAoE;AACpE,eAAO,MAAM,OAAO,QAAS,CAAC;AAC9B,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,QAAS,CAAC;AAC/B,yEAAyE;AACzE,eAAO,MAAM,KAAK,QAAS,CAAC;AAC5B,0EAA0E;AAC1E,eAAO,MAAM,OAAO,QAAS,CAAC;AAC9B,gDAAgD;AAChD,eAAO,MAAM,MAAM,QAAS,CAAC;AAC7B,2DAA2D;AAC3D,eAAO,MAAM,QAAQ,QAAS,CAAC;AAC/B,qDAAqD;AACrD,eAAO,MAAM,SAAS,QAAS,CAAC;AAEhC,iEAAiE;AACjE,eAAO,MAAM,KAAK,QAAkB,CAAC"}
1
+ {"version":3,"file":"flags.d.ts","sourceRoot":"","sources":["../src/flags.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,oEAAoE;AACpE,eAAO,MAAM,OAAO,QAAS,CAAC;AAC9B,+DAA+D;AAC/D,eAAO,MAAM,QAAQ,QAAS,CAAC;AAC/B,yEAAyE;AACzE,eAAO,MAAM,KAAK,QAAS,CAAC;AAC5B,0EAA0E;AAC1E,eAAO,MAAM,OAAO,QAAS,CAAC;AAC9B,2DAA2D;AAC3D,eAAO,MAAM,QAAQ,QAAS,CAAC;AAC/B,qDAAqD;AACrD,eAAO,MAAM,SAAS,QAAS,CAAC;AAEhC,iEAAiE;AACjE,eAAO,MAAM,KAAK,QAAkB,CAAC"}
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- var c=class extends Error{constructor(){super("Reactive update did not settle: an effect keeps invalidating its own dependencies. Use untrack() or batch() to break the cycle."),this.name="FirsthandCycleError"}},h=class extends Error{constructor(n){super(`No provider for ${n}, and the context was created without a default value.`),this.name="FirsthandContextError"}},p=class extends Error{constructor(){super("Cannot assign to a computed value. Write to the signals it derives from instead."),this.name="FirsthandReadonlyError"}};function N(e){queueMicrotask(()=>{throw e})}var S=class{constructor(n,t,o,r,l){this.dep=n,this.sub=t,this.prevDep=o,this.nextDep=r,this.prevSub=l,this.nextSub=void 0}},K=Object.is,Z=()=>!1,i=class{constructor(n,t,o,r){this.flags=n,this.v=t,this.fn=o,this.equals=r,this.deps=void 0,this.depsTail=void 0,this.subs=void 0,this.subsTail=void 0,this.scope=void 0}get value(){let n=this.flags;return(n&1)!==0&&(n&12)!==0&&q(this),u!==void 0&&ne(this,u),this.v}set value(n){if((this.flags&1)!==0)throw new p;A(this,n)}peek(){let n=this.flags;return(n&1)!==0&&(n&12)!==0&&q(this),this.v}set(n){if((this.flags&1)!==0)throw new p;A(this,n(this.v))}},u,s=null,R=0,D=!1,m=0,v=[],ee=1e6;function ne(e,n){let t=n.depsTail;if(t!==void 0&&t.dep===e)return;let o=t!==void 0?t.nextDep:n.deps;if(o!==void 0&&o.dep===e){n.depsTail=o;return}let r=e.subsTail;if(r!==void 0&&r.sub===n&&te(r,n))return;let l=new S(e,n,t,o,r);n.depsTail=l,e.subsTail=l,o!==void 0&&(o.prevDep=l),t!==void 0?t.nextDep=l:n.deps=l,r!==void 0?r.nextSub=l:e.subs=l}function te(e,n){let t=n.depsTail;for(;t!==void 0;){if(t===e)return!0;t=t.prevDep}return!1}function L(e,n){let t=e.dep,o=e.prevDep,r=e.nextDep,l=e.prevSub,g=e.nextSub;return r!==void 0?r.prevDep=o:n.depsTail=o,o!==void 0?o.nextDep=r:n.deps=r,g!==void 0?g.prevSub=l:t.subsTail=l,l!==void 0?l.nextSub=g:t.subs=g,r}function B(e){e.depsTail=void 0,e.flags&=-13}function _(e){let n=e.depsTail,t=n!==void 0?n.nextDep:e.deps;for(;t!==void 0;)t=L(t,e)}function oe(e){let n=e;do{let t=n.sub,o=t.flags;(o&4)===0&&(t.flags=o|4,(o&8)===0&&((o&2)!==0?H(t):t.subs!==void 0&&M(t.subs))),n=n.nextSub}while(n!==void 0)}function M(e){let n=e;do{let t=n.sub,o=t.flags;(o&12)===0&&(t.flags=o|8,(o&2)!==0?H(t):t.subs!==void 0&&M(t.subs)),n=n.nextSub}while(n!==void 0)}function re(e){let n=e;do{let t=n.sub,o=t.flags;(o&12)===8&&(t.flags=o|4),n=n.nextSub}while(n!==void 0)}function A(e,n){if(e.equals(e.v,n))return;e.v=n;let t=e.subs;t!==void 0&&(oe(t),R===0&&V())}function q(e){if((e.flags&4)!==0||P(e)){if(!le(e))return!1;let t=e.subs;return t!==void 0&&t.nextSub!==void 0&&re(t),!0}return e.flags=e.flags&-9,!1}function P(e){let n=e.deps;for(;n!==void 0;){let t=n.dep;if((t.flags&1)!==0&&(t.flags&12)!==0&&q(t))return!0;n=n.nextDep}return!1}function le(e){let n=u,t=s;u=e,s=null,B(e);try{let o=e.fn();return(e.flags&64)!==0&&e.equals(e.v,o)?!1:(e.flags|=64,e.v=o,!0)}finally{_(e),u=n,s=t}}function H(e){(e.flags&16)===0&&(e.flags|=16,v.push(e))}function V(){if(D)return;D=!0;let e=0;try{for(;m<v.length;){let n=v[m];if(v[m++]=void 0,n.flags&=-17,(n.flags&32)===0){if(++e>ee)throw new c;(n.flags&4)!==0||P(n)?G(n):n.flags&=-9}}}finally{v.length=0,m=0,D=!1}}function G(e){let n=e.scope;j(n);let t=u,o=s;u=e,s=n,B(e);try{let r=e.fn();typeof r=="function"&&(n.disposals??=[]).push(r)}catch(r){x(r,n)}finally{_(e),u=t,s=o}}function T(e){let n={parent:e,attached:e!==null,prev:null,next:null,head:null,tail:null,disposals:null,cells:null,ctx:e!==null?e.ctx:null,handler:null};if(e!==null){let t=e.tail;n.prev=t,t!==null?t.next=n:e.head=n,e.tail=n}return n}function j(e){let n=e.head;for(;n!==null;){let r=n.next;n.attached=!1,n.prev=null,n.next=null,j(n),n=r}e.head=null,e.tail=null,e.ctx=e.parent!==null?e.parent.ctx:null;let t=e.cells;if(t!==null){for(let r=t.length-1;r>=0;r--)E(t[r]);e.cells=null}let o=e.disposals;if(o!==null){e.disposals=null;for(let r=o.length-1;r>=0;r--)try{o[r]()}catch(l){x(l,e)}}}function O(e){if(e.attached){let n=e.parent,t=e.prev,o=e.next;t!==null?t.next=o:n.head=o,o!==null?o.prev=t:n.tail=t,e.attached=!1,e.prev=null,e.next=null}j(e)}function E(e){e.flags|=32;let n=e.deps;for(;n!==void 0;)n=L(n,e);let t=e.subs;for(;t!==void 0;){let r=t.nextSub;L(t,t.sub),t=r}let o=e.scope;o!==void 0&&(O(o),e.scope=void 0,e.fn=void 0)}function x(e,n){if(e instanceof c)throw e;let t=n;for(;t!==null;){let o=t.handler;if(o!==null){try{o(e)}catch(r){x(r,t.parent)}return}t=t.parent}N(e)}function d(){return s}function f(e){let n=s;return s=e,n}function y(e){let n=s;n!==null&&(n.cells??=[]).push(e)}function Y(e){let n=T(s);return e.scope=n,n}function $(e){G(e)}function Q(e){e.flags|=32,e.fn=void 0;let n=s;n!==null&&n.cells.pop()}function a(e){return e===void 0?K:e===!1?Z:e}function ie(e){R++;try{return e()}finally{--R===0&&V()}}function se(e){let n=u;u=void 0;try{return e()}finally{u=n}}function ue(e,n){return new i(0,e,void 0,a(n?.equals))}function de(e,n){let t=new i(5,void 0,e,a(n?.equals));return y(t),t}function I(e){let n=new i(2,void 0,e,a(void 0));return y(n),Y(n),$(n),n}function fe(e){let n=I(e);n.deps===void 0&&Q(n)}function ae(e){d()===null&&void 0;let n=I(e);return()=>{E(n)}}function ce(e){let n=d();if(n===null){return}(n.disposals??=[]).push(e)}function pe(e){let n=T(d()),t=f(n);try{return e(()=>{O(n)})}finally{f(t)}}function xe(e,n){let t=T(d());t.handler=n;let o=f(t);try{let r=e();return f(o),r}catch(r){f(o),x(r,t);return}}function he(e,n){let t=f(e);try{return n()}finally{f(t)}}var z=Symbol("firsthand.ctx");function we(e,n){let t=n??"context";return{id:Symbol(t),description:t,hasDefault:arguments.length>0,defaultValue:e,fallback:void 0}}function ve(e,n){let t=d();if(t===null){`${e.description}`;return}let o=n instanceof i?n:new i(0,n,void 0,a(void 0));be(t)[e.id]=o}function Ce(e){let n=d(),t=n!==null?n.ctx:null,o=t!==null?t[e.id]:void 0;if(o!==void 0)return o;let r=e;if(!r.hasDefault)throw new h(r.description);return r.fallback??=new i(0,r.defaultValue,void 0,a(void 0))}function be(e){let n=e.ctx;if(n!==null&&n[z]===e)return n;let t=n!==null?Object.create(n):Object.create(null);return t[z]=e,e.ctx=t,t}export{i as Cell,h as FirsthandContextError,c as FirsthandCycleError,p as FirsthandReadonlyError,ie as batch,fe as bind,xe as catchError,de as computed,we as createContext,I as createEffect,T as createOwner,pe as createRoot,E as disposeCell,O as disposeOwner,ae as effect,d as getOwner,x as handleError,ce as onCleanup,y as own,ve as provide,he as runWithOwner,f as setOwner,ue as signal,se as untrack,Ce as useContext};
1
+ var c=class extends Error{constructor(){super("Reactive update did not settle: an effect keeps invalidating its own dependencies. Use untrack() or batch() to break the cycle."),this.name="FirsthandCycleError"}},h=class extends Error{constructor(n){super(`No provider for ${n}, and the context was created without a default value.`),this.name="FirsthandContextError"}},p=class extends Error{constructor(){super("Cannot assign to a computed value. Write to the signals it derives from instead."),this.name="FirsthandReadonlyError"}};function N(e){queueMicrotask(()=>{throw e})}var S=class{constructor(n,t,o,r,l){this.dep=n,this.sub=t,this.prevDep=o,this.nextDep=r,this.prevSub=l,this.nextSub=void 0}},K=Object.is,Q=()=>!1,i=class{constructor(n,t,o,r){this.flags=n,this.v=t,this.fn=o,this.equals=r,this.deps=void 0,this.depsTail=void 0,this.subs=void 0,this.subsTail=void 0,this.scope=void 0}get value(){let n=this.flags;return(n&1)!==0&&(n&12)!==0&&q(this),u!==void 0&&ee(this,u),this.v}set value(n){if((this.flags&1)!==0)throw new p;W(this,n)}peek(){let n=this.flags;return(n&1)!==0&&(n&12)!==0&&q(this),this.v}set(n){if((this.flags&1)!==0)throw new p;W(this,n(this.v))}},u,s=null,R=0,D=!1,g=0,v=[],Z=1e6;function ee(e,n){let t=n.depsTail;if(t!==void 0&&t.dep===e)return;let o=t!==void 0?t.nextDep:n.deps;if(o!==void 0&&o.dep===e){n.depsTail=o;return}let r=e.subsTail;if(r!==void 0&&r.sub===n&&ne(r,n))return;let l=new S(e,n,t,o,r);n.depsTail=l,e.subsTail=l,o!==void 0&&(o.prevDep=l),t!==void 0?t.nextDep=l:n.deps=l,r!==void 0?r.nextSub=l:e.subs=l}function ne(e,n){let t=n.depsTail;for(;t!==void 0;){if(t===e)return!0;t=t.prevDep}return!1}function L(e,n){let t=e.dep,o=e.prevDep,r=e.nextDep,l=e.prevSub,m=e.nextSub;return r!==void 0?r.prevDep=o:n.depsTail=o,o!==void 0?o.nextDep=r:n.deps=r,m!==void 0?m.prevSub=l:t.subsTail=l,l!==void 0?l.nextSub=m:t.subs=m,r}function B(e){e.depsTail=void 0,e.flags&=-13}function U(e){let n=e.depsTail,t=n!==void 0?n.nextDep:e.deps;for(;t!==void 0;)t=L(t,e)}function te(e){let n=e;do{let t=n.sub,o=t.flags;(o&4)===0&&(t.flags=o|4,(o&8)===0&&((o&2)!==0?P(t):t.subs!==void 0&&_(t.subs))),n=n.nextSub}while(n!==void 0)}function _(e){let n=e;do{let t=n.sub,o=t.flags;(o&12)===0&&(t.flags=o|8,(o&2)!==0?P(t):t.subs!==void 0&&_(t.subs)),n=n.nextSub}while(n!==void 0)}function oe(e){let n=e;do{let t=n.sub,o=t.flags;(o&12)===8&&(t.flags=o|4),n=n.nextSub}while(n!==void 0)}function W(e,n){if(e.equals(e.v,n))return;e.v=n;let t=e.subs;t!==void 0&&(te(t),R===0&&H())}function q(e){if((e.flags&4)!==0||M(e)){if(!re(e))return!1;let t=e.subs;return t!==void 0&&t.nextSub!==void 0&&oe(t),!0}return e.flags=e.flags&-9,!1}function M(e){let n=e.deps;for(;n!==void 0;){let t=n.dep;if((t.flags&1)!==0&&(t.flags&12)!==0&&q(t))return!0;n=n.nextDep}return!1}function re(e){let n=u,t=s;u=e,s=null,B(e);try{let o=e.fn();return(e.flags&32)!==0&&e.equals(e.v,o)?!1:(e.flags|=32,e.v=o,!0)}finally{U(e),u=n,s=t}}function P(e){v.push(e)}function H(){if(D)return;D=!0;let e=0;try{for(;g<v.length;){let n=v[g];if(v[g++]=void 0,(n.flags&16)===0){if(++e>Z)throw new c;(n.flags&4)!==0||M(n)?V(n):n.flags&=-9}}}finally{v.length=0,g=0,D=!1}}function V(e){let n=e.scope;j(n);let t=u,o=s;u=e,s=n,B(e);try{let r=e.fn();typeof r=="function"&&(n.disposals??=[]).push(r)}catch(r){x(r,n)}finally{U(e),u=t,s=o}}function T(e){let n={parent:e,attached:e!==null,prev:null,next:null,head:null,tail:null,disposals:null,cells:null,ctx:e!==null?e.ctx:null,handler:null};if(e!==null){let t=e.tail;n.prev=t,t!==null?t.next=n:e.head=n,e.tail=n}return n}function j(e){let n=e.head;for(;n!==null;){let r=n.next;n.attached=!1,n.prev=null,n.next=null,j(n),n=r}e.head=null,e.tail=null,e.ctx=e.parent!==null?e.parent.ctx:null;let t=e.cells;if(t!==null){for(let r=t.length-1;r>=0;r--)E(t[r]);e.cells=null}let o=e.disposals;if(o!==null){e.disposals=null;for(let r=o.length-1;r>=0;r--)try{o[r]()}catch(l){x(l,e)}}}function O(e){if(e.attached){let n=e.parent,t=e.prev,o=e.next;t!==null?t.next=o:n.head=o,o!==null?o.prev=t:n.tail=t,e.attached=!1,e.prev=null,e.next=null}j(e)}function E(e){e.flags|=16;let n=e.deps;for(;n!==void 0;)n=L(n,e);let t=e.subs;for(;t!==void 0;){let r=t.nextSub;L(t,t.sub),t=r}let o=e.scope;o!==void 0&&(O(o),e.scope=void 0,e.fn=void 0)}function x(e,n){if(e instanceof c)throw e;let t=n;for(;t!==null;){let o=t.handler;if(o!==null){try{o(e)}catch(r){x(r,t.parent)}return}t=t.parent}N(e)}function d(){return s}function f(e){let n=s;return s=e,n}function y(e){let n=s;n!==null&&(n.cells??=[]).push(e)}function G(e){let n=T(s);return e.scope=n,n}function Y(e){V(e)}function $(e){e.flags|=16,e.fn=void 0;let n=s;n!==null&&n.cells.pop()}function a(e){return e===void 0?K:e===!1?Q:e}function le(e){R++;try{return e()}finally{--R===0&&H()}}function ie(e){let n=u;u=void 0;try{return e()}finally{u=n}}function se(e,n){return new i(0,e,void 0,a(n?.equals))}function ue(e,n){let t=new i(5,void 0,e,a(n?.equals));return y(t),t}function I(e){let n=new i(2,void 0,e,a(void 0));return y(n),G(n),Y(n),n}function de(e){let n=I(e);n.deps===void 0&&$(n)}function fe(e){d()===null&&void 0;let n=I(e);return()=>{E(n)}}function ae(e){let n=d();if(n===null){return}(n.disposals??=[]).push(e)}function ce(e){let n=T(d()),t=f(n);try{return e(()=>{O(n)})}finally{f(t)}}function pe(e,n){let t=T(d());t.handler=n;let o=f(t);try{let r=e();return f(o),r}catch(r){f(o),x(r,t);return}}function xe(e,n){let t=f(e);try{return n()}finally{f(t)}}var z=Symbol("firsthand.ctx");function he(e,n){let t=n??"context";return{id:Symbol(t),description:t,hasDefault:arguments.length>0,defaultValue:e,fallback:void 0}}function we(e,n){let t=d();if(t===null){`${e.description}`;return}let o=n instanceof i?n:new i(0,n,void 0,a(void 0));Ce(t)[e.id]=o}function ve(e){let n=d(),t=n!==null?n.ctx:null,o=t!==null?t[e.id]:void 0;if(o!==void 0)return o;let r=e;if(!r.hasDefault)throw new h(r.description);return r.fallback??=new i(0,r.defaultValue,void 0,a(void 0))}function Ce(e){let n=e.ctx;if(n!==null&&n[z]===e)return n;let t=n!==null?Object.create(n):Object.create(null);return t[z]=e,e.ctx=t,t}export{i as Cell,h as FirsthandContextError,c as FirsthandCycleError,p as FirsthandReadonlyError,le as batch,de as bind,pe as catchError,ue as computed,he as createContext,I as createEffect,T as createOwner,ce as createRoot,E as disposeCell,O as disposeOwner,fe as effect,d as getOwner,x as handleError,ae as onCleanup,y as own,we as provide,xe as runWithOwner,f as setOwner,se as signal,ie as untrack,ve as useContext};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@firsthandjs/core",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Fine-grained reactive core: signals, computeds, effects, owners and context. No DOM.",
5
5
  "license": "MIT",
6
6
  "type": "module",