Socket
Socket
Sign inDemoInstall

valtio

Package Overview
Dependencies
Maintainers
2
Versions
110
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

valtio - npm Package Compare versions

Comparing version 1.7.0 to 1.7.1

4

esm/react.d.ts

@@ -1,2 +0,2 @@

import type { INTERNAL_Snapshot } from './vanilla';
import type { INTERNAL_Snapshot as Snapshot } from './vanilla';
declare type Options = {

@@ -77,3 +77,3 @@ sync?: boolean;

*/
export declare function useSnapshot<T extends object>(proxyObject: T, options?: Options): INTERNAL_Snapshot<T>;
export declare function useSnapshot<T extends object>(proxyObject: T, options?: Options): Snapshot<T>;
export {};
import { subscribe, snapshot, proxy, getVersion, ref } from 'valtio/vanilla';
function subscribeKey(proxyObject, key, callback, notifyInSync) {
let prevValue = proxyObject[key];
return subscribe(
proxyObject,
(ops) => {
if (ops.some((op) => op[1][0] === key)) {
callback(proxyObject[key]);
() => {
const nextValue = proxyObject[key];
if (!Object.is(prevValue, nextValue)) {
callback(prevValue = nextValue);
}

@@ -10,0 +12,0 @@ },

@@ -1,2 +0,2 @@

import type { INTERNAL_Snapshot } from '../vanilla';
import type { INTERNAL_Snapshot as Snapshot } from '../vanilla';
/**

@@ -27,6 +27,6 @@ * proxyWithComputed

export declare function proxyWithComputed<T extends object, U extends object>(initialObject: T, computedFns: {
[K in keyof U]: ((snap: INTERNAL_Snapshot<T>) => U[K]) | {
get: (snap: INTERNAL_Snapshot<T>) => U[K];
[K in keyof U]: ((snap: Snapshot<T>) => U[K]) | {
get: (snap: Snapshot<T>) => U[K];
set?: (state: T, newValue: U[K]) => void;
};
}): T & U;

@@ -1,2 +0,1 @@

import type { INTERNAL_Snapshot } from '../vanilla';
/**

@@ -28,4 +27,488 @@ * proxyWithHistory

history: {
wip: INTERNAL_Snapshot<V> | undefined;
snapshots: INTERNAL_Snapshot<V>[];
wip: (V extends (...args: any[]) => any ? V : V extends {
$$valtioRef: true;
} ? V : V extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_1 in keyof V]: V[K_1] extends infer T ? T extends V[K_1] ? T extends (...args: any[]) => any ? T : T extends {
$$valtioRef: true;
} ? T : T extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (...args: any[]) => any ? T_1 : T_1 extends {
$$valtioRef: true;
} ? T_1 : T_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (...args: any[]) => any ? T_2 : T_2 extends {
$$valtioRef: true;
} ? T_2 : T_2 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (...args: any[]) => any ? T_3 : T_3 extends {
$$valtioRef: true;
} ? T_3 : T_3 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (...args: any[]) => any ? T_4 : T_4 extends {
$$valtioRef: true;
} ? T_4 : T_4 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (...args: any[]) => any ? T_5 : T_5 extends {
$$valtioRef: true;
} ? T_5 : T_5 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (...args: any[]) => any ? T_6 : T_6 extends {
$$valtioRef: true;
} ? T_6 : T_6 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (...args: any[]) => any ? T_7 : T_7 extends {
$$valtioRef: true;
} ? T_7 : T_7 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (...args: any[]) => any ? T_8 : T_8 extends {
$$valtioRef: true;
} ? T_8 : T_8 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_10 in keyof T_8]: T_8[K_10] extends infer T_9 ? T_9 extends T_8[K_10] ? T_9 extends (...args: any[]) => any ? T_9 : T_9 extends {
$$valtioRef: true;
} ? T_9 : T_9 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_11 in keyof T_9]: any; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; }) | undefined;
snapshots: (V extends (...args: any[]) => any ? V : V extends {
$$valtioRef: true;
} ? V : V extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_1 in keyof V]: V[K_1] extends infer T ? T extends V[K_1] ? T extends (...args: any[]) => any ? T : T extends {
$$valtioRef: true;
} ? T : T extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (...args: any[]) => any ? T_1 : T_1 extends {
$$valtioRef: true;
} ? T_1 : T_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (...args: any[]) => any ? T_2 : T_2 extends {
$$valtioRef: true;
} ? T_2 : T_2 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (...args: any[]) => any ? T_3 : T_3 extends {
$$valtioRef: true;
} ? T_3 : T_3 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (...args: any[]) => any ? T_4 : T_4 extends {
$$valtioRef: true;
} ? T_4 : T_4 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (...args: any[]) => any ? T_5 : T_5 extends {
$$valtioRef: true;
} ? T_5 : T_5 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (...args: any[]) => any ? T_6 : T_6 extends {
$$valtioRef: true;
} ? T_6 : T_6 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (...args: any[]) => any ? T_7 : T_7 extends {
$$valtioRef: true;
} ? T_7 : T_7 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (...args: any[]) => any ? T_8 : T_8 extends {
$$valtioRef: true;
} ? T_8 : T_8 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_10 in keyof T_8]: T_8[K_10] extends infer T_9 ? T_9 extends T_8[K_10] ? T_9 extends (...args: any[]) => any ? T_9 : T_9 extends {
$$valtioRef: true;
} ? T_9 : T_9 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_11 in keyof T_9]: any; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; })[];
index: number;

@@ -32,0 +515,0 @@ } & {

@@ -7,2 +7,5 @@ declare type AsRef = {

declare type AnyFunction = (...args: any[]) => any;
declare type Snapshot<T> = T extends AnyFunction ? T : T extends AsRef ? T : T extends Promise<infer V> ? Snapshot<V> : {
readonly [K in keyof T]: Snapshot<T[K]>;
};
/**

@@ -12,11 +15,9 @@ * This is not a public API.

*/
export declare type INTERNAL_Snapshot<T> = T extends AnyFunction ? T : T extends AsRef ? T : T extends Promise<infer V> ? INTERNAL_Snapshot<V> : {
readonly [K in keyof T]: INTERNAL_Snapshot<T[K]>;
};
export declare type INTERNAL_Snapshot<T> = Snapshot<T>;
export declare function proxy<T extends object>(initialObject?: T): T;
export declare function getVersion(proxyObject: unknown): number | undefined;
export declare function subscribe<T extends object>(proxyObject: T, callback: (ops: Op[]) => void, notifyInSync?: boolean): () => void;
export declare function snapshot<T extends object>(proxyObject: T): INTERNAL_Snapshot<T>;
export declare function snapshot<T extends object>(proxyObject: T): Snapshot<T>;
export declare function ref<T extends object>(obj: T): T & AsRef;
export declare const unstable_buildProxyFunction: (objectIs?: (value1: any, value2: any) => boolean, newProxy?: <T extends object>(target: T, handler: ProxyHandler<T>) => T, canProxy?: (x: unknown) => boolean, PROMISE_RESULT?: symbol, PROMISE_ERROR?: symbol, snapshotCache?: WeakMap<object, [version: number, snapshot: unknown]>, createSnapshot?: <T_1 extends object>(version: number, target: T_1, receiver: any) => T_1, proxyCache?: WeakMap<object, object>, versionHolder?: [number], proxyFunction?: <T_2 extends object>(initialObject: T_2) => T_2) => readonly [<T_2 extends object>(initialObject: T_2) => T_2, WeakSet<object>, symbol, symbol, symbol, (value1: any, value2: any) => boolean, <T extends object>(target: T, handler: ProxyHandler<T>) => T, (x: unknown) => boolean, symbol, symbol, WeakMap<object, [version: number, snapshot: unknown]>, <T_1 extends object>(version: number, target: T_1, receiver: any) => T_1, WeakMap<object, object>, [number]];
export {};

@@ -194,3 +194,5 @@ import { markToTrack, getUntracked } from 'proxy-compare';

promise = void 0;
callback(ops.splice(0));
if (proxyObject[LISTENERS].has(listener)) {
callback(ops.splice(0));
}
});

@@ -197,0 +199,0 @@ }

{
"name": "valtio",
"private": false,
"version": "1.7.0",
"version": "1.7.1",
"description": "💊 Valtio makes proxy-state simple for React and Vanilla",

@@ -6,0 +6,0 @@ "main": "./index.js",

@@ -1,2 +0,2 @@

import type { INTERNAL_Snapshot } from './vanilla';
import type { INTERNAL_Snapshot as Snapshot } from './vanilla';
declare type Options = {

@@ -77,3 +77,3 @@ sync?: boolean;

*/
export declare function useSnapshot<T extends object>(proxyObject: T, options?: Options): INTERNAL_Snapshot<T>;
export declare function useSnapshot<T extends object>(proxyObject: T, options?: Options): Snapshot<T>;
export {};

@@ -82,3 +82,3 @@ <img src="logo.svg" alt="valtio">

<details>
<summary>Use of `this` is for expert users.</summary>
<summary>Use of <code>this</code> is for expert users.</summary>

@@ -85,0 +85,0 @@ Valtio tries best to handle `this` behavior

@@ -1,1 +0,1 @@

System.register(["react","proxy-compare","use-sync-external-store/shim","valtio/vanilla"],function(a){"use strict";var r,i,o,f,b,p,y,h,c;return{setters:[function(n){r=n.useRef,i=n.useCallback,o=n.useEffect,f=n.useMemo},function(n){b=n.isChanged,p=n.createProxy},function(n){y=n.default},function(n){h=n.subscribe,c=n.snapshot,a({getVersion:n.getVersion,proxy:n.proxy,ref:n.ref,snapshot:n.snapshot,subscribe:n.subscribe,unstable_buildProxyFunction:n.unstable_buildProxyFunction})}],execute:function(){a("useSnapshot",S);const{useSyncExternalStore:n}=y;function S(t,x){const l=x==null?void 0:x.sync,s=r(),u=r();let g=!0;const k=n(i(e=>{const C=h(t,e,l);return e(),C},[t,l]),()=>{const e=c(t);try{if(!g&&s.current&&u.current&&!b(s.current,e,u.current,new WeakMap))return s.current}catch{}return e},()=>c(t));g=!1;const M=new WeakMap;o(()=>{s.current=k,u.current=M});const v=f(()=>new WeakMap,[]);return p(k,M,v)}}}});
System.register(["react","proxy-compare","use-sync-external-store/shim","valtio/vanilla"],function(a){"use strict";var r,o,i,f,b,p,y,h,c;return{setters:[function(n){r=n.useRef,o=n.useCallback,i=n.useEffect,f=n.useMemo},function(n){b=n.isChanged,p=n.createProxy},function(n){y=n.default},function(n){h=n.subscribe,c=n.snapshot,a({getVersion:n.getVersion,proxy:n.proxy,ref:n.ref,snapshot:n.snapshot,subscribe:n.subscribe,unstable_buildProxyFunction:n.unstable_buildProxyFunction})}],execute:function(){a("useSnapshot",S);const{useSyncExternalStore:n}=y;function S(t,x){const l=x==null?void 0:x.sync,s=r(),u=r();let g=!0;const k=n(o(e=>{const C=h(t,e,l);return e(),C},[t,l]),()=>{const e=c(t);try{if(!g&&s.current&&u.current&&!b(s.current,e,u.current,new WeakMap))return s.current}catch{}return e},()=>c(t));g=!1;const M=new WeakMap;i(()=>{s.current=k,u.current=M});const v=f(()=>new WeakMap,[]);return p(k,M,v)}}}});

@@ -28,7 +28,9 @@ System.register(['valtio/vanilla'], (function (exports) {

function subscribeKey(proxyObject, key, callback, notifyInSync) {
let prevValue = proxyObject[key];
return subscribe(
proxyObject,
(ops) => {
if (ops.some((op) => op[1][0] === key)) {
callback(proxyObject[key]);
() => {
const nextValue = proxyObject[key];
if (!Object.is(prevValue, nextValue)) {
callback(prevValue = nextValue);
}

@@ -35,0 +37,0 @@ },

@@ -1,2 +0,2 @@

System.register(["valtio/vanilla"],function(k){"use strict";var S,y,b,x,C;return{setters:[function(v){S=v.subscribe,y=v.snapshot,b=v.proxy,x=v.getVersion,C=v.ref}],execute:function(){k({addComputed:R,derive:D,devtools:H,proxyMap:X,proxySet:V,proxyWithComputed:U,proxyWithHistory:K,subscribeKey:v,underive:W,watch:J});function v(n,t,e,s){return S(n,r=>{r.some(o=>o[1][0]===t)&&e(n[t])},s)}let m;function J(n,t){let e=!0;const s=new Set,r=new Map,o=()=>{e&&(e=!1,s.forEach(i=>i()),s.clear(),r.forEach(i=>i()),r.clear())},l=()=>{if(!e)return;s.forEach(a=>a()),s.clear();const i=new Set,u=m;m=s;try{const a=n(d=>(i.add(d),d));a&&s.add(a)}finally{m=u}r.forEach((a,d)=>{i.has(d)?i.delete(d):(r.delete(d),a())}),i.forEach(a=>{const d=S(a,l,t==null?void 0:t.sync);r.set(a,d)})};return m&&m.add(o),l(),o}const j=Symbol();function H(n,t){typeof t=="string"&&(console.warn("string name option is deprecated, use { name }. https://github.com/pmndrs/valtio/pull/400"),t={name:t});const{enabled:e,name:s=""}=t||{};let r;try{r=(e!=null?e:!1)&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!r)return;let o=!1;const l=r.connect({name:s}),i=S(n,a=>{const d=a.filter(([p,c])=>c[0]!==j).map(([p,c])=>`${p}:${c.map(String).join(".")}`).join(", ");if(d)if(o)o=!1;else{const p=Object.assign({},y(n));delete p[j],l.send({type:d,updatedAt:new Date().toLocaleString()},p)}}),u=l.subscribe(a=>{var d,p,c,h,E,w;if(a.type==="ACTION"&&a.payload)try{Object.assign(n,JSON.parse(a.payload))}catch(f){console.error(`please dispatch a serializable value that JSON.parse() and proxy() support
`,f)}if(a.type==="DISPATCH"&&a.state){if(((d=a.payload)==null?void 0:d.type)==="JUMP_TO_ACTION"||((p=a.payload)==null?void 0:p.type)==="JUMP_TO_STATE"){o=!0;const f=JSON.parse(a.state);Object.assign(n,f)}n[j]=a}else if(a.type==="DISPATCH"&&((c=a.payload)==null?void 0:c.type)==="COMMIT")l.init(y(n));else if(a.type==="DISPATCH"&&((h=a.payload)==null?void 0:h.type)==="IMPORT_STATE"){const f=(E=a.payload.nextLiftedState)==null?void 0:E.actionsById,$=((w=a.payload.nextLiftedState)==null?void 0:w.computedStates)||[];o=!0,$.forEach(({state:B},I)=>{const F=f[I]||"No action found";Object.assign(n,B),I===0?l.init(y(n)):l.send(F,y(n))})}});return l.init(y(n)),()=>{i(),u==null||u()}}const g=new WeakMap,O=new WeakMap,M=(n,t)=>{const e=g.get(n);e&&(e[0].forEach(s=>{const{d:r}=s;n!==r&&M(r)}),++e[2],t&&e[3].add(t))},z=(n,t)=>{const e=g.get(n);return e!=null&&e[2]?(e[3].add(t),!0):!1},T=n=>{const t=g.get(n);t&&(--t[2],t[2]||(t[3].forEach(e=>e()),t[3].clear()),t[0].forEach(e=>{const{d:s}=e;n!==s&&T(s)}))},_=n=>{const{s:t,d:e}=n;let s=O.get(e);s||(s=[new Set],O.set(n.d,s)),s[0].add(n);let r=g.get(t);if(!r){const o=new Set,l=S(t,i=>{o.forEach(u=>{const{d:a,c:d,n:p,i:c}=u;t===a&&i.every(h=>h[1].length===1&&c.includes(h[1][0]))||u.p||(M(t,d),p?T(t):u.p=Promise.resolve().then(()=>{delete u.p,T(t)}))})},!0);r=[o,l,0,new Set],g.set(t,r)}r[0].add(n)},A=n=>{const{s:t,d:e}=n,s=O.get(e);s==null||s[0].delete(n),(s==null?void 0:s[0].size)===0&&O.delete(e);const r=g.get(t);if(r){const[o,l]=r;o.delete(n),o.size||(l(),g.delete(t))}},N=n=>{const t=O.get(n);return t?Array.from(t[0]):[]},q=k("unstable_deriveSubscriptions",{add:_,remove:A,list:N});function D(n,t){const e=(t==null?void 0:t.proxy)||b({}),s=!!(t!=null&&t.sync),r=Object.keys(n);return r.forEach(o=>{if(Object.getOwnPropertyDescriptor(e,o))throw new Error("object property already defined");const l=n[o];let i=null;const u=()=>{if(i&&(Array.from(i).map(([c])=>z(c,u)).some(c=>c)||Array.from(i).every(([c,h])=>x(c)===h.v)))return;const a=new Map,d=l(c=>(a.set(c,{v:x(c)}),c)),p=()=>{a.forEach((c,h)=>{var E;const w=(E=i==null?void 0:i.get(h))==null?void 0:E.s;if(w)c.s=w;else{const f={s:h,d:e,k:o,c:u,n:s,i:r};_(f),c.s=f}}),i==null||i.forEach((c,h)=>{!a.has(h)&&c.s&&A(c.s)}),i=a};d instanceof Promise?d.finally(p):p(),e[o]=d};u()}),e}function W(n,t){const e=t!=null&&t.delete?new Set:null;N(n).forEach(s=>{const{k:r}=s;(!(t!=null&&t.keys)||t.keys.includes(r))&&(A(s),e&&e.add(r))}),e&&e.forEach(s=>{delete n[s]})}function R(n,t,e=n){console.warn("addComputed is deprecated. Please consider using `derive` or `proxyWithComputed` instead. Falling back to emulation with derive. https://github.com/pmndrs/valtio/pull/201");const s={};return Object.keys(t).forEach(r=>{s[r]=o=>t[r](o(n))}),D(s,{proxy:e})}function U(n,t){Object.keys(t).forEach(s=>{if(Object.getOwnPropertyDescriptor(n,s))throw new Error("object property already defined");const r=t[s],{get:o,set:l}=typeof r=="function"?{get:r}:r,i={};i.get=()=>o(y(e)),l&&(i.set=u=>l(e,u)),Object.defineProperty(n,s,i)});const e=b(n);return e}const L=n=>typeof n=="object"&&n!==null,P=n=>{if(!L(n))return n;const t=Array.isArray(n)?[]:Object.create(Object.getPrototypeOf(n));return Reflect.ownKeys(n).forEach(e=>{t[e]=P(n[e])}),t};function K(n,t=!1){const e=b({value:n,history:C({wip:void 0,snapshots:[],index:-1}),canUndo:()=>e.history.index>0,undo:()=>{e.canUndo()&&(e.value=e.history.wip=P(e.history.snapshots[--e.history.index]))},canRedo:()=>e.history.index<e.history.snapshots.length-1,redo:()=>{e.canRedo()&&(e.value=e.history.wip=P(e.history.snapshots[++e.history.index]))},saveHistory:()=>{e.history.snapshots.splice(e.history.index+1),e.history.snapshots.push(y(e).value),++e.history.index},subscribe:()=>S(e,s=>{s.every(r=>r[1][0]==="value"&&(r[0]!=="set"||r[2]!==e.history.wip))&&e.saveHistory()})});return e.saveHistory(),t||e.subscribe(),e}function V(n){const t=b({data:Array.from(new Set(n)),has(e){return this.data.indexOf(e)!==-1},add(e){let s=!1;return typeof e=="object"&&e!==null&&(s=this.data.indexOf(b(e))!==-1),this.data.indexOf(e)===-1&&!s&&this.data.push(e),this},delete(e){const s=this.data.indexOf(e);return s===-1?!1:(this.data.splice(s,1),!0)},clear(){this.data.splice(0)},get size(){return this.data.length},forEach(e){this.data.forEach(s=>{e(s,s,this)})},get[Symbol.toStringTag](){return"Set"},toJSON(){return{}},[Symbol.iterator](){return this.data[Symbol.iterator]()},values(){return this.data.values()},keys(){return this.data.values()},entries(){return new Set(this.data).entries()}});return Object.defineProperties(t,{data:{enumerable:!1},size:{enumerable:!1},toJSON:{enumerable:!1}}),Object.seal(t),t}function X(n){const t=b({data:Array.from(n||[]),has(e){return this.data.some(s=>s[0]===e)},set(e,s){const r=this.data.find(o=>o[0]===e);return r?r[1]=s:this.data.push([e,s]),this},get(e){var s;return(s=this.data.find(r=>r[0]===e))==null?void 0:s[1]},delete(e){const s=this.data.findIndex(r=>r[0]===e);return s===-1?!1:(this.data.splice(s,1),!0)},clear(){this.data.splice(0)},get size(){return this.data.length},toJSON(){return{}},forEach(e){this.data.forEach(s=>{e(s[1],s[0],this)})},keys(){return this.data.map(e=>e[0]).values()},values(){return this.data.map(e=>e[1]).values()},entries(){return new Map(this.data).entries()},get[Symbol.toStringTag](){return"Map"},[Symbol.iterator](){return this.entries()}});return Object.defineProperties(t,{data:{enumerable:!1},size:{enumerable:!1},toJSON:{enumerable:!1}}),Object.seal(t),t}}}});
System.register(["valtio/vanilla"],function(k){"use strict";var S,y,b,x,C;return{setters:[function(v){S=v.subscribe,y=v.snapshot,b=v.proxy,x=v.getVersion,C=v.ref}],execute:function(){k({addComputed:R,derive:D,devtools:H,proxyMap:X,proxySet:V,proxyWithComputed:U,proxyWithHistory:K,subscribeKey:v,underive:W,watch:J});function v(s,t,e,n){let r=s[t];return S(s,()=>{const o=s[t];Object.is(r,o)||e(r=o)},n)}let O;function J(s,t){let e=!0;const n=new Set,r=new Map,o=()=>{e&&(e=!1,n.forEach(i=>i()),n.clear(),r.forEach(i=>i()),r.clear())},d=()=>{if(!e)return;n.forEach(a=>a()),n.clear();const i=new Set,u=O;O=n;try{const a=s(l=>(i.add(l),l));a&&n.add(a)}finally{O=u}r.forEach((a,l)=>{i.has(l)?i.delete(l):(r.delete(l),a())}),i.forEach(a=>{const l=S(a,d,t==null?void 0:t.sync);r.set(a,l)})};return O&&O.add(o),d(),o}const j=Symbol();function H(s,t){typeof t=="string"&&(console.warn("string name option is deprecated, use { name }. https://github.com/pmndrs/valtio/pull/400"),t={name:t});const{enabled:e,name:n=""}=t||{};let r;try{r=(e!=null?e:!1)&&window.__REDUX_DEVTOOLS_EXTENSION__}catch{}if(!r)return;let o=!1;const d=r.connect({name:n}),i=S(s,a=>{const l=a.filter(([p,c])=>c[0]!==j).map(([p,c])=>`${p}:${c.map(String).join(".")}`).join(", ");if(l)if(o)o=!1;else{const p=Object.assign({},y(s));delete p[j],d.send({type:l,updatedAt:new Date().toLocaleString()},p)}}),u=d.subscribe(a=>{var l,p,c,h,E,w;if(a.type==="ACTION"&&a.payload)try{Object.assign(s,JSON.parse(a.payload))}catch(f){console.error(`please dispatch a serializable value that JSON.parse() and proxy() support
`,f)}if(a.type==="DISPATCH"&&a.state){if(((l=a.payload)==null?void 0:l.type)==="JUMP_TO_ACTION"||((p=a.payload)==null?void 0:p.type)==="JUMP_TO_STATE"){o=!0;const f=JSON.parse(a.state);Object.assign(s,f)}s[j]=a}else if(a.type==="DISPATCH"&&((c=a.payload)==null?void 0:c.type)==="COMMIT")d.init(y(s));else if(a.type==="DISPATCH"&&((h=a.payload)==null?void 0:h.type)==="IMPORT_STATE"){const f=(E=a.payload.nextLiftedState)==null?void 0:E.actionsById,$=((w=a.payload.nextLiftedState)==null?void 0:w.computedStates)||[];o=!0,$.forEach(({state:B},I)=>{const F=f[I]||"No action found";Object.assign(s,B),I===0?d.init(y(s)):d.send(F,y(s))})}});return d.init(y(s)),()=>{i(),u==null||u()}}const g=new WeakMap,m=new WeakMap,M=(s,t)=>{const e=g.get(s);e&&(e[0].forEach(n=>{const{d:r}=n;s!==r&&M(r)}),++e[2],t&&e[3].add(t))},z=(s,t)=>{const e=g.get(s);return e!=null&&e[2]?(e[3].add(t),!0):!1},T=s=>{const t=g.get(s);t&&(--t[2],t[2]||(t[3].forEach(e=>e()),t[3].clear()),t[0].forEach(e=>{const{d:n}=e;s!==n&&T(n)}))},_=s=>{const{s:t,d:e}=s;let n=m.get(e);n||(n=[new Set],m.set(s.d,n)),n[0].add(s);let r=g.get(t);if(!r){const o=new Set,d=S(t,i=>{o.forEach(u=>{const{d:a,c:l,n:p,i:c}=u;t===a&&i.every(h=>h[1].length===1&&c.includes(h[1][0]))||u.p||(M(t,l),p?T(t):u.p=Promise.resolve().then(()=>{delete u.p,T(t)}))})},!0);r=[o,d,0,new Set],g.set(t,r)}r[0].add(s)},A=s=>{const{s:t,d:e}=s,n=m.get(e);n==null||n[0].delete(s),(n==null?void 0:n[0].size)===0&&m.delete(e);const r=g.get(t);if(r){const[o,d]=r;o.delete(s),o.size||(d(),g.delete(t))}},N=s=>{const t=m.get(s);return t?Array.from(t[0]):[]},q=k("unstable_deriveSubscriptions",{add:_,remove:A,list:N});function D(s,t){const e=(t==null?void 0:t.proxy)||b({}),n=!!(t!=null&&t.sync),r=Object.keys(s);return r.forEach(o=>{if(Object.getOwnPropertyDescriptor(e,o))throw new Error("object property already defined");const d=s[o];let i=null;const u=()=>{if(i&&(Array.from(i).map(([c])=>z(c,u)).some(c=>c)||Array.from(i).every(([c,h])=>x(c)===h.v)))return;const a=new Map,l=d(c=>(a.set(c,{v:x(c)}),c)),p=()=>{a.forEach((c,h)=>{var E;const w=(E=i==null?void 0:i.get(h))==null?void 0:E.s;if(w)c.s=w;else{const f={s:h,d:e,k:o,c:u,n,i:r};_(f),c.s=f}}),i==null||i.forEach((c,h)=>{!a.has(h)&&c.s&&A(c.s)}),i=a};l instanceof Promise?l.finally(p):p(),e[o]=l};u()}),e}function W(s,t){const e=t!=null&&t.delete?new Set:null;N(s).forEach(n=>{const{k:r}=n;(!(t!=null&&t.keys)||t.keys.includes(r))&&(A(n),e&&e.add(r))}),e&&e.forEach(n=>{delete s[n]})}function R(s,t,e=s){console.warn("addComputed is deprecated. Please consider using `derive` or `proxyWithComputed` instead. Falling back to emulation with derive. https://github.com/pmndrs/valtio/pull/201");const n={};return Object.keys(t).forEach(r=>{n[r]=o=>t[r](o(s))}),D(n,{proxy:e})}function U(s,t){Object.keys(t).forEach(n=>{if(Object.getOwnPropertyDescriptor(s,n))throw new Error("object property already defined");const r=t[n],{get:o,set:d}=typeof r=="function"?{get:r}:r,i={};i.get=()=>o(y(e)),d&&(i.set=u=>d(e,u)),Object.defineProperty(s,n,i)});const e=b(s);return e}const L=s=>typeof s=="object"&&s!==null,P=s=>{if(!L(s))return s;const t=Array.isArray(s)?[]:Object.create(Object.getPrototypeOf(s));return Reflect.ownKeys(s).forEach(e=>{t[e]=P(s[e])}),t};function K(s,t=!1){const e=b({value:s,history:C({wip:void 0,snapshots:[],index:-1}),canUndo:()=>e.history.index>0,undo:()=>{e.canUndo()&&(e.value=e.history.wip=P(e.history.snapshots[--e.history.index]))},canRedo:()=>e.history.index<e.history.snapshots.length-1,redo:()=>{e.canRedo()&&(e.value=e.history.wip=P(e.history.snapshots[++e.history.index]))},saveHistory:()=>{e.history.snapshots.splice(e.history.index+1),e.history.snapshots.push(y(e).value),++e.history.index},subscribe:()=>S(e,n=>{n.every(r=>r[1][0]==="value"&&(r[0]!=="set"||r[2]!==e.history.wip))&&e.saveHistory()})});return e.saveHistory(),t||e.subscribe(),e}function V(s){const t=b({data:Array.from(new Set(s)),has(e){return this.data.indexOf(e)!==-1},add(e){let n=!1;return typeof e=="object"&&e!==null&&(n=this.data.indexOf(b(e))!==-1),this.data.indexOf(e)===-1&&!n&&this.data.push(e),this},delete(e){const n=this.data.indexOf(e);return n===-1?!1:(this.data.splice(n,1),!0)},clear(){this.data.splice(0)},get size(){return this.data.length},forEach(e){this.data.forEach(n=>{e(n,n,this)})},get[Symbol.toStringTag](){return"Set"},toJSON(){return{}},[Symbol.iterator](){return this.data[Symbol.iterator]()},values(){return this.data.values()},keys(){return this.data.values()},entries(){return new Set(this.data).entries()}});return Object.defineProperties(t,{data:{enumerable:!1},size:{enumerable:!1},toJSON:{enumerable:!1}}),Object.seal(t),t}function X(s){const t=b({data:Array.from(s||[]),has(e){return this.data.some(n=>n[0]===e)},set(e,n){const r=this.data.find(o=>o[0]===e);return r?r[1]=n:this.data.push([e,n]),this},get(e){var n;return(n=this.data.find(r=>r[0]===e))==null?void 0:n[1]},delete(e){const n=this.data.findIndex(r=>r[0]===e);return n===-1?!1:(this.data.splice(n,1),!0)},clear(){this.data.splice(0)},get size(){return this.data.length},toJSON(){return{}},forEach(e){this.data.forEach(n=>{e(n[1],n[0],this)})},keys(){return this.data.map(e=>e[0]).values()},values(){return this.data.map(e=>e[1]).values()},entries(){return new Map(this.data).entries()},get[Symbol.toStringTag](){return"Map"},[Symbol.iterator](){return this.entries()}});return Object.defineProperties(t,{data:{enumerable:!1},size:{enumerable:!1},toJSON:{enumerable:!1}}),Object.seal(t),t}}}});

@@ -210,3 +210,5 @@ System.register(['proxy-compare'], (function (exports) {

promise = void 0;
callback(ops.splice(0));
if (proxyObject[LISTENERS].has(listener)) {
callback(ops.splice(0));
}
});

@@ -213,0 +215,0 @@ }

@@ -1,1 +0,1 @@

System.register(["proxy-compare"],function(D){"use strict";var A,M;return{setters:[function(d){A=d.markToTrack,M=d.getUntracked}],execute:function(){D({getVersion:_,proxy:V,ref:B,snapshot:z,subscribe:q});const d=o=>typeof o=="object"&&o!==null,k=new WeakSet,E=Symbol(),a=Symbol(),m=Symbol(),F=(o=Object.is,j=(t,f)=>new Proxy(t,f),P=t=>d(t)&&!k.has(t)&&(Array.isArray(t)||!(Symbol.iterator in t))&&!(t instanceof WeakMap)&&!(t instanceof WeakSet)&&!(t instanceof Error)&&!(t instanceof Number)&&!(t instanceof Date)&&!(t instanceof String)&&!(t instanceof RegExp)&&!(t instanceof ArrayBuffer),u=Symbol(),g=Symbol(),O=new WeakMap,R=(t,f,b)=>{const w=O.get(b);if((w==null?void 0:w[0])===t)return w[1];const s=Array.isArray(f)?[]:Object.create(Object.getPrototypeOf(f));return A(s,!0),O.set(b,[t,s]),Reflect.ownKeys(f).forEach(i=>{const c=Reflect.get(f,i,b);if(k.has(c))A(c,!1),s[i]=c;else if(c instanceof Promise)if(u in c)s[i]=c[u];else{const S=c[g]||c;Object.defineProperty(s,i,{get(){if(u in c)return c[u];throw S}})}else c!=null&&c[a]?s[i]=c[m]:s[i]=c}),Object.freeze(s)},T=new WeakMap,x=[1],I=t=>{if(!d(t))throw new Error("object required");const f=T.get(t);if(f)return f;let b=x[0];const w=new Set,s=(n,e=++x[0])=>{b!==e&&(b=e,w.forEach(r=>r(n,e)))},i=new Map,c=n=>{let e=i.get(n);return e||(e=(r,p)=>{const y=[...r];y[1]=[n,...y[1]],s(y,p)},i.set(n,e)),e},S=n=>{const e=i.get(n);return i.delete(n),e},K=Array.isArray(t)?[]:Object.create(Object.getPrototypeOf(t)),W=j(K,{get(n,e,r){return e===E?b:e===a?w:e===m?R(b,n,r):Reflect.get(n,e,r)},deleteProperty(n,e){const r=Reflect.get(n,e),p=r==null?void 0:r[a];p&&p.delete(S(e));const y=Reflect.deleteProperty(n,e);return y&&s(["delete",[e],r]),y},set(n,e,r,p){var y;const C=Reflect.has(n,e),v=Reflect.get(n,e,p);if(C&&o(v,r))return!0;const N=v==null?void 0:v[a];N&&N.delete(S(e)),d(r)&&(r=M(r)||r);let l;return(y=Object.getOwnPropertyDescriptor(n,e))!=null&&y.set?l=r:r instanceof Promise?l=r.then(h=>(l[u]=h,s(["resolve",[e],h]),h)).catch(h=>{l[g]=h,s(["reject",[e],h])}):r!=null&&r[a]?(l=r,l[a].add(c(e))):P(r)?(l=V(r),l[a].add(c(e))):l=r,Reflect.set(n,e,l,p),s(["set",[e],r,v]),!0}});return T.set(t,W),Reflect.ownKeys(t).forEach(n=>{const e=Object.getOwnPropertyDescriptor(t,n);e.get||e.set?Object.defineProperty(K,n,e):W[n]=t[n]}),W})=>[I,k,E,a,m,o,j,P,u,g,O,R,T,x],[U]=F();function V(o={}){return U(o)}function _(o){return d(o)?o[E]:void 0}function q(o,j,P){let u;const g=[],O=R=>{if(g.push(R),P){j(g.splice(0));return}u||(u=Promise.resolve().then(()=>{u=void 0,j(g.splice(0))}))};return o[a].add(O),()=>{o[a].delete(O)}}function z(o){return o[m]}function B(o){return k.add(o),o}const G=D("unstable_buildProxyFunction",F)}}});
System.register(["proxy-compare"],function(M){"use strict";var x,F;return{setters:[function(p){x=p.markToTrack,F=p.getUntracked}],execute:function(){M({getVersion:_,proxy:V,ref:B,snapshot:z,subscribe:q});const p=o=>typeof o=="object"&&o!==null,w=new WeakSet,A=Symbol(),i=Symbol(),P=Symbol(),T=(o=Object.is,j=(t,f)=>new Proxy(t,f),S=t=>p(t)&&!w.has(t)&&(Array.isArray(t)||!(Symbol.iterator in t))&&!(t instanceof WeakMap)&&!(t instanceof WeakSet)&&!(t instanceof Error)&&!(t instanceof Number)&&!(t instanceof Date)&&!(t instanceof String)&&!(t instanceof RegExp)&&!(t instanceof ArrayBuffer),u=Symbol(),d=Symbol(),g=new WeakMap,R=(t,f,b)=>{const m=g.get(b);if((m==null?void 0:m[0])===t)return m[1];const s=Array.isArray(f)?[]:Object.create(Object.getPrototypeOf(f));return x(s,!0),g.set(b,[t,s]),Reflect.ownKeys(f).forEach(a=>{const c=Reflect.get(f,a,b);if(w.has(c))x(c,!1),s[a]=c;else if(c instanceof Promise)if(u in c)s[a]=c[u];else{const k=c[d]||c;Object.defineProperty(s,a,{get(){if(u in c)return c[u];throw k}})}else c!=null&&c[i]?s[a]=c[P]:s[a]=c}),Object.freeze(s)},E=new WeakMap,W=[1],$=t=>{if(!p(t))throw new Error("object required");const f=E.get(t);if(f)return f;let b=W[0];const m=new Set,s=(n,e=++W[0])=>{b!==e&&(b=e,m.forEach(r=>r(n,e)))},a=new Map,c=n=>{let e=a.get(n);return e||(e=(r,O)=>{const y=[...r];y[1]=[n,...y[1]],s(y,O)},a.set(n,e)),e},k=n=>{const e=a.get(n);return a.delete(n),e},K=Array.isArray(t)?[]:Object.create(Object.getPrototypeOf(t)),D=j(K,{get(n,e,r){return e===A?b:e===i?m:e===P?R(b,n,r):Reflect.get(n,e,r)},deleteProperty(n,e){const r=Reflect.get(n,e),O=r==null?void 0:r[i];O&&O.delete(k(e));const y=Reflect.deleteProperty(n,e);return y&&s(["delete",[e],r]),y},set(n,e,r,O){var y;const C=Reflect.has(n,e),v=Reflect.get(n,e,O);if(C&&o(v,r))return!0;const N=v==null?void 0:v[i];N&&N.delete(k(e)),p(r)&&(r=F(r)||r);let l;return(y=Object.getOwnPropertyDescriptor(n,e))!=null&&y.set?l=r:r instanceof Promise?l=r.then(h=>(l[u]=h,s(["resolve",[e],h]),h)).catch(h=>{l[d]=h,s(["reject",[e],h])}):r!=null&&r[i]?(l=r,l[i].add(c(e))):S(r)?(l=V(r),l[i].add(c(e))):l=r,Reflect.set(n,e,l,O),s(["set",[e],r,v]),!0}});return E.set(t,D),Reflect.ownKeys(t).forEach(n=>{const e=Object.getOwnPropertyDescriptor(t,n);e.get||e.set?Object.defineProperty(K,n,e):D[n]=t[n]}),D})=>[$,w,A,i,P,o,j,S,u,d,g,R,E,W],[U]=T();function V(o={}){return U(o)}function _(o){return p(o)?o[A]:void 0}function q(o,j,S){let u;const d=[],g=R=>{if(d.push(R),S){j(d.splice(0));return}u||(u=Promise.resolve().then(()=>{u=void 0,o[i].has(g)&&j(d.splice(0))}))};return o[i].add(g),()=>{o[i].delete(g)}}function z(o){return o[P]}function B(o){return w.add(o),o}const G=M("unstable_buildProxyFunction",T)}}});

@@ -1,2 +0,2 @@

import { INTERNAL_Snapshot } from './vanilla';
import { INTERNAL_Snapshot as Snapshot } from './vanilla';
declare type Options = {

@@ -77,3 +77,3 @@ sync?: boolean;

*/
export declare function useSnapshot<T extends object>(proxyObject: T, options?: Options): INTERNAL_Snapshot<T>;
export declare function useSnapshot<T extends object>(proxyObject: T, options?: Options): Snapshot<T>;
export {};

@@ -1,2 +0,2 @@

import { INTERNAL_Snapshot } from '../vanilla';
import { INTERNAL_Snapshot as Snapshot } from '../vanilla';
/**

@@ -27,6 +27,6 @@ * proxyWithComputed

export declare function proxyWithComputed<T extends object, U extends object>(initialObject: T, computedFns: {
[K in keyof U]: ((snap: INTERNAL_Snapshot<T>) => U[K]) | {
get: (snap: INTERNAL_Snapshot<T>) => U[K];
[K in keyof U]: ((snap: Snapshot<T>) => U[K]) | {
get: (snap: Snapshot<T>) => U[K];
set?: (state: T, newValue: U[K]) => void;
};
}): T & U;

@@ -24,2 +24,5 @@ declare type AsRef = {

declare type AnyFunction = (...args: any[]) => any;
declare type Snapshot<T> = T extends AnyFunction ? T : T extends AsRef ? T : T extends Promise<infer V> ? Snapshot<V> : {
readonly [K in keyof T]: Snapshot<T[K]>;
};
/**

@@ -29,9 +32,7 @@ * This is not a public API.

*/
export declare type INTERNAL_Snapshot<T> = T extends AnyFunction ? T : T extends AsRef ? T : T extends Promise<infer V> ? INTERNAL_Snapshot<V> : {
readonly [K in keyof T]: INTERNAL_Snapshot<T[K]>;
};
export declare type INTERNAL_Snapshot<T> = Snapshot<T>;
export declare function proxy<T extends object>(initialObject?: T): T;
export declare function getVersion(proxyObject: unknown): number | undefined;
export declare function subscribe<T extends object>(proxyObject: T, callback: (ops: Op[]) => void, notifyInSync?: boolean): () => void;
export declare function snapshot<T extends object>(proxyObject: T): INTERNAL_Snapshot<T>;
export declare function snapshot<T extends object>(proxyObject: T): Snapshot<T>;
export declare function ref<T extends object>(obj: T): T & AsRef;

@@ -38,0 +39,0 @@ export declare const unstable_buildProxyFunction: (objectIs?: (value1: any, value2: any) => boolean, newProxy?: <T extends object>(target: T, handler: ProxyHandler<T>) => T, canProxy?: (x: unknown) => boolean, PROMISE_RESULT?: symbol, PROMISE_ERROR?: symbol, snapshotCache?: WeakMap<object, [

@@ -1,2 +0,2 @@

import { INTERNAL_Snapshot } from './vanilla';
import { INTERNAL_Snapshot as Snapshot } from './vanilla';
declare type Options = {

@@ -77,3 +77,3 @@ sync?: boolean;

*/
export declare function useSnapshot<T extends object>(proxyObject: T, options?: Options): INTERNAL_Snapshot<T>;
export declare function useSnapshot<T extends object>(proxyObject: T, options?: Options): Snapshot<T>;
export {};

@@ -1,2 +0,2 @@

import { INTERNAL_Snapshot } from '../vanilla';
import { INTERNAL_Snapshot as Snapshot } from '../vanilla';
/**

@@ -27,6 +27,6 @@ * proxyWithComputed

export declare function proxyWithComputed<T extends object, U extends object>(initialObject: T, computedFns: {
[K in keyof U]: ((snap: INTERNAL_Snapshot<T>) => U[K]) | {
get: (snap: INTERNAL_Snapshot<T>) => U[K];
[K in keyof U]: ((snap: Snapshot<T>) => U[K]) | {
get: (snap: Snapshot<T>) => U[K];
set?: (state: T, newValue: U[K]) => void;
};
}): T & U;

@@ -24,2 +24,5 @@ declare type AsRef = {

declare type AnyFunction = (...args: any[]) => any;
declare type Snapshot<T> = T extends AnyFunction ? T : T extends AsRef ? T : T extends Promise<infer V> ? Snapshot<V> : {
readonly [K in keyof T]: Snapshot<T[K]>;
};
/**

@@ -29,9 +32,7 @@ * This is not a public API.

*/
export declare type INTERNAL_Snapshot<T> = T extends AnyFunction ? T : T extends AsRef ? T : T extends Promise<infer V> ? INTERNAL_Snapshot<V> : {
readonly [K in keyof T]: INTERNAL_Snapshot<T[K]>;
};
export declare type INTERNAL_Snapshot<T> = Snapshot<T>;
export declare function proxy<T extends object>(initialObject?: T): T;
export declare function getVersion(proxyObject: unknown): number | undefined;
export declare function subscribe<T extends object>(proxyObject: T, callback: (ops: Op[]) => void, notifyInSync?: boolean): () => void;
export declare function snapshot<T extends object>(proxyObject: T): INTERNAL_Snapshot<T>;
export declare function snapshot<T extends object>(proxyObject: T): Snapshot<T>;
export declare function ref<T extends object>(obj: T): T & AsRef;

@@ -38,0 +39,0 @@ export declare const unstable_buildProxyFunction: (objectIs?: (value1: any, value2: any) => boolean, newProxy?: <T extends object>(target: T, handler: ProxyHandler<T>) => T, canProxy?: (x: unknown) => boolean, PROMISE_RESULT?: symbol, PROMISE_ERROR?: symbol, snapshotCache?: WeakMap<object, [

@@ -8,7 +8,8 @@ (function (global, factory) {

function subscribeKey(proxyObject, key, callback, notifyInSync) {
return vanilla.subscribe(proxyObject, function (ops) {
if (ops.some(function (op) {
return op[1][0] === key;
})) {
callback(proxyObject[key]);
var prevValue = proxyObject[key];
return vanilla.subscribe(proxyObject, function () {
var nextValue = proxyObject[key];
if (!Object.is(prevValue, nextValue)) {
callback(prevValue = nextValue);
}

@@ -15,0 +16,0 @@ }, notifyInSync);

@@ -1,1 +0,1 @@

!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("valtio/vanilla")):"function"==typeof define&&define.amd?define(["exports","valtio/vanilla"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).valtioUtils={},t.valtioVanilla)}(this,(function(t,e){"use strict";var n;var r=Symbol();var i=new WeakMap,a=new WeakMap,o=function t(e,n){var r=i.get(e);r&&(r[0].forEach((function(n){var r=n.d;e!==r&&t(r)})),++r[2],n&&r[3].add(n))},u=function t(e){var n=i.get(e);n&&(--n[2],n[2]||(n[3].forEach((function(t){return t()})),n[3].clear()),n[0].forEach((function(n){var r=n.d;e!==r&&t(r)})))},s=function(t){var n=t.s,r=t.d,s=a.get(r);s||(s=[new Set],a.set(t.d,s)),s[0].add(t);var c=i.get(n);if(!c){var f=new Set,l=e.subscribe(n,(function(t){f.forEach((function(e){var r=e.d,i=e.c,a=e.n,s=e.i;n===r&&t.every((function(t){return 1===t[1].length&&s.includes(t[1][0])}))||e.p||(o(n,i),a?u(n):e.p=Promise.resolve().then((function(){delete e.p,u(n)})))}))}),!0);c=[f,l,0,new Set],i.set(n,c)}c[0].add(t)},c=function(t){var e=t.s,n=t.d,r=a.get(n);null==r||r[0].delete(t),0===(null==r?void 0:r[0].size)&&a.delete(n);var o=i.get(e);if(o){var u=o[0],s=o[1];u.delete(t),u.size||(s(),i.delete(e))}},f=function(t){var e=a.get(t);return e?Array.from(e[0]):[]},l={add:s,remove:c,list:f};function d(t,n){var r=(null==n?void 0:n.proxy)||e.proxy({}),a=!(null==n||!n.sync),o=Object.keys(t);return o.forEach((function(n){if(Object.getOwnPropertyDescriptor(r,n))throw new Error("object property already defined");var u=t[n],f=null;!function t(){if(f){if(Array.from(f).map((function(e){var n,r,a,o=e[0];return n=o,r=t,!(null==(a=i.get(n))||!a[2]||(a[3].add(r),0))})).some((function(t){return t})))return;if(Array.from(f).every((function(t){var n=t[0],r=t[1];return e.getVersion(n)===r.v})))return}var l=new Map,d=u((function(t){return l.set(t,{v:e.getVersion(t)}),t})),p=function(){var e;l.forEach((function(e,i){var u,c,l=null==(u=f)||null==(c=u.get(i))?void 0:c.s;if(l)e.s=l;else{var d={s:i,d:r,k:n,c:t,n:a,i:o};s(d),e.s=d}})),null==(e=f)||e.forEach((function(t,e){!l.has(e)&&t.s&&c(t.s)})),f=l};d instanceof Promise?d.finally(p):p(),r[n]=d}()})),r}var p=function t(e){if("object"!=typeof(n=e)||null===n)return e;var n,r=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e));return Reflect.ownKeys(e).forEach((function(n){r[n]=t(e[n])})),r};function h(t,e){for(var n in e){(a=e[n]).configurable=a.enumerable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,n,a)}if(Object.getOwnPropertySymbols)for(var r=Object.getOwnPropertySymbols(e),i=0;i<r.length;i++){var a,o=r[i];(a=e[o]).configurable=a.enumerable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,o,a)}return t}t.addComputed=function(t,e,n){void 0===n&&(n=t),console.warn("addComputed is deprecated. Please consider using `derive` or `proxyWithComputed` instead. Falling back to emulation with derive. https://github.com/pmndrs/valtio/pull/201");var r={};return Object.keys(e).forEach((function(n){r[n]=function(r){return e[n](r(t))}})),d(r,{proxy:n})},t.derive=d,t.devtools=function(t,n){"string"==typeof n&&(console.warn("string name option is deprecated, use { name }. https://github.com/pmndrs/valtio/pull/400"),n={name:n});var i,a=n||{},o=a.enabled,u=a.name,s=void 0===u?"":u;try{i=null!=o&&o&&window.__REDUX_DEVTOOLS_EXTENSION__}catch(t){}if(i){var c=!1,f=i.connect({name:s}),l=e.subscribe(t,(function(n){var i=n.filter((function(t){return t[0],t[1][0]!==r})).map((function(t){return t[0]+":"+t[1].map(String).join(".")})).join(", ");if(i)if(c)c=!1;else{var a=Object.assign({},e.snapshot(t));delete a[r],f.send({type:i,updatedAt:(new Date).toLocaleString()},a)}})),d=f.subscribe((function(n){var i,a;if("ACTION"===n.type&&n.payload)try{Object.assign(t,JSON.parse(n.payload))}catch(t){console.error("please dispatch a serializable value that JSON.parse() and proxy() support\n",t)}if("DISPATCH"===n.type&&n.state){var o,u;if("JUMP_TO_ACTION"===(null==(o=n.payload)?void 0:o.type)||"JUMP_TO_STATE"===(null==(u=n.payload)?void 0:u.type)){c=!0;var s=JSON.parse(n.state);Object.assign(t,s)}t[r]=n}else if("DISPATCH"===n.type&&"COMMIT"===(null==(i=n.payload)?void 0:i.type))f.init(e.snapshot(t));else if("DISPATCH"===n.type&&"IMPORT_STATE"===(null==(a=n.payload)?void 0:a.type)){var l,d,p=null==(l=n.payload.nextLiftedState)?void 0:l.actionsById,h=(null==(d=n.payload.nextLiftedState)?void 0:d.computedStates)||[];c=!0,h.forEach((function(n,r){var i=n.state,a=p[r]||"No action found";Object.assign(t,i),0===r?f.init(e.snapshot(t)):f.send(a,e.snapshot(t))}))}}));return f.init(e.snapshot(t)),function(){l(),null==d||d()}}},t.proxyMap=function(t){var n,r,i,a=e.proxy((r={data:Array.from(t||[]),has:function(t){return this.data.some((function(e){return e[0]===t}))},set:function(t,e){var n=this.data.find((function(e){return e[0]===t}));return n?n[1]=e:this.data.push([t,e]),this},get:function(t){var e;return null==(e=this.data.find((function(e){return e[0]===t})))?void 0:e[1]},delete:function(t){var e=this.data.findIndex((function(e){return e[0]===t}));return-1!==e&&(this.data.splice(e,1),!0)},clear:function(){this.data.splice(0)},get size(){return this.data.length},toJSON:function(){return{}},forEach:function(t){var e=this;this.data.forEach((function(n){t(n[1],n[0],e)}))},keys:function(){return this.data.map((function(t){return t[0]})).values()},values:function(){return this.data.map((function(t){return t[1]})).values()},entries:function(){return new Map(this.data).entries()}},(i={})[n=Symbol.toStringTag]=i[n]||{},i[n].get=function(){return"Map"},r[Symbol.iterator]=function(){return this.entries()},h(r,i),r));return Object.defineProperties(a,{data:{enumerable:!1},size:{enumerable:!1},toJSON:{enumerable:!1}}),Object.seal(a),a},t.proxySet=function(t){var n,r,i,a=e.proxy((r={data:Array.from(new Set(t)),has:function(t){return-1!==this.data.indexOf(t)},add:function(t){var n=!1;return"object"==typeof t&&null!==t&&(n=-1!==this.data.indexOf(e.proxy(t))),-1!==this.data.indexOf(t)||n||this.data.push(t),this},delete:function(t){var e=this.data.indexOf(t);return-1!==e&&(this.data.splice(e,1),!0)},clear:function(){this.data.splice(0)},get size(){return this.data.length},forEach:function(t){var e=this;this.data.forEach((function(n){t(n,n,e)}))}},(i={})[n=Symbol.toStringTag]=i[n]||{},i[n].get=function(){return"Set"},r.toJSON=function(){return{}},r[Symbol.iterator]=function(){return this.data[Symbol.iterator]()},r.values=function(){return this.data.values()},r.keys=function(){return this.data.values()},r.entries=function(){return new Set(this.data).entries()},h(r,i),r));return Object.defineProperties(a,{data:{enumerable:!1},size:{enumerable:!1},toJSON:{enumerable:!1}}),Object.seal(a),a},t.proxyWithComputed=function(t,n){Object.keys(n).forEach((function(i){if(Object.getOwnPropertyDescriptor(t,i))throw new Error("object property already defined");var a=n[i],o="function"==typeof a?{get:a}:a,u=o.get,s=o.set,c={get:function(){return u(e.snapshot(r))}};s&&(c.set=function(t){return s(r,t)}),Object.defineProperty(t,i,c)}));var r=e.proxy(t);return r},t.proxyWithHistory=function(t,n){void 0===n&&(n=!1);var r=e.proxy({value:t,history:e.ref({wip:void 0,snapshots:[],index:-1}),canUndo:function(){return r.history.index>0},undo:function(){r.canUndo()&&(r.value=r.history.wip=p(r.history.snapshots[--r.history.index]))},canRedo:function(){return r.history.index<r.history.snapshots.length-1},redo:function(){r.canRedo()&&(r.value=r.history.wip=p(r.history.snapshots[++r.history.index]))},saveHistory:function(){r.history.snapshots.splice(r.history.index+1),r.history.snapshots.push(e.snapshot(r).value),++r.history.index},subscribe:function(){return e.subscribe(r,(function(t){t.every((function(t){return"value"===t[1][0]&&("set"!==t[0]||t[2]!==r.history.wip)}))&&r.saveHistory()}))}});return r.saveHistory(),n||r.subscribe(),r},t.subscribeKey=function(t,n,r,i){return e.subscribe(t,(function(e){e.some((function(t){return t[1][0]===n}))&&r(t[n])}),i)},t.underive=function(t,e){var n=null!=e&&e.delete?new Set:null;f(t).forEach((function(t){var r=t.k;null!=e&&e.keys&&!e.keys.includes(r)||(c(t),n&&n.add(r))})),n&&n.forEach((function(e){delete t[e]}))},t.unstable_deriveSubscriptions=l,t.watch=function(t,r){var i=!0,a=new Set,o=new Map,u=function(){i&&(i=!1,a.forEach((function(t){return t()})),a.clear(),o.forEach((function(t){return t()})),o.clear())};return n&&n.add(u),function u(){if(i){a.forEach((function(t){return t()})),a.clear();var s=new Set,c=n;n=a;try{var f=t((function(t){return s.add(t),t}));f&&a.add(f)}finally{n=c}o.forEach((function(t,e){s.has(e)?s.delete(e):(o.delete(e),t())})),s.forEach((function(t){var n=e.subscribe(t,u,null==r?void 0:r.sync);o.set(t,n)}))}}(),u},Object.defineProperty(t,"__esModule",{value:!0})}));
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("valtio/vanilla")):"function"==typeof define&&define.amd?define(["exports","valtio/vanilla"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self).valtioUtils={},t.valtioVanilla)}(this,(function(t,e){"use strict";var n;var r=Symbol();var i=new WeakMap,a=new WeakMap,o=function t(e,n){var r=i.get(e);r&&(r[0].forEach((function(n){var r=n.d;e!==r&&t(r)})),++r[2],n&&r[3].add(n))},u=function t(e){var n=i.get(e);n&&(--n[2],n[2]||(n[3].forEach((function(t){return t()})),n[3].clear()),n[0].forEach((function(n){var r=n.d;e!==r&&t(r)})))},s=function(t){var n=t.s,r=t.d,s=a.get(r);s||(s=[new Set],a.set(t.d,s)),s[0].add(t);var c=i.get(n);if(!c){var f=new Set,l=e.subscribe(n,(function(t){f.forEach((function(e){var r=e.d,i=e.c,a=e.n,s=e.i;n===r&&t.every((function(t){return 1===t[1].length&&s.includes(t[1][0])}))||e.p||(o(n,i),a?u(n):e.p=Promise.resolve().then((function(){delete e.p,u(n)})))}))}),!0);c=[f,l,0,new Set],i.set(n,c)}c[0].add(t)},c=function(t){var e=t.s,n=t.d,r=a.get(n);null==r||r[0].delete(t),0===(null==r?void 0:r[0].size)&&a.delete(n);var o=i.get(e);if(o){var u=o[0],s=o[1];u.delete(t),u.size||(s(),i.delete(e))}},f=function(t){var e=a.get(t);return e?Array.from(e[0]):[]},l={add:s,remove:c,list:f};function d(t,n){var r=(null==n?void 0:n.proxy)||e.proxy({}),a=!(null==n||!n.sync),o=Object.keys(t);return o.forEach((function(n){if(Object.getOwnPropertyDescriptor(r,n))throw new Error("object property already defined");var u=t[n],f=null;!function t(){if(f){if(Array.from(f).map((function(e){var n,r,a,o=e[0];return n=o,r=t,!(null==(a=i.get(n))||!a[2]||(a[3].add(r),0))})).some((function(t){return t})))return;if(Array.from(f).every((function(t){var n=t[0],r=t[1];return e.getVersion(n)===r.v})))return}var l=new Map,d=u((function(t){return l.set(t,{v:e.getVersion(t)}),t})),p=function(){var e;l.forEach((function(e,i){var u,c,l=null==(u=f)||null==(c=u.get(i))?void 0:c.s;if(l)e.s=l;else{var d={s:i,d:r,k:n,c:t,n:a,i:o};s(d),e.s=d}})),null==(e=f)||e.forEach((function(t,e){!l.has(e)&&t.s&&c(t.s)})),f=l};d instanceof Promise?d.finally(p):p(),r[n]=d}()})),r}var p=function t(e){if("object"!=typeof(n=e)||null===n)return e;var n,r=Array.isArray(e)?[]:Object.create(Object.getPrototypeOf(e));return Reflect.ownKeys(e).forEach((function(n){r[n]=t(e[n])})),r};function v(t,e){for(var n in e){(a=e[n]).configurable=a.enumerable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,n,a)}if(Object.getOwnPropertySymbols)for(var r=Object.getOwnPropertySymbols(e),i=0;i<r.length;i++){var a,o=r[i];(a=e[o]).configurable=a.enumerable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,o,a)}return t}t.addComputed=function(t,e,n){void 0===n&&(n=t),console.warn("addComputed is deprecated. Please consider using `derive` or `proxyWithComputed` instead. Falling back to emulation with derive. https://github.com/pmndrs/valtio/pull/201");var r={};return Object.keys(e).forEach((function(n){r[n]=function(r){return e[n](r(t))}})),d(r,{proxy:n})},t.derive=d,t.devtools=function(t,n){"string"==typeof n&&(console.warn("string name option is deprecated, use { name }. https://github.com/pmndrs/valtio/pull/400"),n={name:n});var i,a=n||{},o=a.enabled,u=a.name,s=void 0===u?"":u;try{i=null!=o&&o&&window.__REDUX_DEVTOOLS_EXTENSION__}catch(t){}if(i){var c=!1,f=i.connect({name:s}),l=e.subscribe(t,(function(n){var i=n.filter((function(t){return t[0],t[1][0]!==r})).map((function(t){return t[0]+":"+t[1].map(String).join(".")})).join(", ");if(i)if(c)c=!1;else{var a=Object.assign({},e.snapshot(t));delete a[r],f.send({type:i,updatedAt:(new Date).toLocaleString()},a)}})),d=f.subscribe((function(n){var i,a;if("ACTION"===n.type&&n.payload)try{Object.assign(t,JSON.parse(n.payload))}catch(t){console.error("please dispatch a serializable value that JSON.parse() and proxy() support\n",t)}if("DISPATCH"===n.type&&n.state){var o,u;if("JUMP_TO_ACTION"===(null==(o=n.payload)?void 0:o.type)||"JUMP_TO_STATE"===(null==(u=n.payload)?void 0:u.type)){c=!0;var s=JSON.parse(n.state);Object.assign(t,s)}t[r]=n}else if("DISPATCH"===n.type&&"COMMIT"===(null==(i=n.payload)?void 0:i.type))f.init(e.snapshot(t));else if("DISPATCH"===n.type&&"IMPORT_STATE"===(null==(a=n.payload)?void 0:a.type)){var l,d,p=null==(l=n.payload.nextLiftedState)?void 0:l.actionsById,v=(null==(d=n.payload.nextLiftedState)?void 0:d.computedStates)||[];c=!0,v.forEach((function(n,r){var i=n.state,a=p[r]||"No action found";Object.assign(t,i),0===r?f.init(e.snapshot(t)):f.send(a,e.snapshot(t))}))}}));return f.init(e.snapshot(t)),function(){l(),null==d||d()}}},t.proxyMap=function(t){var n,r,i,a=e.proxy((r={data:Array.from(t||[]),has:function(t){return this.data.some((function(e){return e[0]===t}))},set:function(t,e){var n=this.data.find((function(e){return e[0]===t}));return n?n[1]=e:this.data.push([t,e]),this},get:function(t){var e;return null==(e=this.data.find((function(e){return e[0]===t})))?void 0:e[1]},delete:function(t){var e=this.data.findIndex((function(e){return e[0]===t}));return-1!==e&&(this.data.splice(e,1),!0)},clear:function(){this.data.splice(0)},get size(){return this.data.length},toJSON:function(){return{}},forEach:function(t){var e=this;this.data.forEach((function(n){t(n[1],n[0],e)}))},keys:function(){return this.data.map((function(t){return t[0]})).values()},values:function(){return this.data.map((function(t){return t[1]})).values()},entries:function(){return new Map(this.data).entries()}},(i={})[n=Symbol.toStringTag]=i[n]||{},i[n].get=function(){return"Map"},r[Symbol.iterator]=function(){return this.entries()},v(r,i),r));return Object.defineProperties(a,{data:{enumerable:!1},size:{enumerable:!1},toJSON:{enumerable:!1}}),Object.seal(a),a},t.proxySet=function(t){var n,r,i,a=e.proxy((r={data:Array.from(new Set(t)),has:function(t){return-1!==this.data.indexOf(t)},add:function(t){var n=!1;return"object"==typeof t&&null!==t&&(n=-1!==this.data.indexOf(e.proxy(t))),-1!==this.data.indexOf(t)||n||this.data.push(t),this},delete:function(t){var e=this.data.indexOf(t);return-1!==e&&(this.data.splice(e,1),!0)},clear:function(){this.data.splice(0)},get size(){return this.data.length},forEach:function(t){var e=this;this.data.forEach((function(n){t(n,n,e)}))}},(i={})[n=Symbol.toStringTag]=i[n]||{},i[n].get=function(){return"Set"},r.toJSON=function(){return{}},r[Symbol.iterator]=function(){return this.data[Symbol.iterator]()},r.values=function(){return this.data.values()},r.keys=function(){return this.data.values()},r.entries=function(){return new Set(this.data).entries()},v(r,i),r));return Object.defineProperties(a,{data:{enumerable:!1},size:{enumerable:!1},toJSON:{enumerable:!1}}),Object.seal(a),a},t.proxyWithComputed=function(t,n){Object.keys(n).forEach((function(i){if(Object.getOwnPropertyDescriptor(t,i))throw new Error("object property already defined");var a=n[i],o="function"==typeof a?{get:a}:a,u=o.get,s=o.set,c={get:function(){return u(e.snapshot(r))}};s&&(c.set=function(t){return s(r,t)}),Object.defineProperty(t,i,c)}));var r=e.proxy(t);return r},t.proxyWithHistory=function(t,n){void 0===n&&(n=!1);var r=e.proxy({value:t,history:e.ref({wip:void 0,snapshots:[],index:-1}),canUndo:function(){return r.history.index>0},undo:function(){r.canUndo()&&(r.value=r.history.wip=p(r.history.snapshots[--r.history.index]))},canRedo:function(){return r.history.index<r.history.snapshots.length-1},redo:function(){r.canRedo()&&(r.value=r.history.wip=p(r.history.snapshots[++r.history.index]))},saveHistory:function(){r.history.snapshots.splice(r.history.index+1),r.history.snapshots.push(e.snapshot(r).value),++r.history.index},subscribe:function(){return e.subscribe(r,(function(t){t.every((function(t){return"value"===t[1][0]&&("set"!==t[0]||t[2]!==r.history.wip)}))&&r.saveHistory()}))}});return r.saveHistory(),n||r.subscribe(),r},t.subscribeKey=function(t,n,r,i){var a=t[n];return e.subscribe(t,(function(){var e=t[n];Object.is(a,e)||r(a=e)}),i)},t.underive=function(t,e){var n=null!=e&&e.delete?new Set:null;f(t).forEach((function(t){var r=t.k;null!=e&&e.keys&&!e.keys.includes(r)||(c(t),n&&n.add(r))})),n&&n.forEach((function(e){delete t[e]}))},t.unstable_deriveSubscriptions=l,t.watch=function(t,r){var i=!0,a=new Set,o=new Map,u=function(){i&&(i=!1,a.forEach((function(t){return t()})),a.clear(),o.forEach((function(t){return t()})),o.clear())};return n&&n.add(u),function u(){if(i){a.forEach((function(t){return t()})),a.clear();var s=new Set,c=n;n=a;try{var f=t((function(t){return s.add(t),t}));f&&a.add(f)}finally{n=c}o.forEach((function(t,e){s.has(e)?s.delete(e):(o.delete(e),t())})),s.forEach((function(t){var n=e.subscribe(t,u,null==r?void 0:r.sync);o.set(t,n)}))}}(),u},Object.defineProperty(t,"__esModule",{value:!0})}));

@@ -278,3 +278,6 @@ (function (global, factory) {

promise = undefined;
callback(ops.splice(0));
if (proxyObject[LISTENERS].has(listener)) {
callback(ops.splice(0));
}
});

@@ -281,0 +284,0 @@ }

@@ -1,1 +0,1 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("proxy-compare")):"function"==typeof define&&define.amd?define(["exports","proxy-compare"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).valtioVanilla={},e.proxyCompare)}(this,(function(e,t){"use strict";var n=function(e){return"object"==typeof e&&null!==e},r=new WeakSet,o=Symbol(),i=Symbol(),c=Symbol(),f=function(e,f,a,l,s,d,v,p,y,b){return void 0===e&&(e=Object.is),void 0===f&&(f=function(e,t){return new Proxy(e,t)}),void 0===a&&(a=function(e){return n(e)&&!r.has(e)&&(Array.isArray(e)||!(Symbol.iterator in e))&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof Error)&&!(e instanceof Number)&&!(e instanceof Date)&&!(e instanceof String)&&!(e instanceof RegExp)&&!(e instanceof ArrayBuffer)}),void 0===l&&(l=Symbol()),void 0===s&&(s=Symbol()),void 0===d&&(d=new WeakMap),void 0===v&&(v=function(e,n,o){var f=d.get(o);if((null==f?void 0:f[0])===e)return f[1];var a=Array.isArray(n)?[]:Object.create(Object.getPrototypeOf(n));return t.markToTrack(a,!0),d.set(o,[e,a]),Reflect.ownKeys(n).forEach((function(e){var f=Reflect.get(n,e,o);if(r.has(f))t.markToTrack(f,!1),a[e]=f;else if(f instanceof Promise)if(l in f)a[e]=f[l];else{var u=f[s]||f;Object.defineProperty(a,e,{get:function(){if(l in f)return f[l];throw u}})}else null!=f&&f[i]?a[e]=f[c]:a[e]=f})),Object.freeze(a)}),void 0===p&&(p=new WeakMap),void 0===y&&(y=[1]),void 0===b&&(b=function(r){if(!n(r))throw new Error("object required");var d=p.get(r);if(d)return d;var b=y[0],g=new Set,m=function(e,t){void 0===t&&(t=++y[0]),b!==t&&(b=t,g.forEach((function(n){return n(e,t)})))},h=new Map,j=function(e){var t=h.get(e);return t||(t=function(t,n){var r=[].concat(t);r[1]=[e].concat(r[1]),m(r,n)},h.set(e,t)),t},O=function(e){var t=h.get(e);return h.delete(e),t},P=Array.isArray(r)?[]:Object.create(Object.getPrototypeOf(r)),w=f(P,{get:function(e,t,n){return t===o?b:t===i?g:t===c?v(b,e,n):Reflect.get(e,t,n)},deleteProperty:function(e,t){var n=Reflect.get(e,t),r=null==n?void 0:n[i];r&&r.delete(O(t));var o=Reflect.deleteProperty(e,t);return o&&m(["delete",[t],n]),o},set:function(r,o,c,f){var d,v,p=Reflect.has(r,o),y=Reflect.get(r,o,f);if(p&&e(y,c))return!0;var b,g=null==y?void 0:y[i];return g&&g.delete(O(o)),n(c)&&(c=t.getUntracked(c)||c),null!=(d=Object.getOwnPropertyDescriptor(r,o))&&d.set?b=c:c instanceof Promise?b=c.then((function(e){return b[l]=e,m(["resolve",[o],e]),e})).catch((function(e){b[s]=e,m(["reject",[o],e])})):null!=(v=c)&&v[i]?(b=c)[i].add(j(o)):a(c)?(b=u(c))[i].add(j(o)):b=c,Reflect.set(r,o,b,f),m(["set",[o],c,y]),!0}});return p.set(r,w),Reflect.ownKeys(r).forEach((function(e){var t=Object.getOwnPropertyDescriptor(r,e);t.get||t.set?Object.defineProperty(P,e,t):w[e]=r[e]})),w}),[b,r,o,i,c,e,f,a,l,s,d,v,p,y]},a=f()[0];function u(e){return void 0===e&&(e={}),a(e)}var l=f;e.getVersion=function(e){return n(e)?e[o]:void 0},e.proxy=u,e.ref=function(e){return r.add(e),e},e.snapshot=function(e){return e[c]},e.subscribe=function(e,t,n){var r,o=[],c=function(e){o.push(e),n?t(o.splice(0)):r||(r=Promise.resolve().then((function(){r=void 0,t(o.splice(0))})))};return e[i].add(c),function(){e[i].delete(c)}},e.unstable_buildProxyFunction=l,Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("proxy-compare")):"function"==typeof define&&define.amd?define(["exports","proxy-compare"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).valtioVanilla={},e.proxyCompare)}(this,(function(e,t){"use strict";var n=function(e){return"object"==typeof e&&null!==e},r=new WeakSet,o=Symbol(),i=Symbol(),c=Symbol(),f=function(e,f,a,s,l,d,v,p,y,b){return void 0===e&&(e=Object.is),void 0===f&&(f=function(e,t){return new Proxy(e,t)}),void 0===a&&(a=function(e){return n(e)&&!r.has(e)&&(Array.isArray(e)||!(Symbol.iterator in e))&&!(e instanceof WeakMap)&&!(e instanceof WeakSet)&&!(e instanceof Error)&&!(e instanceof Number)&&!(e instanceof Date)&&!(e instanceof String)&&!(e instanceof RegExp)&&!(e instanceof ArrayBuffer)}),void 0===s&&(s=Symbol()),void 0===l&&(l=Symbol()),void 0===d&&(d=new WeakMap),void 0===v&&(v=function(e,n,o){var f=d.get(o);if((null==f?void 0:f[0])===e)return f[1];var a=Array.isArray(n)?[]:Object.create(Object.getPrototypeOf(n));return t.markToTrack(a,!0),d.set(o,[e,a]),Reflect.ownKeys(n).forEach((function(e){var f=Reflect.get(n,e,o);if(r.has(f))t.markToTrack(f,!1),a[e]=f;else if(f instanceof Promise)if(s in f)a[e]=f[s];else{var u=f[l]||f;Object.defineProperty(a,e,{get:function(){if(s in f)return f[s];throw u}})}else null!=f&&f[i]?a[e]=f[c]:a[e]=f})),Object.freeze(a)}),void 0===p&&(p=new WeakMap),void 0===y&&(y=[1]),void 0===b&&(b=function(r){if(!n(r))throw new Error("object required");var d=p.get(r);if(d)return d;var b=y[0],g=new Set,h=function(e,t){void 0===t&&(t=++y[0]),b!==t&&(b=t,g.forEach((function(n){return n(e,t)})))},m=new Map,j=function(e){var t=m.get(e);return t||(t=function(t,n){var r=[].concat(t);r[1]=[e].concat(r[1]),h(r,n)},m.set(e,t)),t},O=function(e){var t=m.get(e);return m.delete(e),t},P=Array.isArray(r)?[]:Object.create(Object.getPrototypeOf(r)),w=f(P,{get:function(e,t,n){return t===o?b:t===i?g:t===c?v(b,e,n):Reflect.get(e,t,n)},deleteProperty:function(e,t){var n=Reflect.get(e,t),r=null==n?void 0:n[i];r&&r.delete(O(t));var o=Reflect.deleteProperty(e,t);return o&&h(["delete",[t],n]),o},set:function(r,o,c,f){var d,v,p=Reflect.has(r,o),y=Reflect.get(r,o,f);if(p&&e(y,c))return!0;var b,g=null==y?void 0:y[i];return g&&g.delete(O(o)),n(c)&&(c=t.getUntracked(c)||c),null!=(d=Object.getOwnPropertyDescriptor(r,o))&&d.set?b=c:c instanceof Promise?b=c.then((function(e){return b[s]=e,h(["resolve",[o],e]),e})).catch((function(e){b[l]=e,h(["reject",[o],e])})):null!=(v=c)&&v[i]?(b=c)[i].add(j(o)):a(c)?(b=u(c))[i].add(j(o)):b=c,Reflect.set(r,o,b,f),h(["set",[o],c,y]),!0}});return p.set(r,w),Reflect.ownKeys(r).forEach((function(e){var t=Object.getOwnPropertyDescriptor(r,e);t.get||t.set?Object.defineProperty(P,e,t):w[e]=r[e]})),w}),[b,r,o,i,c,e,f,a,s,l,d,v,p,y]},a=f()[0];function u(e){return void 0===e&&(e={}),a(e)}var s=f;e.getVersion=function(e){return n(e)?e[o]:void 0},e.proxy=u,e.ref=function(e){return r.add(e),e},e.snapshot=function(e){return e[c]},e.subscribe=function(e,t,n){var r,o=[],c=function c(f){o.push(f),n?t(o.splice(0)):r||(r=Promise.resolve().then((function(){r=void 0,e[i].has(c)&&t(o.splice(0))})))};return e[i].add(c),function(){e[i].delete(c)}},e.unstable_buildProxyFunction=s,Object.defineProperty(e,"__esModule",{value:!0})}));

@@ -8,7 +8,8 @@ 'use strict';

function subscribeKey(proxyObject, key, callback, notifyInSync) {
return vanilla.subscribe(proxyObject, function (ops) {
if (ops.some(function (op) {
return op[1][0] === key;
})) {
callback(proxyObject[key]);
var prevValue = proxyObject[key];
return vanilla.subscribe(proxyObject, function () {
var nextValue = proxyObject[key];
if (!Object.is(prevValue, nextValue)) {
callback(prevValue = nextValue);
}

@@ -15,0 +16,0 @@ }, notifyInSync);

@@ -1,2 +0,2 @@

import type { INTERNAL_Snapshot } from '../vanilla';
import type { INTERNAL_Snapshot as Snapshot } from '../vanilla';
/**

@@ -27,6 +27,6 @@ * proxyWithComputed

export declare function proxyWithComputed<T extends object, U extends object>(initialObject: T, computedFns: {
[K in keyof U]: ((snap: INTERNAL_Snapshot<T>) => U[K]) | {
get: (snap: INTERNAL_Snapshot<T>) => U[K];
[K in keyof U]: ((snap: Snapshot<T>) => U[K]) | {
get: (snap: Snapshot<T>) => U[K];
set?: (state: T, newValue: U[K]) => void;
};
}): T & U;

@@ -1,2 +0,1 @@

import type { INTERNAL_Snapshot } from '../vanilla';
/**

@@ -28,4 +27,488 @@ * proxyWithHistory

history: {
wip: INTERNAL_Snapshot<V> | undefined;
snapshots: INTERNAL_Snapshot<V>[];
wip: (V extends (...args: any[]) => any ? V : V extends {
$$valtioRef: true;
} ? V : V extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_1 in keyof V]: V[K_1] extends infer T ? T extends V[K_1] ? T extends (...args: any[]) => any ? T : T extends {
$$valtioRef: true;
} ? T : T extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (...args: any[]) => any ? T_1 : T_1 extends {
$$valtioRef: true;
} ? T_1 : T_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (...args: any[]) => any ? T_2 : T_2 extends {
$$valtioRef: true;
} ? T_2 : T_2 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (...args: any[]) => any ? T_3 : T_3 extends {
$$valtioRef: true;
} ? T_3 : T_3 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (...args: any[]) => any ? T_4 : T_4 extends {
$$valtioRef: true;
} ? T_4 : T_4 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (...args: any[]) => any ? T_5 : T_5 extends {
$$valtioRef: true;
} ? T_5 : T_5 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (...args: any[]) => any ? T_6 : T_6 extends {
$$valtioRef: true;
} ? T_6 : T_6 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (...args: any[]) => any ? T_7 : T_7 extends {
$$valtioRef: true;
} ? T_7 : T_7 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (...args: any[]) => any ? T_8 : T_8 extends {
$$valtioRef: true;
} ? T_8 : T_8 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_10 in keyof T_8]: T_8[K_10] extends infer T_9 ? T_9 extends T_8[K_10] ? T_9 extends (...args: any[]) => any ? T_9 : T_9 extends {
$$valtioRef: true;
} ? T_9 : T_9 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_11 in keyof T_9]: any; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; }) | undefined;
snapshots: (V extends (...args: any[]) => any ? V : V extends {
$$valtioRef: true;
} ? V : V extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_1 in keyof V]: V[K_1] extends infer T ? T extends V[K_1] ? T extends (...args: any[]) => any ? T : T extends {
$$valtioRef: true;
} ? T : T extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_2 in keyof T]: T[K_2] extends infer T_1 ? T_1 extends T[K_2] ? T_1 extends (...args: any[]) => any ? T_1 : T_1 extends {
$$valtioRef: true;
} ? T_1 : T_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_3 in keyof T_1]: T_1[K_3] extends infer T_2 ? T_2 extends T_1[K_3] ? T_2 extends (...args: any[]) => any ? T_2 : T_2 extends {
$$valtioRef: true;
} ? T_2 : T_2 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_4 in keyof T_2]: T_2[K_4] extends infer T_3 ? T_3 extends T_2[K_4] ? T_3 extends (...args: any[]) => any ? T_3 : T_3 extends {
$$valtioRef: true;
} ? T_3 : T_3 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_5 in keyof T_3]: T_3[K_5] extends infer T_4 ? T_4 extends T_3[K_5] ? T_4 extends (...args: any[]) => any ? T_4 : T_4 extends {
$$valtioRef: true;
} ? T_4 : T_4 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_6 in keyof T_4]: T_4[K_6] extends infer T_5 ? T_5 extends T_4[K_6] ? T_5 extends (...args: any[]) => any ? T_5 : T_5 extends {
$$valtioRef: true;
} ? T_5 : T_5 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_7 in keyof T_5]: T_5[K_7] extends infer T_6 ? T_6 extends T_5[K_7] ? T_6 extends (...args: any[]) => any ? T_6 : T_6 extends {
$$valtioRef: true;
} ? T_6 : T_6 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_8 in keyof T_6]: T_6[K_8] extends infer T_7 ? T_7 extends T_6[K_8] ? T_7 extends (...args: any[]) => any ? T_7 : T_7 extends {
$$valtioRef: true;
} ? T_7 : T_7 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_9 in keyof T_7]: T_7[K_9] extends infer T_8 ? T_8 extends T_7[K_9] ? T_8 extends (...args: any[]) => any ? T_8 : T_8 extends {
$$valtioRef: true;
} ? T_8 : T_8 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_10 in keyof T_8]: T_8[K_10] extends infer T_9 ? T_9 extends T_8[K_10] ? T_9 extends (...args: any[]) => any ? T_9 : T_9 extends {
$$valtioRef: true;
} ? T_9 : T_9 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? V_1 extends (...args: any[]) => any ? V_1 : V_1 extends {
$$valtioRef: true;
} ? V_1 : V_1 extends Promise<infer V_1> ? any : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K in keyof V_1]: any; } : { readonly [K_11 in keyof T_9]: any; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; } : never : never; })[];
index: number;

@@ -32,0 +515,0 @@ } & {

@@ -7,2 +7,5 @@ declare type AsRef = {

declare type AnyFunction = (...args: any[]) => any;
declare type Snapshot<T> = T extends AnyFunction ? T : T extends AsRef ? T : T extends Promise<infer V> ? Snapshot<V> : {
readonly [K in keyof T]: Snapshot<T[K]>;
};
/**

@@ -12,11 +15,9 @@ * This is not a public API.

*/
export declare type INTERNAL_Snapshot<T> = T extends AnyFunction ? T : T extends AsRef ? T : T extends Promise<infer V> ? INTERNAL_Snapshot<V> : {
readonly [K in keyof T]: INTERNAL_Snapshot<T[K]>;
};
export declare type INTERNAL_Snapshot<T> = Snapshot<T>;
export declare function proxy<T extends object>(initialObject?: T): T;
export declare function getVersion(proxyObject: unknown): number | undefined;
export declare function subscribe<T extends object>(proxyObject: T, callback: (ops: Op[]) => void, notifyInSync?: boolean): () => void;
export declare function snapshot<T extends object>(proxyObject: T): INTERNAL_Snapshot<T>;
export declare function snapshot<T extends object>(proxyObject: T): Snapshot<T>;
export declare function ref<T extends object>(obj: T): T & AsRef;
export declare const unstable_buildProxyFunction: (objectIs?: (value1: any, value2: any) => boolean, newProxy?: <T extends object>(target: T, handler: ProxyHandler<T>) => T, canProxy?: (x: unknown) => boolean, PROMISE_RESULT?: symbol, PROMISE_ERROR?: symbol, snapshotCache?: WeakMap<object, [version: number, snapshot: unknown]>, createSnapshot?: <T_1 extends object>(version: number, target: T_1, receiver: any) => T_1, proxyCache?: WeakMap<object, object>, versionHolder?: [number], proxyFunction?: <T_2 extends object>(initialObject: T_2) => T_2) => readonly [<T_2 extends object>(initialObject: T_2) => T_2, WeakSet<object>, symbol, symbol, symbol, (value1: any, value2: any) => boolean, <T extends object>(target: T, handler: ProxyHandler<T>) => T, (x: unknown) => boolean, symbol, symbol, WeakMap<object, [version: number, snapshot: unknown]>, <T_1 extends object>(version: number, target: T_1, receiver: any) => T_1, WeakMap<object, object>, [number]];
export {};

@@ -278,3 +278,6 @@ 'use strict';

promise = undefined;
callback(ops.splice(0));
if (proxyObject[LISTENERS].has(listener)) {
callback(ops.splice(0));
}
});

@@ -281,0 +284,0 @@ }

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is too big to display

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc