flexium 0.10.3 → 0.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/core/state.ts"],"names":["STATE_SIGNAL","depMap","boxToKeyMap","targetBoxMap","getDep","target","key","initialValue","deps","dep","currentVal","SignalNode","hybridHandlers","prop","box","updateStateMetadata","isSignalLike","innerValue","val","args","result","createNestedProxy","newValue","success","desc","nestedHandlers","receiver","nestedProxyCache","proxy","proxyCache","createHybridProxy","currentComponent","setCurrentComponent","instance","createComponentInstance","resetHookIndex","globalStateRegistry","namespaceRegistry","stateMetadata","autoCleanupConfig","autoCleanupInterval","performAutoCleanup","DEV_WARNING_THRESHOLD","hasWarnedAboutSize","keyCache","serializeKey","cached","serialized","registerStateInNamespace","namespace","unregisterStateFromNamespace","set","signalRefTarget","now","existing","keysToRemove","metadata","state","isStateValue","value","getStateSignal","stateValue","equals","isTruthy","stateImplementation","initialValueOrFetcher","options","comp","hookIndex","saved","res","rawKey","params","entry","setter","refetch","statusProxy","errorProxy","originalFn","fn","testResult","actions","createResource","v","statusComp","ComputedNode","errorComp","node","sKey","meta","prefix","prefixStr","cleared","keysToDelete","raw","k","byNamespace","ns","keys","totalAccess","m","c","a","b","pStr","states","matched","ref","initial"],"mappings":"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","file":"chunk-RSI6RYJ7.js","sourcesContent":["import { SignalNode, ComputedNode, createResource } from './signal'\n\n\n\n/** Symbol to identify StateProxy and access underlying signal */\nexport const STATE_SIGNAL = Symbol.for('flexium.stateSignal')\n\n/**\n * ------------------------------------------------------------------\n * Hybrid Proxy Architecture: Support Types\n * ------------------------------------------------------------------\n */\n\n/**\n * A \"Box\" is any object with a `value` property.\n * It serves as the stable target for our Proxy.\n */\ninterface Box<T> {\n get(): T\n set?(value: T): void\n peek(): T\n}\n\n/**\n * Dependency Map: Stores signals for object properties.\n * Key: Target Object (The inner value, OR the Box itself)\n * Value: Map<PropertyKey, Signal>\n */\n// Need to allow getDep to access SignalNode methods\nconst depMap = new WeakMap<object, Map<string | symbol, SignalNode<unknown>>>()\nconst boxToKeyMap = new WeakMap<object, string>()\nconst targetBoxMap = new WeakMap<object, Box<any>>()\n\nfunction getDep(target: object, key: string | symbol, initialValue?: unknown): SignalNode<unknown> {\n let deps = depMap.get(target)\n if (!deps) {\n deps = new Map()\n depMap.set(target, deps)\n }\n let dep = deps.get(key)\n if (!dep) {\n const currentVal = initialValue !== undefined ? initialValue : Reflect.get(target, key)\n dep = new SignalNode(currentVal)\n deps.set(key, dep)\n }\n return dep\n}\n\n/**\n * ------------------------------------------------------------------\n * Hybrid Proxy Handler\n * ------------------------------------------------------------------\n */\nconst hybridHandlers: ProxyHandler<Box<any>> = {\n get(target, prop) {\n const box = targetBoxMap.get(target)!\n if (prop === STATE_SIGNAL) return box\n\n // Access Tracking\n const key = boxToKeyMap.get(box)\n if (key) updateStateMetadata(key)\n\n if (prop === 'peek') {\n return box.peek.bind(box)\n }\n\n // Reactivity for the Root Value\n // Reactivity for the Root Value\n const isSignalLike = typeof (box as any).peek === 'function' && typeof (box as any).get === 'function'\n let innerValue: any\n\n if (isSignalLike) {\n innerValue = box.get()\n } else {\n getDep(box, 'value') // Should not happen if box is always a Node\n innerValue = box.get()\n }\n\n if (prop === Symbol.toPrimitive || prop === 'valueOf') {\n return () => innerValue\n }\n\n if (prop === Symbol.iterator) {\n // Track iteration\n getDep(innerValue, 'length').get()\n getDep(innerValue, 'iterate').get()\n return (innerValue as any)[Symbol.iterator].bind(innerValue)\n }\n\n // Recursive Forwarding\n if (innerValue !== null && typeof innerValue === 'object') {\n const val = Reflect.get(innerValue, prop)\n\n if (typeof val === 'function') {\n // Special handling for Array mutation methods\n if (Array.isArray(innerValue) && ['push', 'pop', 'shift', 'unshift', 'splice', 'sort', 'reverse'].includes(prop as string)) {\n return function (...args: any[]) {\n const result = (val as Function).apply(innerValue, args)\n // If innerValue is the root value of the box:\n if (innerValue === box.get()) {\n const dep = getDep(box, 'value')\n dep.set(innerValue) // force notify even if value is same object\n }\n\n // Arrays are tricky. We usually subscribe to 'iterate' or 'length'.\n // Notify length\n getDep(innerValue, 'length').set(innerValue.length)\n\n // Also notify 'iterate' key which `ownKeys` uses?\n // Or just force notify 'value' if it's the root.\n if (innerValue === box.get()) {\n getDep(box, 'value').get()\n }\n\n return result\n }\n }\n if (Array.isArray(innerValue)) {\n // Fix for .concat(): Array.prototype.concat treats proxies as objects unless Symbol.isConcatSpreadable is handled,\n // OR we bind to the raw array so it doesn't see the proxy.\n // But binding to 'receiver' (the proxy) is usually correct for other methods.\n // However, for .concat, we likely want the raw array behavior or correct proxy handling.\n // Simple fix: bind to innerValue (raw array) for non-mutating methods too, \n // or at least for concat if it causes issues.\n // .map, .filter etc return new arrays, so binding to innerValue is fine.\n return (val as Function).bind(innerValue)\n }\n return (innerValue as any)[prop].bind(innerValue)\n }\n\n getDep(innerValue, prop, val).get()\n\n if (val !== null && typeof val === 'object') {\n return createNestedProxy(val)\n }\n return val\n }\n\n const val = (innerValue as any)[prop]\n return typeof val === 'function' ? val.bind(innerValue) : val\n },\n\n set(target, prop, newValue) {\n const box = targetBoxMap.get(target)!\n const innerValue = box.get()\n if (innerValue !== null && typeof innerValue === 'object') {\n const success = Reflect.set(innerValue, prop, newValue)\n getDep(innerValue, prop).set(newValue)\n return success\n }\n return false\n },\n\n has(target, prop) {\n const box = targetBoxMap.get(target)!\n if (prop === STATE_SIGNAL) return true\n const innerValue = box.get()\n if (innerValue === null) return false\n if (typeof innerValue === 'object') {\n return Reflect.has(innerValue, prop)\n }\n return false // primitives don't have own properties usually, but 'toFixed' is in proto\n },\n\n ownKeys(target) {\n const box = targetBoxMap.get(target)!\n const innerValue = box.get()\n\n if (innerValue === null || typeof innerValue !== 'object') {\n return Reflect.ownKeys(target)\n }\n\n // Arrays need special handling for iteration\n if (Array.isArray(innerValue)) {\n getDep(innerValue, 'length').get()\n getDep(innerValue, 'iterate').get()\n } else {\n // Objects \n getDep(innerValue, 'iterate').get()\n }\n\n return Reflect.ownKeys(innerValue)\n },\n\n getOwnPropertyDescriptor(target, prop) {\n const box = targetBoxMap.get(target)!\n if (prop === STATE_SIGNAL) {\n return { configurable: true, enumerable: false, value: box }\n }\n const innerValue = box.get()\n\n if (innerValue === null || typeof innerValue !== 'object') {\n return undefined\n }\n\n const desc = Reflect.getOwnPropertyDescriptor(innerValue, prop)\n if (desc) {\n desc.configurable = true\n }\n return desc\n }\n}\n\nconst nestedHandlers: ProxyHandler<object> = {\n get(target, prop, receiver) {\n if (prop === STATE_SIGNAL) return target\n const val = Reflect.get(target, prop, receiver)\n getDep(target, prop, val).get()\n if (val !== null && typeof val === 'object') {\n return createNestedProxy(val)\n }\n return val\n },\n set(target, prop, newValue, receiver) {\n const success = Reflect.set(target, prop, newValue, receiver)\n if (success) {\n getDep(target, prop).set(newValue)\n }\n return success\n },\n has(target, prop) {\n if (prop === STATE_SIGNAL) return true\n return Reflect.has(target, prop)\n }\n}\n\nconst nestedProxyCache = new WeakMap<object, any>()\n\nfunction createNestedProxy<T extends object>(target: T): T {\n let proxy = nestedProxyCache.get(target)\n if (!proxy) {\n proxy = new Proxy(target, nestedHandlers)\n nestedProxyCache.set(target, proxy)\n }\n return proxy\n}\n\n// Cache for Hybrid Proxies (keyed by Box/Signal)\nconst proxyCache = new WeakMap<object, any>()\n\nfunction createHybridProxy<T>(box: Box<T>): StateValue<T> {\n let proxy = proxyCache.get(box)\n if (proxy) return proxy\n\n // The target is a function so that the proxy is callable `state()`, returns value.\n const target = () => box.get()\n targetBoxMap.set(target, box)\n // Object.assign(target, box) // REMOVED: Do not copy properties, prevents stale values\n\n proxy = new Proxy(target as any, hybridHandlers) as StateValue<T>\n proxyCache.set(box, proxy)\n return proxy\n}\n\n/**\n * ------------------------------------------------------------------\n * Component Hook System\n * ------------------------------------------------------------------\n */\ninterface ComponentInstance {\n id: symbol\n hookIndex: number\n hooks: unknown[]\n}\n\nlet currentComponent: ComponentInstance | null = null\n\nexport function setCurrentComponent(instance: ComponentInstance | null): void {\n currentComponent = instance\n}\n\nexport function getCurrentComponent(): ComponentInstance | null {\n return currentComponent\n}\n\nexport function createComponentInstance(): ComponentInstance {\n return {\n id: Symbol('component'),\n hookIndex: 0,\n hooks: [],\n }\n}\n\nexport function resetHookIndex(instance: ComponentInstance): void {\n instance.hookIndex = 0\n}\n\n/**\n * ------------------------------------------------------------------\n * Global State Registry & Metadata\n * ------------------------------------------------------------------\n */\ninterface RegistryEntry {\n box: Box<any>\n proxy: StateValue<any>\n setter: StateAction<any> | undefined\n refetch?: () => void\n status?: StateValue<AsyncStatus>\n error?: StateValue<unknown>\n key?: string\n namespace?: string\n\n // Keep compatibility with old StateObject for metadata utils\n // We can just add metadata fields here or map them\n createdAt: number\n lastAccessed: number\n accessCount: number\n referenceCount: number\n}\n\nconst globalStateRegistry = new Map<string, RegistryEntry>()\nconst namespaceRegistry = new Map<string, Set<string>>()\n// We'll store metadata directly in RegistryEntry for simplicity in this refactor\n// OR keep existing `stateMetadata` map if we want to separate concerns.\n// Let's reuse `stateMetadata` approach for less friction with existing utils.\n\ninterface StateMetadata {\n key: string\n namespace?: string\n createdAt: number\n lastAccessed: number\n accessCount: number\n referenceCount: number\n signalRef?: WeakRef<any>\n}\nconst stateMetadata = new Map<string, StateMetadata>()\n\ninterface AutoCleanupConfig {\n enabled: boolean\n maxIdleTime: number\n checkInterval: number\n minAccessCount: number\n}\n\nlet autoCleanupConfig: AutoCleanupConfig = {\n enabled: true,\n maxIdleTime: 5 * 60 * 1000,\n checkInterval: 60 * 1000,\n minAccessCount: 0,\n}\n\nlet autoCleanupInterval: AnyInterval | null = null\ntype AnyInterval = ReturnType<typeof setInterval>\n\nif (typeof window !== 'undefined' || typeof globalThis !== 'undefined') {\n setTimeout(() => {\n if (autoCleanupConfig.enabled && !autoCleanupInterval) {\n autoCleanupInterval = setInterval(performAutoCleanup, autoCleanupConfig.checkInterval)\n }\n }, 0)\n}\n\nconst DEV_WARNING_THRESHOLD = 10000\nlet hasWarnedAboutSize = false\n\n/**\n * ------------------------------------------------------------------\n * Helper Functions\n * ------------------------------------------------------------------\n */\nexport type StateKey = string | readonly (string | number | boolean | null | undefined | object)[]\nconst keyCache = new WeakMap<readonly unknown[], string>()\n\nfunction serializeKey(key: StateKey): string {\n if (typeof key === 'string') return key\n const cached = keyCache.get(key)\n if (cached !== undefined) return cached\n try {\n const serialized = JSON.stringify(key)\n keyCache.set(key, serialized)\n return serialized\n } catch (error) {\n const fallback = String(key)\n return fallback\n }\n}\n\nfunction registerStateInNamespace(key: string, namespace?: string): void {\n if (!namespace) return\n if (!namespaceRegistry.has(namespace)) namespaceRegistry.set(namespace, new Set())\n namespaceRegistry.get(namespace)!.add(key)\n}\n\nfunction unregisterStateFromNamespace(key: string, namespace?: string): void {\n if (!namespace) return\n const set = namespaceRegistry.get(namespace)\n if (set) {\n set.delete(key)\n if (set.size === 0) namespaceRegistry.delete(namespace)\n }\n}\n\nfunction updateStateMetadata(key: string, namespace?: string, signalRefTarget?: any): void {\n const now = Date.now()\n const existing = stateMetadata.get(key)\n\n if (existing) {\n existing.lastAccessed = now\n existing.accessCount++\n existing.referenceCount++\n if (namespace && existing.namespace !== namespace) {\n if (existing.namespace) unregisterStateFromNamespace(key, existing.namespace)\n existing.namespace = namespace\n registerStateInNamespace(key, namespace)\n }\n } else {\n stateMetadata.set(key, {\n key,\n namespace,\n createdAt: now,\n lastAccessed: now,\n accessCount: 1,\n referenceCount: 1,\n signalRef: signalRefTarget && typeof WeakRef !== 'undefined' ? new WeakRef(signalRefTarget) : undefined\n })\n registerStateInNamespace(key, namespace)\n }\n}\n\nfunction performAutoCleanup(): void {\n if (!autoCleanupConfig.enabled) return\n const now = Date.now()\n const keysToRemove: string[] = []\n\n for (const [key, metadata] of stateMetadata.entries()) {\n if (metadata.signalRef && typeof WeakRef !== 'undefined') {\n const sig = metadata.signalRef.deref()\n if (!sig) {\n keysToRemove.push(key)\n continue\n }\n }\n const idleTime = now - metadata.lastAccessed\n if (idleTime > autoCleanupConfig.maxIdleTime && metadata.referenceCount === 0 && metadata.accessCount >= autoCleanupConfig.minAccessCount) {\n keysToRemove.push(key)\n }\n }\n\n for (const key of keysToRemove) {\n state.delete(key)\n }\n\n if (keysToRemove.length > 0 && typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production') {\n console.log(`[Flexium] Auto-cleaned ${keysToRemove.length} idle states`)\n }\n}\n\n/**\n * ------------------------------------------------------------------\n * Main State API\n * ------------------------------------------------------------------\n */\nexport type StateAction<T> = (newValue: T | ((prev: T) => T)) => void\nexport type StateValue<T> = T & (() => T) & { peek(): T }\nexport type AsyncStatus = 'idle' | 'loading' | 'success' | 'error'\nexport interface StateOptions<P = unknown> {\n key?: StateKey\n params?: P\n}\n\nexport function isStateValue(value: unknown): boolean {\n // Hybrid proxies are functions\n return (typeof value === 'object' || typeof value === 'function') && value !== null && STATE_SIGNAL in value\n}\n\n// Helper to get the underlying signal from a StateValue\nexport function getStateSignal(stateValue: unknown): SignalNode<unknown> | ComputedNode<unknown> | null {\n if (isStateValue(stateValue)) return (stateValue as any)[STATE_SIGNAL]\n return null\n}\n\nexport function equals<T>(stateValue: StateValue<T>, value: T): boolean {\n if (!isStateValue(stateValue)) return false\n return stateValue.peek() === value\n}\n\nexport function isTruthy<T>(stateValue: StateValue<T>): boolean {\n if (!isStateValue(stateValue)) return false\n return Boolean(stateValue.peek())\n}\n\nexport interface StateStats {\n total: number\n byNamespace: Record<string, number>\n topNamespaces: Array<{ namespace: string; count: number }>\n averageAccessCount: number\n}\n\nexport interface NamespaceStats {\n namespace: string\n count: number\n totalAccessCount: number\n averageAccessCount: number\n states: Array<{ key: string; accessCount: number; createdAt: number }>\n}\n\ninterface StateFunction {\n <T>(initialValue: T, options?: StateOptions): [StateValue<T>, StateAction<T>]\n <T, P>(computeFn: (params: P) => T, options: StateOptions<P> & { params: P }): [StateValue<T>]\n <T>(computeFn: () => T, options?: StateOptions): [StateValue<T>]\n <T, P>(fetcher: (params: P) => Promise<T>, options: StateOptions<P> & { params: P }): [StateValue<T | undefined>, () => void, StateValue<AsyncStatus>, StateValue<unknown>]\n <T>(fetcher: () => Promise<T>, options?: StateOptions): [StateValue<T | undefined>, () => void, StateValue<AsyncStatus>, StateValue<unknown>]\n\n delete: (key: StateKey) => boolean\n clear: () => void\n clearByPrefix: (prefix: StateKey) => number\n has: (key: StateKey) => boolean\n readonly size: number\n getStats: () => StateStats\n getNamespaceStats: (prefix: StateKey) => NamespaceStats\n enableAutoCleanup: (config?: Partial<AutoCleanupConfig>) => void\n disableAutoCleanup: () => void\n readonly isAutoCleanupEnabled: boolean\n}\n\nfunction stateImplementation<T, P = unknown>(\n initialValueOrFetcher: T | ((params?: P) => T) | ((params?: P) => Promise<T>),\n options?: StateOptions<P>\n): any {\n // Hook System\n if (currentComponent && !options?.key) {\n const comp = currentComponent\n const hookIndex = comp.hookIndex++\n if (hookIndex < comp.hooks.length) return comp.hooks[hookIndex]\n const saved = currentComponent\n currentComponent = null\n const res = state(initialValueOrFetcher as any, options as any)\n currentComponent = saved\n comp.hooks.push(res)\n return res\n }\n\n // Key Serializing\n const rawKey = options?.key\n const key = rawKey ? serializeKey(rawKey) : undefined\n const namespace = Array.isArray(rawKey) && rawKey.length > 0 ? String(rawKey[0]) : undefined\n const params = options?.params\n\n // Check Registry\n if (key && globalStateRegistry.has(key)) {\n const entry = globalStateRegistry.get(key)!\n updateStateMetadata(key, namespace, entry.box)\n\n const result = [entry.proxy]\n if (entry.setter) result.push(entry.setter)\n if (entry.refetch) result.push(entry.refetch)\n if (entry.status) result.push(entry.status)\n if (entry.error) result.push(entry.error)\n\n return result\n }\n\n // Logic\n let box: Box<T>\n let setter: StateAction<T> | undefined\n let refetch: (() => void) | undefined\n let statusProxy: StateValue<AsyncStatus> | undefined\n let errorProxy: StateValue<unknown> | undefined\n\n if (typeof initialValueOrFetcher === 'function') {\n const originalFn = initialValueOrFetcher as Function\n const fn = params !== undefined ? () => originalFn(params) : originalFn\n\n let testResult: any\n try { testResult = fn() } catch (e) { /* treat as computed */ }\n\n const isAsync = originalFn.constructor.name === 'AsyncFunction' || testResult instanceof Promise\n\n if (isAsync) {\n // Resource\n const [res, actions] = createResource(fn as any, async (v) => v)\n // Resources in flexium/signal are still using the wrapper API for now (unless refactored too).\n // Assuming createResource still returns { value: ... } style object which we can wrap or adapt.\n // Wait, createResource returns [Resource<T>, actions]. \n // Resource<T> extends Signal<T>. It has .value.\n // But our Box expects .get()/.peek().\n // Adapter Box:\n const resBox: Box<any> = {\n get: () => res.value,\n peek: () => res.peek(),\n // Resources are read-only-ish via this box for the user, actions used for mutations\n }\n box = resBox\n refetch = actions.refetch\n\n // Status Computed\n const statusComp = new ComputedNode(() => res.loading ? 'loading' : res.error ? 'error' : res.state === 'unresolved' ? 'idle' : 'success')\n statusProxy = createHybridProxy(statusComp as any) as any\n\n // Error Computed\n const errorComp = new ComputedNode(() => res.error)\n errorProxy = createHybridProxy(errorComp as any) as any\n } else {\n // Computed\n box = new ComputedNode(fn as any) as any\n }\n } else {\n // Signal\n const node = new SignalNode(initialValueOrFetcher)\n box = node as any\n setter = (newValue: any) => {\n if (typeof newValue === 'function') {\n node.set(newValue(node.peek()))\n } else {\n node.set(newValue)\n }\n }\n }\n\n const proxy = createHybridProxy(box)\n\n const result: any[] = [proxy]\n if (setter) result.push(setter)\n if (refetch) {\n result.splice(1, 0, refetch) // [proxy, refetch, status, error]\n if (statusProxy) result.push(statusProxy)\n if (errorProxy) result.push(errorProxy)\n }\n\n // Register\n if (key) {\n globalStateRegistry.set(key, {\n box, proxy, setter, refetch, status: statusProxy, error: errorProxy,\n createdAt: Date.now(), lastAccessed: Date.now(), accessCount: 1, referenceCount: 1,\n key, namespace\n })\n\n // Map box to key for access tracking\n boxToKeyMap.set(box, key)\n\n updateStateMetadata(key, namespace, box)\n\n const isDev = typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production'\n if (isDev && !hasWarnedAboutSize && globalStateRegistry.size >= DEV_WARNING_THRESHOLD) {\n hasWarnedAboutSize = true\n console.warn(`[Flexium] Registry size warning: ${globalStateRegistry.size}`)\n }\n }\n\n return result\n}\n\nconst state = stateImplementation as StateFunction\n\n// Static Methods\nstate.delete = function (key: StateKey): boolean {\n const sKey = serializeKey(key)\n const meta = stateMetadata.get(sKey)\n if (meta?.namespace) unregisterStateFromNamespace(sKey, meta.namespace)\n stateMetadata.delete(sKey)\n return globalStateRegistry.delete(sKey)\n}\n\nstate.clear = function (): void {\n globalStateRegistry.clear()\n namespaceRegistry.clear()\n stateMetadata.clear()\n hasWarnedAboutSize = false\n}\n\nstate.has = function (key: StateKey): boolean {\n return globalStateRegistry.has(serializeKey(key))\n}\n\nstate.clearByPrefix = function (prefix: StateKey): number {\n const prefixStr = serializeKey(prefix)\n let cleared = 0\n const keysToDelete: string[] = []\n\n for (const [key] of stateMetadata.entries()) {\n if (key === prefixStr) { keysToDelete.push(key); continue }\n if (prefixStr.endsWith(']')) {\n const raw = prefixStr.slice(0, -1)\n if (key.startsWith(raw) && key.length > raw.length && key[raw.length] === ',') keysToDelete.push(key)\n } else {\n if (key.startsWith(prefixStr)) keysToDelete.push(key)\n }\n }\n\n for (const k of keysToDelete) {\n if (state.delete(k)) cleared++\n }\n return cleared\n}\n\nstate.getStats = function (): StateStats {\n const byNamespace: Record<string, number> = {}\n for (const [ns, keys] of namespaceRegistry.entries()) byNamespace[ns] = keys.size\n\n let totalAccess = 0\n for (const m of stateMetadata.values()) totalAccess += m.accessCount\n\n return {\n total: globalStateRegistry.size,\n byNamespace,\n topNamespaces: Object.entries(byNamespace).map(([n, c]) => ({ namespace: n, count: c })).sort((a, b) => b.count - a.count).slice(0, 10),\n averageAccessCount: stateMetadata.size ? totalAccess / stateMetadata.size : 0\n }\n}\n\nstate.getNamespaceStats = function (prefix: StateKey): NamespaceStats {\n const pStr = serializeKey(prefix)\n const ns = Array.isArray(prefix) && prefix.length > 0 ? String(prefix[0]) : pStr\n const states: any[] = []\n let totalAccess = 0\n\n for (const [key, m] of stateMetadata.entries()) {\n let matched = false\n\n if (key === pStr) {\n matched = true\n } else if (pStr.endsWith(']')) {\n const raw = pStr.slice(0, -1)\n if (key.startsWith(raw) && key.length > raw.length && key[raw.length] === ',') {\n matched = true\n }\n } else {\n if (key.startsWith(pStr)) matched = true\n }\n\n if (matched) {\n states.push({ key, accessCount: m.accessCount, createdAt: m.createdAt })\n totalAccess += m.accessCount\n }\n }\n return {\n namespace: ns, count: states.length, totalAccessCount: totalAccess,\n averageAccessCount: states.length ? totalAccess / states.length : 0,\n states\n }\n}\n\nObject.defineProperty(state, 'size', { get: () => globalStateRegistry.size, enumerable: true })\nstate.enableAutoCleanup = (c) => { Object.assign(autoCleanupConfig, c, { enabled: true }); if (autoCleanupInterval) clearInterval(autoCleanupInterval); autoCleanupInterval = setInterval(performAutoCleanup, autoCleanupConfig.checkInterval) }\nstate.disableAutoCleanup = () => { autoCleanupConfig.enabled = false; if (autoCleanupInterval) clearInterval(autoCleanupInterval) }\nObject.defineProperty(state, 'isAutoCleanupEnabled', { get: () => autoCleanupConfig.enabled, enumerable: true })\n\nexport { state }\n\nexport interface RefObject<T> { current: T | null }\nexport function ref<T>(initial: T | null): RefObject<T> { return { current: initial } }\n"]}