@firsthandjs/core 0.1.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core.d.ts +13 -0
- package/dist/core.d.ts.map +1 -1
- package/dist/dev.d.ts +16 -0
- package/dist/dev.d.ts.map +1 -1
- package/dist/dev.prod.d.ts +6 -0
- package/dist/dev.prod.d.ts.map +1 -1
- package/dist/flags.d.ts +0 -2
- package/dist/flags.d.ts.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/dist/core.d.ts
CHANGED
|
@@ -99,5 +99,18 @@ export declare function runEffectNow(cell: Cell): void;
|
|
|
99
99
|
export declare function releaseEffect(cell: Cell): void;
|
|
100
100
|
export declare function defaultEquals<T>(equals: ((a: T, b: T) => boolean) | false | undefined): (a: unknown, b: unknown) => boolean;
|
|
101
101
|
export declare function batch<T>(fn: () => T): T;
|
|
102
|
+
/**
|
|
103
|
+
* Reads once, on purpose.
|
|
104
|
+
*
|
|
105
|
+
* The starting value of an editable field, or a decision about what to build:
|
|
106
|
+
* both are reads that should not follow their source. `snapshot` says so, which
|
|
107
|
+
* is what keeps strict reactivity from reporting them — and what tells a reader
|
|
108
|
+
* that the frozen value is the intent rather than an oversight.
|
|
109
|
+
*
|
|
110
|
+
* ```ts
|
|
111
|
+
* const draft = signal(snapshot(() => props.initial));
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
export declare function snapshot<T>(read: () => T): T;
|
|
102
115
|
export declare function untrack<T>(fn: () => T): T;
|
|
103
116
|
//# sourceMappingURL=core.d.ts.map
|
package/dist/core.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAUH;oCACoC;AACpC,qBAAa,IAAI;IACP,GAAG,EAAE,IAAI,CAAC;IACV,GAAG,EAAE,IAAI,CAAC;IACV,OAAO,EAAE,IAAI,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,IAAI,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,IAAI,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,IAAI,GAAG,SAAS,CAAC;gBAGhC,GAAG,EAAE,IAAI,EACT,GAAG,EAAE,IAAI,EACT,OAAO,EAAE,IAAI,GAAG,SAAS,EACzB,OAAO,EAAE,IAAI,GAAG,SAAS,EACzB,OAAO,EAAE,IAAI,GAAG,SAAS;CAS5B;AAOD;;;GAGG;AACH,qBAAa,IAAI;IACP,KAAK,EAAE,MAAM,CAAC;IACtB,oDAAoD;IAC5C,CAAC,EAAE,OAAO,CAAC;IACnB,8DAA8D;IACtD,EAAE,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS,CAAC;IAChC,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO,CAAC;IAC5C,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;IAC3B,IAAI,EAAE,IAAI,GAAG,SAAS,CAAC;IACvB,QAAQ,EAAE,IAAI,GAAG,SAAS,CAAC;IACnC,6EAA6E;IACrE,KAAK,EAAE,KAAK,GAAG,SAAS,CAAC;gBAG/B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,OAAO,EACd,EAAE,EAAE,CAAC,MAAM,OAAO,CAAC,GAAG,SAAS,EAC/B,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,KAAK,OAAO;IAa7C,IAAI,KAAK,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../src/core.ts"],"names":[],"mappings":"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"}
|
package/dist/dev.d.ts
CHANGED
|
@@ -10,4 +10,20 @@
|
|
|
10
10
|
export declare function devWarn(message: string): void;
|
|
11
11
|
/** Reports an error that no boundary handled, so it reaches `window.onerror`. */
|
|
12
12
|
export declare function reportUncaught(error: unknown): void;
|
|
13
|
+
export declare function setStrictReactivity(on: boolean): void;
|
|
14
|
+
export declare function devEnterSetup(id: string): void;
|
|
15
|
+
export declare function devExitSetup(): void;
|
|
16
|
+
export declare function devEnterSnapshot(): void;
|
|
17
|
+
export declare function devExitSnapshot(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Warns about a read whose value is taken once and then kept.
|
|
20
|
+
*
|
|
21
|
+
* Called from the read path only where nothing is subscribing. Inside a
|
|
22
|
+
* component setup that means the value is being copied out of the graph: the
|
|
23
|
+
* number is right now and will not move again, and nothing throws to say so.
|
|
24
|
+
*
|
|
25
|
+
* Reported once per read, not once per instance: a list of a thousand rows
|
|
26
|
+
* would otherwise print the same line a thousand times.
|
|
27
|
+
*/
|
|
28
|
+
export declare function devCheckSetupRead(): void;
|
|
13
29
|
//# sourceMappingURL=dev.d.ts.map
|
package/dist/dev.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAInD"}
|
|
1
|
+
{"version":3,"file":"dev.d.ts","sourceRoot":"","sources":["../src/dev.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,wBAAgB,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE7C;AAED,iFAAiF;AACjF,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAInD;AAqBD,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,IAAI,CAErD;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAoBxC"}
|
package/dist/dev.prod.d.ts
CHANGED
|
@@ -1,4 +1,10 @@
|
|
|
1
1
|
/** Production stub for `dev.ts`. Aliased in by the build; see `dev.ts`. */
|
|
2
2
|
export declare function devWarn(_message: string): void;
|
|
3
3
|
export declare function reportUncaught(error: unknown): void;
|
|
4
|
+
export declare function setStrictReactivity(_on: boolean): void;
|
|
5
|
+
export declare function devEnterSetup(_id: string): void;
|
|
6
|
+
export declare function devExitSetup(): void;
|
|
7
|
+
export declare function devEnterSnapshot(): void;
|
|
8
|
+
export declare function devExitSnapshot(): void;
|
|
9
|
+
export declare function devCheckSetupRead(): void;
|
|
4
10
|
//# sourceMappingURL=dev.prod.d.ts.map
|
package/dist/dev.prod.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev.prod.d.ts","sourceRoot":"","sources":["../src/dev.prod.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAInD"}
|
|
1
|
+
{"version":3,"file":"dev.prod.d.ts","sourceRoot":"","sources":["../src/dev.prod.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAE3E,wBAAgB,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAE9C;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI,CAInD;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,IAAI,CAEtD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAE/C;AAED,wBAAgB,YAAY,IAAI,IAAI,CAEnC;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAED,wBAAgB,eAAe,IAAI,IAAI,CAEtC;AAED,wBAAgB,iBAAiB,IAAI,IAAI,CAExC"}
|
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. */
|
package/dist/flags.d.ts.map
CHANGED
|
@@ -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,
|
|
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.d.ts
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
export { signal } from './signal.js';
|
|
8
8
|
export { computed } from './computed.js';
|
|
9
9
|
export { effect } from './effect.js';
|
|
10
|
-
export { batch, untrack } from './core.js';
|
|
10
|
+
export { batch, snapshot, untrack } from './core.js';
|
|
11
|
+
export { setStrictReactivity } from './dev.js';
|
|
11
12
|
export { onCleanup, createRoot, catchError, runWithOwner, getOwner } from './lifecycle.js';
|
|
12
13
|
export { createContext, provide, useContext } from './context.js';
|
|
13
14
|
export type { Context } from './context.js';
|
|
@@ -16,5 +17,6 @@ export type { CellOptions, DeepReadonly, Dispose, ReadonlyCell, ReadonlyProps, S
|
|
|
16
17
|
export type { Owner } from './core.js';
|
|
17
18
|
/** Internal surface used by `@firsthandjs/dom`; not part of the public contract. */
|
|
18
19
|
export { createEffect, bind } from './effect.js';
|
|
20
|
+
export { devEnterSetup, devExitSetup } from './dev.js';
|
|
19
21
|
export { Cell, createOwner, disposeOwner, disposeCell, handleError, own, setOwner, } from './core.js';
|
|
20
22
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC3F,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAClE,YAAY,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,MAAM,aAAa,CAAC;AACjG,YAAY,EACV,WAAW,EACX,YAAY,EACZ,OAAO,EACP,YAAY,EACZ,aAAa,EACb,MAAM,GACP,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,KAAK,EAAE,MAAM,WAAW,CAAC;AAEvC,oFAAoF;AACpF,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EACL,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,WAAW,EACX,WAAW,EACX,GAAG,EACH,QAAQ,GACT,MAAM,WAAW,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
|
|
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})}function K(e){}function Q(e){}function Z(){}var D=class{constructor(n,t,o,r,i){this.dep=n,this.sub=t,this.prevDep=o,this.nextDep=r,this.prevSub=i,this.nextSub=void 0}},ne=Object.is,te=()=>!1,l=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?re(this,u):void 0,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,S=!1,g=0,w=[],oe=1e6;function re(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&&ie(r,n))return;let i=new D(e,n,t,o,r);n.depsTail=i,e.subsTail=i,o!==void 0&&(o.prevDep=i),t!==void 0?t.nextDep=i:n.deps=i,r!==void 0?r.nextSub=i:e.subs=i}function ie(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,i=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=i:t.subsTail=i,i!==void 0?i.nextSub=m:t.subs=m,r}function F(e){e.depsTail=void 0,e.flags&=-13}function B(e){let n=e.depsTail,t=n!==void 0?n.nextDep:e.deps;for(;t!==void 0;)t=L(t,e)}function le(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&&U(t.subs))),n=n.nextSub}while(n!==void 0)}function U(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&&U(t.subs)),n=n.nextSub}while(n!==void 0)}function se(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&&(le(t),R===0&&H())}function q(e){if((e.flags&4)!==0||M(e)){if(!ue(e))return!1;let t=e.subs;return t!==void 0&&t.nextSub!==void 0&&se(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 ue(e){let n=u,t=s;u=e,s=null,F(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{B(e),u=n,s=t}}function P(e){w.push(e)}function H(){if(S)return;S=!0;let e=0;try{for(;g<w.length;){let n=w[g];if(w[g++]=void 0,(n.flags&16)===0){if(++e>oe)throw new c;(n.flags&4)!==0||M(n)?V(n):n.flags&=-9}}}finally{w.length=0,g=0,S=!1}}function V(e){let n=e.scope;j(n);let t=u,o=s;u=e,s=n,F(e);try{let r=e.fn();typeof r=="function"&&(n.disposals??=[]).push(r)}catch(r){x(r,n)}finally{B(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(i){x(i,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 b(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?ne:e===!1?te:e}function de(e){R++;try{return e()}finally{--R===0&&H()}}function fe(e){try{return X(e)}finally{}}function X(e){let n=u;u=void 0;try{return e()}finally{u=n}}function ae(e,n){return new l(0,e,void 0,a(n?.equals))}function ce(e,n){let t=new l(5,void 0,e,a(n?.equals));return b(t),t}function I(e){let n=new l(2,void 0,e,a(void 0));return b(n),G(n),Y(n),n}function pe(e){let n=I(e);n.deps===void 0&&$(n)}function xe(e){d()===null&&void 0;let n=I(e);return()=>{E(n)}}function he(e){let n=d();if(n===null){return}(n.disposals??=[]).push(e)}function ve(e){let n=T(d()),t=f(n);try{return e(()=>{O(n)})}finally{f(t)}}function we(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 Ce(e,n){let t=f(e);try{return n()}finally{f(t)}}var J=Symbol("firsthand.ctx");function ye(e,n){let t=n??"context";return{id:Symbol(t),description:t,hasDefault:arguments.length>0,defaultValue:e,fallback:void 0}}function Te(e,n){let t=d();if(t===null){`${e.description}`;return}let o=n instanceof l?n:new l(0,n,void 0,a(void 0));me(t)[e.id]=o}function be(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 l(0,r.defaultValue,void 0,a(void 0))}function me(e){let n=e.ctx;if(n!==null&&n[J]===e)return n;let t=n!==null?Object.create(n):Object.create(null);return t[J]=e,e.ctx=t,t}export{l as Cell,h as FirsthandContextError,c as FirsthandCycleError,p as FirsthandReadonlyError,de as batch,pe as bind,we as catchError,ce as computed,ye as createContext,I as createEffect,T as createOwner,ve as createRoot,Q as devEnterSetup,Z as devExitSetup,E as disposeCell,O as disposeOwner,xe as effect,d as getOwner,x as handleError,he as onCleanup,b as own,Te as provide,Ce as runWithOwner,f as setOwner,K as setStrictReactivity,ae as signal,fe as snapshot,X as untrack,be as useContext};
|