@wordpress/data 9.18.0 → 9.18.1-next.79a6196f.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ## Gutenberg
2
2
 
3
- Copyright 2016-2023 by the contributors
3
+ Copyright 2016-2024 by the contributors
4
4
 
5
5
  **License for Contributions (on and after April 15, 2021)**
6
6
 
@@ -46,6 +46,14 @@ function Store(registry, suspense) {
46
46
  let lastIsAsync;
47
47
  let subscriber;
48
48
  let didWarnUnstableReference;
49
+ const storeStatesOnMount = new Map();
50
+ function getStoreState(name) {
51
+ var _registry$stores$name;
52
+ // If there's no store property (custom generic store), return an empty
53
+ // object. When comparing the state, the empty objects will cause the
54
+ // equality check to fail, setting `lastMapResultValid` to false.
55
+ return (_registry$stores$name = registry.stores[name]?.store?.getState?.()) !== null && _registry$stores$name !== void 0 ? _registry$stores$name : {};
56
+ }
49
57
  const createSubscriber = stores => {
50
58
  // The set of stores the `subscribe` function is supposed to subscribe to. Here it is
51
59
  // initialized, and then the `updateStores` function can add new stores to it.
@@ -56,12 +64,21 @@ function Store(registry, suspense) {
56
64
  // keep a set of active subscriptions;
57
65
  const activeSubscriptions = new Set();
58
66
  function subscribe(listener) {
59
- // Invalidate the value right after subscription was created. React will
60
- // call `getValue` after subscribing, to detect store updates that happened
61
- // in the interval between the `getValue` call during render and creating
62
- // the subscription, which is slightly delayed. We need to ensure that this
63
- // second `getValue` call will compute a fresh value.
64
- lastMapResultValid = false;
67
+ // Maybe invalidate the value right after subscription was created.
68
+ // React will call `getValue` after subscribing, to detect store
69
+ // updates that happened in the interval between the `getValue` call
70
+ // during render and creating the subscription, which is slightly
71
+ // delayed. We need to ensure that this second `getValue` call will
72
+ // compute a fresh value only if any of the store states have
73
+ // changed in the meantime.
74
+ if (lastMapResultValid) {
75
+ for (const name of activeStores) {
76
+ if (storeStatesOnMount.get(name) !== getStoreState(name)) {
77
+ lastMapResultValid = false;
78
+ }
79
+ }
80
+ }
81
+ storeStatesOnMount.clear();
65
82
  const onStoreChange = () => {
66
83
  // Invalidate the value on store update, so that a fresh value is computed.
67
84
  lastMapResultValid = false;
@@ -137,6 +154,9 @@ function Store(registry, suspense) {
137
154
  }
138
155
  }
139
156
  if (!subscriber) {
157
+ for (const name of listeningStores.current) {
158
+ storeStatesOnMount.set(name, getStoreState(name));
159
+ }
140
160
  subscriber = createSubscriber(listeningStores.current);
141
161
  } else {
142
162
  subscriber.updateStores(listeningStores.current);
@@ -1 +1 @@
1
- {"version":3,"names":["_priorityQueue","require","_element","_isShallowEqual","_interopRequireDefault","_useRegistry","_useAsyncMode","renderQueue","createQueue","Store","registry","suspense","select","suspendSelect","queueContext","lastMapSelect","lastMapResult","lastMapResultValid","lastIsAsync","subscriber","didWarnUnstableReference","createSubscriber","stores","activeStores","activeSubscriptions","Set","subscribe","listener","onStoreChange","onChange","add","unsubs","subscribeStore","storeName","push","delete","unsub","values","cancel","updateStores","newStores","newStore","includes","subscription","mapSelect","isAsync","updateValue","listeningStores","current","mapResult","__unstableMarkListeningStores","process","env","NODE_ENV","secondMapResult","isShallowEqual","console","warn","getValue","useStaticSelect","useRegistry","useMappingSelect","deps","useAsyncMode","store","useMemo","selector","useCallback","result","useSyncExternalStore","useDebugValue","useSelect","staticSelectMode","staticSelectModeRef","useRef","prevMode","nextMode","Error","useSuspenseSelect"],"sources":["@wordpress/data/src/components/use-select/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createQueue } from '@wordpress/priority-queue';\nimport {\n\tuseRef,\n\tuseCallback,\n\tuseMemo,\n\tuseSyncExternalStore,\n\tuseDebugValue,\n} from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport useRegistry from '../registry-provider/use-registry';\nimport useAsyncMode from '../async-mode-provider/use-async-mode';\n\nconst renderQueue = createQueue();\n\n/**\n * @typedef {import('../../types').StoreDescriptor<C>} StoreDescriptor\n * @template {import('../../types').AnyConfig} C\n */\n/**\n * @typedef {import('../../types').ReduxStoreConfig<State,Actions,Selectors>} ReduxStoreConfig\n * @template State\n * @template {Record<string,import('../../types').ActionCreator>} Actions\n * @template Selectors\n */\n/** @typedef {import('../../types').MapSelect} MapSelect */\n/**\n * @typedef {import('../../types').UseSelectReturn<T>} UseSelectReturn\n * @template {MapSelect|StoreDescriptor<any>} T\n */\n\nfunction Store( registry, suspense ) {\n\tconst select = suspense ? registry.suspendSelect : registry.select;\n\tconst queueContext = {};\n\tlet lastMapSelect;\n\tlet lastMapResult;\n\tlet lastMapResultValid = false;\n\tlet lastIsAsync;\n\tlet subscriber;\n\tlet didWarnUnstableReference;\n\n\tconst createSubscriber = ( stores ) => {\n\t\t// The set of stores the `subscribe` function is supposed to subscribe to. Here it is\n\t\t// initialized, and then the `updateStores` function can add new stores to it.\n\t\tconst activeStores = [ ...stores ];\n\n\t\t// The `subscribe` function, which is passed to the `useSyncExternalStore` hook, could\n\t\t// be called multiple times to establish multiple subscriptions. That's why we need to\n\t\t// keep a set of active subscriptions;\n\t\tconst activeSubscriptions = new Set();\n\n\t\tfunction subscribe( listener ) {\n\t\t\t// Invalidate the value right after subscription was created. React will\n\t\t\t// call `getValue` after subscribing, to detect store updates that happened\n\t\t\t// in the interval between the `getValue` call during render and creating\n\t\t\t// the subscription, which is slightly delayed. We need to ensure that this\n\t\t\t// second `getValue` call will compute a fresh value.\n\t\t\tlastMapResultValid = false;\n\n\t\t\tconst onStoreChange = () => {\n\t\t\t\t// Invalidate the value on store update, so that a fresh value is computed.\n\t\t\t\tlastMapResultValid = false;\n\t\t\t\tlistener();\n\t\t\t};\n\n\t\t\tconst onChange = () => {\n\t\t\t\tif ( lastIsAsync ) {\n\t\t\t\t\trenderQueue.add( queueContext, onStoreChange );\n\t\t\t\t} else {\n\t\t\t\t\tonStoreChange();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst unsubs = [];\n\t\t\tfunction subscribeStore( storeName ) {\n\t\t\t\tunsubs.push( registry.subscribe( onChange, storeName ) );\n\t\t\t}\n\n\t\t\tfor ( const storeName of activeStores ) {\n\t\t\t\tsubscribeStore( storeName );\n\t\t\t}\n\n\t\t\tactiveSubscriptions.add( subscribeStore );\n\n\t\t\treturn () => {\n\t\t\t\tactiveSubscriptions.delete( subscribeStore );\n\n\t\t\t\tfor ( const unsub of unsubs.values() ) {\n\t\t\t\t\t// The return value of the subscribe function could be undefined if the store is a custom generic store.\n\t\t\t\t\tunsub?.();\n\t\t\t\t}\n\t\t\t\t// Cancel existing store updates that were already scheduled.\n\t\t\t\trenderQueue.cancel( queueContext );\n\t\t\t};\n\t\t}\n\n\t\t// Check if `newStores` contains some stores we're not subscribed to yet, and add them.\n\t\tfunction updateStores( newStores ) {\n\t\t\tfor ( const newStore of newStores ) {\n\t\t\t\tif ( activeStores.includes( newStore ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// New `subscribe` calls will subscribe to `newStore`, too.\n\t\t\t\tactiveStores.push( newStore );\n\n\t\t\t\t// Add `newStore` to existing subscriptions.\n\t\t\t\tfor ( const subscription of activeSubscriptions ) {\n\t\t\t\t\tsubscription( newStore );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn { subscribe, updateStores };\n\t};\n\n\treturn ( mapSelect, isAsync ) => {\n\t\tfunction updateValue() {\n\t\t\t// If the last value is valid, and the `mapSelect` callback hasn't changed,\n\t\t\t// then we can safely return the cached value. The value can change only on\n\t\t\t// store update, and in that case value will be invalidated by the listener.\n\t\t\tif ( lastMapResultValid && mapSelect === lastMapSelect ) {\n\t\t\t\treturn lastMapResult;\n\t\t\t}\n\n\t\t\tconst listeningStores = { current: null };\n\t\t\tconst mapResult = registry.__unstableMarkListeningStores(\n\t\t\t\t() => mapSelect( select, registry ),\n\t\t\t\tlisteningStores\n\t\t\t);\n\n\t\t\tif ( process.env.NODE_ENV === 'development' ) {\n\t\t\t\tif ( ! didWarnUnstableReference ) {\n\t\t\t\t\tconst secondMapResult = mapSelect( select, registry );\n\t\t\t\t\tif ( ! isShallowEqual( mapResult, secondMapResult ) ) {\n\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t`The 'useSelect' hook returns different values when called with the same state and parameters. This can lead to unnecessary rerenders.`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tdidWarnUnstableReference = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! subscriber ) {\n\t\t\t\tsubscriber = createSubscriber( listeningStores.current );\n\t\t\t} else {\n\t\t\t\tsubscriber.updateStores( listeningStores.current );\n\t\t\t}\n\n\t\t\t// If the new value is shallow-equal to the old one, keep the old one so\n\t\t\t// that we don't trigger unwanted updates that do a `===` check.\n\t\t\tif ( ! isShallowEqual( lastMapResult, mapResult ) ) {\n\t\t\t\tlastMapResult = mapResult;\n\t\t\t}\n\t\t\tlastMapSelect = mapSelect;\n\t\t\tlastMapResultValid = true;\n\t\t}\n\n\t\tfunction getValue() {\n\t\t\t// Update the value in case it's been invalidated or `mapSelect` has changed.\n\t\t\tupdateValue();\n\t\t\treturn lastMapResult;\n\t\t}\n\n\t\t// When transitioning from async to sync mode, cancel existing store updates\n\t\t// that have been scheduled, and invalidate the value so that it's freshly\n\t\t// computed. It might have been changed by the update we just cancelled.\n\t\tif ( lastIsAsync && ! isAsync ) {\n\t\t\tlastMapResultValid = false;\n\t\t\trenderQueue.cancel( queueContext );\n\t\t}\n\n\t\tupdateValue();\n\n\t\tlastIsAsync = isAsync;\n\n\t\t// Return a pair of functions that can be passed to `useSyncExternalStore`.\n\t\treturn { subscribe: subscriber.subscribe, getValue };\n\t};\n}\n\nfunction useStaticSelect( storeName ) {\n\treturn useRegistry().select( storeName );\n}\n\nfunction useMappingSelect( suspense, mapSelect, deps ) {\n\tconst registry = useRegistry();\n\tconst isAsync = useAsyncMode();\n\tconst store = useMemo(\n\t\t() => Store( registry, suspense ),\n\t\t[ registry, suspense ]\n\t);\n\n\t// These are \"pass-through\" dependencies from the parent hook,\n\t// and the parent should catch any hook rule violations.\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tconst selector = useCallback( mapSelect, deps );\n\tconst { subscribe, getValue } = store( selector, isAsync );\n\tconst result = useSyncExternalStore( subscribe, getValue, getValue );\n\tuseDebugValue( result );\n\treturn result;\n}\n\n/**\n * Custom react hook for retrieving props from registered selectors.\n *\n * In general, this custom React hook follows the\n * [rules of hooks](https://reactjs.org/docs/hooks-rules.html).\n *\n * @template {MapSelect | StoreDescriptor<any>} T\n * @param {T} mapSelect Function called on every state change. The returned value is\n * exposed to the component implementing this hook. The function\n * receives the `registry.select` method on the first argument\n * and the `registry` on the second argument.\n * When a store key is passed, all selectors for the store will be\n * returned. This is only meant for usage of these selectors in event\n * callbacks, not for data needed to create the element tree.\n * @param {unknown[]} deps If provided, this memoizes the mapSelect so the same `mapSelect` is\n * invoked on every state change unless the dependencies change.\n *\n * @example\n * ```js\n * import { useSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function HammerPriceDisplay( { currency } ) {\n * const price = useSelect( ( select ) => {\n * return select( myCustomStore ).getPrice( 'hammer', currency );\n * }, [ currency ] );\n * return new Intl.NumberFormat( 'en-US', {\n * style: 'currency',\n * currency,\n * } ).format( price );\n * }\n *\n * // Rendered in the application:\n * // <HammerPriceDisplay currency=\"USD\" />\n * ```\n *\n * In the above example, when `HammerPriceDisplay` is rendered into an\n * application, the price will be retrieved from the store state using the\n * `mapSelect` callback on `useSelect`. If the currency prop changes then\n * any price in the state for that currency is retrieved. If the currency prop\n * doesn't change and other props are passed in that do change, the price will\n * not change because the dependency is just the currency.\n *\n * When data is only used in an event callback, the data should not be retrieved\n * on render, so it may be useful to get the selectors function instead.\n *\n * **Don't use `useSelect` this way when calling the selectors in the render\n * function because your component won't re-render on a data change.**\n *\n * ```js\n * import { useSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function Paste( { children } ) {\n * const { getSettings } = useSelect( myCustomStore );\n * function onPaste() {\n * // Do something with the settings.\n * const settings = getSettings();\n * }\n * return <div onPaste={ onPaste }>{ children }</div>;\n * }\n * ```\n * @return {UseSelectReturn<T>} A custom react hook.\n */\nexport default function useSelect( mapSelect, deps ) {\n\t// On initial call, on mount, determine the mode of this `useSelect` call\n\t// and then never allow it to change on subsequent updates.\n\tconst staticSelectMode = typeof mapSelect !== 'function';\n\tconst staticSelectModeRef = useRef( staticSelectMode );\n\n\tif ( staticSelectMode !== staticSelectModeRef.current ) {\n\t\tconst prevMode = staticSelectModeRef.current ? 'static' : 'mapping';\n\t\tconst nextMode = staticSelectMode ? 'static' : 'mapping';\n\t\tthrow new Error(\n\t\t\t`Switching useSelect from ${ prevMode } to ${ nextMode } is not allowed`\n\t\t);\n\t}\n\n\t/* eslint-disable react-hooks/rules-of-hooks */\n\t// `staticSelectMode` is not allowed to change during the hook instance's,\n\t// lifetime, so the rules of hooks are not really violated.\n\treturn staticSelectMode\n\t\t? useStaticSelect( mapSelect )\n\t\t: useMappingSelect( false, mapSelect, deps );\n\t/* eslint-enable react-hooks/rules-of-hooks */\n}\n\n/**\n * A variant of the `useSelect` hook that has the same API, but will throw a\n * suspense Promise if any of the called selectors is in an unresolved state.\n *\n * @param {Function} mapSelect Function called on every state change. The\n * returned value is exposed to the component\n * using this hook. The function receives the\n * `registry.suspendSelect` method as the first\n * argument and the `registry` as the second one.\n * @param {Array} deps A dependency array used to memoize the `mapSelect`\n * so that the same `mapSelect` is invoked on every\n * state change unless the dependencies change.\n *\n * @return {Object} Data object returned by the `mapSelect` function.\n */\nexport function useSuspenseSelect( mapSelect, deps ) {\n\treturn useMappingSelect( true, mapSelect, deps );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_priorityQueue","require","_element","_isShallowEqual","_interopRequireDefault","_useRegistry","_useAsyncMode","renderQueue","createQueue","Store","registry","suspense","select","suspendSelect","queueContext","lastMapSelect","lastMapResult","lastMapResultValid","lastIsAsync","subscriber","didWarnUnstableReference","storeStatesOnMount","Map","getStoreState","name","_registry$stores$name","stores","store","getState","createSubscriber","activeStores","activeSubscriptions","Set","subscribe","listener","get","clear","onStoreChange","onChange","add","unsubs","subscribeStore","storeName","push","delete","unsub","values","cancel","updateStores","newStores","newStore","includes","subscription","mapSelect","isAsync","updateValue","listeningStores","current","mapResult","__unstableMarkListeningStores","process","env","NODE_ENV","secondMapResult","isShallowEqual","console","warn","set","getValue","useStaticSelect","useRegistry","useMappingSelect","deps","useAsyncMode","useMemo","selector","useCallback","result","useSyncExternalStore","useDebugValue","useSelect","staticSelectMode","staticSelectModeRef","useRef","prevMode","nextMode","Error","useSuspenseSelect"],"sources":["@wordpress/data/src/components/use-select/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createQueue } from '@wordpress/priority-queue';\nimport {\n\tuseRef,\n\tuseCallback,\n\tuseMemo,\n\tuseSyncExternalStore,\n\tuseDebugValue,\n} from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport useRegistry from '../registry-provider/use-registry';\nimport useAsyncMode from '../async-mode-provider/use-async-mode';\n\nconst renderQueue = createQueue();\n\n/**\n * @typedef {import('../../types').StoreDescriptor<C>} StoreDescriptor\n * @template {import('../../types').AnyConfig} C\n */\n/**\n * @typedef {import('../../types').ReduxStoreConfig<State,Actions,Selectors>} ReduxStoreConfig\n * @template State\n * @template {Record<string,import('../../types').ActionCreator>} Actions\n * @template Selectors\n */\n/** @typedef {import('../../types').MapSelect} MapSelect */\n/**\n * @typedef {import('../../types').UseSelectReturn<T>} UseSelectReturn\n * @template {MapSelect|StoreDescriptor<any>} T\n */\n\nfunction Store( registry, suspense ) {\n\tconst select = suspense ? registry.suspendSelect : registry.select;\n\tconst queueContext = {};\n\tlet lastMapSelect;\n\tlet lastMapResult;\n\tlet lastMapResultValid = false;\n\tlet lastIsAsync;\n\tlet subscriber;\n\tlet didWarnUnstableReference;\n\tconst storeStatesOnMount = new Map();\n\n\tfunction getStoreState( name ) {\n\t\t// If there's no store property (custom generic store), return an empty\n\t\t// object. When comparing the state, the empty objects will cause the\n\t\t// equality check to fail, setting `lastMapResultValid` to false.\n\t\treturn registry.stores[ name ]?.store?.getState?.() ?? {};\n\t}\n\n\tconst createSubscriber = ( stores ) => {\n\t\t// The set of stores the `subscribe` function is supposed to subscribe to. Here it is\n\t\t// initialized, and then the `updateStores` function can add new stores to it.\n\t\tconst activeStores = [ ...stores ];\n\n\t\t// The `subscribe` function, which is passed to the `useSyncExternalStore` hook, could\n\t\t// be called multiple times to establish multiple subscriptions. That's why we need to\n\t\t// keep a set of active subscriptions;\n\t\tconst activeSubscriptions = new Set();\n\n\t\tfunction subscribe( listener ) {\n\t\t\t// Maybe invalidate the value right after subscription was created.\n\t\t\t// React will call `getValue` after subscribing, to detect store\n\t\t\t// updates that happened in the interval between the `getValue` call\n\t\t\t// during render and creating the subscription, which is slightly\n\t\t\t// delayed. We need to ensure that this second `getValue` call will\n\t\t\t// compute a fresh value only if any of the store states have\n\t\t\t// changed in the meantime.\n\t\t\tif ( lastMapResultValid ) {\n\t\t\t\tfor ( const name of activeStores ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tstoreStatesOnMount.get( name ) !== getStoreState( name )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastMapResultValid = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstoreStatesOnMount.clear();\n\n\t\t\tconst onStoreChange = () => {\n\t\t\t\t// Invalidate the value on store update, so that a fresh value is computed.\n\t\t\t\tlastMapResultValid = false;\n\t\t\t\tlistener();\n\t\t\t};\n\n\t\t\tconst onChange = () => {\n\t\t\t\tif ( lastIsAsync ) {\n\t\t\t\t\trenderQueue.add( queueContext, onStoreChange );\n\t\t\t\t} else {\n\t\t\t\t\tonStoreChange();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst unsubs = [];\n\t\t\tfunction subscribeStore( storeName ) {\n\t\t\t\tunsubs.push( registry.subscribe( onChange, storeName ) );\n\t\t\t}\n\n\t\t\tfor ( const storeName of activeStores ) {\n\t\t\t\tsubscribeStore( storeName );\n\t\t\t}\n\n\t\t\tactiveSubscriptions.add( subscribeStore );\n\n\t\t\treturn () => {\n\t\t\t\tactiveSubscriptions.delete( subscribeStore );\n\n\t\t\t\tfor ( const unsub of unsubs.values() ) {\n\t\t\t\t\t// The return value of the subscribe function could be undefined if the store is a custom generic store.\n\t\t\t\t\tunsub?.();\n\t\t\t\t}\n\t\t\t\t// Cancel existing store updates that were already scheduled.\n\t\t\t\trenderQueue.cancel( queueContext );\n\t\t\t};\n\t\t}\n\n\t\t// Check if `newStores` contains some stores we're not subscribed to yet, and add them.\n\t\tfunction updateStores( newStores ) {\n\t\t\tfor ( const newStore of newStores ) {\n\t\t\t\tif ( activeStores.includes( newStore ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// New `subscribe` calls will subscribe to `newStore`, too.\n\t\t\t\tactiveStores.push( newStore );\n\n\t\t\t\t// Add `newStore` to existing subscriptions.\n\t\t\t\tfor ( const subscription of activeSubscriptions ) {\n\t\t\t\t\tsubscription( newStore );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn { subscribe, updateStores };\n\t};\n\n\treturn ( mapSelect, isAsync ) => {\n\t\tfunction updateValue() {\n\t\t\t// If the last value is valid, and the `mapSelect` callback hasn't changed,\n\t\t\t// then we can safely return the cached value. The value can change only on\n\t\t\t// store update, and in that case value will be invalidated by the listener.\n\t\t\tif ( lastMapResultValid && mapSelect === lastMapSelect ) {\n\t\t\t\treturn lastMapResult;\n\t\t\t}\n\n\t\t\tconst listeningStores = { current: null };\n\t\t\tconst mapResult = registry.__unstableMarkListeningStores(\n\t\t\t\t() => mapSelect( select, registry ),\n\t\t\t\tlisteningStores\n\t\t\t);\n\n\t\t\tif ( process.env.NODE_ENV === 'development' ) {\n\t\t\t\tif ( ! didWarnUnstableReference ) {\n\t\t\t\t\tconst secondMapResult = mapSelect( select, registry );\n\t\t\t\t\tif ( ! isShallowEqual( mapResult, secondMapResult ) ) {\n\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t`The 'useSelect' hook returns different values when called with the same state and parameters. This can lead to unnecessary rerenders.`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tdidWarnUnstableReference = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! subscriber ) {\n\t\t\t\tfor ( const name of listeningStores.current ) {\n\t\t\t\t\tstoreStatesOnMount.set( name, getStoreState( name ) );\n\t\t\t\t}\n\t\t\t\tsubscriber = createSubscriber( listeningStores.current );\n\t\t\t} else {\n\t\t\t\tsubscriber.updateStores( listeningStores.current );\n\t\t\t}\n\n\t\t\t// If the new value is shallow-equal to the old one, keep the old one so\n\t\t\t// that we don't trigger unwanted updates that do a `===` check.\n\t\t\tif ( ! isShallowEqual( lastMapResult, mapResult ) ) {\n\t\t\t\tlastMapResult = mapResult;\n\t\t\t}\n\t\t\tlastMapSelect = mapSelect;\n\t\t\tlastMapResultValid = true;\n\t\t}\n\n\t\tfunction getValue() {\n\t\t\t// Update the value in case it's been invalidated or `mapSelect` has changed.\n\t\t\tupdateValue();\n\t\t\treturn lastMapResult;\n\t\t}\n\n\t\t// When transitioning from async to sync mode, cancel existing store updates\n\t\t// that have been scheduled, and invalidate the value so that it's freshly\n\t\t// computed. It might have been changed by the update we just cancelled.\n\t\tif ( lastIsAsync && ! isAsync ) {\n\t\t\tlastMapResultValid = false;\n\t\t\trenderQueue.cancel( queueContext );\n\t\t}\n\n\t\tupdateValue();\n\n\t\tlastIsAsync = isAsync;\n\n\t\t// Return a pair of functions that can be passed to `useSyncExternalStore`.\n\t\treturn { subscribe: subscriber.subscribe, getValue };\n\t};\n}\n\nfunction useStaticSelect( storeName ) {\n\treturn useRegistry().select( storeName );\n}\n\nfunction useMappingSelect( suspense, mapSelect, deps ) {\n\tconst registry = useRegistry();\n\tconst isAsync = useAsyncMode();\n\tconst store = useMemo(\n\t\t() => Store( registry, suspense ),\n\t\t[ registry, suspense ]\n\t);\n\n\t// These are \"pass-through\" dependencies from the parent hook,\n\t// and the parent should catch any hook rule violations.\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tconst selector = useCallback( mapSelect, deps );\n\tconst { subscribe, getValue } = store( selector, isAsync );\n\tconst result = useSyncExternalStore( subscribe, getValue, getValue );\n\tuseDebugValue( result );\n\treturn result;\n}\n\n/**\n * Custom react hook for retrieving props from registered selectors.\n *\n * In general, this custom React hook follows the\n * [rules of hooks](https://reactjs.org/docs/hooks-rules.html).\n *\n * @template {MapSelect | StoreDescriptor<any>} T\n * @param {T} mapSelect Function called on every state change. The returned value is\n * exposed to the component implementing this hook. The function\n * receives the `registry.select` method on the first argument\n * and the `registry` on the second argument.\n * When a store key is passed, all selectors for the store will be\n * returned. This is only meant for usage of these selectors in event\n * callbacks, not for data needed to create the element tree.\n * @param {unknown[]} deps If provided, this memoizes the mapSelect so the same `mapSelect` is\n * invoked on every state change unless the dependencies change.\n *\n * @example\n * ```js\n * import { useSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function HammerPriceDisplay( { currency } ) {\n * const price = useSelect( ( select ) => {\n * return select( myCustomStore ).getPrice( 'hammer', currency );\n * }, [ currency ] );\n * return new Intl.NumberFormat( 'en-US', {\n * style: 'currency',\n * currency,\n * } ).format( price );\n * }\n *\n * // Rendered in the application:\n * // <HammerPriceDisplay currency=\"USD\" />\n * ```\n *\n * In the above example, when `HammerPriceDisplay` is rendered into an\n * application, the price will be retrieved from the store state using the\n * `mapSelect` callback on `useSelect`. If the currency prop changes then\n * any price in the state for that currency is retrieved. If the currency prop\n * doesn't change and other props are passed in that do change, the price will\n * not change because the dependency is just the currency.\n *\n * When data is only used in an event callback, the data should not be retrieved\n * on render, so it may be useful to get the selectors function instead.\n *\n * **Don't use `useSelect` this way when calling the selectors in the render\n * function because your component won't re-render on a data change.**\n *\n * ```js\n * import { useSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function Paste( { children } ) {\n * const { getSettings } = useSelect( myCustomStore );\n * function onPaste() {\n * // Do something with the settings.\n * const settings = getSettings();\n * }\n * return <div onPaste={ onPaste }>{ children }</div>;\n * }\n * ```\n * @return {UseSelectReturn<T>} A custom react hook.\n */\nexport default function useSelect( mapSelect, deps ) {\n\t// On initial call, on mount, determine the mode of this `useSelect` call\n\t// and then never allow it to change on subsequent updates.\n\tconst staticSelectMode = typeof mapSelect !== 'function';\n\tconst staticSelectModeRef = useRef( staticSelectMode );\n\n\tif ( staticSelectMode !== staticSelectModeRef.current ) {\n\t\tconst prevMode = staticSelectModeRef.current ? 'static' : 'mapping';\n\t\tconst nextMode = staticSelectMode ? 'static' : 'mapping';\n\t\tthrow new Error(\n\t\t\t`Switching useSelect from ${ prevMode } to ${ nextMode } is not allowed`\n\t\t);\n\t}\n\n\t/* eslint-disable react-hooks/rules-of-hooks */\n\t// `staticSelectMode` is not allowed to change during the hook instance's,\n\t// lifetime, so the rules of hooks are not really violated.\n\treturn staticSelectMode\n\t\t? useStaticSelect( mapSelect )\n\t\t: useMappingSelect( false, mapSelect, deps );\n\t/* eslint-enable react-hooks/rules-of-hooks */\n}\n\n/**\n * A variant of the `useSelect` hook that has the same API, but will throw a\n * suspense Promise if any of the called selectors is in an unresolved state.\n *\n * @param {Function} mapSelect Function called on every state change. The\n * returned value is exposed to the component\n * using this hook. The function receives the\n * `registry.suspendSelect` method as the first\n * argument and the `registry` as the second one.\n * @param {Array} deps A dependency array used to memoize the `mapSelect`\n * so that the same `mapSelect` is invoked on every\n * state change unless the dependencies change.\n *\n * @return {Object} Data object returned by the `mapSelect` function.\n */\nexport function useSuspenseSelect( mapSelect, deps ) {\n\treturn useMappingSelect( true, mapSelect, deps );\n}\n"],"mappings":"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"}
@@ -37,6 +37,14 @@ function Store(registry, suspense) {
37
37
  let lastIsAsync;
38
38
  let subscriber;
39
39
  let didWarnUnstableReference;
40
+ const storeStatesOnMount = new Map();
41
+ function getStoreState(name) {
42
+ var _registry$stores$name;
43
+ // If there's no store property (custom generic store), return an empty
44
+ // object. When comparing the state, the empty objects will cause the
45
+ // equality check to fail, setting `lastMapResultValid` to false.
46
+ return (_registry$stores$name = registry.stores[name]?.store?.getState?.()) !== null && _registry$stores$name !== void 0 ? _registry$stores$name : {};
47
+ }
40
48
  const createSubscriber = stores => {
41
49
  // The set of stores the `subscribe` function is supposed to subscribe to. Here it is
42
50
  // initialized, and then the `updateStores` function can add new stores to it.
@@ -47,12 +55,21 @@ function Store(registry, suspense) {
47
55
  // keep a set of active subscriptions;
48
56
  const activeSubscriptions = new Set();
49
57
  function subscribe(listener) {
50
- // Invalidate the value right after subscription was created. React will
51
- // call `getValue` after subscribing, to detect store updates that happened
52
- // in the interval between the `getValue` call during render and creating
53
- // the subscription, which is slightly delayed. We need to ensure that this
54
- // second `getValue` call will compute a fresh value.
55
- lastMapResultValid = false;
58
+ // Maybe invalidate the value right after subscription was created.
59
+ // React will call `getValue` after subscribing, to detect store
60
+ // updates that happened in the interval between the `getValue` call
61
+ // during render and creating the subscription, which is slightly
62
+ // delayed. We need to ensure that this second `getValue` call will
63
+ // compute a fresh value only if any of the store states have
64
+ // changed in the meantime.
65
+ if (lastMapResultValid) {
66
+ for (const name of activeStores) {
67
+ if (storeStatesOnMount.get(name) !== getStoreState(name)) {
68
+ lastMapResultValid = false;
69
+ }
70
+ }
71
+ }
72
+ storeStatesOnMount.clear();
56
73
  const onStoreChange = () => {
57
74
  // Invalidate the value on store update, so that a fresh value is computed.
58
75
  lastMapResultValid = false;
@@ -128,6 +145,9 @@ function Store(registry, suspense) {
128
145
  }
129
146
  }
130
147
  if (!subscriber) {
148
+ for (const name of listeningStores.current) {
149
+ storeStatesOnMount.set(name, getStoreState(name));
150
+ }
131
151
  subscriber = createSubscriber(listeningStores.current);
132
152
  } else {
133
153
  subscriber.updateStores(listeningStores.current);
@@ -1 +1 @@
1
- {"version":3,"names":["createQueue","useRef","useCallback","useMemo","useSyncExternalStore","useDebugValue","isShallowEqual","useRegistry","useAsyncMode","renderQueue","Store","registry","suspense","select","suspendSelect","queueContext","lastMapSelect","lastMapResult","lastMapResultValid","lastIsAsync","subscriber","didWarnUnstableReference","createSubscriber","stores","activeStores","activeSubscriptions","Set","subscribe","listener","onStoreChange","onChange","add","unsubs","subscribeStore","storeName","push","delete","unsub","values","cancel","updateStores","newStores","newStore","includes","subscription","mapSelect","isAsync","updateValue","listeningStores","current","mapResult","__unstableMarkListeningStores","process","env","NODE_ENV","secondMapResult","console","warn","getValue","useStaticSelect","useMappingSelect","deps","store","selector","result","useSelect","staticSelectMode","staticSelectModeRef","prevMode","nextMode","Error","useSuspenseSelect"],"sources":["@wordpress/data/src/components/use-select/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createQueue } from '@wordpress/priority-queue';\nimport {\n\tuseRef,\n\tuseCallback,\n\tuseMemo,\n\tuseSyncExternalStore,\n\tuseDebugValue,\n} from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport useRegistry from '../registry-provider/use-registry';\nimport useAsyncMode from '../async-mode-provider/use-async-mode';\n\nconst renderQueue = createQueue();\n\n/**\n * @typedef {import('../../types').StoreDescriptor<C>} StoreDescriptor\n * @template {import('../../types').AnyConfig} C\n */\n/**\n * @typedef {import('../../types').ReduxStoreConfig<State,Actions,Selectors>} ReduxStoreConfig\n * @template State\n * @template {Record<string,import('../../types').ActionCreator>} Actions\n * @template Selectors\n */\n/** @typedef {import('../../types').MapSelect} MapSelect */\n/**\n * @typedef {import('../../types').UseSelectReturn<T>} UseSelectReturn\n * @template {MapSelect|StoreDescriptor<any>} T\n */\n\nfunction Store( registry, suspense ) {\n\tconst select = suspense ? registry.suspendSelect : registry.select;\n\tconst queueContext = {};\n\tlet lastMapSelect;\n\tlet lastMapResult;\n\tlet lastMapResultValid = false;\n\tlet lastIsAsync;\n\tlet subscriber;\n\tlet didWarnUnstableReference;\n\n\tconst createSubscriber = ( stores ) => {\n\t\t// The set of stores the `subscribe` function is supposed to subscribe to. Here it is\n\t\t// initialized, and then the `updateStores` function can add new stores to it.\n\t\tconst activeStores = [ ...stores ];\n\n\t\t// The `subscribe` function, which is passed to the `useSyncExternalStore` hook, could\n\t\t// be called multiple times to establish multiple subscriptions. That's why we need to\n\t\t// keep a set of active subscriptions;\n\t\tconst activeSubscriptions = new Set();\n\n\t\tfunction subscribe( listener ) {\n\t\t\t// Invalidate the value right after subscription was created. React will\n\t\t\t// call `getValue` after subscribing, to detect store updates that happened\n\t\t\t// in the interval between the `getValue` call during render and creating\n\t\t\t// the subscription, which is slightly delayed. We need to ensure that this\n\t\t\t// second `getValue` call will compute a fresh value.\n\t\t\tlastMapResultValid = false;\n\n\t\t\tconst onStoreChange = () => {\n\t\t\t\t// Invalidate the value on store update, so that a fresh value is computed.\n\t\t\t\tlastMapResultValid = false;\n\t\t\t\tlistener();\n\t\t\t};\n\n\t\t\tconst onChange = () => {\n\t\t\t\tif ( lastIsAsync ) {\n\t\t\t\t\trenderQueue.add( queueContext, onStoreChange );\n\t\t\t\t} else {\n\t\t\t\t\tonStoreChange();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst unsubs = [];\n\t\t\tfunction subscribeStore( storeName ) {\n\t\t\t\tunsubs.push( registry.subscribe( onChange, storeName ) );\n\t\t\t}\n\n\t\t\tfor ( const storeName of activeStores ) {\n\t\t\t\tsubscribeStore( storeName );\n\t\t\t}\n\n\t\t\tactiveSubscriptions.add( subscribeStore );\n\n\t\t\treturn () => {\n\t\t\t\tactiveSubscriptions.delete( subscribeStore );\n\n\t\t\t\tfor ( const unsub of unsubs.values() ) {\n\t\t\t\t\t// The return value of the subscribe function could be undefined if the store is a custom generic store.\n\t\t\t\t\tunsub?.();\n\t\t\t\t}\n\t\t\t\t// Cancel existing store updates that were already scheduled.\n\t\t\t\trenderQueue.cancel( queueContext );\n\t\t\t};\n\t\t}\n\n\t\t// Check if `newStores` contains some stores we're not subscribed to yet, and add them.\n\t\tfunction updateStores( newStores ) {\n\t\t\tfor ( const newStore of newStores ) {\n\t\t\t\tif ( activeStores.includes( newStore ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// New `subscribe` calls will subscribe to `newStore`, too.\n\t\t\t\tactiveStores.push( newStore );\n\n\t\t\t\t// Add `newStore` to existing subscriptions.\n\t\t\t\tfor ( const subscription of activeSubscriptions ) {\n\t\t\t\t\tsubscription( newStore );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn { subscribe, updateStores };\n\t};\n\n\treturn ( mapSelect, isAsync ) => {\n\t\tfunction updateValue() {\n\t\t\t// If the last value is valid, and the `mapSelect` callback hasn't changed,\n\t\t\t// then we can safely return the cached value. The value can change only on\n\t\t\t// store update, and in that case value will be invalidated by the listener.\n\t\t\tif ( lastMapResultValid && mapSelect === lastMapSelect ) {\n\t\t\t\treturn lastMapResult;\n\t\t\t}\n\n\t\t\tconst listeningStores = { current: null };\n\t\t\tconst mapResult = registry.__unstableMarkListeningStores(\n\t\t\t\t() => mapSelect( select, registry ),\n\t\t\t\tlisteningStores\n\t\t\t);\n\n\t\t\tif ( process.env.NODE_ENV === 'development' ) {\n\t\t\t\tif ( ! didWarnUnstableReference ) {\n\t\t\t\t\tconst secondMapResult = mapSelect( select, registry );\n\t\t\t\t\tif ( ! isShallowEqual( mapResult, secondMapResult ) ) {\n\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t`The 'useSelect' hook returns different values when called with the same state and parameters. This can lead to unnecessary rerenders.`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tdidWarnUnstableReference = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! subscriber ) {\n\t\t\t\tsubscriber = createSubscriber( listeningStores.current );\n\t\t\t} else {\n\t\t\t\tsubscriber.updateStores( listeningStores.current );\n\t\t\t}\n\n\t\t\t// If the new value is shallow-equal to the old one, keep the old one so\n\t\t\t// that we don't trigger unwanted updates that do a `===` check.\n\t\t\tif ( ! isShallowEqual( lastMapResult, mapResult ) ) {\n\t\t\t\tlastMapResult = mapResult;\n\t\t\t}\n\t\t\tlastMapSelect = mapSelect;\n\t\t\tlastMapResultValid = true;\n\t\t}\n\n\t\tfunction getValue() {\n\t\t\t// Update the value in case it's been invalidated or `mapSelect` has changed.\n\t\t\tupdateValue();\n\t\t\treturn lastMapResult;\n\t\t}\n\n\t\t// When transitioning from async to sync mode, cancel existing store updates\n\t\t// that have been scheduled, and invalidate the value so that it's freshly\n\t\t// computed. It might have been changed by the update we just cancelled.\n\t\tif ( lastIsAsync && ! isAsync ) {\n\t\t\tlastMapResultValid = false;\n\t\t\trenderQueue.cancel( queueContext );\n\t\t}\n\n\t\tupdateValue();\n\n\t\tlastIsAsync = isAsync;\n\n\t\t// Return a pair of functions that can be passed to `useSyncExternalStore`.\n\t\treturn { subscribe: subscriber.subscribe, getValue };\n\t};\n}\n\nfunction useStaticSelect( storeName ) {\n\treturn useRegistry().select( storeName );\n}\n\nfunction useMappingSelect( suspense, mapSelect, deps ) {\n\tconst registry = useRegistry();\n\tconst isAsync = useAsyncMode();\n\tconst store = useMemo(\n\t\t() => Store( registry, suspense ),\n\t\t[ registry, suspense ]\n\t);\n\n\t// These are \"pass-through\" dependencies from the parent hook,\n\t// and the parent should catch any hook rule violations.\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tconst selector = useCallback( mapSelect, deps );\n\tconst { subscribe, getValue } = store( selector, isAsync );\n\tconst result = useSyncExternalStore( subscribe, getValue, getValue );\n\tuseDebugValue( result );\n\treturn result;\n}\n\n/**\n * Custom react hook for retrieving props from registered selectors.\n *\n * In general, this custom React hook follows the\n * [rules of hooks](https://reactjs.org/docs/hooks-rules.html).\n *\n * @template {MapSelect | StoreDescriptor<any>} T\n * @param {T} mapSelect Function called on every state change. The returned value is\n * exposed to the component implementing this hook. The function\n * receives the `registry.select` method on the first argument\n * and the `registry` on the second argument.\n * When a store key is passed, all selectors for the store will be\n * returned. This is only meant for usage of these selectors in event\n * callbacks, not for data needed to create the element tree.\n * @param {unknown[]} deps If provided, this memoizes the mapSelect so the same `mapSelect` is\n * invoked on every state change unless the dependencies change.\n *\n * @example\n * ```js\n * import { useSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function HammerPriceDisplay( { currency } ) {\n * const price = useSelect( ( select ) => {\n * return select( myCustomStore ).getPrice( 'hammer', currency );\n * }, [ currency ] );\n * return new Intl.NumberFormat( 'en-US', {\n * style: 'currency',\n * currency,\n * } ).format( price );\n * }\n *\n * // Rendered in the application:\n * // <HammerPriceDisplay currency=\"USD\" />\n * ```\n *\n * In the above example, when `HammerPriceDisplay` is rendered into an\n * application, the price will be retrieved from the store state using the\n * `mapSelect` callback on `useSelect`. If the currency prop changes then\n * any price in the state for that currency is retrieved. If the currency prop\n * doesn't change and other props are passed in that do change, the price will\n * not change because the dependency is just the currency.\n *\n * When data is only used in an event callback, the data should not be retrieved\n * on render, so it may be useful to get the selectors function instead.\n *\n * **Don't use `useSelect` this way when calling the selectors in the render\n * function because your component won't re-render on a data change.**\n *\n * ```js\n * import { useSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function Paste( { children } ) {\n * const { getSettings } = useSelect( myCustomStore );\n * function onPaste() {\n * // Do something with the settings.\n * const settings = getSettings();\n * }\n * return <div onPaste={ onPaste }>{ children }</div>;\n * }\n * ```\n * @return {UseSelectReturn<T>} A custom react hook.\n */\nexport default function useSelect( mapSelect, deps ) {\n\t// On initial call, on mount, determine the mode of this `useSelect` call\n\t// and then never allow it to change on subsequent updates.\n\tconst staticSelectMode = typeof mapSelect !== 'function';\n\tconst staticSelectModeRef = useRef( staticSelectMode );\n\n\tif ( staticSelectMode !== staticSelectModeRef.current ) {\n\t\tconst prevMode = staticSelectModeRef.current ? 'static' : 'mapping';\n\t\tconst nextMode = staticSelectMode ? 'static' : 'mapping';\n\t\tthrow new Error(\n\t\t\t`Switching useSelect from ${ prevMode } to ${ nextMode } is not allowed`\n\t\t);\n\t}\n\n\t/* eslint-disable react-hooks/rules-of-hooks */\n\t// `staticSelectMode` is not allowed to change during the hook instance's,\n\t// lifetime, so the rules of hooks are not really violated.\n\treturn staticSelectMode\n\t\t? useStaticSelect( mapSelect )\n\t\t: useMappingSelect( false, mapSelect, deps );\n\t/* eslint-enable react-hooks/rules-of-hooks */\n}\n\n/**\n * A variant of the `useSelect` hook that has the same API, but will throw a\n * suspense Promise if any of the called selectors is in an unresolved state.\n *\n * @param {Function} mapSelect Function called on every state change. The\n * returned value is exposed to the component\n * using this hook. The function receives the\n * `registry.suspendSelect` method as the first\n * argument and the `registry` as the second one.\n * @param {Array} deps A dependency array used to memoize the `mapSelect`\n * so that the same `mapSelect` is invoked on every\n * state change unless the dependencies change.\n *\n * @return {Object} Data object returned by the `mapSelect` function.\n */\nexport function useSuspenseSelect( mapSelect, deps ) {\n\treturn useMappingSelect( true, mapSelect, deps );\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["createQueue","useRef","useCallback","useMemo","useSyncExternalStore","useDebugValue","isShallowEqual","useRegistry","useAsyncMode","renderQueue","Store","registry","suspense","select","suspendSelect","queueContext","lastMapSelect","lastMapResult","lastMapResultValid","lastIsAsync","subscriber","didWarnUnstableReference","storeStatesOnMount","Map","getStoreState","name","_registry$stores$name","stores","store","getState","createSubscriber","activeStores","activeSubscriptions","Set","subscribe","listener","get","clear","onStoreChange","onChange","add","unsubs","subscribeStore","storeName","push","delete","unsub","values","cancel","updateStores","newStores","newStore","includes","subscription","mapSelect","isAsync","updateValue","listeningStores","current","mapResult","__unstableMarkListeningStores","process","env","NODE_ENV","secondMapResult","console","warn","set","getValue","useStaticSelect","useMappingSelect","deps","selector","result","useSelect","staticSelectMode","staticSelectModeRef","prevMode","nextMode","Error","useSuspenseSelect"],"sources":["@wordpress/data/src/components/use-select/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { createQueue } from '@wordpress/priority-queue';\nimport {\n\tuseRef,\n\tuseCallback,\n\tuseMemo,\n\tuseSyncExternalStore,\n\tuseDebugValue,\n} from '@wordpress/element';\nimport isShallowEqual from '@wordpress/is-shallow-equal';\n\n/**\n * Internal dependencies\n */\nimport useRegistry from '../registry-provider/use-registry';\nimport useAsyncMode from '../async-mode-provider/use-async-mode';\n\nconst renderQueue = createQueue();\n\n/**\n * @typedef {import('../../types').StoreDescriptor<C>} StoreDescriptor\n * @template {import('../../types').AnyConfig} C\n */\n/**\n * @typedef {import('../../types').ReduxStoreConfig<State,Actions,Selectors>} ReduxStoreConfig\n * @template State\n * @template {Record<string,import('../../types').ActionCreator>} Actions\n * @template Selectors\n */\n/** @typedef {import('../../types').MapSelect} MapSelect */\n/**\n * @typedef {import('../../types').UseSelectReturn<T>} UseSelectReturn\n * @template {MapSelect|StoreDescriptor<any>} T\n */\n\nfunction Store( registry, suspense ) {\n\tconst select = suspense ? registry.suspendSelect : registry.select;\n\tconst queueContext = {};\n\tlet lastMapSelect;\n\tlet lastMapResult;\n\tlet lastMapResultValid = false;\n\tlet lastIsAsync;\n\tlet subscriber;\n\tlet didWarnUnstableReference;\n\tconst storeStatesOnMount = new Map();\n\n\tfunction getStoreState( name ) {\n\t\t// If there's no store property (custom generic store), return an empty\n\t\t// object. When comparing the state, the empty objects will cause the\n\t\t// equality check to fail, setting `lastMapResultValid` to false.\n\t\treturn registry.stores[ name ]?.store?.getState?.() ?? {};\n\t}\n\n\tconst createSubscriber = ( stores ) => {\n\t\t// The set of stores the `subscribe` function is supposed to subscribe to. Here it is\n\t\t// initialized, and then the `updateStores` function can add new stores to it.\n\t\tconst activeStores = [ ...stores ];\n\n\t\t// The `subscribe` function, which is passed to the `useSyncExternalStore` hook, could\n\t\t// be called multiple times to establish multiple subscriptions. That's why we need to\n\t\t// keep a set of active subscriptions;\n\t\tconst activeSubscriptions = new Set();\n\n\t\tfunction subscribe( listener ) {\n\t\t\t// Maybe invalidate the value right after subscription was created.\n\t\t\t// React will call `getValue` after subscribing, to detect store\n\t\t\t// updates that happened in the interval between the `getValue` call\n\t\t\t// during render and creating the subscription, which is slightly\n\t\t\t// delayed. We need to ensure that this second `getValue` call will\n\t\t\t// compute a fresh value only if any of the store states have\n\t\t\t// changed in the meantime.\n\t\t\tif ( lastMapResultValid ) {\n\t\t\t\tfor ( const name of activeStores ) {\n\t\t\t\t\tif (\n\t\t\t\t\t\tstoreStatesOnMount.get( name ) !== getStoreState( name )\n\t\t\t\t\t) {\n\t\t\t\t\t\tlastMapResultValid = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tstoreStatesOnMount.clear();\n\n\t\t\tconst onStoreChange = () => {\n\t\t\t\t// Invalidate the value on store update, so that a fresh value is computed.\n\t\t\t\tlastMapResultValid = false;\n\t\t\t\tlistener();\n\t\t\t};\n\n\t\t\tconst onChange = () => {\n\t\t\t\tif ( lastIsAsync ) {\n\t\t\t\t\trenderQueue.add( queueContext, onStoreChange );\n\t\t\t\t} else {\n\t\t\t\t\tonStoreChange();\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tconst unsubs = [];\n\t\t\tfunction subscribeStore( storeName ) {\n\t\t\t\tunsubs.push( registry.subscribe( onChange, storeName ) );\n\t\t\t}\n\n\t\t\tfor ( const storeName of activeStores ) {\n\t\t\t\tsubscribeStore( storeName );\n\t\t\t}\n\n\t\t\tactiveSubscriptions.add( subscribeStore );\n\n\t\t\treturn () => {\n\t\t\t\tactiveSubscriptions.delete( subscribeStore );\n\n\t\t\t\tfor ( const unsub of unsubs.values() ) {\n\t\t\t\t\t// The return value of the subscribe function could be undefined if the store is a custom generic store.\n\t\t\t\t\tunsub?.();\n\t\t\t\t}\n\t\t\t\t// Cancel existing store updates that were already scheduled.\n\t\t\t\trenderQueue.cancel( queueContext );\n\t\t\t};\n\t\t}\n\n\t\t// Check if `newStores` contains some stores we're not subscribed to yet, and add them.\n\t\tfunction updateStores( newStores ) {\n\t\t\tfor ( const newStore of newStores ) {\n\t\t\t\tif ( activeStores.includes( newStore ) ) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\t// New `subscribe` calls will subscribe to `newStore`, too.\n\t\t\t\tactiveStores.push( newStore );\n\n\t\t\t\t// Add `newStore` to existing subscriptions.\n\t\t\t\tfor ( const subscription of activeSubscriptions ) {\n\t\t\t\t\tsubscription( newStore );\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn { subscribe, updateStores };\n\t};\n\n\treturn ( mapSelect, isAsync ) => {\n\t\tfunction updateValue() {\n\t\t\t// If the last value is valid, and the `mapSelect` callback hasn't changed,\n\t\t\t// then we can safely return the cached value. The value can change only on\n\t\t\t// store update, and in that case value will be invalidated by the listener.\n\t\t\tif ( lastMapResultValid && mapSelect === lastMapSelect ) {\n\t\t\t\treturn lastMapResult;\n\t\t\t}\n\n\t\t\tconst listeningStores = { current: null };\n\t\t\tconst mapResult = registry.__unstableMarkListeningStores(\n\t\t\t\t() => mapSelect( select, registry ),\n\t\t\t\tlisteningStores\n\t\t\t);\n\n\t\t\tif ( process.env.NODE_ENV === 'development' ) {\n\t\t\t\tif ( ! didWarnUnstableReference ) {\n\t\t\t\t\tconst secondMapResult = mapSelect( select, registry );\n\t\t\t\t\tif ( ! isShallowEqual( mapResult, secondMapResult ) ) {\n\t\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t\t`The 'useSelect' hook returns different values when called with the same state and parameters. This can lead to unnecessary rerenders.`\n\t\t\t\t\t\t);\n\t\t\t\t\t\tdidWarnUnstableReference = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( ! subscriber ) {\n\t\t\t\tfor ( const name of listeningStores.current ) {\n\t\t\t\t\tstoreStatesOnMount.set( name, getStoreState( name ) );\n\t\t\t\t}\n\t\t\t\tsubscriber = createSubscriber( listeningStores.current );\n\t\t\t} else {\n\t\t\t\tsubscriber.updateStores( listeningStores.current );\n\t\t\t}\n\n\t\t\t// If the new value is shallow-equal to the old one, keep the old one so\n\t\t\t// that we don't trigger unwanted updates that do a `===` check.\n\t\t\tif ( ! isShallowEqual( lastMapResult, mapResult ) ) {\n\t\t\t\tlastMapResult = mapResult;\n\t\t\t}\n\t\t\tlastMapSelect = mapSelect;\n\t\t\tlastMapResultValid = true;\n\t\t}\n\n\t\tfunction getValue() {\n\t\t\t// Update the value in case it's been invalidated or `mapSelect` has changed.\n\t\t\tupdateValue();\n\t\t\treturn lastMapResult;\n\t\t}\n\n\t\t// When transitioning from async to sync mode, cancel existing store updates\n\t\t// that have been scheduled, and invalidate the value so that it's freshly\n\t\t// computed. It might have been changed by the update we just cancelled.\n\t\tif ( lastIsAsync && ! isAsync ) {\n\t\t\tlastMapResultValid = false;\n\t\t\trenderQueue.cancel( queueContext );\n\t\t}\n\n\t\tupdateValue();\n\n\t\tlastIsAsync = isAsync;\n\n\t\t// Return a pair of functions that can be passed to `useSyncExternalStore`.\n\t\treturn { subscribe: subscriber.subscribe, getValue };\n\t};\n}\n\nfunction useStaticSelect( storeName ) {\n\treturn useRegistry().select( storeName );\n}\n\nfunction useMappingSelect( suspense, mapSelect, deps ) {\n\tconst registry = useRegistry();\n\tconst isAsync = useAsyncMode();\n\tconst store = useMemo(\n\t\t() => Store( registry, suspense ),\n\t\t[ registry, suspense ]\n\t);\n\n\t// These are \"pass-through\" dependencies from the parent hook,\n\t// and the parent should catch any hook rule violations.\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tconst selector = useCallback( mapSelect, deps );\n\tconst { subscribe, getValue } = store( selector, isAsync );\n\tconst result = useSyncExternalStore( subscribe, getValue, getValue );\n\tuseDebugValue( result );\n\treturn result;\n}\n\n/**\n * Custom react hook for retrieving props from registered selectors.\n *\n * In general, this custom React hook follows the\n * [rules of hooks](https://reactjs.org/docs/hooks-rules.html).\n *\n * @template {MapSelect | StoreDescriptor<any>} T\n * @param {T} mapSelect Function called on every state change. The returned value is\n * exposed to the component implementing this hook. The function\n * receives the `registry.select` method on the first argument\n * and the `registry` on the second argument.\n * When a store key is passed, all selectors for the store will be\n * returned. This is only meant for usage of these selectors in event\n * callbacks, not for data needed to create the element tree.\n * @param {unknown[]} deps If provided, this memoizes the mapSelect so the same `mapSelect` is\n * invoked on every state change unless the dependencies change.\n *\n * @example\n * ```js\n * import { useSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function HammerPriceDisplay( { currency } ) {\n * const price = useSelect( ( select ) => {\n * return select( myCustomStore ).getPrice( 'hammer', currency );\n * }, [ currency ] );\n * return new Intl.NumberFormat( 'en-US', {\n * style: 'currency',\n * currency,\n * } ).format( price );\n * }\n *\n * // Rendered in the application:\n * // <HammerPriceDisplay currency=\"USD\" />\n * ```\n *\n * In the above example, when `HammerPriceDisplay` is rendered into an\n * application, the price will be retrieved from the store state using the\n * `mapSelect` callback on `useSelect`. If the currency prop changes then\n * any price in the state for that currency is retrieved. If the currency prop\n * doesn't change and other props are passed in that do change, the price will\n * not change because the dependency is just the currency.\n *\n * When data is only used in an event callback, the data should not be retrieved\n * on render, so it may be useful to get the selectors function instead.\n *\n * **Don't use `useSelect` this way when calling the selectors in the render\n * function because your component won't re-render on a data change.**\n *\n * ```js\n * import { useSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * function Paste( { children } ) {\n * const { getSettings } = useSelect( myCustomStore );\n * function onPaste() {\n * // Do something with the settings.\n * const settings = getSettings();\n * }\n * return <div onPaste={ onPaste }>{ children }</div>;\n * }\n * ```\n * @return {UseSelectReturn<T>} A custom react hook.\n */\nexport default function useSelect( mapSelect, deps ) {\n\t// On initial call, on mount, determine the mode of this `useSelect` call\n\t// and then never allow it to change on subsequent updates.\n\tconst staticSelectMode = typeof mapSelect !== 'function';\n\tconst staticSelectModeRef = useRef( staticSelectMode );\n\n\tif ( staticSelectMode !== staticSelectModeRef.current ) {\n\t\tconst prevMode = staticSelectModeRef.current ? 'static' : 'mapping';\n\t\tconst nextMode = staticSelectMode ? 'static' : 'mapping';\n\t\tthrow new Error(\n\t\t\t`Switching useSelect from ${ prevMode } to ${ nextMode } is not allowed`\n\t\t);\n\t}\n\n\t/* eslint-disable react-hooks/rules-of-hooks */\n\t// `staticSelectMode` is not allowed to change during the hook instance's,\n\t// lifetime, so the rules of hooks are not really violated.\n\treturn staticSelectMode\n\t\t? useStaticSelect( mapSelect )\n\t\t: useMappingSelect( false, mapSelect, deps );\n\t/* eslint-enable react-hooks/rules-of-hooks */\n}\n\n/**\n * A variant of the `useSelect` hook that has the same API, but will throw a\n * suspense Promise if any of the called selectors is in an unresolved state.\n *\n * @param {Function} mapSelect Function called on every state change. The\n * returned value is exposed to the component\n * using this hook. The function receives the\n * `registry.suspendSelect` method as the first\n * argument and the `registry` as the second one.\n * @param {Array} deps A dependency array used to memoize the `mapSelect`\n * so that the same `mapSelect` is invoked on every\n * state change unless the dependencies change.\n *\n * @return {Object} Data object returned by the `mapSelect` function.\n */\nexport function useSuspenseSelect( mapSelect, deps ) {\n\treturn useMappingSelect( true, mapSelect, deps );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/use-select/index.js"],"names":[],"mappings":"AAkNA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,8IAlDW,OAAO,EAAE,4CAuEnB;AAED;;;;;;;;;;;;;;GAcG;AACH,qEAFY,MAAM,CAIjB;yEApSY,OAAO,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;sHAIxC,OAAO,aAAa,EAAE,gBAAgB,CAAC,KAAK,EAAC,OAAO,EAAC,SAAS,CAAC;wBAK9D,OAAO,aAAa,EAAE,SAAS;sHAEhC,OAAO,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/use-select/index.js"],"names":[],"mappings":"AAyOA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+DG;AACH,8IAlDW,OAAO,EAAE,4CAuEnB;AAED;;;;;;;;;;;;;;GAcG;AACH,qEAFY,MAAM,CAIjB;yEA3TY,OAAO,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC;sHAIxC,OAAO,aAAa,EAAE,gBAAgB,CAAC,KAAK,EAAC,OAAO,EAAC,SAAS,CAAC;wBAK9D,OAAO,aAAa,EAAE,SAAS;sHAEhC,OAAO,aAAa,EAAE,eAAe,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/data",
3
- "version": "9.18.0",
3
+ "version": "9.18.1-next.79a6196f.0",
4
4
  "description": "Data module for WordPress.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -29,13 +29,13 @@
29
29
  "sideEffects": false,
30
30
  "dependencies": {
31
31
  "@babel/runtime": "^7.16.0",
32
- "@wordpress/compose": "^6.25.0",
33
- "@wordpress/deprecated": "^3.48.0",
34
- "@wordpress/element": "^5.25.0",
35
- "@wordpress/is-shallow-equal": "^4.48.0",
36
- "@wordpress/priority-queue": "^2.48.0",
37
- "@wordpress/private-apis": "^0.30.0",
38
- "@wordpress/redux-routine": "^4.48.0",
32
+ "@wordpress/compose": "^6.25.1-next.79a6196f.0",
33
+ "@wordpress/deprecated": "^3.48.1-next.79a6196f.0",
34
+ "@wordpress/element": "^5.25.1-next.79a6196f.0",
35
+ "@wordpress/is-shallow-equal": "^4.48.1-next.79a6196f.0",
36
+ "@wordpress/priority-queue": "^2.48.1-next.79a6196f.0",
37
+ "@wordpress/private-apis": "^0.30.1-next.79a6196f.0",
38
+ "@wordpress/redux-routine": "^4.48.1-next.79a6196f.0",
39
39
  "deepmerge": "^4.3.0",
40
40
  "equivalent-key-map": "^0.2.2",
41
41
  "is-plain-object": "^5.0.0",
@@ -50,5 +50,5 @@
50
50
  "publishConfig": {
51
51
  "access": "public"
52
52
  },
53
- "gitHead": "fcf61b4beff747222c2c81d09d757ca1a0abd925"
53
+ "gitHead": "1e74b942ac0119a22ceaaf5c9594263f3ec516ab"
54
54
  }
@@ -44,6 +44,14 @@ function Store( registry, suspense ) {
44
44
  let lastIsAsync;
45
45
  let subscriber;
46
46
  let didWarnUnstableReference;
47
+ const storeStatesOnMount = new Map();
48
+
49
+ function getStoreState( name ) {
50
+ // If there's no store property (custom generic store), return an empty
51
+ // object. When comparing the state, the empty objects will cause the
52
+ // equality check to fail, setting `lastMapResultValid` to false.
53
+ return registry.stores[ name ]?.store?.getState?.() ?? {};
54
+ }
47
55
 
48
56
  const createSubscriber = ( stores ) => {
49
57
  // The set of stores the `subscribe` function is supposed to subscribe to. Here it is
@@ -56,12 +64,24 @@ function Store( registry, suspense ) {
56
64
  const activeSubscriptions = new Set();
57
65
 
58
66
  function subscribe( listener ) {
59
- // Invalidate the value right after subscription was created. React will
60
- // call `getValue` after subscribing, to detect store updates that happened
61
- // in the interval between the `getValue` call during render and creating
62
- // the subscription, which is slightly delayed. We need to ensure that this
63
- // second `getValue` call will compute a fresh value.
64
- lastMapResultValid = false;
67
+ // Maybe invalidate the value right after subscription was created.
68
+ // React will call `getValue` after subscribing, to detect store
69
+ // updates that happened in the interval between the `getValue` call
70
+ // during render and creating the subscription, which is slightly
71
+ // delayed. We need to ensure that this second `getValue` call will
72
+ // compute a fresh value only if any of the store states have
73
+ // changed in the meantime.
74
+ if ( lastMapResultValid ) {
75
+ for ( const name of activeStores ) {
76
+ if (
77
+ storeStatesOnMount.get( name ) !== getStoreState( name )
78
+ ) {
79
+ lastMapResultValid = false;
80
+ }
81
+ }
82
+ }
83
+
84
+ storeStatesOnMount.clear();
65
85
 
66
86
  const onStoreChange = () => {
67
87
  // Invalidate the value on store update, so that a fresh value is computed.
@@ -149,6 +169,9 @@ function Store( registry, suspense ) {
149
169
  }
150
170
 
151
171
  if ( ! subscriber ) {
172
+ for ( const name of listeningStores.current ) {
173
+ storeStatesOnMount.set( name, getStoreState( name ) );
174
+ }
152
175
  subscriber = createSubscriber( listeningStores.current );
153
176
  } else {
154
177
  subscriber.updateStores( listeningStores.current );
@@ -61,10 +61,7 @@ describe( 'useSelect', () => {
61
61
  </RegistryProvider>
62
62
  );
63
63
 
64
- // 2 selectSpy calls expected
65
- // - 1 for initial mount
66
- // - 1 for the subscription effect checking if value has changed
67
- expect( selectSpy ).toHaveBeenCalledTimes( 2 );
64
+ expect( selectSpy ).toHaveBeenCalledTimes( 1 );
68
65
  expect( TestComponent ).toHaveBeenCalledTimes( 1 );
69
66
 
70
67
  // Ensure expected state was rendered.
@@ -93,7 +90,7 @@ describe( 'useSelect', () => {
93
90
  </RegistryProvider>
94
91
  );
95
92
 
96
- expect( selectSpyFoo ).toHaveBeenCalledTimes( 2 );
93
+ expect( selectSpyFoo ).toHaveBeenCalledTimes( 1 );
97
94
  expect( selectSpyBar ).toHaveBeenCalledTimes( 0 );
98
95
  expect( TestComponent ).toHaveBeenCalledTimes( 1 );
99
96
 
@@ -107,7 +104,7 @@ describe( 'useSelect', () => {
107
104
  </RegistryProvider>
108
105
  );
109
106
 
110
- expect( selectSpyFoo ).toHaveBeenCalledTimes( 2 );
107
+ expect( selectSpyFoo ).toHaveBeenCalledTimes( 1 );
111
108
  expect( selectSpyBar ).toHaveBeenCalledTimes( 0 );
112
109
  expect( TestComponent ).toHaveBeenCalledTimes( 2 );
113
110
 
@@ -121,7 +118,7 @@ describe( 'useSelect', () => {
121
118
  </RegistryProvider>
122
119
  );
123
120
 
124
- expect( selectSpyFoo ).toHaveBeenCalledTimes( 2 );
121
+ expect( selectSpyFoo ).toHaveBeenCalledTimes( 1 );
125
122
  expect( selectSpyBar ).toHaveBeenCalledTimes( 1 );
126
123
  expect( TestComponent ).toHaveBeenCalledTimes( 3 );
127
124
 
@@ -163,7 +160,7 @@ describe( 'useSelect', () => {
163
160
 
164
161
  // Initial render renders only parent and subscribes the parent to store.
165
162
  expect( screen.getByText( 'none' ) ).toBeInTheDocument();
166
- expect( mapSelectParent ).toHaveBeenCalledTimes( 2 );
163
+ expect( mapSelectParent ).toHaveBeenCalledTimes( 1 );
167
164
  expect( mapSelectChild ).toHaveBeenCalledTimes( 0 );
168
165
  expect( Parent ).toHaveBeenCalledTimes( 1 );
169
166
  expect( Child ).toHaveBeenCalledTimes( 0 );
@@ -174,8 +171,8 @@ describe( 'useSelect', () => {
174
171
 
175
172
  // Child was rendered and subscribed to the store, as the _second_ subscription.
176
173
  expect( screen.getByText( 'yes' ) ).toBeInTheDocument();
177
- expect( mapSelectParent ).toHaveBeenCalledTimes( 3 );
178
- expect( mapSelectChild ).toHaveBeenCalledTimes( 2 );
174
+ expect( mapSelectParent ).toHaveBeenCalledTimes( 2 );
175
+ expect( mapSelectChild ).toHaveBeenCalledTimes( 1 );
179
176
  expect( Parent ).toHaveBeenCalledTimes( 2 );
180
177
  expect( Child ).toHaveBeenCalledTimes( 1 );
181
178
 
@@ -187,8 +184,8 @@ describe( 'useSelect', () => {
187
184
  // I.e., `mapSelectChild` was called again, and state update was scheduled, we cannot
188
185
  // avoid that, but the state update is never executed and doesn't do a rerender.
189
186
  expect( screen.getByText( 'none' ) ).toBeInTheDocument();
190
- expect( mapSelectParent ).toHaveBeenCalledTimes( 4 );
191
- expect( mapSelectChild ).toHaveBeenCalledTimes( 3 );
187
+ expect( mapSelectParent ).toHaveBeenCalledTimes( 3 );
188
+ expect( mapSelectChild ).toHaveBeenCalledTimes( 2 );
192
189
  expect( Parent ).toHaveBeenCalledTimes( 3 );
193
190
  expect( Child ).toHaveBeenCalledTimes( 1 );
194
191
  } );
@@ -217,7 +214,7 @@ describe( 'useSelect', () => {
217
214
  </RegistryProvider>
218
215
  );
219
216
 
220
- expect( mapSelect ).toHaveBeenCalledTimes( 2 );
217
+ expect( mapSelect ).toHaveBeenCalledTimes( 1 );
221
218
  expect( TestComponent ).toHaveBeenCalledTimes( 1 );
222
219
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '0:0' );
223
220
 
@@ -226,7 +223,7 @@ describe( 'useSelect', () => {
226
223
  registry.dispatch( 'store-even' ).inc();
227
224
  } );
228
225
 
229
- expect( mapSelect ).toHaveBeenCalledTimes( 3 );
226
+ expect( mapSelect ).toHaveBeenCalledTimes( 2 );
230
227
  expect( TestComponent ).toHaveBeenCalledTimes( 2 );
231
228
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '0:2' );
232
229
 
@@ -235,7 +232,7 @@ describe( 'useSelect', () => {
235
232
  registry.dispatch( 'store-odd' ).inc();
236
233
  } );
237
234
 
238
- expect( mapSelect ).toHaveBeenCalledTimes( 3 );
235
+ expect( mapSelect ).toHaveBeenCalledTimes( 2 );
239
236
  expect( TestComponent ).toHaveBeenCalledTimes( 2 );
240
237
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '0:2' );
241
238
 
@@ -244,7 +241,7 @@ describe( 'useSelect', () => {
244
241
  registry.dispatch( 'store-main' ).inc();
245
242
  } );
246
243
 
247
- expect( mapSelect ).toHaveBeenCalledTimes( 4 );
244
+ expect( mapSelect ).toHaveBeenCalledTimes( 3 );
248
245
  expect( TestComponent ).toHaveBeenCalledTimes( 3 );
249
246
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '1:3' );
250
247
 
@@ -253,7 +250,7 @@ describe( 'useSelect', () => {
253
250
  registry.dispatch( 'store-odd' ).inc();
254
251
  } );
255
252
 
256
- expect( mapSelect ).toHaveBeenCalledTimes( 5 );
253
+ expect( mapSelect ).toHaveBeenCalledTimes( 4 );
257
254
  expect( TestComponent ).toHaveBeenCalledTimes( 4 );
258
255
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '1:5' );
259
256
 
@@ -263,7 +260,7 @@ describe( 'useSelect', () => {
263
260
  registry.dispatch( 'store-even' ).inc();
264
261
  } );
265
262
 
266
- expect( mapSelect ).toHaveBeenCalledTimes( 6 );
263
+ expect( mapSelect ).toHaveBeenCalledTimes( 5 );
267
264
  expect( TestComponent ).toHaveBeenCalledTimes( 4 );
268
265
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '1:5' );
269
266
  } );
@@ -336,7 +333,7 @@ describe( 'useSelect', () => {
336
333
  expect( screen.getByRole( 'status' ).dataset.d ).toBe(
337
334
  JSON.stringify( valueB )
338
335
  );
339
- expect( mapSelectSpy ).toHaveBeenCalledTimes( 3 );
336
+ expect( mapSelectSpy ).toHaveBeenCalledTimes( 2 );
340
337
  }
341
338
  );
342
339
  } );
@@ -368,8 +365,8 @@ describe( 'useSelect', () => {
368
365
  </RegistryProvider>
369
366
  );
370
367
 
371
- expect( selectCount1 ).toHaveBeenCalledTimes( 2 );
372
- expect( selectCount2 ).toHaveBeenCalledTimes( 2 );
368
+ expect( selectCount1 ).toHaveBeenCalledTimes( 1 );
369
+ expect( selectCount2 ).toHaveBeenCalledTimes( 1 );
373
370
  expect( TestComponent ).toHaveBeenCalledTimes( 1 );
374
371
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '0' );
375
372
 
@@ -377,8 +374,8 @@ describe( 'useSelect', () => {
377
374
  registry.dispatch( 'store-2' ).inc();
378
375
  } );
379
376
 
380
- expect( selectCount1 ).toHaveBeenCalledTimes( 2 );
381
- expect( selectCount2 ).toHaveBeenCalledTimes( 3 );
377
+ expect( selectCount1 ).toHaveBeenCalledTimes( 1 );
378
+ expect( selectCount2 ).toHaveBeenCalledTimes( 2 );
382
379
  expect( TestComponent ).toHaveBeenCalledTimes( 2 );
383
380
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '0' );
384
381
 
@@ -386,8 +383,8 @@ describe( 'useSelect', () => {
386
383
  registry.dispatch( 'store-1' ).inc();
387
384
  } );
388
385
 
389
- expect( selectCount1 ).toHaveBeenCalledTimes( 3 );
390
- expect( selectCount2 ).toHaveBeenCalledTimes( 3 );
386
+ expect( selectCount1 ).toHaveBeenCalledTimes( 2 );
387
+ expect( selectCount2 ).toHaveBeenCalledTimes( 2 );
391
388
  expect( TestComponent ).toHaveBeenCalledTimes( 3 );
392
389
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '1' );
393
390
 
@@ -425,21 +422,21 @@ describe( 'useSelect', () => {
425
422
  </RegistryProvider>
426
423
  );
427
424
 
428
- expect( selectCount1And2 ).toHaveBeenCalledTimes( 2 );
425
+ expect( selectCount1And2 ).toHaveBeenCalledTimes( 1 );
429
426
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '0,0' );
430
427
 
431
428
  act( () => {
432
429
  registry.dispatch( 'store-2' ).inc();
433
430
  } );
434
431
 
435
- expect( selectCount1And2 ).toHaveBeenCalledTimes( 3 );
432
+ expect( selectCount1And2 ).toHaveBeenCalledTimes( 2 );
436
433
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '0,1' );
437
434
 
438
435
  act( () => {
439
436
  registry.dispatch( 'store-3' ).inc();
440
437
  } );
441
438
 
442
- expect( selectCount1And2 ).toHaveBeenCalledTimes( 3 );
439
+ expect( selectCount1And2 ).toHaveBeenCalledTimes( 2 );
443
440
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '0,1' );
444
441
  } );
445
442
 
@@ -475,7 +472,7 @@ describe( 'useSelect', () => {
475
472
  </RegistryProvider>
476
473
  );
477
474
 
478
- expect( selectCount1AndDep ).toHaveBeenCalledTimes( 2 );
475
+ expect( selectCount1AndDep ).toHaveBeenCalledTimes( 1 );
479
476
  expect( screen.getByRole( 'status' ) ).toHaveTextContent(
480
477
  'count:0,dep:0'
481
478
  );
@@ -484,7 +481,7 @@ describe( 'useSelect', () => {
484
481
  setDep( 1 );
485
482
  } );
486
483
 
487
- expect( selectCount1AndDep ).toHaveBeenCalledTimes( 3 );
484
+ expect( selectCount1AndDep ).toHaveBeenCalledTimes( 2 );
488
485
  expect( screen.getByRole( 'status' ) ).toHaveTextContent(
489
486
  'count:0,dep:1'
490
487
  );
@@ -493,7 +490,7 @@ describe( 'useSelect', () => {
493
490
  registry.dispatch( 'store-1' ).inc();
494
491
  } );
495
492
 
496
- expect( selectCount1AndDep ).toHaveBeenCalledTimes( 4 );
493
+ expect( selectCount1AndDep ).toHaveBeenCalledTimes( 3 );
497
494
  expect( screen.getByRole( 'status' ) ).toHaveTextContent(
498
495
  'count:1,dep:1'
499
496
  );
@@ -525,8 +522,8 @@ describe( 'useSelect', () => {
525
522
  </RegistryProvider>
526
523
  );
527
524
 
528
- // One select on initial render, and one in `checkIfSnapshotChanged` after subscribing.
529
- // There's a third selector call on the second render, but that one returns a memoized value.
525
+ // One select on initial render.
526
+ // There's a second selector call on the second render, but that one returns a memoized value.
530
527
  expect( selectCount1 ).toHaveBeenCalledTimes( 2 );
531
528
 
532
529
  // Initial render and second render after counter increment (which is expected to be detected).
@@ -636,7 +633,7 @@ describe( 'useSelect', () => {
636
633
  </RegistryProvider>
637
634
  );
638
635
 
639
- expect( selectCount1And2 ).toHaveBeenCalledTimes( 2 );
636
+ expect( selectCount1And2 ).toHaveBeenCalledTimes( 1 );
640
637
  expect( screen.getByRole( 'status' ) ).toHaveTextContent(
641
638
  'count1:0,count2:0'
642
639
  );
@@ -645,7 +642,7 @@ describe( 'useSelect', () => {
645
642
  registry.dispatch( 'store-2' ).inc();
646
643
  } );
647
644
 
648
- expect( selectCount1And2 ).toHaveBeenCalledTimes( 3 );
645
+ expect( selectCount1And2 ).toHaveBeenCalledTimes( 2 );
649
646
  expect( screen.getByRole( 'status' ) ).toHaveTextContent(
650
647
  'count1:0,count2:1'
651
648
  );
@@ -691,7 +688,7 @@ describe( 'useSelect', () => {
691
688
  );
692
689
 
693
690
  expect( selectCount1 ).toHaveBeenCalledTimes( 0 );
694
- expect( selectCount2 ).toHaveBeenCalledTimes( 2 );
691
+ expect( selectCount2 ).toHaveBeenCalledTimes( 1 );
695
692
  expect( screen.getByRole( 'status' ) ).toHaveTextContent(
696
693
  'count2:0'
697
694
  );
@@ -699,7 +696,7 @@ describe( 'useSelect', () => {
699
696
  act( () => screen.getByText( 'Toggle' ).click() );
700
697
 
701
698
  expect( selectCount1 ).toHaveBeenCalledTimes( 1 );
702
- expect( selectCount2 ).toHaveBeenCalledTimes( 2 );
699
+ expect( selectCount2 ).toHaveBeenCalledTimes( 1 );
703
700
  expect( screen.getByRole( 'status' ) ).toHaveTextContent(
704
701
  'count1:0'
705
702
  );
@@ -710,7 +707,7 @@ describe( 'useSelect', () => {
710
707
  } );
711
708
 
712
709
  expect( selectCount1 ).toHaveBeenCalledTimes( 2 );
713
- expect( selectCount2 ).toHaveBeenCalledTimes( 2 );
710
+ expect( selectCount2 ).toHaveBeenCalledTimes( 1 );
714
711
  expect( screen.getByRole( 'status' ) ).toHaveTextContent(
715
712
  'count1:1'
716
713
  );
@@ -967,8 +964,8 @@ describe( 'useSelect', () => {
967
964
  </AsyncModeProvider>
968
965
  );
969
966
 
970
- // initial render + missed update catcher in subscribing effect
971
- expect( selectSpy ).toHaveBeenCalledTimes( 2 );
967
+ // initial render
968
+ expect( selectSpy ).toHaveBeenCalledTimes( 1 );
972
969
  expect( TestComponent ).toHaveBeenCalledTimes( 1 );
973
970
 
974
971
  // Ensure expected state was rendered.
@@ -979,12 +976,12 @@ describe( 'useSelect', () => {
979
976
  } );
980
977
 
981
978
  // still not called right after increment
982
- expect( selectSpy ).toHaveBeenCalledTimes( 2 );
979
+ expect( selectSpy ).toHaveBeenCalledTimes( 1 );
983
980
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '0' );
984
981
 
985
982
  expect( await screen.findByText( 1 ) ).toBeInTheDocument();
986
983
 
987
- expect( selectSpy ).toHaveBeenCalledTimes( 3 );
984
+ expect( selectSpy ).toHaveBeenCalledTimes( 2 );
988
985
  expect( TestComponent ).toHaveBeenCalledTimes( 2 );
989
986
  } );
990
987
 
@@ -1026,9 +1023,8 @@ describe( 'useSelect', () => {
1026
1023
  // Ensure the async update was flushed during the rerender.
1027
1024
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '1' );
1028
1025
 
1029
- // initial render + subscription check + rerender with isAsync=false
1030
- expect( selectSpy ).toHaveBeenCalledTimes( 3 );
1031
1026
  // initial render + rerender with isAsync=false
1027
+ expect( selectSpy ).toHaveBeenCalledTimes( 2 );
1032
1028
  expect( TestComponent ).toHaveBeenCalledTimes( 2 );
1033
1029
  } );
1034
1030
 
@@ -1077,7 +1073,7 @@ describe( 'useSelect', () => {
1077
1073
  // Give the async update time to run in case it wasn't cancelled
1078
1074
  await new Promise( setImmediate );
1079
1075
 
1080
- expect( selectA ).toHaveBeenCalledTimes( 2 );
1076
+ expect( selectA ).toHaveBeenCalledTimes( 1 );
1081
1077
  expect( selectB ).toHaveBeenCalledTimes( 2 );
1082
1078
  expect( TestComponent ).toHaveBeenCalledTimes( 2 );
1083
1079
  } );
@@ -1120,7 +1116,7 @@ describe( 'useSelect', () => {
1120
1116
  await new Promise( setImmediate );
1121
1117
 
1122
1118
  // only the initial render, no state updates
1123
- expect( selectSpy ).toHaveBeenCalledTimes( 2 );
1119
+ expect( selectSpy ).toHaveBeenCalledTimes( 1 );
1124
1120
  expect( TestComponent ).toHaveBeenCalledTimes( 1 );
1125
1121
  } );
1126
1122
 
@@ -1163,7 +1159,7 @@ describe( 'useSelect', () => {
1163
1159
  await new Promise( setImmediate );
1164
1160
 
1165
1161
  // initial render + registry change rerender, no state updates
1166
- expect( selectSpy ).toHaveBeenCalledTimes( 4 );
1162
+ expect( selectSpy ).toHaveBeenCalledTimes( 2 );
1167
1163
  expect( TestComponent ).toHaveBeenCalledTimes( 2 );
1168
1164
  } );
1169
1165
  } );
@@ -52,10 +52,7 @@ describe( 'withSelect', () => {
52
52
  </RegistryProvider>
53
53
  );
54
54
 
55
- // Expected two times:
56
- // - Once on initial render.
57
- // - Once on effect before subscription set.
58
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
55
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
59
56
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
60
57
 
61
58
  // Wrapper is the enhanced component.
@@ -107,10 +104,7 @@ describe( 'withSelect', () => {
107
104
  );
108
105
 
109
106
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
110
- // 2 times:
111
- // - 1 on initial render
112
- // - 1 on effect before subscription set.
113
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
107
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
114
108
  expect( mapDispatchToProps ).toHaveBeenCalledTimes( 1 );
115
109
 
116
110
  // Simulate a click on the button.
@@ -119,16 +113,14 @@ describe( 'withSelect', () => {
119
113
  await user.click( button );
120
114
 
121
115
  expect( button ).toHaveTextContent( '1' );
122
- // 2 times =
123
- // 1. Initial mount
116
+ // 1. Initial mount
124
117
  // 2. When click handler is called.
125
118
  expect( mapDispatchToProps ).toHaveBeenCalledTimes( 2 );
126
- // 4 times
119
+ // 3 times
127
120
  // - 1 on initial render
128
- // - 1 on effect before subscription set.
129
121
  // - 1 on click triggering subscription firing.
130
122
  // - 1 on rerender.
131
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 4 );
123
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 3 );
132
124
  // Verifies component only renders twice.
133
125
  expect( OriginalComponent ).toHaveBeenCalledTimes( 2 );
134
126
  } );
@@ -253,10 +245,7 @@ describe( 'withSelect', () => {
253
245
  </RegistryProvider>
254
246
  );
255
247
 
256
- // 2 times:
257
- // - 1 on initial render
258
- // - 1 on effect before subscription set.
259
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
248
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
260
249
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
261
250
 
262
251
  rerender(
@@ -266,7 +255,7 @@ describe( 'withSelect', () => {
266
255
  );
267
256
 
268
257
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( '10' );
269
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 3 );
258
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
270
259
  expect( OriginalComponent ).toHaveBeenCalledTimes( 2 );
271
260
  } );
272
261
 
@@ -296,10 +285,7 @@ describe( 'withSelect', () => {
296
285
  </RegistryProvider>
297
286
  );
298
287
 
299
- // 2 times:
300
- // - 1 on initial render
301
- // - 1 on effect before subscription set.
302
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
288
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
303
289
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
304
290
 
305
291
  rerender(
@@ -308,7 +294,7 @@ describe( 'withSelect', () => {
308
294
  </RegistryProvider>
309
295
  );
310
296
 
311
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
297
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
312
298
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
313
299
  } );
314
300
 
@@ -339,15 +325,12 @@ describe( 'withSelect', () => {
339
325
  </RegistryProvider>
340
326
  );
341
327
 
342
- // 2 times:
343
- // - 1 on initial render
344
- // - 1 on effect before subscription set.
345
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
328
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
346
329
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
347
330
 
348
331
  await act( async () => registry.dispatch( 'demo' ).update() );
349
332
 
350
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 3 );
333
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
351
334
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
352
335
  } );
353
336
 
@@ -373,10 +356,7 @@ describe( 'withSelect', () => {
373
356
  </RegistryProvider>
374
357
  );
375
358
 
376
- // 2 times:
377
- // - 1 on initial render
378
- // - 1 on effect before subscription set.
379
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
359
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
380
360
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
381
361
 
382
362
  rerender(
@@ -385,7 +365,7 @@ describe( 'withSelect', () => {
385
365
  </RegistryProvider>
386
366
  );
387
367
 
388
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 3 );
368
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
389
369
  expect( OriginalComponent ).toHaveBeenCalledTimes( 2 );
390
370
  } );
391
371
 
@@ -411,15 +391,12 @@ describe( 'withSelect', () => {
411
391
  </RegistryProvider>
412
392
  );
413
393
 
414
- // 2 times:
415
- // - 1 on initial render
416
- // - 1 on effect before subscription set.
417
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
394
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
418
395
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
419
396
 
420
397
  await act( async () => store.dispatch( { type: 'dummy' } ) );
421
398
 
422
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
399
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
423
400
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
424
401
  } );
425
402
 
@@ -451,10 +428,7 @@ describe( 'withSelect', () => {
451
428
  </RegistryProvider>
452
429
  );
453
430
 
454
- // 2 times:
455
- // - 1 on initial render
456
- // - 1 on effect before subscription set.
457
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
431
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
458
432
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
459
433
 
460
434
  expect( screen.getByRole( 'status' ) ).toHaveTextContent(
@@ -470,7 +444,7 @@ describe( 'withSelect', () => {
470
444
  </RegistryProvider>
471
445
  );
472
446
 
473
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 3 );
447
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
474
448
  expect( OriginalComponent ).toHaveBeenCalledTimes( 2 );
475
449
  expect( screen.getByRole( 'status' ) ).toHaveTextContent(
476
450
  JSON.stringify( {
@@ -510,10 +484,7 @@ describe( 'withSelect', () => {
510
484
  </RegistryProvider>
511
485
  );
512
486
 
513
- // 2 times:
514
- // - 1 on initial render
515
- // - 1 on effect before subscription set.
516
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
487
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
517
488
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
518
489
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( 'Unknown' );
519
490
 
@@ -523,7 +494,7 @@ describe( 'withSelect', () => {
523
494
  </RegistryProvider>
524
495
  );
525
496
 
526
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 3 );
497
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
527
498
  expect( OriginalComponent ).toHaveBeenCalledTimes( 2 );
528
499
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( 'OK' );
529
500
 
@@ -533,7 +504,7 @@ describe( 'withSelect', () => {
533
504
  </RegistryProvider>
534
505
  );
535
506
 
536
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 4 );
507
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 3 );
537
508
  expect( OriginalComponent ).toHaveBeenCalledTimes( 3 );
538
509
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( 'Unknown' );
539
510
  } );
@@ -574,11 +545,8 @@ describe( 'withSelect', () => {
574
545
  </RegistryProvider>
575
546
  );
576
547
 
577
- // 2 times:
578
- // - 1 on initial render
579
- // - 1 on effect before subscription set.
580
- expect( childMapSelectToProps ).toHaveBeenCalledTimes( 2 );
581
- expect( parentMapSelectToProps ).toHaveBeenCalledTimes( 2 );
548
+ expect( childMapSelectToProps ).toHaveBeenCalledTimes( 1 );
549
+ expect( parentMapSelectToProps ).toHaveBeenCalledTimes( 1 );
582
550
  expect( ChildOriginalComponent ).toHaveBeenCalledTimes( 1 );
583
551
  expect( ParentOriginalComponent ).toHaveBeenCalledTimes( 1 );
584
552
 
@@ -588,8 +556,8 @@ describe( 'withSelect', () => {
588
556
  registry.dispatch( 'childRender' ).toggleRender();
589
557
  } );
590
558
 
591
- expect( childMapSelectToProps ).toHaveBeenCalledTimes( 2 );
592
- expect( parentMapSelectToProps ).toHaveBeenCalledTimes( 4 );
559
+ expect( childMapSelectToProps ).toHaveBeenCalledTimes( 1 );
560
+ expect( parentMapSelectToProps ).toHaveBeenCalledTimes( 3 );
593
561
  expect( ChildOriginalComponent ).toHaveBeenCalledTimes( 1 );
594
562
  expect( ParentOriginalComponent ).toHaveBeenCalledTimes( 2 );
595
563
  } );
@@ -620,10 +588,7 @@ describe( 'withSelect', () => {
620
588
  </RegistryProvider>
621
589
  );
622
590
 
623
- // 2 times:
624
- // - 1 on initial render
625
- // - 1 on effect before subscription set.
626
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
591
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 1 );
627
592
  expect( OriginalComponent ).toHaveBeenCalledTimes( 1 );
628
593
 
629
594
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( 'first' );
@@ -642,12 +607,10 @@ describe( 'withSelect', () => {
642
607
  </RegistryProvider>
643
608
  );
644
609
 
645
- // 4 times:
610
+ // 2 times:
646
611
  // - 1 on initial render
647
- // - 1 on effect before subscription set.
648
612
  // - 1 on re-render
649
- // - 1 on effect before new subscription set (because registry has changed)
650
- expect( mapSelectToProps ).toHaveBeenCalledTimes( 4 );
613
+ expect( mapSelectToProps ).toHaveBeenCalledTimes( 2 );
651
614
  expect( OriginalComponent ).toHaveBeenCalledTimes( 2 );
652
615
  expect( screen.getByRole( 'status' ) ).toHaveTextContent( 'second' );
653
616
  } );
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/factory.js","../../node_modules/redux/index.d.ts","./src/types.ts","./src/controls.js","../../node_modules/utility-types/dist/aliases-and-guards.d.ts","../../node_modules/utility-types/dist/mapped-types.d.ts","../../node_modules/utility-types/dist/utility-types.d.ts","../../node_modules/utility-types/dist/functional-helpers.d.ts","../../node_modules/utility-types/dist/index.d.ts","../deprecated/build-types/index.d.ts","../redux-routine/build-types/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","../../node_modules/@types/react/index.d.ts","../compose/build-types/utils/create-higher-order-component/index.d.ts","../compose/build-types/utils/debounce/index.d.ts","../compose/build-types/utils/throttle/index.d.ts","../compose/build-types/higher-order/compose.d.ts","../compose/build-types/higher-order/pipe.d.ts","../compose/build-types/higher-order/if-condition/index.d.ts","../compose/build-types/higher-order/pure/index.d.ts","../compose/build-types/higher-order/with-global-events/index.d.ts","../compose/build-types/higher-order/with-instance-id/index.d.ts","../compose/build-types/higher-order/with-safe-timeout/index.d.ts","../compose/build-types/higher-order/with-state/index.d.ts","../compose/build-types/hooks/use-constrained-tabbing/index.d.ts","../compose/build-types/hooks/use-copy-on-click/index.d.ts","../compose/build-types/hooks/use-copy-to-clipboard/index.d.ts","../compose/build-types/hooks/use-focus-on-mount/index.d.ts","../compose/build-types/hooks/use-focus-outside/index.d.ts","../compose/build-types/hooks/use-dialog/index.d.ts","../compose/build-types/hooks/use-disabled/index.d.ts","../compose/build-types/hooks/use-dragging/index.d.ts","../compose/build-types/hooks/use-focus-return/index.d.ts","../compose/build-types/hooks/use-instance-id/index.d.ts","../element/build-types/create-interpolate-element.d.ts","../element/build-types/react.d.ts","../../node_modules/@types/react-dom/index.d.ts","../../node_modules/@types/react-dom/client.d.ts","../element/build-types/react-platform.d.ts","../element/build-types/utils.d.ts","../element/build-types/platform.d.ts","../element/build-types/serialize.d.ts","../element/build-types/raw-html.d.ts","../element/build-types/index.d.ts","../compose/build-types/hooks/use-isomorphic-layout-effect/index.d.ts","../../node_modules/@types/mousetrap/index.d.ts","../compose/build-types/hooks/use-keyboard-shortcut/index.d.ts","../compose/build-types/hooks/use-media-query/index.d.ts","../compose/build-types/hooks/use-previous/index.d.ts","../compose/build-types/hooks/use-reduced-motion/index.d.ts","../compose/build-types/hooks/use-state-with-history/index.d.ts","../compose/build-types/hooks/use-viewport-match/index.d.ts","../compose/build-types/hooks/use-resize-observer/index.d.ts","../compose/build-types/hooks/use-async-list/index.d.ts","../compose/build-types/hooks/use-warn-on-change/index.d.ts","../compose/build-types/hooks/use-debounce/index.d.ts","../compose/build-types/hooks/use-debounced-input/index.d.ts","../compose/build-types/hooks/use-throttle/index.d.ts","../compose/build-types/hooks/use-merge-refs/index.d.ts","../compose/build-types/hooks/use-ref-effect/index.d.ts","../compose/build-types/hooks/use-drop-zone/index.d.ts","../compose/build-types/hooks/use-focusable-iframe/index.d.ts","../compose/build-types/hooks/use-fixed-window-list/index.d.ts","../compose/build-types/index.d.ts","./src/redux-store/combine-reducers.js","../private-apis/build-types/implementation.d.ts","../private-apis/build-types/index.d.ts","./src/lock-unlock.js","../../node_modules/is-promise/index.d.ts","./src/promise-middleware.js","./src/resolvers-cache-middleware.js","./src/redux-store/thunk-middleware.js","./src/redux-store/metadata/utils.ts","./src/redux-store/metadata/actions.js","./src/redux-store/metadata/reducer.ts","../../node_modules/rememo/rememo.d.ts","./src/redux-store/metadata/selectors.js","./src/redux-store/index.js","./src/store/index.js","./src/utils/emitter.js","./src/registry.js","./src/default-registry.js","./src/dispatch.ts","../../node_modules/is-plain-object/is-plain-object.d.ts","../../node_modules/deepmerge/index.d.ts","./src/plugins/persistence/storage/object.js","./src/plugins/persistence/storage/default.js","./src/plugins/persistence/index.js","./src/plugins/index.js","../priority-queue/build-types/index.d.ts","../is-shallow-equal/build-types/objects.d.ts","../is-shallow-equal/build-types/arrays.d.ts","../is-shallow-equal/build-types/index.d.ts","./src/components/registry-provider/context.js","./src/components/registry-provider/use-registry.js","./src/components/async-mode-provider/context.js","./src/components/async-mode-provider/use-async-mode.js","./src/components/use-select/index.js","./src/components/with-select/index.js","./src/components/use-dispatch/use-dispatch.js","./src/components/use-dispatch/use-dispatch-with-map.js","./src/components/use-dispatch/index.js","./src/components/with-dispatch/index.js","./src/components/registry-provider/index.js","./src/components/with-registry/index.js","./src/components/async-mode-provider/index.js","./src/select.ts","./src/index.js","./src/redux-store/metadata/equivalent-key-map.d.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"750b0952483dfc1a963abad82bffc11d16267e830ad9c02e2ac04ae4011d4743","signature":"9481c72104c81bcf6384d66fec925883e1cfc251ec79911b224c020402fcca43"},{"version":"8f19251323456195ec9236df857bac3b8f97b73b540ef06ead2ceccc3884954f","affectsGlobalScope":true},{"version":"9187c63478d0b5d7558808e8bbeeee910b73a87bd7e2314d12aef5a54b60534f","signature":"b87862101a0bc834b490d40f203e7550d38ba119fbb4b7cf1a3fe5d62e3aa62d"},{"version":"e382a7658f76f31d91f33c404b9526eeee7938eb4aee831feb51a3ba0e40a321","signature":"8c2a4bbd3555d93ed90e0c99548acc2b32c260cddafecec4b4cd454c1424ad1e"},"bd0d80db12ef1aceefc4f9d3eb88517b9634fa747ae8475981da8655292feab8","55e68fb1618e3f55f7866b8c8415152159309a14b716370081ab0b7af96d876e","bf0491af2455f92282b61807be2be6e7ad7d532e47fac7b698019d3617c28ff7","5d874fb879ab8601c02549817dceb2d0a30729cb7e161625dd6f819bbff1ec0b","ee551a880882770c4f56a0964a9767c9feafe497a5be52652527d098c88d85cb","111864872d90aef86668951ee1765f09e9def8de81160a1ddc3312f2766989ab","a1a9bdabeeb22c50cd0fbae1ca01a15ebe75a1adb5a9e7c27b3d23eb8b10441d",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"4c68749a564a6facdf675416d75789ee5a557afda8960e0803cf6711fa569288","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},"33ac93038bb0401ec8d626b8e9283233a83e185b72de6af25e2be198c142af7c","5770292808bdac9e809cde7178a187cce89dcd6ce72979c1d1d099d213067671","49f44b9e32a9d528a264cc9cf1caeb63fb8e784ad6593ae4db97b8d55958487e","fc1233533790a4225cd78fe456ad42066f5ede6ed5c9338f04dacec955e8432b","4aad182af186a2df9306a344432307410992bb387f9dae22246d4198d970afc2","9e2e7bb9f856f9bc12840215ae088dbc2254f61ac59b13a5b057c231595cf259","c4313f128e258b621bda8c3429aee68bbf3e1a148a349b6407df01170d773d4a","1d2894af65430564ba12842214a8384c3edc94b9cf0e64538474d28acb288ab0","ee5c6b1a350cfffc56ceb3919c0e33fb037788f46689eb56e8a664813eac3f2d","101b9062bf99fffcd043805fb43f67acaa0bfe7495b324aa9b682372c98fd4ac","ae51096d7e513de636260729cce1c8cab0f03417bf7fd4a5fc3bc1e13066a3e0","184a90fe849d5227047070956c9507aea4884d97a7c4e16bc1d8bb2033aabbed","8c55bbcfff983c0e9afd933a35c73eaf8ee1186e3e86feb0e6ee237dd3e375bd","903129fde008533775b06a5ebdf00698e5fde5bf5652ff6c29c3f7e432c7378c","74015f799eaf1baad08d90b1b2ce91fab84d50ead10c58c699a858b717f63f41","28701b1e705eafec432aa5e8581e689c9bb9341bba6616f6d1f681025d32f221","e2248218e82b4e3df1e2f590c6e235c0e3987c50a8a087e3104964c61644bf78","f30b5c4f3570832ada75cb2c06e668934f9b9b9d437a10780b01effb53e2a9a2","2ac28d481be387f5cad74c06d1dd0d61b3d94953687e55043218c927c2ed18bb","26a6058ab933bbdcf633bf4029cbadea38c2d1f8fd516dd6f994546a906c5247","202ca9254496f06eb5fc5b14e7386a800579d34808ee327f43e97596d8845c1e","0c1c79ce1b4c085adce94f17891812ee1a8b76fc1de63dd0d9d80ea34034f389","470509b95e55f314470599d05bd8600eaf3c7bd10d35c94eea5f1ae3139a2bae","e4dd91dd4789a109aab51d8a0569a282369fcda9ba6f2b2297bc61bacfb1a042","83e27bbd7304ea67f9afa1535f1d4fdb15866089f0d893c784cbb5b1c6fb3386","472c14cdec534a465e866b6e1feee2d4e0d89c15fdc33ba80ff034fa0e80f3c1","4d807d55c784b72f71c092c34c84d09b95c29500c30252538fd5cf9a0a788c0e","df43a3968118d4b16618d7a0ac8ba89337fcce3c39e39984087ac34bf0cf250c","7f2497d56947331a6705c6c8d099b173d6fa7b90f5110c190cbca5cae1f3a09c","582f001c48a6204fd6bb5c6c71b36adc5256078c0ac3686b99db59cbb724ca73","af88a0b0f808a6721401550621bfe67c46c6fd55000305058e7c73600d119a9b","35bde1eadd47ade9e8fdad3888485ccbdcb27f718e4b1ad80241437c521f5ff8","96520a873073a2f39f922d0a422498cdcc28be9066a769000cdd07ecaba7b645","7302cf0bc39ea0cb42f0605035b2dddb048809d0cb2ce18af00547e0f4933c93","f1d2d2c3278068da7558b0e56945caf3716d63663da66d2d3fa1d5ba1672122f","35e96b392c3b0e1134be3c6e7c0c75f42daf09a1ed172f979d93078050a04645","ca4c88ef756cb9c6abd4b9ee2db0ee816f68484200f9e0c8a53363e44ab47374","a65a75f828f15734b92b18842c561b5dc8052ee2bf955aa8d8ce452bc7906cb1","2371b1f1d8ff771badcebc3944f9296c4ce5854c4051e5501d1fb43451230d19",{"version":"15f62f4185e8bb96097c0ea709bcc4d091dbe762f48076a08bae01d3014a01f6","affectsGlobalScope":true},"4b34ff3543e7b99f7b8f2125d0dc6ccacc11e9fa9f8e6de7a9cbd5d11a1ddd79","90358612694ff8f39093016eac40ee2fcd0fe2d98ec495463a23822f9498ef50","7217b5c129ccf4da64100067edd1cf89684c5843b047467c074acfd7ca3b384c","9d5c955581f7529f3b68d9a63d703c389807441106e51e604d2cd0b613aaa952","ea7224606ec74917a59437170337f3e1b38de98bc36d9e9d955bd5e484f40bbf","5cf71c5937450c62d091b5a43cfb545f7ff376cdf1d0271ac38f01a6198af88a","c728ed4d9edd0dadc4acf47b491683872bc24c1394d948139f718fdfdc3d8073","c3e7c912712adcd13af72f32caeb91de2f7a09880fd50747c690c91b29dfb7c3","fc2cb49e13333ce31695f24728e80eb1bd2e12f89936f618f122389d9b7598dc","4d7143da723a27bc1273d24da92da612538afec8fa226f5cd865b9715311ce16","25092d3e6e29889bf0eea39873006da9114433da3e475d8d92943f7abf59a3af",{"version":"e0504ea87fdc7dec18ce35a401d7e2047e58b54818318fde49727772fcdedd2f","signature":"c91163558b26e3122d9509f217eac4a204c38105c7b0075d9313606f475904ab"},"142d6426a67811d7bb2211ec07461b73302abc1c58f1b7c62a7f084d05717228","af7111a79dd6691e3168ce5b0feb86dc18b4e296e30d4994448b61f899967dd5",{"version":"8ef752d294a4ab29b7bbda576bc6d763bf727078e685537a695a812d83ecdaa0","signature":"64fa5d796f6f8071c5e5282d751646e1863a20756814c232f3ac7656c39070a6"},"5ac6404ddc5d622905e131dbc5da0362a82e89d1cb97cc8256bf06ca9fad4b24",{"version":"9fcfbc2dd0c0614b3a25d41e4425dd86cdfa574a9e7d2febffc85badcee1a0b8","signature":"895ef4cd86d49605f187c52ac4b77f8139f69df7e2f539c27196d72c75df7d31"},{"version":"f7bc005cc4797b7afe6e2a3a538248d346b943322edab6ab1cb332092ce55e3b","signature":"77ffa277b9d3e950e1db6577196590ca2a9d8ecb215359816aeae54c91fe3ab1"},{"version":"975eb852881942b64b42f35251bb55a75b6521e47c3eefe95d61f986265a5225","signature":"ebcf727b4ea8f6266308020bcf5a6f592bddc7ce27d49e88f0e04545305b5a8e"},{"version":"b86196ae20b726e4a42e00bbfc38361e5f751d3d738c952e659a1fbd60964d27","signature":"bfa6b4eb44114b5261a7dcf7d1e69f54af8bc4ab9a39fbe6063013f33ba8b641"},{"version":"c67951274199df6c887191adafac1c605901c3f6ce123351225e2e93c4282de4","signature":"8db3c1fe705300424e16eccb289f38f0f1fa48c0ba2f7ec73342b678c4582f5d"},{"version":"4fc2fcab4e27cceba55c653a6a35f9d9486ce732debfddfa946d0b7bab9229bb","signature":"00da318428374edba6adde61bea395981d1b13728c4dcc5b855f754b5112642e"},"d83d6ec306241a9a59716eadf007d405cbc9d77b688871089a02159087100d5c",{"version":"2729718058d854c0ad8f5c087ba29eed8474ab9a9e07ebf15eb700f06e64b1cb","signature":"2a46d538ae020f29311198de90a5480d05a0d7f7029a58771d0b467ba5426af4"},{"version":"fd5fb0b19cd760511769a1745fc1a05eb029f6cdbed2f4d89020825b759c8752","signature":"d23323d3fd4e48402abcbebffd8c2ec6b32ef4c217f78ac42bf866c2f6c4552c"},{"version":"48674187365141743eaadc4ffa47b457bfa63d36e945b8e4f43d60b0fe6b1907","signature":"26a926d714be0b62bd6e30976bdfc341ec31c2e95a0c30e88e9d971e8c74586f"},{"version":"412e9398be155d644b609b06bb2d0b6f99d86bf3d7db81b27a357ad8df07e0c0","signature":"b453c1a2eac87cc7083566d798ca756e0256165b9e47d7e3db00426cea8fc626"},{"version":"19c27d32b928fb696df567fd2102de34e948bba3550b30787590d15ae58c86ef","signature":"0c37cfbb515ee4df942133efa11132b16e9a3c8b2bf70f602337756d0783918b"},{"version":"c17118d21ac084068b77eb8e382d9f8988e26bded75c7f0f0b132fa67d4ca625","signature":"cc24820820bdd2761360a0d8f809cfa686294a0c4481c3a69a9c61336ec68b80"},{"version":"d9cf2d880112bcdf535b2e069cfc930c0be744548125758087b0d0f5f8bb5205","signature":"acc5e4fc8f5c67e0ec0b0e70a9aa47e928b4bf45439ca592309cbc1592764d4a"},"9a4c49a0b2bf8536b1f4a72f162f807d7a23aa27a816e9cd24cc965540ba4b35","146ba4b99c5feb82663e17a671bf9f53bb39c704cd76345d6c5a801c26372f44",{"version":"dc8a746041b9afc357038c00dc7bb204e7c758e5796e2b965782b10c010ea5da","signature":"3118e3f67853a4d11cd0225bdc00b683855c9fefa5a42bde70b5394b3b57551c"},{"version":"3c2eecbb08d00f262c3266a5729d8dc7033b12c10ad11085239d942330a66be4","signature":"0fadba7aa026b174f612f3ff924b5a2e9a6b53a70568d489f45afc375ad7cfcc"},{"version":"3b9adf4816bbbfce9644c253cc98f9c288ed843a47937b4c1b0cece533529907","signature":"829868d6ec1927e4700983dba2e0835327ecdd4d7f99072a3de19fda116551b4"},{"version":"50ed6e45c39d15e21c206f167abb7c33067931c37c8c660f1928e504a3ba6fda","signature":"0daf72d81e292312f185c81a2ad0648b226433a00d7d139addc06d39d078b2f1"},"2a57cbf1f516e1a2da6e22644f4517479c3ea3f28ff13aefcb1999c0d31c23f0","403d1ce0100de3871af7504ea28916adfc00f4ed05533299196020bb24a5f4f9","f2418af0b544a141cfb8f320b8b6599a4de8031d04554ae5b5a8f5f74983c99d","8de77521349d45f032ccb921923625d7c44116ad1a281ac331beda3197df59c2",{"version":"02fdc48e90772a67702e098b722a5772fddf789fb8aa961fc1e292655581df34","signature":"90b78b57b0842bd1fd5ec099a97cfb33146e6d2d52dd68d8a89ae834105ab366"},{"version":"e08f7f2e161bf3631ced28081d5b567ebce6f58dedc9930ec299b14f7dc52ae2","signature":"4a9216f87f9b92167b0b18cd90016000e71dd7ea61a95385b2b97be6585e9cb3"},{"version":"f5052fefcfa949e999a862b476c37116c29ce6f294c3dbd7f9e9fec0f2091f63","signature":"496a712363ee622ead98319bdf81471e550993b83529174068fce0f0e2db1615"},{"version":"c12fb0c4b324c65600609051919b1de0da4630c66bdbd4dc268efe7780ff4ed8","signature":"92deca0757666c0db63066e8307e28452fed66d809d5c1ef0554b0475e3b098b"},{"version":"72ca6e8ea835e7745c9b1ea837b815be119af34d6cd5e8ade16b9e53f9313929","signature":"887dc6c82444f5c7f3da9c1914b74a13bb46ca0f218deda5ea25d9fda2bef1b6"},{"version":"91f1c45fd1477bc5cb37a9d4fd53162b58192c01cc9e3d82c683f30a2d1d62c8","signature":"4acad5519af585dca63e9cb8fad17d8c6ab406cb272a0263f0507136f1736c06"},{"version":"42beccc3c85d59f68fd450eef31987bd96b8dab6c1f0365759f1361f4a2bab20","signature":"bc627141b934bcd56c4dd7c2cfd6e8a493e5aeca5d0cd654b2f64433504fa8ce"},{"version":"6469e0325b8d62347b79baf42ba957cc2401ce05378bfd521737c049554028ae","signature":"7f1be7e4a47f9abe89d28793e59d0d7a935c7f14a597f1e2b6651d1e54f23957"},{"version":"e6afc6c377cdc0b881c15db7be06fe57fbdbb4074753bb36abdc26000de853ee","signature":"39f82ec23c92368df0de1449bb26e14280862e092ab8e3eaacf80570ac35a7f2"},{"version":"39912ea790c688755e231a1fe88441c441a4b5d4f085c6d69082b3816c3d5b4b","signature":"82382b2041d0305af5dbc1fdf913319293ad163d9286f19914a15ed4920ddeef"},{"version":"6419036e9ec25b03fed142edef64280f5d7dbcc158170cb27899ecb9cb2dae8b","signature":"9798502506a30b631a4841a0c5e4dd369c8662c2ab08bf069fb464262cd9d9f8"},{"version":"4868b67fbbd8cbeee47a13fa7c3d725b2a79c3c0c808e8007160dc18bcdd163f","signature":"1e23589afc9b7799569b118d252a854a7411f206d3a6f1f8f479dad52faa7e8d"},{"version":"8d09f7a29021a69909eca56a60012bb043c703b82fbb1dede51186fedcce88f9","signature":"1a4f84d939445c350647adf2f5001ecc6fcef110b6daa79c11b3aa7c9984d0e1"},{"version":"593405def651364d973e4f004babc84c36d0975d0a51565bd15ba9e13cd17837","signature":"e7b7ca1fbfddbe67a3736393a170a4fe8d2929cdde754c08e4db38a03869ec94"},{"version":"707299fb29dbeab70e66353f5cc7f675af20ba880334ffc77900bb4c2bd875dc","signature":"292ce5a17ff2c76cea97f425a55a9cf3e7ea2b97de64e34f96e499fa3c32fd58"},"8eed414bd2305e20163d35205b450204002bf20e14c7241d7fec46bb18f174d2"],"root":[61,63,64,128,131,[133,138],[140,146],[149,152],[157,172]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":false,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[76],[72,73,74,75],[65,66,67,68],[65],[66],[77],[76,77],[78],[76,91,92],[107],[76,109],[78,79],[77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126],[159,160],[107,159],[107,145],[157,158],[107,157],[163,164],[107,127,158],[63,158],[63,107,153,156,158,160],[76,127,165],[127,167],[76,127,161],[61,63],[144],[63,145],[61,63,64,141,144,145,146,152,161,162,165,166,167,168,169,170],[130],[151],[144,147,148,150,171],[149],[62,132],[62,63,64,71,127,128,131,133,134,135,137,138,140,172],[62,136,137,172],[136,138,139],[62],[63,70,131,141,142,143],[63],[69],[98,99,102,103,104,105,106],[100,101],[154,155],[156],[129],[76,144],[137,172],[138,139]],"referencedMap":[[101,1],[100,1],[76,2],[69,3],[66,4],[67,5],[82,1],[83,1],[85,6],[86,7],[88,1],[89,1],[90,1],[119,8],[93,9],[94,1],[95,1],[124,1],[126,1],[91,1],[96,1],[125,1],[108,10],[110,11],[122,1],[123,1],[116,1],[121,12],[115,1],[127,13],[77,1],[159,10],[169,14],[160,15],[157,16],[167,17],[158,18],[165,19],[164,20],[163,21],[161,22],[166,23],[168,24],[162,25],[64,26],[145,27],[146,28],[171,29],[131,30],[152,31],[151,32],[150,33],[133,34],[141,35],[138,36],[140,37],[136,38],[144,39],[134,27],[170,28],[63,38],[143,40],[70,41],[98,1],[107,42],[106,1],[102,43],[99,1],[105,1],[156,44],[154,45],[130,46],[71,38]],"exportedModulesMap":[[101,1],[100,1],[76,2],[69,3],[66,4],[67,5],[82,1],[83,1],[85,6],[86,7],[88,1],[89,1],[90,1],[119,8],[93,9],[94,1],[95,1],[124,1],[126,1],[91,1],[96,1],[125,1],[108,10],[110,11],[122,1],[123,1],[116,1],[121,12],[115,1],[127,13],[77,1],[159,1],[157,47],[163,40],[161,40],[166,1],[168,1],[162,1],[64,40],[145,27],[146,40],[171,40],[151,27],[133,38],[141,40],[138,48],[140,49],[136,38],[144,40],[134,27],[170,40],[63,38],[143,40],[70,41],[98,1],[107,42],[106,1],[102,43],[99,1],[105,1],[156,44],[154,45],[130,46],[71,38]],"semanticDiagnosticsPerFile":[109,74,101,100,72,76,75,73,148,147,132,62,139,59,60,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,10,1,11,58,65,68,69,66,67,80,82,81,83,84,85,86,87,117,88,89,90,119,120,93,94,95,124,126,91,92,96,125,97,108,110,111,122,112,113,123,116,114,121,115,118,127,77,78,79,159,169,160,157,167,158,165,164,163,161,166,168,162,64,145,146,61,171,131,152,151,150,149,133,128,141,137,172,138,140,136,135,144,134,170,142,63,143,70,98,107,104,106,102,99,105,103,155,156,154,153,129,130,71],"latestChangedDtsFile":"./build-types/index.d.ts"},"version":"5.1.6"}
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/factory.js","../../node_modules/redux/index.d.ts","./src/types.ts","./src/controls.js","../../node_modules/utility-types/dist/aliases-and-guards.d.ts","../../node_modules/utility-types/dist/mapped-types.d.ts","../../node_modules/utility-types/dist/utility-types.d.ts","../../node_modules/utility-types/dist/functional-helpers.d.ts","../../node_modules/utility-types/dist/index.d.ts","../deprecated/build-types/index.d.ts","../redux-routine/build-types/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","../../node_modules/@types/react/index.d.ts","../compose/build-types/utils/create-higher-order-component/index.d.ts","../compose/build-types/utils/debounce/index.d.ts","../compose/build-types/utils/throttle/index.d.ts","../compose/build-types/higher-order/compose.d.ts","../compose/build-types/higher-order/pipe.d.ts","../compose/build-types/higher-order/if-condition/index.d.ts","../compose/build-types/higher-order/pure/index.d.ts","../compose/build-types/higher-order/with-global-events/index.d.ts","../compose/build-types/higher-order/with-instance-id/index.d.ts","../compose/build-types/higher-order/with-safe-timeout/index.d.ts","../compose/build-types/higher-order/with-state/index.d.ts","../compose/build-types/hooks/use-constrained-tabbing/index.d.ts","../compose/build-types/hooks/use-copy-on-click/index.d.ts","../compose/build-types/hooks/use-copy-to-clipboard/index.d.ts","../compose/build-types/hooks/use-focus-on-mount/index.d.ts","../compose/build-types/hooks/use-focus-outside/index.d.ts","../compose/build-types/hooks/use-dialog/index.d.ts","../compose/build-types/hooks/use-disabled/index.d.ts","../compose/build-types/hooks/use-dragging/index.d.ts","../compose/build-types/hooks/use-focus-return/index.d.ts","../compose/build-types/hooks/use-instance-id/index.d.ts","../element/build-types/create-interpolate-element.d.ts","../element/build-types/react.d.ts","../../node_modules/@types/react-dom/index.d.ts","../../node_modules/@types/react-dom/client.d.ts","../element/build-types/react-platform.d.ts","../element/build-types/utils.d.ts","../element/build-types/platform.d.ts","../element/build-types/serialize.d.ts","../element/build-types/raw-html.d.ts","../element/build-types/index.d.ts","../compose/build-types/hooks/use-isomorphic-layout-effect/index.d.ts","../../node_modules/@types/mousetrap/index.d.ts","../compose/build-types/hooks/use-keyboard-shortcut/index.d.ts","../compose/build-types/hooks/use-media-query/index.d.ts","../compose/build-types/hooks/use-previous/index.d.ts","../compose/build-types/hooks/use-reduced-motion/index.d.ts","../compose/build-types/hooks/use-state-with-history/index.d.ts","../compose/build-types/hooks/use-viewport-match/index.d.ts","../compose/build-types/hooks/use-resize-observer/index.d.ts","../compose/build-types/hooks/use-async-list/index.d.ts","../compose/build-types/hooks/use-warn-on-change/index.d.ts","../compose/build-types/hooks/use-debounce/index.d.ts","../compose/build-types/hooks/use-debounced-input/index.d.ts","../compose/build-types/hooks/use-throttle/index.d.ts","../compose/build-types/hooks/use-merge-refs/index.d.ts","../compose/build-types/hooks/use-ref-effect/index.d.ts","../compose/build-types/hooks/use-drop-zone/index.d.ts","../compose/build-types/hooks/use-focusable-iframe/index.d.ts","../compose/build-types/hooks/use-fixed-window-list/index.d.ts","../compose/build-types/index.d.ts","./src/redux-store/combine-reducers.js","../private-apis/build-types/implementation.d.ts","../private-apis/build-types/index.d.ts","./src/lock-unlock.js","../../node_modules/is-promise/index.d.ts","./src/promise-middleware.js","./src/resolvers-cache-middleware.js","./src/redux-store/thunk-middleware.js","./src/redux-store/metadata/utils.ts","./src/redux-store/metadata/actions.js","./src/redux-store/metadata/reducer.ts","../../node_modules/rememo/rememo.d.ts","./src/redux-store/metadata/selectors.js","./src/redux-store/index.js","./src/store/index.js","./src/utils/emitter.js","./src/registry.js","./src/default-registry.js","./src/dispatch.ts","../../node_modules/is-plain-object/is-plain-object.d.ts","../../node_modules/deepmerge/index.d.ts","./src/plugins/persistence/storage/object.js","./src/plugins/persistence/storage/default.js","./src/plugins/persistence/index.js","./src/plugins/index.js","../priority-queue/build-types/index.d.ts","../is-shallow-equal/build-types/objects.d.ts","../is-shallow-equal/build-types/arrays.d.ts","../is-shallow-equal/build-types/index.d.ts","./src/components/registry-provider/context.js","./src/components/registry-provider/use-registry.js","./src/components/async-mode-provider/context.js","./src/components/async-mode-provider/use-async-mode.js","./src/components/use-select/index.js","./src/components/with-select/index.js","./src/components/use-dispatch/use-dispatch.js","./src/components/use-dispatch/use-dispatch-with-map.js","./src/components/use-dispatch/index.js","./src/components/with-dispatch/index.js","./src/components/registry-provider/index.js","./src/components/with-registry/index.js","./src/components/async-mode-provider/index.js","./src/select.ts","./src/index.js","./src/redux-store/metadata/equivalent-key-map.d.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"750b0952483dfc1a963abad82bffc11d16267e830ad9c02e2ac04ae4011d4743","signature":"9481c72104c81bcf6384d66fec925883e1cfc251ec79911b224c020402fcca43"},{"version":"8f19251323456195ec9236df857bac3b8f97b73b540ef06ead2ceccc3884954f","affectsGlobalScope":true},{"version":"9187c63478d0b5d7558808e8bbeeee910b73a87bd7e2314d12aef5a54b60534f","signature":"b87862101a0bc834b490d40f203e7550d38ba119fbb4b7cf1a3fe5d62e3aa62d"},{"version":"e382a7658f76f31d91f33c404b9526eeee7938eb4aee831feb51a3ba0e40a321","signature":"8c2a4bbd3555d93ed90e0c99548acc2b32c260cddafecec4b4cd454c1424ad1e"},"bd0d80db12ef1aceefc4f9d3eb88517b9634fa747ae8475981da8655292feab8","55e68fb1618e3f55f7866b8c8415152159309a14b716370081ab0b7af96d876e","bf0491af2455f92282b61807be2be6e7ad7d532e47fac7b698019d3617c28ff7","5d874fb879ab8601c02549817dceb2d0a30729cb7e161625dd6f819bbff1ec0b","ee551a880882770c4f56a0964a9767c9feafe497a5be52652527d098c88d85cb","111864872d90aef86668951ee1765f09e9def8de81160a1ddc3312f2766989ab","a1a9bdabeeb22c50cd0fbae1ca01a15ebe75a1adb5a9e7c27b3d23eb8b10441d",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"4c68749a564a6facdf675416d75789ee5a557afda8960e0803cf6711fa569288","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},"33ac93038bb0401ec8d626b8e9283233a83e185b72de6af25e2be198c142af7c","5770292808bdac9e809cde7178a187cce89dcd6ce72979c1d1d099d213067671","49f44b9e32a9d528a264cc9cf1caeb63fb8e784ad6593ae4db97b8d55958487e","fc1233533790a4225cd78fe456ad42066f5ede6ed5c9338f04dacec955e8432b","4aad182af186a2df9306a344432307410992bb387f9dae22246d4198d970afc2","9e2e7bb9f856f9bc12840215ae088dbc2254f61ac59b13a5b057c231595cf259","c4313f128e258b621bda8c3429aee68bbf3e1a148a349b6407df01170d773d4a","1d2894af65430564ba12842214a8384c3edc94b9cf0e64538474d28acb288ab0","ee5c6b1a350cfffc56ceb3919c0e33fb037788f46689eb56e8a664813eac3f2d","101b9062bf99fffcd043805fb43f67acaa0bfe7495b324aa9b682372c98fd4ac","ae51096d7e513de636260729cce1c8cab0f03417bf7fd4a5fc3bc1e13066a3e0","184a90fe849d5227047070956c9507aea4884d97a7c4e16bc1d8bb2033aabbed","8c55bbcfff983c0e9afd933a35c73eaf8ee1186e3e86feb0e6ee237dd3e375bd","903129fde008533775b06a5ebdf00698e5fde5bf5652ff6c29c3f7e432c7378c","74015f799eaf1baad08d90b1b2ce91fab84d50ead10c58c699a858b717f63f41","28701b1e705eafec432aa5e8581e689c9bb9341bba6616f6d1f681025d32f221","e2248218e82b4e3df1e2f590c6e235c0e3987c50a8a087e3104964c61644bf78","f30b5c4f3570832ada75cb2c06e668934f9b9b9d437a10780b01effb53e2a9a2","2ac28d481be387f5cad74c06d1dd0d61b3d94953687e55043218c927c2ed18bb","26a6058ab933bbdcf633bf4029cbadea38c2d1f8fd516dd6f994546a906c5247","202ca9254496f06eb5fc5b14e7386a800579d34808ee327f43e97596d8845c1e","0c1c79ce1b4c085adce94f17891812ee1a8b76fc1de63dd0d9d80ea34034f389","470509b95e55f314470599d05bd8600eaf3c7bd10d35c94eea5f1ae3139a2bae","e4dd91dd4789a109aab51d8a0569a282369fcda9ba6f2b2297bc61bacfb1a042","83e27bbd7304ea67f9afa1535f1d4fdb15866089f0d893c784cbb5b1c6fb3386","472c14cdec534a465e866b6e1feee2d4e0d89c15fdc33ba80ff034fa0e80f3c1","4d807d55c784b72f71c092c34c84d09b95c29500c30252538fd5cf9a0a788c0e","df43a3968118d4b16618d7a0ac8ba89337fcce3c39e39984087ac34bf0cf250c","7f2497d56947331a6705c6c8d099b173d6fa7b90f5110c190cbca5cae1f3a09c","582f001c48a6204fd6bb5c6c71b36adc5256078c0ac3686b99db59cbb724ca73","af88a0b0f808a6721401550621bfe67c46c6fd55000305058e7c73600d119a9b","35bde1eadd47ade9e8fdad3888485ccbdcb27f718e4b1ad80241437c521f5ff8","96520a873073a2f39f922d0a422498cdcc28be9066a769000cdd07ecaba7b645","7302cf0bc39ea0cb42f0605035b2dddb048809d0cb2ce18af00547e0f4933c93","f1d2d2c3278068da7558b0e56945caf3716d63663da66d2d3fa1d5ba1672122f","35e96b392c3b0e1134be3c6e7c0c75f42daf09a1ed172f979d93078050a04645","ca4c88ef756cb9c6abd4b9ee2db0ee816f68484200f9e0c8a53363e44ab47374","a65a75f828f15734b92b18842c561b5dc8052ee2bf955aa8d8ce452bc7906cb1","2371b1f1d8ff771badcebc3944f9296c4ce5854c4051e5501d1fb43451230d19",{"version":"15f62f4185e8bb96097c0ea709bcc4d091dbe762f48076a08bae01d3014a01f6","affectsGlobalScope":true},"4b34ff3543e7b99f7b8f2125d0dc6ccacc11e9fa9f8e6de7a9cbd5d11a1ddd79","90358612694ff8f39093016eac40ee2fcd0fe2d98ec495463a23822f9498ef50","7217b5c129ccf4da64100067edd1cf89684c5843b047467c074acfd7ca3b384c","9d5c955581f7529f3b68d9a63d703c389807441106e51e604d2cd0b613aaa952","ea7224606ec74917a59437170337f3e1b38de98bc36d9e9d955bd5e484f40bbf","5cf71c5937450c62d091b5a43cfb545f7ff376cdf1d0271ac38f01a6198af88a","c728ed4d9edd0dadc4acf47b491683872bc24c1394d948139f718fdfdc3d8073","c3e7c912712adcd13af72f32caeb91de2f7a09880fd50747c690c91b29dfb7c3","fc2cb49e13333ce31695f24728e80eb1bd2e12f89936f618f122389d9b7598dc","4d7143da723a27bc1273d24da92da612538afec8fa226f5cd865b9715311ce16","25092d3e6e29889bf0eea39873006da9114433da3e475d8d92943f7abf59a3af",{"version":"e0504ea87fdc7dec18ce35a401d7e2047e58b54818318fde49727772fcdedd2f","signature":"c91163558b26e3122d9509f217eac4a204c38105c7b0075d9313606f475904ab"},"142d6426a67811d7bb2211ec07461b73302abc1c58f1b7c62a7f084d05717228","af7111a79dd6691e3168ce5b0feb86dc18b4e296e30d4994448b61f899967dd5",{"version":"8ef752d294a4ab29b7bbda576bc6d763bf727078e685537a695a812d83ecdaa0","signature":"64fa5d796f6f8071c5e5282d751646e1863a20756814c232f3ac7656c39070a6"},"5ac6404ddc5d622905e131dbc5da0362a82e89d1cb97cc8256bf06ca9fad4b24",{"version":"9fcfbc2dd0c0614b3a25d41e4425dd86cdfa574a9e7d2febffc85badcee1a0b8","signature":"895ef4cd86d49605f187c52ac4b77f8139f69df7e2f539c27196d72c75df7d31"},{"version":"f7bc005cc4797b7afe6e2a3a538248d346b943322edab6ab1cb332092ce55e3b","signature":"77ffa277b9d3e950e1db6577196590ca2a9d8ecb215359816aeae54c91fe3ab1"},{"version":"975eb852881942b64b42f35251bb55a75b6521e47c3eefe95d61f986265a5225","signature":"ebcf727b4ea8f6266308020bcf5a6f592bddc7ce27d49e88f0e04545305b5a8e"},{"version":"b86196ae20b726e4a42e00bbfc38361e5f751d3d738c952e659a1fbd60964d27","signature":"bfa6b4eb44114b5261a7dcf7d1e69f54af8bc4ab9a39fbe6063013f33ba8b641"},{"version":"c67951274199df6c887191adafac1c605901c3f6ce123351225e2e93c4282de4","signature":"8db3c1fe705300424e16eccb289f38f0f1fa48c0ba2f7ec73342b678c4582f5d"},{"version":"4fc2fcab4e27cceba55c653a6a35f9d9486ce732debfddfa946d0b7bab9229bb","signature":"00da318428374edba6adde61bea395981d1b13728c4dcc5b855f754b5112642e"},"d83d6ec306241a9a59716eadf007d405cbc9d77b688871089a02159087100d5c",{"version":"2729718058d854c0ad8f5c087ba29eed8474ab9a9e07ebf15eb700f06e64b1cb","signature":"2a46d538ae020f29311198de90a5480d05a0d7f7029a58771d0b467ba5426af4"},{"version":"fd5fb0b19cd760511769a1745fc1a05eb029f6cdbed2f4d89020825b759c8752","signature":"d23323d3fd4e48402abcbebffd8c2ec6b32ef4c217f78ac42bf866c2f6c4552c"},{"version":"48674187365141743eaadc4ffa47b457bfa63d36e945b8e4f43d60b0fe6b1907","signature":"26a926d714be0b62bd6e30976bdfc341ec31c2e95a0c30e88e9d971e8c74586f"},{"version":"412e9398be155d644b609b06bb2d0b6f99d86bf3d7db81b27a357ad8df07e0c0","signature":"b453c1a2eac87cc7083566d798ca756e0256165b9e47d7e3db00426cea8fc626"},{"version":"19c27d32b928fb696df567fd2102de34e948bba3550b30787590d15ae58c86ef","signature":"0c37cfbb515ee4df942133efa11132b16e9a3c8b2bf70f602337756d0783918b"},{"version":"c17118d21ac084068b77eb8e382d9f8988e26bded75c7f0f0b132fa67d4ca625","signature":"cc24820820bdd2761360a0d8f809cfa686294a0c4481c3a69a9c61336ec68b80"},{"version":"d9cf2d880112bcdf535b2e069cfc930c0be744548125758087b0d0f5f8bb5205","signature":"acc5e4fc8f5c67e0ec0b0e70a9aa47e928b4bf45439ca592309cbc1592764d4a"},"9a4c49a0b2bf8536b1f4a72f162f807d7a23aa27a816e9cd24cc965540ba4b35","146ba4b99c5feb82663e17a671bf9f53bb39c704cd76345d6c5a801c26372f44",{"version":"dc8a746041b9afc357038c00dc7bb204e7c758e5796e2b965782b10c010ea5da","signature":"3118e3f67853a4d11cd0225bdc00b683855c9fefa5a42bde70b5394b3b57551c"},{"version":"3c2eecbb08d00f262c3266a5729d8dc7033b12c10ad11085239d942330a66be4","signature":"0fadba7aa026b174f612f3ff924b5a2e9a6b53a70568d489f45afc375ad7cfcc"},{"version":"3b9adf4816bbbfce9644c253cc98f9c288ed843a47937b4c1b0cece533529907","signature":"829868d6ec1927e4700983dba2e0835327ecdd4d7f99072a3de19fda116551b4"},{"version":"50ed6e45c39d15e21c206f167abb7c33067931c37c8c660f1928e504a3ba6fda","signature":"0daf72d81e292312f185c81a2ad0648b226433a00d7d139addc06d39d078b2f1"},"2a57cbf1f516e1a2da6e22644f4517479c3ea3f28ff13aefcb1999c0d31c23f0","403d1ce0100de3871af7504ea28916adfc00f4ed05533299196020bb24a5f4f9","f2418af0b544a141cfb8f320b8b6599a4de8031d04554ae5b5a8f5f74983c99d","8de77521349d45f032ccb921923625d7c44116ad1a281ac331beda3197df59c2",{"version":"02fdc48e90772a67702e098b722a5772fddf789fb8aa961fc1e292655581df34","signature":"90b78b57b0842bd1fd5ec099a97cfb33146e6d2d52dd68d8a89ae834105ab366"},{"version":"e08f7f2e161bf3631ced28081d5b567ebce6f58dedc9930ec299b14f7dc52ae2","signature":"4a9216f87f9b92167b0b18cd90016000e71dd7ea61a95385b2b97be6585e9cb3"},{"version":"f5052fefcfa949e999a862b476c37116c29ce6f294c3dbd7f9e9fec0f2091f63","signature":"496a712363ee622ead98319bdf81471e550993b83529174068fce0f0e2db1615"},{"version":"c12fb0c4b324c65600609051919b1de0da4630c66bdbd4dc268efe7780ff4ed8","signature":"92deca0757666c0db63066e8307e28452fed66d809d5c1ef0554b0475e3b098b"},{"version":"7960cf5ee7ba1a5e13a32a18d37e4776ff1fba2019488e6aafe529145ded726d","signature":"887dc6c82444f5c7f3da9c1914b74a13bb46ca0f218deda5ea25d9fda2bef1b6"},{"version":"91f1c45fd1477bc5cb37a9d4fd53162b58192c01cc9e3d82c683f30a2d1d62c8","signature":"4acad5519af585dca63e9cb8fad17d8c6ab406cb272a0263f0507136f1736c06"},{"version":"42beccc3c85d59f68fd450eef31987bd96b8dab6c1f0365759f1361f4a2bab20","signature":"bc627141b934bcd56c4dd7c2cfd6e8a493e5aeca5d0cd654b2f64433504fa8ce"},{"version":"6469e0325b8d62347b79baf42ba957cc2401ce05378bfd521737c049554028ae","signature":"7f1be7e4a47f9abe89d28793e59d0d7a935c7f14a597f1e2b6651d1e54f23957"},{"version":"e6afc6c377cdc0b881c15db7be06fe57fbdbb4074753bb36abdc26000de853ee","signature":"39f82ec23c92368df0de1449bb26e14280862e092ab8e3eaacf80570ac35a7f2"},{"version":"39912ea790c688755e231a1fe88441c441a4b5d4f085c6d69082b3816c3d5b4b","signature":"82382b2041d0305af5dbc1fdf913319293ad163d9286f19914a15ed4920ddeef"},{"version":"6419036e9ec25b03fed142edef64280f5d7dbcc158170cb27899ecb9cb2dae8b","signature":"9798502506a30b631a4841a0c5e4dd369c8662c2ab08bf069fb464262cd9d9f8"},{"version":"4868b67fbbd8cbeee47a13fa7c3d725b2a79c3c0c808e8007160dc18bcdd163f","signature":"1e23589afc9b7799569b118d252a854a7411f206d3a6f1f8f479dad52faa7e8d"},{"version":"8d09f7a29021a69909eca56a60012bb043c703b82fbb1dede51186fedcce88f9","signature":"1a4f84d939445c350647adf2f5001ecc6fcef110b6daa79c11b3aa7c9984d0e1"},{"version":"593405def651364d973e4f004babc84c36d0975d0a51565bd15ba9e13cd17837","signature":"e7b7ca1fbfddbe67a3736393a170a4fe8d2929cdde754c08e4db38a03869ec94"},{"version":"707299fb29dbeab70e66353f5cc7f675af20ba880334ffc77900bb4c2bd875dc","signature":"292ce5a17ff2c76cea97f425a55a9cf3e7ea2b97de64e34f96e499fa3c32fd58"},"8eed414bd2305e20163d35205b450204002bf20e14c7241d7fec46bb18f174d2"],"root":[61,63,64,128,131,[133,138],[140,146],[149,152],[157,172]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":false,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[76],[72,73,74,75],[65,66,67,68],[65],[66],[77],[76,77],[78],[76,91,92],[107],[76,109],[78,79],[77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126],[159,160],[107,159],[107,145],[157,158],[107,157],[163,164],[107,127,158],[63,158],[63,107,153,156,158,160],[76,127,165],[127,167],[76,127,161],[61,63],[144],[63,145],[61,63,64,141,144,145,146,152,161,162,165,166,167,168,169,170],[130],[151],[144,147,148,150,171],[149],[62,132],[62,63,64,71,127,128,131,133,134,135,137,138,140,172],[62,136,137,172],[136,138,139],[62],[63,70,131,141,142,143],[63],[69],[98,99,102,103,104,105,106],[100,101],[154,155],[156],[129],[76,144],[137,172],[138,139]],"referencedMap":[[101,1],[100,1],[76,2],[69,3],[66,4],[67,5],[82,1],[83,1],[85,6],[86,7],[88,1],[89,1],[90,1],[119,8],[93,9],[94,1],[95,1],[124,1],[126,1],[91,1],[96,1],[125,1],[108,10],[110,11],[122,1],[123,1],[116,1],[121,12],[115,1],[127,13],[77,1],[159,10],[169,14],[160,15],[157,16],[167,17],[158,18],[165,19],[164,20],[163,21],[161,22],[166,23],[168,24],[162,25],[64,26],[145,27],[146,28],[171,29],[131,30],[152,31],[151,32],[150,33],[133,34],[141,35],[138,36],[140,37],[136,38],[144,39],[134,27],[170,28],[63,38],[143,40],[70,41],[98,1],[107,42],[106,1],[102,43],[99,1],[105,1],[156,44],[154,45],[130,46],[71,38]],"exportedModulesMap":[[101,1],[100,1],[76,2],[69,3],[66,4],[67,5],[82,1],[83,1],[85,6],[86,7],[88,1],[89,1],[90,1],[119,8],[93,9],[94,1],[95,1],[124,1],[126,1],[91,1],[96,1],[125,1],[108,10],[110,11],[122,1],[123,1],[116,1],[121,12],[115,1],[127,13],[77,1],[159,1],[157,47],[163,40],[161,40],[166,1],[168,1],[162,1],[64,40],[145,27],[146,40],[171,40],[151,27],[133,38],[141,40],[138,48],[140,49],[136,38],[144,40],[134,27],[170,40],[63,38],[143,40],[70,41],[98,1],[107,42],[106,1],[102,43],[99,1],[105,1],[156,44],[154,45],[130,46],[71,38]],"semanticDiagnosticsPerFile":[109,74,101,100,72,76,75,73,148,147,132,62,139,59,60,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,10,1,11,58,65,68,69,66,67,80,82,81,83,84,85,86,87,117,88,89,90,119,120,93,94,95,124,126,91,92,96,125,97,108,110,111,122,112,113,123,116,114,121,115,118,127,77,78,79,159,169,160,157,167,158,165,164,163,161,166,168,162,64,145,146,61,171,131,152,151,150,149,133,128,141,137,172,138,140,136,135,144,134,170,142,63,143,70,98,107,104,106,102,99,105,103,155,156,154,153,129,130,71],"latestChangedDtsFile":"./build-types/index.d.ts"},"version":"5.1.6"}