@estjs/signals 0.0.15-beta.5 → 0.0.15-beta.7

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.
@@ -992,7 +992,7 @@ declare function startBatch(): void;
992
992
  * End batch update
993
993
  *
994
994
  * Decreases batch depth.
995
- * When depth reaches zero, flush all queued Effects and clean up.
995
+ * When depth reaches zero, flush all queued Effects.
996
996
  *
997
997
  * ## Cleanup Process
998
998
  *
@@ -1001,6 +1001,12 @@ declare function startBatch(): void;
1001
1001
  * 2. Job queue is automatically cleared by flushJobs()
1002
1002
  * 3. Temporary flags (QUEUED, DIRTY) are cleared by effect execution
1003
1003
  *
1004
+ * ## Development Mode Checks
1005
+ *
1006
+ * In development mode, this function performs additional validation:
1007
+ * - Detects unbalanced batch calls (endBatch without startBatch)
1008
+ * - Prevents batchDepth from becoming negative
1009
+ * - Provides clear error messages to help debug batch management issues
1004
1010
  */
1005
1011
  declare function endBatch(): void;
1006
1012
  /**
package/dist/signals.d.ts CHANGED
@@ -992,7 +992,7 @@ declare function startBatch(): void;
992
992
  * End batch update
993
993
  *
994
994
  * Decreases batch depth.
995
- * When depth reaches zero, flush all queued Effects and clean up.
995
+ * When depth reaches zero, flush all queued Effects.
996
996
  *
997
997
  * ## Cleanup Process
998
998
  *
@@ -1001,6 +1001,12 @@ declare function startBatch(): void;
1001
1001
  * 2. Job queue is automatically cleared by flushJobs()
1002
1002
  * 3. Temporary flags (QUEUED, DIRTY) are cleared by effect execution
1003
1003
  *
1004
+ * ## Development Mode Checks
1005
+ *
1006
+ * In development mode, this function performs additional validation:
1007
+ * - Detects unbalanced batch calls (endBatch without startBatch)
1008
+ * - Prevents batchDepth from becoming negative
1009
+ * - Provides clear error messages to help debug batch management issues
1004
1010
  */
1005
1011
  declare function endBatch(): void;
1006
1012
  /**
@@ -3,7 +3,7 @@
3
3
  var shared = require('@estjs/shared');
4
4
 
5
5
  /**
6
- * @estjs/signals v0.0.15-beta.5
6
+ * @estjs/signals v0.0.15-beta.7
7
7
  * (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
8
8
  * @license MIT
9
9
  **/
@@ -947,7 +947,7 @@ var SignalImpl = class {
947
947
  // Mark whether it's shallow reactive
948
948
  // @ts-ignore
949
949
  this[_a] = true;
950
- this._oldValue = this._rawValue = value;
950
+ this._rawValue = value;
951
951
  if (shallow) {
952
952
  this._value = shared.isObject(value) ? shallowReactive(value) : value;
953
953
  } else {
@@ -964,7 +964,8 @@ var SignalImpl = class {
964
964
  if (sub) {
965
965
  linkReactiveNode(this, sub);
966
966
  }
967
- if (this.flag & 16 /* DIRTY */ && this.shouldUpdate()) {
967
+ const flags = this.flag;
968
+ if (flags & 16 /* DIRTY */ && this.shouldUpdate()) {
968
969
  const subs = this.subLink;
969
970
  if (subs) {
970
971
  shallowPropagate2(subs);
@@ -986,7 +987,11 @@ var SignalImpl = class {
986
987
  if (!shared.hasChanged(this._rawValue, value)) {
987
988
  return;
988
989
  }
989
- this.flag |= 16 /* DIRTY */;
990
+ if (!("_oldValue" in this)) {
991
+ this._oldValue = this._rawValue;
992
+ }
993
+ const flags = this.flag;
994
+ this.flag = flags | 16 /* DIRTY */;
990
995
  this._rawValue = value;
991
996
  const shallow = this["_IS_SHALLOW" /* IS_SHALLOW */];
992
997
  if (shallow) {
@@ -1002,7 +1007,12 @@ var SignalImpl = class {
1002
1007
  // Check if the value should be update
1003
1008
  shouldUpdate() {
1004
1009
  this.flag &= -17 /* DIRTY */;
1005
- return shared.hasChanged(this._oldValue, this._oldValue = this._rawValue);
1010
+ if (!("_oldValue" in this)) {
1011
+ return true;
1012
+ }
1013
+ const changed = shared.hasChanged(this._oldValue, this._rawValue);
1014
+ this._oldValue = this._rawValue;
1015
+ return changed;
1006
1016
  }
1007
1017
  // Get current value without triggering dependency tracking
1008
1018
  peek() {
@@ -1063,8 +1073,8 @@ function nextTick(fn) {
1063
1073
  try {
1064
1074
  fn();
1065
1075
  resolve();
1066
- } catch (error6) {
1067
- reject(error6);
1076
+ } catch (error5) {
1077
+ reject(error5);
1068
1078
  }
1069
1079
  });
1070
1080
  });
@@ -1147,17 +1157,13 @@ function startBatch() {
1147
1157
  function endBatch() {
1148
1158
  if (batchDepth === 0) {
1149
1159
  shared.warn(
1150
- "[Batch] endBatch() called without matching startBatch(). This may indicate unbalanced batch calls in your code."
1160
+ "[Batch] endBatch() called without matching startBatch(). This indicates unbalanced batch calls in your code. Make sure every startBatch() has a corresponding endBatch(), or use the batch() function which handles this automatically."
1151
1161
  );
1152
1162
  return;
1153
1163
  }
1154
- if (--batchDepth === 0) {
1164
+ batchDepth--;
1165
+ if (batchDepth === 0) {
1155
1166
  flushJobs();
1156
- if (batchDepth !== 0) {
1157
- shared.error(
1158
- `[Batch] Batch depth is not zero after endBatch(). Current depth: ${batchDepth}. This indicates a bug in batch management.`
1159
- );
1160
- }
1161
1167
  }
1162
1168
  }
1163
1169
  function isBatching() {
@@ -1299,9 +1305,9 @@ var EffectImpl = class {
1299
1305
  const prevSub = startTracking(this);
1300
1306
  try {
1301
1307
  return this.fn();
1302
- } catch (error6) {
1308
+ } catch (error5) {
1303
1309
  this.flag |= 16 /* DIRTY */;
1304
- throw error6;
1310
+ throw error5;
1305
1311
  } finally {
1306
1312
  this.flag &= -1025 /* STOP */;
1307
1313
  endTracking(this, prevSub);
@@ -1517,6 +1523,7 @@ var ComputedImpl = class {
1517
1523
  try {
1518
1524
  const newValue = this.getter();
1519
1525
  const flags = this.flag;
1526
+ const subs = this.subLink;
1520
1527
  const clearMask = ~(16 /* DIRTY */ | 32 /* PENDING */);
1521
1528
  const valueChanged = !hadValue || shared.hasChanged(oldValue, newValue);
1522
1529
  if (valueChanged) {
@@ -1531,17 +1538,19 @@ var ComputedImpl = class {
1531
1538
  newValue
1532
1539
  });
1533
1540
  }
1534
- if (this.subLink) {
1535
- shallowPropagate(this.subLink);
1541
+ if (subs) {
1542
+ shallowPropagate(subs);
1536
1543
  }
1537
1544
  } else {
1538
1545
  this.flag = flags & clearMask;
1539
1546
  }
1540
1547
  } catch (_error) {
1541
- this.flag &= -49;
1548
+ const clearMask = -49;
1549
+ this.flag &= clearMask;
1550
+ this.flag |= 16 /* DIRTY */;
1542
1551
  {
1543
1552
  shared.error(
1544
- "[Computed] Error occurred while computing value. Check your getter function for errors.",
1553
+ "[Computed] Error occurred while computing value.\nThe computed will retry on next access.\nCommon causes:\n - Accessing undefined properties\n - Circular dependencies\n - Exceptions in getter function\nCheck your getter function for errors.",
1545
1554
  _error
1546
1555
  );
1547
1556
  }
@@ -1617,6 +1626,10 @@ function createOptionsStore(options) {
1617
1626
  const reactiveState = reactive(state);
1618
1627
  const subscriptions = /* @__PURE__ */ new Set();
1619
1628
  const actionCallbacks = /* @__PURE__ */ new Set();
1629
+ const notifySubscribers = (state2) => {
1630
+ subscriptions.forEach((callback) => callback(state2));
1631
+ actionCallbacks.forEach((callback) => callback(state2));
1632
+ };
1620
1633
  const defaultActions = {
1621
1634
  patch$(payload) {
1622
1635
  if (!payload) {
@@ -1626,8 +1639,7 @@ function createOptionsStore(options) {
1626
1639
  batch(() => {
1627
1640
  Object.assign(reactiveState, payload);
1628
1641
  });
1629
- subscriptions.forEach((callback) => callback(reactiveState));
1630
- actionCallbacks.forEach((callback) => callback(reactiveState));
1642
+ notifySubscribers(reactiveState);
1631
1643
  },
1632
1644
  subscribe$(callback) {
1633
1645
  if (!callback) {
@@ -1650,8 +1662,7 @@ function createOptionsStore(options) {
1650
1662
  batch(() => {
1651
1663
  Object.assign(reactiveState, initState);
1652
1664
  });
1653
- subscriptions.forEach((callback) => callback(reactiveState));
1654
- actionCallbacks.forEach((callback) => callback(reactiveState));
1665
+ notifySubscribers(reactiveState);
1655
1666
  }
1656
1667
  };
1657
1668
  const store = __spreadValues(__spreadProps(__spreadValues({}, reactiveState), {
@@ -1661,8 +1672,21 @@ function createOptionsStore(options) {
1661
1672
  for (const key in getters) {
1662
1673
  const getter = getters[key];
1663
1674
  if (getter) {
1675
+ let accessCount = 0;
1676
+ let lastWarnTime = 0;
1664
1677
  Object.defineProperty(store, key, {
1665
1678
  get() {
1679
+ {
1680
+ accessCount++;
1681
+ const now = Date.now();
1682
+ if (accessCount > 100 && now - lastWarnTime > 1e3) {
1683
+ shared.warn(
1684
+ `Getter '${key}' has been accessed ${accessCount} times. Consider caching the result if the value is used frequently. Note: Getters are computed properties that recalculate on every access.`
1685
+ );
1686
+ lastWarnTime = now;
1687
+ accessCount = 0;
1688
+ }
1689
+ }
1666
1690
  return computed(() => getter.call(store, reactiveState)).value;
1667
1691
  },
1668
1692
  enumerable: true,
@@ -1,7 +1,7 @@
1
1
  import { isFunction, isObject, warn, error, isPlainObject, info, hasChanged, isArray, isSet, isMap, isWeakMap, isWeakSet, isStringNumber, hasOwn } from '@estjs/shared';
2
2
 
3
3
  /**
4
- * @estjs/signals v0.0.15-beta.5
4
+ * @estjs/signals v0.0.15-beta.7
5
5
  * (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
6
6
  * @license MIT
7
7
  **/
@@ -945,7 +945,7 @@ var SignalImpl = class {
945
945
  // Mark whether it's shallow reactive
946
946
  // @ts-ignore
947
947
  this[_a] = true;
948
- this._oldValue = this._rawValue = value;
948
+ this._rawValue = value;
949
949
  if (shallow) {
950
950
  this._value = isObject(value) ? shallowReactive(value) : value;
951
951
  } else {
@@ -962,7 +962,8 @@ var SignalImpl = class {
962
962
  if (sub) {
963
963
  linkReactiveNode(this, sub);
964
964
  }
965
- if (this.flag & 16 /* DIRTY */ && this.shouldUpdate()) {
965
+ const flags = this.flag;
966
+ if (flags & 16 /* DIRTY */ && this.shouldUpdate()) {
966
967
  const subs = this.subLink;
967
968
  if (subs) {
968
969
  shallowPropagate2(subs);
@@ -984,7 +985,11 @@ var SignalImpl = class {
984
985
  if (!hasChanged(this._rawValue, value)) {
985
986
  return;
986
987
  }
987
- this.flag |= 16 /* DIRTY */;
988
+ if (!("_oldValue" in this)) {
989
+ this._oldValue = this._rawValue;
990
+ }
991
+ const flags = this.flag;
992
+ this.flag = flags | 16 /* DIRTY */;
988
993
  this._rawValue = value;
989
994
  const shallow = this["_IS_SHALLOW" /* IS_SHALLOW */];
990
995
  if (shallow) {
@@ -1000,7 +1005,12 @@ var SignalImpl = class {
1000
1005
  // Check if the value should be update
1001
1006
  shouldUpdate() {
1002
1007
  this.flag &= -17 /* DIRTY */;
1003
- return hasChanged(this._oldValue, this._oldValue = this._rawValue);
1008
+ if (!("_oldValue" in this)) {
1009
+ return true;
1010
+ }
1011
+ const changed = hasChanged(this._oldValue, this._rawValue);
1012
+ this._oldValue = this._rawValue;
1013
+ return changed;
1004
1014
  }
1005
1015
  // Get current value without triggering dependency tracking
1006
1016
  peek() {
@@ -1061,8 +1071,8 @@ function nextTick(fn) {
1061
1071
  try {
1062
1072
  fn();
1063
1073
  resolve();
1064
- } catch (error6) {
1065
- reject(error6);
1074
+ } catch (error5) {
1075
+ reject(error5);
1066
1076
  }
1067
1077
  });
1068
1078
  });
@@ -1145,17 +1155,13 @@ function startBatch() {
1145
1155
  function endBatch() {
1146
1156
  if (batchDepth === 0) {
1147
1157
  warn(
1148
- "[Batch] endBatch() called without matching startBatch(). This may indicate unbalanced batch calls in your code."
1158
+ "[Batch] endBatch() called without matching startBatch(). This indicates unbalanced batch calls in your code. Make sure every startBatch() has a corresponding endBatch(), or use the batch() function which handles this automatically."
1149
1159
  );
1150
1160
  return;
1151
1161
  }
1152
- if (--batchDepth === 0) {
1162
+ batchDepth--;
1163
+ if (batchDepth === 0) {
1153
1164
  flushJobs();
1154
- if (batchDepth !== 0) {
1155
- error(
1156
- `[Batch] Batch depth is not zero after endBatch(). Current depth: ${batchDepth}. This indicates a bug in batch management.`
1157
- );
1158
- }
1159
1165
  }
1160
1166
  }
1161
1167
  function isBatching() {
@@ -1297,9 +1303,9 @@ var EffectImpl = class {
1297
1303
  const prevSub = startTracking(this);
1298
1304
  try {
1299
1305
  return this.fn();
1300
- } catch (error6) {
1306
+ } catch (error5) {
1301
1307
  this.flag |= 16 /* DIRTY */;
1302
- throw error6;
1308
+ throw error5;
1303
1309
  } finally {
1304
1310
  this.flag &= -1025 /* STOP */;
1305
1311
  endTracking(this, prevSub);
@@ -1515,6 +1521,7 @@ var ComputedImpl = class {
1515
1521
  try {
1516
1522
  const newValue = this.getter();
1517
1523
  const flags = this.flag;
1524
+ const subs = this.subLink;
1518
1525
  const clearMask = ~(16 /* DIRTY */ | 32 /* PENDING */);
1519
1526
  const valueChanged = !hadValue || hasChanged(oldValue, newValue);
1520
1527
  if (valueChanged) {
@@ -1529,17 +1536,19 @@ var ComputedImpl = class {
1529
1536
  newValue
1530
1537
  });
1531
1538
  }
1532
- if (this.subLink) {
1533
- shallowPropagate(this.subLink);
1539
+ if (subs) {
1540
+ shallowPropagate(subs);
1534
1541
  }
1535
1542
  } else {
1536
1543
  this.flag = flags & clearMask;
1537
1544
  }
1538
1545
  } catch (_error) {
1539
- this.flag &= -49;
1546
+ const clearMask = -49;
1547
+ this.flag &= clearMask;
1548
+ this.flag |= 16 /* DIRTY */;
1540
1549
  {
1541
1550
  error(
1542
- "[Computed] Error occurred while computing value. Check your getter function for errors.",
1551
+ "[Computed] Error occurred while computing value.\nThe computed will retry on next access.\nCommon causes:\n - Accessing undefined properties\n - Circular dependencies\n - Exceptions in getter function\nCheck your getter function for errors.",
1543
1552
  _error
1544
1553
  );
1545
1554
  }
@@ -1615,6 +1624,10 @@ function createOptionsStore(options) {
1615
1624
  const reactiveState = reactive(state);
1616
1625
  const subscriptions = /* @__PURE__ */ new Set();
1617
1626
  const actionCallbacks = /* @__PURE__ */ new Set();
1627
+ const notifySubscribers = (state2) => {
1628
+ subscriptions.forEach((callback) => callback(state2));
1629
+ actionCallbacks.forEach((callback) => callback(state2));
1630
+ };
1618
1631
  const defaultActions = {
1619
1632
  patch$(payload) {
1620
1633
  if (!payload) {
@@ -1624,8 +1637,7 @@ function createOptionsStore(options) {
1624
1637
  batch(() => {
1625
1638
  Object.assign(reactiveState, payload);
1626
1639
  });
1627
- subscriptions.forEach((callback) => callback(reactiveState));
1628
- actionCallbacks.forEach((callback) => callback(reactiveState));
1640
+ notifySubscribers(reactiveState);
1629
1641
  },
1630
1642
  subscribe$(callback) {
1631
1643
  if (!callback) {
@@ -1648,8 +1660,7 @@ function createOptionsStore(options) {
1648
1660
  batch(() => {
1649
1661
  Object.assign(reactiveState, initState);
1650
1662
  });
1651
- subscriptions.forEach((callback) => callback(reactiveState));
1652
- actionCallbacks.forEach((callback) => callback(reactiveState));
1663
+ notifySubscribers(reactiveState);
1653
1664
  }
1654
1665
  };
1655
1666
  const store = __spreadValues(__spreadProps(__spreadValues({}, reactiveState), {
@@ -1659,8 +1670,21 @@ function createOptionsStore(options) {
1659
1670
  for (const key in getters) {
1660
1671
  const getter = getters[key];
1661
1672
  if (getter) {
1673
+ let accessCount = 0;
1674
+ let lastWarnTime = 0;
1662
1675
  Object.defineProperty(store, key, {
1663
1676
  get() {
1677
+ {
1678
+ accessCount++;
1679
+ const now = Date.now();
1680
+ if (accessCount > 100 && now - lastWarnTime > 1e3) {
1681
+ warn(
1682
+ `Getter '${key}' has been accessed ${accessCount} times. Consider caching the result if the value is used frequently. Note: Getters are computed properties that recalculate on every access.`
1683
+ );
1684
+ lastWarnTime = now;
1685
+ accessCount = 0;
1686
+ }
1687
+ }
1664
1688
  return computed(() => getter.call(store, reactiveState)).value;
1665
1689
  },
1666
1690
  enumerable: true,
@@ -1,10 +1,10 @@
1
1
  import {isObject,isFunction,isPlainObject,hasChanged,isArray,isSet,isMap,isWeakMap,isWeakSet,isStringNumber,hasOwn}from'@estjs/shared';/**
2
- * @estjs/signals v0.0.15-beta.5
2
+ * @estjs/signals v0.0.15-beta.7
3
3
  * (c) 2023-Present jiangxd <jiangxd2016@gmail.com>
4
4
  * @license MIT
5
5
  **/
6
- var Be=Object.defineProperty,He=Object.defineProperties;var $e=Object.getOwnPropertyDescriptors;var de=Object.getOwnPropertySymbols;var Je=Object.prototype.hasOwnProperty,Qe=Object.prototype.propertyIsEnumerable;var he=(e,t,n)=>t in e?Be(e,t,{enumerable:true,configurable:true,writable:true,value:n}):e[t]=n,Y=(e,t)=>{for(var n in t||(t={}))Je.call(t,n)&&he(e,n,t[n]);if(de)for(var n of de(t))Qe.call(t,n)&&he(e,n,t[n]);return e},Te=(e,t)=>He(e,$e(t));var E={SET:"SET",ADD:"ADD",DELETE:"DELETE",CLEAR:"CLEAR"};var te=Symbol(""),C=Symbol(""),_=Symbol(""),R=Symbol(""),w=Symbol("");function O(e){let t=e.nextSubLink,n;e:do{let r=e.subNode,i=r.flag&64,o=r.flag&2,a=r.flag&-65;if(a&60?a&48||(a&12?a&4?!(a&48)&&ge(e,r)?(r.flag=i|o|(a|8|32),a&=1):(a=0,r.flag=i|o):r.flag=i|o|(a&-9|32):(a=0,r.flag=i|o)):r.flag=i|o|a|32,r.flag&2&&Ee(r),a&1){let s=r.subLink;if(s){let g=(e=s).nextSubLink;g&&(n={value:t,prev:n},t=g);continue}}if(t){e=t,t=e.nextSubLink;continue}for(;n;)if(e=n.value,n=n.prev,e){t=e.nextSubLink;continue e}break}while(true)}function ne(e){for(;e;){let t=e.subNode,n=t.flag&64,r=t.flag&-65;if(!(r&16)&&r&33){let i=n|r&-33|16;t.flag=i,i&2&&Ee(t),r&1&&t.subLink&&ne(t.subLink);}e=e.nextSubLink;}}function Ee(e){e.active&&e.notify();}var M=0,b,N=false;function j(e,t){if(N)return;let n=t.depLinkTail;if(n&&n.depNode===e)return n;let r=n?n.nextDepLink:t.depLink;if(r&&r.depNode===e)return r.version=M,t.depLinkTail=r,r;let i=e.subLinkTail;if(i&&i.version===M&&i.subNode===t)return t.depLinkTail=i,i;let o={version:M,depNode:e,subNode:t,prevSubLink:i,nextSubLink:void 0,prevDepLink:n,nextDepLink:r};return r&&(r.prevDepLink=o),n?n.nextDepLink=o:t.depLink=o,i?i.nextSubLink=o:e.subLink=o,e.subLinkTail=o,t.depLinkTail=o,o}function V(e,t=e.subNode){let n=e.depNode,r=e.prevSubLink,i=e.nextSubLink,o=e.prevDepLink,a=e.nextDepLink;if(a?a.prevDepLink=o:t.depLinkTail=o,o?o.nextDepLink=a:t.depLink=a,i?i.prevSubLink=r:n.subLinkTail=r,r)r.nextSubLink=i;else if(n.subLink=i,i===void 0){let s=n.depLink;for(;s;)s=V(s,n);n.depLinkTail=void 0,n.flag|=16;}return e.depNode=void 0,e.subNode=void 0,e.prevSubLink=void 0,e.nextSubLink=void 0,e.prevDepLink=void 0,e.nextDepLink=void 0,a}function K(e,t){let n=[{link:e,owner:t}],r=[];for(;n.length>0;){let i=n.pop(),o=i.link,a=i.owner;for(;o;){let s=o.depNode,g=s.flag;if(a.flag&16)return true;if((g&17)===17){let d=s.subLink;d&&d.nextSubLink&&P(d);for(let u of r)u.flag&32&&(u.flag=u.flag&-33|16);return true}(g&33)===33?s.depLink?(r.push(s),n.push({link:s.depLink,owner:s})):s.flag&=-33:g&32&&(s.flag&=-33),o=o.nextDepLink;}}for(let i of r)i.flag&=-33;return t.flag&32&&(t.flag&=-33),false}function P(e){for(;e;){let t=e.subNode,n=t.flag&64,r=t.flag&-65;(r&48)===32&&(t.flag=n|r|16),e=e.nextSubLink;}}function re(e){let t=b;return b=e,t}function W(e){return M++,e.depLinkTail=void 0,e.flag=e.flag&-57|4,re(e)}function F(e,t){b=t;let n=e.depLinkTail,r=n?n.nextDepLink:e.depLink;for(;r;)r=V(r,e);e.flag&=-5;}function ze(e){let t=re(void 0),n=N;N=true;try{return e()}finally{N=n,re(t);}}function ge(e,t){let n=t.depLinkTail;for(;n;){if(n===e)return true;n=n.prevDepLink;}return false}var ie=new WeakMap;function f(e,t){if(!b||N)return;let n=ie.get(e);n||(n=new Map,ie.set(e,n));let r=n.get(t);r||(r=new Set,n.set(t,r)),r.has(b)||r.add(b);}function p(e,t,n,r){let i=ie.get(e);if(!i)return;let o=new Set;if(n!==void 0)if(Array.isArray(n))n.forEach(a=>{let s=i.get(a);s&&s.forEach(g=>o.add(g));});else {let a=i.get(n);a&&a.forEach(s=>o.add(s));}if(t==="ADD"||t==="DELETE"||t==="CLEAR"){let a=Symbol("iterate"),s=Symbol("arrayIterate"),g=Array.isArray(e)?s:a,d=i.get(g);d&&d.forEach(u=>o.add(u));}o.forEach(a=>{var s;a.flag&2?(s=a.notify)==null||s.call(a):a.flag&1&&(a.flag|=16,a.subLink&&O(a.subLink));});}var _e=new WeakMap;function c(e){if(!e||!isObject(e))return e;let t=e._RAW;return t?c(t):T(e)?c(e.peek()):e}var me=it();function it(){let e={};return ["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){let r=c(this);f(r,w);let i=r[t](...n);if((i===-1||i===false)&&n.length>0){let o=n.map(a=>c(a));i=r[t](...o);}return i};}),["find","findIndex","findLast","findLastIndex"].forEach(t=>{e[t]=function(...n){let r=c(this),i=k(this);f(r,w);let o=r[t](...n);return (t==="find"||t==="findLast")&&isObject(o)&&!i?h(o):o};}),["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"].forEach(t=>{e[t]=function(...n){let r=c(this),i=Array.prototype[t].apply(r,n);return p(r,E.SET,C),p(r,E.SET,w),i};}),["toReversed","toSorted","toSpliced"].forEach(t=>{e[t]=function(...n){let r=c(this),i=k(this);if(f(r,w),t==="toSpliced")for(let a=0,s=r.length;a<s;a++)f(r,`${a}`);let o=Array.prototype[t].apply(r,n);return Array.isArray(o)?o.map(a=>isObject(a)?h(a,i):a):o};}),["concat","slice","filter","map","flatMap","flat"].forEach(t=>{e[t]=function(...n){let r=c(this);return f(r,w),Array.prototype[t].apply(r,n)};}),["join","toString","toLocaleString"].forEach(t=>{e[t]=function(...n){let r=c(this);return f(r,w),Array.prototype[t].apply(r,n)};}),["values","keys","entries",Symbol.iterator].forEach(t=>{e[t]=function(){let n=c(this),r=k(this);f(n,C);let i=t===Symbol.iterator?n[Symbol.iterator]():n[t]();return {next(){let{value:o,done:a}=i.next();return a?{value:o,done:a}:Array.isArray(o)?{value:o.map(s=>isObject(s)?h(s,r):s),done:a}:{value:isObject(o)?h(o,r):o,done:a}},[Symbol.iterator](){return this}}};}),e}var ke=e=>({get:(t,n,r)=>{if(n==="_RAW")return t;if(n==="_IS_REACTIVE")return true;if(n==="_IS_SHALLOW")return e;if(hasOwn(me,n))return me[n];let i=Reflect.get(t,n,r);return isStringNumber(n)&&f(t,n),f(t,C),isObject(i)&&!e?h(i):i},set:(t,n,r,i)=>{let o=Reflect.get(t,n,i),a=Reflect.set(t,n,r,i);return hasChanged(r,o)&&(isStringNumber(n)?p(t,E.SET,[n,w,C]):p(t,E.SET,n)),a}}),ot=ke(true),at=ke(false),st={get(e,t){return t==="_IS_REACTIVE"?true:t==="_RAW"?e:Reflect.get(hasOwn(ye,t)?ye:e,t,e)}},ct={get(e,t){return t==="_IS_REACTIVE"?true:t==="_RAW"?e:Reflect.get(hasOwn(be,t)&&t in e?be:e,t,e)}},ye={get(e){let t=c(this);f(t,_);let n=t.get(e);return isObject(n)&&!k(this)?h(n):n},set(e,t){let n=c(this),r=n.has(e),i=n.get(e),o=c(t);return n.set(e,o),(!r||hasChanged(i,o))&&p(n,E.SET,_),this},add(e){let t=c(this),n=c(e),r=t.has(n);return t.add(n),r?p(t,E.SET,_):p(t,E.ADD,_),this},has(e){let t=c(this);f(t,_);let n=t.has(e);return !n&&isObject(e)?t.has(c(e)):n},delete(e){let t=c(this),n=t.has(e),r=t.delete(e);return !r&&isObject(e)&&(r=t.delete(c(e))),(n||r)&&p(t,E.DELETE,_),r},clear(){let e=c(this),t=e.size>0,n=e.clear();return t&&p(e,E.CLEAR,_),n},forEach(e,t){let n=c(this),r=k(this);f(n,_),n.forEach((i,o)=>{let a=r||!isObject(i)?i:h(i),s=r||!isObject(o)?o:h(o);e.call(t,a,s,this);});},[Symbol.iterator](){let e=c(this),t=k(this);f(e,_);let n=e[Symbol.iterator]();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:t?{value:r,done:i}:Array.isArray(r)?{value:r.map(o=>isObject(o)?h(o):o),done:i}:{value:isObject(r)?h(r):r,done:i}},[Symbol.iterator](){return this}}},get size(){let e=c(this);return f(e,_),e.size},keys(){let e=c(this),t=k(this);f(e,_);let n=e.keys();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:{value:t||!isObject(r)?r:h(r),done:i}},[Symbol.iterator](){return this}}},values(){let e=c(this),t=k(this);f(e,_);let n=e.values();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:{value:t||!isObject(r)?r:h(r),done:i}},[Symbol.iterator](){return this}}},entries(){let e=c(this),t=k(this);f(e,_);let n=e.entries();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:t?{value:r,done:i}:{value:r.map(o=>isObject(o)?h(o):o),done:i}},[Symbol.iterator](){return this}}}},be={get(e){let t=c(this);f(t,R);let n=t.get(e);return n===void 0&&v(e)&&(n=t.get(c(e))),isObject(n)&&!k(this)?h(n):n},set(e,t){let n=c(this),r=c(e),i=n.has(r),o=n.get(r),a=c(t);return n.set(r,a),(!i||hasChanged(o,a))&&p(n,E.SET,R),this},add(e){let t=c(this),n=c(e),r=t.has(n);return t.add(n),r||p(t,E.ADD,R),this},has(e){let t=c(this);f(t,R);let n=t.has(e);return !n&&v(e)&&(n=t.has(c(e))),n},delete(e){let t=c(this),n=c(e),r=t.has(n),i=t.delete(n);return (r||i)&&p(t,E.DELETE,R),i}},ut=e=>({get(t,n,r){if(n==="_RAW")return t;if(n==="_IS_REACTIVE")return true;if(n==="_IS_SHALLOW")return e;let i=Reflect.get(t,n,r),o=T(i)?i.value:i;return f(t,n),isObject(o)&&!e?h(o):o},set:(t,n,r,i)=>{let o=Reflect.get(t,n,i),a=Reflect.set(t,n,c(r),i);return hasChanged(r,o)&&p(t,E.SET,n),a},deleteProperty:(t,n)=>{let r=hasOwn(t,n),i=Reflect.deleteProperty(t,n);return r&&i&&p(t,E.DELETE,n),i}});function h(e,t=false){if(!isObject(e)||v(e))return e;let n=_e.get(e);if(n)return n;let r;isArray(e)?r=t?ot:at:isSet(e)||isMap(e)?r=st:isWeakMap(e)||isWeakSet(e)?r=ct:r=ut(t);let i=new Proxy(e,r);return _e.set(e,i),i}function v(e){return !!(e&&e._IS_REACTIVE)}function D(e){return v(e)||T(e)?e:h(e)}function H(e){return v(e)||T(e)?e:h(e,true)}function k(e){return !!(e&&e._IS_SHALLOW)}var ft=e=>isObject(e)?D(e):e;var we;we="_IS_SIGNAL";var I=class{constructor(t,n=false){this.flag=1;this[we]=true;this._oldValue=this._rawValue=t,n?this._value=isObject(t)?H(t):t:this._value=isObject(t)?D(t):t,this._IS_SHALLOW=n;}get dep(){return this}get value(){let t=b;if(t&&j(this,t),this.flag&16&&this.shouldUpdate()){let n=this.subLink;n&&P(n);}return this._value}set value(t){if(T(t)&&(t=t.peek()),t=c(t),!hasChanged(this._rawValue,t))return;this.flag|=16,this._rawValue=t,this._IS_SHALLOW?this._value=isObject(t)?H(t):t:this._value=isObject(t)?D(t):t;let r=this.subLink;r&&O(r);}shouldUpdate(){return this.flag&=-17,hasChanged(this._oldValue,this._oldValue=this._rawValue)}peek(){return this._value}set(t){this.value=t;}update(t){let n=t(this.peek());T(n)?this.value=n.peek():this.value=n;}};function lt(e){return T(e)?e:new I(e)}function pt(e){return T(e)&&(e=e.peek()),new I(e,true)}function T(e){return !!e&&!!e._IS_SIGNAL}var J=new Set,oe=new Set,dt=Promise.resolve(),ae=false;function Le(e){return e?new Promise((t,n)=>{queueMicrotask(()=>{try{e(),t();}catch(r){n(r);}});}):dt}function x(e){J.add(e),De();}function De(){ae||(ae=true,Le(se));}function xe(e){oe.add(e),De();}function se(){for(ae=false,ht();J.size>0;){let e=Array.from(J);J.clear();for(let t of e)try{t();}catch(n){}}}function ht(){let e=Array.from(oe);oe.clear();for(let t of e)try{t();}catch(n){}}function Re(e,t){switch(t){case "sync":return ()=>e();case "pre":return ()=>xe(e);case "post":return ()=>x(e);default:return ()=>x(e)}}var Q=0;function z(e){Ie();try{return e()}finally{Ae();}}function Ie(){Q++;}function Ae(){--Q===0&&se();}function ce(){return Q>0}function Tt(){return Q}var Ce;Ce="_IS_EFFECT";var ue=class{constructor(t,n){this.flag=18;this[Ce]=true;this._active=true;this.fn=t,n&&(this.scheduler=n.flush||n.scheduler,this.onStop=n.onStop,this.onTrack=n.onTrack,this.onTrigger=n.onTrigger);}get active(){return this._active}get dirty(){let t=this.flag;if(t&16)return true;if(t&32){if(this.depLink&&K(this.depLink,this))return this.flag=t&-33|16,true;this.flag=t&-33;}return false}pause(){this.flag|=256;}resume(){let n=this.flag&-257;this.flag=n;let r=(n&16)!==0,i=(n&32)!==0;(r||i)&&this.notify();}run(){if(!this._active)return this.fn();let t=this.flag;this.flag=t&-17|1024;let n=W(this);try{return this.fn()}catch(r){throw this.flag|=16,r}finally{this.flag&=-1025,F(this,n);}}getJob(){return this._job||(this._job=()=>this.run()),this._job}notify(){let t=this.flag;!this._active||t&1296||(this.flag=t|16,this.scheduler?isFunction(this.scheduler)?this.scheduler(this):Re(()=>this.run(),this.scheduler)():ce()?x(this.getJob()):this.run());}stop(){if(!this._active)return;this._active=false;let t=this.depLink;for(;t;)t=V(t,this);let n=this.subLink;for(;n;)n=V(n);this._job=void 0,this.depLinkTail=void 0,this.subLinkTail=void 0,this.onStop&&this.onStop();}};function X(e,t){let n=new ue(e,t);try{n.run();}catch(i){throw n.stop(),i}let r=()=>n.run();return r.effect=n,r.stop=()=>n.stop(),r}function gt(e){e.effect.stop();}function St(e){return !!(e&&e._IS_EFFECT)}function _t(e,t,n){let r=t;return X(()=>{r=e(r);},n)}var G=Symbol("computed-no-value"),Pe;Pe="_IS_COMPUTED";var Z=class{constructor(t,n,r,i){this.flag=17;this[Pe]=true;this._value=G;this.getter=t,this.setter=n,this.onTrack=r,this.onTrigger=i,this.flag|=16;}get value(){b&&j(this,b);let t=this.flag,n=this._value!==G;return n&&!(t&48)?this._value:!n||t&16?(this.recompute(),this._value):(t&32&&(this.depLink&&K(this.depLink,this)?this.recompute():this.flag=t&-33),this._value)}set value(t){this.setter&&this.setter(t);}peek(){return this._value===G&&this.recompute(),this._value}recompute(){let t=this._value,n=t!==G,r=W(this);try{let i=this.getter(),o=this.flag,a=-49;!n||hasChanged(t,i)?(this._value=i,this.flag=o&a,this.subLink&&ne(this.subLink)):this.flag=o&a;}catch(i){throw this.flag&=-49,i}finally{F(this,r);}}shouldUpdate(){let t=this._value!==G,n=this._value;return this.recompute(),t?hasChanged(this._value,n):true}};function fe(e){if(U(e))return e;if(!e)throw new Error("[Computed] Invalid argument: computed() requires a getter function or options object.");if(isFunction(e))return new Z(e);if(isPlainObject(e)){let{get:t,set:n,onTrack:r,onTrigger:i}=e;if(!t)throw new Error(`[Computed] Invalid options: getter function is required.
6
+ var He=Object.defineProperty,$e=Object.defineProperties;var Je=Object.getOwnPropertyDescriptors;var ge=Object.getOwnPropertySymbols;var Qe=Object.prototype.hasOwnProperty,ze=Object.prototype.propertyIsEnumerable;var Se=(e,t,n)=>t in e?He(e,t,{enumerable:true,configurable:true,writable:true,value:n}):e[t]=n,M=(e,t)=>{for(var n in t||(t={}))Qe.call(t,n)&&Se(e,n,t[n]);if(ge)for(var n of ge(t))ze.call(t,n)&&Se(e,n,t[n]);return e},_e=(e,t)=>$e(e,Je(t));var g={SET:"SET",ADD:"ADD",DELETE:"DELETE",CLEAR:"CLEAR"};var ne=Symbol(""),N=Symbol(""),_=Symbol(""),I=Symbol(""),L=Symbol("");function j(e){let t=e.nextSubLink,n;e:do{let r=e.subNode,i=r.flag&64,o=r.flag&2,a=r.flag&-65;if(a&60?a&48||(a&12?a&4?!(a&48)&&ye(e,r)?(r.flag=i|o|(a|8|32),a&=1):(a=0,r.flag=i|o):r.flag=i|o|(a&-9|32):(a=0,r.flag=i|o)):r.flag=i|o|a|32,r.flag&2&&me(r),a&1){let s=r.subLink;if(s){let h=(e=s).nextSubLink;h&&(n={value:t,prev:n},t=h);continue}}if(t){e=t,t=e.nextSubLink;continue}for(;n;)if(e=n.value,n=n.prev,e){t=e.nextSubLink;continue e}break}while(true)}function re(e){for(;e;){let t=e.subNode,n=t.flag&64,r=t.flag&-65;if(!(r&16)&&r&33){let i=n|r&-33|16;t.flag=i,i&2&&me(t),r&1&&t.subLink&&re(t.subLink);}e=e.nextSubLink;}}function me(e){e.active&&e.notify();}var K=0,b,V=false;function W(e,t){if(V)return;let n=t.depLinkTail;if(n&&n.depNode===e)return n;let r=n?n.nextDepLink:t.depLink;if(r&&r.depNode===e)return r.version=K,t.depLinkTail=r,r;let i=e.subLinkTail;if(i&&i.version===K&&i.subNode===t)return t.depLinkTail=i,i;let o={version:K,depNode:e,subNode:t,prevSubLink:i,nextSubLink:void 0,prevDepLink:n,nextDepLink:r};return r&&(r.prevDepLink=o),n?n.nextDepLink=o:t.depLink=o,i?i.nextSubLink=o:e.subLink=o,e.subLinkTail=o,t.depLinkTail=o,o}function P(e,t=e.subNode){let n=e.depNode,r=e.prevSubLink,i=e.nextSubLink,o=e.prevDepLink,a=e.nextDepLink;if(a?a.prevDepLink=o:t.depLinkTail=o,o?o.nextDepLink=a:t.depLink=a,i?i.prevSubLink=r:n.subLinkTail=r,r)r.nextSubLink=i;else if(n.subLink=i,i===void 0){let s=n.depLink;for(;s;)s=P(s,n);n.depLinkTail=void 0,n.flag|=16;}return e.depNode=void 0,e.subNode=void 0,e.prevSubLink=void 0,e.nextSubLink=void 0,e.prevDepLink=void 0,e.nextDepLink=void 0,a}function F(e,t){let n=[{link:e,owner:t}],r=[];for(;n.length>0;){let i=n.pop(),o=i.link,a=i.owner;for(;o;){let s=o.depNode,h=s.flag;if(a.flag&16)return true;if((h&17)===17){let S=s.subLink;S&&S.nextSubLink&&G(S);for(let p of r)p.flag&32&&(p.flag=p.flag&-33|16);return true}(h&33)===33?s.depLink?(r.push(s),n.push({link:s.depLink,owner:s})):s.flag&=-33:h&32&&(s.flag&=-33),o=o.nextDepLink;}}for(let i of r)i.flag&=-33;return t.flag&32&&(t.flag&=-33),false}function G(e){for(;e;){let t=e.subNode,n=t.flag&64,r=t.flag&-65;(r&48)===32&&(t.flag=n|r|16),e=e.nextSubLink;}}function ie(e){let t=b;return b=e,t}function q(e){return K++,e.depLinkTail=void 0,e.flag=e.flag&-57|4,ie(e)}function B(e,t){b=t;let n=e.depLinkTail,r=n?n.nextDepLink:e.depLink;for(;r;)r=P(r,e);e.flag&=-5;}function Xe(e){let t=ie(void 0),n=V;V=true;try{return e()}finally{V=n,ie(t);}}function ye(e,t){let n=t.depLinkTail;for(;n;){if(n===e)return true;n=n.prevDepLink;}return false}var oe=new WeakMap;function u(e,t){if(!b||V)return;let n=oe.get(e);n||(n=new Map,oe.set(e,n));let r=n.get(t);r||(r=new Set,n.set(t,r)),r.has(b)||r.add(b);}function d(e,t,n,r){let i=oe.get(e);if(!i)return;let o=new Set;if(n!==void 0)if(Array.isArray(n))n.forEach(a=>{let s=i.get(a);s&&s.forEach(h=>o.add(h));});else {let a=i.get(n);a&&a.forEach(s=>o.add(s));}if(t==="ADD"||t==="DELETE"||t==="CLEAR"){let a=Symbol("iterate"),s=Symbol("arrayIterate"),h=Array.isArray(e)?s:a,S=i.get(h);S&&S.forEach(p=>o.add(p));}o.forEach(a=>{var s;a.flag&2?(s=a.notify)==null||s.call(a):a.flag&1&&(a.flag|=16,a.subLink&&j(a.subLink));});}var ke=new WeakMap;function c(e){if(!e||!isObject(e))return e;let t=e._RAW;return t?c(t):E(e)?c(e.peek()):e}var ve=ot();function ot(){let e={};return ["includes","indexOf","lastIndexOf"].forEach(t=>{e[t]=function(...n){let r=c(this);u(r,L);let i=r[t](...n);if((i===-1||i===false)&&n.length>0){let o=n.map(a=>c(a));i=r[t](...o);}return i};}),["find","findIndex","findLast","findLastIndex"].forEach(t=>{e[t]=function(...n){let r=c(this),i=k(this);u(r,L);let o=r[t](...n);return (t==="find"||t==="findLast")&&isObject(o)&&!i?T(o):o};}),["push","pop","shift","unshift","splice","sort","reverse","fill","copyWithin"].forEach(t=>{e[t]=function(...n){let r=c(this),i=Array.prototype[t].apply(r,n);return d(r,g.SET,N),d(r,g.SET,L),i};}),["toReversed","toSorted","toSpliced"].forEach(t=>{e[t]=function(...n){let r=c(this),i=k(this);if(u(r,L),t==="toSpliced")for(let a=0,s=r.length;a<s;a++)u(r,`${a}`);let o=Array.prototype[t].apply(r,n);return Array.isArray(o)?o.map(a=>isObject(a)?T(a,i):a):o};}),["concat","slice","filter","map","flatMap","flat"].forEach(t=>{e[t]=function(...n){let r=c(this);return u(r,L),Array.prototype[t].apply(r,n)};}),["join","toString","toLocaleString"].forEach(t=>{e[t]=function(...n){let r=c(this);return u(r,L),Array.prototype[t].apply(r,n)};}),["values","keys","entries",Symbol.iterator].forEach(t=>{e[t]=function(){let n=c(this),r=k(this);u(n,N);let i=t===Symbol.iterator?n[Symbol.iterator]():n[t]();return {next(){let{value:o,done:a}=i.next();return a?{value:o,done:a}:Array.isArray(o)?{value:o.map(s=>isObject(s)?T(s,r):s),done:a}:{value:isObject(o)?T(o,r):o,done:a}},[Symbol.iterator](){return this}}};}),e}var xe=e=>({get:(t,n,r)=>{if(n==="_RAW")return t;if(n==="_IS_REACTIVE")return true;if(n==="_IS_SHALLOW")return e;if(hasOwn(ve,n))return ve[n];let i=Reflect.get(t,n,r);return isStringNumber(n)&&u(t,n),u(t,N),isObject(i)&&!e?T(i):i},set:(t,n,r,i)=>{let o=Reflect.get(t,n,i),a=Reflect.set(t,n,r,i);return hasChanged(r,o)&&(isStringNumber(n)?d(t,g.SET,[n,L,N]):d(t,g.SET,n)),a}}),at=xe(true),st=xe(false),ct={get(e,t){return t==="_IS_REACTIVE"?true:t==="_RAW"?e:Reflect.get(hasOwn(we,t)?we:e,t,e)}},ut={get(e,t){return t==="_IS_REACTIVE"?true:t==="_RAW"?e:Reflect.get(hasOwn(Le,t)&&t in e?Le:e,t,e)}},we={get(e){let t=c(this);u(t,_);let n=t.get(e);return isObject(n)&&!k(this)?T(n):n},set(e,t){let n=c(this),r=n.has(e),i=n.get(e),o=c(t);return n.set(e,o),(!r||hasChanged(i,o))&&d(n,g.SET,_),this},add(e){let t=c(this),n=c(e),r=t.has(n);return t.add(n),r?d(t,g.SET,_):d(t,g.ADD,_),this},has(e){let t=c(this);u(t,_);let n=t.has(e);return !n&&isObject(e)?t.has(c(e)):n},delete(e){let t=c(this),n=t.has(e),r=t.delete(e);return !r&&isObject(e)&&(r=t.delete(c(e))),(n||r)&&d(t,g.DELETE,_),r},clear(){let e=c(this),t=e.size>0,n=e.clear();return t&&d(e,g.CLEAR,_),n},forEach(e,t){let n=c(this),r=k(this);u(n,_),n.forEach((i,o)=>{let a=r||!isObject(i)?i:T(i),s=r||!isObject(o)?o:T(o);e.call(t,a,s,this);});},[Symbol.iterator](){let e=c(this),t=k(this);u(e,_);let n=e[Symbol.iterator]();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:t?{value:r,done:i}:Array.isArray(r)?{value:r.map(o=>isObject(o)?T(o):o),done:i}:{value:isObject(r)?T(r):r,done:i}},[Symbol.iterator](){return this}}},get size(){let e=c(this);return u(e,_),e.size},keys(){let e=c(this),t=k(this);u(e,_);let n=e.keys();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:{value:t||!isObject(r)?r:T(r),done:i}},[Symbol.iterator](){return this}}},values(){let e=c(this),t=k(this);u(e,_);let n=e.values();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:{value:t||!isObject(r)?r:T(r),done:i}},[Symbol.iterator](){return this}}},entries(){let e=c(this),t=k(this);u(e,_);let n=e.entries();return {next(){let{value:r,done:i}=n.next();return i?{value:r,done:i}:t?{value:r,done:i}:{value:r.map(o=>isObject(o)?T(o):o),done:i}},[Symbol.iterator](){return this}}}},Le={get(e){let t=c(this);u(t,I);let n=t.get(e);return n===void 0&&w(e)&&(n=t.get(c(e))),isObject(n)&&!k(this)?T(n):n},set(e,t){let n=c(this),r=c(e),i=n.has(r),o=n.get(r),a=c(t);return n.set(r,a),(!i||hasChanged(o,a))&&d(n,g.SET,I),this},add(e){let t=c(this),n=c(e),r=t.has(n);return t.add(n),r||d(t,g.ADD,I),this},has(e){let t=c(this);u(t,I);let n=t.has(e);return !n&&w(e)&&(n=t.has(c(e))),n},delete(e){let t=c(this),n=c(e),r=t.has(n),i=t.delete(n);return (r||i)&&d(t,g.DELETE,I),i}},ft=e=>({get(t,n,r){if(n==="_RAW")return t;if(n==="_IS_REACTIVE")return true;if(n==="_IS_SHALLOW")return e;let i=Reflect.get(t,n,r),o=E(i)?i.value:i;return u(t,n),isObject(o)&&!e?T(o):o},set:(t,n,r,i)=>{let o=Reflect.get(t,n,i),a=Reflect.set(t,n,c(r),i);return hasChanged(r,o)&&d(t,g.SET,n),a},deleteProperty:(t,n)=>{let r=hasOwn(t,n),i=Reflect.deleteProperty(t,n);return r&&i&&d(t,g.DELETE,n),i}});function T(e,t=false){if(!isObject(e)||w(e))return e;let n=ke.get(e);if(n)return n;let r;isArray(e)?r=t?at:st:isSet(e)||isMap(e)?r=ct:isWeakMap(e)||isWeakSet(e)?r=ut:r=ft(t);let i=new Proxy(e,r);return ke.set(e,i),i}function w(e){return !!(e&&e._IS_REACTIVE)}function D(e){return w(e)||E(e)?e:T(e)}function J(e){return w(e)||E(e)?e:T(e,true)}function k(e){return !!(e&&e._IS_SHALLOW)}var lt=e=>isObject(e)?D(e):e;var Re;Re="_IS_SIGNAL";var C=class{constructor(t,n=false){this.flag=1;this[Re]=true;this._rawValue=t,n?this._value=isObject(t)?J(t):t:this._value=isObject(t)?D(t):t,this._IS_SHALLOW=n;}get dep(){return this}get value(){let t=b;if(t&&W(this,t),this.flag&16&&this.shouldUpdate()){let r=this.subLink;r&&G(r);}return this._value}set value(t){if(E(t)&&(t=t.peek()),t=c(t),!hasChanged(this._rawValue,t))return;"_oldValue"in this||(this._oldValue=this._rawValue);let n=this.flag;this.flag=n|16,this._rawValue=t,this._IS_SHALLOW?this._value=isObject(t)?J(t):t:this._value=isObject(t)?D(t):t;let i=this.subLink;i&&j(i);}shouldUpdate(){if(this.flag&=-17,!("_oldValue"in this))return true;let t=hasChanged(this._oldValue,this._rawValue);return this._oldValue=this._rawValue,t}peek(){return this._value}set(t){this.value=t;}update(t){let n=t(this.peek());E(n)?this.value=n.peek():this.value=n;}};function pt(e){return E(e)?e:new C(e)}function dt(e){return E(e)&&(e=e.peek()),new C(e,true)}function E(e){return !!e&&!!e._IS_SIGNAL}var z=new Set,ae=new Set,ht=Promise.resolve(),se=false;function Ie(e){return e?new Promise((t,n)=>{queueMicrotask(()=>{try{e(),t();}catch(r){n(r);}});}):ht}function R(e){z.add(e),Ce();}function Ce(){se||(se=true,Ie(ce));}function Ae(e){ae.add(e),Ce();}function ce(){for(se=false,Tt();z.size>0;){let e=Array.from(z);z.clear();for(let t of e)try{t();}catch(n){}}}function Tt(){let e=Array.from(ae);ae.clear();for(let t of e)try{t();}catch(n){}}function Ne(e,t){switch(t){case "sync":return ()=>e();case "pre":return ()=>Ae(e);case "post":return ()=>R(e);default:return ()=>R(e)}}var U=0;function X(e){Ve();try{return e()}finally{Pe();}}function Ve(){U++;}function Pe(){U--,U===0&&ce();}function ue(){return U>0}function Et(){return U}var Ge;Ge="_IS_EFFECT";var fe=class{constructor(t,n){this.flag=18;this[Ge]=true;this._active=true;this.fn=t,n&&(this.scheduler=n.flush||n.scheduler,this.onStop=n.onStop,this.onTrack=n.onTrack,this.onTrigger=n.onTrigger);}get active(){return this._active}get dirty(){let t=this.flag;if(t&16)return true;if(t&32){if(this.depLink&&F(this.depLink,this))return this.flag=t&-33|16,true;this.flag=t&-33;}return false}pause(){this.flag|=256;}resume(){let n=this.flag&-257;this.flag=n;let r=(n&16)!==0,i=(n&32)!==0;(r||i)&&this.notify();}run(){if(!this._active)return this.fn();let t=this.flag;this.flag=t&-17|1024;let n=q(this);try{return this.fn()}catch(r){throw this.flag|=16,r}finally{this.flag&=-1025,B(this,n);}}getJob(){return this._job||(this._job=()=>this.run()),this._job}notify(){let t=this.flag;!this._active||t&1296||(this.flag=t|16,this.scheduler?isFunction(this.scheduler)?this.scheduler(this):Ne(()=>this.run(),this.scheduler)():ue()?R(this.getJob()):this.run());}stop(){if(!this._active)return;this._active=false;let t=this.depLink;for(;t;)t=P(t,this);let n=this.subLink;for(;n;)n=P(n);this._job=void 0,this.depLinkTail=void 0,this.subLinkTail=void 0,this.onStop&&this.onStop();}};function Z(e,t){let n=new fe(e,t);try{n.run();}catch(i){throw n.stop(),i}let r=()=>n.run();return r.effect=n,r.stop=()=>n.stop(),r}function St(e){e.effect.stop();}function _t(e){return !!(e&&e._IS_EFFECT)}function mt(e,t,n){let r=t;return Z(()=>{r=e(r);},n)}var Y=Symbol("computed-no-value"),Oe;Oe="_IS_COMPUTED";var ee=class{constructor(t,n,r,i){this.flag=17;this[Oe]=true;this._value=Y;this.getter=t,this.setter=n,this.onTrack=r,this.onTrigger=i,this.flag|=16;}get value(){b&&W(this,b);let t=this.flag,n=this._value!==Y;return n&&!(t&48)?this._value:!n||t&16?(this.recompute(),this._value):(t&32&&(this.depLink&&F(this.depLink,this)?this.recompute():this.flag=t&-33),this._value)}set value(t){this.setter&&this.setter(t);}peek(){return this._value===Y&&this.recompute(),this._value}recompute(){let t=this._value,n=t!==Y,r=q(this);try{let i=this.getter(),o=this.flag,a=this.subLink,s=-49;!n||hasChanged(t,i)?(this._value=i,this.flag=o&s,a&&re(a)):this.flag=o&s;}catch(i){let o=-49;throw this.flag&=o,this.flag|=16,i}finally{B(this,r);}}shouldUpdate(){let t=this._value!==Y,n=this._value;return this.recompute(),t?hasChanged(this._value,n):true}};function le(e){if(O(e))return e;if(!e)throw new Error("[Computed] Invalid argument: computed() requires a getter function or options object.");if(isFunction(e))return new ee(e);if(isPlainObject(e)){let{get:t,set:n,onTrack:r,onTrigger:i}=e;if(!t)throw new Error(`[Computed] Invalid options: getter function is required.
7
7
  Usage: computed({ get: () => value, set: (v) => { ... } })`);if(!isFunction(t))throw new TypeError(`[Computed] Invalid options: getter must be a function.
8
- Received: ${typeof t}`);return new Z(t,n,r,i)}throw new Error(`[Computed] Invalid argument: expected a function or options object.
9
- Received: ${typeof e}`)}function U(e){return !!e&&!!e._IS_COMPUTED}function yt(e){let{state:t,getters:n,actions:r}=e,i=Y({},t),o=D(t),a=new Set,s=new Set,g={patch$(u){z(()=>{Object.assign(o,u);}),a.forEach(S=>S(o)),s.forEach(S=>S(o));},subscribe$(u){a.add(u);},unsubscribe$(u){a.delete(u);},onAction$(u){s.add(u);},reset$(){z(()=>{Object.assign(o,i);}),a.forEach(u=>u(o)),s.forEach(u=>u(o));}},d=Y(Te(Y({},o),{state:o}),g);if(n)for(let u in n){let S=n[u];S&&Object.defineProperty(d,u,{get(){return fe(()=>S.call(d,o)).value},enumerable:true,configurable:true});}if(r)for(let u in r){let S=r[u];S&&(d[u]=(...We)=>{let Fe=S.apply(o,We);return s.forEach(qe=>qe(o)),Fe});}return d}function bt(e){let t=new e,n=Object.create(null),r={},i={};return Object.getOwnPropertyNames(t).forEach(o=>{n[o]=t[o];}),Object.getOwnPropertyNames(e.prototype).forEach(o=>{let a=Object.getOwnPropertyDescriptor(e.prototype,o);a&&(typeof a.get=="function"?r[o]=function(){return a.get.call(this)}:typeof a.value=="function"&&o!=="constructor"&&(i[o]=function(...s){return a.value.apply(this,s)}));}),{state:n,getters:r,actions:i}}function kt(e){return ()=>{let t;typeof e=="function"?t=bt(e):t=e;let n=yt(t);return typeof e=="function"&&Object.keys(t.actions||{}).forEach(r=>{n[r]=t.actions[r].bind(n);}),n}}var Ge,Ue,ee=class extends(Ue=I,Ge="_IS_REF",Ue){constructor(n){super(n,true);this[Ge]=true;}get value(){return f(this,te),this._value}set value(n){T(n)&&(n=n.value),le(n)&&(n=n.value),hasChanged(this._value,n)&&(this._value=n,this.subLink&&P(this.subLink),p(this,"SET",te));}};function wt(e=void 0){return le(e)?e:T(e)?new ee(e.peek()):new ee(e)}function le(e){return !!e&&!!e._IS_REF}var Oe={},Me=new WeakMap;function L(e,t=new Set){if(!isObject(e)||t.has(e))return e;if(t.add(e),T(e)||U(e))return L(e.value,t);if(Array.isArray(e))for(let n of e)L(n,t);else isMap(e)?(e.forEach(n=>{L(n,t);}),e.keys(),e.values()):isSet(e)?(e.forEach(n=>{L(n,t);}),e.values()):Object.keys(e).forEach(n=>{L(e[n],t);});return e}function A(e){if(!isObject(e))return e;if(Array.isArray(e))return e.map(n=>A(n));if(isMap(e)){let n=new Map;return e.forEach((r,i)=>{n.set(i,A(r));}),n}if(isSet(e)){let n=new Set;return e.forEach(r=>{n.add(A(r));}),n}let t={};for(let n of Object.keys(e))t[n]=A(e[n]);return t}function Dt(e){return Array.isArray(e)?()=>e.map(t=>T(t)||U(t)?t.value:v(t)?L(t):isFunction(t)?t():t):isFunction(e)?e:T(e)?()=>e.value:isObject(e)&&"value"in e?()=>e.value:v(e)?()=>L(e):()=>e}function xt(e,t,n={}){let {immediate:r=false,deep:i=false}=n,o=Oe,s=Dt(e),g=()=>{let u=d.effect;if(!u.run)return;let S=u.run();hasChanged(S,o)&&(t(S,o===Oe?void 0:o),o=A(S));},d=X(()=>{let u=s();return i&&L(u),u},{scheduler:()=>x(g)});return r?g():o=A(d.effect.run()),()=>{d.stop();let u=Me.get(d.effect);u&&(u.forEach(S=>S()),Me.delete(d.effect));}}export{E as TriggerOpTypes,z as batch,fe as computed,kt as createStore,X as effect,Ae as endBatch,Tt as getBatchDepth,ce as isBatching,U as isComputed,St as isEffect,v as isReactive,le as isRef,k as isShallow,T as isSignal,_t as memoEffect,Le as nextTick,x as queueJob,xe as queuePreFlushCb,D as reactive,wt as ref,H as shallowReactive,pt as shallowSignal,lt as signal,Ie as startBatch,gt as stop,c as toRaw,ft as toReactive,p as trigger,ze as untrack,xt as watch};//# sourceMappingURL=signals.esm.js.map
8
+ Received: ${typeof t}`);return new ee(t,n,r,i)}throw new Error(`[Computed] Invalid argument: expected a function or options object.
9
+ Received: ${typeof e}`)}function O(e){return !!e&&!!e._IS_COMPUTED}function bt(e){let{state:t,getters:n,actions:r}=e,i=M({},t),o=D(t),a=new Set,s=new Set,h=f=>{a.forEach(v=>v(f)),s.forEach(v=>v(f));},S={patch$(f){X(()=>{Object.assign(o,f);}),h(o);},subscribe$(f){a.add(f);},unsubscribe$(f){a.delete(f);},onAction$(f){s.add(f);},reset$(){X(()=>{Object.assign(o,i);}),h(o);}},p=M(_e(M({},o),{state:o}),S);if(n)for(let f in n){let v=n[f];if(v){Object.defineProperty(p,f,{get(){return le(()=>v.call(p,o)).value},enumerable:true,configurable:true});}}if(r)for(let f in r){let v=r[f];v&&(p[f]=(...he)=>{let Te=v.apply(o,he);return s.forEach(Ee=>Ee(o)),Te});}return p}function kt(e){let t=new e,n=Object.create(null),r={},i={};return Object.getOwnPropertyNames(t).forEach(o=>{n[o]=t[o];}),Object.getOwnPropertyNames(e.prototype).forEach(o=>{let a=Object.getOwnPropertyDescriptor(e.prototype,o);a&&(typeof a.get=="function"?r[o]=function(){return a.get.call(this)}:typeof a.value=="function"&&o!=="constructor"&&(i[o]=function(...s){return a.value.apply(this,s)}));}),{state:n,getters:r,actions:i}}function vt(e){return ()=>{let t;typeof e=="function"?t=kt(e):t=e;let n=bt(t);return typeof e=="function"&&Object.keys(t.actions||{}).forEach(r=>{n[r]=t.actions[r].bind(n);}),n}}var Me,je,te=class extends(je=C,Me="_IS_REF",je){constructor(n){super(n,true);this[Me]=true;}get value(){return u(this,ne),this._value}set value(n){E(n)&&(n=n.value),pe(n)&&(n=n.value),hasChanged(this._value,n)&&(this._value=n,this.subLink&&G(this.subLink),d(this,"SET",ne));}};function Lt(e=void 0){return pe(e)?e:E(e)?new te(e.peek()):new te(e)}function pe(e){return !!e&&!!e._IS_REF}var We={},Fe=new WeakMap;function x(e,t=new Set){if(!isObject(e)||t.has(e))return e;if(t.add(e),E(e)||O(e))return x(e.value,t);if(Array.isArray(e))for(let n of e)x(n,t);else isMap(e)?(e.forEach(n=>{x(n,t);}),e.keys(),e.values()):isSet(e)?(e.forEach(n=>{x(n,t);}),e.values()):Object.keys(e).forEach(n=>{x(e[n],t);});return e}function A(e){if(!isObject(e))return e;if(Array.isArray(e))return e.map(n=>A(n));if(isMap(e)){let n=new Map;return e.forEach((r,i)=>{n.set(i,A(r));}),n}if(isSet(e)){let n=new Set;return e.forEach(r=>{n.add(A(r));}),n}let t={};for(let n of Object.keys(e))t[n]=A(e[n]);return t}function Dt(e){return Array.isArray(e)?()=>e.map(t=>E(t)||O(t)?t.value:w(t)?x(t):isFunction(t)?t():t):isFunction(e)?e:E(e)?()=>e.value:isObject(e)&&"value"in e?()=>e.value:w(e)?()=>x(e):()=>e}function Rt(e,t,n={}){let {immediate:r=false,deep:i=false}=n,o=We,s=Dt(e),h=()=>{let p=S.effect;if(!p.run)return;let f=p.run();hasChanged(f,o)&&(t(f,o===We?void 0:o),o=A(f));},S=Z(()=>{let p=s();return i&&x(p),p},{scheduler:()=>R(h)});return r?h():o=A(S.effect.run()),()=>{S.stop();let p=Fe.get(S.effect);p&&(p.forEach(f=>f()),Fe.delete(S.effect));}}export{g as TriggerOpTypes,X as batch,le as computed,vt as createStore,Z as effect,Pe as endBatch,Et as getBatchDepth,ue as isBatching,O as isComputed,_t as isEffect,w as isReactive,pe as isRef,k as isShallow,E as isSignal,mt as memoEffect,Ie as nextTick,R as queueJob,Ae as queuePreFlushCb,D as reactive,Lt as ref,J as shallowReactive,dt as shallowSignal,pt as signal,Ve as startBatch,St as stop,c as toRaw,lt as toReactive,d as trigger,Xe as untrack,Rt as watch};//# sourceMappingURL=signals.esm.js.map
10
10
  //# sourceMappingURL=signals.esm.js.map