vref 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs.cjs +1 -1
- package/dist/index.cjs.cjs.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.esm.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const t={Get:"get",Set:"set",Add:"add",Has:"has",Delete:"delete",Clear:"clear",ForbiddenKeys:new Set(["__proto__","constructor","prototype"])},e=Symbol("is_proxy"),r=Symbol("raw_object"),n=new Set(["copyWithin","fill","push","reverse","unshift"]),a=new Set(["concat","flat","slice","toReversed","toSpliced","with"]),i=new Set(["every","findIndex","findLastIndex","flatMap","forEach","map","reduce","reduceRight","some"]),o=new Set(["entries","keys","values",Symbol.iterator]),s=new Set(["includes","indexOf","lastIndexOf"]),c=new Set(["at"]),u=new Set(["filter","find","findLast","pop","shift","sort","splice","toSorted"]),l=new Set(["copyWithin","fill","reverse","set","sort"]),f=new Set(["forEach"]),d=new Set(["forEach"]);function h(e){return t.ForbiddenKeys.has(e)}function p(t){return
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});const t={Get:"get",Set:"set",Add:"add",Has:"has",Delete:"delete",Clear:"clear",ForbiddenKeys:new Set(["__proto__","constructor","prototype"])},e=Symbol("is_proxy"),r=Symbol("raw_object"),n=new Set(["copyWithin","fill","push","reverse","unshift"]),a=new Set(["concat","flat","slice","toReversed","toSpliced","with"]),i=new Set(["every","findIndex","findLastIndex","flatMap","forEach","map","reduce","reduceRight","some"]),o=new Set(["entries","keys","values",Symbol.iterator]),s=new Set(["includes","indexOf","lastIndexOf"]),c=new Set(["at"]),u=new Set(["filter","find","findLast","pop","shift","sort","splice","toSorted"]),l=new Set(["copyWithin","fill","reverse","set","sort"]),f=new Set(["forEach"]),d=new Set(["forEach"]);function h(e){return t.ForbiddenKeys.has(e)}function p(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function y(t){return function(t){return"object"==typeof t&&null!==t}(t)||function(t){return Array.isArray(t)||p(t)}(t)}function v(t){return t[e]??!1}function g(t){return y(t)&&v(t)}function H(t){return t instanceof Map||t instanceof WeakMap}function S(t){return t instanceof Set||t instanceof WeakSet}function w(t){return t[r]}function b(t){return g(t)?w(t):t}function A(...t){const[e]=t;return y(e)?K(...t):e}function k(t){return t.map(t=>b(t))}function O(t,e,r){return t.map(t=>A(t,e,r,!1))}function m(t,e,...r){if(r.length>0){const[n,...a]=r;if("function"==typeof n){function i(...r){const a=r.map(r=>A(r,t,e));return n.apply(this,a)}return[i,...a]}}return r}function j(t,e,r,...n){const a=e.has(this)?k(n):n;return t[r].apply(this,a)}function x(t,e,r,n,...a){const i=e.get(this),o=i?k(a):a,s=t[r].apply(this,o);return i&&n({target:i,action:r,key:void 0,value:a,prevValue:void 0}),s}function V(t,e,r,...n){const a=e.get(this),[i]=n,o=a?b(i):i;return t.has.call(this,o)||(t.add.call(this,o),a&&r({target:a,action:"add",key:i,value:i,prevValue:void 0})),a??this}function P(t,e,r,...n){const a=e.get(this),[i]=n,o=a?b(i):i,s=function(t,e){return t instanceof WeakMap?t.get(e):t.has(e)?e:void 0}(this,o),c=t.delete.call(this,o);return c&&a&&r({target:a,action:"delete",key:i,value:void 0,prevValue:s}),c}function R(t,e,r,...n){const a=e.has(this),[i]=n,o=a?b(i):i,s=t.get.call(this,o);return a?A(s,e,r):s}function M(t,e,...r){const n=e.has(this),[a]=r,i=n?b(a):a;return t.has.call(this,i)}function _(t,e,r,...n){const a=e.get(this),[i,o]=n,s=a?b(i):i,c=a?b(o):o,u=t.get.call(this,s);return Object.is(c,u)||(t.set.call(this,s,c),a&&r({target:a,action:"set",key:i,value:o,prevValue:u})),a??this}function W(t,e,r){if(this.size>0){const n=e.get(this);t.clear.call(this),n&&r({target:n,action:"clear",key:void 0,value:void 0,prevValue:void 0})}}function E(t,e,r,...n){const a=v(this)||e.has(this)?k(n):n;return t[r].apply(this,a)}function L(t,e,r,n,...a){const i=e.has(this)?m(e,n,...a):a;return t[r].apply(this,i)}function D(t,e,r,n){const a=e.get(this),i=t[r].call(this);return a?function(t,...e){const[r,n,a,i]=e,o=Array.isArray(r),s="entries"===a||H(r)&&a===Symbol.iterator,c={next(e){const r=b(this===c?t:this),a=t.next.call(r,e);if(!a.done)if(s)if(o){const[,t]=a.value;a.value[1]=A(t,n,i)}else a.value=a.value.map(t=>A(t,n,i));else a.value=A(a.value,n,i);return a},[Symbol.iterator](){return b(this)}};return c}(i,this,e,r,n):i}function I(t,e,r,n,...a){const i=e.has(this),o=i?k(a):a,s=t[r].apply(this,o);return i?O(s,e,n):s}function C(t,e,r,n,...a){const i=e.has(this),o=i?k(a):a,s=t[r].apply(this,o);return i?A(s,e,n):s}function F(t,e,r,n,...a){const i=e.get(this);let o;switch(r){case"filter":case"find":case"findLast":case"sort":case"toSorted":const s=i?m(e,n,...a):a;switch(o=t[r].apply(this,s),r){case"filter":case"toSorted":return i?O(o,e,n):o;case"find":case"findLast":return i?A(o,e,n):o;case"sort":return i&&n({target:i,action:"sort",key:void 0,value:a,prevValue:void 0}),i??this}case"pop":case"shift":case"splice":const c=i?k(a):a;switch(o=t[r].apply(this,c),i&&n({target:i,action:r,key:void 0,value:a,prevValue:void 0}),r){case"pop":case"shift":return i?A(o,e,n,!1):o;case"splice":return i?O(o,e,n):o}}}function G(t,...e){return function(...r){const[n,a]=e;let i;var o;return o=n,i="[object Object]"!==Object.prototype.toString.call(o)||Object.getPrototypeOf(o)!==Object.prototype&&!o.constructor?b(this):this,function(t,e){g(t)&&e.set(w(t),t)}(this,a),t.apply(i,e.concat(r))}}function K(g,w,b,A){if(v(g))return g;const k=w.get(g);if(k)return k;let O=!1;const m=new Proxy(g,{get(v,A,k){if(A===e)return!0;if(A===r)return g;let O;try{O=Reflect.get(v,A,k)}catch{O=Reflect.get(v,A)}if(!h(A)&&void 0!==O){if(y(O))return K(O,w,b);if("function"==typeof O){const e=function(t,e,r,n){return{conflictArrayHandler:G(F,t,r,e,n),mutationArrayHandler:G(x,t,r,e,n),producerArrayHandler:G(I,t,r,e,n),iterationHandler:G(L,t,r,e,n),iteratorHandler:G(D,t,r,e,n),lookupArrayHandler:G(j,t,r,e),pickingArrayHandler:G(C,t,r,e,n),getHandler:G(R,t,r,n),setHandler:G(_,t,r,n),addHandler:G(V,t,r,n),hasHandler:G(M,t,r),deleteHandler:G(P,t,r,n),clearHandler:G(W,t,r,n),defaultHandler:G(E,t,r,e)}}(v,A,w,b);if(Array.isArray(v)){if(u.has(A))return e.conflictArrayHandler;if(n.has(A))return e.mutationArrayHandler;if(a.has(A))return e.producerArrayHandler;if(i.has(A))return e.iterationHandler;if(o.has(A))return e.iteratorHandler;if(s.has(A))return e.lookupArrayHandler;if(c.has(A))return e.pickingArrayHandler}if(p(v)&&l.has(A))return e.mutationArrayHandler;if(H(v)){if(A===t.Get)return e.getHandler;if(A===t.Set)return e.setHandler}if(S(v)&&A===t.Add)return e.addHandler;if(v instanceof Map&&f.has(A)||v instanceof Set&&d.has(A))return e.iterationHandler;if(function(t){return t instanceof Map||t instanceof Set}(v)){if(A===t.Clear)return e.clearHandler;if(o.has(A))return e.iteratorHandler}if(function(t){return H(t)||S(t)}(v)){if(A===t.Has)return e.hasHandler;if(A===t.Delete)return e.deleteHandler}return e.defaultHandler}}return O},set(t,e,r,n){if(h(e))return!0;const a=t[e];if(!Object.is(a,r)){O=!0;const i=Reflect.set(t,e,r,n);return O=!1,i&&b({target:m,action:"set",key:e,value:r,prevValue:a}),i}return!0},deleteProperty(t,e){if(h(e))return!0;if(Object.prototype.hasOwnProperty.call(t,e)){const r=t[e],n=Reflect.deleteProperty(t,e);return n&&b({target:m,action:"delete",key:e,value:void 0,prevValue:r}),n}return!0},defineProperty(t,e,r){if(h(e))return!0;const n=t[e],a=Reflect.defineProperty(t,e,r);if(!O&&a){const t=r.value;Object.is(n,t)||b({target:m,action:"define",key:e,value:t,prevValue:n})}return a},setPrototypeOf:()=>!0});return(A??1)&&w.set(g,m),m}exports.default=function(t,e,r){const n=r?.cache??new WeakMap;return K(Object.preventExtensions({value:t}),n,e)},exports.getRaw=b,exports.isRef=g;
|
|
2
2
|
//# sourceMappingURL=index.cjs.cjs.map
|
package/dist/index.cjs.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs.cjs","sources":["../src/constants/keys.ts","../src/constants/symbols.ts","../src/constants/mutationMethods/array.ts","../src/constants/producerMethods/array.ts","../src/constants/iterationMethods/array.ts","../src/constants/iteratorMethods/index.ts","../src/constants/lookupMethods/array.ts","../src/constants/pickingMethods/array.ts","../src/constants/conflictMethods/array.ts","../src/constants/mutationMethods/typedArray.ts","../src/constants/iterationMethods/map.ts","../src/constants/iterationMethods/set.ts","../src/utils/utils.ts","../src/utils/handlers/array/lookupHandler.ts","../src/utils/handlers/array/mutateHandler.ts","../src/utils/handlers/collection/addHandler.ts","../src/utils/handlers/collection/deleteHandler.ts","../src/utils/handlers/collection/getHandler.ts","../src/utils/handlers/collection/hasHandler.ts","../src/utils/handlers/collection/setHandler.ts","../src/utils/handlers/collection/clearHandler.ts","../src/utils/handlers/defaultHandler.ts","../src/utils/handlers/iterationHandler.ts","../src/utils/handlers/iteratorHandler.ts","../src/utils/handlers/array/producerHandler.ts","../src/utils/handlers/array/pickingHandler.ts","../src/utils/handlers/array/conflictHandler.ts","../src/utils/packHandlers.ts","../src/utils/createProxy.ts","../src/ref.ts"],"sourcesContent":["const Keys = {\n Get: 'get',\n Set: 'set',\n Add: 'add',\n Has: 'has',\n Delete: 'delete',\n Clear: 'clear',\n ForbiddenKeys: new Set(['__proto__', 'constructor', 'prototype']),\n} as const;\n\nexport default Keys;\n","const Symbols = {\n IsProxy: Symbol('is_proxy'),\n RawObject: Symbol('raw_object'),\n} as const;\n\nexport default Symbols;\n","const MutationArrayMethods = new Set([\n 'copyWithin',\n 'fill',\n 'push',\n 'reverse',\n 'unshift',\n] as const);\n\nexport type MutationArrayMethods = typeof MutationArrayMethods extends Set<infer T> ? T: never;\nexport default MutationArrayMethods;\n","const ProducerArrayMethods = new Set([\n 'concat',\n 'flat',\n 'slice',\n 'toReversed',\n 'toSpliced',\n 'with',\n] as const);\n\nexport type ProducerArrayMethods = typeof ProducerArrayMethods extends Set<infer T> ? T: never;\nexport default ProducerArrayMethods;\n","const IterationArrayMethods = new Set([\n 'every',\n 'findIndex',\n 'findLastIndex',\n 'flatMap',\n 'forEach',\n 'map',\n 'reduce',\n 'reduceRight',\n 'some',\n] as const);\n\nexport type IterationArrayMethods = typeof IterationArrayMethods extends Set<infer T> ? T : never;\nexport default IterationArrayMethods;\n","const IteratorMethods = new Set([\n 'entries',\n 'keys',\n 'values',\n Symbol.iterator,\n] as const);\n\nexport type IteratorMethods = typeof IteratorMethods extends Set<infer T> ? T: never;\nexport default IteratorMethods;\n","const LookupArrayMethods = new Set([\n 'includes',\n 'indexOf',\n 'lastIndexOf',\n] as const);\n\nexport type LookupArrayMethods = typeof LookupArrayMethods extends Set<infer T> ? T: never;\nexport default LookupArrayMethods;\n","const PickingArrayMethods = new Set(['at'] as const);\n\nexport type PickingArrayMethods = typeof PickingArrayMethods extends Set<infer T> ? T: never;\nexport default PickingArrayMethods;\n","/**\n * Array methods that exhibit multiple reactive behaviors, potentially causing proxy conflicts.\n *\n * These methods can:\n * - both iterate and produce new arrays (`filter`, `toSorted`, `splice`)\n * - iterate while selecting specific elements (`find`, `findLast`)\n * - mutate the array while returning removed elements (`pop`, `shift`)\n * - both mutate and iterate (`sort`)\n *\n * Use these with the raw target rather than the proxied array to avoid inconsistent reactivity.\n */\nconst ConflictArrayMethods = new Set([\n 'filter', // iteration + producer\n 'find', // iteration + picking\n 'findLast', // iteration + picking\n 'pop', // mutation + picking\n 'shift', // mutation + picking\n 'sort', // iteration + mutation\n 'splice', // mutation + producer\n 'toSorted', // iteration + producer\n] as const);\n\nexport type ConflictArrayMethods = typeof ConflictArrayMethods extends Set<infer T> ? T : never;\nexport default ConflictArrayMethods;\n","const MutationTypedArrayMethods = new Set([\n 'copyWithin',\n 'fill',\n 'reverse',\n 'set',\n 'sort',\n] as const);\n\nexport type MutationTypedArrayMethods = typeof MutationTypedArrayMethods extends Set<infer T> ? T: never;\nexport default MutationTypedArrayMethods;\n","const IterationMapMethods = new Set(['forEach'] as const);\n\nexport type IterationMapMethods = typeof IterationMapMethods extends Set<infer T> ? T : never;\nexport default IterationMapMethods;\n","const IterationSetMethods = new Set(['forEach'] as const);\n\nexport type IterationSetMethods = typeof IterationSetMethods extends Set<infer T> ? T : never;\nexport default IterationSetMethods;\n","import Keys from \"../constants/keys\";\nimport Symbols from \"../constants/symbols\";\nimport createProxy from \"./createProxy\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\nexport function isForbiddenKey(key: any) {\n return Keys.ForbiddenKeys.has(key);\n}\n\nexport function isObject(value: any) {\n return typeof value === 'object' && value !== null;\n}\n\nexport function isTypedArray(value: any) {\n return ArrayBuffer.isView(value) && !(value instanceof DataView);\n}\n\nexport function isArray(value: any): boolean {\n return Array.isArray(value) || isTypedArray(value);\n}\n\nexport function isProxy(value: object): boolean {\n return (value as any)[Symbols.IsProxy] ?? false;\n}\n\nexport function isMapCollection(target: object) {\n return target instanceof Map || target instanceof WeakMap;\n}\n\nexport function isSetCollection(target: object) {\n return target instanceof Set || target instanceof WeakSet;\n}\n\nexport function isStrongCollection(target: object) {\n return target instanceof Map || target instanceof Set;\n}\n\nexport function isCollection(target: object) {\n return isMapCollection(target) || isSetCollection(target);\n}\n\nexport function getRaw(proxy: object): object {\n return (proxy as any)[Symbols.RawObject];\n}\n\nexport function getWeakValue(target: WeakMap<any, any> | WeakSet<any>, key: any) {\n if (target instanceof WeakMap) {\n return target.get(key);\n } else if (target.has(key)) {\n return key;\n }\n return undefined;\n}\n\nexport function getRawTry(value: any) {\n if (isObject(value) && isProxy(value)) {\n return getRaw(value);\n }\n return value;\n}\n\nexport function createProxyTry<T extends object>(\n ...args: Parameters<typeof createProxy<T>>\n) {\n const [value] = args;\n if (isObject(value)) {\n return createProxy(...args);\n }\n return value;\n}\n\nexport function toRawArgs(args: any[]) {\n return args.map(each => getRawTry(each));\n}\n\nexport function toProxiedItems(array: any[], cache: CacheProxy, onChange: OnChangeHandler) {\n return array.map(each => createProxyTry(each, cache, onChange, false));\n}\n\n/**\n * Wraps callback functions passed to array/map/set iteration methods\n * to ensure reactive proxy values are passed to the original callback.\n */\nexport function createCallbackArgs(cache: CacheProxy, onChange: OnChangeHandler, ...args: any[]) {\n if (args.length > 0) {\n const [callbackFn, ...restArgs] = args;\n if (typeof callbackFn === 'function') {\n function callback(this: any, ...callbackArgs: any[]) {\n const proxiedArgs = callbackArgs.map(arg => createProxyTry(arg, cache, onChange));\n return callbackFn.apply(this, proxiedArgs);\n }\n return [callback, ...restArgs];\n }\n }\n return args;\n}\n\nexport function checkCache(value: any, cache: CacheProxy) {\n if (isObject(value) && isProxy(value)) {\n cache.set(getRaw(value), value);\n }\n}\n\nexport function isPlainObject(value: any): boolean {\n if (Object.prototype.toString.call(value) !== '[object Object]') return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || !!value.constructor;\n}\n","import { LookupArrayMethods } from \"../../../constants/lookupMethods/array\";\nimport { toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Handles \"lookup\" methods on arrays such as `includes`, `indexOf`, and `lastIndexOf`.\n * Converts any proxied arguments to raw values before calling the native method.\n */\nexport default function lookupArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: LookupArrayMethods,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n return (target as any)[key].apply(this, rawArgs);\n}\n","import { MutationArrayMethods } from \"../../../constants/mutationMethods/array\";\nimport { MutationTypedArrayMethods } from \"../../../constants/mutationMethods/typedArray\";\nimport { toRawArgs } from \"../../utils\";\nimport { TypedArray } from \"../../../types/types\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\ntype MutationKey<T> = T extends any[] ?\n MutationArrayMethods :\n MutationTypedArrayMethods;\n\n/**\n * Handles mutation methods on arrays or typed arrays.\n *\n * Supports `copyWithin`, `fill`, `push`, etc.\n * - Converts proxied arguments to raw values.\n * - Triggers `onChange` after mutation.\n */\nexport default function mutationArrayHandler<T extends any[] | TypedArray>(\n // expect raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: MutationKey<T>,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const rawArgs = proxy ? toRawArgs(args) : args;\n const value = (target as any)[key].apply(this, rawArgs);\n proxy && onChange({\n target: proxy,\n action: key,\n key: undefined,\n value: args,\n prevValue: undefined\n });\n return value;\n}\n","import { getRawTry } from \"../../utils\";\nimport { OnChangeHandler } from \"../../../types/ref\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Handles adding a value to a Set or WeakSet.\n *\n * Behavior:\n * - Converts proxied values to raw objects to avoid double-proxy issues.\n * - Only triggers `onChange` if the value was not already present in the Set/WeakSet.\n * - Returns the proxy itself for fluent use.\n */\nexport default function addHandler<T extends Set<any> | WeakSet<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [value] = args;\n const rawValue = proxy ? getRawTry(value) : value;\n const hasValue = target.has.call(this, rawValue);\n if (!hasValue) {\n target.add.call(this, rawValue);\n proxy && onChange({\n target: proxy,\n action: 'add',\n key: value,\n value,\n prevValue: undefined,\n });\n }\n return proxy ?? this;\n}\n","import { getWeakValue, getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles deleting a key/value from Map, Set, WeakMap, or WeakSet.\n *\n * Behavior:\n * - Converts proxied keys to their raw versions to maintain correct identity.\n * - For Map/WeakMap, also retrieves the previous value via `getWeakValue`.\n * - Removes any cached proxies for the deleted key and, if applicable, the value.\n * - Triggers `onChange` only if deletion actually occurs.\n */\nexport default function deleteHandler<T extends\n | Map<any, any>\n | Set<any>\n | WeakMap<any, any>\n | WeakSet<any>\n>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [key] = args;\n const rawKey = proxy ? getRawTry(key) : key;\n const prevValue = getWeakValue(this, rawKey);\n const deleted = target.delete.call(this, rawKey);\n if (deleted && proxy) {\n onChange({\n target: proxy,\n action: 'delete',\n key,\n value: undefined,\n prevValue\n });\n }\n return deleted;\n}\n","import { createProxyTry, getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles getting a value from a Map or WeakMap.\n *\n * Behavior:\n * - Converts a proxied key to its raw value to correctly access the Map/WeakMap.\n * - If the retrieved value is creatable (object/array), wraps it in a proxy to maintain reactivity.\n * - Does not modify the original collection.\n */\nexport default function getHandler<T extends Map<any, any> | WeakMap<any, any>>(\n // expects raw object,\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const [key] = args;\n const rawKey = isProxied ? getRawTry(key) : key;\n const value = target.get.call(this, rawKey);\n return isProxied ? createProxyTry(value, cache, onChange) : value;\n}\n","import { getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Checks whether a key exists in a Map, Set, WeakMap, or WeakSet.\n *\n * Behavior:\n * - Converts a proxied key to its raw value to ensure proper lookup.\n * - Works with all supported collections: Map, Set, WeakMap, WeakSet.\n * - Returns a boolean indicating presence.\n */\nexport default function hasHandler<T extends\n | Map<any, any>\n | Set<any>\n | WeakMap<any, any>\n | WeakSet<any>\n>(\n this: T,\n target: T,\n cache: CacheProxy,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const [key] = args;\n const rawKey = isProxied ? getRawTry(key) : key;\n return target.has.call(this, rawKey);\n}\n","import { getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Sets a key-value pair in a Map or WeakMap with reactive tracking.\n *\n * Behavior:\n * - Converts proxied key and value to their raw counterparts.\n * - Only triggers `onChange` if the new value differs from the previous value.\n * - Removes any cached proxy associated with the previous value to prevent memory leaks.\n * - Returns the proxy for chaining.\n */\nexport default function setHandler<T extends Map<any, any> | WeakMap<any, any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [key, value] = args;\n const rawKey = proxy ? getRawTry(key) : key;\n const rawValue = proxy ? getRawTry(value) : value;\n const prevValue = target.get.call(this, rawKey);\n if (!Object.is(rawValue, prevValue)) {\n target.set.call(this, rawKey, rawValue);\n proxy && onChange({\n target: proxy,\n action: 'set',\n key,\n value,\n prevValue,\n });\n }\n return proxy ?? this;\n}\n","import { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles the `clear()` method for reactive Map/Set.\n *\n * - Clears the collection.\n * - Removes all entries from the proxy cache.\n * - Triggers the `onChange` callback if the collection was non-empty.\n */\nexport default function clearHandler<T extends Map<any, any> | Set<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n) {\n if (this.size > 0) {\n const proxy = cache.get(this);\n target.clear.call(this);\n proxy && onChange({\n target: proxy,\n action: 'clear',\n key: undefined,\n value: undefined,\n prevValue: undefined,\n });\n }\n}\n","import { isProxy, toRawArgs } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\n\n/**\n * Default handler for property or method access when no specialized\n * reactive handling is applied.\n *\n * Behavior:\n * - Calls the original method or accesses the property directly.\n * - Returns the result as-is without creating a reactive proxy.\n * - Suitable for native methods or properties where reactive wrapping\n * is not needed.\n */\nexport default function defaultHandler<T extends object>(\n // expects both raw and proxy object\n this: T,\n target: T,\n cache: CacheProxy,\n key: any,\n ...args: any[]\n) {\n const isProxied = isProxy(this) || cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n return (target as any)[key].apply(this, rawArgs);\n}\n","import { IterationArrayMethods } from \"../../constants/iterationMethods/array\";\nimport { IterationMapMethods } from \"../../constants/iterationMethods/map\";\nimport { IterationSetMethods } from \"../../constants/iterationMethods/set\";\nimport { createCallbackArgs } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\nimport { OnChangeHandler } from \"../../types/ref\";\n\ntype IterationKey<T> =\n T extends any[] ?\n IterationArrayMethods :\n T extends Map<any, any> ?\n IterationMapMethods :\n IterationSetMethods;\n\n/**\n * Handles iteration methods like `forEach`, `map`, `filter`, `some`, `every`, etc.\n * for Arrays, Maps, and Sets — ensuring their callbacks receive\n * proxied (reactive) elements.\n *\n * Behavior:\n * - Wraps the callback function so any values passed to it are automatically proxied.\n * - Calls the native iteration method with the wrapped callback and remaining args.\n * - Works with arrays, typed arrays, Maps, and Sets.\n */\nexport default function iterationHandler<T extends any[] | Map<any, any> | Set<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: IterationKey<T>,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const callbackArgs = isProxied ? createCallbackArgs(cache, onChange, ...args) : args;\n return (target as any)[key].apply(this, callbackArgs);\n}\n","import { IteratorMethods } from \"../../constants/iteratorMethods\";\nimport { createProxyTry, getRawTry, isMapCollection } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\nimport { OnChangeHandler } from \"../../types/ref\";\n\nexport function createProxiedIterator(\n iterator: Iterator<any>,\n ...args: Parameters<typeof iteratorHandler<\n any[] | Map<any, any> | Set<any>\n >>\n): Iterator<any> & Iterable<any> {\n const [thisTarget, cache, key, onChange] = args;\n const isTargetArray = Array.isArray(thisTarget);\n const isResultArray = key === 'entries' || (\n isMapCollection(thisTarget) && key === Symbol.iterator\n );\n const proxiedIterator = {\n next(this: any, value?: any) {\n const matchedIterator = this === proxiedIterator ? iterator : this;\n const rawIterator = getRawTry(matchedIterator);\n const result = iterator.next.call(rawIterator, value);\n if (!result.done) {\n if (isResultArray) {\n if (isTargetArray) {\n const [, item] = result.value;\n result.value[1] = createProxyTry(item, cache, onChange);\n } else {\n result.value = result.value.map((each: any) => createProxyTry(each, cache, onChange));\n }\n } else {\n result.value = createProxyTry(result.value, cache, onChange);\n }\n }\n return result;\n },\n [Symbol.iterator](this: any) {\n return getRawTry(this);\n }\n }\n return proxiedIterator;\n}\n\n/**\n * Wraps an iterator (from Array, Map, or Set) in a proxied version\n * so that values yielded during iteration remain reactive.\n *\n * Behavior:\n * - Calls the native iterator method (`Symbol.iterator`, `entries`, `values`, `keys`) on the target.\n * - Wraps each yielded value with `createProxyTry` so consumers get reactive objects.\n * - Preserves the iterable protocol (`[Symbol.iterator]()`) for `for..of` or spread operations.\n */\nexport default function iteratorHandler<T extends any[] | Map<any, any> | Set<any>>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: IteratorMethods,\n onChange: OnChangeHandler,\n) {\n const isProxied = cache.get(this);\n const iterator = target[key].call(this) as Iterator<any> & Iterable<any>;\n return isProxied ?\n createProxiedIterator(iterator, this, cache, key, onChange) :\n iterator;\n}\n","import { ProducerArrayMethods } from \"../../../constants/producerMethods/array\";\nimport { toProxiedItems, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles \"producer\" methods on arrays, such as `concat`, `slice`, `flat`, etc.\n *\n * Behavior:\n * - Converts proxied arguments to raw values to prevent double-proxy issues.\n * - Wraps returned arrays/items in proxies for reactive tracking.\n * - Original array is **not mutated** for immutable producer methods.\n */\nexport default function producerArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: ProducerArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n const value = target[key].apply(this, rawArgs);\n return isProxied ? toProxiedItems(value, cache, onChange) : value;\n}\n","import { PickingArrayMethods } from \"../../../constants/pickingMethods/array\";\nimport { createProxyTry, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles \"picking\" methods on arrays, currently only `at`.\n *\n * Behavior:\n * - Converts proxied arguments to raw values before calling the native method.\n * - Wraps the returned value in a proxy if it's a creatable object.\n * - Returns `undefined` or the proxied result.\n */\nexport default function pickingArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: PickingArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n const value = (target as any)[key].apply(this, rawArgs);\n return isProxied ? createProxyTry(value, cache, onChange) : value;\n}\n","import { ConflictArrayMethods } from \"../../../constants/conflictMethods/array\";\nimport { createCallbackArgs, createProxyTry, toProxiedItems, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles array methods that have multiple behaviors (iteration, mutation, picking, or producing arrays)\n * in reactive proxied arrays. These \"conflict methods\" include:\n * \n * - filter, toSorted : iteration + producer → return new proxied array\n * - find, findLast : iteration + picking → return single proxied item\n * - sort : iteration + mutation → mutates in place, triggers onChange\n * - pop, shift : mutation + picking → remove item, return as proxied value\n * - splice : mutation + producer → remove/replace items, return removed items as proxied array\n * \n * This handler ensures that the returned values maintain reactivity and properly trigger the\n * onChange callback when mutations occur.\n */\nexport default function conflictArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: ConflictArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n let value: any;\n switch (key) {\n // iteration methods\n case \"filter\":\n case \"find\":\n case \"findLast\":\n case \"sort\":\n case \"toSorted\":\n const callbackArgs = proxy ? createCallbackArgs(cache, onChange, ...args) : args;\n value = (target as any)[key].apply(this, callbackArgs);\n switch (key) {\n // producer methods\n case \"filter\":\n case \"toSorted\":\n return proxy ? toProxiedItems(value, cache, onChange) : value;\n // picking methods\n case \"find\":\n case \"findLast\":\n return proxy ? createProxyTry(value, cache, onChange) : value;\n // mutation methods\n case \"sort\":\n proxy && onChange({\n target: proxy,\n action: 'sort',\n key: undefined,\n value: args,\n prevValue: undefined\n });\n return proxy ?? this;\n }\n // mutation methods\n case \"pop\":\n case \"shift\":\n case \"splice\":\n const rawArgs = proxy ? toRawArgs(args) : args;\n value = (target as any)[key].apply(this, rawArgs);\n proxy && onChange({\n target: proxy,\n action: key,\n key: undefined,\n value: args,\n prevValue: undefined\n });\n switch (key) {\n // picking methods\n case \"pop\":\n case \"shift\":\n return proxy ? createProxyTry(value, cache, onChange, false) : value;\n // producer methods\n case \"splice\":\n return proxy ? toProxiedItems(value, cache, onChange) : value;\n }\n }\n}\n","import lookupArrayHandler from \"./handlers/array/lookupHandler\";\nimport mutationArrayHandler from \"./handlers/array/mutateHandler\";\nimport addHandler from \"./handlers/collection/addHandler\";\nimport deleteHandler from \"./handlers/collection/deleteHandler\";\nimport getHandler from \"./handlers/collection/getHandler\";\nimport hasHandler from \"./handlers/collection/hasHandler\";\nimport setHandler from \"./handlers/collection/setHandler\";\nimport clearHandler from \"./handlers/collection/clearHandler\";\nimport defaultHandler from \"./handlers/defaultHandler\";\nimport iterationHandler from \"./handlers/iterationHandler\";\nimport iteratorHandler from \"./handlers/iteratorHandler\";\nimport producerArrayHandler from \"./handlers/array/producerHandler\";\nimport pickingArrayHandler from \"./handlers/array/pickingHandler\";\nimport conflictArrayHandler from \"./handlers/array/conflictHandler\";\nimport { checkCache, getRawTry, isPlainObject } from \"./utils\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\nfunction passThis<\n P extends ([target: any, cache: CacheProxy, ...args: any[]]),\n T extends ((...params: P) => any),\n>(\n handler: T,\n ...params: P\n) {\n return function (this: any, ...args: any[]) {\n const [target, cache] = params;\n let thisArg: any;\n if (isPlainObject(target)) {\n thisArg = this;\n } else {\n thisArg = getRawTry(this);\n }\n checkCache(this, cache);\n return handler.apply(thisArg, params.concat(args) as P);\n }\n}\n\n/**\n * Packs and binds all handler functions with shared context.\n *\n * Each handler receives the `target`, `key`, `cache`, and `onChange` references,\n * ensuring consistent behavior across mutation, lookup, and iteration operations.\n *\n * @param target The raw target object being proxied.\n * @param key The property key currently being accessed.\n * @param cache WeakMap used for proxy–raw mapping to maintain identity.\n * @param onChange Callback invoked when a reactive change occurs.\n * @returns An object containing all pre-bound handler functions.\n */\nexport default function packHandlers(\n target: any,\n key: any,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n) {\n return {\n conflictArrayHandler: passThis(conflictArrayHandler, target, cache, key, onChange),\n mutationArrayHandler: passThis(mutationArrayHandler, target, cache, key, onChange),\n producerArrayHandler: passThis(producerArrayHandler, target, cache, key, onChange),\n iterationHandler: passThis(iterationHandler, target, cache, key, onChange),\n iteratorHandler: passThis(iteratorHandler, target, cache, key, onChange),\n lookupArrayHandler: passThis(lookupArrayHandler, target, cache, key),\n pickingArrayHandler: passThis(pickingArrayHandler, target, cache, key, onChange),\n getHandler: passThis(getHandler, target, cache, onChange),\n setHandler: passThis(setHandler, target, cache, onChange),\n addHandler: passThis(addHandler, target, cache, onChange),\n hasHandler: passThis(hasHandler, target, cache),\n deleteHandler: passThis(deleteHandler, target, cache, onChange),\n clearHandler: passThis(clearHandler, target, cache, onChange),\n defaultHandler: passThis(defaultHandler, target, cache, key),\n }\n}\n","import Keys from \"../constants/keys\";\nimport Symbols from \"../constants/symbols\";\nimport MutationArrayMethods from \"../constants/mutationMethods/array\";\nimport ProducerArrayMethods from \"../constants/producerMethods/array\";\nimport IterationArrayMethods from \"../constants/iterationMethods/array\";\nimport IteratorMethods from \"../constants/iteratorMethods\";\nimport LookupArrayMethods from \"../constants/lookupMethods/array\";\nimport PickingArrayMethods from \"../constants/pickingMethods/array\";\nimport ConflictArrayMethods from \"../constants/conflictMethods/array\";\nimport MutationTypedArrayMethods from \"../constants/mutationMethods/typedArray\";\nimport IterationMapMethods from \"../constants/iterationMethods/map\";\nimport IterationSetMethods from \"../constants/iterationMethods/set\";\nimport packHandlers from \"./packHandlers\";\nimport {\n isArray,\n isProxy,\n isMapCollection,\n isSetCollection,\n isCollection,\n isForbiddenKey,\n isTypedArray,\n isStrongCollection\n} from \"./utils\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\n/**\n * Recursively creates a reactive Proxy around an object, array, or collection.\n *\n * Features:\n * - Reuses cached proxies to maintain reference consistency.\n * - Automatically packs specialized handlers for arrays, maps, and sets.\n * - Triggers `onChange` when properties or collections are mutated.\n * - Safely skips forbidden or internal keys (like Symbols.RawObject).\n *\n * @param content Target object or collection to proxy.\n * @param cache WeakMap used to store raw-to-proxy mappings for identity preservation.\n * @param onChange Callback triggered when reactive mutations occur.\n * @param saveProxy Whether to store the proxy in cache (defaults to true).\n * @returns A reactive Proxy wrapping the original content.\n */\nexport default function createProxy<T extends object>(\n content: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n saveProxy?: boolean,\n) {\n if (isProxy(content)) return content;\n const cachedProxy = cache.get(content);\n if (cachedProxy) return cachedProxy;\n\n let fromSetTrap = false;\n const proxy = new Proxy(content, {\n get(target: any, key: any, receiver) {\n if (key === Symbols.IsProxy) return true;\n if (key === Symbols.RawObject) return content;\n let value: any;\n try { value = Reflect.get(target, key, receiver); }\n catch { value = Reflect.get(target, key); }\n if (\n !(isForbiddenKey(key) || value === undefined || value === null) &&\n (\n isArray(value) ||\n typeof value === 'object' ||\n typeof value === 'function'\n )\n ) {\n if (isArray(value) || typeof value === 'object') {\n return createProxy(value, cache, onChange);\n }\n const handlers = packHandlers(target, key, cache, onChange);\n if (Array.isArray(target)) {\n if (ConflictArrayMethods.has(key)) return handlers.conflictArrayHandler;\n if (MutationArrayMethods.has(key)) return handlers.mutationArrayHandler;\n if (ProducerArrayMethods.has(key)) return handlers.producerArrayHandler;\n if (IterationArrayMethods.has(key)) return handlers.iterationHandler;\n if (IteratorMethods.has(key)) return handlers.iteratorHandler;\n if (LookupArrayMethods.has(key)) return handlers.lookupArrayHandler;\n if (PickingArrayMethods.has(key)) return handlers.pickingArrayHandler;\n }\n if (isTypedArray(target) && MutationTypedArrayMethods.has(key)) {\n return handlers.mutationArrayHandler;\n }\n if (isMapCollection(target)) {\n if (key === Keys.Get) return handlers.getHandler;\n if (key === Keys.Set) return handlers.setHandler;\n }\n if (isSetCollection(target) && key === Keys.Add) {\n return handlers.addHandler;\n }\n if (\n (target instanceof Map && IterationMapMethods.has(key)) ||\n (target instanceof Set && IterationSetMethods.has(key))\n ) {\n return handlers.iterationHandler;\n }\n if (isStrongCollection(target)) {\n if (key === Keys.Clear) return handlers.clearHandler;\n if (IteratorMethods.has(key)) return handlers.iteratorHandler;\n }\n if (isCollection(target)) {\n if (key === Keys.Has) return handlers.hasHandler;\n if (key === Keys.Delete) return handlers.deleteHandler;\n }\n return handlers.defaultHandler;\n }\n return value;\n },\n set(target, key, newValue, receiver) {\n if (isForbiddenKey(key)) return true;\n const prevValue = target[key];\n if (!Object.is(prevValue, newValue)) {\n fromSetTrap = true;\n const updated = Reflect.set(target, key, newValue, receiver);\n fromSetTrap = false;\n if (updated) {\n onChange({\n target: proxy,\n action: 'set',\n key,\n value: newValue,\n prevValue,\n });\n }\n return updated;\n };\n return true;\n },\n deleteProperty(target, key) {\n if (isForbiddenKey(key)) return true;\n const hasKey = Object.prototype.hasOwnProperty.call(target, key);\n if (hasKey) {\n const prevValue = target[key];\n const deleted = Reflect.deleteProperty(target, key);\n if (deleted) {\n onChange({\n target: proxy,\n action: 'delete',\n key,\n value: undefined,\n prevValue\n });\n }\n return deleted;\n };\n return true;\n },\n defineProperty(target, key, attributes) {\n if (isForbiddenKey(key)) return true;\n const prevValue = target[key];\n const defined = Reflect.defineProperty(target, key, attributes);\n if (!fromSetTrap && defined) {\n const newValue = attributes.value;\n if (!Object.is(prevValue, newValue)) {\n onChange({\n target: proxy,\n action: 'define',\n key,\n value: newValue,\n prevValue,\n });\n }\n }\n return defined;\n },\n setPrototypeOf() {\n return true;\n },\n });\n if (saveProxy ?? true) {\n cache.set(content, proxy);\n }\n return proxy;\n}\n","import createProxy from './utils/createProxy';\nimport { OnChangeHandler, Ref, RefOptions } from './types/ref';\n\n/**\n * Creates a reactive reference object.\n *\n * - `value`: the reactive value.\n * - `onchange`: callback triggered on every change.\n * - `options.cache`: optional WeakMap for shared proxy identity.\n *\n * Example:\n * ```ts\n * const count = ref(0, (e) => console.log(e.value));\n * count.value = 5; // triggers onchange\n * ```\n *\n * @param initial Initial value.\n * @param onchange Callback that receives ChangeEvent on every change.\n * @param options Optional RefOptions (only `cache` is used by ref).\n * @returns A reactive Ref object.\n */\nfunction ref<T>(initial: T, onchange: OnChangeHandler, options?: RefOptions): Ref<T> {\n const cache = options?.cache ?? new WeakMap();\n return createProxy(Object.preventExtensions({ value: initial }), cache, onchange);\n}\n\nexport default ref;\n"],"names":["Keys","Get","Set","Add","Has","Delete","Clear","ForbiddenKeys","Symbols","Symbol","MutationArrayMethods","ProducerArrayMethods","IterationArrayMethods","IteratorMethods","iterator","LookupArrayMethods","PickingArrayMethods","ConflictArrayMethods","MutationTypedArrayMethods","IterationMapMethods","IterationSetMethods","isForbiddenKey","key","has","isObject","value","isTypedArray","ArrayBuffer","isView","DataView","isArray","Array","isProxy","isMapCollection","target","Map","WeakMap","isSetCollection","WeakSet","getRaw","proxy","getRawTry","createProxyTry","args","createProxy","toRawArgs","map","each","toProxiedItems","array","cache","onChange","createCallbackArgs","length","callbackFn","restArgs","callback","callbackArgs","proxiedArgs","arg","apply","this","lookupArrayHandler","rawArgs","mutationArrayHandler","get","action","undefined","prevValue","addHandler","rawValue","call","add","deleteHandler","rawKey","getWeakValue","deleted","delete","getHandler","isProxied","hasHandler","setHandler","Object","is","set","clearHandler","size","clear","defaultHandler","iterationHandler","iteratorHandler","thisTarget","isTargetArray","isResultArray","proxiedIterator","next","rawIterator","result","done","item","createProxiedIterator","producerArrayHandler","pickingArrayHandler","conflictArrayHandler","passThis","handler","params","thisArg","prototype","toString","getPrototypeOf","constructor","checkCache","concat","content","saveProxy","cachedProxy","fromSetTrap","Proxy","receiver","Reflect","handlers","packHandlers","isStrongCollection","isCollection","newValue","updated","deleteProperty","hasOwnProperty","defineProperty","attributes","defined","setPrototypeOf","initial","onchange","options","preventExtensions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs.cjs","sources":["../src/constants/keys.ts","../src/constants/symbols.ts","../src/constants/mutationMethods/array.ts","../src/constants/producerMethods/array.ts","../src/constants/iterationMethods/array.ts","../src/constants/iteratorMethods/index.ts","../src/constants/lookupMethods/array.ts","../src/constants/pickingMethods/array.ts","../src/constants/conflictMethods/array.ts","../src/constants/mutationMethods/typedArray.ts","../src/constants/iterationMethods/map.ts","../src/constants/iterationMethods/set.ts","../src/utils/utils.ts","../src/utils/handlers/array/lookupHandler.ts","../src/utils/handlers/array/mutateHandler.ts","../src/utils/handlers/collection/addHandler.ts","../src/utils/handlers/collection/deleteHandler.ts","../src/utils/handlers/collection/getHandler.ts","../src/utils/handlers/collection/hasHandler.ts","../src/utils/handlers/collection/setHandler.ts","../src/utils/handlers/collection/clearHandler.ts","../src/utils/handlers/defaultHandler.ts","../src/utils/handlers/iterationHandler.ts","../src/utils/handlers/iteratorHandler.ts","../src/utils/handlers/array/producerHandler.ts","../src/utils/handlers/array/pickingHandler.ts","../src/utils/handlers/array/conflictHandler.ts","../src/utils/packHandlers.ts","../src/utils/createProxy.ts","../src/ref.ts"],"sourcesContent":["const Keys = {\n Get: 'get',\n Set: 'set',\n Add: 'add',\n Has: 'has',\n Delete: 'delete',\n Clear: 'clear',\n ForbiddenKeys: new Set(['__proto__', 'constructor', 'prototype']),\n} as const;\n\nexport default Keys;\n","const Symbols = {\n IsProxy: Symbol('is_proxy'),\n RawObject: Symbol('raw_object'),\n} as const;\n\nexport default Symbols;\n","const MutationArrayMethods = new Set([\n 'copyWithin',\n 'fill',\n 'push',\n 'reverse',\n 'unshift',\n] as const);\n\nexport type MutationArrayMethods = typeof MutationArrayMethods extends Set<infer T> ? T: never;\nexport default MutationArrayMethods;","const ProducerArrayMethods = new Set([\n 'concat',\n 'flat',\n 'slice',\n 'toReversed',\n 'toSpliced',\n 'with',\n] as const);\n\nexport type ProducerArrayMethods = typeof ProducerArrayMethods extends Set<infer T> ? T: never;\nexport default ProducerArrayMethods;\n","const IterationArrayMethods = new Set([\n 'every',\n 'findIndex',\n 'findLastIndex',\n 'flatMap',\n 'forEach',\n 'map',\n 'reduce',\n 'reduceRight',\n 'some',\n] as const);\n\nexport type IterationArrayMethods = typeof IterationArrayMethods extends Set<infer T> ? T : never;\nexport default IterationArrayMethods;\n","const IteratorMethods = new Set([\n 'entries',\n 'keys',\n 'values',\n Symbol.iterator,\n] as const);\n\nexport type IteratorMethods = typeof IteratorMethods extends Set<infer T> ? T: never;\nexport default IteratorMethods;\n","const LookupArrayMethods = new Set([\n 'includes',\n 'indexOf',\n 'lastIndexOf',\n] as const);\n\nexport type LookupArrayMethods = typeof LookupArrayMethods extends Set<infer T> ? T: never;\nexport default LookupArrayMethods;\n","const PickingArrayMethods = new Set(['at'] as const);\n\nexport type PickingArrayMethods = typeof PickingArrayMethods extends Set<infer T> ? T: never;\nexport default PickingArrayMethods;\n","/**\n * Array methods that exhibit multiple reactive behaviors, potentially causing proxy conflicts.\n *\n * These methods can:\n * - both iterate and produce new arrays (`filter`, `toSorted`, `splice`)\n * - iterate while selecting specific elements (`find`, `findLast`)\n * - mutate the array while returning removed elements (`pop`, `shift`)\n * - both mutate and iterate (`sort`)\n *\n * Use these with the raw target rather than the proxied array to avoid inconsistent reactivity.\n */\nconst ConflictArrayMethods = new Set([\n 'filter', // iteration + producer\n 'find', // iteration + picking\n 'findLast', // iteration + picking\n 'pop', // mutation + picking\n 'shift', // mutation + picking\n 'sort', // iteration + mutation\n 'splice', // mutation + producer\n 'toSorted', // iteration + producer\n] as const);\n\nexport type ConflictArrayMethods = typeof ConflictArrayMethods extends Set<infer T> ? T : never;\nexport default ConflictArrayMethods;\n","const MutationTypedArrayMethods = new Set([\n 'copyWithin',\n 'fill',\n 'reverse',\n 'set',\n 'sort',\n] as const);\n\nexport type MutationTypedArrayMethods = typeof MutationTypedArrayMethods extends Set<infer T> ? T: never;\nexport default MutationTypedArrayMethods;\n","const IterationMapMethods = new Set(['forEach'] as const);\n\nexport type IterationMapMethods = typeof IterationMapMethods extends Set<infer T> ? T : never;\nexport default IterationMapMethods;\n","const IterationSetMethods = new Set(['forEach'] as const);\n\nexport type IterationSetMethods = typeof IterationSetMethods extends Set<infer T> ? T : never;\nexport default IterationSetMethods;\n","import Keys from \"../constants/keys\";\nimport Symbols from \"../constants/symbols\";\nimport createProxy from \"./createProxy\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\nexport function isForbiddenKey(key: any) {\n return Keys.ForbiddenKeys.has(key);\n}\n\nexport function isObject(value: any) {\n return typeof value === 'object' && value !== null;\n}\n\nexport function isTypedArray(value: any) {\n return ArrayBuffer.isView(value) && !(value instanceof DataView);\n}\n\nexport function isArray(value: any): boolean {\n return Array.isArray(value) || isTypedArray(value);\n}\n\nexport function isProxiable(value: any) {\n return isObject(value) || isArray(value);\n}\n\nexport function isProxy(value: object): boolean {\n return (value as any)[Symbols.IsProxy] ?? false;\n}\n\nexport function isProxyTry(value: any) {\n return isProxiable(value) && isProxy(value);\n}\n\nexport function isMapCollection(target: object) {\n return target instanceof Map || target instanceof WeakMap;\n}\n\nexport function isSetCollection(target: object) {\n return target instanceof Set || target instanceof WeakSet;\n}\n\nexport function isStrongCollection(target: object) {\n return target instanceof Map || target instanceof Set;\n}\n\nexport function isCollection(target: object) {\n return isMapCollection(target) || isSetCollection(target);\n}\n\nexport function getRaw(proxy: object): object {\n return (proxy as any)[Symbols.RawObject];\n}\n\nexport function getWeakValue(target: WeakMap<any, any> | WeakSet<any>, key: any) {\n if (target instanceof WeakMap) {\n return target.get(key);\n } else if (target.has(key)) {\n return key;\n }\n return undefined;\n}\n\nexport function getRawTry(value: any) {\n if (isProxyTry(value)) {\n return getRaw(value);\n }\n return value;\n}\n\nexport function createProxyTry<T extends object>(\n ...args: Parameters<typeof createProxy<T>>\n) {\n const [value] = args;\n if (isProxiable(value)) {\n return createProxy(...args);\n }\n return value;\n}\n\nexport function toRawArgs(args: any[]) {\n return args.map(each => getRawTry(each));\n}\n\nexport function toProxiedItems(array: any[], cache: CacheProxy, onChange: OnChangeHandler) {\n return array.map(each => createProxyTry(each, cache, onChange, false));\n}\n\n/**\n * Wraps callback functions passed to array/map/set iteration methods\n * to ensure reactive proxy values are passed to the original callback.\n */\nexport function createCallbackArgs(cache: CacheProxy, onChange: OnChangeHandler, ...args: any[]) {\n if (args.length > 0) {\n const [callbackFn, ...restArgs] = args;\n if (typeof callbackFn === 'function') {\n function callback(this: any, ...callbackArgs: any[]) {\n const proxiedArgs = callbackArgs.map(arg => createProxyTry(arg, cache, onChange));\n return callbackFn.apply(this, proxiedArgs);\n }\n return [callback, ...restArgs];\n }\n }\n return args;\n}\n\nexport function checkCache(value: any, cache: CacheProxy) {\n if (isProxyTry(value)) {\n cache.set(getRaw(value), value);\n }\n}\n\nexport function isPlainObject(value: any): boolean {\n if (Object.prototype.toString.call(value) !== '[object Object]') return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || !!value.constructor;\n}\n","import { LookupArrayMethods } from \"../../../constants/lookupMethods/array\";\nimport { toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Handles \"lookup\" methods on arrays such as `includes`, `indexOf`, and `lastIndexOf`.\n * Converts any proxied arguments to raw values before calling the native method.\n */\nexport default function lookupArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: LookupArrayMethods,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n return (target as any)[key].apply(this, rawArgs);\n}\n","import { MutationArrayMethods } from \"../../../constants/mutationMethods/array\";\nimport { MutationTypedArrayMethods } from \"../../../constants/mutationMethods/typedArray\";\nimport { toRawArgs } from \"../../utils\";\nimport { TypedArray } from \"../../../types/types\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\ntype MutationKey<T> = T extends any[] ?\n MutationArrayMethods :\n MutationTypedArrayMethods;\n\n/**\n * Handles mutation methods on arrays or typed arrays.\n *\n * Supports `copyWithin`, `fill`, `push`, etc.\n * - Converts proxied arguments to raw values.\n * - Triggers `onChange` after mutation.\n */\nexport default function mutationArrayHandler<T extends any[] | TypedArray>(\n // expect raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: MutationKey<T>,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const rawArgs = proxy ? toRawArgs(args) : args;\n const value = (target as any)[key].apply(this, rawArgs);\n proxy && onChange({\n target: proxy,\n action: key,\n key: undefined,\n value: args,\n prevValue: undefined\n });\n return value;\n}\n","import { getRawTry } from \"../../utils\";\nimport { OnChangeHandler } from \"../../../types/ref\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Handles adding a value to a Set or WeakSet.\n *\n * Behavior:\n * - Converts proxied values to raw objects to avoid double-proxy issues.\n * - Only triggers `onChange` if the value was not already present in the Set/WeakSet.\n * - Returns the proxy itself for fluent use.\n */\nexport default function addHandler<T extends Set<any> | WeakSet<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [value] = args;\n const rawValue = proxy ? getRawTry(value) : value;\n const hasValue = target.has.call(this, rawValue);\n if (!hasValue) {\n target.add.call(this, rawValue);\n proxy && onChange({\n target: proxy,\n action: 'add',\n key: value,\n value,\n prevValue: undefined,\n });\n }\n return proxy ?? this;\n}\n","import { getWeakValue, getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles deleting a key/value from Map, Set, WeakMap, or WeakSet.\n *\n * Behavior:\n * - Converts proxied keys to their raw versions to maintain correct identity.\n * - For Map/WeakMap, also retrieves the previous value via `getWeakValue`.\n * - Removes any cached proxies for the deleted key and, if applicable, the value.\n * - Triggers `onChange` only if deletion actually occurs.\n */\nexport default function deleteHandler<T extends\n | Map<any, any>\n | Set<any>\n | WeakMap<any, any>\n | WeakSet<any>\n>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [key] = args;\n const rawKey = proxy ? getRawTry(key) : key;\n const prevValue = getWeakValue(this, rawKey);\n const deleted = target.delete.call(this, rawKey);\n if (deleted && proxy) {\n onChange({\n target: proxy,\n action: 'delete',\n key,\n value: undefined,\n prevValue\n });\n }\n return deleted;\n}\n","import { createProxyTry, getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles getting a value from a Map or WeakMap.\n *\n * Behavior:\n * - Converts a proxied key to its raw value to correctly access the Map/WeakMap.\n * - If the retrieved value is creatable (object/array), wraps it in a proxy to maintain reactivity.\n * - Does not modify the original collection.\n */\nexport default function getHandler<T extends Map<any, any> | WeakMap<any, any>>(\n // expects raw object,\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const [key] = args;\n const rawKey = isProxied ? getRawTry(key) : key;\n const value = target.get.call(this, rawKey);\n return isProxied ? createProxyTry(value, cache, onChange) : value;\n}\n","import { getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Checks whether a key exists in a Map, Set, WeakMap, or WeakSet.\n *\n * Behavior:\n * - Converts a proxied key to its raw value to ensure proper lookup.\n * - Works with all supported collections: Map, Set, WeakMap, WeakSet.\n * - Returns a boolean indicating presence.\n */\nexport default function hasHandler<T extends\n | Map<any, any>\n | Set<any>\n | WeakMap<any, any>\n | WeakSet<any>\n>(\n this: T,\n target: T,\n cache: CacheProxy,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const [key] = args;\n const rawKey = isProxied ? getRawTry(key) : key;\n return target.has.call(this, rawKey);\n}\n","import { getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Sets a key-value pair in a Map or WeakMap with reactive tracking.\n *\n * Behavior:\n * - Converts proxied key and value to their raw counterparts.\n * - Only triggers `onChange` if the new value differs from the previous value.\n * - Removes any cached proxy associated with the previous value to prevent memory leaks.\n * - Returns the proxy for chaining.\n */\nexport default function setHandler<T extends Map<any, any> | WeakMap<any, any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [key, value] = args;\n const rawKey = proxy ? getRawTry(key) : key;\n const rawValue = proxy ? getRawTry(value) : value;\n const prevValue = target.get.call(this, rawKey);\n if (!Object.is(rawValue, prevValue)) {\n target.set.call(this, rawKey, rawValue);\n proxy && onChange({\n target: proxy,\n action: 'set',\n key,\n value,\n prevValue,\n });\n }\n return proxy ?? this;\n}\n","import { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles the `clear()` method for reactive Map/Set.\n *\n * - Clears the collection.\n * - Removes all entries from the proxy cache.\n * - Triggers the `onChange` callback if the collection was non-empty.\n */\nexport default function clearHandler<T extends Map<any, any> | Set<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n) {\n if (this.size > 0) {\n const proxy = cache.get(this);\n target.clear.call(this);\n proxy && onChange({\n target: proxy,\n action: 'clear',\n key: undefined,\n value: undefined,\n prevValue: undefined,\n });\n }\n}\n","import { isProxy, toRawArgs } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\n\n/**\n * Default handler for property or method access when no specialized\n * reactive handling is applied.\n *\n * Behavior:\n * - Calls the original method or accesses the property directly.\n * - Returns the result as-is without creating a reactive proxy.\n * - Suitable for native methods or properties where reactive wrapping\n * is not needed.\n */\nexport default function defaultHandler<T extends object>(\n // expects both raw and proxy object\n this: T,\n target: T,\n cache: CacheProxy,\n key: any,\n ...args: any[]\n) {\n const isProxied = isProxy(this) || cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n return (target as any)[key].apply(this, rawArgs);\n}\n","import { IterationArrayMethods } from \"../../constants/iterationMethods/array\";\nimport { IterationMapMethods } from \"../../constants/iterationMethods/map\";\nimport { IterationSetMethods } from \"../../constants/iterationMethods/set\";\nimport { createCallbackArgs } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\nimport { OnChangeHandler } from \"../../types/ref\";\n\ntype IterationKey<T> =\n T extends any[] ?\n IterationArrayMethods :\n T extends Map<any, any> ?\n IterationMapMethods :\n IterationSetMethods;\n\n/**\n * Handles iteration methods like `forEach`, `map`, `filter`, `some`, `every`, etc.\n * for Arrays, Maps, and Sets — ensuring their callbacks receive\n * proxied (reactive) elements.\n *\n * Behavior:\n * - Wraps the callback function so any values passed to it are automatically proxied.\n * - Calls the native iteration method with the wrapped callback and remaining args.\n * - Works with arrays, typed arrays, Maps, and Sets.\n */\nexport default function iterationHandler<T extends any[] | Map<any, any> | Set<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: IterationKey<T>,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const callbackArgs = isProxied ? createCallbackArgs(cache, onChange, ...args) : args;\n return (target as any)[key].apply(this, callbackArgs);\n}\n","import { IteratorMethods } from \"../../constants/iteratorMethods\";\nimport { createProxyTry, getRawTry, isMapCollection } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\nimport { OnChangeHandler } from \"../../types/ref\";\n\nexport function createProxiedIterator(\n iterator: Iterator<any>,\n ...args: Parameters<typeof iteratorHandler<\n any[] | Map<any, any> | Set<any>\n >>\n): Iterator<any> & Iterable<any> {\n const [thisTarget, cache, key, onChange] = args;\n const isTargetArray = Array.isArray(thisTarget);\n const isResultArray = key === 'entries' || (\n isMapCollection(thisTarget) && key === Symbol.iterator\n );\n const proxiedIterator = {\n next(this: any, value?: any) {\n const matchedIterator = this === proxiedIterator ? iterator : this;\n const rawIterator = getRawTry(matchedIterator);\n const result = iterator.next.call(rawIterator, value);\n if (!result.done) {\n if (isResultArray) {\n if (isTargetArray) {\n const [, item] = result.value;\n result.value[1] = createProxyTry(item, cache, onChange);\n } else {\n result.value = result.value.map((each: any) => createProxyTry(each, cache, onChange));\n }\n } else {\n result.value = createProxyTry(result.value, cache, onChange);\n }\n }\n return result;\n },\n [Symbol.iterator](this: any) {\n return getRawTry(this);\n }\n }\n return proxiedIterator;\n}\n\n/**\n * Wraps an iterator (from Array, Map, or Set) in a proxied version\n * so that values yielded during iteration remain reactive.\n *\n * Behavior:\n * - Calls the native iterator method (`Symbol.iterator`, `entries`, `values`, `keys`) on the target.\n * - Wraps each yielded value with `createProxyTry` so consumers get reactive objects.\n * - Preserves the iterable protocol (`[Symbol.iterator]()`) for `for..of` or spread operations.\n */\nexport default function iteratorHandler<T extends any[] | Map<any, any> | Set<any>>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: IteratorMethods,\n onChange: OnChangeHandler,\n) {\n const isProxied = cache.get(this);\n const iterator = target[key].call(this) as Iterator<any> & Iterable<any>;\n return isProxied ?\n createProxiedIterator(iterator, this, cache, key, onChange) :\n iterator;\n}\n","import { ProducerArrayMethods } from \"../../../constants/producerMethods/array\";\nimport { toProxiedItems, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles \"producer\" methods on arrays, such as `concat`, `slice`, `flat`, etc.\n *\n * Behavior:\n * - Converts proxied arguments to raw values to prevent double-proxy issues.\n * - Wraps returned arrays/items in proxies for reactive tracking.\n * - Original array is **not mutated** for immutable producer methods.\n */\nexport default function producerArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: ProducerArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n const value = target[key].apply(this, rawArgs);\n return isProxied ? toProxiedItems(value, cache, onChange) : value;\n}\n","import { PickingArrayMethods } from \"../../../constants/pickingMethods/array\";\nimport { createProxyTry, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles \"picking\" methods on arrays, currently only `at`.\n *\n * Behavior:\n * - Converts proxied arguments to raw values before calling the native method.\n * - Wraps the returned value in a proxy if it's a creatable object.\n * - Returns `undefined` or the proxied result.\n */\nexport default function pickingArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: PickingArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n const value = (target as any)[key].apply(this, rawArgs);\n return isProxied ? createProxyTry(value, cache, onChange) : value;\n}\n","import { ConflictArrayMethods } from \"../../../constants/conflictMethods/array\";\nimport { createCallbackArgs, createProxyTry, toProxiedItems, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles array methods that have multiple behaviors (iteration, mutation, picking, or producing arrays)\n * in reactive proxied arrays. These \"conflict methods\" include:\n * \n * - filter, toSorted : iteration + producer → return new proxied array\n * - find, findLast : iteration + picking → return single proxied item\n * - sort : iteration + mutation → mutates in place, triggers onChange\n * - pop, shift : mutation + picking → remove item, return as proxied value\n * - splice : mutation + producer → remove/replace items, return removed items as proxied array\n * \n * This handler ensures that the returned values maintain reactivity and properly trigger the\n * onChange callback when mutations occur.\n */\nexport default function conflictArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: ConflictArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n let value: any;\n switch (key) {\n // iteration methods\n case \"filter\":\n case \"find\":\n case \"findLast\":\n case \"sort\":\n case \"toSorted\":\n const callbackArgs = proxy ? createCallbackArgs(cache, onChange, ...args) : args;\n value = (target as any)[key].apply(this, callbackArgs);\n switch (key) {\n // producer methods\n case \"filter\":\n case \"toSorted\":\n return proxy ? toProxiedItems(value, cache, onChange) : value;\n // picking methods\n case \"find\":\n case \"findLast\":\n return proxy ? createProxyTry(value, cache, onChange) : value;\n // mutation methods\n case \"sort\":\n proxy && onChange({\n target: proxy,\n action: 'sort',\n key: undefined,\n value: args,\n prevValue: undefined\n });\n return proxy ?? this;\n }\n // mutation methods\n case \"pop\":\n case \"shift\":\n case \"splice\":\n const rawArgs = proxy ? toRawArgs(args) : args;\n value = (target as any)[key].apply(this, rawArgs);\n proxy && onChange({\n target: proxy,\n action: key,\n key: undefined,\n value: args,\n prevValue: undefined\n });\n switch (key) {\n // picking methods\n case \"pop\":\n case \"shift\":\n return proxy ? createProxyTry(value, cache, onChange, false) : value;\n // producer methods\n case \"splice\":\n return proxy ? toProxiedItems(value, cache, onChange) : value;\n }\n }\n}\n","import lookupArrayHandler from \"./handlers/array/lookupHandler\";\nimport mutationArrayHandler from \"./handlers/array/mutateHandler\";\nimport addHandler from \"./handlers/collection/addHandler\";\nimport deleteHandler from \"./handlers/collection/deleteHandler\";\nimport getHandler from \"./handlers/collection/getHandler\";\nimport hasHandler from \"./handlers/collection/hasHandler\";\nimport setHandler from \"./handlers/collection/setHandler\";\nimport clearHandler from \"./handlers/collection/clearHandler\";\nimport defaultHandler from \"./handlers/defaultHandler\";\nimport iterationHandler from \"./handlers/iterationHandler\";\nimport iteratorHandler from \"./handlers/iteratorHandler\";\nimport producerArrayHandler from \"./handlers/array/producerHandler\";\nimport pickingArrayHandler from \"./handlers/array/pickingHandler\";\nimport conflictArrayHandler from \"./handlers/array/conflictHandler\";\nimport { checkCache, getRawTry, isPlainObject } from \"./utils\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\nfunction passThis<\n P extends ([target: any, cache: CacheProxy, ...args: any[]]),\n T extends ((...params: P) => any),\n>(\n handler: T,\n ...params: P\n) {\n return function (this: any, ...args: any[]) {\n const [target, cache] = params;\n let thisArg: any;\n if (isPlainObject(target)) {\n thisArg = this;\n } else {\n thisArg = getRawTry(this);\n }\n checkCache(this, cache);\n return handler.apply(thisArg, params.concat(args) as P);\n }\n}\n\n/**\n * Packs and binds all handler functions with shared context.\n *\n * Each handler receives the `target`, `key`, `cache`, and `onChange` references,\n * ensuring consistent behavior across mutation, lookup, and iteration operations.\n *\n * @param target The raw target object being proxied.\n * @param key The property key currently being accessed.\n * @param cache WeakMap used for proxy–raw mapping to maintain identity.\n * @param onChange Callback invoked when a reactive change occurs.\n * @returns An object containing all pre-bound handler functions.\n */\nexport default function packHandlers(\n target: any,\n key: any,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n) {\n return {\n conflictArrayHandler: passThis(conflictArrayHandler, target, cache, key, onChange),\n mutationArrayHandler: passThis(mutationArrayHandler, target, cache, key, onChange),\n producerArrayHandler: passThis(producerArrayHandler, target, cache, key, onChange),\n iterationHandler: passThis(iterationHandler, target, cache, key, onChange),\n iteratorHandler: passThis(iteratorHandler, target, cache, key, onChange),\n lookupArrayHandler: passThis(lookupArrayHandler, target, cache, key),\n pickingArrayHandler: passThis(pickingArrayHandler, target, cache, key, onChange),\n getHandler: passThis(getHandler, target, cache, onChange),\n setHandler: passThis(setHandler, target, cache, onChange),\n addHandler: passThis(addHandler, target, cache, onChange),\n hasHandler: passThis(hasHandler, target, cache),\n deleteHandler: passThis(deleteHandler, target, cache, onChange),\n clearHandler: passThis(clearHandler, target, cache, onChange),\n defaultHandler: passThis(defaultHandler, target, cache, key),\n }\n}\n","import Keys from \"../constants/keys\";\nimport Symbols from \"../constants/symbols\";\nimport MutationArrayMethods from \"../constants/mutationMethods/array\";\nimport ProducerArrayMethods from \"../constants/producerMethods/array\";\nimport IterationArrayMethods from \"../constants/iterationMethods/array\";\nimport IteratorMethods from \"../constants/iteratorMethods\";\nimport LookupArrayMethods from \"../constants/lookupMethods/array\";\nimport PickingArrayMethods from \"../constants/pickingMethods/array\";\nimport ConflictArrayMethods from \"../constants/conflictMethods/array\";\nimport MutationTypedArrayMethods from \"../constants/mutationMethods/typedArray\";\nimport IterationMapMethods from \"../constants/iterationMethods/map\";\nimport IterationSetMethods from \"../constants/iterationMethods/set\";\nimport packHandlers from \"./packHandlers\";\nimport {\n isProxy,\n isMapCollection,\n isSetCollection,\n isCollection,\n isForbiddenKey,\n isTypedArray,\n isStrongCollection,\n isProxiable\n} from \"./utils\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\n/**\n * Recursively creates a reactive Proxy around an object, array, or collection.\n *\n * Features:\n * - Reuses cached proxies to maintain reference consistency.\n * - Automatically packs specialized handlers for arrays, maps, and sets.\n * - Triggers `onChange` when properties or collections are mutated.\n * - Safely skips forbidden or internal keys (like Symbols.RawObject).\n *\n * @param content Target object or collection to proxy.\n * @param cache WeakMap used to store raw-to-proxy mappings for identity preservation.\n * @param onChange Callback triggered when reactive mutations occur.\n * @param saveProxy Whether to store the proxy in cache (defaults to true).\n * @returns A reactive Proxy wrapping the original content.\n */\nexport default function createProxy<T extends object>(\n content: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n saveProxy?: boolean,\n) {\n if (isProxy(content)) return content;\n const cachedProxy = cache.get(content);\n if (cachedProxy) return cachedProxy;\n\n let fromSetTrap = false;\n const proxy = new Proxy(content, {\n get(target: any, key: any, receiver) {\n if (key === Symbols.IsProxy) return true;\n if (key === Symbols.RawObject) return content;\n let value: any;\n try { value = Reflect.get(target, key, receiver); }\n catch { value = Reflect.get(target, key); }\n if (!(isForbiddenKey(key) || value === undefined)) {\n if (isProxiable(value)) {\n return createProxy(value, cache, onChange);\n } else if (typeof value === 'function') {\n const handlers = packHandlers(target, key, cache, onChange);\n if (Array.isArray(target)) {\n if (ConflictArrayMethods.has(key)) return handlers.conflictArrayHandler;\n if (MutationArrayMethods.has(key)) return handlers.mutationArrayHandler;\n if (ProducerArrayMethods.has(key)) return handlers.producerArrayHandler;\n if (IterationArrayMethods.has(key)) return handlers.iterationHandler;\n if (IteratorMethods.has(key)) return handlers.iteratorHandler;\n if (LookupArrayMethods.has(key)) return handlers.lookupArrayHandler;\n if (PickingArrayMethods.has(key)) return handlers.pickingArrayHandler;\n }\n if (isTypedArray(target) && MutationTypedArrayMethods.has(key)) {\n return handlers.mutationArrayHandler;\n }\n if (isMapCollection(target)) {\n if (key === Keys.Get) return handlers.getHandler;\n if (key === Keys.Set) return handlers.setHandler;\n }\n if (isSetCollection(target) && key === Keys.Add) {\n return handlers.addHandler;\n }\n if (\n (target instanceof Map && IterationMapMethods.has(key)) ||\n (target instanceof Set && IterationSetMethods.has(key))\n ) {\n return handlers.iterationHandler;\n }\n if (isStrongCollection(target)) {\n if (key === Keys.Clear) return handlers.clearHandler;\n if (IteratorMethods.has(key)) return handlers.iteratorHandler;\n }\n if (isCollection(target)) {\n if (key === Keys.Has) return handlers.hasHandler;\n if (key === Keys.Delete) return handlers.deleteHandler;\n }\n return handlers.defaultHandler;\n }\n }\n return value;\n },\n set(target, key, newValue, receiver) {\n if (isForbiddenKey(key)) return true;\n const prevValue = target[key];\n if (!Object.is(prevValue, newValue)) {\n fromSetTrap = true;\n const updated = Reflect.set(target, key, newValue, receiver);\n fromSetTrap = false;\n if (updated) {\n onChange({\n target: proxy,\n action: 'set',\n key,\n value: newValue,\n prevValue,\n });\n }\n return updated;\n };\n return true;\n },\n deleteProperty(target, key) {\n if (isForbiddenKey(key)) return true;\n const hasKey = Object.prototype.hasOwnProperty.call(target, key);\n if (hasKey) {\n const prevValue = target[key];\n const deleted = Reflect.deleteProperty(target, key);\n if (deleted) {\n onChange({\n target: proxy,\n action: 'delete',\n key,\n value: undefined,\n prevValue\n });\n }\n return deleted;\n };\n return true;\n },\n defineProperty(target, key, attributes) {\n if (isForbiddenKey(key)) return true;\n const prevValue = target[key];\n const defined = Reflect.defineProperty(target, key, attributes);\n if (!fromSetTrap && defined) {\n const newValue = attributes.value;\n if (!Object.is(prevValue, newValue)) {\n onChange({\n target: proxy,\n action: 'define',\n key,\n value: newValue,\n prevValue,\n });\n }\n }\n return defined;\n },\n setPrototypeOf() {\n return true;\n },\n });\n if (saveProxy ?? true) {\n cache.set(content, proxy);\n }\n return proxy;\n}\n","import createProxy from './utils/createProxy';\nimport { OnChangeHandler, Ref, RefOptions } from './types/ref';\n\n/**\n * Creates a reactive reference object.\n *\n * - `value`: the reactive value.\n * - `onchange`: callback triggered on every change.\n * - `options.cache`: optional WeakMap for shared proxy identity.\n *\n * Example:\n * ```ts\n * const count = ref(0, (e) => console.log(e.value));\n * count.value = 5; // triggers onchange\n * ```\n *\n * @param initial Initial value.\n * @param onchange Callback that receives ChangeEvent on every change.\n * @param options Optional RefOptions (only `cache` is used by ref).\n * @returns A reactive Ref object.\n */\nfunction ref<T>(initial: T, onchange: OnChangeHandler, options?: RefOptions): Ref<T> {\n const cache = options?.cache ?? new WeakMap();\n return createProxy(Object.preventExtensions({ value: initial }), cache, onchange);\n}\n\nexport default ref;\n"],"names":["Keys","Get","Set","Add","Has","Delete","Clear","ForbiddenKeys","Symbols","Symbol","MutationArrayMethods","ProducerArrayMethods","IterationArrayMethods","IteratorMethods","iterator","LookupArrayMethods","PickingArrayMethods","ConflictArrayMethods","MutationTypedArrayMethods","IterationMapMethods","IterationSetMethods","isForbiddenKey","key","has","isTypedArray","value","ArrayBuffer","isView","DataView","isProxiable","isObject","Array","isArray","isProxy","isProxyTry","isMapCollection","target","Map","WeakMap","isSetCollection","WeakSet","getRaw","proxy","getRawTry","createProxyTry","args","createProxy","toRawArgs","map","each","toProxiedItems","array","cache","onChange","createCallbackArgs","length","callbackFn","restArgs","callback","callbackArgs","proxiedArgs","arg","apply","this","lookupArrayHandler","rawArgs","mutationArrayHandler","get","action","undefined","prevValue","addHandler","rawValue","call","add","deleteHandler","rawKey","getWeakValue","deleted","delete","getHandler","isProxied","hasHandler","setHandler","Object","is","set","clearHandler","size","clear","defaultHandler","iterationHandler","iteratorHandler","thisTarget","isTargetArray","isResultArray","proxiedIterator","next","rawIterator","result","done","item","createProxiedIterator","producerArrayHandler","pickingArrayHandler","conflictArrayHandler","passThis","handler","params","thisArg","prototype","toString","getPrototypeOf","constructor","checkCache","concat","content","saveProxy","cachedProxy","fromSetTrap","Proxy","receiver","Reflect","handlers","packHandlers","isStrongCollection","isCollection","newValue","updated","deleteProperty","hasOwnProperty","defineProperty","attributes","defined","setPrototypeOf","initial","onchange","options","preventExtensions"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -70,7 +70,8 @@ type Ref<T> = {
|
|
|
70
70
|
*/
|
|
71
71
|
declare function ref<T>(initial: T, onchange: OnChangeHandler, options?: RefOptions): Ref<T>;
|
|
72
72
|
|
|
73
|
+
declare function isProxyTry(value: any): boolean;
|
|
73
74
|
declare function getRawTry(value: any): any;
|
|
74
75
|
|
|
75
|
-
export { ref as default, getRawTry as getRaw };
|
|
76
|
+
export { ref as default, getRawTry as getRaw, isProxyTry as isRef };
|
|
76
77
|
export type { ChangeEvent, OnChangeHandler, Ref, RefOptions };
|
package/dist/index.esm.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const t={Get:"get",Set:"set",Add:"add",Has:"has",Delete:"delete",Clear:"clear",ForbiddenKeys:new Set(["__proto__","constructor","prototype"])},e=Symbol("is_proxy"),r=Symbol("raw_object"),n=new Set(["copyWithin","fill","push","reverse","unshift"]),a=new Set(["concat","flat","slice","toReversed","toSpliced","with"]),i=new Set(["every","findIndex","findLastIndex","flatMap","forEach","map","reduce","reduceRight","some"]),
|
|
1
|
+
const t={Get:"get",Set:"set",Add:"add",Has:"has",Delete:"delete",Clear:"clear",ForbiddenKeys:new Set(["__proto__","constructor","prototype"])},e=Symbol("is_proxy"),r=Symbol("raw_object"),n=new Set(["copyWithin","fill","push","reverse","unshift"]),a=new Set(["concat","flat","slice","toReversed","toSpliced","with"]),i=new Set(["every","findIndex","findLastIndex","flatMap","forEach","map","reduce","reduceRight","some"]),s=new Set(["entries","keys","values",Symbol.iterator]),o=new Set(["includes","indexOf","lastIndexOf"]),c=new Set(["at"]),u=new Set(["filter","find","findLast","pop","shift","sort","splice","toSorted"]),l=new Set(["copyWithin","fill","reverse","set","sort"]),f=new Set(["forEach"]),d=new Set(["forEach"]);function h(e){return t.ForbiddenKeys.has(e)}function p(t){return ArrayBuffer.isView(t)&&!(t instanceof DataView)}function y(t){return function(t){return"object"==typeof t&&null!==t}(t)||function(t){return Array.isArray(t)||p(t)}(t)}function v(t){return t[e]??!1}function g(t){return y(t)&&v(t)}function H(t){return t instanceof Map||t instanceof WeakMap}function S(t){return t instanceof Set||t instanceof WeakSet}function w(t){return t[r]}function A(t){return g(t)?w(t):t}function b(...t){const[e]=t;return y(e)?K(...t):e}function k(t){return t.map(t=>A(t))}function m(t,e,r){return t.map(t=>b(t,e,r,!1))}function O(t,e,...r){if(r.length>0){const[n,...a]=r;if("function"==typeof n){function i(...r){const a=r.map(r=>b(r,t,e));return n.apply(this,a)}return[i,...a]}}return r}function j(t,e,r,...n){const a=e.has(this)?k(n):n;return t[r].apply(this,a)}function V(t,e,r,n,...a){const i=e.get(this),s=i?k(a):a,o=t[r].apply(this,s);return i&&n({target:i,action:r,key:void 0,value:a,prevValue:void 0}),o}function x(t,e,r,...n){const a=e.get(this),[i]=n,s=a?A(i):i;return t.has.call(this,s)||(t.add.call(this,s),a&&r({target:a,action:"add",key:i,value:i,prevValue:void 0})),a??this}function R(t,e,r,...n){const a=e.get(this),[i]=n,s=a?A(i):i,o=function(t,e){return t instanceof WeakMap?t.get(e):t.has(e)?e:void 0}(this,s),c=t.delete.call(this,s);return c&&a&&r({target:a,action:"delete",key:i,value:void 0,prevValue:o}),c}function P(t,e,r,...n){const a=e.has(this),[i]=n,s=a?A(i):i,o=t.get.call(this,s);return a?b(o,e,r):o}function M(t,e,...r){const n=e.has(this),[a]=r,i=n?A(a):a;return t.has.call(this,i)}function W(t,e,r,...n){const a=e.get(this),[i,s]=n,o=a?A(i):i,c=a?A(s):s,u=t.get.call(this,o);return Object.is(c,u)||(t.set.call(this,o,c),a&&r({target:a,action:"set",key:i,value:s,prevValue:u})),a??this}function _(t,e,r){if(this.size>0){const n=e.get(this);t.clear.call(this),n&&r({target:n,action:"clear",key:void 0,value:void 0,prevValue:void 0})}}function E(t,e,r,...n){const a=v(this)||e.has(this)?k(n):n;return t[r].apply(this,a)}function L(t,e,r,n,...a){const i=e.has(this)?O(e,n,...a):a;return t[r].apply(this,i)}function D(t,e,r,n){const a=e.get(this),i=t[r].call(this);return a?function(t,...e){const[r,n,a,i]=e,s=Array.isArray(r),o="entries"===a||H(r)&&a===Symbol.iterator,c={next(e){const r=A(this===c?t:this),a=t.next.call(r,e);if(!a.done)if(o)if(s){const[,t]=a.value;a.value[1]=b(t,n,i)}else a.value=a.value.map(t=>b(t,n,i));else a.value=b(a.value,n,i);return a},[Symbol.iterator](){return A(this)}};return c}(i,this,e,r,n):i}function I(t,e,r,n,...a){const i=e.has(this),s=i?k(a):a,o=t[r].apply(this,s);return i?m(o,e,n):o}function C(t,e,r,n,...a){const i=e.has(this),s=i?k(a):a,o=t[r].apply(this,s);return i?b(o,e,n):o}function F(t,e,r,n,...a){const i=e.get(this);let s;switch(r){case"filter":case"find":case"findLast":case"sort":case"toSorted":const o=i?O(e,n,...a):a;switch(s=t[r].apply(this,o),r){case"filter":case"toSorted":return i?m(s,e,n):s;case"find":case"findLast":return i?b(s,e,n):s;case"sort":return i&&n({target:i,action:"sort",key:void 0,value:a,prevValue:void 0}),i??this}case"pop":case"shift":case"splice":const c=i?k(a):a;switch(s=t[r].apply(this,c),i&&n({target:i,action:r,key:void 0,value:a,prevValue:void 0}),r){case"pop":case"shift":return i?b(s,e,n,!1):s;case"splice":return i?m(s,e,n):s}}}function G(t,...e){return function(...r){const[n,a]=e;let i;var s;return s=n,i="[object Object]"!==Object.prototype.toString.call(s)||Object.getPrototypeOf(s)!==Object.prototype&&!s.constructor?A(this):this,function(t,e){g(t)&&e.set(w(t),t)}(this,a),t.apply(i,e.concat(r))}}function K(g,w,A,b){if(v(g))return g;const k=w.get(g);if(k)return k;let m=!1;const O=new Proxy(g,{get(v,b,k){if(b===e)return!0;if(b===r)return g;let m;try{m=Reflect.get(v,b,k)}catch{m=Reflect.get(v,b)}if(!h(b)&&void 0!==m){if(y(m))return K(m,w,A);if("function"==typeof m){const e=function(t,e,r,n){return{conflictArrayHandler:G(F,t,r,e,n),mutationArrayHandler:G(V,t,r,e,n),producerArrayHandler:G(I,t,r,e,n),iterationHandler:G(L,t,r,e,n),iteratorHandler:G(D,t,r,e,n),lookupArrayHandler:G(j,t,r,e),pickingArrayHandler:G(C,t,r,e,n),getHandler:G(P,t,r,n),setHandler:G(W,t,r,n),addHandler:G(x,t,r,n),hasHandler:G(M,t,r),deleteHandler:G(R,t,r,n),clearHandler:G(_,t,r,n),defaultHandler:G(E,t,r,e)}}(v,b,w,A);if(Array.isArray(v)){if(u.has(b))return e.conflictArrayHandler;if(n.has(b))return e.mutationArrayHandler;if(a.has(b))return e.producerArrayHandler;if(i.has(b))return e.iterationHandler;if(s.has(b))return e.iteratorHandler;if(o.has(b))return e.lookupArrayHandler;if(c.has(b))return e.pickingArrayHandler}if(p(v)&&l.has(b))return e.mutationArrayHandler;if(H(v)){if(b===t.Get)return e.getHandler;if(b===t.Set)return e.setHandler}if(S(v)&&b===t.Add)return e.addHandler;if(v instanceof Map&&f.has(b)||v instanceof Set&&d.has(b))return e.iterationHandler;if(function(t){return t instanceof Map||t instanceof Set}(v)){if(b===t.Clear)return e.clearHandler;if(s.has(b))return e.iteratorHandler}if(function(t){return H(t)||S(t)}(v)){if(b===t.Has)return e.hasHandler;if(b===t.Delete)return e.deleteHandler}return e.defaultHandler}}return m},set(t,e,r,n){if(h(e))return!0;const a=t[e];if(!Object.is(a,r)){m=!0;const i=Reflect.set(t,e,r,n);return m=!1,i&&A({target:O,action:"set",key:e,value:r,prevValue:a}),i}return!0},deleteProperty(t,e){if(h(e))return!0;if(Object.prototype.hasOwnProperty.call(t,e)){const r=t[e],n=Reflect.deleteProperty(t,e);return n&&A({target:O,action:"delete",key:e,value:void 0,prevValue:r}),n}return!0},defineProperty(t,e,r){if(h(e))return!0;const n=t[e],a=Reflect.defineProperty(t,e,r);if(!m&&a){const t=r.value;Object.is(n,t)||A({target:O,action:"define",key:e,value:t,prevValue:n})}return a},setPrototypeOf:()=>!0});return(b??1)&&w.set(g,O),O}function z(t,e,r){const n=r?.cache??new WeakMap;return K(Object.preventExtensions({value:t}),n,e)}export{z as default,A as getRaw,g as isRef};
|
|
2
2
|
//# sourceMappingURL=index.esm.js.map
|
package/dist/index.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.esm.js","sources":["../src/constants/keys.ts","../src/constants/symbols.ts","../src/constants/mutationMethods/array.ts","../src/constants/producerMethods/array.ts","../src/constants/iterationMethods/array.ts","../src/constants/iteratorMethods/index.ts","../src/constants/lookupMethods/array.ts","../src/constants/pickingMethods/array.ts","../src/constants/conflictMethods/array.ts","../src/constants/mutationMethods/typedArray.ts","../src/constants/iterationMethods/map.ts","../src/constants/iterationMethods/set.ts","../src/utils/utils.ts","../src/utils/handlers/array/lookupHandler.ts","../src/utils/handlers/array/mutateHandler.ts","../src/utils/handlers/collection/addHandler.ts","../src/utils/handlers/collection/deleteHandler.ts","../src/utils/handlers/collection/getHandler.ts","../src/utils/handlers/collection/hasHandler.ts","../src/utils/handlers/collection/setHandler.ts","../src/utils/handlers/collection/clearHandler.ts","../src/utils/handlers/defaultHandler.ts","../src/utils/handlers/iterationHandler.ts","../src/utils/handlers/iteratorHandler.ts","../src/utils/handlers/array/producerHandler.ts","../src/utils/handlers/array/pickingHandler.ts","../src/utils/handlers/array/conflictHandler.ts","../src/utils/packHandlers.ts","../src/utils/createProxy.ts","../src/ref.ts"],"sourcesContent":["const Keys = {\n Get: 'get',\n Set: 'set',\n Add: 'add',\n Has: 'has',\n Delete: 'delete',\n Clear: 'clear',\n ForbiddenKeys: new Set(['__proto__', 'constructor', 'prototype']),\n} as const;\n\nexport default Keys;\n","const Symbols = {\n IsProxy: Symbol('is_proxy'),\n RawObject: Symbol('raw_object'),\n} as const;\n\nexport default Symbols;\n","const MutationArrayMethods = new Set([\n 'copyWithin',\n 'fill',\n 'push',\n 'reverse',\n 'unshift',\n] as const);\n\nexport type MutationArrayMethods = typeof MutationArrayMethods extends Set<infer T> ? T: never;\nexport default MutationArrayMethods;\n","const ProducerArrayMethods = new Set([\n 'concat',\n 'flat',\n 'slice',\n 'toReversed',\n 'toSpliced',\n 'with',\n] as const);\n\nexport type ProducerArrayMethods = typeof ProducerArrayMethods extends Set<infer T> ? T: never;\nexport default ProducerArrayMethods;\n","const IterationArrayMethods = new Set([\n 'every',\n 'findIndex',\n 'findLastIndex',\n 'flatMap',\n 'forEach',\n 'map',\n 'reduce',\n 'reduceRight',\n 'some',\n] as const);\n\nexport type IterationArrayMethods = typeof IterationArrayMethods extends Set<infer T> ? T : never;\nexport default IterationArrayMethods;\n","const IteratorMethods = new Set([\n 'entries',\n 'keys',\n 'values',\n Symbol.iterator,\n] as const);\n\nexport type IteratorMethods = typeof IteratorMethods extends Set<infer T> ? T: never;\nexport default IteratorMethods;\n","const LookupArrayMethods = new Set([\n 'includes',\n 'indexOf',\n 'lastIndexOf',\n] as const);\n\nexport type LookupArrayMethods = typeof LookupArrayMethods extends Set<infer T> ? T: never;\nexport default LookupArrayMethods;\n","const PickingArrayMethods = new Set(['at'] as const);\n\nexport type PickingArrayMethods = typeof PickingArrayMethods extends Set<infer T> ? T: never;\nexport default PickingArrayMethods;\n","/**\n * Array methods that exhibit multiple reactive behaviors, potentially causing proxy conflicts.\n *\n * These methods can:\n * - both iterate and produce new arrays (`filter`, `toSorted`, `splice`)\n * - iterate while selecting specific elements (`find`, `findLast`)\n * - mutate the array while returning removed elements (`pop`, `shift`)\n * - both mutate and iterate (`sort`)\n *\n * Use these with the raw target rather than the proxied array to avoid inconsistent reactivity.\n */\nconst ConflictArrayMethods = new Set([\n 'filter', // iteration + producer\n 'find', // iteration + picking\n 'findLast', // iteration + picking\n 'pop', // mutation + picking\n 'shift', // mutation + picking\n 'sort', // iteration + mutation\n 'splice', // mutation + producer\n 'toSorted', // iteration + producer\n] as const);\n\nexport type ConflictArrayMethods = typeof ConflictArrayMethods extends Set<infer T> ? T : never;\nexport default ConflictArrayMethods;\n","const MutationTypedArrayMethods = new Set([\n 'copyWithin',\n 'fill',\n 'reverse',\n 'set',\n 'sort',\n] as const);\n\nexport type MutationTypedArrayMethods = typeof MutationTypedArrayMethods extends Set<infer T> ? T: never;\nexport default MutationTypedArrayMethods;\n","const IterationMapMethods = new Set(['forEach'] as const);\n\nexport type IterationMapMethods = typeof IterationMapMethods extends Set<infer T> ? T : never;\nexport default IterationMapMethods;\n","const IterationSetMethods = new Set(['forEach'] as const);\n\nexport type IterationSetMethods = typeof IterationSetMethods extends Set<infer T> ? T : never;\nexport default IterationSetMethods;\n","import Keys from \"../constants/keys\";\nimport Symbols from \"../constants/symbols\";\nimport createProxy from \"./createProxy\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\nexport function isForbiddenKey(key: any) {\n return Keys.ForbiddenKeys.has(key);\n}\n\nexport function isObject(value: any) {\n return typeof value === 'object' && value !== null;\n}\n\nexport function isTypedArray(value: any) {\n return ArrayBuffer.isView(value) && !(value instanceof DataView);\n}\n\nexport function isArray(value: any): boolean {\n return Array.isArray(value) || isTypedArray(value);\n}\n\nexport function isProxy(value: object): boolean {\n return (value as any)[Symbols.IsProxy] ?? false;\n}\n\nexport function isMapCollection(target: object) {\n return target instanceof Map || target instanceof WeakMap;\n}\n\nexport function isSetCollection(target: object) {\n return target instanceof Set || target instanceof WeakSet;\n}\n\nexport function isStrongCollection(target: object) {\n return target instanceof Map || target instanceof Set;\n}\n\nexport function isCollection(target: object) {\n return isMapCollection(target) || isSetCollection(target);\n}\n\nexport function getRaw(proxy: object): object {\n return (proxy as any)[Symbols.RawObject];\n}\n\nexport function getWeakValue(target: WeakMap<any, any> | WeakSet<any>, key: any) {\n if (target instanceof WeakMap) {\n return target.get(key);\n } else if (target.has(key)) {\n return key;\n }\n return undefined;\n}\n\nexport function getRawTry(value: any) {\n if (isObject(value) && isProxy(value)) {\n return getRaw(value);\n }\n return value;\n}\n\nexport function createProxyTry<T extends object>(\n ...args: Parameters<typeof createProxy<T>>\n) {\n const [value] = args;\n if (isObject(value)) {\n return createProxy(...args);\n }\n return value;\n}\n\nexport function toRawArgs(args: any[]) {\n return args.map(each => getRawTry(each));\n}\n\nexport function toProxiedItems(array: any[], cache: CacheProxy, onChange: OnChangeHandler) {\n return array.map(each => createProxyTry(each, cache, onChange, false));\n}\n\n/**\n * Wraps callback functions passed to array/map/set iteration methods\n * to ensure reactive proxy values are passed to the original callback.\n */\nexport function createCallbackArgs(cache: CacheProxy, onChange: OnChangeHandler, ...args: any[]) {\n if (args.length > 0) {\n const [callbackFn, ...restArgs] = args;\n if (typeof callbackFn === 'function') {\n function callback(this: any, ...callbackArgs: any[]) {\n const proxiedArgs = callbackArgs.map(arg => createProxyTry(arg, cache, onChange));\n return callbackFn.apply(this, proxiedArgs);\n }\n return [callback, ...restArgs];\n }\n }\n return args;\n}\n\nexport function checkCache(value: any, cache: CacheProxy) {\n if (isObject(value) && isProxy(value)) {\n cache.set(getRaw(value), value);\n }\n}\n\nexport function isPlainObject(value: any): boolean {\n if (Object.prototype.toString.call(value) !== '[object Object]') return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || !!value.constructor;\n}\n","import { LookupArrayMethods } from \"../../../constants/lookupMethods/array\";\nimport { toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Handles \"lookup\" methods on arrays such as `includes`, `indexOf`, and `lastIndexOf`.\n * Converts any proxied arguments to raw values before calling the native method.\n */\nexport default function lookupArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: LookupArrayMethods,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n return (target as any)[key].apply(this, rawArgs);\n}\n","import { MutationArrayMethods } from \"../../../constants/mutationMethods/array\";\nimport { MutationTypedArrayMethods } from \"../../../constants/mutationMethods/typedArray\";\nimport { toRawArgs } from \"../../utils\";\nimport { TypedArray } from \"../../../types/types\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\ntype MutationKey<T> = T extends any[] ?\n MutationArrayMethods :\n MutationTypedArrayMethods;\n\n/**\n * Handles mutation methods on arrays or typed arrays.\n *\n * Supports `copyWithin`, `fill`, `push`, etc.\n * - Converts proxied arguments to raw values.\n * - Triggers `onChange` after mutation.\n */\nexport default function mutationArrayHandler<T extends any[] | TypedArray>(\n // expect raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: MutationKey<T>,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const rawArgs = proxy ? toRawArgs(args) : args;\n const value = (target as any)[key].apply(this, rawArgs);\n proxy && onChange({\n target: proxy,\n action: key,\n key: undefined,\n value: args,\n prevValue: undefined\n });\n return value;\n}\n","import { getRawTry } from \"../../utils\";\nimport { OnChangeHandler } from \"../../../types/ref\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Handles adding a value to a Set or WeakSet.\n *\n * Behavior:\n * - Converts proxied values to raw objects to avoid double-proxy issues.\n * - Only triggers `onChange` if the value was not already present in the Set/WeakSet.\n * - Returns the proxy itself for fluent use.\n */\nexport default function addHandler<T extends Set<any> | WeakSet<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [value] = args;\n const rawValue = proxy ? getRawTry(value) : value;\n const hasValue = target.has.call(this, rawValue);\n if (!hasValue) {\n target.add.call(this, rawValue);\n proxy && onChange({\n target: proxy,\n action: 'add',\n key: value,\n value,\n prevValue: undefined,\n });\n }\n return proxy ?? this;\n}\n","import { getWeakValue, getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles deleting a key/value from Map, Set, WeakMap, or WeakSet.\n *\n * Behavior:\n * - Converts proxied keys to their raw versions to maintain correct identity.\n * - For Map/WeakMap, also retrieves the previous value via `getWeakValue`.\n * - Removes any cached proxies for the deleted key and, if applicable, the value.\n * - Triggers `onChange` only if deletion actually occurs.\n */\nexport default function deleteHandler<T extends\n | Map<any, any>\n | Set<any>\n | WeakMap<any, any>\n | WeakSet<any>\n>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [key] = args;\n const rawKey = proxy ? getRawTry(key) : key;\n const prevValue = getWeakValue(this, rawKey);\n const deleted = target.delete.call(this, rawKey);\n if (deleted && proxy) {\n onChange({\n target: proxy,\n action: 'delete',\n key,\n value: undefined,\n prevValue\n });\n }\n return deleted;\n}\n","import { createProxyTry, getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles getting a value from a Map or WeakMap.\n *\n * Behavior:\n * - Converts a proxied key to its raw value to correctly access the Map/WeakMap.\n * - If the retrieved value is creatable (object/array), wraps it in a proxy to maintain reactivity.\n * - Does not modify the original collection.\n */\nexport default function getHandler<T extends Map<any, any> | WeakMap<any, any>>(\n // expects raw object,\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const [key] = args;\n const rawKey = isProxied ? getRawTry(key) : key;\n const value = target.get.call(this, rawKey);\n return isProxied ? createProxyTry(value, cache, onChange) : value;\n}\n","import { getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Checks whether a key exists in a Map, Set, WeakMap, or WeakSet.\n *\n * Behavior:\n * - Converts a proxied key to its raw value to ensure proper lookup.\n * - Works with all supported collections: Map, Set, WeakMap, WeakSet.\n * - Returns a boolean indicating presence.\n */\nexport default function hasHandler<T extends\n | Map<any, any>\n | Set<any>\n | WeakMap<any, any>\n | WeakSet<any>\n>(\n this: T,\n target: T,\n cache: CacheProxy,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const [key] = args;\n const rawKey = isProxied ? getRawTry(key) : key;\n return target.has.call(this, rawKey);\n}\n","import { getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Sets a key-value pair in a Map or WeakMap with reactive tracking.\n *\n * Behavior:\n * - Converts proxied key and value to their raw counterparts.\n * - Only triggers `onChange` if the new value differs from the previous value.\n * - Removes any cached proxy associated with the previous value to prevent memory leaks.\n * - Returns the proxy for chaining.\n */\nexport default function setHandler<T extends Map<any, any> | WeakMap<any, any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [key, value] = args;\n const rawKey = proxy ? getRawTry(key) : key;\n const rawValue = proxy ? getRawTry(value) : value;\n const prevValue = target.get.call(this, rawKey);\n if (!Object.is(rawValue, prevValue)) {\n target.set.call(this, rawKey, rawValue);\n proxy && onChange({\n target: proxy,\n action: 'set',\n key,\n value,\n prevValue,\n });\n }\n return proxy ?? this;\n}\n","import { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles the `clear()` method for reactive Map/Set.\n *\n * - Clears the collection.\n * - Removes all entries from the proxy cache.\n * - Triggers the `onChange` callback if the collection was non-empty.\n */\nexport default function clearHandler<T extends Map<any, any> | Set<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n) {\n if (this.size > 0) {\n const proxy = cache.get(this);\n target.clear.call(this);\n proxy && onChange({\n target: proxy,\n action: 'clear',\n key: undefined,\n value: undefined,\n prevValue: undefined,\n });\n }\n}\n","import { isProxy, toRawArgs } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\n\n/**\n * Default handler for property or method access when no specialized\n * reactive handling is applied.\n *\n * Behavior:\n * - Calls the original method or accesses the property directly.\n * - Returns the result as-is without creating a reactive proxy.\n * - Suitable for native methods or properties where reactive wrapping\n * is not needed.\n */\nexport default function defaultHandler<T extends object>(\n // expects both raw and proxy object\n this: T,\n target: T,\n cache: CacheProxy,\n key: any,\n ...args: any[]\n) {\n const isProxied = isProxy(this) || cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n return (target as any)[key].apply(this, rawArgs);\n}\n","import { IterationArrayMethods } from \"../../constants/iterationMethods/array\";\nimport { IterationMapMethods } from \"../../constants/iterationMethods/map\";\nimport { IterationSetMethods } from \"../../constants/iterationMethods/set\";\nimport { createCallbackArgs } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\nimport { OnChangeHandler } from \"../../types/ref\";\n\ntype IterationKey<T> =\n T extends any[] ?\n IterationArrayMethods :\n T extends Map<any, any> ?\n IterationMapMethods :\n IterationSetMethods;\n\n/**\n * Handles iteration methods like `forEach`, `map`, `filter`, `some`, `every`, etc.\n * for Arrays, Maps, and Sets — ensuring their callbacks receive\n * proxied (reactive) elements.\n *\n * Behavior:\n * - Wraps the callback function so any values passed to it are automatically proxied.\n * - Calls the native iteration method with the wrapped callback and remaining args.\n * - Works with arrays, typed arrays, Maps, and Sets.\n */\nexport default function iterationHandler<T extends any[] | Map<any, any> | Set<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: IterationKey<T>,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const callbackArgs = isProxied ? createCallbackArgs(cache, onChange, ...args) : args;\n return (target as any)[key].apply(this, callbackArgs);\n}\n","import { IteratorMethods } from \"../../constants/iteratorMethods\";\nimport { createProxyTry, getRawTry, isMapCollection } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\nimport { OnChangeHandler } from \"../../types/ref\";\n\nexport function createProxiedIterator(\n iterator: Iterator<any>,\n ...args: Parameters<typeof iteratorHandler<\n any[] | Map<any, any> | Set<any>\n >>\n): Iterator<any> & Iterable<any> {\n const [thisTarget, cache, key, onChange] = args;\n const isTargetArray = Array.isArray(thisTarget);\n const isResultArray = key === 'entries' || (\n isMapCollection(thisTarget) && key === Symbol.iterator\n );\n const proxiedIterator = {\n next(this: any, value?: any) {\n const matchedIterator = this === proxiedIterator ? iterator : this;\n const rawIterator = getRawTry(matchedIterator);\n const result = iterator.next.call(rawIterator, value);\n if (!result.done) {\n if (isResultArray) {\n if (isTargetArray) {\n const [, item] = result.value;\n result.value[1] = createProxyTry(item, cache, onChange);\n } else {\n result.value = result.value.map((each: any) => createProxyTry(each, cache, onChange));\n }\n } else {\n result.value = createProxyTry(result.value, cache, onChange);\n }\n }\n return result;\n },\n [Symbol.iterator](this: any) {\n return getRawTry(this);\n }\n }\n return proxiedIterator;\n}\n\n/**\n * Wraps an iterator (from Array, Map, or Set) in a proxied version\n * so that values yielded during iteration remain reactive.\n *\n * Behavior:\n * - Calls the native iterator method (`Symbol.iterator`, `entries`, `values`, `keys`) on the target.\n * - Wraps each yielded value with `createProxyTry` so consumers get reactive objects.\n * - Preserves the iterable protocol (`[Symbol.iterator]()`) for `for..of` or spread operations.\n */\nexport default function iteratorHandler<T extends any[] | Map<any, any> | Set<any>>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: IteratorMethods,\n onChange: OnChangeHandler,\n) {\n const isProxied = cache.get(this);\n const iterator = target[key].call(this) as Iterator<any> & Iterable<any>;\n return isProxied ?\n createProxiedIterator(iterator, this, cache, key, onChange) :\n iterator;\n}\n","import { ProducerArrayMethods } from \"../../../constants/producerMethods/array\";\nimport { toProxiedItems, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles \"producer\" methods on arrays, such as `concat`, `slice`, `flat`, etc.\n *\n * Behavior:\n * - Converts proxied arguments to raw values to prevent double-proxy issues.\n * - Wraps returned arrays/items in proxies for reactive tracking.\n * - Original array is **not mutated** for immutable producer methods.\n */\nexport default function producerArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: ProducerArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n const value = target[key].apply(this, rawArgs);\n return isProxied ? toProxiedItems(value, cache, onChange) : value;\n}\n","import { PickingArrayMethods } from \"../../../constants/pickingMethods/array\";\nimport { createProxyTry, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles \"picking\" methods on arrays, currently only `at`.\n *\n * Behavior:\n * - Converts proxied arguments to raw values before calling the native method.\n * - Wraps the returned value in a proxy if it's a creatable object.\n * - Returns `undefined` or the proxied result.\n */\nexport default function pickingArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: PickingArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n const value = (target as any)[key].apply(this, rawArgs);\n return isProxied ? createProxyTry(value, cache, onChange) : value;\n}\n","import { ConflictArrayMethods } from \"../../../constants/conflictMethods/array\";\nimport { createCallbackArgs, createProxyTry, toProxiedItems, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles array methods that have multiple behaviors (iteration, mutation, picking, or producing arrays)\n * in reactive proxied arrays. These \"conflict methods\" include:\n * \n * - filter, toSorted : iteration + producer → return new proxied array\n * - find, findLast : iteration + picking → return single proxied item\n * - sort : iteration + mutation → mutates in place, triggers onChange\n * - pop, shift : mutation + picking → remove item, return as proxied value\n * - splice : mutation + producer → remove/replace items, return removed items as proxied array\n * \n * This handler ensures that the returned values maintain reactivity and properly trigger the\n * onChange callback when mutations occur.\n */\nexport default function conflictArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: ConflictArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n let value: any;\n switch (key) {\n // iteration methods\n case \"filter\":\n case \"find\":\n case \"findLast\":\n case \"sort\":\n case \"toSorted\":\n const callbackArgs = proxy ? createCallbackArgs(cache, onChange, ...args) : args;\n value = (target as any)[key].apply(this, callbackArgs);\n switch (key) {\n // producer methods\n case \"filter\":\n case \"toSorted\":\n return proxy ? toProxiedItems(value, cache, onChange) : value;\n // picking methods\n case \"find\":\n case \"findLast\":\n return proxy ? createProxyTry(value, cache, onChange) : value;\n // mutation methods\n case \"sort\":\n proxy && onChange({\n target: proxy,\n action: 'sort',\n key: undefined,\n value: args,\n prevValue: undefined\n });\n return proxy ?? this;\n }\n // mutation methods\n case \"pop\":\n case \"shift\":\n case \"splice\":\n const rawArgs = proxy ? toRawArgs(args) : args;\n value = (target as any)[key].apply(this, rawArgs);\n proxy && onChange({\n target: proxy,\n action: key,\n key: undefined,\n value: args,\n prevValue: undefined\n });\n switch (key) {\n // picking methods\n case \"pop\":\n case \"shift\":\n return proxy ? createProxyTry(value, cache, onChange, false) : value;\n // producer methods\n case \"splice\":\n return proxy ? toProxiedItems(value, cache, onChange) : value;\n }\n }\n}\n","import lookupArrayHandler from \"./handlers/array/lookupHandler\";\nimport mutationArrayHandler from \"./handlers/array/mutateHandler\";\nimport addHandler from \"./handlers/collection/addHandler\";\nimport deleteHandler from \"./handlers/collection/deleteHandler\";\nimport getHandler from \"./handlers/collection/getHandler\";\nimport hasHandler from \"./handlers/collection/hasHandler\";\nimport setHandler from \"./handlers/collection/setHandler\";\nimport clearHandler from \"./handlers/collection/clearHandler\";\nimport defaultHandler from \"./handlers/defaultHandler\";\nimport iterationHandler from \"./handlers/iterationHandler\";\nimport iteratorHandler from \"./handlers/iteratorHandler\";\nimport producerArrayHandler from \"./handlers/array/producerHandler\";\nimport pickingArrayHandler from \"./handlers/array/pickingHandler\";\nimport conflictArrayHandler from \"./handlers/array/conflictHandler\";\nimport { checkCache, getRawTry, isPlainObject } from \"./utils\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\nfunction passThis<\n P extends ([target: any, cache: CacheProxy, ...args: any[]]),\n T extends ((...params: P) => any),\n>(\n handler: T,\n ...params: P\n) {\n return function (this: any, ...args: any[]) {\n const [target, cache] = params;\n let thisArg: any;\n if (isPlainObject(target)) {\n thisArg = this;\n } else {\n thisArg = getRawTry(this);\n }\n checkCache(this, cache);\n return handler.apply(thisArg, params.concat(args) as P);\n }\n}\n\n/**\n * Packs and binds all handler functions with shared context.\n *\n * Each handler receives the `target`, `key`, `cache`, and `onChange` references,\n * ensuring consistent behavior across mutation, lookup, and iteration operations.\n *\n * @param target The raw target object being proxied.\n * @param key The property key currently being accessed.\n * @param cache WeakMap used for proxy–raw mapping to maintain identity.\n * @param onChange Callback invoked when a reactive change occurs.\n * @returns An object containing all pre-bound handler functions.\n */\nexport default function packHandlers(\n target: any,\n key: any,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n) {\n return {\n conflictArrayHandler: passThis(conflictArrayHandler, target, cache, key, onChange),\n mutationArrayHandler: passThis(mutationArrayHandler, target, cache, key, onChange),\n producerArrayHandler: passThis(producerArrayHandler, target, cache, key, onChange),\n iterationHandler: passThis(iterationHandler, target, cache, key, onChange),\n iteratorHandler: passThis(iteratorHandler, target, cache, key, onChange),\n lookupArrayHandler: passThis(lookupArrayHandler, target, cache, key),\n pickingArrayHandler: passThis(pickingArrayHandler, target, cache, key, onChange),\n getHandler: passThis(getHandler, target, cache, onChange),\n setHandler: passThis(setHandler, target, cache, onChange),\n addHandler: passThis(addHandler, target, cache, onChange),\n hasHandler: passThis(hasHandler, target, cache),\n deleteHandler: passThis(deleteHandler, target, cache, onChange),\n clearHandler: passThis(clearHandler, target, cache, onChange),\n defaultHandler: passThis(defaultHandler, target, cache, key),\n }\n}\n","import Keys from \"../constants/keys\";\nimport Symbols from \"../constants/symbols\";\nimport MutationArrayMethods from \"../constants/mutationMethods/array\";\nimport ProducerArrayMethods from \"../constants/producerMethods/array\";\nimport IterationArrayMethods from \"../constants/iterationMethods/array\";\nimport IteratorMethods from \"../constants/iteratorMethods\";\nimport LookupArrayMethods from \"../constants/lookupMethods/array\";\nimport PickingArrayMethods from \"../constants/pickingMethods/array\";\nimport ConflictArrayMethods from \"../constants/conflictMethods/array\";\nimport MutationTypedArrayMethods from \"../constants/mutationMethods/typedArray\";\nimport IterationMapMethods from \"../constants/iterationMethods/map\";\nimport IterationSetMethods from \"../constants/iterationMethods/set\";\nimport packHandlers from \"./packHandlers\";\nimport {\n isArray,\n isProxy,\n isMapCollection,\n isSetCollection,\n isCollection,\n isForbiddenKey,\n isTypedArray,\n isStrongCollection\n} from \"./utils\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\n/**\n * Recursively creates a reactive Proxy around an object, array, or collection.\n *\n * Features:\n * - Reuses cached proxies to maintain reference consistency.\n * - Automatically packs specialized handlers for arrays, maps, and sets.\n * - Triggers `onChange` when properties or collections are mutated.\n * - Safely skips forbidden or internal keys (like Symbols.RawObject).\n *\n * @param content Target object or collection to proxy.\n * @param cache WeakMap used to store raw-to-proxy mappings for identity preservation.\n * @param onChange Callback triggered when reactive mutations occur.\n * @param saveProxy Whether to store the proxy in cache (defaults to true).\n * @returns A reactive Proxy wrapping the original content.\n */\nexport default function createProxy<T extends object>(\n content: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n saveProxy?: boolean,\n) {\n if (isProxy(content)) return content;\n const cachedProxy = cache.get(content);\n if (cachedProxy) return cachedProxy;\n\n let fromSetTrap = false;\n const proxy = new Proxy(content, {\n get(target: any, key: any, receiver) {\n if (key === Symbols.IsProxy) return true;\n if (key === Symbols.RawObject) return content;\n let value: any;\n try { value = Reflect.get(target, key, receiver); }\n catch { value = Reflect.get(target, key); }\n if (\n !(isForbiddenKey(key) || value === undefined || value === null) &&\n (\n isArray(value) ||\n typeof value === 'object' ||\n typeof value === 'function'\n )\n ) {\n if (isArray(value) || typeof value === 'object') {\n return createProxy(value, cache, onChange);\n }\n const handlers = packHandlers(target, key, cache, onChange);\n if (Array.isArray(target)) {\n if (ConflictArrayMethods.has(key)) return handlers.conflictArrayHandler;\n if (MutationArrayMethods.has(key)) return handlers.mutationArrayHandler;\n if (ProducerArrayMethods.has(key)) return handlers.producerArrayHandler;\n if (IterationArrayMethods.has(key)) return handlers.iterationHandler;\n if (IteratorMethods.has(key)) return handlers.iteratorHandler;\n if (LookupArrayMethods.has(key)) return handlers.lookupArrayHandler;\n if (PickingArrayMethods.has(key)) return handlers.pickingArrayHandler;\n }\n if (isTypedArray(target) && MutationTypedArrayMethods.has(key)) {\n return handlers.mutationArrayHandler;\n }\n if (isMapCollection(target)) {\n if (key === Keys.Get) return handlers.getHandler;\n if (key === Keys.Set) return handlers.setHandler;\n }\n if (isSetCollection(target) && key === Keys.Add) {\n return handlers.addHandler;\n }\n if (\n (target instanceof Map && IterationMapMethods.has(key)) ||\n (target instanceof Set && IterationSetMethods.has(key))\n ) {\n return handlers.iterationHandler;\n }\n if (isStrongCollection(target)) {\n if (key === Keys.Clear) return handlers.clearHandler;\n if (IteratorMethods.has(key)) return handlers.iteratorHandler;\n }\n if (isCollection(target)) {\n if (key === Keys.Has) return handlers.hasHandler;\n if (key === Keys.Delete) return handlers.deleteHandler;\n }\n return handlers.defaultHandler;\n }\n return value;\n },\n set(target, key, newValue, receiver) {\n if (isForbiddenKey(key)) return true;\n const prevValue = target[key];\n if (!Object.is(prevValue, newValue)) {\n fromSetTrap = true;\n const updated = Reflect.set(target, key, newValue, receiver);\n fromSetTrap = false;\n if (updated) {\n onChange({\n target: proxy,\n action: 'set',\n key,\n value: newValue,\n prevValue,\n });\n }\n return updated;\n };\n return true;\n },\n deleteProperty(target, key) {\n if (isForbiddenKey(key)) return true;\n const hasKey = Object.prototype.hasOwnProperty.call(target, key);\n if (hasKey) {\n const prevValue = target[key];\n const deleted = Reflect.deleteProperty(target, key);\n if (deleted) {\n onChange({\n target: proxy,\n action: 'delete',\n key,\n value: undefined,\n prevValue\n });\n }\n return deleted;\n };\n return true;\n },\n defineProperty(target, key, attributes) {\n if (isForbiddenKey(key)) return true;\n const prevValue = target[key];\n const defined = Reflect.defineProperty(target, key, attributes);\n if (!fromSetTrap && defined) {\n const newValue = attributes.value;\n if (!Object.is(prevValue, newValue)) {\n onChange({\n target: proxy,\n action: 'define',\n key,\n value: newValue,\n prevValue,\n });\n }\n }\n return defined;\n },\n setPrototypeOf() {\n return true;\n },\n });\n if (saveProxy ?? true) {\n cache.set(content, proxy);\n }\n return proxy;\n}\n","import createProxy from './utils/createProxy';\nimport { OnChangeHandler, Ref, RefOptions } from './types/ref';\n\n/**\n * Creates a reactive reference object.\n *\n * - `value`: the reactive value.\n * - `onchange`: callback triggered on every change.\n * - `options.cache`: optional WeakMap for shared proxy identity.\n *\n * Example:\n * ```ts\n * const count = ref(0, (e) => console.log(e.value));\n * count.value = 5; // triggers onchange\n * ```\n *\n * @param initial Initial value.\n * @param onchange Callback that receives ChangeEvent on every change.\n * @param options Optional RefOptions (only `cache` is used by ref).\n * @returns A reactive Ref object.\n */\nfunction ref<T>(initial: T, onchange: OnChangeHandler, options?: RefOptions): Ref<T> {\n const cache = options?.cache ?? new WeakMap();\n return createProxy(Object.preventExtensions({ value: initial }), cache, onchange);\n}\n\nexport default ref;\n"],"names":["Keys","Get","Set","Add","Has","Delete","Clear","ForbiddenKeys","Symbols","Symbol","MutationArrayMethods","ProducerArrayMethods","IterationArrayMethods","IteratorMethods","iterator","LookupArrayMethods","PickingArrayMethods","ConflictArrayMethods","MutationTypedArrayMethods","IterationMapMethods","IterationSetMethods","isForbiddenKey","key","has","isObject","value","isTypedArray","ArrayBuffer","isView","DataView","isArray","Array","isProxy","isMapCollection","target","Map","WeakMap","isSetCollection","WeakSet","getRaw","proxy","getRawTry","createProxyTry","args","createProxy","toRawArgs","map","each","toProxiedItems","array","cache","onChange","createCallbackArgs","length","callbackFn","restArgs","callback","callbackArgs","proxiedArgs","arg","apply","this","lookupArrayHandler","rawArgs","mutationArrayHandler","get","action","undefined","prevValue","addHandler","rawValue","call","add","deleteHandler","rawKey","getWeakValue","deleted","delete","getHandler","isProxied","hasHandler","setHandler","Object","is","set","clearHandler","size","clear","defaultHandler","iterationHandler","iteratorHandler","thisTarget","isTargetArray","isResultArray","proxiedIterator","next","rawIterator","result","done","item","createProxiedIterator","producerArrayHandler","pickingArrayHandler","conflictArrayHandler","passThis","handler","params","thisArg","prototype","toString","getPrototypeOf","constructor","checkCache","concat","content","saveProxy","cachedProxy","fromSetTrap","Proxy","receiver","Reflect","handlers","packHandlers","isStrongCollection","isCollection","newValue","updated","deleteProperty","hasOwnProperty","defineProperty","attributes","defined","setPrototypeOf","ref","initial","onchange","options","preventExtensions"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.esm.js","sources":["../src/constants/keys.ts","../src/constants/symbols.ts","../src/constants/mutationMethods/array.ts","../src/constants/producerMethods/array.ts","../src/constants/iterationMethods/array.ts","../src/constants/iteratorMethods/index.ts","../src/constants/lookupMethods/array.ts","../src/constants/pickingMethods/array.ts","../src/constants/conflictMethods/array.ts","../src/constants/mutationMethods/typedArray.ts","../src/constants/iterationMethods/map.ts","../src/constants/iterationMethods/set.ts","../src/utils/utils.ts","../src/utils/handlers/array/lookupHandler.ts","../src/utils/handlers/array/mutateHandler.ts","../src/utils/handlers/collection/addHandler.ts","../src/utils/handlers/collection/deleteHandler.ts","../src/utils/handlers/collection/getHandler.ts","../src/utils/handlers/collection/hasHandler.ts","../src/utils/handlers/collection/setHandler.ts","../src/utils/handlers/collection/clearHandler.ts","../src/utils/handlers/defaultHandler.ts","../src/utils/handlers/iterationHandler.ts","../src/utils/handlers/iteratorHandler.ts","../src/utils/handlers/array/producerHandler.ts","../src/utils/handlers/array/pickingHandler.ts","../src/utils/handlers/array/conflictHandler.ts","../src/utils/packHandlers.ts","../src/utils/createProxy.ts","../src/ref.ts"],"sourcesContent":["const Keys = {\n Get: 'get',\n Set: 'set',\n Add: 'add',\n Has: 'has',\n Delete: 'delete',\n Clear: 'clear',\n ForbiddenKeys: new Set(['__proto__', 'constructor', 'prototype']),\n} as const;\n\nexport default Keys;\n","const Symbols = {\n IsProxy: Symbol('is_proxy'),\n RawObject: Symbol('raw_object'),\n} as const;\n\nexport default Symbols;\n","const MutationArrayMethods = new Set([\n 'copyWithin',\n 'fill',\n 'push',\n 'reverse',\n 'unshift',\n] as const);\n\nexport type MutationArrayMethods = typeof MutationArrayMethods extends Set<infer T> ? T: never;\nexport default MutationArrayMethods;","const ProducerArrayMethods = new Set([\n 'concat',\n 'flat',\n 'slice',\n 'toReversed',\n 'toSpliced',\n 'with',\n] as const);\n\nexport type ProducerArrayMethods = typeof ProducerArrayMethods extends Set<infer T> ? T: never;\nexport default ProducerArrayMethods;\n","const IterationArrayMethods = new Set([\n 'every',\n 'findIndex',\n 'findLastIndex',\n 'flatMap',\n 'forEach',\n 'map',\n 'reduce',\n 'reduceRight',\n 'some',\n] as const);\n\nexport type IterationArrayMethods = typeof IterationArrayMethods extends Set<infer T> ? T : never;\nexport default IterationArrayMethods;\n","const IteratorMethods = new Set([\n 'entries',\n 'keys',\n 'values',\n Symbol.iterator,\n] as const);\n\nexport type IteratorMethods = typeof IteratorMethods extends Set<infer T> ? T: never;\nexport default IteratorMethods;\n","const LookupArrayMethods = new Set([\n 'includes',\n 'indexOf',\n 'lastIndexOf',\n] as const);\n\nexport type LookupArrayMethods = typeof LookupArrayMethods extends Set<infer T> ? T: never;\nexport default LookupArrayMethods;\n","const PickingArrayMethods = new Set(['at'] as const);\n\nexport type PickingArrayMethods = typeof PickingArrayMethods extends Set<infer T> ? T: never;\nexport default PickingArrayMethods;\n","/**\n * Array methods that exhibit multiple reactive behaviors, potentially causing proxy conflicts.\n *\n * These methods can:\n * - both iterate and produce new arrays (`filter`, `toSorted`, `splice`)\n * - iterate while selecting specific elements (`find`, `findLast`)\n * - mutate the array while returning removed elements (`pop`, `shift`)\n * - both mutate and iterate (`sort`)\n *\n * Use these with the raw target rather than the proxied array to avoid inconsistent reactivity.\n */\nconst ConflictArrayMethods = new Set([\n 'filter', // iteration + producer\n 'find', // iteration + picking\n 'findLast', // iteration + picking\n 'pop', // mutation + picking\n 'shift', // mutation + picking\n 'sort', // iteration + mutation\n 'splice', // mutation + producer\n 'toSorted', // iteration + producer\n] as const);\n\nexport type ConflictArrayMethods = typeof ConflictArrayMethods extends Set<infer T> ? T : never;\nexport default ConflictArrayMethods;\n","const MutationTypedArrayMethods = new Set([\n 'copyWithin',\n 'fill',\n 'reverse',\n 'set',\n 'sort',\n] as const);\n\nexport type MutationTypedArrayMethods = typeof MutationTypedArrayMethods extends Set<infer T> ? T: never;\nexport default MutationTypedArrayMethods;\n","const IterationMapMethods = new Set(['forEach'] as const);\n\nexport type IterationMapMethods = typeof IterationMapMethods extends Set<infer T> ? T : never;\nexport default IterationMapMethods;\n","const IterationSetMethods = new Set(['forEach'] as const);\n\nexport type IterationSetMethods = typeof IterationSetMethods extends Set<infer T> ? T : never;\nexport default IterationSetMethods;\n","import Keys from \"../constants/keys\";\nimport Symbols from \"../constants/symbols\";\nimport createProxy from \"./createProxy\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\nexport function isForbiddenKey(key: any) {\n return Keys.ForbiddenKeys.has(key);\n}\n\nexport function isObject(value: any) {\n return typeof value === 'object' && value !== null;\n}\n\nexport function isTypedArray(value: any) {\n return ArrayBuffer.isView(value) && !(value instanceof DataView);\n}\n\nexport function isArray(value: any): boolean {\n return Array.isArray(value) || isTypedArray(value);\n}\n\nexport function isProxiable(value: any) {\n return isObject(value) || isArray(value);\n}\n\nexport function isProxy(value: object): boolean {\n return (value as any)[Symbols.IsProxy] ?? false;\n}\n\nexport function isProxyTry(value: any) {\n return isProxiable(value) && isProxy(value);\n}\n\nexport function isMapCollection(target: object) {\n return target instanceof Map || target instanceof WeakMap;\n}\n\nexport function isSetCollection(target: object) {\n return target instanceof Set || target instanceof WeakSet;\n}\n\nexport function isStrongCollection(target: object) {\n return target instanceof Map || target instanceof Set;\n}\n\nexport function isCollection(target: object) {\n return isMapCollection(target) || isSetCollection(target);\n}\n\nexport function getRaw(proxy: object): object {\n return (proxy as any)[Symbols.RawObject];\n}\n\nexport function getWeakValue(target: WeakMap<any, any> | WeakSet<any>, key: any) {\n if (target instanceof WeakMap) {\n return target.get(key);\n } else if (target.has(key)) {\n return key;\n }\n return undefined;\n}\n\nexport function getRawTry(value: any) {\n if (isProxyTry(value)) {\n return getRaw(value);\n }\n return value;\n}\n\nexport function createProxyTry<T extends object>(\n ...args: Parameters<typeof createProxy<T>>\n) {\n const [value] = args;\n if (isProxiable(value)) {\n return createProxy(...args);\n }\n return value;\n}\n\nexport function toRawArgs(args: any[]) {\n return args.map(each => getRawTry(each));\n}\n\nexport function toProxiedItems(array: any[], cache: CacheProxy, onChange: OnChangeHandler) {\n return array.map(each => createProxyTry(each, cache, onChange, false));\n}\n\n/**\n * Wraps callback functions passed to array/map/set iteration methods\n * to ensure reactive proxy values are passed to the original callback.\n */\nexport function createCallbackArgs(cache: CacheProxy, onChange: OnChangeHandler, ...args: any[]) {\n if (args.length > 0) {\n const [callbackFn, ...restArgs] = args;\n if (typeof callbackFn === 'function') {\n function callback(this: any, ...callbackArgs: any[]) {\n const proxiedArgs = callbackArgs.map(arg => createProxyTry(arg, cache, onChange));\n return callbackFn.apply(this, proxiedArgs);\n }\n return [callback, ...restArgs];\n }\n }\n return args;\n}\n\nexport function checkCache(value: any, cache: CacheProxy) {\n if (isProxyTry(value)) {\n cache.set(getRaw(value), value);\n }\n}\n\nexport function isPlainObject(value: any): boolean {\n if (Object.prototype.toString.call(value) !== '[object Object]') return false;\n const proto = Object.getPrototypeOf(value);\n return proto === Object.prototype || !!value.constructor;\n}\n","import { LookupArrayMethods } from \"../../../constants/lookupMethods/array\";\nimport { toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Handles \"lookup\" methods on arrays such as `includes`, `indexOf`, and `lastIndexOf`.\n * Converts any proxied arguments to raw values before calling the native method.\n */\nexport default function lookupArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: LookupArrayMethods,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n return (target as any)[key].apply(this, rawArgs);\n}\n","import { MutationArrayMethods } from \"../../../constants/mutationMethods/array\";\nimport { MutationTypedArrayMethods } from \"../../../constants/mutationMethods/typedArray\";\nimport { toRawArgs } from \"../../utils\";\nimport { TypedArray } from \"../../../types/types\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\ntype MutationKey<T> = T extends any[] ?\n MutationArrayMethods :\n MutationTypedArrayMethods;\n\n/**\n * Handles mutation methods on arrays or typed arrays.\n *\n * Supports `copyWithin`, `fill`, `push`, etc.\n * - Converts proxied arguments to raw values.\n * - Triggers `onChange` after mutation.\n */\nexport default function mutationArrayHandler<T extends any[] | TypedArray>(\n // expect raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: MutationKey<T>,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const rawArgs = proxy ? toRawArgs(args) : args;\n const value = (target as any)[key].apply(this, rawArgs);\n proxy && onChange({\n target: proxy,\n action: key,\n key: undefined,\n value: args,\n prevValue: undefined\n });\n return value;\n}\n","import { getRawTry } from \"../../utils\";\nimport { OnChangeHandler } from \"../../../types/ref\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Handles adding a value to a Set or WeakSet.\n *\n * Behavior:\n * - Converts proxied values to raw objects to avoid double-proxy issues.\n * - Only triggers `onChange` if the value was not already present in the Set/WeakSet.\n * - Returns the proxy itself for fluent use.\n */\nexport default function addHandler<T extends Set<any> | WeakSet<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [value] = args;\n const rawValue = proxy ? getRawTry(value) : value;\n const hasValue = target.has.call(this, rawValue);\n if (!hasValue) {\n target.add.call(this, rawValue);\n proxy && onChange({\n target: proxy,\n action: 'add',\n key: value,\n value,\n prevValue: undefined,\n });\n }\n return proxy ?? this;\n}\n","import { getWeakValue, getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles deleting a key/value from Map, Set, WeakMap, or WeakSet.\n *\n * Behavior:\n * - Converts proxied keys to their raw versions to maintain correct identity.\n * - For Map/WeakMap, also retrieves the previous value via `getWeakValue`.\n * - Removes any cached proxies for the deleted key and, if applicable, the value.\n * - Triggers `onChange` only if deletion actually occurs.\n */\nexport default function deleteHandler<T extends\n | Map<any, any>\n | Set<any>\n | WeakMap<any, any>\n | WeakSet<any>\n>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [key] = args;\n const rawKey = proxy ? getRawTry(key) : key;\n const prevValue = getWeakValue(this, rawKey);\n const deleted = target.delete.call(this, rawKey);\n if (deleted && proxy) {\n onChange({\n target: proxy,\n action: 'delete',\n key,\n value: undefined,\n prevValue\n });\n }\n return deleted;\n}\n","import { createProxyTry, getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles getting a value from a Map or WeakMap.\n *\n * Behavior:\n * - Converts a proxied key to its raw value to correctly access the Map/WeakMap.\n * - If the retrieved value is creatable (object/array), wraps it in a proxy to maintain reactivity.\n * - Does not modify the original collection.\n */\nexport default function getHandler<T extends Map<any, any> | WeakMap<any, any>>(\n // expects raw object,\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const [key] = args;\n const rawKey = isProxied ? getRawTry(key) : key;\n const value = target.get.call(this, rawKey);\n return isProxied ? createProxyTry(value, cache, onChange) : value;\n}\n","import { getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\n\n/**\n * Checks whether a key exists in a Map, Set, WeakMap, or WeakSet.\n *\n * Behavior:\n * - Converts a proxied key to its raw value to ensure proper lookup.\n * - Works with all supported collections: Map, Set, WeakMap, WeakSet.\n * - Returns a boolean indicating presence.\n */\nexport default function hasHandler<T extends\n | Map<any, any>\n | Set<any>\n | WeakMap<any, any>\n | WeakSet<any>\n>(\n this: T,\n target: T,\n cache: CacheProxy,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const [key] = args;\n const rawKey = isProxied ? getRawTry(key) : key;\n return target.has.call(this, rawKey);\n}\n","import { getRawTry } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Sets a key-value pair in a Map or WeakMap with reactive tracking.\n *\n * Behavior:\n * - Converts proxied key and value to their raw counterparts.\n * - Only triggers `onChange` if the new value differs from the previous value.\n * - Removes any cached proxy associated with the previous value to prevent memory leaks.\n * - Returns the proxy for chaining.\n */\nexport default function setHandler<T extends Map<any, any> | WeakMap<any, any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n const [key, value] = args;\n const rawKey = proxy ? getRawTry(key) : key;\n const rawValue = proxy ? getRawTry(value) : value;\n const prevValue = target.get.call(this, rawKey);\n if (!Object.is(rawValue, prevValue)) {\n target.set.call(this, rawKey, rawValue);\n proxy && onChange({\n target: proxy,\n action: 'set',\n key,\n value,\n prevValue,\n });\n }\n return proxy ?? this;\n}\n","import { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles the `clear()` method for reactive Map/Set.\n *\n * - Clears the collection.\n * - Removes all entries from the proxy cache.\n * - Triggers the `onChange` callback if the collection was non-empty.\n */\nexport default function clearHandler<T extends Map<any, any> | Set<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n) {\n if (this.size > 0) {\n const proxy = cache.get(this);\n target.clear.call(this);\n proxy && onChange({\n target: proxy,\n action: 'clear',\n key: undefined,\n value: undefined,\n prevValue: undefined,\n });\n }\n}\n","import { isProxy, toRawArgs } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\n\n/**\n * Default handler for property or method access when no specialized\n * reactive handling is applied.\n *\n * Behavior:\n * - Calls the original method or accesses the property directly.\n * - Returns the result as-is without creating a reactive proxy.\n * - Suitable for native methods or properties where reactive wrapping\n * is not needed.\n */\nexport default function defaultHandler<T extends object>(\n // expects both raw and proxy object\n this: T,\n target: T,\n cache: CacheProxy,\n key: any,\n ...args: any[]\n) {\n const isProxied = isProxy(this) || cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n return (target as any)[key].apply(this, rawArgs);\n}\n","import { IterationArrayMethods } from \"../../constants/iterationMethods/array\";\nimport { IterationMapMethods } from \"../../constants/iterationMethods/map\";\nimport { IterationSetMethods } from \"../../constants/iterationMethods/set\";\nimport { createCallbackArgs } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\nimport { OnChangeHandler } from \"../../types/ref\";\n\ntype IterationKey<T> =\n T extends any[] ?\n IterationArrayMethods :\n T extends Map<any, any> ?\n IterationMapMethods :\n IterationSetMethods;\n\n/**\n * Handles iteration methods like `forEach`, `map`, `filter`, `some`, `every`, etc.\n * for Arrays, Maps, and Sets — ensuring their callbacks receive\n * proxied (reactive) elements.\n *\n * Behavior:\n * - Wraps the callback function so any values passed to it are automatically proxied.\n * - Calls the native iteration method with the wrapped callback and remaining args.\n * - Works with arrays, typed arrays, Maps, and Sets.\n */\nexport default function iterationHandler<T extends any[] | Map<any, any> | Set<any>>(\n //expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: IterationKey<T>,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const callbackArgs = isProxied ? createCallbackArgs(cache, onChange, ...args) : args;\n return (target as any)[key].apply(this, callbackArgs);\n}\n","import { IteratorMethods } from \"../../constants/iteratorMethods\";\nimport { createProxyTry, getRawTry, isMapCollection } from \"../utils\";\nimport { CacheProxy } from \"../../types/createProxy\";\nimport { OnChangeHandler } from \"../../types/ref\";\n\nexport function createProxiedIterator(\n iterator: Iterator<any>,\n ...args: Parameters<typeof iteratorHandler<\n any[] | Map<any, any> | Set<any>\n >>\n): Iterator<any> & Iterable<any> {\n const [thisTarget, cache, key, onChange] = args;\n const isTargetArray = Array.isArray(thisTarget);\n const isResultArray = key === 'entries' || (\n isMapCollection(thisTarget) && key === Symbol.iterator\n );\n const proxiedIterator = {\n next(this: any, value?: any) {\n const matchedIterator = this === proxiedIterator ? iterator : this;\n const rawIterator = getRawTry(matchedIterator);\n const result = iterator.next.call(rawIterator, value);\n if (!result.done) {\n if (isResultArray) {\n if (isTargetArray) {\n const [, item] = result.value;\n result.value[1] = createProxyTry(item, cache, onChange);\n } else {\n result.value = result.value.map((each: any) => createProxyTry(each, cache, onChange));\n }\n } else {\n result.value = createProxyTry(result.value, cache, onChange);\n }\n }\n return result;\n },\n [Symbol.iterator](this: any) {\n return getRawTry(this);\n }\n }\n return proxiedIterator;\n}\n\n/**\n * Wraps an iterator (from Array, Map, or Set) in a proxied version\n * so that values yielded during iteration remain reactive.\n *\n * Behavior:\n * - Calls the native iterator method (`Symbol.iterator`, `entries`, `values`, `keys`) on the target.\n * - Wraps each yielded value with `createProxyTry` so consumers get reactive objects.\n * - Preserves the iterable protocol (`[Symbol.iterator]()`) for `for..of` or spread operations.\n */\nexport default function iteratorHandler<T extends any[] | Map<any, any> | Set<any>>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: IteratorMethods,\n onChange: OnChangeHandler,\n) {\n const isProxied = cache.get(this);\n const iterator = target[key].call(this) as Iterator<any> & Iterable<any>;\n return isProxied ?\n createProxiedIterator(iterator, this, cache, key, onChange) :\n iterator;\n}\n","import { ProducerArrayMethods } from \"../../../constants/producerMethods/array\";\nimport { toProxiedItems, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles \"producer\" methods on arrays, such as `concat`, `slice`, `flat`, etc.\n *\n * Behavior:\n * - Converts proxied arguments to raw values to prevent double-proxy issues.\n * - Wraps returned arrays/items in proxies for reactive tracking.\n * - Original array is **not mutated** for immutable producer methods.\n */\nexport default function producerArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: ProducerArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n const value = target[key].apply(this, rawArgs);\n return isProxied ? toProxiedItems(value, cache, onChange) : value;\n}\n","import { PickingArrayMethods } from \"../../../constants/pickingMethods/array\";\nimport { createProxyTry, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles \"picking\" methods on arrays, currently only `at`.\n *\n * Behavior:\n * - Converts proxied arguments to raw values before calling the native method.\n * - Wraps the returned value in a proxy if it's a creatable object.\n * - Returns `undefined` or the proxied result.\n */\nexport default function pickingArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: PickingArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const isProxied = cache.has(this);\n const rawArgs = isProxied ? toRawArgs(args) : args;\n const value = (target as any)[key].apply(this, rawArgs);\n return isProxied ? createProxyTry(value, cache, onChange) : value;\n}\n","import { ConflictArrayMethods } from \"../../../constants/conflictMethods/array\";\nimport { createCallbackArgs, createProxyTry, toProxiedItems, toRawArgs } from \"../../utils\";\nimport { CacheProxy } from \"../../../types/createProxy\";\nimport { OnChangeHandler } from \"../../../types/ref\";\n\n/**\n * Handles array methods that have multiple behaviors (iteration, mutation, picking, or producing arrays)\n * in reactive proxied arrays. These \"conflict methods\" include:\n * \n * - filter, toSorted : iteration + producer → return new proxied array\n * - find, findLast : iteration + picking → return single proxied item\n * - sort : iteration + mutation → mutates in place, triggers onChange\n * - pop, shift : mutation + picking → remove item, return as proxied value\n * - splice : mutation + producer → remove/replace items, return removed items as proxied array\n * \n * This handler ensures that the returned values maintain reactivity and properly trigger the\n * onChange callback when mutations occur.\n */\nexport default function conflictArrayHandler<T extends any[]>(\n // expects raw object\n this: T,\n target: T,\n cache: CacheProxy,\n key: ConflictArrayMethods,\n onChange: OnChangeHandler,\n ...args: any[]\n) {\n const proxy = cache.get(this);\n let value: any;\n switch (key) {\n // iteration methods\n case \"filter\":\n case \"find\":\n case \"findLast\":\n case \"sort\":\n case \"toSorted\":\n const callbackArgs = proxy ? createCallbackArgs(cache, onChange, ...args) : args;\n value = (target as any)[key].apply(this, callbackArgs);\n switch (key) {\n // producer methods\n case \"filter\":\n case \"toSorted\":\n return proxy ? toProxiedItems(value, cache, onChange) : value;\n // picking methods\n case \"find\":\n case \"findLast\":\n return proxy ? createProxyTry(value, cache, onChange) : value;\n // mutation methods\n case \"sort\":\n proxy && onChange({\n target: proxy,\n action: 'sort',\n key: undefined,\n value: args,\n prevValue: undefined\n });\n return proxy ?? this;\n }\n // mutation methods\n case \"pop\":\n case \"shift\":\n case \"splice\":\n const rawArgs = proxy ? toRawArgs(args) : args;\n value = (target as any)[key].apply(this, rawArgs);\n proxy && onChange({\n target: proxy,\n action: key,\n key: undefined,\n value: args,\n prevValue: undefined\n });\n switch (key) {\n // picking methods\n case \"pop\":\n case \"shift\":\n return proxy ? createProxyTry(value, cache, onChange, false) : value;\n // producer methods\n case \"splice\":\n return proxy ? toProxiedItems(value, cache, onChange) : value;\n }\n }\n}\n","import lookupArrayHandler from \"./handlers/array/lookupHandler\";\nimport mutationArrayHandler from \"./handlers/array/mutateHandler\";\nimport addHandler from \"./handlers/collection/addHandler\";\nimport deleteHandler from \"./handlers/collection/deleteHandler\";\nimport getHandler from \"./handlers/collection/getHandler\";\nimport hasHandler from \"./handlers/collection/hasHandler\";\nimport setHandler from \"./handlers/collection/setHandler\";\nimport clearHandler from \"./handlers/collection/clearHandler\";\nimport defaultHandler from \"./handlers/defaultHandler\";\nimport iterationHandler from \"./handlers/iterationHandler\";\nimport iteratorHandler from \"./handlers/iteratorHandler\";\nimport producerArrayHandler from \"./handlers/array/producerHandler\";\nimport pickingArrayHandler from \"./handlers/array/pickingHandler\";\nimport conflictArrayHandler from \"./handlers/array/conflictHandler\";\nimport { checkCache, getRawTry, isPlainObject } from \"./utils\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\nfunction passThis<\n P extends ([target: any, cache: CacheProxy, ...args: any[]]),\n T extends ((...params: P) => any),\n>(\n handler: T,\n ...params: P\n) {\n return function (this: any, ...args: any[]) {\n const [target, cache] = params;\n let thisArg: any;\n if (isPlainObject(target)) {\n thisArg = this;\n } else {\n thisArg = getRawTry(this);\n }\n checkCache(this, cache);\n return handler.apply(thisArg, params.concat(args) as P);\n }\n}\n\n/**\n * Packs and binds all handler functions with shared context.\n *\n * Each handler receives the `target`, `key`, `cache`, and `onChange` references,\n * ensuring consistent behavior across mutation, lookup, and iteration operations.\n *\n * @param target The raw target object being proxied.\n * @param key The property key currently being accessed.\n * @param cache WeakMap used for proxy–raw mapping to maintain identity.\n * @param onChange Callback invoked when a reactive change occurs.\n * @returns An object containing all pre-bound handler functions.\n */\nexport default function packHandlers(\n target: any,\n key: any,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n) {\n return {\n conflictArrayHandler: passThis(conflictArrayHandler, target, cache, key, onChange),\n mutationArrayHandler: passThis(mutationArrayHandler, target, cache, key, onChange),\n producerArrayHandler: passThis(producerArrayHandler, target, cache, key, onChange),\n iterationHandler: passThis(iterationHandler, target, cache, key, onChange),\n iteratorHandler: passThis(iteratorHandler, target, cache, key, onChange),\n lookupArrayHandler: passThis(lookupArrayHandler, target, cache, key),\n pickingArrayHandler: passThis(pickingArrayHandler, target, cache, key, onChange),\n getHandler: passThis(getHandler, target, cache, onChange),\n setHandler: passThis(setHandler, target, cache, onChange),\n addHandler: passThis(addHandler, target, cache, onChange),\n hasHandler: passThis(hasHandler, target, cache),\n deleteHandler: passThis(deleteHandler, target, cache, onChange),\n clearHandler: passThis(clearHandler, target, cache, onChange),\n defaultHandler: passThis(defaultHandler, target, cache, key),\n }\n}\n","import Keys from \"../constants/keys\";\nimport Symbols from \"../constants/symbols\";\nimport MutationArrayMethods from \"../constants/mutationMethods/array\";\nimport ProducerArrayMethods from \"../constants/producerMethods/array\";\nimport IterationArrayMethods from \"../constants/iterationMethods/array\";\nimport IteratorMethods from \"../constants/iteratorMethods\";\nimport LookupArrayMethods from \"../constants/lookupMethods/array\";\nimport PickingArrayMethods from \"../constants/pickingMethods/array\";\nimport ConflictArrayMethods from \"../constants/conflictMethods/array\";\nimport MutationTypedArrayMethods from \"../constants/mutationMethods/typedArray\";\nimport IterationMapMethods from \"../constants/iterationMethods/map\";\nimport IterationSetMethods from \"../constants/iterationMethods/set\";\nimport packHandlers from \"./packHandlers\";\nimport {\n isProxy,\n isMapCollection,\n isSetCollection,\n isCollection,\n isForbiddenKey,\n isTypedArray,\n isStrongCollection,\n isProxiable\n} from \"./utils\";\nimport { CacheProxy } from \"../types/createProxy\";\nimport { OnChangeHandler } from \"../types/ref\";\n\n/**\n * Recursively creates a reactive Proxy around an object, array, or collection.\n *\n * Features:\n * - Reuses cached proxies to maintain reference consistency.\n * - Automatically packs specialized handlers for arrays, maps, and sets.\n * - Triggers `onChange` when properties or collections are mutated.\n * - Safely skips forbidden or internal keys (like Symbols.RawObject).\n *\n * @param content Target object or collection to proxy.\n * @param cache WeakMap used to store raw-to-proxy mappings for identity preservation.\n * @param onChange Callback triggered when reactive mutations occur.\n * @param saveProxy Whether to store the proxy in cache (defaults to true).\n * @returns A reactive Proxy wrapping the original content.\n */\nexport default function createProxy<T extends object>(\n content: T,\n cache: CacheProxy,\n onChange: OnChangeHandler,\n saveProxy?: boolean,\n) {\n if (isProxy(content)) return content;\n const cachedProxy = cache.get(content);\n if (cachedProxy) return cachedProxy;\n\n let fromSetTrap = false;\n const proxy = new Proxy(content, {\n get(target: any, key: any, receiver) {\n if (key === Symbols.IsProxy) return true;\n if (key === Symbols.RawObject) return content;\n let value: any;\n try { value = Reflect.get(target, key, receiver); }\n catch { value = Reflect.get(target, key); }\n if (!(isForbiddenKey(key) || value === undefined)) {\n if (isProxiable(value)) {\n return createProxy(value, cache, onChange);\n } else if (typeof value === 'function') {\n const handlers = packHandlers(target, key, cache, onChange);\n if (Array.isArray(target)) {\n if (ConflictArrayMethods.has(key)) return handlers.conflictArrayHandler;\n if (MutationArrayMethods.has(key)) return handlers.mutationArrayHandler;\n if (ProducerArrayMethods.has(key)) return handlers.producerArrayHandler;\n if (IterationArrayMethods.has(key)) return handlers.iterationHandler;\n if (IteratorMethods.has(key)) return handlers.iteratorHandler;\n if (LookupArrayMethods.has(key)) return handlers.lookupArrayHandler;\n if (PickingArrayMethods.has(key)) return handlers.pickingArrayHandler;\n }\n if (isTypedArray(target) && MutationTypedArrayMethods.has(key)) {\n return handlers.mutationArrayHandler;\n }\n if (isMapCollection(target)) {\n if (key === Keys.Get) return handlers.getHandler;\n if (key === Keys.Set) return handlers.setHandler;\n }\n if (isSetCollection(target) && key === Keys.Add) {\n return handlers.addHandler;\n }\n if (\n (target instanceof Map && IterationMapMethods.has(key)) ||\n (target instanceof Set && IterationSetMethods.has(key))\n ) {\n return handlers.iterationHandler;\n }\n if (isStrongCollection(target)) {\n if (key === Keys.Clear) return handlers.clearHandler;\n if (IteratorMethods.has(key)) return handlers.iteratorHandler;\n }\n if (isCollection(target)) {\n if (key === Keys.Has) return handlers.hasHandler;\n if (key === Keys.Delete) return handlers.deleteHandler;\n }\n return handlers.defaultHandler;\n }\n }\n return value;\n },\n set(target, key, newValue, receiver) {\n if (isForbiddenKey(key)) return true;\n const prevValue = target[key];\n if (!Object.is(prevValue, newValue)) {\n fromSetTrap = true;\n const updated = Reflect.set(target, key, newValue, receiver);\n fromSetTrap = false;\n if (updated) {\n onChange({\n target: proxy,\n action: 'set',\n key,\n value: newValue,\n prevValue,\n });\n }\n return updated;\n };\n return true;\n },\n deleteProperty(target, key) {\n if (isForbiddenKey(key)) return true;\n const hasKey = Object.prototype.hasOwnProperty.call(target, key);\n if (hasKey) {\n const prevValue = target[key];\n const deleted = Reflect.deleteProperty(target, key);\n if (deleted) {\n onChange({\n target: proxy,\n action: 'delete',\n key,\n value: undefined,\n prevValue\n });\n }\n return deleted;\n };\n return true;\n },\n defineProperty(target, key, attributes) {\n if (isForbiddenKey(key)) return true;\n const prevValue = target[key];\n const defined = Reflect.defineProperty(target, key, attributes);\n if (!fromSetTrap && defined) {\n const newValue = attributes.value;\n if (!Object.is(prevValue, newValue)) {\n onChange({\n target: proxy,\n action: 'define',\n key,\n value: newValue,\n prevValue,\n });\n }\n }\n return defined;\n },\n setPrototypeOf() {\n return true;\n },\n });\n if (saveProxy ?? true) {\n cache.set(content, proxy);\n }\n return proxy;\n}\n","import createProxy from './utils/createProxy';\nimport { OnChangeHandler, Ref, RefOptions } from './types/ref';\n\n/**\n * Creates a reactive reference object.\n *\n * - `value`: the reactive value.\n * - `onchange`: callback triggered on every change.\n * - `options.cache`: optional WeakMap for shared proxy identity.\n *\n * Example:\n * ```ts\n * const count = ref(0, (e) => console.log(e.value));\n * count.value = 5; // triggers onchange\n * ```\n *\n * @param initial Initial value.\n * @param onchange Callback that receives ChangeEvent on every change.\n * @param options Optional RefOptions (only `cache` is used by ref).\n * @returns A reactive Ref object.\n */\nfunction ref<T>(initial: T, onchange: OnChangeHandler, options?: RefOptions): Ref<T> {\n const cache = options?.cache ?? new WeakMap();\n return createProxy(Object.preventExtensions({ value: initial }), cache, onchange);\n}\n\nexport default ref;\n"],"names":["Keys","Get","Set","Add","Has","Delete","Clear","ForbiddenKeys","Symbols","Symbol","MutationArrayMethods","ProducerArrayMethods","IterationArrayMethods","IteratorMethods","iterator","LookupArrayMethods","PickingArrayMethods","ConflictArrayMethods","MutationTypedArrayMethods","IterationMapMethods","IterationSetMethods","isForbiddenKey","key","has","isTypedArray","value","ArrayBuffer","isView","DataView","isProxiable","isObject","Array","isArray","isProxy","isProxyTry","isMapCollection","target","Map","WeakMap","isSetCollection","WeakSet","getRaw","proxy","getRawTry","createProxyTry","args","createProxy","toRawArgs","map","each","toProxiedItems","array","cache","onChange","createCallbackArgs","length","callbackFn","restArgs","callback","callbackArgs","proxiedArgs","arg","apply","this","lookupArrayHandler","rawArgs","mutationArrayHandler","get","action","undefined","prevValue","addHandler","rawValue","call","add","deleteHandler","rawKey","getWeakValue","deleted","delete","getHandler","isProxied","hasHandler","setHandler","Object","is","set","clearHandler","size","clear","defaultHandler","iterationHandler","iteratorHandler","thisTarget","isTargetArray","isResultArray","proxiedIterator","next","rawIterator","result","done","item","createProxiedIterator","producerArrayHandler","pickingArrayHandler","conflictArrayHandler","passThis","handler","params","thisArg","prototype","toString","getPrototypeOf","constructor","checkCache","concat","content","saveProxy","cachedProxy","fromSetTrap","Proxy","receiver","Reflect","handlers","packHandlers","isStrongCollection","isCollection","newValue","updated","deleteProperty","hasOwnProperty","defineProperty","attributes","defined","setPrototypeOf","ref","initial","onchange","options","preventExtensions"],"mappings":"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"}
|