@madronejs/core 1.1.2 → 1.1.4

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.
@@ -0,0 +1 @@
1
+ "use strict";const M=new Set;let U;function ie(){return[...M]}function ue(){return ie().at(-1)}function $(){U=ue()}function fe(e){e&&(M.add(e),$())}function le(e){M.delete(e),$()}function X(){return U}const q=new WeakMap;function D(e){return(X()?.toRaw??(t=>t))(e)}function T(e){q.set(D(e),Date.now())}function de(e){return q.get(D(e))}const f=Symbol("keys"),W=Symbol("computed"),V=new WeakMap,g=new WeakMap,b=new WeakMap,C=new WeakMap;let G=[],A=null;const he=e=>V.has(e),K=e=>g.has(e),j=e=>V.get(e),me=e=>g.get(e),Se=e=>K(e)?me(e):e,ve=(e,n)=>{V.set(e,n),g.set(n,e)},we=()=>{A===null&&(A=Symbol("scheduler"),queueMicrotask(()=>{try{for(;G.length>0;){const e=G;G=[];for(const n of e)try{n()}catch(t){console.error("Unhandled error in scheduled task:",t)}}}finally{A=null}}))},Ce=e=>{G.push(e),we()},Re=(e,n)=>{const t=C.get(e),s=t?.get(n);if(s){for(const r of s)b.get(r)?.get(n)?.delete(e);s.clear(),t.delete(n),t.size===0&&C.delete(e)}},Y=e=>{const n=C.get(e);if(n){for(const[t,s]of n)for(const r of s)b.get(r)?.get(t)?.delete(e);C.delete(e)}},F=(e,n)=>{const t=be();if(!t)return;C.has(t)||C.set(t,new Map),b.has(e)||b.set(e,new Map);const s=b.get(e),r=C.get(t);s.has(n)||s.set(n,new Set),r.has(n)||r.set(n,new Set);const c=s.get(n),o=r.get(n);c.add(t),o.add(e)},h=(e,n)=>{const t=j(e);t&&F(t,n)},Q=(e,n)=>{const t=b.get(e);if(t?.get(n))for(const s of t.get(n))s.setDirty(),Re(s,n)},m=(e,n)=>{Q(j(e),n)},P=[];function be(){return P.at(-1)}class z{static create(...n){return new z(...n)}constructor(n){this.name=n.name,this.get=n.get,this.set=n.set,this.cache=!!(n.cache??!0),this.alive=!0,this.dirty=!0,this.cachedVal=void 0,this.hooks={onGet:n.onGet,onSet:n.onSet,onChange:n.onChange,onImmediateChange:n.onImmediateChange}}callHook(n){typeof this.hooks[n]=="function"&&this.hooks[n](this)}dispose(){Y(this),this.alive=!1,this.dirty=!1,this.cachedVal=void 0,this.prev=void 0}wrap(n){P.push(this);try{return n()}finally{P.pop()}}setDirty(){this.alive&&!this.dirty&&(this.dirty=!0,Q(this,W),this.prev=this.cachedVal,this.cachedVal=void 0,this.callHook("onImmediateChange"),Ce(()=>this.notifyChange()))}notifyChange(){this.callHook("onChange"),this.prev=void 0}run(){if(!this.alive)return;const n=this.wrap(()=>{if(this.cache&&this.dirty||!this.cache){Y(this);try{this.cachedVal=this.get()}finally{this.dirty=!1}}return this.cachedVal});return F(this,W),this.callHook("onGet"),n}get value(){return this.run()}set value(n){if(typeof this.set=="function")this.set(n),this.callHook("onSet");else throw new TypeError(`No setter defined for "${this.name}"`)}}function J(...e){return z.create(...e)}function Oe(e){return J(e)}const u=e=>{const{name:n,target:t,key:s,receiver:r,value:c,keysChanged:o=!1,valueChanged:l=!1}=e;return{name:n,target:t,key:s,receiver:r,value:c,keysChanged:o,valueChanged:l}},ye=(e,n,t,s)=>{h(n,t),e?.onGet&&e.onGet(u({name:e.name,target:n,key:t,receiver:s}))},Ie=(e,n,t,s)=>{const r=n[t],c=Array.isArray(n);let o=!1,l=!1;t in n||(m(n,f),l=!0,c&&m(n,"length")),(r!==s||c)&&(m(n,t),o=!0),(l||o)&&e?.onSet&&e.onSet(u({name:e.name,target:n,key:t,value:s,keysChanged:l,valueChanged:o}))},Ge=(e,n,t)=>{m(n,t),m(n,f),e?.onDelete&&e.onDelete(u({name:e.name,target:n,key:t,keysChanged:!0}))},x=(e,n,t)=>{h(n,f),e?.onHas&&e.onHas(u({name:e.name,target:n,key:t}))};function Z(e){const n=e.needsProxy||(()=>!0);return{get:(t,s,r)=>{ye(e,t,s,r);const c=Reflect.get(t,s,r);return e?.deep&&c&&typeof c=="object"&&n({target:t,key:s,value:c})&&Object.getOwnPropertyDescriptor(t,s)?.configurable?w(c,e):c},set:(t,s,r)=>(Ie(e,t,s,r),Reflect.set(t,s,r)),deleteProperty:(...t)=>(Ge(e,...t),Reflect.deleteProperty(...t)),has:(t,s)=>(x(e,t),Reflect.has(t,s)),ownKeys:t=>(x(e,t),Reflect.ownKeys(t)),getPrototypeOf:t=>Object.getPrototypeOf(t)}}const Te=e=>({...Z(e)}),Ee=e=>({...Z(e)}),v=(e,n)=>n?.deep&&e&&typeof e=="object"?w(e,n):e;function*O(e,n,t){for(const s of e)yield t(s)}const Ae=e=>({get:(n,t,s)=>t==="size"?(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),n.size):t==="has"?r=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t,value:r})),n.has(r)):t==="add"?r=>{const c=n.has(r);return n.add(r),c||(m(n,f),e?.onSet?.(u({name:e.name,target:n,key:t,value:r,keysChanged:!0}))),s}:t==="delete"?r=>{const c=n.has(r),o=n.delete(r);return c&&(m(n,f),e?.onDelete?.(u({name:e.name,target:n,key:t,value:r,keysChanged:!0}))),o}:t==="clear"?()=>{const r=n.size>0;n.clear(),r&&(m(n,f),e?.onDelete?.(u({name:e.name,target:n,key:t,keysChanged:!0})))}:t==="forEach"?(r,c)=>{h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t}));for(const[o,l]of n.entries())r.call(c,v(o,e),v(l,e),s)}:t==="values"||t==="keys"?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n.values(),e,r=>v(r,e))):t==="entries"?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n.entries(),e,([r,c])=>[v(r,e),v(c,e)])):t===Symbol.iterator?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n[Symbol.iterator](),e,r=>v(r,e))):t===Symbol.toStringTag?"Set":Reflect.get(n,t,s)}),_e=e=>({get:(n,t,s)=>t==="size"?(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),n.size):t==="has"?r=>(h(n,r),e?.onGet?.(u({name:e.name,target:n,key:r})),n.has(r)):t==="get"?r=>(h(n,r),e?.onGet?.(u({name:e.name,target:n,key:r})),v(n.get(r),e)):t==="set"?(r,c)=>{const o=n.has(r),l=n.get(r);return n.set(r,c),o||m(n,f),(!o||l!==c)&&(m(n,r),e?.onSet?.(u({name:e.name,target:n,key:r,value:c,keysChanged:!o,valueChanged:l!==c}))),s}:t==="delete"?r=>{const c=n.has(r),o=n.delete(r);return c&&(m(n,f),m(n,r),e?.onDelete?.(u({name:e.name,target:n,key:r,keysChanged:!0}))),o}:t==="clear"?()=>{const r=[...n.keys()],c=n.size>0;if(n.clear(),c){m(n,f);for(const o of r)m(n,o);e?.onDelete?.(u({name:e.name,target:n,key:t,keysChanged:!0}))}}:t==="forEach"?(r,c)=>{h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t}));for(const[o,l]of n.entries())r.call(c,v(l,e),o,s)}:t==="keys"?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),n.keys()):t==="values"?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n.values(),e,r=>v(r,e))):t==="entries"?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n.entries(),e,([r,c])=>[r,v(c,e)])):t===Symbol.iterator?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n[Symbol.iterator](),e,([r,c])=>[r,v(c,e)])):t===Symbol.toStringTag?"Map":Reflect.get(n,t,s)}),p=Object.freeze({object:Te,array:Ee,set:Ae,map:_e});function w(e,n){if(he(e))return j(e);if(K(e))return e;const t=n||{},s={...t,deep:t?.deep??!0},r=w.getStringType(e);if(!w.hasHandler(r))return e;const c=new Proxy(e,w.typeHandler(r,s));return ve(e,c),c}const Pe=e=>{const n=Object.getPrototypeOf(e);return n===null?!0:n===Object.prototype};w.getStringType=e=>e===null?"null":typeof e!="object"?typeof e:Array.isArray(e)?"array":e instanceof Map?"map":e instanceof Set?"set":Pe(e)?"object":"native";w.hasHandler=e=>!!p[e];w.typeHandler=(e,n)=>p[e]?.(n);function k(e,n,t){const s=J({get:e,onChange:({value:c,prev:o})=>n(c,o)}),r=s.run();return t?.immediate&&n(r),()=>s.dispose()}function L(e,n,t){let s,r;if(n.cache){const c=Oe({...n,get:n.get,name:e,onImmediateChange:t?.computed?.onImmediateChange,onChange:t?.computed?.onChange,onGet:t?.computed?.onGet,onSet:t?.computed?.onSet});s=function(){return T(this),c.value},r=function(l){c.value=l}}else s=function(){return T(this),n.get.call(this)},r=function(...o){n.set.call(this,...o)};return{enumerable:n.enumerable,configurable:n.configurable,get:s,set:r}}function N(e,n,t){const s={value:n.value},r=w(s,{name:e,onGet:t?.reactive?.onGet,onHas:t?.reactive?.onHas,onSet:t?.reactive?.onSet,onDelete:t?.reactive?.onDelete,needsProxy:t?.reactive?.needsProxy,deep:n.deep??t?.reactive?.deep});return{configurable:n.configurable,enumerable:n.enumerable,get:function(){T(this);const{value:o}=r;return Array.isArray(o)&&Reflect.get(o,"length"),o},set:function(o){r.value=o}}}function ee(e,n,t,s){Object.defineProperty(e,n,L(n,t,s))}function ne(e,n,t,s){Object.defineProperty(e,n,N(n,t,s))}const te={toRaw:Se,watch:k,describeProperty:N,defineProperty:ne,describeComputed:L,defineComputed:ee},_=new Set(["__proto__","__ob__"]),H="value",He=new Set([Symbol.iterator,"size","has","get","values","keys","entries","forEach"]),Me=e=>{e[H]+=1};function De(e){if(!e?.reactive||typeof e.reactive!="function")throw new Error(`MadroneVue3 requires Vue's reactive function. Either use "madrone/integrations/vue" for automatic setup, or pass { reactive, toRaw } from "vue".`);const{reactive:n,toRaw:t}=e,s=t??(a=>a),r=new WeakMap,c=new WeakMap,o=(a,i)=>{if(!He.has(i))return;const d=s(a);let S=c.get(d);S||(S=new Set,c.set(d,S)),S.add(i)},l=(a,i)=>{const d=s(a);let S=r.get(d);S||(S=new Map,r.set(d,S));let I=S.get(i);return I||(I=n({[H]:0}),S.set(i,I)),I},E=(a,i)=>{_.has(i)||Reflect.get(l(a,i),H)},R=(a,i)=>{_.has(i)||Me(l(a,i))},re=(a,i)=>{const d=s(a);r.get(d)&&R(a,i)},B=a=>{const i=c.get(s(a));if(i)for(const d of i)R(a,d)},y={computed:{onGet:a=>{E(a,a.name)},onImmediateChange:a=>{R(a,a.name)}},reactive:{onGet:({target:a,key:i})=>{T(a),E(a,i),o(a,i)},onHas:({target:a,key:i})=>{E(a,i)},onDelete:({target:a,key:i,keysChanged:d})=>{re(a,i),d&&(R(a),B(a))},onSet:({target:a,key:i,keysChanged:d})=>{R(a,i),d&&(R(a),B(a))},needsProxy:({key:a})=>!_.has(a)}};function se(a,i){return L(a,i,y)}function ce(a,i){return N(a,i,y)}function ae(a,i,d){return ee(a,i,d,y)}function oe(a,i,d){return ne(a,i,d,y)}return{toRaw:te.toRaw,watch:k,describeProperty:ce,defineProperty:oe,describeComputed:se,defineComputed:ae}}exports.MadroneState=te;exports.MadroneVue3=De;exports.addIntegration=fe;exports.getIntegration=X;exports.lastAccessed=de;exports.removeIntegration=le;exports.toRaw=D;
@@ -1,38 +1,38 @@
1
- const M = /* @__PURE__ */ new Set();
2
- let x;
3
- function ce() {
4
- return [...M];
5
- }
1
+ const D = /* @__PURE__ */ new Set();
2
+ let Y;
6
3
  function ae() {
7
- return ce().at(-1);
4
+ return [...D];
5
+ }
6
+ function oe() {
7
+ return ae().at(-1);
8
8
  }
9
- function Y() {
10
- x = ae();
9
+ function U() {
10
+ Y = oe();
11
11
  }
12
- function He(e) {
13
- e && (M.add(e), Y());
12
+ function De(e) {
13
+ e && (D.add(e), U());
14
14
  }
15
15
  function Me(e) {
16
- M.delete(e), Y();
16
+ D.delete(e), U();
17
17
  }
18
- function oe() {
19
- return x;
18
+ function ie() {
19
+ return Y;
20
20
  }
21
- const U = /* @__PURE__ */ new WeakMap();
22
- function $(e) {
23
- return (oe()?.toRaw ?? ((t) => t))(e);
21
+ const $ = /* @__PURE__ */ new WeakMap();
22
+ function X(e) {
23
+ return (ie()?.toRaw ?? ((t) => t))(e);
24
24
  }
25
25
  function T(e) {
26
- U.set($(e), Date.now());
26
+ $.set(X(e), Date.now());
27
27
  }
28
- function De(e) {
29
- return U.get($(e));
28
+ function Ve(e) {
29
+ return $.get(X(e));
30
30
  }
31
- const f = /* @__PURE__ */ Symbol("keys"), L = /* @__PURE__ */ Symbol("computed"), D = /* @__PURE__ */ new WeakMap(), V = /* @__PURE__ */ new WeakMap(), b = /* @__PURE__ */ new WeakMap(), C = /* @__PURE__ */ new WeakMap();
31
+ const f = /* @__PURE__ */ Symbol("keys"), B = /* @__PURE__ */ Symbol("computed"), M = /* @__PURE__ */ new WeakMap(), V = /* @__PURE__ */ new WeakMap(), b = /* @__PURE__ */ new WeakMap(), C = /* @__PURE__ */ new WeakMap();
32
32
  let I = [], _ = null;
33
- const ie = (e) => D.has(e), X = (e) => V.has(e), g = (e) => D.get(e), ue = (e) => V.get(e), fe = (e) => X(e) ? ue(e) : e, le = (e, n) => {
34
- D.set(e, n), V.set(n, e);
35
- }, de = () => {
33
+ const ue = (e) => M.has(e), q = (e) => V.has(e), j = (e) => M.get(e), fe = (e) => V.get(e), le = (e) => q(e) ? fe(e) : e, de = (e, n) => {
34
+ M.set(e, n), V.set(n, e);
35
+ }, he = () => {
36
36
  _ === null && (_ = /* @__PURE__ */ Symbol("scheduler"), queueMicrotask(() => {
37
37
  try {
38
38
  for (; I.length > 0; ) {
@@ -49,16 +49,16 @@ const ie = (e) => D.has(e), X = (e) => V.has(e), g = (e) => D.get(e), ue = (e) =
49
49
  _ = null;
50
50
  }
51
51
  }));
52
- }, he = (e) => {
53
- I.push(e), de();
54
- }, me = (e, n) => {
52
+ }, me = (e) => {
53
+ I.push(e), he();
54
+ }, Se = (e, n) => {
55
55
  const t = C.get(e), s = t?.get(n);
56
56
  if (s) {
57
57
  for (const r of s)
58
58
  b.get(r)?.get(n)?.delete(e);
59
59
  s.clear(), t.delete(n), t.size === 0 && C.delete(e);
60
60
  }
61
- }, B = (e) => {
61
+ }, W = (e) => {
62
62
  const n = C.get(e);
63
63
  if (n) {
64
64
  for (const [t, s] of n)
@@ -66,8 +66,8 @@ const ie = (e) => D.has(e), X = (e) => V.has(e), g = (e) => D.get(e), ue = (e) =
66
66
  b.get(r)?.get(t)?.delete(e);
67
67
  C.delete(e);
68
68
  }
69
- }, q = (e, n) => {
70
- const t = Se();
69
+ }, K = (e, n) => {
70
+ const t = ve();
71
71
  if (!t) return;
72
72
  C.has(t) || C.set(t, /* @__PURE__ */ new Map()), b.has(e) || b.set(e, /* @__PURE__ */ new Map());
73
73
  const s = b.get(e), r = C.get(t);
@@ -75,26 +75,26 @@ const ie = (e) => D.has(e), X = (e) => V.has(e), g = (e) => D.get(e), ue = (e) =
75
75
  const c = s.get(n), o = r.get(n);
76
76
  c.add(t), o.add(e);
77
77
  }, h = (e, n) => {
78
- const t = g(e);
79
- t && q(t, n);
78
+ const t = j(e);
79
+ t && K(t, n);
80
80
  }, F = (e, n) => {
81
81
  const t = b.get(e);
82
82
  if (t?.get(n))
83
83
  for (const s of t.get(n))
84
- s.setDirty(), me(s, n);
85
- }, S = (e, n) => {
86
- F(g(e), n);
84
+ s.setDirty(), Se(s, n);
85
+ }, m = (e, n) => {
86
+ F(j(e), n);
87
87
  }, P = [];
88
- function Se() {
88
+ function ve() {
89
89
  return P.at(-1);
90
90
  }
91
- class N {
91
+ class z {
92
92
  /**
93
93
  * Factory method to create a new ObservableItem.
94
94
  * @internal
95
95
  */
96
96
  static create(...n) {
97
- return new N(...n);
97
+ return new z(...n);
98
98
  }
99
99
  /**
100
100
  * Creates a new ObservableItem.
@@ -116,7 +116,7 @@ class N {
116
116
  * @returns {void}
117
117
  */
118
118
  dispose() {
119
- B(this), this.alive = !1, this.dirty = !1, this.cachedVal = void 0, this.prev = void 0;
119
+ W(this), this.alive = !1, this.dirty = !1, this.cachedVal = void 0, this.prev = void 0;
120
120
  }
121
121
  wrap(n) {
122
122
  P.push(this);
@@ -127,10 +127,10 @@ class N {
127
127
  }
128
128
  }
129
129
  setDirty() {
130
- this.alive && !this.dirty && (this.dirty = !0, F(this, L), this.prev = this.cachedVal, this.cachedVal = void 0, this.callHook(
130
+ this.alive && !this.dirty && (this.dirty = !0, F(this, B), this.prev = this.cachedVal, this.cachedVal = void 0, this.callHook(
131
131
  "onImmediateChange"
132
132
  /* onImmediateChange */
133
- ), he(() => this.notifyChange()));
133
+ ), me(() => this.notifyChange()));
134
134
  }
135
135
  notifyChange() {
136
136
  this.callHook(
@@ -142,7 +142,7 @@ class N {
142
142
  if (!this.alive) return;
143
143
  const n = this.wrap(() => {
144
144
  if (this.cache && this.dirty || !this.cache) {
145
- B(this);
145
+ W(this);
146
146
  try {
147
147
  this.cachedVal = this.get();
148
148
  } finally {
@@ -151,7 +151,7 @@ class N {
151
151
  }
152
152
  return this.cachedVal;
153
153
  });
154
- return q(this, L), this.callHook(
154
+ return K(this, B), this.callHook(
155
155
  "onGet"
156
156
  /* onGet */
157
157
  ), n;
@@ -170,11 +170,11 @@ class N {
170
170
  throw new TypeError(`No setter defined for "${this.name}"`);
171
171
  }
172
172
  }
173
- function K(...e) {
174
- return N.create(...e);
173
+ function Q(...e) {
174
+ return z.create(...e);
175
175
  }
176
- function ve(e) {
177
- return K(e);
176
+ function we(e) {
177
+ return Q(e);
178
178
  }
179
179
  const u = (e) => {
180
180
  const {
@@ -195,17 +195,17 @@ const u = (e) => {
195
195
  keysChanged: o,
196
196
  valueChanged: l
197
197
  };
198
- }, we = (e, n, t, s) => {
198
+ }, Ce = (e, n, t, s) => {
199
199
  h(n, t), e?.onGet && e.onGet(u({
200
200
  name: e.name,
201
201
  target: n,
202
202
  key: t,
203
203
  receiver: s
204
204
  }));
205
- }, Ce = (e, n, t, s) => {
205
+ }, Re = (e, n, t, s) => {
206
206
  const r = n[t], c = Array.isArray(n);
207
207
  let o = !1, l = !1;
208
- t in n || (S(n, f), l = !0, c && S(n, "length")), (r !== s || c) && (S(n, t), o = !0), (l || o) && e?.onSet && e.onSet(u({
208
+ t in n || (m(n, f), l = !0, c && m(n, "length")), (r !== s || c) && (m(n, t), o = !0), (l || o) && e?.onSet && e.onSet(u({
209
209
  name: e.name,
210
210
  target: n,
211
211
  key: t,
@@ -213,41 +213,41 @@ const u = (e) => {
213
213
  keysChanged: l,
214
214
  valueChanged: o
215
215
  }));
216
- }, Re = (e, n, t) => {
217
- S(n, t), S(n, f), e?.onDelete && e.onDelete(u({
216
+ }, be = (e, n, t) => {
217
+ m(n, t), m(n, f), e?.onDelete && e.onDelete(u({
218
218
  name: e.name,
219
219
  target: n,
220
220
  key: t,
221
221
  keysChanged: !0
222
222
  }));
223
- }, W = (e, n, t) => {
223
+ }, x = (e, n, t) => {
224
224
  h(n, f), e?.onHas && e.onHas(u({ name: e.name, target: n, key: t }));
225
225
  };
226
- function Q(e) {
226
+ function J(e) {
227
227
  const n = e.needsProxy || (() => !0);
228
228
  return {
229
229
  get: (t, s, r) => {
230
- we(e, t, s, r);
230
+ Ce(e, t, s, r);
231
231
  const c = Reflect.get(t, s, r);
232
232
  return e?.deep && c && typeof c == "object" && n({ target: t, key: s, value: c }) && Object.getOwnPropertyDescriptor(t, s)?.configurable ? w(c, e) : c;
233
233
  },
234
- set: (t, s, r) => (Ce(e, t, s, r), Reflect.set(t, s, r)),
235
- deleteProperty: (...t) => (Re(e, ...t), Reflect.deleteProperty(...t)),
236
- has: (t, s) => (W(e, t), Reflect.has(t, s)),
237
- ownKeys: (t) => (W(e, t), Reflect.ownKeys(t)),
234
+ set: (t, s, r) => (Re(e, t, s, r), Reflect.set(t, s, r)),
235
+ deleteProperty: (...t) => (be(e, ...t), Reflect.deleteProperty(...t)),
236
+ has: (t, s) => (x(e, t), Reflect.has(t, s)),
237
+ ownKeys: (t) => (x(e, t), Reflect.ownKeys(t)),
238
238
  getPrototypeOf: (t) => Object.getPrototypeOf(t)
239
239
  };
240
240
  }
241
- const be = (e) => ({
242
- ...Q(e)
243
- }), Oe = (e) => ({
244
- ...Q(e)
241
+ const Oe = (e) => ({
242
+ ...J(e)
243
+ }), ye = (e) => ({
244
+ ...J(e)
245
245
  }), v = (e, n) => n?.deep && e && typeof e == "object" ? w(e, n) : e;
246
246
  function* O(e, n, t) {
247
247
  for (const s of e)
248
248
  yield t(s);
249
249
  }
250
- const ye = (e) => ({
250
+ const Ge = (e) => ({
251
251
  get: (n, t, s) => t === "size" ? (h(n, f), e?.onGet?.(u({
252
252
  name: e.name,
253
253
  target: n,
@@ -259,7 +259,7 @@ const ye = (e) => ({
259
259
  value: r
260
260
  })), n.has(r)) : t === "add" ? (r) => {
261
261
  const c = n.has(r);
262
- return n.add(r), c || (S(n, f), e?.onSet?.(u({
262
+ return n.add(r), c || (m(n, f), e?.onSet?.(u({
263
263
  name: e.name,
264
264
  target: n,
265
265
  key: t,
@@ -268,7 +268,7 @@ const ye = (e) => ({
268
268
  }))), s;
269
269
  } : t === "delete" ? (r) => {
270
270
  const c = n.has(r), o = n.delete(r);
271
- return c && (S(n, f), e?.onDelete?.(u({
271
+ return c && (m(n, f), e?.onDelete?.(u({
272
272
  name: e.name,
273
273
  target: n,
274
274
  key: t,
@@ -277,7 +277,7 @@ const ye = (e) => ({
277
277
  }))), o;
278
278
  } : t === "clear" ? () => {
279
279
  const r = n.size > 0;
280
- n.clear(), r && (S(n, f), e?.onDelete?.(u({
280
+ n.clear(), r && (m(n, f), e?.onDelete?.(u({
281
281
  name: e.name,
282
282
  target: n,
283
283
  key: t,
@@ -308,7 +308,7 @@ const ye = (e) => ({
308
308
  target: n,
309
309
  key: t
310
310
  })), O(n[Symbol.iterator](), e, (r) => v(r, e))) : t === Symbol.toStringTag ? "Set" : Reflect.get(n, t, s)
311
- }), Ge = (e) => ({
311
+ }), Ie = (e) => ({
312
312
  get: (n, t, s) => t === "size" ? (h(n, f), e?.onGet?.(u({
313
313
  name: e.name,
314
314
  target: n,
@@ -323,7 +323,7 @@ const ye = (e) => ({
323
323
  key: r
324
324
  })), v(n.get(r), e)) : t === "set" ? (r, c) => {
325
325
  const o = n.has(r), l = n.get(r);
326
- return n.set(r, c), o || S(n, f), (!o || l !== c) && (S(n, r), e?.onSet?.(u({
326
+ return n.set(r, c), o || m(n, f), (!o || l !== c) && (m(n, r), e?.onSet?.(u({
327
327
  name: e.name,
328
328
  target: n,
329
329
  key: r,
@@ -333,7 +333,7 @@ const ye = (e) => ({
333
333
  }))), s;
334
334
  } : t === "delete" ? (r) => {
335
335
  const c = n.has(r), o = n.delete(r);
336
- return c && (S(n, f), S(n, r), e?.onDelete?.(u({
336
+ return c && (m(n, f), m(n, r), e?.onDelete?.(u({
337
337
  name: e.name,
338
338
  target: n,
339
339
  key: r,
@@ -342,9 +342,9 @@ const ye = (e) => ({
342
342
  } : t === "clear" ? () => {
343
343
  const r = [...n.keys()], c = n.size > 0;
344
344
  if (n.clear(), c) {
345
- S(n, f);
345
+ m(n, f);
346
346
  for (const o of r)
347
- S(n, o);
347
+ m(n, o);
348
348
  e?.onDelete?.(u({
349
349
  name: e.name,
350
350
  target: n,
@@ -385,38 +385,38 @@ const ye = (e) => ({
385
385
  e,
386
386
  ([r, c]) => [r, v(c, e)]
387
387
  )) : t === Symbol.toStringTag ? "Map" : Reflect.get(n, t, s)
388
- }), J = Object.freeze({
389
- object: be,
390
- array: Oe,
391
- set: ye,
392
- map: Ge
388
+ }), Z = Object.freeze({
389
+ object: Oe,
390
+ array: ye,
391
+ set: Ge,
392
+ map: Ie
393
393
  });
394
394
  function w(e, n) {
395
- if (ie(e)) return g(e);
396
- if (X(e)) return e;
395
+ if (ue(e)) return j(e);
396
+ if (q(e)) return e;
397
397
  const t = n || {}, s = { ...t, deep: t?.deep ?? !0 }, r = w.getStringType(e);
398
398
  if (!w.hasHandler(r)) return e;
399
399
  const c = new Proxy(e, w.typeHandler(r, s));
400
- return le(e, c), c;
400
+ return de(e, c), c;
401
401
  }
402
- const Ie = (e) => {
402
+ const Te = (e) => {
403
403
  const n = Object.getPrototypeOf(e);
404
404
  return n === null ? !0 : n === Object.prototype;
405
405
  };
406
- w.getStringType = (e) => e === null ? "null" : typeof e != "object" ? typeof e : Array.isArray(e) ? "array" : e instanceof Map ? "map" : e instanceof Set ? "set" : Ie(e) ? "object" : "native";
407
- w.hasHandler = (e) => !!J[e];
408
- w.typeHandler = (e, n) => J[e]?.(n);
409
- function Z(e, n, t) {
410
- const s = K({
406
+ w.getStringType = (e) => e === null ? "null" : typeof e != "object" ? typeof e : Array.isArray(e) ? "array" : e instanceof Map ? "map" : e instanceof Set ? "set" : Te(e) ? "object" : "native";
407
+ w.hasHandler = (e) => !!Z[e];
408
+ w.typeHandler = (e, n) => Z[e]?.(n);
409
+ function p(e, n, t) {
410
+ const s = Q({
411
411
  get: e,
412
412
  onChange: ({ value: c, prev: o }) => n(c, o)
413
413
  }), r = s.run();
414
414
  return t?.immediate && n(r), () => s.dispose();
415
415
  }
416
- function j(e, n, t) {
416
+ function L(e, n, t) {
417
417
  let s, r;
418
418
  if (n.cache) {
419
- const c = ve({
419
+ const c = we({
420
420
  ...n,
421
421
  get: n.get,
422
422
  name: e,
@@ -443,7 +443,7 @@ function j(e, n, t) {
443
443
  set: r
444
444
  };
445
445
  }
446
- function z(e, n, t) {
446
+ function N(e, n, t) {
447
447
  const s = { value: n.value }, r = w(s, {
448
448
  name: e,
449
449
  onGet: t?.reactive?.onGet,
@@ -466,20 +466,20 @@ function z(e, n, t) {
466
466
  }
467
467
  };
468
468
  }
469
- function p(e, n, t, s) {
470
- Object.defineProperty(e, n, j(n, t, s));
471
- }
472
469
  function k(e, n, t, s) {
473
- Object.defineProperty(e, n, z(n, t, s));
470
+ Object.defineProperty(e, n, L(n, t, s));
474
471
  }
475
- const Te = {
476
- toRaw: fe,
477
- watch: Z,
478
- describeProperty: z,
479
- defineProperty: k,
480
- describeComputed: j,
481
- defineComputed: p
482
- }, A = /* @__PURE__ */ new Set(["__proto__", "__ob__"]), H = "value", Ee = /* @__PURE__ */ new Set([
472
+ function ee(e, n, t, s) {
473
+ Object.defineProperty(e, n, N(n, t, s));
474
+ }
475
+ const Ee = {
476
+ toRaw: le,
477
+ watch: p,
478
+ describeProperty: N,
479
+ defineProperty: ee,
480
+ describeComputed: L,
481
+ defineComputed: k
482
+ }, A = /* @__PURE__ */ new Set(["__proto__", "__ob__"]), H = "value", _e = /* @__PURE__ */ new Set([
483
483
  Symbol.iterator,
484
484
  "size",
485
485
  "has",
@@ -488,39 +488,44 @@ const Te = {
488
488
  "keys",
489
489
  "entries",
490
490
  "forEach"
491
- ]), _e = (e) => {
491
+ ]), Ae = (e) => {
492
492
  e[H] += 1;
493
493
  };
494
- function Ve(e) {
494
+ function je(e) {
495
495
  if (!e?.reactive || typeof e.reactive != "function")
496
496
  throw new Error(
497
497
  `MadroneVue3 requires Vue's reactive function. Either use "madrone/integrations/vue" for automatic setup, or pass { reactive, toRaw } from "vue".`
498
498
  );
499
499
  const { reactive: n, toRaw: t } = e, s = t ?? ((a) => a), r = /* @__PURE__ */ new WeakMap(), c = /* @__PURE__ */ new WeakMap(), o = (a, i) => {
500
- if (!Ee.has(i)) return;
501
- const m = s(a);
502
- let d = c.get(m);
503
- d || (d = /* @__PURE__ */ new Set(), c.set(m, d)), d.add(i);
500
+ if (!_e.has(i)) return;
501
+ const d = s(a);
502
+ let S = c.get(d);
503
+ S || (S = /* @__PURE__ */ new Set(), c.set(d, S)), S.add(i);
504
504
  }, l = (a, i) => {
505
- const m = s(a);
506
- let d = r.get(m);
507
- d || (d = /* @__PURE__ */ new Map(), r.set(m, d));
508
- let R = d.get(i);
509
- return R || (R = n({ [H]: 0 }), d.set(i, R)), R;
505
+ const d = s(a);
506
+ let S = r.get(d);
507
+ S || (S = /* @__PURE__ */ new Map(), r.set(d, S));
508
+ let G = S.get(i);
509
+ return G || (G = n({ [H]: 0 }), S.set(i, G)), G;
510
510
  }, E = (a, i) => {
511
511
  A.has(i) || Reflect.get(l(a, i), H);
512
- }, y = (a, i) => {
513
- A.has(i) || _e(l(a, i));
514
- }, ee = (a, i) => {
515
- const m = s(a), d = r.get(m);
516
- d && y(d, i), r.delete(m);
517
- }, G = {
512
+ }, R = (a, i) => {
513
+ A.has(i) || Ae(l(a, i));
514
+ }, ne = (a, i) => {
515
+ const d = s(a);
516
+ r.get(d) && R(a, i);
517
+ }, g = (a) => {
518
+ const i = c.get(s(a));
519
+ if (i)
520
+ for (const d of i)
521
+ R(a, d);
522
+ }, y = {
518
523
  computed: {
519
524
  onGet: (a) => {
520
525
  E(a, a.name);
521
526
  },
522
527
  onImmediateChange: (a) => {
523
- y(a, a.name);
528
+ R(a, a.name);
524
529
  }
525
530
  },
526
531
  reactive: {
@@ -530,48 +535,42 @@ function Ve(e) {
530
535
  onHas: ({ target: a, key: i }) => {
531
536
  E(a, i);
532
537
  },
533
- onDelete: ({ target: a, key: i }) => {
534
- ee(a, i);
538
+ onDelete: ({ target: a, key: i, keysChanged: d }) => {
539
+ ne(a, i), d && (R(a), g(a));
535
540
  },
536
- onSet: ({ target: a, key: i, keysChanged: m }) => {
537
- if (y(a, i), m) {
538
- y(a);
539
- const d = c.get(s(a));
540
- if (d)
541
- for (const R of d)
542
- y(a, R);
543
- }
541
+ onSet: ({ target: a, key: i, keysChanged: d }) => {
542
+ R(a, i), d && (R(a), g(a));
544
543
  },
545
544
  needsProxy: ({ key: a }) => !A.has(a)
546
545
  }
547
546
  };
548
- function ne(a, i) {
549
- return j(a, i, G);
550
- }
551
547
  function te(a, i) {
552
- return z(a, i, G);
548
+ return L(a, i, y);
549
+ }
550
+ function re(a, i) {
551
+ return N(a, i, y);
553
552
  }
554
- function re(a, i, m) {
555
- return p(a, i, m, G);
553
+ function se(a, i, d) {
554
+ return k(a, i, d, y);
556
555
  }
557
- function se(a, i, m) {
558
- return k(a, i, m, G);
556
+ function ce(a, i, d) {
557
+ return ee(a, i, d, y);
559
558
  }
560
559
  return {
561
- toRaw: Te.toRaw,
562
- watch: Z,
563
- describeProperty: te,
564
- defineProperty: se,
565
- describeComputed: ne,
566
- defineComputed: re
560
+ toRaw: Ee.toRaw,
561
+ watch: p,
562
+ describeProperty: re,
563
+ defineProperty: ce,
564
+ describeComputed: te,
565
+ defineComputed: se
567
566
  };
568
567
  }
569
568
  export {
570
- Te as M,
571
- He as a,
572
- Ve as b,
573
- oe as g,
574
- De as l,
569
+ Ee as M,
570
+ De as a,
571
+ je as b,
572
+ ie as g,
573
+ Ve as l,
575
574
  Me as r,
576
- $ as t
575
+ X as t
577
576
  };
package/dist/core.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("./MadroneVue3-SGZmwRMI.cjs");function a(e,t,n){const r=o.getIntegration();if(!r)throw new Error("No integration specified");typeof n.get=="function"&&r?.defineComputed?r.defineComputed(e,t,{get:n.get.bind(e),set:n.set?.bind(e),enumerable:n.enumerable,configurable:n.configurable,cache:n.cache??!0}):!n.get&&r?.defineProperty&&r.defineProperty(e,t,{value:n.value,enumerable:n.enumerable,configurable:n.configurable,deep:n.deep})}function p(e,t){const n=Object.getOwnPropertyDescriptors(e),r=(u,i)=>t?.[u]?.[i];for(const[u,i]of Object.entries(n))a(e,u,{get:i.get?.bind(e),set:i.set?.bind(e),value:r(u,"value")??i.value,enumerable:r(u,"enumerable")??i.enumerable,configurable:r(u,"configurable")??i.configurable,cache:r(u,"cache")??!0,deep:r(u,"deep")??!0});return e}function g(e,t,n){return o.getIntegration()?.watch?.(e,t,n)}function b(...e){const t={},n={};for(const r of e){const u=typeof r=="function"?r():r;Object.assign(t,Object.getOwnPropertyDescriptors(u??r??{}))}return Object.defineProperties(n,t),n}function m(e,t){Object.defineProperties(e.prototype,Object.getOwnPropertyDescriptors(b(...[...t,e].map(n=>n.prototype))))}const c=new WeakMap;function P(...e){return t=>{e?.length&&m(t,e)}}function h(e){c.has(e)||c.set(e,new Set)}function v(e,t){return h(e),c.get(e).has(t)}function w(e,t){h(e),c.get(e).add(t)}function d(e,t,n,r){return o.getIntegration()&&!v(e,t)?(a(e,t,{...n,get:n.get.bind(e),set:n.set?.bind(e),enumerable:!0,...r?.descriptors,cache:!0}),w(e,t),!0):!1}function O(e,t,n,r){return typeof n.get=="function"?{...n,enumerable:!0,configurable:!0,get:function(){return d(this,t,n,r),this[t]},set:function(I){d(this,t,n,r),this[t]=I}}:n}function M(e,t,n){return O(e,t,n)}M.configure=function(t){return(n,r,u)=>O(n,r,u,{descriptors:t})};function f(e,t,n){return o.getIntegration()&&!v(e,t)?(w(e,t),a(e,t,{...Object.getOwnPropertyDescriptor(e,t),enumerable:!0,...n?.descriptors}),!0):!1}function s(e,t,n){typeof e=="function"?f(e,t):Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get(){if(f(this,t,n))return this[t]},set(r){f(this,t,n)&&(this[t]=r)}})}function l(e,t){return s(e,t)}l.shallow=function(t,n){return s(t,n,{descriptors:{deep:!1}})};l.configure=function(t){return(n,r)=>s(n,r,{descriptors:t})};o.addIntegration(o.MadroneState);const D={use:o.addIntegration,unuse:o.removeIntegration,auto:p,define:a,watch:g,lastAccessed:o.lastAccessed};exports.MadroneState=o.MadroneState;exports.MadroneVue3=o.MadroneVue3;exports.toRaw=o.toRaw;exports.applyClassMixins=m;exports.auto=p;exports.classMixin=P;exports.computed=M;exports.default=D;exports.merge=b;exports.reactive=l;exports.watch=g;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const o=require("./MadroneVue3-BTKiUAll.cjs");function a(e,t,n){const r=o.getIntegration();if(!r)throw new Error("No integration specified");typeof n.get=="function"&&r?.defineComputed?r.defineComputed(e,t,{get:n.get.bind(e),set:n.set?.bind(e),enumerable:n.enumerable,configurable:n.configurable,cache:n.cache??!0}):!n.get&&r?.defineProperty&&r.defineProperty(e,t,{value:n.value,enumerable:n.enumerable,configurable:n.configurable,deep:n.deep})}function p(e,t){const n=Object.getOwnPropertyDescriptors(e),r=(u,i)=>t?.[u]?.[i];for(const[u,i]of Object.entries(n))a(e,u,{get:i.get?.bind(e),set:i.set?.bind(e),value:r(u,"value")??i.value,enumerable:r(u,"enumerable")??i.enumerable,configurable:r(u,"configurable")??i.configurable,cache:r(u,"cache")??!0,deep:r(u,"deep")??!0});return e}function g(e,t,n){return o.getIntegration()?.watch?.(e,t,n)}function b(...e){const t={},n={};for(const r of e){const u=typeof r=="function"?r():r;Object.assign(t,Object.getOwnPropertyDescriptors(u??r??{}))}return Object.defineProperties(n,t),n}function m(e,t){Object.defineProperties(e.prototype,Object.getOwnPropertyDescriptors(b(...[...t,e].map(n=>n.prototype))))}const c=new WeakMap;function P(...e){return t=>{e?.length&&m(t,e)}}function h(e){c.has(e)||c.set(e,new Set)}function v(e,t){return h(e),c.get(e).has(t)}function w(e,t){h(e),c.get(e).add(t)}function d(e,t,n,r){return o.getIntegration()&&!v(e,t)?(a(e,t,{...n,get:n.get.bind(e),set:n.set?.bind(e),enumerable:!0,...r?.descriptors,cache:!0}),w(e,t),!0):!1}function O(e,t,n,r){return typeof n.get=="function"?{...n,enumerable:!0,configurable:!0,get:function(){return d(this,t,n,r),this[t]},set:function(I){d(this,t,n,r),this[t]=I}}:n}function M(e,t,n){return O(e,t,n)}M.configure=function(t){return(n,r,u)=>O(n,r,u,{descriptors:t})};function f(e,t,n){return o.getIntegration()&&!v(e,t)?(w(e,t),a(e,t,{...Object.getOwnPropertyDescriptor(e,t),enumerable:!0,...n?.descriptors}),!0):!1}function s(e,t,n){typeof e=="function"?f(e,t):Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get(){if(f(this,t,n))return this[t]},set(r){f(this,t,n)&&(this[t]=r)}})}function l(e,t){return s(e,t)}l.shallow=function(t,n){return s(t,n,{descriptors:{deep:!1}})};l.configure=function(t){return(n,r)=>s(n,r,{descriptors:t})};o.addIntegration(o.MadroneState);const D={use:o.addIntegration,unuse:o.removeIntegration,auto:p,define:a,watch:g,lastAccessed:o.lastAccessed};exports.MadroneState=o.MadroneState;exports.MadroneVue3=o.MadroneVue3;exports.toRaw=o.toRaw;exports.applyClassMixins=m;exports.auto=p;exports.classMixin=P;exports.computed=M;exports.default=D;exports.merge=b;exports.reactive=l;exports.watch=g;
package/dist/core.js CHANGED
@@ -1,5 +1,5 @@
1
- import { g as i, a as p, l as O, r as v, M as P } from "./MadroneVue3-Bh1p2UjI.js";
2
- import { b as j, t as V } from "./MadroneVue3-Bh1p2UjI.js";
1
+ import { g as i, a as p, l as O, r as v, M as P } from "./MadroneVue3-DWfxzJoA.js";
2
+ import { b as j, t as V } from "./MadroneVue3-DWfxzJoA.js";
3
3
  function f(e, t, n) {
4
4
  const r = i();
5
5
  if (!r)
package/dist/vue.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";const e=require("vue"),r=require("./MadroneVue3-SGZmwRMI.cjs"),t=r.MadroneVue3({reactive:e.reactive,toRaw:e.toRaw});module.exports=t;
1
+ "use strict";const e=require("vue"),r=require("./MadroneVue3-BTKiUAll.cjs"),t=r.MadroneVue3({reactive:e.reactive,toRaw:e.toRaw});module.exports=t;
package/dist/vue.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { reactive as o, toRaw as e } from "vue";
2
- import { b as r } from "./MadroneVue3-Bh1p2UjI.js";
2
+ import { b as r } from "./MadroneVue3-DWfxzJoA.js";
3
3
  const m = r({ reactive: o, toRaw: e });
4
4
  export {
5
5
  m as default
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@madronejs/core",
3
- "version": "1.1.2",
3
+ "version": "1.1.4",
4
4
  "description": "Object composition and reactivity framework.",
5
5
  "private": false,
6
6
  "license": "MIT",
@@ -1 +0,0 @@
1
- "use strict";const M=new Set;let x;function oe(){return[...M]}function ie(){return oe().at(-1)}function U(){x=ie()}function ue(e){e&&(M.add(e),U())}function fe(e){M.delete(e),U()}function $(){return x}const X=new WeakMap;function V(e){return($()?.toRaw??(t=>t))(e)}function T(e){X.set(V(e),Date.now())}function le(e){return X.get(V(e))}const f=Symbol("keys"),B=Symbol("computed"),D=new WeakMap,g=new WeakMap,b=new WeakMap,C=new WeakMap;let G=[],A=null;const de=e=>D.has(e),q=e=>g.has(e),N=e=>D.get(e),he=e=>g.get(e),me=e=>q(e)?he(e):e,Se=(e,n)=>{D.set(e,n),g.set(n,e)},ve=()=>{A===null&&(A=Symbol("scheduler"),queueMicrotask(()=>{try{for(;G.length>0;){const e=G;G=[];for(const n of e)try{n()}catch(t){console.error("Unhandled error in scheduled task:",t)}}}finally{A=null}}))},we=e=>{G.push(e),ve()},Ce=(e,n)=>{const t=C.get(e),s=t?.get(n);if(s){for(const r of s)b.get(r)?.get(n)?.delete(e);s.clear(),t.delete(n),t.size===0&&C.delete(e)}},W=e=>{const n=C.get(e);if(n){for(const[t,s]of n)for(const r of s)b.get(r)?.get(t)?.delete(e);C.delete(e)}},F=(e,n)=>{const t=Re();if(!t)return;C.has(t)||C.set(t,new Map),b.has(e)||b.set(e,new Map);const s=b.get(e),r=C.get(t);s.has(n)||s.set(n,new Set),r.has(n)||r.set(n,new Set);const c=s.get(n),o=r.get(n);c.add(t),o.add(e)},h=(e,n)=>{const t=N(e);t&&F(t,n)},K=(e,n)=>{const t=b.get(e);if(t?.get(n))for(const s of t.get(n))s.setDirty(),Ce(s,n)},S=(e,n)=>{K(N(e),n)},P=[];function Re(){return P.at(-1)}class j{static create(...n){return new j(...n)}constructor(n){this.name=n.name,this.get=n.get,this.set=n.set,this.cache=!!(n.cache??!0),this.alive=!0,this.dirty=!0,this.cachedVal=void 0,this.hooks={onGet:n.onGet,onSet:n.onSet,onChange:n.onChange,onImmediateChange:n.onImmediateChange}}callHook(n){typeof this.hooks[n]=="function"&&this.hooks[n](this)}dispose(){W(this),this.alive=!1,this.dirty=!1,this.cachedVal=void 0,this.prev=void 0}wrap(n){P.push(this);try{return n()}finally{P.pop()}}setDirty(){this.alive&&!this.dirty&&(this.dirty=!0,K(this,B),this.prev=this.cachedVal,this.cachedVal=void 0,this.callHook("onImmediateChange"),we(()=>this.notifyChange()))}notifyChange(){this.callHook("onChange"),this.prev=void 0}run(){if(!this.alive)return;const n=this.wrap(()=>{if(this.cache&&this.dirty||!this.cache){W(this);try{this.cachedVal=this.get()}finally{this.dirty=!1}}return this.cachedVal});return F(this,B),this.callHook("onGet"),n}get value(){return this.run()}set value(n){if(typeof this.set=="function")this.set(n),this.callHook("onSet");else throw new TypeError(`No setter defined for "${this.name}"`)}}function Q(...e){return j.create(...e)}function be(e){return Q(e)}const u=e=>{const{name:n,target:t,key:s,receiver:r,value:c,keysChanged:o=!1,valueChanged:l=!1}=e;return{name:n,target:t,key:s,receiver:r,value:c,keysChanged:o,valueChanged:l}},Oe=(e,n,t,s)=>{h(n,t),e?.onGet&&e.onGet(u({name:e.name,target:n,key:t,receiver:s}))},ye=(e,n,t,s)=>{const r=n[t],c=Array.isArray(n);let o=!1,l=!1;t in n||(S(n,f),l=!0,c&&S(n,"length")),(r!==s||c)&&(S(n,t),o=!0),(l||o)&&e?.onSet&&e.onSet(u({name:e.name,target:n,key:t,value:s,keysChanged:l,valueChanged:o}))},Ie=(e,n,t)=>{S(n,t),S(n,f),e?.onDelete&&e.onDelete(u({name:e.name,target:n,key:t,keysChanged:!0}))},Y=(e,n,t)=>{h(n,f),e?.onHas&&e.onHas(u({name:e.name,target:n,key:t}))};function J(e){const n=e.needsProxy||(()=>!0);return{get:(t,s,r)=>{Oe(e,t,s,r);const c=Reflect.get(t,s,r);return e?.deep&&c&&typeof c=="object"&&n({target:t,key:s,value:c})&&Object.getOwnPropertyDescriptor(t,s)?.configurable?w(c,e):c},set:(t,s,r)=>(ye(e,t,s,r),Reflect.set(t,s,r)),deleteProperty:(...t)=>(Ie(e,...t),Reflect.deleteProperty(...t)),has:(t,s)=>(Y(e,t),Reflect.has(t,s)),ownKeys:t=>(Y(e,t),Reflect.ownKeys(t)),getPrototypeOf:t=>Object.getPrototypeOf(t)}}const Ge=e=>({...J(e)}),Te=e=>({...J(e)}),v=(e,n)=>n?.deep&&e&&typeof e=="object"?w(e,n):e;function*O(e,n,t){for(const s of e)yield t(s)}const Ee=e=>({get:(n,t,s)=>t==="size"?(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),n.size):t==="has"?r=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t,value:r})),n.has(r)):t==="add"?r=>{const c=n.has(r);return n.add(r),c||(S(n,f),e?.onSet?.(u({name:e.name,target:n,key:t,value:r,keysChanged:!0}))),s}:t==="delete"?r=>{const c=n.has(r),o=n.delete(r);return c&&(S(n,f),e?.onDelete?.(u({name:e.name,target:n,key:t,value:r,keysChanged:!0}))),o}:t==="clear"?()=>{const r=n.size>0;n.clear(),r&&(S(n,f),e?.onDelete?.(u({name:e.name,target:n,key:t,keysChanged:!0})))}:t==="forEach"?(r,c)=>{h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t}));for(const[o,l]of n.entries())r.call(c,v(o,e),v(l,e),s)}:t==="values"||t==="keys"?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n.values(),e,r=>v(r,e))):t==="entries"?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n.entries(),e,([r,c])=>[v(r,e),v(c,e)])):t===Symbol.iterator?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n[Symbol.iterator](),e,r=>v(r,e))):t===Symbol.toStringTag?"Set":Reflect.get(n,t,s)}),Ae=e=>({get:(n,t,s)=>t==="size"?(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),n.size):t==="has"?r=>(h(n,r),e?.onGet?.(u({name:e.name,target:n,key:r})),n.has(r)):t==="get"?r=>(h(n,r),e?.onGet?.(u({name:e.name,target:n,key:r})),v(n.get(r),e)):t==="set"?(r,c)=>{const o=n.has(r),l=n.get(r);return n.set(r,c),o||S(n,f),(!o||l!==c)&&(S(n,r),e?.onSet?.(u({name:e.name,target:n,key:r,value:c,keysChanged:!o,valueChanged:l!==c}))),s}:t==="delete"?r=>{const c=n.has(r),o=n.delete(r);return c&&(S(n,f),S(n,r),e?.onDelete?.(u({name:e.name,target:n,key:r,keysChanged:!0}))),o}:t==="clear"?()=>{const r=[...n.keys()],c=n.size>0;if(n.clear(),c){S(n,f);for(const o of r)S(n,o);e?.onDelete?.(u({name:e.name,target:n,key:t,keysChanged:!0}))}}:t==="forEach"?(r,c)=>{h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t}));for(const[o,l]of n.entries())r.call(c,v(l,e),o,s)}:t==="keys"?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),n.keys()):t==="values"?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n.values(),e,r=>v(r,e))):t==="entries"?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n.entries(),e,([r,c])=>[r,v(c,e)])):t===Symbol.iterator?()=>(h(n,f),e?.onGet?.(u({name:e.name,target:n,key:t})),O(n[Symbol.iterator](),e,([r,c])=>[r,v(c,e)])):t===Symbol.toStringTag?"Map":Reflect.get(n,t,s)}),Z=Object.freeze({object:Ge,array:Te,set:Ee,map:Ae});function w(e,n){if(de(e))return N(e);if(q(e))return e;const t=n||{},s={...t,deep:t?.deep??!0},r=w.getStringType(e);if(!w.hasHandler(r))return e;const c=new Proxy(e,w.typeHandler(r,s));return Se(e,c),c}const _e=e=>{const n=Object.getPrototypeOf(e);return n===null?!0:n===Object.prototype};w.getStringType=e=>e===null?"null":typeof e!="object"?typeof e:Array.isArray(e)?"array":e instanceof Map?"map":e instanceof Set?"set":_e(e)?"object":"native";w.hasHandler=e=>!!Z[e];w.typeHandler=(e,n)=>Z[e]?.(n);function p(e,n,t){const s=Q({get:e,onChange:({value:c,prev:o})=>n(c,o)}),r=s.run();return t?.immediate&&n(r),()=>s.dispose()}function z(e,n,t){let s,r;if(n.cache){const c=be({...n,get:n.get,name:e,onImmediateChange:t?.computed?.onImmediateChange,onChange:t?.computed?.onChange,onGet:t?.computed?.onGet,onSet:t?.computed?.onSet});s=function(){return T(this),c.value},r=function(l){c.value=l}}else s=function(){return T(this),n.get.call(this)},r=function(...o){n.set.call(this,...o)};return{enumerable:n.enumerable,configurable:n.configurable,get:s,set:r}}function L(e,n,t){const s={value:n.value},r=w(s,{name:e,onGet:t?.reactive?.onGet,onHas:t?.reactive?.onHas,onSet:t?.reactive?.onSet,onDelete:t?.reactive?.onDelete,needsProxy:t?.reactive?.needsProxy,deep:n.deep??t?.reactive?.deep});return{configurable:n.configurable,enumerable:n.enumerable,get:function(){T(this);const{value:o}=r;return Array.isArray(o)&&Reflect.get(o,"length"),o},set:function(o){r.value=o}}}function k(e,n,t,s){Object.defineProperty(e,n,z(n,t,s))}function ee(e,n,t,s){Object.defineProperty(e,n,L(n,t,s))}const ne={toRaw:me,watch:p,describeProperty:L,defineProperty:ee,describeComputed:z,defineComputed:k},_=new Set(["__proto__","__ob__"]),H="value",Pe=new Set([Symbol.iterator,"size","has","get","values","keys","entries","forEach"]),He=e=>{e[H]+=1};function Me(e){if(!e?.reactive||typeof e.reactive!="function")throw new Error(`MadroneVue3 requires Vue's reactive function. Either use "madrone/integrations/vue" for automatic setup, or pass { reactive, toRaw } from "vue".`);const{reactive:n,toRaw:t}=e,s=t??(a=>a),r=new WeakMap,c=new WeakMap,o=(a,i)=>{if(!Pe.has(i))return;const m=s(a);let d=c.get(m);d||(d=new Set,c.set(m,d)),d.add(i)},l=(a,i)=>{const m=s(a);let d=r.get(m);d||(d=new Map,r.set(m,d));let R=d.get(i);return R||(R=n({[H]:0}),d.set(i,R)),R},E=(a,i)=>{_.has(i)||Reflect.get(l(a,i),H)},y=(a,i)=>{_.has(i)||He(l(a,i))},te=(a,i)=>{const m=s(a),d=r.get(m);d&&y(d,i),r.delete(m)},I={computed:{onGet:a=>{E(a,a.name)},onImmediateChange:a=>{y(a,a.name)}},reactive:{onGet:({target:a,key:i})=>{T(a),E(a,i),o(a,i)},onHas:({target:a,key:i})=>{E(a,i)},onDelete:({target:a,key:i})=>{te(a,i)},onSet:({target:a,key:i,keysChanged:m})=>{if(y(a,i),m){y(a);const d=c.get(s(a));if(d)for(const R of d)y(a,R)}},needsProxy:({key:a})=>!_.has(a)}};function re(a,i){return z(a,i,I)}function se(a,i){return L(a,i,I)}function ce(a,i,m){return k(a,i,m,I)}function ae(a,i,m){return ee(a,i,m,I)}return{toRaw:ne.toRaw,watch:p,describeProperty:se,defineProperty:ae,describeComputed:re,defineComputed:ce}}exports.MadroneState=ne;exports.MadroneVue3=Me;exports.addIntegration=ue;exports.getIntegration=$;exports.lastAccessed=le;exports.removeIntegration=fe;exports.toRaw=V;