@wordpress/data 9.5.2 → 9.7.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/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 9.7.0 (2023-07-05)
6
+
7
+ ## 9.6.0 (2023-06-23)
8
+
5
9
  ## 9.5.0 (2023-06-07)
6
10
 
7
11
  ## 9.4.0 (2023-05-24)
@@ -51,6 +51,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
51
51
 
52
52
  /** @typedef {import('../types').DataRegistry} DataRegistry */
53
53
 
54
+ /** @typedef {import('../types').ListenerFunction} ListenerFunction */
55
+
54
56
  /**
55
57
  * @typedef {import('../types').StoreDescriptor<C>} StoreDescriptor
56
58
  * @template {import('../types').AnyConfig} C
@@ -184,6 +186,19 @@ function createReduxStore(key, options) {
184
186
  const storeDescriptor = {
185
187
  name: key,
186
188
  instantiate: registry => {
189
+ /**
190
+ * Stores listener functions registered with `subscribe()`.
191
+ *
192
+ * When functions register to listen to store changes with
193
+ * `subscribe()` they get added here. Although Redux offers
194
+ * its own `subscribe()` function directly, by wrapping the
195
+ * subscription in this store instance it's possible to
196
+ * optimize checking if the state has changed before calling
197
+ * each listener.
198
+ *
199
+ * @type {Set<ListenerFunction>}
200
+ */
201
+ const listeners = new Set();
187
202
  const reducer = options.reducer;
188
203
  const thunkArgs = {
189
204
  registry,
@@ -300,22 +315,26 @@ function createReduxStore(key, options) {
300
315
 
301
316
 
302
317
  const subscribe = store && (listener => {
303
- let lastState = store.__unstableOriginalGetState();
318
+ listeners.add(listener);
319
+ return () => listeners.delete(listener);
320
+ });
304
321
 
305
- return store.subscribe(() => {
306
- const state = store.__unstableOriginalGetState();
322
+ let lastState = store.__unstableOriginalGetState();
323
+
324
+ store.subscribe(() => {
325
+ const state = store.__unstableOriginalGetState();
307
326
 
308
- const hasChanged = state !== lastState;
309
- lastState = state;
327
+ const hasChanged = state !== lastState;
328
+ lastState = state;
310
329
 
311
- if (hasChanged) {
330
+ if (hasChanged) {
331
+ for (const listener of listeners) {
312
332
  listener();
313
333
  }
314
- });
334
+ }
315
335
  }); // This can be simplified to just { subscribe, getSelectors, getActions }
316
336
  // Once we remove the use function.
317
337
 
318
-
319
338
  return {
320
339
  reducer,
321
340
  store,
@@ -399,6 +418,7 @@ function mapResolveSelectors(selectors, store) {
399
418
  getCachedResolvers,
400
419
  getResolutionState,
401
420
  getResolutionError,
421
+ hasResolvingSelectors,
402
422
  ...storeSelectors
403
423
  } = selectors;
404
424
  return mapValues(storeSelectors, (selector, selectorName) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/data/src/redux-store/index.js"],"names":["trimUndefinedValues","array","result","i","length","undefined","splice","mapValues","obj","callback","Object","fromEntries","entries","map","key","value","mapToObject","state","Map","createResolversCache","cache","isRunning","selectorName","args","get","clear","delete","markAsRunning","EquivalentKeyMap","set","createBindingCache","bind","WeakMap","item","itemName","boundItem","createReduxStore","options","privateActions","privateSelectors","privateRegistrationFunctions","registerPrivateActions","actions","assign","registerPrivateSelectors","selectors","storeDescriptor","name","instantiate","registry","reducer","thunkArgs","dispatch","thunkActions","select","thunkSelectors","resolveSelect","getResolveSelectors","store","instantiateReduxStore","resolversCache","bindAction","action","Promise","resolve","metadataActions","boundPrivateActions","allActions","Proxy","target","prop","privateAction","apply","thisArg","resolvers","mapResolvers","bindSelector","selector","isRegistrySelector","boundSelector","__unstableOriginalGetState","root","resolver","hasResolver","mapSelectorWithResolver","bindMetadataSelector","metadata","metadataSelectors","boundPrivateSelectors","allSelectors","privateSelector","resolveSelectors","mapResolveSelectors","suspendSelectors","mapSuspendSelectors","getSelectors","getActions","getSuspendSelectors","getState","subscribe","listener","lastState","hasChanged","controls","builtinControls","normalizedControls","control","isRegistryControl","middlewares","promise","enhancers","window","__REDUX_DEVTOOLS_EXTENSION__","push","instanceId","serialize","replacer","initialState","enhancedReducer","metadataReducer","getIsResolving","hasStartedResolution","hasFinishedResolution","hasResolutionFailed","isResolving","getCachedResolvers","getResolutionState","getResolutionError","storeSelectors","reject","hasFinished","finalize","hasFailed","error","getResult","unsubscribe","fulfill","fulfillSelector","isFulfilled","setTimeout","startResolution","finishResolution","failResolution","selectorResolver"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { createStore, applyMiddleware } from 'redux';\nimport combineReducers from 'turbo-combine-reducers';\nimport EquivalentKeyMap from 'equivalent-key-map';\n\n/**\n * WordPress dependencies\n */\nimport createReduxRoutineMiddleware from '@wordpress/redux-routine';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { builtinControls } from '../controls';\nimport { lock } from '../lock-unlock';\nimport promise from '../promise-middleware';\nimport createResolversCacheMiddleware from '../resolvers-cache-middleware';\nimport createThunkMiddleware from './thunk-middleware';\nimport metadataReducer from './metadata/reducer';\nimport * as metadataSelectors from './metadata/selectors';\nimport * as metadataActions from './metadata/actions';\n\n/** @typedef {import('../types').DataRegistry} DataRegistry */\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\nconst trimUndefinedValues = ( array ) => {\n\tconst result = [ ...array ];\n\tfor ( let i = result.length - 1; i >= 0; i-- ) {\n\t\tif ( result[ i ] === undefined ) {\n\t\t\tresult.splice( i, 1 );\n\t\t}\n\t}\n\treturn result;\n};\n\n/**\n * Creates a new object with the same keys, but with `callback()` called as\n * a transformer function on each of the values.\n *\n * @param {Object} obj The object to transform.\n * @param {Function} callback The function to transform each object value.\n * @return {Array} Transformed object.\n */\nconst mapValues = ( obj, callback ) =>\n\tObject.fromEntries(\n\t\tObject.entries( obj ?? {} ).map( ( [ key, value ] ) => [\n\t\t\tkey,\n\t\t\tcallback( value, key ),\n\t\t] )\n\t);\n\n// Convert Map objects to plain objects\nconst mapToObject = ( key, state ) => {\n\tif ( state instanceof Map ) {\n\t\treturn Object.fromEntries( state );\n\t}\n\n\treturn state;\n};\n\n/**\n * Create a cache to track whether resolvers started running or not.\n *\n * @return {Object} Resolvers Cache.\n */\nfunction createResolversCache() {\n\tconst cache = {};\n\treturn {\n\t\tisRunning( selectorName, args ) {\n\t\t\treturn (\n\t\t\t\tcache[ selectorName ] &&\n\t\t\t\tcache[ selectorName ].get( trimUndefinedValues( args ) )\n\t\t\t);\n\t\t},\n\n\t\tclear( selectorName, args ) {\n\t\t\tif ( cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ].delete( trimUndefinedValues( args ) );\n\t\t\t}\n\t\t},\n\n\t\tmarkAsRunning( selectorName, args ) {\n\t\t\tif ( ! cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ] = new EquivalentKeyMap();\n\t\t\t}\n\n\t\t\tcache[ selectorName ].set( trimUndefinedValues( args ), true );\n\t\t},\n\t};\n}\n\nfunction createBindingCache( bind ) {\n\tconst cache = new WeakMap();\n\n\treturn {\n\t\tget( item, itemName ) {\n\t\t\tlet boundItem = cache.get( item );\n\t\t\tif ( ! boundItem ) {\n\t\t\t\tboundItem = bind( item, itemName );\n\t\t\t\tcache.set( item, boundItem );\n\t\t\t}\n\t\t\treturn boundItem;\n\t\t},\n\t};\n}\n\n/**\n * Creates a data store descriptor for the provided Redux store configuration containing\n * properties describing reducer, actions, selectors, controls and resolvers.\n *\n * @example\n * ```js\n * import { createReduxStore } from '@wordpress/data';\n *\n * const store = createReduxStore( 'demo', {\n * reducer: ( state = 'OK' ) => state,\n * selectors: {\n * getValue: ( state ) => state,\n * },\n * } );\n * ```\n *\n * @template State\n * @template {Record<string,import('../../types').ActionCreator>} Actions\n * @template Selectors\n * @param {string} key Unique namespace identifier.\n * @param {ReduxStoreConfig<State,Actions,Selectors>} options Registered store options, with properties\n * describing reducer, actions, selectors,\n * and resolvers.\n *\n * @return {StoreDescriptor<ReduxStoreConfig<State,Actions,Selectors>>} Store Object.\n */\nexport default function createReduxStore( key, options ) {\n\tconst privateActions = {};\n\tconst privateSelectors = {};\n\tconst privateRegistrationFunctions = {\n\t\tprivateActions,\n\t\tregisterPrivateActions: ( actions ) => {\n\t\t\tObject.assign( privateActions, actions );\n\t\t},\n\t\tprivateSelectors,\n\t\tregisterPrivateSelectors: ( selectors ) => {\n\t\t\tObject.assign( privateSelectors, selectors );\n\t\t},\n\t};\n\tconst storeDescriptor = {\n\t\tname: key,\n\t\tinstantiate: ( registry ) => {\n\t\t\tconst reducer = options.reducer;\n\t\t\tconst thunkArgs = {\n\t\t\t\tregistry,\n\t\t\t\tget dispatch() {\n\t\t\t\t\treturn thunkActions;\n\t\t\t\t},\n\t\t\t\tget select() {\n\t\t\t\t\treturn thunkSelectors;\n\t\t\t\t},\n\t\t\t\tget resolveSelect() {\n\t\t\t\t\treturn getResolveSelectors();\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst store = instantiateReduxStore(\n\t\t\t\tkey,\n\t\t\t\toptions,\n\t\t\t\tregistry,\n\t\t\t\tthunkArgs\n\t\t\t);\n\t\t\t// Expose the private registration functions on the store\n\t\t\t// so they can be copied to a sub registry in registry.js.\n\t\t\tlock( store, privateRegistrationFunctions );\n\t\t\tconst resolversCache = createResolversCache();\n\n\t\t\tfunction bindAction( action ) {\n\t\t\t\treturn ( ...args ) =>\n\t\t\t\t\tPromise.resolve( store.dispatch( action( ...args ) ) );\n\t\t\t}\n\n\t\t\tconst actions = {\n\t\t\t\t...mapValues( metadataActions, bindAction ),\n\t\t\t\t...mapValues( options.actions, bindAction ),\n\t\t\t};\n\n\t\t\tconst boundPrivateActions = createBindingCache( bindAction );\n\t\t\tconst allActions = new Proxy( () => {}, {\n\t\t\t\tget: ( target, prop ) => {\n\t\t\t\t\tconst privateAction = privateActions[ prop ];\n\t\t\t\t\treturn privateAction\n\t\t\t\t\t\t? boundPrivateActions.get( privateAction, prop )\n\t\t\t\t\t\t: actions[ prop ];\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tconst thunkActions = new Proxy( allActions, {\n\t\t\t\tapply: ( target, thisArg, [ action ] ) =>\n\t\t\t\t\tstore.dispatch( action ),\n\t\t\t} );\n\n\t\t\tlock( actions, allActions );\n\n\t\t\tconst resolvers = options.resolvers\n\t\t\t\t? mapResolvers( options.resolvers )\n\t\t\t\t: {};\n\n\t\t\tfunction bindSelector( selector, selectorName ) {\n\t\t\t\tif ( selector.isRegistrySelector ) {\n\t\t\t\t\tselector.registry = registry;\n\t\t\t\t}\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\treturn selector( state.root, ...args );\n\t\t\t\t};\n\n\t\t\t\tconst resolver = resolvers[ selectorName ];\n\t\t\t\tif ( ! resolver ) {\n\t\t\t\t\tboundSelector.hasResolver = false;\n\t\t\t\t\treturn boundSelector;\n\t\t\t\t}\n\n\t\t\t\treturn mapSelectorWithResolver(\n\t\t\t\t\tboundSelector,\n\t\t\t\t\tselectorName,\n\t\t\t\t\tresolver,\n\t\t\t\t\tstore,\n\t\t\t\t\tresolversCache\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfunction bindMetadataSelector( selector ) {\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\treturn selector( state.metadata, ...args );\n\t\t\t\t};\n\t\t\t\tboundSelector.hasResolver = false;\n\t\t\t\treturn boundSelector;\n\t\t\t}\n\n\t\t\tconst selectors = {\n\t\t\t\t...mapValues( metadataSelectors, bindMetadataSelector ),\n\t\t\t\t...mapValues( options.selectors, bindSelector ),\n\t\t\t};\n\n\t\t\tconst boundPrivateSelectors = createBindingCache( bindSelector );\n\n\t\t\t// Pre-bind the private selectors that have been registered by the time of\n\t\t\t// instantiation, so that registry selectors are bound to the registry.\n\t\t\tfor ( const [ selectorName, selector ] of Object.entries(\n\t\t\t\tprivateSelectors\n\t\t\t) ) {\n\t\t\t\tboundPrivateSelectors.get( selector, selectorName );\n\t\t\t}\n\n\t\t\tconst allSelectors = new Proxy( () => {}, {\n\t\t\t\tget: ( target, prop ) => {\n\t\t\t\t\tconst privateSelector = privateSelectors[ prop ];\n\t\t\t\t\treturn privateSelector\n\t\t\t\t\t\t? boundPrivateSelectors.get( privateSelector, prop )\n\t\t\t\t\t\t: selectors[ prop ];\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tconst thunkSelectors = new Proxy( allSelectors, {\n\t\t\t\tapply: ( target, thisArg, [ selector ] ) =>\n\t\t\t\t\tselector( store.__unstableOriginalGetState() ),\n\t\t\t} );\n\n\t\t\tlock( selectors, allSelectors );\n\n\t\t\tconst resolveSelectors = mapResolveSelectors( selectors, store );\n\t\t\tconst suspendSelectors = mapSuspendSelectors( selectors, store );\n\n\t\t\tconst getSelectors = () => selectors;\n\t\t\tconst getActions = () => actions;\n\t\t\tconst getResolveSelectors = () => resolveSelectors;\n\t\t\tconst getSuspendSelectors = () => suspendSelectors;\n\n\t\t\t// We have some modules monkey-patching the store object\n\t\t\t// It's wrong to do so but until we refactor all of our effects to controls\n\t\t\t// We need to keep the same \"store\" instance here.\n\t\t\tstore.__unstableOriginalGetState = store.getState;\n\t\t\tstore.getState = () => store.__unstableOriginalGetState().root;\n\n\t\t\t// Customize subscribe behavior to call listeners only on effective change,\n\t\t\t// not on every dispatch.\n\t\t\tconst subscribe =\n\t\t\t\tstore &&\n\t\t\t\t( ( listener ) => {\n\t\t\t\t\tlet lastState = store.__unstableOriginalGetState();\n\t\t\t\t\treturn store.subscribe( () => {\n\t\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\t\tconst hasChanged = state !== lastState;\n\t\t\t\t\t\tlastState = state;\n\n\t\t\t\t\t\tif ( hasChanged ) {\n\t\t\t\t\t\t\tlistener();\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t// This can be simplified to just { subscribe, getSelectors, getActions }\n\t\t\t// Once we remove the use function.\n\t\t\treturn {\n\t\t\t\treducer,\n\t\t\t\tstore,\n\t\t\t\tactions,\n\t\t\t\tselectors,\n\t\t\t\tresolvers,\n\t\t\t\tgetSelectors,\n\t\t\t\tgetResolveSelectors,\n\t\t\t\tgetSuspendSelectors,\n\t\t\t\tgetActions,\n\t\t\t\tsubscribe,\n\t\t\t};\n\t\t},\n\t};\n\n\t// Expose the private registration functions on the store\n\t// descriptor. That's a natural choice since that's where the\n\t// public actions and selectors are stored .\n\tlock( storeDescriptor, privateRegistrationFunctions );\n\n\treturn storeDescriptor;\n}\n\n/**\n * Creates a redux store for a namespace.\n *\n * @param {string} key Unique namespace identifier.\n * @param {Object} options Registered store options, with properties\n * describing reducer, actions, selectors,\n * and resolvers.\n * @param {DataRegistry} registry Registry reference.\n * @param {Object} thunkArgs Argument object for the thunk middleware.\n * @return {Object} Newly created redux store.\n */\nfunction instantiateReduxStore( key, options, registry, thunkArgs ) {\n\tconst controls = {\n\t\t...options.controls,\n\t\t...builtinControls,\n\t};\n\n\tconst normalizedControls = mapValues( controls, ( control ) =>\n\t\tcontrol.isRegistryControl ? control( registry ) : control\n\t);\n\n\tconst middlewares = [\n\t\tcreateResolversCacheMiddleware( registry, key ),\n\t\tpromise,\n\t\tcreateReduxRoutineMiddleware( normalizedControls ),\n\t\tcreateThunkMiddleware( thunkArgs ),\n\t];\n\n\tconst enhancers = [ applyMiddleware( ...middlewares ) ];\n\tif (\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.__REDUX_DEVTOOLS_EXTENSION__\n\t) {\n\t\tenhancers.push(\n\t\t\twindow.__REDUX_DEVTOOLS_EXTENSION__( {\n\t\t\t\tname: key,\n\t\t\t\tinstanceId: key,\n\t\t\t\tserialize: {\n\t\t\t\t\treplacer: mapToObject,\n\t\t\t\t},\n\t\t\t} )\n\t\t);\n\t}\n\n\tconst { reducer, initialState } = options;\n\tconst enhancedReducer = combineReducers( {\n\t\tmetadata: metadataReducer,\n\t\troot: reducer,\n\t} );\n\n\treturn createStore(\n\t\tenhancedReducer,\n\t\t{ root: initialState },\n\t\tcompose( enhancers )\n\t);\n}\n\n/**\n * Maps selectors to functions that return a resolution promise for them\n *\n * @param {Object} selectors Selectors to map.\n * @param {Object} store The redux store the selectors select from.\n *\n * @return {Object} Selectors mapped to their resolution functions.\n */\nfunction mapResolveSelectors( selectors, store ) {\n\tconst {\n\t\tgetIsResolving,\n\t\thasStartedResolution,\n\t\thasFinishedResolution,\n\t\thasResolutionFailed,\n\t\tisResolving,\n\t\tgetCachedResolvers,\n\t\tgetResolutionState,\n\t\tgetResolutionError,\n\t\t...storeSelectors\n\t} = selectors;\n\n\treturn mapValues( storeSelectors, ( selector, selectorName ) => {\n\t\t// If the selector doesn't have a resolver, just convert the return value\n\t\t// (including exceptions) to a Promise, no additional extra behavior is needed.\n\t\tif ( ! selector.hasResolver ) {\n\t\t\treturn async ( ...args ) => selector.apply( null, args );\n\t\t}\n\n\t\treturn ( ...args ) => {\n\t\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\t\tconst hasFinished = () =>\n\t\t\t\t\tselectors.hasFinishedResolution( selectorName, args );\n\t\t\t\tconst finalize = ( result ) => {\n\t\t\t\t\tconst hasFailed = selectors.hasResolutionFailed(\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\targs\n\t\t\t\t\t);\n\t\t\t\t\tif ( hasFailed ) {\n\t\t\t\t\t\tconst error = selectors.getResolutionError(\n\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\targs\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject( error );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve( result );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst getResult = () => selector.apply( null, args );\n\t\t\t\t// Trigger the selector (to trigger the resolver)\n\t\t\t\tconst result = getResult();\n\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\treturn finalize( result );\n\t\t\t\t}\n\n\t\t\t\tconst unsubscribe = store.subscribe( () => {\n\t\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t\tfinalize( getResult() );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t} );\n}\n\n/**\n * Maps selectors to functions that throw a suspense promise if not yet resolved.\n *\n * @param {Object} selectors Selectors to map.\n * @param {Object} store The redux store the selectors select from.\n *\n * @return {Object} Selectors mapped to their suspense functions.\n */\nfunction mapSuspendSelectors( selectors, store ) {\n\treturn mapValues( selectors, ( selector, selectorName ) => {\n\t\t// Selector without a resolver doesn't have any extra suspense behavior.\n\t\tif ( ! selector.hasResolver ) {\n\t\t\treturn selector;\n\t\t}\n\n\t\treturn ( ...args ) => {\n\t\t\tconst result = selector.apply( null, args );\n\n\t\t\tif ( selectors.hasFinishedResolution( selectorName, args ) ) {\n\t\t\t\tif ( selectors.hasResolutionFailed( selectorName, args ) ) {\n\t\t\t\t\tthrow selectors.getResolutionError( selectorName, args );\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tthrow new Promise( ( resolve ) => {\n\t\t\t\tconst unsubscribe = store.subscribe( () => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tselectors.hasFinishedResolution( selectorName, args )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t} );\n}\n\n/**\n * Convert resolvers to a normalized form, an object with `fulfill` method and\n * optional methods like `isFulfilled`.\n *\n * @param {Object} resolvers Resolver to convert\n */\nfunction mapResolvers( resolvers ) {\n\treturn mapValues( resolvers, ( resolver ) => {\n\t\tif ( resolver.fulfill ) {\n\t\t\treturn resolver;\n\t\t}\n\n\t\treturn {\n\t\t\t...resolver, // Copy the enumerable properties of the resolver function.\n\t\t\tfulfill: resolver, // Add the fulfill method.\n\t\t};\n\t} );\n}\n\n/**\n * Returns a selector with a matched resolver.\n * Resolvers are side effects invoked once per argument set of a given selector call,\n * used in ensuring that the data needs for the selector are satisfied.\n *\n * @param {Object} selector The selector function to be bound.\n * @param {string} selectorName The selector name.\n * @param {Object} resolver Resolver to call.\n * @param {Object} store The redux store to which the resolvers should be mapped.\n * @param {Object} resolversCache Resolvers Cache.\n */\nfunction mapSelectorWithResolver(\n\tselector,\n\tselectorName,\n\tresolver,\n\tstore,\n\tresolversCache\n) {\n\tfunction fulfillSelector( args ) {\n\t\tconst state = store.getState();\n\n\t\tif (\n\t\t\tresolversCache.isRunning( selectorName, args ) ||\n\t\t\t( typeof resolver.isFulfilled === 'function' &&\n\t\t\t\tresolver.isFulfilled( state, ...args ) )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { metadata } = store.__unstableOriginalGetState();\n\n\t\tif (\n\t\t\tmetadataSelectors.hasStartedResolution(\n\t\t\t\tmetadata,\n\t\t\t\tselectorName,\n\t\t\t\targs\n\t\t\t)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tresolversCache.markAsRunning( selectorName, args );\n\n\t\tsetTimeout( async () => {\n\t\t\tresolversCache.clear( selectorName, args );\n\t\t\tstore.dispatch(\n\t\t\t\tmetadataActions.startResolution( selectorName, args )\n\t\t\t);\n\t\t\ttry {\n\t\t\t\tconst action = resolver.fulfill( ...args );\n\t\t\t\tif ( action ) {\n\t\t\t\t\tawait store.dispatch( action );\n\t\t\t\t}\n\t\t\t\tstore.dispatch(\n\t\t\t\t\tmetadataActions.finishResolution( selectorName, args )\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tstore.dispatch(\n\t\t\t\t\tmetadataActions.failResolution( selectorName, args, error )\n\t\t\t\t);\n\t\t\t}\n\t\t}, 0 );\n\t}\n\n\tconst selectorResolver = ( ...args ) => {\n\t\tfulfillSelector( args );\n\t\treturn selector( ...args );\n\t};\n\tselectorResolver.hasResolver = true;\n\treturn selectorResolver;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/data/src/redux-store/index.js"],"names":["trimUndefinedValues","array","result","i","length","undefined","splice","mapValues","obj","callback","Object","fromEntries","entries","map","key","value","mapToObject","state","Map","createResolversCache","cache","isRunning","selectorName","args","get","clear","delete","markAsRunning","EquivalentKeyMap","set","createBindingCache","bind","WeakMap","item","itemName","boundItem","createReduxStore","options","privateActions","privateSelectors","privateRegistrationFunctions","registerPrivateActions","actions","assign","registerPrivateSelectors","selectors","storeDescriptor","name","instantiate","registry","listeners","Set","reducer","thunkArgs","dispatch","thunkActions","select","thunkSelectors","resolveSelect","getResolveSelectors","store","instantiateReduxStore","resolversCache","bindAction","action","Promise","resolve","metadataActions","boundPrivateActions","allActions","Proxy","target","prop","privateAction","apply","thisArg","resolvers","mapResolvers","bindSelector","selector","isRegistrySelector","boundSelector","__unstableOriginalGetState","root","resolver","hasResolver","mapSelectorWithResolver","bindMetadataSelector","metadata","metadataSelectors","boundPrivateSelectors","allSelectors","privateSelector","resolveSelectors","mapResolveSelectors","suspendSelectors","mapSuspendSelectors","getSelectors","getActions","getSuspendSelectors","getState","subscribe","listener","add","lastState","hasChanged","controls","builtinControls","normalizedControls","control","isRegistryControl","middlewares","promise","enhancers","window","__REDUX_DEVTOOLS_EXTENSION__","push","instanceId","serialize","replacer","initialState","enhancedReducer","metadataReducer","getIsResolving","hasStartedResolution","hasFinishedResolution","hasResolutionFailed","isResolving","getCachedResolvers","getResolutionState","getResolutionError","hasResolvingSelectors","storeSelectors","reject","hasFinished","finalize","hasFailed","error","getResult","unsubscribe","fulfill","fulfillSelector","isFulfilled","setTimeout","startResolution","finishResolution","failResolution","selectorResolver"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { createStore, applyMiddleware } from 'redux';\nimport combineReducers from 'turbo-combine-reducers';\nimport EquivalentKeyMap from 'equivalent-key-map';\n\n/**\n * WordPress dependencies\n */\nimport createReduxRoutineMiddleware from '@wordpress/redux-routine';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { builtinControls } from '../controls';\nimport { lock } from '../lock-unlock';\nimport promise from '../promise-middleware';\nimport createResolversCacheMiddleware from '../resolvers-cache-middleware';\nimport createThunkMiddleware from './thunk-middleware';\nimport metadataReducer from './metadata/reducer';\nimport * as metadataSelectors from './metadata/selectors';\nimport * as metadataActions from './metadata/actions';\n\n/** @typedef {import('../types').DataRegistry} DataRegistry */\n/** @typedef {import('../types').ListenerFunction} ListenerFunction */\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\nconst trimUndefinedValues = ( array ) => {\n\tconst result = [ ...array ];\n\tfor ( let i = result.length - 1; i >= 0; i-- ) {\n\t\tif ( result[ i ] === undefined ) {\n\t\t\tresult.splice( i, 1 );\n\t\t}\n\t}\n\treturn result;\n};\n\n/**\n * Creates a new object with the same keys, but with `callback()` called as\n * a transformer function on each of the values.\n *\n * @param {Object} obj The object to transform.\n * @param {Function} callback The function to transform each object value.\n * @return {Array} Transformed object.\n */\nconst mapValues = ( obj, callback ) =>\n\tObject.fromEntries(\n\t\tObject.entries( obj ?? {} ).map( ( [ key, value ] ) => [\n\t\t\tkey,\n\t\t\tcallback( value, key ),\n\t\t] )\n\t);\n\n// Convert Map objects to plain objects\nconst mapToObject = ( key, state ) => {\n\tif ( state instanceof Map ) {\n\t\treturn Object.fromEntries( state );\n\t}\n\n\treturn state;\n};\n\n/**\n * Create a cache to track whether resolvers started running or not.\n *\n * @return {Object} Resolvers Cache.\n */\nfunction createResolversCache() {\n\tconst cache = {};\n\treturn {\n\t\tisRunning( selectorName, args ) {\n\t\t\treturn (\n\t\t\t\tcache[ selectorName ] &&\n\t\t\t\tcache[ selectorName ].get( trimUndefinedValues( args ) )\n\t\t\t);\n\t\t},\n\n\t\tclear( selectorName, args ) {\n\t\t\tif ( cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ].delete( trimUndefinedValues( args ) );\n\t\t\t}\n\t\t},\n\n\t\tmarkAsRunning( selectorName, args ) {\n\t\t\tif ( ! cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ] = new EquivalentKeyMap();\n\t\t\t}\n\n\t\t\tcache[ selectorName ].set( trimUndefinedValues( args ), true );\n\t\t},\n\t};\n}\n\nfunction createBindingCache( bind ) {\n\tconst cache = new WeakMap();\n\n\treturn {\n\t\tget( item, itemName ) {\n\t\t\tlet boundItem = cache.get( item );\n\t\t\tif ( ! boundItem ) {\n\t\t\t\tboundItem = bind( item, itemName );\n\t\t\t\tcache.set( item, boundItem );\n\t\t\t}\n\t\t\treturn boundItem;\n\t\t},\n\t};\n}\n\n/**\n * Creates a data store descriptor for the provided Redux store configuration containing\n * properties describing reducer, actions, selectors, controls and resolvers.\n *\n * @example\n * ```js\n * import { createReduxStore } from '@wordpress/data';\n *\n * const store = createReduxStore( 'demo', {\n * reducer: ( state = 'OK' ) => state,\n * selectors: {\n * getValue: ( state ) => state,\n * },\n * } );\n * ```\n *\n * @template State\n * @template {Record<string,import('../../types').ActionCreator>} Actions\n * @template Selectors\n * @param {string} key Unique namespace identifier.\n * @param {ReduxStoreConfig<State,Actions,Selectors>} options Registered store options, with properties\n * describing reducer, actions, selectors,\n * and resolvers.\n *\n * @return {StoreDescriptor<ReduxStoreConfig<State,Actions,Selectors>>} Store Object.\n */\nexport default function createReduxStore( key, options ) {\n\tconst privateActions = {};\n\tconst privateSelectors = {};\n\tconst privateRegistrationFunctions = {\n\t\tprivateActions,\n\t\tregisterPrivateActions: ( actions ) => {\n\t\t\tObject.assign( privateActions, actions );\n\t\t},\n\t\tprivateSelectors,\n\t\tregisterPrivateSelectors: ( selectors ) => {\n\t\t\tObject.assign( privateSelectors, selectors );\n\t\t},\n\t};\n\tconst storeDescriptor = {\n\t\tname: key,\n\t\tinstantiate: ( registry ) => {\n\t\t\t/**\n\t\t\t * Stores listener functions registered with `subscribe()`.\n\t\t\t *\n\t\t\t * When functions register to listen to store changes with\n\t\t\t * `subscribe()` they get added here. Although Redux offers\n\t\t\t * its own `subscribe()` function directly, by wrapping the\n\t\t\t * subscription in this store instance it's possible to\n\t\t\t * optimize checking if the state has changed before calling\n\t\t\t * each listener.\n\t\t\t *\n\t\t\t * @type {Set<ListenerFunction>}\n\t\t\t */\n\t\t\tconst listeners = new Set();\n\t\t\tconst reducer = options.reducer;\n\t\t\tconst thunkArgs = {\n\t\t\t\tregistry,\n\t\t\t\tget dispatch() {\n\t\t\t\t\treturn thunkActions;\n\t\t\t\t},\n\t\t\t\tget select() {\n\t\t\t\t\treturn thunkSelectors;\n\t\t\t\t},\n\t\t\t\tget resolveSelect() {\n\t\t\t\t\treturn getResolveSelectors();\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst store = instantiateReduxStore(\n\t\t\t\tkey,\n\t\t\t\toptions,\n\t\t\t\tregistry,\n\t\t\t\tthunkArgs\n\t\t\t);\n\t\t\t// Expose the private registration functions on the store\n\t\t\t// so they can be copied to a sub registry in registry.js.\n\t\t\tlock( store, privateRegistrationFunctions );\n\t\t\tconst resolversCache = createResolversCache();\n\n\t\t\tfunction bindAction( action ) {\n\t\t\t\treturn ( ...args ) =>\n\t\t\t\t\tPromise.resolve( store.dispatch( action( ...args ) ) );\n\t\t\t}\n\n\t\t\tconst actions = {\n\t\t\t\t...mapValues( metadataActions, bindAction ),\n\t\t\t\t...mapValues( options.actions, bindAction ),\n\t\t\t};\n\n\t\t\tconst boundPrivateActions = createBindingCache( bindAction );\n\t\t\tconst allActions = new Proxy( () => {}, {\n\t\t\t\tget: ( target, prop ) => {\n\t\t\t\t\tconst privateAction = privateActions[ prop ];\n\t\t\t\t\treturn privateAction\n\t\t\t\t\t\t? boundPrivateActions.get( privateAction, prop )\n\t\t\t\t\t\t: actions[ prop ];\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tconst thunkActions = new Proxy( allActions, {\n\t\t\t\tapply: ( target, thisArg, [ action ] ) =>\n\t\t\t\t\tstore.dispatch( action ),\n\t\t\t} );\n\n\t\t\tlock( actions, allActions );\n\n\t\t\tconst resolvers = options.resolvers\n\t\t\t\t? mapResolvers( options.resolvers )\n\t\t\t\t: {};\n\n\t\t\tfunction bindSelector( selector, selectorName ) {\n\t\t\t\tif ( selector.isRegistrySelector ) {\n\t\t\t\t\tselector.registry = registry;\n\t\t\t\t}\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\treturn selector( state.root, ...args );\n\t\t\t\t};\n\n\t\t\t\tconst resolver = resolvers[ selectorName ];\n\t\t\t\tif ( ! resolver ) {\n\t\t\t\t\tboundSelector.hasResolver = false;\n\t\t\t\t\treturn boundSelector;\n\t\t\t\t}\n\n\t\t\t\treturn mapSelectorWithResolver(\n\t\t\t\t\tboundSelector,\n\t\t\t\t\tselectorName,\n\t\t\t\t\tresolver,\n\t\t\t\t\tstore,\n\t\t\t\t\tresolversCache\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfunction bindMetadataSelector( selector ) {\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\treturn selector( state.metadata, ...args );\n\t\t\t\t};\n\t\t\t\tboundSelector.hasResolver = false;\n\t\t\t\treturn boundSelector;\n\t\t\t}\n\n\t\t\tconst selectors = {\n\t\t\t\t...mapValues( metadataSelectors, bindMetadataSelector ),\n\t\t\t\t...mapValues( options.selectors, bindSelector ),\n\t\t\t};\n\n\t\t\tconst boundPrivateSelectors = createBindingCache( bindSelector );\n\n\t\t\t// Pre-bind the private selectors that have been registered by the time of\n\t\t\t// instantiation, so that registry selectors are bound to the registry.\n\t\t\tfor ( const [ selectorName, selector ] of Object.entries(\n\t\t\t\tprivateSelectors\n\t\t\t) ) {\n\t\t\t\tboundPrivateSelectors.get( selector, selectorName );\n\t\t\t}\n\n\t\t\tconst allSelectors = new Proxy( () => {}, {\n\t\t\t\tget: ( target, prop ) => {\n\t\t\t\t\tconst privateSelector = privateSelectors[ prop ];\n\t\t\t\t\treturn privateSelector\n\t\t\t\t\t\t? boundPrivateSelectors.get( privateSelector, prop )\n\t\t\t\t\t\t: selectors[ prop ];\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tconst thunkSelectors = new Proxy( allSelectors, {\n\t\t\t\tapply: ( target, thisArg, [ selector ] ) =>\n\t\t\t\t\tselector( store.__unstableOriginalGetState() ),\n\t\t\t} );\n\n\t\t\tlock( selectors, allSelectors );\n\n\t\t\tconst resolveSelectors = mapResolveSelectors( selectors, store );\n\t\t\tconst suspendSelectors = mapSuspendSelectors( selectors, store );\n\n\t\t\tconst getSelectors = () => selectors;\n\t\t\tconst getActions = () => actions;\n\t\t\tconst getResolveSelectors = () => resolveSelectors;\n\t\t\tconst getSuspendSelectors = () => suspendSelectors;\n\n\t\t\t// We have some modules monkey-patching the store object\n\t\t\t// It's wrong to do so but until we refactor all of our effects to controls\n\t\t\t// We need to keep the same \"store\" instance here.\n\t\t\tstore.__unstableOriginalGetState = store.getState;\n\t\t\tstore.getState = () => store.__unstableOriginalGetState().root;\n\n\t\t\t// Customize subscribe behavior to call listeners only on effective change,\n\t\t\t// not on every dispatch.\n\t\t\tconst subscribe =\n\t\t\t\tstore &&\n\t\t\t\t( ( listener ) => {\n\t\t\t\t\tlisteners.add( listener );\n\n\t\t\t\t\treturn () => listeners.delete( listener );\n\t\t\t\t} );\n\n\t\t\tlet lastState = store.__unstableOriginalGetState();\n\t\t\tstore.subscribe( () => {\n\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\tconst hasChanged = state !== lastState;\n\t\t\t\tlastState = state;\n\n\t\t\t\tif ( hasChanged ) {\n\t\t\t\t\tfor ( const listener of listeners ) {\n\t\t\t\t\t\tlistener();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// This can be simplified to just { subscribe, getSelectors, getActions }\n\t\t\t// Once we remove the use function.\n\t\t\treturn {\n\t\t\t\treducer,\n\t\t\t\tstore,\n\t\t\t\tactions,\n\t\t\t\tselectors,\n\t\t\t\tresolvers,\n\t\t\t\tgetSelectors,\n\t\t\t\tgetResolveSelectors,\n\t\t\t\tgetSuspendSelectors,\n\t\t\t\tgetActions,\n\t\t\t\tsubscribe,\n\t\t\t};\n\t\t},\n\t};\n\n\t// Expose the private registration functions on the store\n\t// descriptor. That's a natural choice since that's where the\n\t// public actions and selectors are stored .\n\tlock( storeDescriptor, privateRegistrationFunctions );\n\n\treturn storeDescriptor;\n}\n\n/**\n * Creates a redux store for a namespace.\n *\n * @param {string} key Unique namespace identifier.\n * @param {Object} options Registered store options, with properties\n * describing reducer, actions, selectors,\n * and resolvers.\n * @param {DataRegistry} registry Registry reference.\n * @param {Object} thunkArgs Argument object for the thunk middleware.\n * @return {Object} Newly created redux store.\n */\nfunction instantiateReduxStore( key, options, registry, thunkArgs ) {\n\tconst controls = {\n\t\t...options.controls,\n\t\t...builtinControls,\n\t};\n\n\tconst normalizedControls = mapValues( controls, ( control ) =>\n\t\tcontrol.isRegistryControl ? control( registry ) : control\n\t);\n\n\tconst middlewares = [\n\t\tcreateResolversCacheMiddleware( registry, key ),\n\t\tpromise,\n\t\tcreateReduxRoutineMiddleware( normalizedControls ),\n\t\tcreateThunkMiddleware( thunkArgs ),\n\t];\n\n\tconst enhancers = [ applyMiddleware( ...middlewares ) ];\n\tif (\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.__REDUX_DEVTOOLS_EXTENSION__\n\t) {\n\t\tenhancers.push(\n\t\t\twindow.__REDUX_DEVTOOLS_EXTENSION__( {\n\t\t\t\tname: key,\n\t\t\t\tinstanceId: key,\n\t\t\t\tserialize: {\n\t\t\t\t\treplacer: mapToObject,\n\t\t\t\t},\n\t\t\t} )\n\t\t);\n\t}\n\n\tconst { reducer, initialState } = options;\n\tconst enhancedReducer = combineReducers( {\n\t\tmetadata: metadataReducer,\n\t\troot: reducer,\n\t} );\n\n\treturn createStore(\n\t\tenhancedReducer,\n\t\t{ root: initialState },\n\t\tcompose( enhancers )\n\t);\n}\n\n/**\n * Maps selectors to functions that return a resolution promise for them\n *\n * @param {Object} selectors Selectors to map.\n * @param {Object} store The redux store the selectors select from.\n *\n * @return {Object} Selectors mapped to their resolution functions.\n */\nfunction mapResolveSelectors( selectors, store ) {\n\tconst {\n\t\tgetIsResolving,\n\t\thasStartedResolution,\n\t\thasFinishedResolution,\n\t\thasResolutionFailed,\n\t\tisResolving,\n\t\tgetCachedResolvers,\n\t\tgetResolutionState,\n\t\tgetResolutionError,\n\t\thasResolvingSelectors,\n\t\t...storeSelectors\n\t} = selectors;\n\n\treturn mapValues( storeSelectors, ( selector, selectorName ) => {\n\t\t// If the selector doesn't have a resolver, just convert the return value\n\t\t// (including exceptions) to a Promise, no additional extra behavior is needed.\n\t\tif ( ! selector.hasResolver ) {\n\t\t\treturn async ( ...args ) => selector.apply( null, args );\n\t\t}\n\n\t\treturn ( ...args ) => {\n\t\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\t\tconst hasFinished = () =>\n\t\t\t\t\tselectors.hasFinishedResolution( selectorName, args );\n\t\t\t\tconst finalize = ( result ) => {\n\t\t\t\t\tconst hasFailed = selectors.hasResolutionFailed(\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\targs\n\t\t\t\t\t);\n\t\t\t\t\tif ( hasFailed ) {\n\t\t\t\t\t\tconst error = selectors.getResolutionError(\n\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\targs\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject( error );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve( result );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst getResult = () => selector.apply( null, args );\n\t\t\t\t// Trigger the selector (to trigger the resolver)\n\t\t\t\tconst result = getResult();\n\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\treturn finalize( result );\n\t\t\t\t}\n\n\t\t\t\tconst unsubscribe = store.subscribe( () => {\n\t\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t\tfinalize( getResult() );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t} );\n}\n\n/**\n * Maps selectors to functions that throw a suspense promise if not yet resolved.\n *\n * @param {Object} selectors Selectors to map.\n * @param {Object} store The redux store the selectors select from.\n *\n * @return {Object} Selectors mapped to their suspense functions.\n */\nfunction mapSuspendSelectors( selectors, store ) {\n\treturn mapValues( selectors, ( selector, selectorName ) => {\n\t\t// Selector without a resolver doesn't have any extra suspense behavior.\n\t\tif ( ! selector.hasResolver ) {\n\t\t\treturn selector;\n\t\t}\n\n\t\treturn ( ...args ) => {\n\t\t\tconst result = selector.apply( null, args );\n\n\t\t\tif ( selectors.hasFinishedResolution( selectorName, args ) ) {\n\t\t\t\tif ( selectors.hasResolutionFailed( selectorName, args ) ) {\n\t\t\t\t\tthrow selectors.getResolutionError( selectorName, args );\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tthrow new Promise( ( resolve ) => {\n\t\t\t\tconst unsubscribe = store.subscribe( () => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tselectors.hasFinishedResolution( selectorName, args )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t} );\n}\n\n/**\n * Convert resolvers to a normalized form, an object with `fulfill` method and\n * optional methods like `isFulfilled`.\n *\n * @param {Object} resolvers Resolver to convert\n */\nfunction mapResolvers( resolvers ) {\n\treturn mapValues( resolvers, ( resolver ) => {\n\t\tif ( resolver.fulfill ) {\n\t\t\treturn resolver;\n\t\t}\n\n\t\treturn {\n\t\t\t...resolver, // Copy the enumerable properties of the resolver function.\n\t\t\tfulfill: resolver, // Add the fulfill method.\n\t\t};\n\t} );\n}\n\n/**\n * Returns a selector with a matched resolver.\n * Resolvers are side effects invoked once per argument set of a given selector call,\n * used in ensuring that the data needs for the selector are satisfied.\n *\n * @param {Object} selector The selector function to be bound.\n * @param {string} selectorName The selector name.\n * @param {Object} resolver Resolver to call.\n * @param {Object} store The redux store to which the resolvers should be mapped.\n * @param {Object} resolversCache Resolvers Cache.\n */\nfunction mapSelectorWithResolver(\n\tselector,\n\tselectorName,\n\tresolver,\n\tstore,\n\tresolversCache\n) {\n\tfunction fulfillSelector( args ) {\n\t\tconst state = store.getState();\n\n\t\tif (\n\t\t\tresolversCache.isRunning( selectorName, args ) ||\n\t\t\t( typeof resolver.isFulfilled === 'function' &&\n\t\t\t\tresolver.isFulfilled( state, ...args ) )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { metadata } = store.__unstableOriginalGetState();\n\n\t\tif (\n\t\t\tmetadataSelectors.hasStartedResolution(\n\t\t\t\tmetadata,\n\t\t\t\tselectorName,\n\t\t\t\targs\n\t\t\t)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tresolversCache.markAsRunning( selectorName, args );\n\n\t\tsetTimeout( async () => {\n\t\t\tresolversCache.clear( selectorName, args );\n\t\t\tstore.dispatch(\n\t\t\t\tmetadataActions.startResolution( selectorName, args )\n\t\t\t);\n\t\t\ttry {\n\t\t\t\tconst action = resolver.fulfill( ...args );\n\t\t\t\tif ( action ) {\n\t\t\t\t\tawait store.dispatch( action );\n\t\t\t\t}\n\t\t\t\tstore.dispatch(\n\t\t\t\t\tmetadataActions.finishResolution( selectorName, args )\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tstore.dispatch(\n\t\t\t\t\tmetadataActions.failResolution( selectorName, args, error )\n\t\t\t\t);\n\t\t\t}\n\t\t}, 0 );\n\t}\n\n\tconst selectorResolver = ( ...args ) => {\n\t\tfulfillSelector( args );\n\t\treturn selector( ...args );\n\t};\n\tselectorResolver.hasResolver = true;\n\treturn selectorResolver;\n}\n"]}
package/build/registry.js CHANGED
@@ -331,6 +331,12 @@ function createRegistry(storeConfigs = {}, parent = null) {
331
331
  }
332
332
 
333
333
  function batch(callback) {
334
+ // If we're already batching, just call the callback.
335
+ if (emitter.isPaused) {
336
+ callback();
337
+ return;
338
+ }
339
+
334
340
  emitter.pause();
335
341
  Object.values(stores).forEach(store => store.emitter.pause());
336
342
  callback();
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/data/src/registry.js"],"names":["getStoreName","storeNameOrDescriptor","name","createRegistry","storeConfigs","parent","stores","emitter","listeningStores","globalListener","emit","subscribe","listener","storeName","store","select","add","getSelectors","__unstableMarkListeningStores","callback","ref","Set","call","current","Array","from","resolveSelect","getResolveSelectors","suspendSelect","getSuspendSelectors","dispatch","getActions","withPlugins","attributes","Object","fromEntries","entries","map","key","attribute","registry","apply","arguments","registerStoreInstance","createStore","console","error","TypeError","currentSubscribe","unsubscribeFromEmitter","unsubscribeFromStore","isPaused","registerPrivateActions","privateActionsOf","registerPrivateSelectors","privateSelectorsOf","e","register","instantiate","registerGenericStore","since","alternative","registerStore","options","reducer","batch","pause","values","forEach","resume","namespaces","use","plugin","coreDataStore","config","registryWithPlugins","privateActions","privateSelectors"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport createReduxStore from './redux-store';\nimport coreDataStore from './store';\nimport { createEmitter } from './utils/emitter';\nimport { lock, unlock } from './lock-unlock';\n\n/** @typedef {import('./types').StoreDescriptor} StoreDescriptor */\n\n/**\n * @typedef {Object} WPDataRegistry An isolated orchestrator of store registrations.\n *\n * @property {Function} registerGenericStore Given a namespace key and settings\n * object, registers a new generic\n * store.\n * @property {Function} registerStore Given a namespace key and settings\n * object, registers a new namespace\n * store.\n * @property {Function} subscribe Given a function callback, invokes\n * the callback on any change to state\n * within any registered store.\n * @property {Function} select Given a namespace key, returns an\n * object of the store's registered\n * selectors.\n * @property {Function} dispatch Given a namespace key, returns an\n * object of the store's registered\n * action dispatchers.\n */\n\n/**\n * @typedef {Object} WPDataPlugin An object of registry function overrides.\n *\n * @property {Function} registerStore registers store.\n */\n\nfunction getStoreName( storeNameOrDescriptor ) {\n\treturn typeof storeNameOrDescriptor === 'string'\n\t\t? storeNameOrDescriptor\n\t\t: storeNameOrDescriptor.name;\n}\n/**\n * Creates a new store registry, given an optional object of initial store\n * configurations.\n *\n * @param {Object} storeConfigs Initial store configurations.\n * @param {Object?} parent Parent registry.\n *\n * @return {WPDataRegistry} Data registry.\n */\nexport function createRegistry( storeConfigs = {}, parent = null ) {\n\tconst stores = {};\n\tconst emitter = createEmitter();\n\tlet listeningStores = null;\n\n\t/**\n\t * Global listener called for each store's update.\n\t */\n\tfunction globalListener() {\n\t\temitter.emit();\n\t}\n\n\t/**\n\t * Subscribe to changes to any data, either in all stores in registry, or\n\t * in one specific store.\n\t *\n\t * @param {Function} listener Listener function.\n\t * @param {string|StoreDescriptor?} storeNameOrDescriptor Optional store name.\n\t *\n\t * @return {Function} Unsubscribe function.\n\t */\n\tconst subscribe = ( listener, storeNameOrDescriptor ) => {\n\t\t// subscribe to all stores\n\t\tif ( ! storeNameOrDescriptor ) {\n\t\t\treturn emitter.subscribe( listener );\n\t\t}\n\n\t\t// subscribe to one store\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.subscribe( listener );\n\t\t}\n\n\t\t// Trying to access a store that hasn't been registered,\n\t\t// this is a pattern rarely used but seen in some places.\n\t\t// We fallback to global `subscribe` here for backward-compatibility for now.\n\t\t// See https://github.com/WordPress/gutenberg/pull/27466 for more info.\n\t\tif ( ! parent ) {\n\t\t\treturn emitter.subscribe( listener );\n\t\t}\n\n\t\treturn parent.subscribe( listener, storeNameOrDescriptor );\n\t};\n\n\t/**\n\t * Calls a selector given the current state and extra arguments.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t * or the store descriptor.\n\t *\n\t * @return {*} The selector's returned value.\n\t */\n\tfunction select( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getSelectors();\n\t\t}\n\n\t\treturn parent?.select( storeName );\n\t}\n\n\tfunction __unstableMarkListeningStores( callback, ref ) {\n\t\tlisteningStores = new Set();\n\t\ttry {\n\t\t\treturn callback.call( this );\n\t\t} finally {\n\t\t\tref.current = Array.from( listeningStores );\n\t\t\tlisteningStores = null;\n\t\t}\n\t}\n\n\t/**\n\t * Given a store descriptor, returns an object containing the store's selectors pre-bound to\n\t * state so that you only need to supply additional arguments, and modified so that they return\n\t * promises that resolve to their eventual values, after any resolvers have ran.\n\t *\n\t * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n\t * convention of passing the store name is\n\t * also supported.\n\t *\n\t * @return {Object} Each key of the object matches the name of a selector.\n\t */\n\tfunction resolveSelect( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getResolveSelectors();\n\t\t}\n\n\t\treturn parent && parent.resolveSelect( storeName );\n\t}\n\n\t/**\n\t * Given a store descriptor, returns an object containing the store's selectors pre-bound to\n\t * state so that you only need to supply additional arguments, and modified so that they throw\n\t * promises in case the selector is not resolved yet.\n\t *\n\t * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n\t * convention of passing the store name is\n\t * also supported.\n\t *\n\t * @return {Object} Object containing the store's suspense-wrapped selectors.\n\t */\n\tfunction suspendSelect( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getSuspendSelectors();\n\t\t}\n\n\t\treturn parent && parent.suspendSelect( storeName );\n\t}\n\n\t/**\n\t * Returns the available actions for a part of the state.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t * or the store descriptor.\n\t *\n\t * @return {*} The action's returned value.\n\t */\n\tfunction dispatch( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getActions();\n\t\t}\n\n\t\treturn parent && parent.dispatch( storeName );\n\t}\n\n\t//\n\t// Deprecated\n\t// TODO: Remove this after `use()` is removed.\n\tfunction withPlugins( attributes ) {\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries( attributes ).map( ( [ key, attribute ] ) => {\n\t\t\t\tif ( typeof attribute !== 'function' ) {\n\t\t\t\t\treturn [ key, attribute ];\n\t\t\t\t}\n\t\t\t\treturn [\n\t\t\t\t\tkey,\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\treturn registry[ key ].apply( null, arguments );\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t} )\n\t\t);\n\t}\n\n\t/**\n\t * Registers a store instance.\n\t *\n\t * @param {string} name Store registry name.\n\t * @param {Function} createStore Function that creates a store object (getSelectors, getActions, subscribe).\n\t */\n\tfunction registerStoreInstance( name, createStore ) {\n\t\tif ( stores[ name ] ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( 'Store \"' + name + '\" is already registered.' );\n\t\t\treturn stores[ name ];\n\t\t}\n\n\t\tconst store = createStore();\n\n\t\tif ( typeof store.getSelectors !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getSelectors must be a function' );\n\t\t}\n\t\tif ( typeof store.getActions !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getActions must be a function' );\n\t\t}\n\t\tif ( typeof store.subscribe !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.subscribe must be a function' );\n\t\t}\n\t\t// The emitter is used to keep track of active listeners when the registry\n\t\t// get paused, that way, when resumed we should be able to call all these\n\t\t// pending listeners.\n\t\tstore.emitter = createEmitter();\n\t\tconst currentSubscribe = store.subscribe;\n\t\tstore.subscribe = ( listener ) => {\n\t\t\tconst unsubscribeFromEmitter = store.emitter.subscribe( listener );\n\t\t\tconst unsubscribeFromStore = currentSubscribe( () => {\n\t\t\t\tif ( store.emitter.isPaused ) {\n\t\t\t\t\tstore.emitter.emit();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlistener();\n\t\t\t} );\n\n\t\t\treturn () => {\n\t\t\t\tunsubscribeFromStore?.();\n\t\t\t\tunsubscribeFromEmitter?.();\n\t\t\t};\n\t\t};\n\t\tstores[ name ] = store;\n\t\tstore.subscribe( globalListener );\n\n\t\t// Copy private actions and selectors from the parent store.\n\t\tif ( parent ) {\n\t\t\ttry {\n\t\t\t\tunlock( store.store ).registerPrivateActions(\n\t\t\t\t\tunlock( parent ).privateActionsOf( name )\n\t\t\t\t);\n\t\t\t\tunlock( store.store ).registerPrivateSelectors(\n\t\t\t\t\tunlock( parent ).privateSelectorsOf( name )\n\t\t\t\t);\n\t\t\t} catch ( e ) {\n\t\t\t\t// unlock() throws if store.store was not locked.\n\t\t\t\t// The error indicates there's nothing to do here so let's\n\t\t\t\t// ignore it.\n\t\t\t}\n\t\t}\n\n\t\treturn store;\n\t}\n\n\t/**\n\t * Registers a new store given a store descriptor.\n\t *\n\t * @param {StoreDescriptor} store Store descriptor.\n\t */\n\tfunction register( store ) {\n\t\tregisterStoreInstance( store.name, () =>\n\t\t\tstore.instantiate( registry )\n\t\t);\n\t}\n\n\tfunction registerGenericStore( name, store ) {\n\t\tdeprecated( 'wp.data.registerGenericStore', {\n\t\t\tsince: '5.9',\n\t\t\talternative: 'wp.data.register( storeDescriptor )',\n\t\t} );\n\t\tregisterStoreInstance( name, () => store );\n\t}\n\n\t/**\n\t * Registers a standard `@wordpress/data` store.\n\t *\n\t * @param {string} storeName Unique namespace identifier.\n\t * @param {Object} options Store description (reducer, actions, selectors, resolvers).\n\t *\n\t * @return {Object} Registered store object.\n\t */\n\tfunction registerStore( storeName, options ) {\n\t\tif ( ! options.reducer ) {\n\t\t\tthrow new TypeError( 'Must specify store reducer' );\n\t\t}\n\n\t\tconst store = registerStoreInstance( storeName, () =>\n\t\t\tcreateReduxStore( storeName, options ).instantiate( registry )\n\t\t);\n\n\t\treturn store.store;\n\t}\n\n\tfunction batch( callback ) {\n\t\temitter.pause();\n\t\tObject.values( stores ).forEach( ( store ) => store.emitter.pause() );\n\t\tcallback();\n\t\temitter.resume();\n\t\tObject.values( stores ).forEach( ( store ) => store.emitter.resume() );\n\t}\n\n\tlet registry = {\n\t\tbatch,\n\t\tstores,\n\t\tnamespaces: stores, // TODO: Deprecate/remove this.\n\t\tsubscribe,\n\t\tselect,\n\t\tresolveSelect,\n\t\tsuspendSelect,\n\t\tdispatch,\n\t\tuse,\n\t\tregister,\n\t\tregisterGenericStore,\n\t\tregisterStore,\n\t\t__unstableMarkListeningStores,\n\t};\n\n\t//\n\t// TODO:\n\t// This function will be deprecated as soon as it is no longer internally referenced.\n\tfunction use( plugin, options ) {\n\t\tif ( ! plugin ) {\n\t\t\treturn;\n\t\t}\n\n\t\tregistry = {\n\t\t\t...registry,\n\t\t\t...plugin( registry, options ),\n\t\t};\n\n\t\treturn registry;\n\t}\n\n\tregistry.register( coreDataStore );\n\n\tfor ( const [ name, config ] of Object.entries( storeConfigs ) ) {\n\t\tregistry.register( createReduxStore( name, config ) );\n\t}\n\n\tif ( parent ) {\n\t\tparent.subscribe( globalListener );\n\t}\n\n\tconst registryWithPlugins = withPlugins( registry );\n\tlock( registryWithPlugins, {\n\t\tprivateActionsOf: ( name ) => {\n\t\t\ttry {\n\t\t\t\treturn unlock( stores[ name ].store ).privateActions;\n\t\t\t} catch ( e ) {\n\t\t\t\t// unlock() throws an error the store was not locked – this means\n\t\t\t\t// there no private actions are available\n\t\t\t\treturn {};\n\t\t\t}\n\t\t},\n\t\tprivateSelectorsOf: ( name ) => {\n\t\t\ttry {\n\t\t\t\treturn unlock( stores[ name ].store ).privateSelectors;\n\t\t\t} catch ( e ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t},\n\t} );\n\treturn registryWithPlugins;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/data/src/registry.js"],"names":["getStoreName","storeNameOrDescriptor","name","createRegistry","storeConfigs","parent","stores","emitter","listeningStores","globalListener","emit","subscribe","listener","storeName","store","select","add","getSelectors","__unstableMarkListeningStores","callback","ref","Set","call","current","Array","from","resolveSelect","getResolveSelectors","suspendSelect","getSuspendSelectors","dispatch","getActions","withPlugins","attributes","Object","fromEntries","entries","map","key","attribute","registry","apply","arguments","registerStoreInstance","createStore","console","error","TypeError","currentSubscribe","unsubscribeFromEmitter","unsubscribeFromStore","isPaused","registerPrivateActions","privateActionsOf","registerPrivateSelectors","privateSelectorsOf","e","register","instantiate","registerGenericStore","since","alternative","registerStore","options","reducer","batch","pause","values","forEach","resume","namespaces","use","plugin","coreDataStore","config","registryWithPlugins","privateActions","privateSelectors"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport createReduxStore from './redux-store';\nimport coreDataStore from './store';\nimport { createEmitter } from './utils/emitter';\nimport { lock, unlock } from './lock-unlock';\n\n/** @typedef {import('./types').StoreDescriptor} StoreDescriptor */\n\n/**\n * @typedef {Object} WPDataRegistry An isolated orchestrator of store registrations.\n *\n * @property {Function} registerGenericStore Given a namespace key and settings\n * object, registers a new generic\n * store.\n * @property {Function} registerStore Given a namespace key and settings\n * object, registers a new namespace\n * store.\n * @property {Function} subscribe Given a function callback, invokes\n * the callback on any change to state\n * within any registered store.\n * @property {Function} select Given a namespace key, returns an\n * object of the store's registered\n * selectors.\n * @property {Function} dispatch Given a namespace key, returns an\n * object of the store's registered\n * action dispatchers.\n */\n\n/**\n * @typedef {Object} WPDataPlugin An object of registry function overrides.\n *\n * @property {Function} registerStore registers store.\n */\n\nfunction getStoreName( storeNameOrDescriptor ) {\n\treturn typeof storeNameOrDescriptor === 'string'\n\t\t? storeNameOrDescriptor\n\t\t: storeNameOrDescriptor.name;\n}\n/**\n * Creates a new store registry, given an optional object of initial store\n * configurations.\n *\n * @param {Object} storeConfigs Initial store configurations.\n * @param {Object?} parent Parent registry.\n *\n * @return {WPDataRegistry} Data registry.\n */\nexport function createRegistry( storeConfigs = {}, parent = null ) {\n\tconst stores = {};\n\tconst emitter = createEmitter();\n\tlet listeningStores = null;\n\n\t/**\n\t * Global listener called for each store's update.\n\t */\n\tfunction globalListener() {\n\t\temitter.emit();\n\t}\n\n\t/**\n\t * Subscribe to changes to any data, either in all stores in registry, or\n\t * in one specific store.\n\t *\n\t * @param {Function} listener Listener function.\n\t * @param {string|StoreDescriptor?} storeNameOrDescriptor Optional store name.\n\t *\n\t * @return {Function} Unsubscribe function.\n\t */\n\tconst subscribe = ( listener, storeNameOrDescriptor ) => {\n\t\t// subscribe to all stores\n\t\tif ( ! storeNameOrDescriptor ) {\n\t\t\treturn emitter.subscribe( listener );\n\t\t}\n\n\t\t// subscribe to one store\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.subscribe( listener );\n\t\t}\n\n\t\t// Trying to access a store that hasn't been registered,\n\t\t// this is a pattern rarely used but seen in some places.\n\t\t// We fallback to global `subscribe` here for backward-compatibility for now.\n\t\t// See https://github.com/WordPress/gutenberg/pull/27466 for more info.\n\t\tif ( ! parent ) {\n\t\t\treturn emitter.subscribe( listener );\n\t\t}\n\n\t\treturn parent.subscribe( listener, storeNameOrDescriptor );\n\t};\n\n\t/**\n\t * Calls a selector given the current state and extra arguments.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t * or the store descriptor.\n\t *\n\t * @return {*} The selector's returned value.\n\t */\n\tfunction select( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getSelectors();\n\t\t}\n\n\t\treturn parent?.select( storeName );\n\t}\n\n\tfunction __unstableMarkListeningStores( callback, ref ) {\n\t\tlisteningStores = new Set();\n\t\ttry {\n\t\t\treturn callback.call( this );\n\t\t} finally {\n\t\t\tref.current = Array.from( listeningStores );\n\t\t\tlisteningStores = null;\n\t\t}\n\t}\n\n\t/**\n\t * Given a store descriptor, returns an object containing the store's selectors pre-bound to\n\t * state so that you only need to supply additional arguments, and modified so that they return\n\t * promises that resolve to their eventual values, after any resolvers have ran.\n\t *\n\t * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n\t * convention of passing the store name is\n\t * also supported.\n\t *\n\t * @return {Object} Each key of the object matches the name of a selector.\n\t */\n\tfunction resolveSelect( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getResolveSelectors();\n\t\t}\n\n\t\treturn parent && parent.resolveSelect( storeName );\n\t}\n\n\t/**\n\t * Given a store descriptor, returns an object containing the store's selectors pre-bound to\n\t * state so that you only need to supply additional arguments, and modified so that they throw\n\t * promises in case the selector is not resolved yet.\n\t *\n\t * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n\t * convention of passing the store name is\n\t * also supported.\n\t *\n\t * @return {Object} Object containing the store's suspense-wrapped selectors.\n\t */\n\tfunction suspendSelect( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getSuspendSelectors();\n\t\t}\n\n\t\treturn parent && parent.suspendSelect( storeName );\n\t}\n\n\t/**\n\t * Returns the available actions for a part of the state.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t * or the store descriptor.\n\t *\n\t * @return {*} The action's returned value.\n\t */\n\tfunction dispatch( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getActions();\n\t\t}\n\n\t\treturn parent && parent.dispatch( storeName );\n\t}\n\n\t//\n\t// Deprecated\n\t// TODO: Remove this after `use()` is removed.\n\tfunction withPlugins( attributes ) {\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries( attributes ).map( ( [ key, attribute ] ) => {\n\t\t\t\tif ( typeof attribute !== 'function' ) {\n\t\t\t\t\treturn [ key, attribute ];\n\t\t\t\t}\n\t\t\t\treturn [\n\t\t\t\t\tkey,\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\treturn registry[ key ].apply( null, arguments );\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t} )\n\t\t);\n\t}\n\n\t/**\n\t * Registers a store instance.\n\t *\n\t * @param {string} name Store registry name.\n\t * @param {Function} createStore Function that creates a store object (getSelectors, getActions, subscribe).\n\t */\n\tfunction registerStoreInstance( name, createStore ) {\n\t\tif ( stores[ name ] ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( 'Store \"' + name + '\" is already registered.' );\n\t\t\treturn stores[ name ];\n\t\t}\n\n\t\tconst store = createStore();\n\n\t\tif ( typeof store.getSelectors !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getSelectors must be a function' );\n\t\t}\n\t\tif ( typeof store.getActions !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getActions must be a function' );\n\t\t}\n\t\tif ( typeof store.subscribe !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.subscribe must be a function' );\n\t\t}\n\t\t// The emitter is used to keep track of active listeners when the registry\n\t\t// get paused, that way, when resumed we should be able to call all these\n\t\t// pending listeners.\n\t\tstore.emitter = createEmitter();\n\t\tconst currentSubscribe = store.subscribe;\n\t\tstore.subscribe = ( listener ) => {\n\t\t\tconst unsubscribeFromEmitter = store.emitter.subscribe( listener );\n\t\t\tconst unsubscribeFromStore = currentSubscribe( () => {\n\t\t\t\tif ( store.emitter.isPaused ) {\n\t\t\t\t\tstore.emitter.emit();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlistener();\n\t\t\t} );\n\n\t\t\treturn () => {\n\t\t\t\tunsubscribeFromStore?.();\n\t\t\t\tunsubscribeFromEmitter?.();\n\t\t\t};\n\t\t};\n\t\tstores[ name ] = store;\n\t\tstore.subscribe( globalListener );\n\n\t\t// Copy private actions and selectors from the parent store.\n\t\tif ( parent ) {\n\t\t\ttry {\n\t\t\t\tunlock( store.store ).registerPrivateActions(\n\t\t\t\t\tunlock( parent ).privateActionsOf( name )\n\t\t\t\t);\n\t\t\t\tunlock( store.store ).registerPrivateSelectors(\n\t\t\t\t\tunlock( parent ).privateSelectorsOf( name )\n\t\t\t\t);\n\t\t\t} catch ( e ) {\n\t\t\t\t// unlock() throws if store.store was not locked.\n\t\t\t\t// The error indicates there's nothing to do here so let's\n\t\t\t\t// ignore it.\n\t\t\t}\n\t\t}\n\n\t\treturn store;\n\t}\n\n\t/**\n\t * Registers a new store given a store descriptor.\n\t *\n\t * @param {StoreDescriptor} store Store descriptor.\n\t */\n\tfunction register( store ) {\n\t\tregisterStoreInstance( store.name, () =>\n\t\t\tstore.instantiate( registry )\n\t\t);\n\t}\n\n\tfunction registerGenericStore( name, store ) {\n\t\tdeprecated( 'wp.data.registerGenericStore', {\n\t\t\tsince: '5.9',\n\t\t\talternative: 'wp.data.register( storeDescriptor )',\n\t\t} );\n\t\tregisterStoreInstance( name, () => store );\n\t}\n\n\t/**\n\t * Registers a standard `@wordpress/data` store.\n\t *\n\t * @param {string} storeName Unique namespace identifier.\n\t * @param {Object} options Store description (reducer, actions, selectors, resolvers).\n\t *\n\t * @return {Object} Registered store object.\n\t */\n\tfunction registerStore( storeName, options ) {\n\t\tif ( ! options.reducer ) {\n\t\t\tthrow new TypeError( 'Must specify store reducer' );\n\t\t}\n\n\t\tconst store = registerStoreInstance( storeName, () =>\n\t\t\tcreateReduxStore( storeName, options ).instantiate( registry )\n\t\t);\n\n\t\treturn store.store;\n\t}\n\n\tfunction batch( callback ) {\n\t\t// If we're already batching, just call the callback.\n\t\tif ( emitter.isPaused ) {\n\t\t\tcallback();\n\t\t\treturn;\n\t\t}\n\n\t\temitter.pause();\n\t\tObject.values( stores ).forEach( ( store ) => store.emitter.pause() );\n\t\tcallback();\n\t\temitter.resume();\n\t\tObject.values( stores ).forEach( ( store ) => store.emitter.resume() );\n\t}\n\n\tlet registry = {\n\t\tbatch,\n\t\tstores,\n\t\tnamespaces: stores, // TODO: Deprecate/remove this.\n\t\tsubscribe,\n\t\tselect,\n\t\tresolveSelect,\n\t\tsuspendSelect,\n\t\tdispatch,\n\t\tuse,\n\t\tregister,\n\t\tregisterGenericStore,\n\t\tregisterStore,\n\t\t__unstableMarkListeningStores,\n\t};\n\n\t//\n\t// TODO:\n\t// This function will be deprecated as soon as it is no longer internally referenced.\n\tfunction use( plugin, options ) {\n\t\tif ( ! plugin ) {\n\t\t\treturn;\n\t\t}\n\n\t\tregistry = {\n\t\t\t...registry,\n\t\t\t...plugin( registry, options ),\n\t\t};\n\n\t\treturn registry;\n\t}\n\n\tregistry.register( coreDataStore );\n\n\tfor ( const [ name, config ] of Object.entries( storeConfigs ) ) {\n\t\tregistry.register( createReduxStore( name, config ) );\n\t}\n\n\tif ( parent ) {\n\t\tparent.subscribe( globalListener );\n\t}\n\n\tconst registryWithPlugins = withPlugins( registry );\n\tlock( registryWithPlugins, {\n\t\tprivateActionsOf: ( name ) => {\n\t\t\ttry {\n\t\t\t\treturn unlock( stores[ name ].store ).privateActions;\n\t\t\t} catch ( e ) {\n\t\t\t\t// unlock() throws an error the store was not locked – this means\n\t\t\t\t// there no private actions are available\n\t\t\t\treturn {};\n\t\t\t}\n\t\t},\n\t\tprivateSelectorsOf: ( name ) => {\n\t\t\ttry {\n\t\t\t\treturn unlock( stores[ name ].store ).privateSelectors;\n\t\t\t} catch ( e ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t},\n\t} );\n\treturn registryWithPlugins;\n}\n"]}
@@ -24,6 +24,8 @@ import * as metadataSelectors from './metadata/selectors';
24
24
  import * as metadataActions from './metadata/actions';
25
25
  /** @typedef {import('../types').DataRegistry} DataRegistry */
26
26
 
27
+ /** @typedef {import('../types').ListenerFunction} ListenerFunction */
28
+
27
29
  /**
28
30
  * @typedef {import('../types').StoreDescriptor<C>} StoreDescriptor
29
31
  * @template {import('../types').AnyConfig} C
@@ -158,6 +160,19 @@ export default function createReduxStore(key, options) {
158
160
  const storeDescriptor = {
159
161
  name: key,
160
162
  instantiate: registry => {
163
+ /**
164
+ * Stores listener functions registered with `subscribe()`.
165
+ *
166
+ * When functions register to listen to store changes with
167
+ * `subscribe()` they get added here. Although Redux offers
168
+ * its own `subscribe()` function directly, by wrapping the
169
+ * subscription in this store instance it's possible to
170
+ * optimize checking if the state has changed before calling
171
+ * each listener.
172
+ *
173
+ * @type {Set<ListenerFunction>}
174
+ */
175
+ const listeners = new Set();
161
176
  const reducer = options.reducer;
162
177
  const thunkArgs = {
163
178
  registry,
@@ -274,22 +289,26 @@ export default function createReduxStore(key, options) {
274
289
 
275
290
 
276
291
  const subscribe = store && (listener => {
277
- let lastState = store.__unstableOriginalGetState();
292
+ listeners.add(listener);
293
+ return () => listeners.delete(listener);
294
+ });
278
295
 
279
- return store.subscribe(() => {
280
- const state = store.__unstableOriginalGetState();
296
+ let lastState = store.__unstableOriginalGetState();
297
+
298
+ store.subscribe(() => {
299
+ const state = store.__unstableOriginalGetState();
281
300
 
282
- const hasChanged = state !== lastState;
283
- lastState = state;
301
+ const hasChanged = state !== lastState;
302
+ lastState = state;
284
303
 
285
- if (hasChanged) {
304
+ if (hasChanged) {
305
+ for (const listener of listeners) {
286
306
  listener();
287
307
  }
288
- });
308
+ }
289
309
  }); // This can be simplified to just { subscribe, getSelectors, getActions }
290
310
  // Once we remove the use function.
291
311
 
292
-
293
312
  return {
294
313
  reducer,
295
314
  store,
@@ -372,6 +391,7 @@ function mapResolveSelectors(selectors, store) {
372
391
  getCachedResolvers,
373
392
  getResolutionState,
374
393
  getResolutionError,
394
+ hasResolvingSelectors,
375
395
  ...storeSelectors
376
396
  } = selectors;
377
397
  return mapValues(storeSelectors, (selector, selectorName) => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/data/src/redux-store/index.js"],"names":["createStore","applyMiddleware","combineReducers","EquivalentKeyMap","createReduxRoutineMiddleware","compose","builtinControls","lock","promise","createResolversCacheMiddleware","createThunkMiddleware","metadataReducer","metadataSelectors","metadataActions","trimUndefinedValues","array","result","i","length","undefined","splice","mapValues","obj","callback","Object","fromEntries","entries","map","key","value","mapToObject","state","Map","createResolversCache","cache","isRunning","selectorName","args","get","clear","delete","markAsRunning","set","createBindingCache","bind","WeakMap","item","itemName","boundItem","createReduxStore","options","privateActions","privateSelectors","privateRegistrationFunctions","registerPrivateActions","actions","assign","registerPrivateSelectors","selectors","storeDescriptor","name","instantiate","registry","reducer","thunkArgs","dispatch","thunkActions","select","thunkSelectors","resolveSelect","getResolveSelectors","store","instantiateReduxStore","resolversCache","bindAction","action","Promise","resolve","boundPrivateActions","allActions","Proxy","target","prop","privateAction","apply","thisArg","resolvers","mapResolvers","bindSelector","selector","isRegistrySelector","boundSelector","__unstableOriginalGetState","root","resolver","hasResolver","mapSelectorWithResolver","bindMetadataSelector","metadata","boundPrivateSelectors","allSelectors","privateSelector","resolveSelectors","mapResolveSelectors","suspendSelectors","mapSuspendSelectors","getSelectors","getActions","getSuspendSelectors","getState","subscribe","listener","lastState","hasChanged","controls","normalizedControls","control","isRegistryControl","middlewares","enhancers","window","__REDUX_DEVTOOLS_EXTENSION__","push","instanceId","serialize","replacer","initialState","enhancedReducer","getIsResolving","hasStartedResolution","hasFinishedResolution","hasResolutionFailed","isResolving","getCachedResolvers","getResolutionState","getResolutionError","storeSelectors","reject","hasFinished","finalize","hasFailed","error","getResult","unsubscribe","fulfill","fulfillSelector","isFulfilled","setTimeout","startResolution","finishResolution","failResolution","selectorResolver"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { createStore, applyMiddleware } from 'redux';\nimport combineReducers from 'turbo-combine-reducers';\nimport EquivalentKeyMap from 'equivalent-key-map';\n\n/**\n * WordPress dependencies\n */\nimport createReduxRoutineMiddleware from '@wordpress/redux-routine';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { builtinControls } from '../controls';\nimport { lock } from '../lock-unlock';\nimport promise from '../promise-middleware';\nimport createResolversCacheMiddleware from '../resolvers-cache-middleware';\nimport createThunkMiddleware from './thunk-middleware';\nimport metadataReducer from './metadata/reducer';\nimport * as metadataSelectors from './metadata/selectors';\nimport * as metadataActions from './metadata/actions';\n\n/** @typedef {import('../types').DataRegistry} DataRegistry */\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\nconst trimUndefinedValues = ( array ) => {\n\tconst result = [ ...array ];\n\tfor ( let i = result.length - 1; i >= 0; i-- ) {\n\t\tif ( result[ i ] === undefined ) {\n\t\t\tresult.splice( i, 1 );\n\t\t}\n\t}\n\treturn result;\n};\n\n/**\n * Creates a new object with the same keys, but with `callback()` called as\n * a transformer function on each of the values.\n *\n * @param {Object} obj The object to transform.\n * @param {Function} callback The function to transform each object value.\n * @return {Array} Transformed object.\n */\nconst mapValues = ( obj, callback ) =>\n\tObject.fromEntries(\n\t\tObject.entries( obj ?? {} ).map( ( [ key, value ] ) => [\n\t\t\tkey,\n\t\t\tcallback( value, key ),\n\t\t] )\n\t);\n\n// Convert Map objects to plain objects\nconst mapToObject = ( key, state ) => {\n\tif ( state instanceof Map ) {\n\t\treturn Object.fromEntries( state );\n\t}\n\n\treturn state;\n};\n\n/**\n * Create a cache to track whether resolvers started running or not.\n *\n * @return {Object} Resolvers Cache.\n */\nfunction createResolversCache() {\n\tconst cache = {};\n\treturn {\n\t\tisRunning( selectorName, args ) {\n\t\t\treturn (\n\t\t\t\tcache[ selectorName ] &&\n\t\t\t\tcache[ selectorName ].get( trimUndefinedValues( args ) )\n\t\t\t);\n\t\t},\n\n\t\tclear( selectorName, args ) {\n\t\t\tif ( cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ].delete( trimUndefinedValues( args ) );\n\t\t\t}\n\t\t},\n\n\t\tmarkAsRunning( selectorName, args ) {\n\t\t\tif ( ! cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ] = new EquivalentKeyMap();\n\t\t\t}\n\n\t\t\tcache[ selectorName ].set( trimUndefinedValues( args ), true );\n\t\t},\n\t};\n}\n\nfunction createBindingCache( bind ) {\n\tconst cache = new WeakMap();\n\n\treturn {\n\t\tget( item, itemName ) {\n\t\t\tlet boundItem = cache.get( item );\n\t\t\tif ( ! boundItem ) {\n\t\t\t\tboundItem = bind( item, itemName );\n\t\t\t\tcache.set( item, boundItem );\n\t\t\t}\n\t\t\treturn boundItem;\n\t\t},\n\t};\n}\n\n/**\n * Creates a data store descriptor for the provided Redux store configuration containing\n * properties describing reducer, actions, selectors, controls and resolvers.\n *\n * @example\n * ```js\n * import { createReduxStore } from '@wordpress/data';\n *\n * const store = createReduxStore( 'demo', {\n * reducer: ( state = 'OK' ) => state,\n * selectors: {\n * getValue: ( state ) => state,\n * },\n * } );\n * ```\n *\n * @template State\n * @template {Record<string,import('../../types').ActionCreator>} Actions\n * @template Selectors\n * @param {string} key Unique namespace identifier.\n * @param {ReduxStoreConfig<State,Actions,Selectors>} options Registered store options, with properties\n * describing reducer, actions, selectors,\n * and resolvers.\n *\n * @return {StoreDescriptor<ReduxStoreConfig<State,Actions,Selectors>>} Store Object.\n */\nexport default function createReduxStore( key, options ) {\n\tconst privateActions = {};\n\tconst privateSelectors = {};\n\tconst privateRegistrationFunctions = {\n\t\tprivateActions,\n\t\tregisterPrivateActions: ( actions ) => {\n\t\t\tObject.assign( privateActions, actions );\n\t\t},\n\t\tprivateSelectors,\n\t\tregisterPrivateSelectors: ( selectors ) => {\n\t\t\tObject.assign( privateSelectors, selectors );\n\t\t},\n\t};\n\tconst storeDescriptor = {\n\t\tname: key,\n\t\tinstantiate: ( registry ) => {\n\t\t\tconst reducer = options.reducer;\n\t\t\tconst thunkArgs = {\n\t\t\t\tregistry,\n\t\t\t\tget dispatch() {\n\t\t\t\t\treturn thunkActions;\n\t\t\t\t},\n\t\t\t\tget select() {\n\t\t\t\t\treturn thunkSelectors;\n\t\t\t\t},\n\t\t\t\tget resolveSelect() {\n\t\t\t\t\treturn getResolveSelectors();\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst store = instantiateReduxStore(\n\t\t\t\tkey,\n\t\t\t\toptions,\n\t\t\t\tregistry,\n\t\t\t\tthunkArgs\n\t\t\t);\n\t\t\t// Expose the private registration functions on the store\n\t\t\t// so they can be copied to a sub registry in registry.js.\n\t\t\tlock( store, privateRegistrationFunctions );\n\t\t\tconst resolversCache = createResolversCache();\n\n\t\t\tfunction bindAction( action ) {\n\t\t\t\treturn ( ...args ) =>\n\t\t\t\t\tPromise.resolve( store.dispatch( action( ...args ) ) );\n\t\t\t}\n\n\t\t\tconst actions = {\n\t\t\t\t...mapValues( metadataActions, bindAction ),\n\t\t\t\t...mapValues( options.actions, bindAction ),\n\t\t\t};\n\n\t\t\tconst boundPrivateActions = createBindingCache( bindAction );\n\t\t\tconst allActions = new Proxy( () => {}, {\n\t\t\t\tget: ( target, prop ) => {\n\t\t\t\t\tconst privateAction = privateActions[ prop ];\n\t\t\t\t\treturn privateAction\n\t\t\t\t\t\t? boundPrivateActions.get( privateAction, prop )\n\t\t\t\t\t\t: actions[ prop ];\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tconst thunkActions = new Proxy( allActions, {\n\t\t\t\tapply: ( target, thisArg, [ action ] ) =>\n\t\t\t\t\tstore.dispatch( action ),\n\t\t\t} );\n\n\t\t\tlock( actions, allActions );\n\n\t\t\tconst resolvers = options.resolvers\n\t\t\t\t? mapResolvers( options.resolvers )\n\t\t\t\t: {};\n\n\t\t\tfunction bindSelector( selector, selectorName ) {\n\t\t\t\tif ( selector.isRegistrySelector ) {\n\t\t\t\t\tselector.registry = registry;\n\t\t\t\t}\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\treturn selector( state.root, ...args );\n\t\t\t\t};\n\n\t\t\t\tconst resolver = resolvers[ selectorName ];\n\t\t\t\tif ( ! resolver ) {\n\t\t\t\t\tboundSelector.hasResolver = false;\n\t\t\t\t\treturn boundSelector;\n\t\t\t\t}\n\n\t\t\t\treturn mapSelectorWithResolver(\n\t\t\t\t\tboundSelector,\n\t\t\t\t\tselectorName,\n\t\t\t\t\tresolver,\n\t\t\t\t\tstore,\n\t\t\t\t\tresolversCache\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfunction bindMetadataSelector( selector ) {\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\treturn selector( state.metadata, ...args );\n\t\t\t\t};\n\t\t\t\tboundSelector.hasResolver = false;\n\t\t\t\treturn boundSelector;\n\t\t\t}\n\n\t\t\tconst selectors = {\n\t\t\t\t...mapValues( metadataSelectors, bindMetadataSelector ),\n\t\t\t\t...mapValues( options.selectors, bindSelector ),\n\t\t\t};\n\n\t\t\tconst boundPrivateSelectors = createBindingCache( bindSelector );\n\n\t\t\t// Pre-bind the private selectors that have been registered by the time of\n\t\t\t// instantiation, so that registry selectors are bound to the registry.\n\t\t\tfor ( const [ selectorName, selector ] of Object.entries(\n\t\t\t\tprivateSelectors\n\t\t\t) ) {\n\t\t\t\tboundPrivateSelectors.get( selector, selectorName );\n\t\t\t}\n\n\t\t\tconst allSelectors = new Proxy( () => {}, {\n\t\t\t\tget: ( target, prop ) => {\n\t\t\t\t\tconst privateSelector = privateSelectors[ prop ];\n\t\t\t\t\treturn privateSelector\n\t\t\t\t\t\t? boundPrivateSelectors.get( privateSelector, prop )\n\t\t\t\t\t\t: selectors[ prop ];\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tconst thunkSelectors = new Proxy( allSelectors, {\n\t\t\t\tapply: ( target, thisArg, [ selector ] ) =>\n\t\t\t\t\tselector( store.__unstableOriginalGetState() ),\n\t\t\t} );\n\n\t\t\tlock( selectors, allSelectors );\n\n\t\t\tconst resolveSelectors = mapResolveSelectors( selectors, store );\n\t\t\tconst suspendSelectors = mapSuspendSelectors( selectors, store );\n\n\t\t\tconst getSelectors = () => selectors;\n\t\t\tconst getActions = () => actions;\n\t\t\tconst getResolveSelectors = () => resolveSelectors;\n\t\t\tconst getSuspendSelectors = () => suspendSelectors;\n\n\t\t\t// We have some modules monkey-patching the store object\n\t\t\t// It's wrong to do so but until we refactor all of our effects to controls\n\t\t\t// We need to keep the same \"store\" instance here.\n\t\t\tstore.__unstableOriginalGetState = store.getState;\n\t\t\tstore.getState = () => store.__unstableOriginalGetState().root;\n\n\t\t\t// Customize subscribe behavior to call listeners only on effective change,\n\t\t\t// not on every dispatch.\n\t\t\tconst subscribe =\n\t\t\t\tstore &&\n\t\t\t\t( ( listener ) => {\n\t\t\t\t\tlet lastState = store.__unstableOriginalGetState();\n\t\t\t\t\treturn store.subscribe( () => {\n\t\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\t\tconst hasChanged = state !== lastState;\n\t\t\t\t\t\tlastState = state;\n\n\t\t\t\t\t\tif ( hasChanged ) {\n\t\t\t\t\t\t\tlistener();\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t} );\n\n\t\t\t// This can be simplified to just { subscribe, getSelectors, getActions }\n\t\t\t// Once we remove the use function.\n\t\t\treturn {\n\t\t\t\treducer,\n\t\t\t\tstore,\n\t\t\t\tactions,\n\t\t\t\tselectors,\n\t\t\t\tresolvers,\n\t\t\t\tgetSelectors,\n\t\t\t\tgetResolveSelectors,\n\t\t\t\tgetSuspendSelectors,\n\t\t\t\tgetActions,\n\t\t\t\tsubscribe,\n\t\t\t};\n\t\t},\n\t};\n\n\t// Expose the private registration functions on the store\n\t// descriptor. That's a natural choice since that's where the\n\t// public actions and selectors are stored .\n\tlock( storeDescriptor, privateRegistrationFunctions );\n\n\treturn storeDescriptor;\n}\n\n/**\n * Creates a redux store for a namespace.\n *\n * @param {string} key Unique namespace identifier.\n * @param {Object} options Registered store options, with properties\n * describing reducer, actions, selectors,\n * and resolvers.\n * @param {DataRegistry} registry Registry reference.\n * @param {Object} thunkArgs Argument object for the thunk middleware.\n * @return {Object} Newly created redux store.\n */\nfunction instantiateReduxStore( key, options, registry, thunkArgs ) {\n\tconst controls = {\n\t\t...options.controls,\n\t\t...builtinControls,\n\t};\n\n\tconst normalizedControls = mapValues( controls, ( control ) =>\n\t\tcontrol.isRegistryControl ? control( registry ) : control\n\t);\n\n\tconst middlewares = [\n\t\tcreateResolversCacheMiddleware( registry, key ),\n\t\tpromise,\n\t\tcreateReduxRoutineMiddleware( normalizedControls ),\n\t\tcreateThunkMiddleware( thunkArgs ),\n\t];\n\n\tconst enhancers = [ applyMiddleware( ...middlewares ) ];\n\tif (\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.__REDUX_DEVTOOLS_EXTENSION__\n\t) {\n\t\tenhancers.push(\n\t\t\twindow.__REDUX_DEVTOOLS_EXTENSION__( {\n\t\t\t\tname: key,\n\t\t\t\tinstanceId: key,\n\t\t\t\tserialize: {\n\t\t\t\t\treplacer: mapToObject,\n\t\t\t\t},\n\t\t\t} )\n\t\t);\n\t}\n\n\tconst { reducer, initialState } = options;\n\tconst enhancedReducer = combineReducers( {\n\t\tmetadata: metadataReducer,\n\t\troot: reducer,\n\t} );\n\n\treturn createStore(\n\t\tenhancedReducer,\n\t\t{ root: initialState },\n\t\tcompose( enhancers )\n\t);\n}\n\n/**\n * Maps selectors to functions that return a resolution promise for them\n *\n * @param {Object} selectors Selectors to map.\n * @param {Object} store The redux store the selectors select from.\n *\n * @return {Object} Selectors mapped to their resolution functions.\n */\nfunction mapResolveSelectors( selectors, store ) {\n\tconst {\n\t\tgetIsResolving,\n\t\thasStartedResolution,\n\t\thasFinishedResolution,\n\t\thasResolutionFailed,\n\t\tisResolving,\n\t\tgetCachedResolvers,\n\t\tgetResolutionState,\n\t\tgetResolutionError,\n\t\t...storeSelectors\n\t} = selectors;\n\n\treturn mapValues( storeSelectors, ( selector, selectorName ) => {\n\t\t// If the selector doesn't have a resolver, just convert the return value\n\t\t// (including exceptions) to a Promise, no additional extra behavior is needed.\n\t\tif ( ! selector.hasResolver ) {\n\t\t\treturn async ( ...args ) => selector.apply( null, args );\n\t\t}\n\n\t\treturn ( ...args ) => {\n\t\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\t\tconst hasFinished = () =>\n\t\t\t\t\tselectors.hasFinishedResolution( selectorName, args );\n\t\t\t\tconst finalize = ( result ) => {\n\t\t\t\t\tconst hasFailed = selectors.hasResolutionFailed(\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\targs\n\t\t\t\t\t);\n\t\t\t\t\tif ( hasFailed ) {\n\t\t\t\t\t\tconst error = selectors.getResolutionError(\n\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\targs\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject( error );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve( result );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst getResult = () => selector.apply( null, args );\n\t\t\t\t// Trigger the selector (to trigger the resolver)\n\t\t\t\tconst result = getResult();\n\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\treturn finalize( result );\n\t\t\t\t}\n\n\t\t\t\tconst unsubscribe = store.subscribe( () => {\n\t\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t\tfinalize( getResult() );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t} );\n}\n\n/**\n * Maps selectors to functions that throw a suspense promise if not yet resolved.\n *\n * @param {Object} selectors Selectors to map.\n * @param {Object} store The redux store the selectors select from.\n *\n * @return {Object} Selectors mapped to their suspense functions.\n */\nfunction mapSuspendSelectors( selectors, store ) {\n\treturn mapValues( selectors, ( selector, selectorName ) => {\n\t\t// Selector without a resolver doesn't have any extra suspense behavior.\n\t\tif ( ! selector.hasResolver ) {\n\t\t\treturn selector;\n\t\t}\n\n\t\treturn ( ...args ) => {\n\t\t\tconst result = selector.apply( null, args );\n\n\t\t\tif ( selectors.hasFinishedResolution( selectorName, args ) ) {\n\t\t\t\tif ( selectors.hasResolutionFailed( selectorName, args ) ) {\n\t\t\t\t\tthrow selectors.getResolutionError( selectorName, args );\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tthrow new Promise( ( resolve ) => {\n\t\t\t\tconst unsubscribe = store.subscribe( () => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tselectors.hasFinishedResolution( selectorName, args )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t} );\n}\n\n/**\n * Convert resolvers to a normalized form, an object with `fulfill` method and\n * optional methods like `isFulfilled`.\n *\n * @param {Object} resolvers Resolver to convert\n */\nfunction mapResolvers( resolvers ) {\n\treturn mapValues( resolvers, ( resolver ) => {\n\t\tif ( resolver.fulfill ) {\n\t\t\treturn resolver;\n\t\t}\n\n\t\treturn {\n\t\t\t...resolver, // Copy the enumerable properties of the resolver function.\n\t\t\tfulfill: resolver, // Add the fulfill method.\n\t\t};\n\t} );\n}\n\n/**\n * Returns a selector with a matched resolver.\n * Resolvers are side effects invoked once per argument set of a given selector call,\n * used in ensuring that the data needs for the selector are satisfied.\n *\n * @param {Object} selector The selector function to be bound.\n * @param {string} selectorName The selector name.\n * @param {Object} resolver Resolver to call.\n * @param {Object} store The redux store to which the resolvers should be mapped.\n * @param {Object} resolversCache Resolvers Cache.\n */\nfunction mapSelectorWithResolver(\n\tselector,\n\tselectorName,\n\tresolver,\n\tstore,\n\tresolversCache\n) {\n\tfunction fulfillSelector( args ) {\n\t\tconst state = store.getState();\n\n\t\tif (\n\t\t\tresolversCache.isRunning( selectorName, args ) ||\n\t\t\t( typeof resolver.isFulfilled === 'function' &&\n\t\t\t\tresolver.isFulfilled( state, ...args ) )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { metadata } = store.__unstableOriginalGetState();\n\n\t\tif (\n\t\t\tmetadataSelectors.hasStartedResolution(\n\t\t\t\tmetadata,\n\t\t\t\tselectorName,\n\t\t\t\targs\n\t\t\t)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tresolversCache.markAsRunning( selectorName, args );\n\n\t\tsetTimeout( async () => {\n\t\t\tresolversCache.clear( selectorName, args );\n\t\t\tstore.dispatch(\n\t\t\t\tmetadataActions.startResolution( selectorName, args )\n\t\t\t);\n\t\t\ttry {\n\t\t\t\tconst action = resolver.fulfill( ...args );\n\t\t\t\tif ( action ) {\n\t\t\t\t\tawait store.dispatch( action );\n\t\t\t\t}\n\t\t\t\tstore.dispatch(\n\t\t\t\t\tmetadataActions.finishResolution( selectorName, args )\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tstore.dispatch(\n\t\t\t\t\tmetadataActions.failResolution( selectorName, args, error )\n\t\t\t\t);\n\t\t\t}\n\t\t}, 0 );\n\t}\n\n\tconst selectorResolver = ( ...args ) => {\n\t\tfulfillSelector( args );\n\t\treturn selector( ...args );\n\t};\n\tselectorResolver.hasResolver = true;\n\treturn selectorResolver;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/data/src/redux-store/index.js"],"names":["createStore","applyMiddleware","combineReducers","EquivalentKeyMap","createReduxRoutineMiddleware","compose","builtinControls","lock","promise","createResolversCacheMiddleware","createThunkMiddleware","metadataReducer","metadataSelectors","metadataActions","trimUndefinedValues","array","result","i","length","undefined","splice","mapValues","obj","callback","Object","fromEntries","entries","map","key","value","mapToObject","state","Map","createResolversCache","cache","isRunning","selectorName","args","get","clear","delete","markAsRunning","set","createBindingCache","bind","WeakMap","item","itemName","boundItem","createReduxStore","options","privateActions","privateSelectors","privateRegistrationFunctions","registerPrivateActions","actions","assign","registerPrivateSelectors","selectors","storeDescriptor","name","instantiate","registry","listeners","Set","reducer","thunkArgs","dispatch","thunkActions","select","thunkSelectors","resolveSelect","getResolveSelectors","store","instantiateReduxStore","resolversCache","bindAction","action","Promise","resolve","boundPrivateActions","allActions","Proxy","target","prop","privateAction","apply","thisArg","resolvers","mapResolvers","bindSelector","selector","isRegistrySelector","boundSelector","__unstableOriginalGetState","root","resolver","hasResolver","mapSelectorWithResolver","bindMetadataSelector","metadata","boundPrivateSelectors","allSelectors","privateSelector","resolveSelectors","mapResolveSelectors","suspendSelectors","mapSuspendSelectors","getSelectors","getActions","getSuspendSelectors","getState","subscribe","listener","add","lastState","hasChanged","controls","normalizedControls","control","isRegistryControl","middlewares","enhancers","window","__REDUX_DEVTOOLS_EXTENSION__","push","instanceId","serialize","replacer","initialState","enhancedReducer","getIsResolving","hasStartedResolution","hasFinishedResolution","hasResolutionFailed","isResolving","getCachedResolvers","getResolutionState","getResolutionError","hasResolvingSelectors","storeSelectors","reject","hasFinished","finalize","hasFailed","error","getResult","unsubscribe","fulfill","fulfillSelector","isFulfilled","setTimeout","startResolution","finishResolution","failResolution","selectorResolver"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { createStore, applyMiddleware } from 'redux';\nimport combineReducers from 'turbo-combine-reducers';\nimport EquivalentKeyMap from 'equivalent-key-map';\n\n/**\n * WordPress dependencies\n */\nimport createReduxRoutineMiddleware from '@wordpress/redux-routine';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport { builtinControls } from '../controls';\nimport { lock } from '../lock-unlock';\nimport promise from '../promise-middleware';\nimport createResolversCacheMiddleware from '../resolvers-cache-middleware';\nimport createThunkMiddleware from './thunk-middleware';\nimport metadataReducer from './metadata/reducer';\nimport * as metadataSelectors from './metadata/selectors';\nimport * as metadataActions from './metadata/actions';\n\n/** @typedef {import('../types').DataRegistry} DataRegistry */\n/** @typedef {import('../types').ListenerFunction} ListenerFunction */\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\nconst trimUndefinedValues = ( array ) => {\n\tconst result = [ ...array ];\n\tfor ( let i = result.length - 1; i >= 0; i-- ) {\n\t\tif ( result[ i ] === undefined ) {\n\t\t\tresult.splice( i, 1 );\n\t\t}\n\t}\n\treturn result;\n};\n\n/**\n * Creates a new object with the same keys, but with `callback()` called as\n * a transformer function on each of the values.\n *\n * @param {Object} obj The object to transform.\n * @param {Function} callback The function to transform each object value.\n * @return {Array} Transformed object.\n */\nconst mapValues = ( obj, callback ) =>\n\tObject.fromEntries(\n\t\tObject.entries( obj ?? {} ).map( ( [ key, value ] ) => [\n\t\t\tkey,\n\t\t\tcallback( value, key ),\n\t\t] )\n\t);\n\n// Convert Map objects to plain objects\nconst mapToObject = ( key, state ) => {\n\tif ( state instanceof Map ) {\n\t\treturn Object.fromEntries( state );\n\t}\n\n\treturn state;\n};\n\n/**\n * Create a cache to track whether resolvers started running or not.\n *\n * @return {Object} Resolvers Cache.\n */\nfunction createResolversCache() {\n\tconst cache = {};\n\treturn {\n\t\tisRunning( selectorName, args ) {\n\t\t\treturn (\n\t\t\t\tcache[ selectorName ] &&\n\t\t\t\tcache[ selectorName ].get( trimUndefinedValues( args ) )\n\t\t\t);\n\t\t},\n\n\t\tclear( selectorName, args ) {\n\t\t\tif ( cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ].delete( trimUndefinedValues( args ) );\n\t\t\t}\n\t\t},\n\n\t\tmarkAsRunning( selectorName, args ) {\n\t\t\tif ( ! cache[ selectorName ] ) {\n\t\t\t\tcache[ selectorName ] = new EquivalentKeyMap();\n\t\t\t}\n\n\t\t\tcache[ selectorName ].set( trimUndefinedValues( args ), true );\n\t\t},\n\t};\n}\n\nfunction createBindingCache( bind ) {\n\tconst cache = new WeakMap();\n\n\treturn {\n\t\tget( item, itemName ) {\n\t\t\tlet boundItem = cache.get( item );\n\t\t\tif ( ! boundItem ) {\n\t\t\t\tboundItem = bind( item, itemName );\n\t\t\t\tcache.set( item, boundItem );\n\t\t\t}\n\t\t\treturn boundItem;\n\t\t},\n\t};\n}\n\n/**\n * Creates a data store descriptor for the provided Redux store configuration containing\n * properties describing reducer, actions, selectors, controls and resolvers.\n *\n * @example\n * ```js\n * import { createReduxStore } from '@wordpress/data';\n *\n * const store = createReduxStore( 'demo', {\n * reducer: ( state = 'OK' ) => state,\n * selectors: {\n * getValue: ( state ) => state,\n * },\n * } );\n * ```\n *\n * @template State\n * @template {Record<string,import('../../types').ActionCreator>} Actions\n * @template Selectors\n * @param {string} key Unique namespace identifier.\n * @param {ReduxStoreConfig<State,Actions,Selectors>} options Registered store options, with properties\n * describing reducer, actions, selectors,\n * and resolvers.\n *\n * @return {StoreDescriptor<ReduxStoreConfig<State,Actions,Selectors>>} Store Object.\n */\nexport default function createReduxStore( key, options ) {\n\tconst privateActions = {};\n\tconst privateSelectors = {};\n\tconst privateRegistrationFunctions = {\n\t\tprivateActions,\n\t\tregisterPrivateActions: ( actions ) => {\n\t\t\tObject.assign( privateActions, actions );\n\t\t},\n\t\tprivateSelectors,\n\t\tregisterPrivateSelectors: ( selectors ) => {\n\t\t\tObject.assign( privateSelectors, selectors );\n\t\t},\n\t};\n\tconst storeDescriptor = {\n\t\tname: key,\n\t\tinstantiate: ( registry ) => {\n\t\t\t/**\n\t\t\t * Stores listener functions registered with `subscribe()`.\n\t\t\t *\n\t\t\t * When functions register to listen to store changes with\n\t\t\t * `subscribe()` they get added here. Although Redux offers\n\t\t\t * its own `subscribe()` function directly, by wrapping the\n\t\t\t * subscription in this store instance it's possible to\n\t\t\t * optimize checking if the state has changed before calling\n\t\t\t * each listener.\n\t\t\t *\n\t\t\t * @type {Set<ListenerFunction>}\n\t\t\t */\n\t\t\tconst listeners = new Set();\n\t\t\tconst reducer = options.reducer;\n\t\t\tconst thunkArgs = {\n\t\t\t\tregistry,\n\t\t\t\tget dispatch() {\n\t\t\t\t\treturn thunkActions;\n\t\t\t\t},\n\t\t\t\tget select() {\n\t\t\t\t\treturn thunkSelectors;\n\t\t\t\t},\n\t\t\t\tget resolveSelect() {\n\t\t\t\t\treturn getResolveSelectors();\n\t\t\t\t},\n\t\t\t};\n\n\t\t\tconst store = instantiateReduxStore(\n\t\t\t\tkey,\n\t\t\t\toptions,\n\t\t\t\tregistry,\n\t\t\t\tthunkArgs\n\t\t\t);\n\t\t\t// Expose the private registration functions on the store\n\t\t\t// so they can be copied to a sub registry in registry.js.\n\t\t\tlock( store, privateRegistrationFunctions );\n\t\t\tconst resolversCache = createResolversCache();\n\n\t\t\tfunction bindAction( action ) {\n\t\t\t\treturn ( ...args ) =>\n\t\t\t\t\tPromise.resolve( store.dispatch( action( ...args ) ) );\n\t\t\t}\n\n\t\t\tconst actions = {\n\t\t\t\t...mapValues( metadataActions, bindAction ),\n\t\t\t\t...mapValues( options.actions, bindAction ),\n\t\t\t};\n\n\t\t\tconst boundPrivateActions = createBindingCache( bindAction );\n\t\t\tconst allActions = new Proxy( () => {}, {\n\t\t\t\tget: ( target, prop ) => {\n\t\t\t\t\tconst privateAction = privateActions[ prop ];\n\t\t\t\t\treturn privateAction\n\t\t\t\t\t\t? boundPrivateActions.get( privateAction, prop )\n\t\t\t\t\t\t: actions[ prop ];\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tconst thunkActions = new Proxy( allActions, {\n\t\t\t\tapply: ( target, thisArg, [ action ] ) =>\n\t\t\t\t\tstore.dispatch( action ),\n\t\t\t} );\n\n\t\t\tlock( actions, allActions );\n\n\t\t\tconst resolvers = options.resolvers\n\t\t\t\t? mapResolvers( options.resolvers )\n\t\t\t\t: {};\n\n\t\t\tfunction bindSelector( selector, selectorName ) {\n\t\t\t\tif ( selector.isRegistrySelector ) {\n\t\t\t\t\tselector.registry = registry;\n\t\t\t\t}\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\treturn selector( state.root, ...args );\n\t\t\t\t};\n\n\t\t\t\tconst resolver = resolvers[ selectorName ];\n\t\t\t\tif ( ! resolver ) {\n\t\t\t\t\tboundSelector.hasResolver = false;\n\t\t\t\t\treturn boundSelector;\n\t\t\t\t}\n\n\t\t\t\treturn mapSelectorWithResolver(\n\t\t\t\t\tboundSelector,\n\t\t\t\t\tselectorName,\n\t\t\t\t\tresolver,\n\t\t\t\t\tstore,\n\t\t\t\t\tresolversCache\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tfunction bindMetadataSelector( selector ) {\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\treturn selector( state.metadata, ...args );\n\t\t\t\t};\n\t\t\t\tboundSelector.hasResolver = false;\n\t\t\t\treturn boundSelector;\n\t\t\t}\n\n\t\t\tconst selectors = {\n\t\t\t\t...mapValues( metadataSelectors, bindMetadataSelector ),\n\t\t\t\t...mapValues( options.selectors, bindSelector ),\n\t\t\t};\n\n\t\t\tconst boundPrivateSelectors = createBindingCache( bindSelector );\n\n\t\t\t// Pre-bind the private selectors that have been registered by the time of\n\t\t\t// instantiation, so that registry selectors are bound to the registry.\n\t\t\tfor ( const [ selectorName, selector ] of Object.entries(\n\t\t\t\tprivateSelectors\n\t\t\t) ) {\n\t\t\t\tboundPrivateSelectors.get( selector, selectorName );\n\t\t\t}\n\n\t\t\tconst allSelectors = new Proxy( () => {}, {\n\t\t\t\tget: ( target, prop ) => {\n\t\t\t\t\tconst privateSelector = privateSelectors[ prop ];\n\t\t\t\t\treturn privateSelector\n\t\t\t\t\t\t? boundPrivateSelectors.get( privateSelector, prop )\n\t\t\t\t\t\t: selectors[ prop ];\n\t\t\t\t},\n\t\t\t} );\n\n\t\t\tconst thunkSelectors = new Proxy( allSelectors, {\n\t\t\t\tapply: ( target, thisArg, [ selector ] ) =>\n\t\t\t\t\tselector( store.__unstableOriginalGetState() ),\n\t\t\t} );\n\n\t\t\tlock( selectors, allSelectors );\n\n\t\t\tconst resolveSelectors = mapResolveSelectors( selectors, store );\n\t\t\tconst suspendSelectors = mapSuspendSelectors( selectors, store );\n\n\t\t\tconst getSelectors = () => selectors;\n\t\t\tconst getActions = () => actions;\n\t\t\tconst getResolveSelectors = () => resolveSelectors;\n\t\t\tconst getSuspendSelectors = () => suspendSelectors;\n\n\t\t\t// We have some modules monkey-patching the store object\n\t\t\t// It's wrong to do so but until we refactor all of our effects to controls\n\t\t\t// We need to keep the same \"store\" instance here.\n\t\t\tstore.__unstableOriginalGetState = store.getState;\n\t\t\tstore.getState = () => store.__unstableOriginalGetState().root;\n\n\t\t\t// Customize subscribe behavior to call listeners only on effective change,\n\t\t\t// not on every dispatch.\n\t\t\tconst subscribe =\n\t\t\t\tstore &&\n\t\t\t\t( ( listener ) => {\n\t\t\t\t\tlisteners.add( listener );\n\n\t\t\t\t\treturn () => listeners.delete( listener );\n\t\t\t\t} );\n\n\t\t\tlet lastState = store.__unstableOriginalGetState();\n\t\t\tstore.subscribe( () => {\n\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\tconst hasChanged = state !== lastState;\n\t\t\t\tlastState = state;\n\n\t\t\t\tif ( hasChanged ) {\n\t\t\t\t\tfor ( const listener of listeners ) {\n\t\t\t\t\t\tlistener();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} );\n\n\t\t\t// This can be simplified to just { subscribe, getSelectors, getActions }\n\t\t\t// Once we remove the use function.\n\t\t\treturn {\n\t\t\t\treducer,\n\t\t\t\tstore,\n\t\t\t\tactions,\n\t\t\t\tselectors,\n\t\t\t\tresolvers,\n\t\t\t\tgetSelectors,\n\t\t\t\tgetResolveSelectors,\n\t\t\t\tgetSuspendSelectors,\n\t\t\t\tgetActions,\n\t\t\t\tsubscribe,\n\t\t\t};\n\t\t},\n\t};\n\n\t// Expose the private registration functions on the store\n\t// descriptor. That's a natural choice since that's where the\n\t// public actions and selectors are stored .\n\tlock( storeDescriptor, privateRegistrationFunctions );\n\n\treturn storeDescriptor;\n}\n\n/**\n * Creates a redux store for a namespace.\n *\n * @param {string} key Unique namespace identifier.\n * @param {Object} options Registered store options, with properties\n * describing reducer, actions, selectors,\n * and resolvers.\n * @param {DataRegistry} registry Registry reference.\n * @param {Object} thunkArgs Argument object for the thunk middleware.\n * @return {Object} Newly created redux store.\n */\nfunction instantiateReduxStore( key, options, registry, thunkArgs ) {\n\tconst controls = {\n\t\t...options.controls,\n\t\t...builtinControls,\n\t};\n\n\tconst normalizedControls = mapValues( controls, ( control ) =>\n\t\tcontrol.isRegistryControl ? control( registry ) : control\n\t);\n\n\tconst middlewares = [\n\t\tcreateResolversCacheMiddleware( registry, key ),\n\t\tpromise,\n\t\tcreateReduxRoutineMiddleware( normalizedControls ),\n\t\tcreateThunkMiddleware( thunkArgs ),\n\t];\n\n\tconst enhancers = [ applyMiddleware( ...middlewares ) ];\n\tif (\n\t\ttypeof window !== 'undefined' &&\n\t\twindow.__REDUX_DEVTOOLS_EXTENSION__\n\t) {\n\t\tenhancers.push(\n\t\t\twindow.__REDUX_DEVTOOLS_EXTENSION__( {\n\t\t\t\tname: key,\n\t\t\t\tinstanceId: key,\n\t\t\t\tserialize: {\n\t\t\t\t\treplacer: mapToObject,\n\t\t\t\t},\n\t\t\t} )\n\t\t);\n\t}\n\n\tconst { reducer, initialState } = options;\n\tconst enhancedReducer = combineReducers( {\n\t\tmetadata: metadataReducer,\n\t\troot: reducer,\n\t} );\n\n\treturn createStore(\n\t\tenhancedReducer,\n\t\t{ root: initialState },\n\t\tcompose( enhancers )\n\t);\n}\n\n/**\n * Maps selectors to functions that return a resolution promise for them\n *\n * @param {Object} selectors Selectors to map.\n * @param {Object} store The redux store the selectors select from.\n *\n * @return {Object} Selectors mapped to their resolution functions.\n */\nfunction mapResolveSelectors( selectors, store ) {\n\tconst {\n\t\tgetIsResolving,\n\t\thasStartedResolution,\n\t\thasFinishedResolution,\n\t\thasResolutionFailed,\n\t\tisResolving,\n\t\tgetCachedResolvers,\n\t\tgetResolutionState,\n\t\tgetResolutionError,\n\t\thasResolvingSelectors,\n\t\t...storeSelectors\n\t} = selectors;\n\n\treturn mapValues( storeSelectors, ( selector, selectorName ) => {\n\t\t// If the selector doesn't have a resolver, just convert the return value\n\t\t// (including exceptions) to a Promise, no additional extra behavior is needed.\n\t\tif ( ! selector.hasResolver ) {\n\t\t\treturn async ( ...args ) => selector.apply( null, args );\n\t\t}\n\n\t\treturn ( ...args ) => {\n\t\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\t\tconst hasFinished = () =>\n\t\t\t\t\tselectors.hasFinishedResolution( selectorName, args );\n\t\t\t\tconst finalize = ( result ) => {\n\t\t\t\t\tconst hasFailed = selectors.hasResolutionFailed(\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\targs\n\t\t\t\t\t);\n\t\t\t\t\tif ( hasFailed ) {\n\t\t\t\t\t\tconst error = selectors.getResolutionError(\n\t\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\t\targs\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject( error );\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve( result );\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst getResult = () => selector.apply( null, args );\n\t\t\t\t// Trigger the selector (to trigger the resolver)\n\t\t\t\tconst result = getResult();\n\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\treturn finalize( result );\n\t\t\t\t}\n\n\t\t\t\tconst unsubscribe = store.subscribe( () => {\n\t\t\t\t\tif ( hasFinished() ) {\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t\tfinalize( getResult() );\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t} );\n}\n\n/**\n * Maps selectors to functions that throw a suspense promise if not yet resolved.\n *\n * @param {Object} selectors Selectors to map.\n * @param {Object} store The redux store the selectors select from.\n *\n * @return {Object} Selectors mapped to their suspense functions.\n */\nfunction mapSuspendSelectors( selectors, store ) {\n\treturn mapValues( selectors, ( selector, selectorName ) => {\n\t\t// Selector without a resolver doesn't have any extra suspense behavior.\n\t\tif ( ! selector.hasResolver ) {\n\t\t\treturn selector;\n\t\t}\n\n\t\treturn ( ...args ) => {\n\t\t\tconst result = selector.apply( null, args );\n\n\t\t\tif ( selectors.hasFinishedResolution( selectorName, args ) ) {\n\t\t\t\tif ( selectors.hasResolutionFailed( selectorName, args ) ) {\n\t\t\t\t\tthrow selectors.getResolutionError( selectorName, args );\n\t\t\t\t}\n\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tthrow new Promise( ( resolve ) => {\n\t\t\t\tconst unsubscribe = store.subscribe( () => {\n\t\t\t\t\tif (\n\t\t\t\t\t\tselectors.hasFinishedResolution( selectorName, args )\n\t\t\t\t\t) {\n\t\t\t\t\t\tresolve();\n\t\t\t\t\t\tunsubscribe();\n\t\t\t\t\t}\n\t\t\t\t} );\n\t\t\t} );\n\t\t};\n\t} );\n}\n\n/**\n * Convert resolvers to a normalized form, an object with `fulfill` method and\n * optional methods like `isFulfilled`.\n *\n * @param {Object} resolvers Resolver to convert\n */\nfunction mapResolvers( resolvers ) {\n\treturn mapValues( resolvers, ( resolver ) => {\n\t\tif ( resolver.fulfill ) {\n\t\t\treturn resolver;\n\t\t}\n\n\t\treturn {\n\t\t\t...resolver, // Copy the enumerable properties of the resolver function.\n\t\t\tfulfill: resolver, // Add the fulfill method.\n\t\t};\n\t} );\n}\n\n/**\n * Returns a selector with a matched resolver.\n * Resolvers are side effects invoked once per argument set of a given selector call,\n * used in ensuring that the data needs for the selector are satisfied.\n *\n * @param {Object} selector The selector function to be bound.\n * @param {string} selectorName The selector name.\n * @param {Object} resolver Resolver to call.\n * @param {Object} store The redux store to which the resolvers should be mapped.\n * @param {Object} resolversCache Resolvers Cache.\n */\nfunction mapSelectorWithResolver(\n\tselector,\n\tselectorName,\n\tresolver,\n\tstore,\n\tresolversCache\n) {\n\tfunction fulfillSelector( args ) {\n\t\tconst state = store.getState();\n\n\t\tif (\n\t\t\tresolversCache.isRunning( selectorName, args ) ||\n\t\t\t( typeof resolver.isFulfilled === 'function' &&\n\t\t\t\tresolver.isFulfilled( state, ...args ) )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { metadata } = store.__unstableOriginalGetState();\n\n\t\tif (\n\t\t\tmetadataSelectors.hasStartedResolution(\n\t\t\t\tmetadata,\n\t\t\t\tselectorName,\n\t\t\t\targs\n\t\t\t)\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tresolversCache.markAsRunning( selectorName, args );\n\n\t\tsetTimeout( async () => {\n\t\t\tresolversCache.clear( selectorName, args );\n\t\t\tstore.dispatch(\n\t\t\t\tmetadataActions.startResolution( selectorName, args )\n\t\t\t);\n\t\t\ttry {\n\t\t\t\tconst action = resolver.fulfill( ...args );\n\t\t\t\tif ( action ) {\n\t\t\t\t\tawait store.dispatch( action );\n\t\t\t\t}\n\t\t\t\tstore.dispatch(\n\t\t\t\t\tmetadataActions.finishResolution( selectorName, args )\n\t\t\t\t);\n\t\t\t} catch ( error ) {\n\t\t\t\tstore.dispatch(\n\t\t\t\t\tmetadataActions.failResolution( selectorName, args, error )\n\t\t\t\t);\n\t\t\t}\n\t\t}, 0 );\n\t}\n\n\tconst selectorResolver = ( ...args ) => {\n\t\tfulfillSelector( args );\n\t\treturn selector( ...args );\n\t};\n\tselectorResolver.hasResolver = true;\n\treturn selectorResolver;\n}\n"]}
@@ -317,6 +317,12 @@ export function createRegistry(storeConfigs = {}, parent = null) {
317
317
  }
318
318
 
319
319
  function batch(callback) {
320
+ // If we're already batching, just call the callback.
321
+ if (emitter.isPaused) {
322
+ callback();
323
+ return;
324
+ }
325
+
320
326
  emitter.pause();
321
327
  Object.values(stores).forEach(store => store.emitter.pause());
322
328
  callback();
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/data/src/registry.js"],"names":["deprecated","createReduxStore","coreDataStore","createEmitter","lock","unlock","getStoreName","storeNameOrDescriptor","name","createRegistry","storeConfigs","parent","stores","emitter","listeningStores","globalListener","emit","subscribe","listener","storeName","store","select","add","getSelectors","__unstableMarkListeningStores","callback","ref","Set","call","current","Array","from","resolveSelect","getResolveSelectors","suspendSelect","getSuspendSelectors","dispatch","getActions","withPlugins","attributes","Object","fromEntries","entries","map","key","attribute","registry","apply","arguments","registerStoreInstance","createStore","console","error","TypeError","currentSubscribe","unsubscribeFromEmitter","unsubscribeFromStore","isPaused","registerPrivateActions","privateActionsOf","registerPrivateSelectors","privateSelectorsOf","e","register","instantiate","registerGenericStore","since","alternative","registerStore","options","reducer","batch","pause","values","forEach","resume","namespaces","use","plugin","config","registryWithPlugins","privateActions","privateSelectors"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport createReduxStore from './redux-store';\nimport coreDataStore from './store';\nimport { createEmitter } from './utils/emitter';\nimport { lock, unlock } from './lock-unlock';\n\n/** @typedef {import('./types').StoreDescriptor} StoreDescriptor */\n\n/**\n * @typedef {Object} WPDataRegistry An isolated orchestrator of store registrations.\n *\n * @property {Function} registerGenericStore Given a namespace key and settings\n * object, registers a new generic\n * store.\n * @property {Function} registerStore Given a namespace key and settings\n * object, registers a new namespace\n * store.\n * @property {Function} subscribe Given a function callback, invokes\n * the callback on any change to state\n * within any registered store.\n * @property {Function} select Given a namespace key, returns an\n * object of the store's registered\n * selectors.\n * @property {Function} dispatch Given a namespace key, returns an\n * object of the store's registered\n * action dispatchers.\n */\n\n/**\n * @typedef {Object} WPDataPlugin An object of registry function overrides.\n *\n * @property {Function} registerStore registers store.\n */\n\nfunction getStoreName( storeNameOrDescriptor ) {\n\treturn typeof storeNameOrDescriptor === 'string'\n\t\t? storeNameOrDescriptor\n\t\t: storeNameOrDescriptor.name;\n}\n/**\n * Creates a new store registry, given an optional object of initial store\n * configurations.\n *\n * @param {Object} storeConfigs Initial store configurations.\n * @param {Object?} parent Parent registry.\n *\n * @return {WPDataRegistry} Data registry.\n */\nexport function createRegistry( storeConfigs = {}, parent = null ) {\n\tconst stores = {};\n\tconst emitter = createEmitter();\n\tlet listeningStores = null;\n\n\t/**\n\t * Global listener called for each store's update.\n\t */\n\tfunction globalListener() {\n\t\temitter.emit();\n\t}\n\n\t/**\n\t * Subscribe to changes to any data, either in all stores in registry, or\n\t * in one specific store.\n\t *\n\t * @param {Function} listener Listener function.\n\t * @param {string|StoreDescriptor?} storeNameOrDescriptor Optional store name.\n\t *\n\t * @return {Function} Unsubscribe function.\n\t */\n\tconst subscribe = ( listener, storeNameOrDescriptor ) => {\n\t\t// subscribe to all stores\n\t\tif ( ! storeNameOrDescriptor ) {\n\t\t\treturn emitter.subscribe( listener );\n\t\t}\n\n\t\t// subscribe to one store\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.subscribe( listener );\n\t\t}\n\n\t\t// Trying to access a store that hasn't been registered,\n\t\t// this is a pattern rarely used but seen in some places.\n\t\t// We fallback to global `subscribe` here for backward-compatibility for now.\n\t\t// See https://github.com/WordPress/gutenberg/pull/27466 for more info.\n\t\tif ( ! parent ) {\n\t\t\treturn emitter.subscribe( listener );\n\t\t}\n\n\t\treturn parent.subscribe( listener, storeNameOrDescriptor );\n\t};\n\n\t/**\n\t * Calls a selector given the current state and extra arguments.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t * or the store descriptor.\n\t *\n\t * @return {*} The selector's returned value.\n\t */\n\tfunction select( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getSelectors();\n\t\t}\n\n\t\treturn parent?.select( storeName );\n\t}\n\n\tfunction __unstableMarkListeningStores( callback, ref ) {\n\t\tlisteningStores = new Set();\n\t\ttry {\n\t\t\treturn callback.call( this );\n\t\t} finally {\n\t\t\tref.current = Array.from( listeningStores );\n\t\t\tlisteningStores = null;\n\t\t}\n\t}\n\n\t/**\n\t * Given a store descriptor, returns an object containing the store's selectors pre-bound to\n\t * state so that you only need to supply additional arguments, and modified so that they return\n\t * promises that resolve to their eventual values, after any resolvers have ran.\n\t *\n\t * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n\t * convention of passing the store name is\n\t * also supported.\n\t *\n\t * @return {Object} Each key of the object matches the name of a selector.\n\t */\n\tfunction resolveSelect( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getResolveSelectors();\n\t\t}\n\n\t\treturn parent && parent.resolveSelect( storeName );\n\t}\n\n\t/**\n\t * Given a store descriptor, returns an object containing the store's selectors pre-bound to\n\t * state so that you only need to supply additional arguments, and modified so that they throw\n\t * promises in case the selector is not resolved yet.\n\t *\n\t * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n\t * convention of passing the store name is\n\t * also supported.\n\t *\n\t * @return {Object} Object containing the store's suspense-wrapped selectors.\n\t */\n\tfunction suspendSelect( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getSuspendSelectors();\n\t\t}\n\n\t\treturn parent && parent.suspendSelect( storeName );\n\t}\n\n\t/**\n\t * Returns the available actions for a part of the state.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t * or the store descriptor.\n\t *\n\t * @return {*} The action's returned value.\n\t */\n\tfunction dispatch( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getActions();\n\t\t}\n\n\t\treturn parent && parent.dispatch( storeName );\n\t}\n\n\t//\n\t// Deprecated\n\t// TODO: Remove this after `use()` is removed.\n\tfunction withPlugins( attributes ) {\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries( attributes ).map( ( [ key, attribute ] ) => {\n\t\t\t\tif ( typeof attribute !== 'function' ) {\n\t\t\t\t\treturn [ key, attribute ];\n\t\t\t\t}\n\t\t\t\treturn [\n\t\t\t\t\tkey,\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\treturn registry[ key ].apply( null, arguments );\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t} )\n\t\t);\n\t}\n\n\t/**\n\t * Registers a store instance.\n\t *\n\t * @param {string} name Store registry name.\n\t * @param {Function} createStore Function that creates a store object (getSelectors, getActions, subscribe).\n\t */\n\tfunction registerStoreInstance( name, createStore ) {\n\t\tif ( stores[ name ] ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( 'Store \"' + name + '\" is already registered.' );\n\t\t\treturn stores[ name ];\n\t\t}\n\n\t\tconst store = createStore();\n\n\t\tif ( typeof store.getSelectors !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getSelectors must be a function' );\n\t\t}\n\t\tif ( typeof store.getActions !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getActions must be a function' );\n\t\t}\n\t\tif ( typeof store.subscribe !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.subscribe must be a function' );\n\t\t}\n\t\t// The emitter is used to keep track of active listeners when the registry\n\t\t// get paused, that way, when resumed we should be able to call all these\n\t\t// pending listeners.\n\t\tstore.emitter = createEmitter();\n\t\tconst currentSubscribe = store.subscribe;\n\t\tstore.subscribe = ( listener ) => {\n\t\t\tconst unsubscribeFromEmitter = store.emitter.subscribe( listener );\n\t\t\tconst unsubscribeFromStore = currentSubscribe( () => {\n\t\t\t\tif ( store.emitter.isPaused ) {\n\t\t\t\t\tstore.emitter.emit();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlistener();\n\t\t\t} );\n\n\t\t\treturn () => {\n\t\t\t\tunsubscribeFromStore?.();\n\t\t\t\tunsubscribeFromEmitter?.();\n\t\t\t};\n\t\t};\n\t\tstores[ name ] = store;\n\t\tstore.subscribe( globalListener );\n\n\t\t// Copy private actions and selectors from the parent store.\n\t\tif ( parent ) {\n\t\t\ttry {\n\t\t\t\tunlock( store.store ).registerPrivateActions(\n\t\t\t\t\tunlock( parent ).privateActionsOf( name )\n\t\t\t\t);\n\t\t\t\tunlock( store.store ).registerPrivateSelectors(\n\t\t\t\t\tunlock( parent ).privateSelectorsOf( name )\n\t\t\t\t);\n\t\t\t} catch ( e ) {\n\t\t\t\t// unlock() throws if store.store was not locked.\n\t\t\t\t// The error indicates there's nothing to do here so let's\n\t\t\t\t// ignore it.\n\t\t\t}\n\t\t}\n\n\t\treturn store;\n\t}\n\n\t/**\n\t * Registers a new store given a store descriptor.\n\t *\n\t * @param {StoreDescriptor} store Store descriptor.\n\t */\n\tfunction register( store ) {\n\t\tregisterStoreInstance( store.name, () =>\n\t\t\tstore.instantiate( registry )\n\t\t);\n\t}\n\n\tfunction registerGenericStore( name, store ) {\n\t\tdeprecated( 'wp.data.registerGenericStore', {\n\t\t\tsince: '5.9',\n\t\t\talternative: 'wp.data.register( storeDescriptor )',\n\t\t} );\n\t\tregisterStoreInstance( name, () => store );\n\t}\n\n\t/**\n\t * Registers a standard `@wordpress/data` store.\n\t *\n\t * @param {string} storeName Unique namespace identifier.\n\t * @param {Object} options Store description (reducer, actions, selectors, resolvers).\n\t *\n\t * @return {Object} Registered store object.\n\t */\n\tfunction registerStore( storeName, options ) {\n\t\tif ( ! options.reducer ) {\n\t\t\tthrow new TypeError( 'Must specify store reducer' );\n\t\t}\n\n\t\tconst store = registerStoreInstance( storeName, () =>\n\t\t\tcreateReduxStore( storeName, options ).instantiate( registry )\n\t\t);\n\n\t\treturn store.store;\n\t}\n\n\tfunction batch( callback ) {\n\t\temitter.pause();\n\t\tObject.values( stores ).forEach( ( store ) => store.emitter.pause() );\n\t\tcallback();\n\t\temitter.resume();\n\t\tObject.values( stores ).forEach( ( store ) => store.emitter.resume() );\n\t}\n\n\tlet registry = {\n\t\tbatch,\n\t\tstores,\n\t\tnamespaces: stores, // TODO: Deprecate/remove this.\n\t\tsubscribe,\n\t\tselect,\n\t\tresolveSelect,\n\t\tsuspendSelect,\n\t\tdispatch,\n\t\tuse,\n\t\tregister,\n\t\tregisterGenericStore,\n\t\tregisterStore,\n\t\t__unstableMarkListeningStores,\n\t};\n\n\t//\n\t// TODO:\n\t// This function will be deprecated as soon as it is no longer internally referenced.\n\tfunction use( plugin, options ) {\n\t\tif ( ! plugin ) {\n\t\t\treturn;\n\t\t}\n\n\t\tregistry = {\n\t\t\t...registry,\n\t\t\t...plugin( registry, options ),\n\t\t};\n\n\t\treturn registry;\n\t}\n\n\tregistry.register( coreDataStore );\n\n\tfor ( const [ name, config ] of Object.entries( storeConfigs ) ) {\n\t\tregistry.register( createReduxStore( name, config ) );\n\t}\n\n\tif ( parent ) {\n\t\tparent.subscribe( globalListener );\n\t}\n\n\tconst registryWithPlugins = withPlugins( registry );\n\tlock( registryWithPlugins, {\n\t\tprivateActionsOf: ( name ) => {\n\t\t\ttry {\n\t\t\t\treturn unlock( stores[ name ].store ).privateActions;\n\t\t\t} catch ( e ) {\n\t\t\t\t// unlock() throws an error the store was not locked – this means\n\t\t\t\t// there no private actions are available\n\t\t\t\treturn {};\n\t\t\t}\n\t\t},\n\t\tprivateSelectorsOf: ( name ) => {\n\t\t\ttry {\n\t\t\t\treturn unlock( stores[ name ].store ).privateSelectors;\n\t\t\t} catch ( e ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t},\n\t} );\n\treturn registryWithPlugins;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/data/src/registry.js"],"names":["deprecated","createReduxStore","coreDataStore","createEmitter","lock","unlock","getStoreName","storeNameOrDescriptor","name","createRegistry","storeConfigs","parent","stores","emitter","listeningStores","globalListener","emit","subscribe","listener","storeName","store","select","add","getSelectors","__unstableMarkListeningStores","callback","ref","Set","call","current","Array","from","resolveSelect","getResolveSelectors","suspendSelect","getSuspendSelectors","dispatch","getActions","withPlugins","attributes","Object","fromEntries","entries","map","key","attribute","registry","apply","arguments","registerStoreInstance","createStore","console","error","TypeError","currentSubscribe","unsubscribeFromEmitter","unsubscribeFromStore","isPaused","registerPrivateActions","privateActionsOf","registerPrivateSelectors","privateSelectorsOf","e","register","instantiate","registerGenericStore","since","alternative","registerStore","options","reducer","batch","pause","values","forEach","resume","namespaces","use","plugin","config","registryWithPlugins","privateActions","privateSelectors"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport createReduxStore from './redux-store';\nimport coreDataStore from './store';\nimport { createEmitter } from './utils/emitter';\nimport { lock, unlock } from './lock-unlock';\n\n/** @typedef {import('./types').StoreDescriptor} StoreDescriptor */\n\n/**\n * @typedef {Object} WPDataRegistry An isolated orchestrator of store registrations.\n *\n * @property {Function} registerGenericStore Given a namespace key and settings\n * object, registers a new generic\n * store.\n * @property {Function} registerStore Given a namespace key and settings\n * object, registers a new namespace\n * store.\n * @property {Function} subscribe Given a function callback, invokes\n * the callback on any change to state\n * within any registered store.\n * @property {Function} select Given a namespace key, returns an\n * object of the store's registered\n * selectors.\n * @property {Function} dispatch Given a namespace key, returns an\n * object of the store's registered\n * action dispatchers.\n */\n\n/**\n * @typedef {Object} WPDataPlugin An object of registry function overrides.\n *\n * @property {Function} registerStore registers store.\n */\n\nfunction getStoreName( storeNameOrDescriptor ) {\n\treturn typeof storeNameOrDescriptor === 'string'\n\t\t? storeNameOrDescriptor\n\t\t: storeNameOrDescriptor.name;\n}\n/**\n * Creates a new store registry, given an optional object of initial store\n * configurations.\n *\n * @param {Object} storeConfigs Initial store configurations.\n * @param {Object?} parent Parent registry.\n *\n * @return {WPDataRegistry} Data registry.\n */\nexport function createRegistry( storeConfigs = {}, parent = null ) {\n\tconst stores = {};\n\tconst emitter = createEmitter();\n\tlet listeningStores = null;\n\n\t/**\n\t * Global listener called for each store's update.\n\t */\n\tfunction globalListener() {\n\t\temitter.emit();\n\t}\n\n\t/**\n\t * Subscribe to changes to any data, either in all stores in registry, or\n\t * in one specific store.\n\t *\n\t * @param {Function} listener Listener function.\n\t * @param {string|StoreDescriptor?} storeNameOrDescriptor Optional store name.\n\t *\n\t * @return {Function} Unsubscribe function.\n\t */\n\tconst subscribe = ( listener, storeNameOrDescriptor ) => {\n\t\t// subscribe to all stores\n\t\tif ( ! storeNameOrDescriptor ) {\n\t\t\treturn emitter.subscribe( listener );\n\t\t}\n\n\t\t// subscribe to one store\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.subscribe( listener );\n\t\t}\n\n\t\t// Trying to access a store that hasn't been registered,\n\t\t// this is a pattern rarely used but seen in some places.\n\t\t// We fallback to global `subscribe` here for backward-compatibility for now.\n\t\t// See https://github.com/WordPress/gutenberg/pull/27466 for more info.\n\t\tif ( ! parent ) {\n\t\t\treturn emitter.subscribe( listener );\n\t\t}\n\n\t\treturn parent.subscribe( listener, storeNameOrDescriptor );\n\t};\n\n\t/**\n\t * Calls a selector given the current state and extra arguments.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t * or the store descriptor.\n\t *\n\t * @return {*} The selector's returned value.\n\t */\n\tfunction select( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getSelectors();\n\t\t}\n\n\t\treturn parent?.select( storeName );\n\t}\n\n\tfunction __unstableMarkListeningStores( callback, ref ) {\n\t\tlisteningStores = new Set();\n\t\ttry {\n\t\t\treturn callback.call( this );\n\t\t} finally {\n\t\t\tref.current = Array.from( listeningStores );\n\t\t\tlisteningStores = null;\n\t\t}\n\t}\n\n\t/**\n\t * Given a store descriptor, returns an object containing the store's selectors pre-bound to\n\t * state so that you only need to supply additional arguments, and modified so that they return\n\t * promises that resolve to their eventual values, after any resolvers have ran.\n\t *\n\t * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n\t * convention of passing the store name is\n\t * also supported.\n\t *\n\t * @return {Object} Each key of the object matches the name of a selector.\n\t */\n\tfunction resolveSelect( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getResolveSelectors();\n\t\t}\n\n\t\treturn parent && parent.resolveSelect( storeName );\n\t}\n\n\t/**\n\t * Given a store descriptor, returns an object containing the store's selectors pre-bound to\n\t * state so that you only need to supply additional arguments, and modified so that they throw\n\t * promises in case the selector is not resolved yet.\n\t *\n\t * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n\t * convention of passing the store name is\n\t * also supported.\n\t *\n\t * @return {Object} Object containing the store's suspense-wrapped selectors.\n\t */\n\tfunction suspendSelect( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tlisteningStores?.add( storeName );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getSuspendSelectors();\n\t\t}\n\n\t\treturn parent && parent.suspendSelect( storeName );\n\t}\n\n\t/**\n\t * Returns the available actions for a part of the state.\n\t *\n\t * @param {string|StoreDescriptor} storeNameOrDescriptor Unique namespace identifier for the store\n\t * or the store descriptor.\n\t *\n\t * @return {*} The action's returned value.\n\t */\n\tfunction dispatch( storeNameOrDescriptor ) {\n\t\tconst storeName = getStoreName( storeNameOrDescriptor );\n\t\tconst store = stores[ storeName ];\n\t\tif ( store ) {\n\t\t\treturn store.getActions();\n\t\t}\n\n\t\treturn parent && parent.dispatch( storeName );\n\t}\n\n\t//\n\t// Deprecated\n\t// TODO: Remove this after `use()` is removed.\n\tfunction withPlugins( attributes ) {\n\t\treturn Object.fromEntries(\n\t\t\tObject.entries( attributes ).map( ( [ key, attribute ] ) => {\n\t\t\t\tif ( typeof attribute !== 'function' ) {\n\t\t\t\t\treturn [ key, attribute ];\n\t\t\t\t}\n\t\t\t\treturn [\n\t\t\t\t\tkey,\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\treturn registry[ key ].apply( null, arguments );\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t} )\n\t\t);\n\t}\n\n\t/**\n\t * Registers a store instance.\n\t *\n\t * @param {string} name Store registry name.\n\t * @param {Function} createStore Function that creates a store object (getSelectors, getActions, subscribe).\n\t */\n\tfunction registerStoreInstance( name, createStore ) {\n\t\tif ( stores[ name ] ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error( 'Store \"' + name + '\" is already registered.' );\n\t\t\treturn stores[ name ];\n\t\t}\n\n\t\tconst store = createStore();\n\n\t\tif ( typeof store.getSelectors !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getSelectors must be a function' );\n\t\t}\n\t\tif ( typeof store.getActions !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.getActions must be a function' );\n\t\t}\n\t\tif ( typeof store.subscribe !== 'function' ) {\n\t\t\tthrow new TypeError( 'store.subscribe must be a function' );\n\t\t}\n\t\t// The emitter is used to keep track of active listeners when the registry\n\t\t// get paused, that way, when resumed we should be able to call all these\n\t\t// pending listeners.\n\t\tstore.emitter = createEmitter();\n\t\tconst currentSubscribe = store.subscribe;\n\t\tstore.subscribe = ( listener ) => {\n\t\t\tconst unsubscribeFromEmitter = store.emitter.subscribe( listener );\n\t\t\tconst unsubscribeFromStore = currentSubscribe( () => {\n\t\t\t\tif ( store.emitter.isPaused ) {\n\t\t\t\t\tstore.emitter.emit();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tlistener();\n\t\t\t} );\n\n\t\t\treturn () => {\n\t\t\t\tunsubscribeFromStore?.();\n\t\t\t\tunsubscribeFromEmitter?.();\n\t\t\t};\n\t\t};\n\t\tstores[ name ] = store;\n\t\tstore.subscribe( globalListener );\n\n\t\t// Copy private actions and selectors from the parent store.\n\t\tif ( parent ) {\n\t\t\ttry {\n\t\t\t\tunlock( store.store ).registerPrivateActions(\n\t\t\t\t\tunlock( parent ).privateActionsOf( name )\n\t\t\t\t);\n\t\t\t\tunlock( store.store ).registerPrivateSelectors(\n\t\t\t\t\tunlock( parent ).privateSelectorsOf( name )\n\t\t\t\t);\n\t\t\t} catch ( e ) {\n\t\t\t\t// unlock() throws if store.store was not locked.\n\t\t\t\t// The error indicates there's nothing to do here so let's\n\t\t\t\t// ignore it.\n\t\t\t}\n\t\t}\n\n\t\treturn store;\n\t}\n\n\t/**\n\t * Registers a new store given a store descriptor.\n\t *\n\t * @param {StoreDescriptor} store Store descriptor.\n\t */\n\tfunction register( store ) {\n\t\tregisterStoreInstance( store.name, () =>\n\t\t\tstore.instantiate( registry )\n\t\t);\n\t}\n\n\tfunction registerGenericStore( name, store ) {\n\t\tdeprecated( 'wp.data.registerGenericStore', {\n\t\t\tsince: '5.9',\n\t\t\talternative: 'wp.data.register( storeDescriptor )',\n\t\t} );\n\t\tregisterStoreInstance( name, () => store );\n\t}\n\n\t/**\n\t * Registers a standard `@wordpress/data` store.\n\t *\n\t * @param {string} storeName Unique namespace identifier.\n\t * @param {Object} options Store description (reducer, actions, selectors, resolvers).\n\t *\n\t * @return {Object} Registered store object.\n\t */\n\tfunction registerStore( storeName, options ) {\n\t\tif ( ! options.reducer ) {\n\t\t\tthrow new TypeError( 'Must specify store reducer' );\n\t\t}\n\n\t\tconst store = registerStoreInstance( storeName, () =>\n\t\t\tcreateReduxStore( storeName, options ).instantiate( registry )\n\t\t);\n\n\t\treturn store.store;\n\t}\n\n\tfunction batch( callback ) {\n\t\t// If we're already batching, just call the callback.\n\t\tif ( emitter.isPaused ) {\n\t\t\tcallback();\n\t\t\treturn;\n\t\t}\n\n\t\temitter.pause();\n\t\tObject.values( stores ).forEach( ( store ) => store.emitter.pause() );\n\t\tcallback();\n\t\temitter.resume();\n\t\tObject.values( stores ).forEach( ( store ) => store.emitter.resume() );\n\t}\n\n\tlet registry = {\n\t\tbatch,\n\t\tstores,\n\t\tnamespaces: stores, // TODO: Deprecate/remove this.\n\t\tsubscribe,\n\t\tselect,\n\t\tresolveSelect,\n\t\tsuspendSelect,\n\t\tdispatch,\n\t\tuse,\n\t\tregister,\n\t\tregisterGenericStore,\n\t\tregisterStore,\n\t\t__unstableMarkListeningStores,\n\t};\n\n\t//\n\t// TODO:\n\t// This function will be deprecated as soon as it is no longer internally referenced.\n\tfunction use( plugin, options ) {\n\t\tif ( ! plugin ) {\n\t\t\treturn;\n\t\t}\n\n\t\tregistry = {\n\t\t\t...registry,\n\t\t\t...plugin( registry, options ),\n\t\t};\n\n\t\treturn registry;\n\t}\n\n\tregistry.register( coreDataStore );\n\n\tfor ( const [ name, config ] of Object.entries( storeConfigs ) ) {\n\t\tregistry.register( createReduxStore( name, config ) );\n\t}\n\n\tif ( parent ) {\n\t\tparent.subscribe( globalListener );\n\t}\n\n\tconst registryWithPlugins = withPlugins( registry );\n\tlock( registryWithPlugins, {\n\t\tprivateActionsOf: ( name ) => {\n\t\t\ttry {\n\t\t\t\treturn unlock( stores[ name ].store ).privateActions;\n\t\t\t} catch ( e ) {\n\t\t\t\t// unlock() throws an error the store was not locked – this means\n\t\t\t\t// there no private actions are available\n\t\t\t\treturn {};\n\t\t\t}\n\t\t},\n\t\tprivateSelectorsOf: ( name ) => {\n\t\t\ttry {\n\t\t\t\treturn unlock( stores[ name ].store ).privateSelectors;\n\t\t\t} catch ( e ) {\n\t\t\t\treturn {};\n\t\t\t}\n\t\t},\n\t} );\n\treturn registryWithPlugins;\n}\n"]}
@@ -26,6 +26,7 @@
26
26
  */
27
27
  export default function createReduxStore<State, Actions extends Record<string, any>, Selectors>(key: string, options: import("../types").ReduxStoreConfig<State, Actions, Selectors>): import("../types").StoreDescriptor<import("../types").ReduxStoreConfig<State, Actions, Selectors>>;
28
28
  export type DataRegistry = import('../types').DataRegistry;
29
+ export type ListenerFunction = import('../types').ListenerFunction;
29
30
  export type StoreDescriptor<C extends import("../types").AnyConfig> = import('../types').StoreDescriptor<C>;
30
31
  export type ReduxStoreConfig<State, Actions extends Record<string, any>, Selectors> = import('../types').ReduxStoreConfig<State, Actions, Selectors>;
31
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/redux-store/index.js"],"names":[],"mappings":"AAsHA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qGAPW,MAAM,+KAqMhB;2BArTa,OAAO,UAAU,EAAE,YAAY;sEAEhC,OAAO,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;sFAIrC,OAAO,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAC,OAAO,EAAC,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/redux-store/index.js"],"names":[],"mappings":"AAuHA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qGAPW,MAAM,+KAwNhB;2BAzUa,OAAO,UAAU,EAAE,YAAY;+BAC/B,OAAO,UAAU,EAAE,gBAAgB;sEAEpC,OAAO,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;sFAIrC,OAAO,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAC,OAAO,EAAC,SAAS,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.js"],"names":[],"mappings":"AA8CA;;;;;;;;GAQG;AACH,8CALW,MAAM,WACN,MAAM,UAEL,cAAc,CA4UzB"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.js"],"names":[],"mappings":"AA8CA;;;;;;;;GAQG;AACH,8CALW,MAAM,WACN,MAAM,UAEL,cAAc,CAkVzB"}
@@ -37,6 +37,11 @@ export type UseDispatchReturn<StoreNameOrDescriptor> = StoreNameOrDescriptor ext
37
37
  export type DispatchFunction = <StoreNameOrDescriptor>(store: StoreNameOrDescriptor) => StoreNameOrDescriptor extends StoreDescriptor<any> ? ActionCreatorsOf<ConfigOf<StoreNameOrDescriptor>> : any;
38
38
  export type MapSelect = (select: SelectFunction, registry: DataRegistry) => any;
39
39
  export type SelectFunction = <S>(store: S) => CurriedSelectorsOf<S>;
40
+ /**
41
+ * Callback for store's `subscribe()` method that
42
+ * runs when the store data has changed.
43
+ */
44
+ export type ListenerFunction = () => void;
40
45
  export type CurriedSelectorsOf<S> = S extends StoreDescriptor<ReduxStoreConfig<any, any, infer Selectors>> ? {
41
46
  [key in keyof Selectors]: CurriedState<Selectors[key]>;
42
47
  } : never;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/data",
3
- "version": "9.5.2",
3
+ "version": "9.7.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.12.1",
33
- "@wordpress/deprecated": "^3.35.1",
34
- "@wordpress/element": "^5.12.1",
35
- "@wordpress/is-shallow-equal": "^4.35.1",
36
- "@wordpress/priority-queue": "^2.35.1",
37
- "@wordpress/private-apis": "^0.17.1",
38
- "@wordpress/redux-routine": "^4.35.1",
32
+ "@wordpress/compose": "^6.14.0",
33
+ "@wordpress/deprecated": "^3.37.0",
34
+ "@wordpress/element": "^5.14.0",
35
+ "@wordpress/is-shallow-equal": "^4.37.0",
36
+ "@wordpress/priority-queue": "^2.37.0",
37
+ "@wordpress/private-apis": "^0.19.0",
38
+ "@wordpress/redux-routine": "^4.37.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": "65fb4cd5187a47ca274c24c04a220bcdb2ddfa67"
53
+ "gitHead": "bcd13d59b22553b3c9dc5869077bff1e864cf9f5"
54
54
  }
@@ -24,6 +24,7 @@ import * as metadataSelectors from './metadata/selectors';
24
24
  import * as metadataActions from './metadata/actions';
25
25
 
26
26
  /** @typedef {import('../types').DataRegistry} DataRegistry */
27
+ /** @typedef {import('../types').ListenerFunction} ListenerFunction */
27
28
  /**
28
29
  * @typedef {import('../types').StoreDescriptor<C>} StoreDescriptor
29
30
  * @template {import('../types').AnyConfig} C
@@ -158,6 +159,19 @@ export default function createReduxStore( key, options ) {
158
159
  const storeDescriptor = {
159
160
  name: key,
160
161
  instantiate: ( registry ) => {
162
+ /**
163
+ * Stores listener functions registered with `subscribe()`.
164
+ *
165
+ * When functions register to listen to store changes with
166
+ * `subscribe()` they get added here. Although Redux offers
167
+ * its own `subscribe()` function directly, by wrapping the
168
+ * subscription in this store instance it's possible to
169
+ * optimize checking if the state has changed before calling
170
+ * each listener.
171
+ *
172
+ * @type {Set<ListenerFunction>}
173
+ */
174
+ const listeners = new Set();
161
175
  const reducer = options.reducer;
162
176
  const thunkArgs = {
163
177
  registry,
@@ -297,18 +311,24 @@ export default function createReduxStore( key, options ) {
297
311
  const subscribe =
298
312
  store &&
299
313
  ( ( listener ) => {
300
- let lastState = store.__unstableOriginalGetState();
301
- return store.subscribe( () => {
302
- const state = store.__unstableOriginalGetState();
303
- const hasChanged = state !== lastState;
304
- lastState = state;
305
-
306
- if ( hasChanged ) {
307
- listener();
308
- }
309
- } );
314
+ listeners.add( listener );
315
+
316
+ return () => listeners.delete( listener );
310
317
  } );
311
318
 
319
+ let lastState = store.__unstableOriginalGetState();
320
+ store.subscribe( () => {
321
+ const state = store.__unstableOriginalGetState();
322
+ const hasChanged = state !== lastState;
323
+ lastState = state;
324
+
325
+ if ( hasChanged ) {
326
+ for ( const listener of listeners ) {
327
+ listener();
328
+ }
329
+ }
330
+ } );
331
+
312
332
  // This can be simplified to just { subscribe, getSelectors, getActions }
313
333
  // Once we remove the use function.
314
334
  return {
@@ -409,6 +429,7 @@ function mapResolveSelectors( selectors, store ) {
409
429
  getCachedResolvers,
410
430
  getResolutionState,
411
431
  getResolutionError,
432
+ hasResolvingSelectors,
412
433
  ...storeSelectors
413
434
  } = selectors;
414
435
 
@@ -281,7 +281,6 @@ describe( 'resolveSelect', () => {
281
281
 
282
282
  it( 'returns only store native selectors and excludes all meta ones', () => {
283
283
  expect( Object.keys( registry.resolveSelect( 'store' ) ) ).toEqual( [
284
- 'hasResolvingSelectors',
285
284
  'getItems',
286
285
  'getItemsNoResolver',
287
286
  ] );
package/src/registry.js CHANGED
@@ -314,6 +314,12 @@ export function createRegistry( storeConfigs = {}, parent = null ) {
314
314
  }
315
315
 
316
316
  function batch( callback ) {
317
+ // If we're already batching, just call the callback.
318
+ if ( emitter.isPaused ) {
319
+ callback();
320
+ return;
321
+ }
322
+
317
323
  emitter.pause();
318
324
  Object.values( stores ).forEach( ( store ) => store.emitter.pause() );
319
325
  callback();
@@ -734,6 +734,27 @@ describe( 'createRegistry', () => {
734
734
  unsubscribe();
735
735
  expect( listener2 ).toHaveBeenCalledTimes( 1 );
736
736
  } );
737
+
738
+ it( 'should support nested batches', () => {
739
+ const store = registry.registerStore( 'myAwesomeReducer', {
740
+ reducer: ( state = 0 ) => state + 1,
741
+ } );
742
+ const listener = jest.fn();
743
+ subscribeWithUnsubscribe( listener );
744
+
745
+ registry.batch( () => {} );
746
+ expect( listener ).not.toHaveBeenCalled();
747
+
748
+ registry.batch( () => {
749
+ store.dispatch( { type: 'dummy' } );
750
+ registry.batch( () => {
751
+ store.dispatch( { type: 'dummy' } );
752
+ store.dispatch( { type: 'dummy' } );
753
+ } );
754
+ store.dispatch( { type: 'dummy' } );
755
+ } );
756
+ expect( listener ).toHaveBeenCalledTimes( 1 );
757
+ } );
737
758
  } );
738
759
 
739
760
  describe( 'use', () => {
package/src/types.ts CHANGED
@@ -70,6 +70,12 @@ export type MapSelect = (
70
70
 
71
71
  export type SelectFunction = < S >( store: S ) => CurriedSelectorsOf< S >;
72
72
 
73
+ /**
74
+ * Callback for store's `subscribe()` method that
75
+ * runs when the store data has changed.
76
+ */
77
+ export type ListenerFunction = () => void;
78
+
73
79
  export type CurriedSelectorsOf< S > = S extends StoreDescriptor<
74
80
  ReduxStoreConfig< any, any, infer Selectors >
75
81
  >
@@ -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.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.esnext.intl.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/node_modules/@types/react/index.d.ts","../element/build-types/react.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-viewport-match/index.d.ts","../element/build-types/create-interpolate-element.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-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-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","../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/store/index.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","./src/redux-store/metadata/selectors.js","./src/redux-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","../element/node_modules/@types/react/global.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"750b0952483dfc1a963abad82bffc11d16267e830ad9c02e2ac04ae4011d4743","signature":"9481c72104c81bcf6384d66fec925883e1cfc251ec79911b224c020402fcca43"},{"version":"8f19251323456195ec9236df857bac3b8f97b73b540ef06ead2ceccc3884954f","affectsGlobalScope":true},{"version":"261c2575b44e049726cf1fbd6cf43b309581aee3e2c6dfff2c696cba50b083b5","signature":"65d9981adf6ac0934994f793be90f140fa4cc68a87d8772c1ecc920faa3a5027"},{"version":"e382a7658f76f31d91f33c404b9526eeee7938eb4aee831feb51a3ba0e40a321","signature":"8c2a4bbd3555d93ed90e0c99548acc2b32c260cddafecec4b4cd454c1424ad1e"},"bd0d80db12ef1aceefc4f9d3eb88517b9634fa747ae8475981da8655292feab8","55e68fb1618e3f55f7866b8c8415152159309a14b716370081ab0b7af96d876e","bf0491af2455f92282b61807be2be6e7ad7d532e47fac7b698019d3617c28ff7","5d874fb879ab8601c02549817dceb2d0a30729cb7e161625dd6f819bbff1ec0b","ee551a880882770c4f56a0964a9767c9feafe497a5be52652527d098c88d85cb","b192606574769a5566620f9bf19358a3994bc2726ecdeaad9c66f3333b2687c8","29041ec2b56677a9adf3bcfa21bf513d29faacfea6964a0734a5e0a12982ac8c",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"381899b8d1d4c1be716f18cb5242ba39f66f4b1e31d45af62a32a99f8edcb39d","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},"773979fb94d64450b1567975ee28a630cae6f2c01c2c18e06563c744bb6fe0c4","8e3d399a59744e651362087da32211ed34c6e8dccee4002abb82ed2f9e4c7301","9a726679595a1e729708d633c114be758c8b4172029916456e3feab6f76e6e43","a0cf70217b68c414db6c4863831250c8a2d96469c8044b75edd3a460793c9887","8d7c0f64cebcc3690112c28a4861bd9385836b47e9d1c171e6362100b3cc32a8","17ba9202cb2a0e0deec28398f2ef6c95c7193cbe46b8b6eaf8f54f48aedd7139","2758842856646f2bebbeb5150707ca4b5ab8fa1d46d95b3386493e6d6b4221fc","f9523fca1617fd31e048afd09f08cca592a7bbaeca4d5ff1e1781ab0cd2ffe9b","881a6580fb531a8331bf04acd77bf935d81d92af0dc6b91996e4548cd6227429","997b40fb1aeb304b6d3bc9021361bd6c5a1ed3b1e1a1459533a9c854db4ac715","23d7a8b5d3297675007160f5cc75777e6eccf63ff6650bd3ed01eb0b3cdf2a38","8db59d5540f8bc033f35eb1a4a7903d202fbace0874b456e463af2675da2398b","c5a28d3d50c8edecc8cc87ae3a5dcfa34e630f970626bf30c552e681c7055fd0","5f8402dfce577684c2de40394f60628ffe6e44e6bc308dbeb1b643c527d758bf","daa0b5b58eab0c3dfc200cde4cc933084b908ede3aacdda1d2797f98c172142b","404cd1151ad5c08da06987950824a77194fc5e2c905e2b90252ad066d922614b","1d9af36f24bba0f0d3b80358e0b7fcccf8ea361d799adf0407e48b949fb3b82e","4807581687ad8a41a480f2f55a93eed33881d2c3a4bbcba14cd77fddd6c32f8c","32336f8d3f635d379eb6438dbbd2ead8deebda788e12062855815c0834a50720","f08d251cb25341aedf5edbfa1317f59f93ddb133de124a31962f656ab4f6ebd9","592aa170bf0e1e4a71f473747252bf79d56e7d821d33b2e3cce16a7fd168bd9f",{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},"14ed49cb68f29e36dfb562b7c382ce70d467b7310e8e27cc587772d029f372b7","2cc143754ed238f214e763525cd4c11613409a643fdd602f4e0a2b19f1f2d397","96520a873073a2f39f922d0a422498cdcc28be9066a769000cdd07ecaba7b645","c7284023c5462180e492357aeb94551a20aa41eac8ac517606f3766359d08bb9","ed4ec3d435678a5703a016a801afc2cd7b543c53ab4615b3e214cac9c30f560a","e345f2ee8dd216e738840035224950764086f16e6ef75de310747b839a3dc14e","501be290436f06ae2182915329b01cfd0850961814802237b5c24749fd2afa0c","cc34c3c1590513cdb6374890f421c06ad969cfd99b28efb6003a6afc845c49f8","ab6f9c23c44e0b20c2be80af46ffc9d0e6681efa05ee1704bb4c9fcef8e61497","e4dd91dd4789a109aab51d8a0569a282369fcda9ba6f2b2297bc61bacfb1a042","83e27bbd7304ea67f9afa1535f1d4fdb15866089f0d893c784cbb5b1c6fb3386","c4b39848e2fb237507a7acae0b83a34271c9d72714faae6a6b9075527205111b","d2d9e98a2b167079474768593e1e7125fc3db055add8fbdb5977e3d05a8a3696","6462da67490105ba7d98cf312c2faf8794c425781128b161ea8394d66502eec8","62359da52b6c8d00c50c2e50738fac82e902f916fdf458d8159e7edb1c60c3a8","1e0ac21bc775686383ea8c8e48bd98b385e6195b25c85525a7affd08a2cd38b9","0449615e1ed03c7d54fc435a63b7ef0cb4e5cea5ac40c9a63280a46f7eeae0ff",{"version":"b5b080e499df18235bac525ce43da935d1a068c5770f58b245d24b6ae8baa166","affectsGlobalScope":true},"7be4c510922d20d3946d7916b8a4c075429b179a3b143e3541bbbd4191e5988e","f295ab6b1bfd2b6b5b19ba621cca18c1b94b25c430c67fcb66c9594e89e3ff39","ea6c58f9711f6dc2f5609e085a1751d1284f1097b568852863bc24becf970831","f59327cd1c98362028d2d2b034b9bada17481ef7f12f13b046bc047ab4fc343c","d759d5a895085d1cfc89d1d1791c188c8170d933092db93e2b48676c49ee7310","23cdc008b29455b89f900f5667bbbb95df280deb7740e7a1d118f894118d8eb8","bc0ee5816f40067bef4972b88c81564d50b9aac01833a818a0528667730d7729","2c8e1d8fe99738fe377049c1baa8b074ac11bdbfad103881c6f012a09383e361","5fac858cb922fe34b898ddc12db441c878ec72bf6a1e3bcbe297f4da4bb6672a","7f119c8c5d4d145e6fcf668055a76f37ed273c24584d5bb90ff9f5520648b47d","eda83eb5ad3e0dab986107adbe50ebc6a2a832e20331770341263d82446369a4","7aad58c3b214bfb7e53ea867e8c34181c0458780b999e448fe953919b4401780",{"version":"fbe4a5b75dc59bc1b82010c79a7420e1613accb5925fb6511b00653c8de208b5","signature":"64fa5d796f6f8071c5e5282d751646e1863a20756814c232f3ac7656c39070a6"},"5ac6404ddc5d622905e131dbc5da0362a82e89d1cb97cc8256bf06ca9fad4b24",{"version":"9fcfbc2dd0c0614b3a25d41e4425dd86cdfa574a9e7d2febffc85badcee1a0b8","signature":"895ef4cd86d49605f187c52ac4b77f8139f69df7e2f539c27196d72c75df7d31"},{"version":"48674187365141743eaadc4ffa47b457bfa63d36e945b8e4f43d60b0fe6b1907","signature":"ee5f9536bf6f19945a671e027422956b23b812a5cdbef077cb8bce06512987d7"},{"version":"ffb67d1f7f5d12096a626f3fd43f4e3b6c3b3bc27a781b4f18d57c5017a39950","signature":"9992bfe40cad650194a736cdf7f0cc54035dbdb73388191edf46b85c7ddc986b"},{"version":"975eb852881942b64b42f35251bb55a75b6521e47c3eefe95d61f986265a5225","signature":"ebcf727b4ea8f6266308020bcf5a6f592bddc7ce27d49e88f0e04545305b5a8e"},{"version":"b86196ae20b726e4a42e00bbfc38361e5f751d3d738c952e659a1fbd60964d27","signature":"bfa6b4eb44114b5261a7dcf7d1e69f54af8bc4ab9a39fbe6063013f33ba8b641"},{"version":"c67951274199df6c887191adafac1c605901c3f6ce123351225e2e93c4282de4","signature":"8db3c1fe705300424e16eccb289f38f0f1fa48c0ba2f7ec73342b678c4582f5d"},{"version":"4fc2fcab4e27cceba55c653a6a35f9d9486ce732debfddfa946d0b7bab9229bb","signature":"00da318428374edba6adde61bea395981d1b13728c4dcc5b855f754b5112642e"},{"version":"9fe3ad22699e09cd90816d13110f6d87af62e2e0720c1afe8b2de94676b91571","signature":"58d8a243809620e7d2a164f62d4f57256e66775137cd276d5c4cfff1fd9e7ccd"},{"version":"f97d7e93360e8ed2c5d867d9a3242435cfb7710b738b6edc61b3ac49f70e2386","signature":"8e5afde94322dc07661f4d296fc60ec416b5b69d4c2c72ef94f6add714e40bda"},{"version":"412e9398be155d644b609b06bb2d0b6f99d86bf3d7db81b27a357ad8df07e0c0","signature":"b453c1a2eac87cc7083566d798ca756e0256165b9e47d7e3db00426cea8fc626"},{"version":"d38e7e0abd719217fcb8b17de291bb73a7d842043fd8b93176dba2c25d83e26c","signature":"0c37cfbb515ee4df942133efa11132b16e9a3c8b2bf70f602337756d0783918b"},{"version":"c17118d21ac084068b77eb8e382d9f8988e26bded75c7f0f0b132fa67d4ca625","signature":"cc24820820bdd2761360a0d8f809cfa686294a0c4481c3a69a9c61336ec68b80"},{"version":"6968fdcec473f7b2ca486d7cfe38f716f95ffe7eb602ed01fc3701cc654f5bc5","signature":"26f9698c5251a9c7a9ecdf39a52fa9d93d3758495921f41d17f016783bea312a"},"9a4c49a0b2bf8536b1f4a72f162f807d7a23aa27a816e9cd24cc965540ba4b35","146ba4b99c5feb82663e17a671bf9f53bb39c704cd76345d6c5a801c26372f44",{"version":"dc8a746041b9afc357038c00dc7bb204e7c758e5796e2b965782b10c010ea5da","signature":"3118e3f67853a4d11cd0225bdc00b683855c9fefa5a42bde70b5394b3b57551c"},{"version":"3c2eecbb08d00f262c3266a5729d8dc7033b12c10ad11085239d942330a66be4","signature":"0fadba7aa026b174f612f3ff924b5a2e9a6b53a70568d489f45afc375ad7cfcc"},{"version":"5beba082191ffa3874df0a9a7803c8d933b0da320a1b64862f57c3792584cfc1","signature":"829868d6ec1927e4700983dba2e0835327ecdd4d7f99072a3de19fda116551b4"},{"version":"50ed6e45c39d15e21c206f167abb7c33067931c37c8c660f1928e504a3ba6fda","signature":"0daf72d81e292312f185c81a2ad0648b226433a00d7d139addc06d39d078b2f1"},"abb6d9adcc79c591f712e79c55f769b48690ec66a55b6f6189569a0d357c7e58","5190f1a110a789c2f8ed8dcf2da6ce122dcb74249d0c01d19d1ed0b1c6bb02a1","3650bbe137c9c44bc6b8f44a56353b00eba9654e41a9355e6228f7f0f464c648","eb467c4dcea39773409e7cf23dce1c65991ce3d31c86a0a7e1dfd73b880fc986",{"version":"02fdc48e90772a67702e098b722a5772fddf789fb8aa961fc1e292655581df34","signature":"90b78b57b0842bd1fd5ec099a97cfb33146e6d2d52dd68d8a89ae834105ab366"},{"version":"e08f7f2e161bf3631ced28081d5b567ebce6f58dedc9930ec299b14f7dc52ae2","signature":"4a9216f87f9b92167b0b18cd90016000e71dd7ea61a95385b2b97be6585e9cb3"},{"version":"56a1d5d8e0d9fc4e3e39936097c3064338df9031872c8e21a9648e3390aae30c","signature":"496a712363ee622ead98319bdf81471e550993b83529174068fce0f0e2db1615"},{"version":"c12fb0c4b324c65600609051919b1de0da4630c66bdbd4dc268efe7780ff4ed8","signature":"92deca0757666c0db63066e8307e28452fed66d809d5c1ef0554b0475e3b098b"},{"version":"ea28e24296ad23e752a833c57ba347af21000e51a3d04d99e1c6d6ddc7e2cf24","signature":"887dc6c82444f5c7f3da9c1914b74a13bb46ca0f218deda5ea25d9fda2bef1b6"},{"version":"94dab901493475872f90a4e2d58eb6f2cf6265e95fecba1723436c15cd9b29e5","signature":"d628659c9f4df17c9f47205600cd27ca34327b6f49c03c3a92ba35194ba5358d"},{"version":"e1d7d13bf67f07f3efbed72a4ee999083be13ef8c9968e99f38586545b28b399","signature":"a895daacc14309d96555463210644d8e2aceef5d57346ce1bb513f8cdfabd393"},{"version":"6469e0325b8d62347b79baf42ba957cc2401ce05378bfd521737c049554028ae","signature":"7f1be7e4a47f9abe89d28793e59d0d7a935c7f14a597f1e2b6651d1e54f23957"},{"version":"e6afc6c377cdc0b881c15db7be06fe57fbdbb4074753bb36abdc26000de853ee","signature":"39f82ec23c92368df0de1449bb26e14280862e092ab8e3eaacf80570ac35a7f2"},{"version":"b4e83151bd067378d7fcce251d866b13f6789843a66d18f7c4ca58c3e70035e4","signature":"6f82e9d16b584ec9127bcccd8ce9311e587652acb36657458f9174ccaec7b354"},{"version":"6419036e9ec25b03fed142edef64280f5d7dbcc158170cb27899ecb9cb2dae8b","signature":"9798502506a30b631a4841a0c5e4dd369c8662c2ab08bf069fb464262cd9d9f8"},{"version":"205b5a62e15144e9bd6a49846df7d30399a5738a3ab439f35eb25e19aab66299","signature":"e3fa7ffb42258b9fc94b57a2547b30cd2abc69ce64a9031c6e27197a62c9c333"},{"version":"8d09f7a29021a69909eca56a60012bb043c703b82fbb1dede51186fedcce88f9","signature":"1a4f84d939445c350647adf2f5001ecc6fcef110b6daa79c11b3aa7c9984d0e1"},{"version":"593405def651364d973e4f004babc84c36d0975d0a51565bd15ba9e13cd17837","signature":"e7b7ca1fbfddbe67a3736393a170a4fe8d2929cdde754c08e4db38a03869ec94"},{"version":"d4d33a78e8cd5bca6bd5706fbbaa207f6d7983b180c274dc91ebba52e3ab90dc","signature":"7a536fc359a698b1cc477a7b5bb083262f0546e896611e2ca47c5a4d0cabbe3d"},"8eed414bd2305e20163d35205b450204002bf20e14c7241d7fec46bb18f174d2"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"importsNotUsedAsValues":2,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":false,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[71],[67,68,69,70],[60,61,62,63],[60],[61],[72],[71,72],[73],[71,86,87],[94],[71,96],[110],[73,74],[72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,95,97,98,99,100,101,111,112,113,114,115,116,117,118,119,120],[151,152],[110,151],[110,137],[149,150],[110,149],[155,156],[110,121,150],[58,150],[58,110,145,148,150,152],[110,121,157],[121,159],[110,121,153],[56,58],[136],[58,137],[56,58,59,134,136,137,138,144,153,154,157,158,159,160,161,162],[123],[143],[136,139,140,142,163],[141],[57,125],[57,58,59,66,121,124,126,128,129,131,132,133,164],[57,130,131,164],[130,132],[57],[58,65,124,127,134,135],[127,136],[58],[64],[94,102,105,106,107,108,109],[103,104],[71,94],[68,69,70,165],[146,147],[148],[122],[71,136],[131,164],[132]],"referencedMap":[[104,1],[103,1],[71,2],[64,3],[61,4],[62,5],[77,1],[78,1],[80,6],[81,7],[83,1],[84,1],[85,1],[114,8],[88,9],[90,1],[118,1],[120,1],[86,1],[87,1],[91,1],[119,1],[95,10],[97,11],[116,1],[117,1],[111,12],[115,13],[101,1],[121,14],[72,1],[151,12],[161,15],[152,16],[149,17],[159,18],[150,19],[157,20],[156,21],[155,22],[153,23],[158,24],[160,25],[154,26],[59,27],[137,28],[138,29],[163,30],[124,31],[144,32],[143,33],[142,34],[126,35],[134,36],[132,37],[133,38],[130,39],[136,40],[128,41],[162,29],[58,39],[135,42],[65,43],[102,10],[110,44],[109,1],[105,45],[94,1],[108,46],[93,47],[148,48],[146,49],[123,50],[66,39]],"exportedModulesMap":[[104,1],[103,1],[71,2],[64,3],[61,4],[62,5],[77,1],[78,1],[80,6],[81,7],[83,1],[84,1],[85,1],[114,8],[88,9],[90,1],[118,1],[120,1],[86,1],[87,1],[91,1],[119,1],[95,10],[97,11],[116,1],[117,1],[111,12],[115,13],[101,1],[121,14],[72,1],[151,1],[149,51],[155,42],[153,42],[158,12],[160,1],[154,12],[59,42],[137,28],[138,42],[163,42],[143,28],[126,39],[134,42],[132,52],[133,53],[130,39],[136,42],[128,28],[162,42],[58,39],[135,42],[65,43],[102,10],[110,44],[109,1],[105,45],[94,1],[108,46],[93,47],[148,48],[146,49],[123,50],[66,39]],"semanticDiagnosticsPerFile":[96,69,104,103,67,71,70,68,140,139,125,57,11,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,53,54,1,10,55,60,63,64,61,62,75,77,76,78,79,80,81,82,112,83,84,85,114,88,89,90,118,120,86,87,91,119,92,95,97,98,116,99,100,117,111,115,101,113,121,72,73,74,151,161,152,149,159,150,157,156,155,153,158,160,154,59,137,138,56,163,124,144,143,142,141,126,134,131,164,132,133,130,129,136,128,162,127,58,135,65,102,110,107,109,105,94,108,106,93,147,148,146,145,122,123,66],"latestChangedDtsFile":"./build-types/index.d.ts"},"version":"4.9.5"}
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.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.esnext.intl.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/node_modules/@types/react/index.d.ts","../element/build-types/react.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-viewport-match/index.d.ts","../element/build-types/create-interpolate-element.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-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-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","../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/store/index.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","./src/redux-store/metadata/selectors.js","./src/redux-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","../element/node_modules/@types/react/global.d.ts"],"fileInfos":[{"version":"8730f4bf322026ff5229336391a18bcaa1f94d4f82416c8b2f3954e2ccaae2ba","affectsGlobalScope":true},"dc47c4fa66b9b9890cf076304de2a9c5201e94b740cffdf09f87296d877d71f6","7a387c58583dfca701b6c85e0adaf43fb17d590fb16d5b2dc0a2fbd89f35c467","8a12173c586e95f4433e0c6dc446bc88346be73ffe9ca6eec7aa63c8f3dca7f9","5f4e733ced4e129482ae2186aae29fde948ab7182844c3a5a51dd346182c7b06","4b421cbfb3a38a27c279dec1e9112c3d1da296f77a1a85ddadf7e7a425d45d18","1fc5ab7a764205c68fa10d381b08417795fc73111d6dd16b5b1ed36badb743d9","746d62152361558ea6d6115cf0da4dd10ede041d14882ede3568bce5dc4b4f1f","d11a03592451da2d1065e09e61f4e2a9bf68f780f4f6623c18b57816a9679d17","aea179452def8a6152f98f63b191b84e7cbd69b0e248c91e61fb2e52328abe8c",{"version":"3aafcb693fe5b5c3bd277bd4c3a617b53db474fe498fc5df067c5603b1eebde7","affectsGlobalScope":true},{"version":"adb996790133eb33b33aadb9c09f15c2c575e71fb57a62de8bf74dbf59ec7dfb","affectsGlobalScope":true},{"version":"8cc8c5a3bac513368b0157f3d8b31cfdcfe78b56d3724f30f80ed9715e404af8","affectsGlobalScope":true},{"version":"cdccba9a388c2ee3fd6ad4018c640a471a6c060e96f1232062223063b0a5ac6a","affectsGlobalScope":true},{"version":"c5c05907c02476e4bde6b7e76a79ffcd948aedd14b6a8f56e4674221b0417398","affectsGlobalScope":true},{"version":"5f406584aef28a331c36523df688ca3650288d14f39c5d2e555c95f0d2ff8f6f","affectsGlobalScope":true},{"version":"22f230e544b35349cfb3bd9110b6ef37b41c6d6c43c3314a31bd0d9652fcec72","affectsGlobalScope":true},{"version":"7ea0b55f6b315cf9ac2ad622b0a7813315bb6e97bf4bb3fbf8f8affbca7dc695","affectsGlobalScope":true},{"version":"3013574108c36fd3aaca79764002b3717da09725a36a6fc02eac386593110f93","affectsGlobalScope":true},{"version":"eb26de841c52236d8222f87e9e6a235332e0788af8c87a71e9e210314300410a","affectsGlobalScope":true},{"version":"3be5a1453daa63e031d266bf342f3943603873d890ab8b9ada95e22389389006","affectsGlobalScope":true},{"version":"17bb1fc99591b00515502d264fa55dc8370c45c5298f4a5c2083557dccba5a2a","affectsGlobalScope":true},{"version":"7ce9f0bde3307ca1f944119f6365f2d776d281a393b576a18a2f2893a2d75c98","affectsGlobalScope":true},{"version":"6a6b173e739a6a99629a8594bfb294cc7329bfb7b227f12e1f7c11bc163b8577","affectsGlobalScope":true},{"version":"81cac4cbc92c0c839c70f8ffb94eb61e2d32dc1c3cf6d95844ca099463cf37ea","affectsGlobalScope":true},{"version":"b0124885ef82641903d232172577f2ceb5d3e60aed4da1153bab4221e1f6dd4e","affectsGlobalScope":true},{"version":"0eb85d6c590b0d577919a79e0084fa1744c1beba6fd0d4e951432fa1ede5510a","affectsGlobalScope":true},{"version":"da233fc1c8a377ba9e0bed690a73c290d843c2c3d23a7bd7ec5cd3d7d73ba1e0","affectsGlobalScope":true},{"version":"d154ea5bb7f7f9001ed9153e876b2d5b8f5c2bb9ec02b3ae0d239ec769f1f2ae","affectsGlobalScope":true},{"version":"bb2d3fb05a1d2ffbca947cc7cbc95d23e1d053d6595391bd325deb265a18d36c","affectsGlobalScope":true},{"version":"c80df75850fea5caa2afe43b9949338ce4e2de086f91713e9af1a06f973872b8","affectsGlobalScope":true},{"version":"9d57b2b5d15838ed094aa9ff1299eecef40b190722eb619bac4616657a05f951","affectsGlobalScope":true},{"version":"6c51b5dd26a2c31dbf37f00cfc32b2aa6a92e19c995aefb5b97a3a64f1ac99de","affectsGlobalScope":true},{"version":"6e7997ef61de3132e4d4b2250e75343f487903ddf5370e7ce33cf1b9db9a63ed","affectsGlobalScope":true},{"version":"2ad234885a4240522efccd77de6c7d99eecf9b4de0914adb9a35c0c22433f993","affectsGlobalScope":true},{"version":"5e5e095c4470c8bab227dbbc61374878ecead104c74ab9960d3adcccfee23205","affectsGlobalScope":true},{"version":"09aa50414b80c023553090e2f53827f007a301bc34b0495bfb2c3c08ab9ad1eb","affectsGlobalScope":true},{"version":"d7f680a43f8cd12a6b6122c07c54ba40952b0c8aa140dcfcf32eb9e6cb028596","affectsGlobalScope":true},{"version":"3787b83e297de7c315d55d4a7c546ae28e5f6c0a361b7a1dcec1f1f50a54ef11","affectsGlobalScope":true},{"version":"e7e8e1d368290e9295ef18ca23f405cf40d5456fa9f20db6373a61ca45f75f40","affectsGlobalScope":true},{"version":"faf0221ae0465363c842ce6aa8a0cbda5d9296940a8e26c86e04cc4081eea21e","affectsGlobalScope":true},{"version":"06393d13ea207a1bfe08ec8d7be562549c5e2da8983f2ee074e00002629d1871","affectsGlobalScope":true},{"version":"2768ef564cfc0689a1b76106c421a2909bdff0acbe87da010785adab80efdd5c","affectsGlobalScope":true},{"version":"b248e32ca52e8f5571390a4142558ae4f203ae2f94d5bac38a3084d529ef4e58","affectsGlobalScope":true},{"version":"6c55633c733c8378db65ac3da7a767c3cf2cf3057f0565a9124a16a3a2019e87","affectsGlobalScope":true},{"version":"fb4416144c1bf0323ccbc9afb0ab289c07312214e8820ad17d709498c865a3fe","affectsGlobalScope":true},{"version":"5b0ca94ec819d68d33da516306c15297acec88efeb0ae9e2b39f71dbd9685ef7","affectsGlobalScope":true},{"version":"34c839eaaa6d78c8674ae2c37af2236dee6831b13db7b4ef4df3ec889a04d4f2","affectsGlobalScope":true},{"version":"34478567f8a80171f88f2f30808beb7da15eac0538ae91282dd33dce928d98ed","affectsGlobalScope":true},{"version":"ab7d58e6161a550ff92e5aff755dc37fe896245348332cd5f1e1203479fe0ed1","affectsGlobalScope":true},{"version":"6bda95ea27a59a276e46043b7065b55bd4b316c25e70e29b572958fa77565d43","affectsGlobalScope":true},{"version":"aedb8de1abb2ff1095c153854a6df7deae4a5709c37297f9d6e9948b6806fa66","affectsGlobalScope":true},{"version":"a4da0551fd39b90ca7ce5f68fb55d4dc0c1396d589b612e1902f68ee090aaada","affectsGlobalScope":true},{"version":"11ffe3c281f375fff9ffdde8bbec7669b4dd671905509079f866f2354a788064","affectsGlobalScope":true},{"version":"52d1bb7ab7a3306fd0375c8bff560feed26ed676a5b0457fa8027b563aecb9a4","affectsGlobalScope":true},{"version":"750b0952483dfc1a963abad82bffc11d16267e830ad9c02e2ac04ae4011d4743","signature":"9481c72104c81bcf6384d66fec925883e1cfc251ec79911b224c020402fcca43"},{"version":"8f19251323456195ec9236df857bac3b8f97b73b540ef06ead2ceccc3884954f","affectsGlobalScope":true},{"version":"ba28fd965a16969ba77fcfee9446e5353a6214a2a0bccfbed4d06ad7656ceb8d","signature":"26755a7b88797b6d8200e2336e6bfdf49c807a2e3b534c4340e8404b8ee3d18f"},{"version":"e382a7658f76f31d91f33c404b9526eeee7938eb4aee831feb51a3ba0e40a321","signature":"8c2a4bbd3555d93ed90e0c99548acc2b32c260cddafecec4b4cd454c1424ad1e"},"bd0d80db12ef1aceefc4f9d3eb88517b9634fa747ae8475981da8655292feab8","55e68fb1618e3f55f7866b8c8415152159309a14b716370081ab0b7af96d876e","bf0491af2455f92282b61807be2be6e7ad7d532e47fac7b698019d3617c28ff7","5d874fb879ab8601c02549817dceb2d0a30729cb7e161625dd6f819bbff1ec0b","ee551a880882770c4f56a0964a9767c9feafe497a5be52652527d098c88d85cb","b192606574769a5566620f9bf19358a3994bc2726ecdeaad9c66f3333b2687c8","29041ec2b56677a9adf3bcfa21bf513d29faacfea6964a0734a5e0a12982ac8c",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"381899b8d1d4c1be716f18cb5242ba39f66f4b1e31d45af62a32a99f8edcb39d","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},"773979fb94d64450b1567975ee28a630cae6f2c01c2c18e06563c744bb6fe0c4","8e3d399a59744e651362087da32211ed34c6e8dccee4002abb82ed2f9e4c7301","9a726679595a1e729708d633c114be758c8b4172029916456e3feab6f76e6e43","a0cf70217b68c414db6c4863831250c8a2d96469c8044b75edd3a460793c9887","8d7c0f64cebcc3690112c28a4861bd9385836b47e9d1c171e6362100b3cc32a8","17ba9202cb2a0e0deec28398f2ef6c95c7193cbe46b8b6eaf8f54f48aedd7139","2758842856646f2bebbeb5150707ca4b5ab8fa1d46d95b3386493e6d6b4221fc","f9523fca1617fd31e048afd09f08cca592a7bbaeca4d5ff1e1781ab0cd2ffe9b","881a6580fb531a8331bf04acd77bf935d81d92af0dc6b91996e4548cd6227429","997b40fb1aeb304b6d3bc9021361bd6c5a1ed3b1e1a1459533a9c854db4ac715","23d7a8b5d3297675007160f5cc75777e6eccf63ff6650bd3ed01eb0b3cdf2a38","8db59d5540f8bc033f35eb1a4a7903d202fbace0874b456e463af2675da2398b","c5a28d3d50c8edecc8cc87ae3a5dcfa34e630f970626bf30c552e681c7055fd0","5f8402dfce577684c2de40394f60628ffe6e44e6bc308dbeb1b643c527d758bf","daa0b5b58eab0c3dfc200cde4cc933084b908ede3aacdda1d2797f98c172142b","404cd1151ad5c08da06987950824a77194fc5e2c905e2b90252ad066d922614b","1d9af36f24bba0f0d3b80358e0b7fcccf8ea361d799adf0407e48b949fb3b82e","4807581687ad8a41a480f2f55a93eed33881d2c3a4bbcba14cd77fddd6c32f8c","32336f8d3f635d379eb6438dbbd2ead8deebda788e12062855815c0834a50720","f08d251cb25341aedf5edbfa1317f59f93ddb133de124a31962f656ab4f6ebd9","592aa170bf0e1e4a71f473747252bf79d56e7d821d33b2e3cce16a7fd168bd9f",{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},"14ed49cb68f29e36dfb562b7c382ce70d467b7310e8e27cc587772d029f372b7","2cc143754ed238f214e763525cd4c11613409a643fdd602f4e0a2b19f1f2d397","96520a873073a2f39f922d0a422498cdcc28be9066a769000cdd07ecaba7b645","c7284023c5462180e492357aeb94551a20aa41eac8ac517606f3766359d08bb9","ed4ec3d435678a5703a016a801afc2cd7b543c53ab4615b3e214cac9c30f560a","e345f2ee8dd216e738840035224950764086f16e6ef75de310747b839a3dc14e","501be290436f06ae2182915329b01cfd0850961814802237b5c24749fd2afa0c","cc34c3c1590513cdb6374890f421c06ad969cfd99b28efb6003a6afc845c49f8","ab6f9c23c44e0b20c2be80af46ffc9d0e6681efa05ee1704bb4c9fcef8e61497","e4dd91dd4789a109aab51d8a0569a282369fcda9ba6f2b2297bc61bacfb1a042","83e27bbd7304ea67f9afa1535f1d4fdb15866089f0d893c784cbb5b1c6fb3386","c4b39848e2fb237507a7acae0b83a34271c9d72714faae6a6b9075527205111b","d2d9e98a2b167079474768593e1e7125fc3db055add8fbdb5977e3d05a8a3696","6462da67490105ba7d98cf312c2faf8794c425781128b161ea8394d66502eec8","62359da52b6c8d00c50c2e50738fac82e902f916fdf458d8159e7edb1c60c3a8","1e0ac21bc775686383ea8c8e48bd98b385e6195b25c85525a7affd08a2cd38b9","0449615e1ed03c7d54fc435a63b7ef0cb4e5cea5ac40c9a63280a46f7eeae0ff",{"version":"b5b080e499df18235bac525ce43da935d1a068c5770f58b245d24b6ae8baa166","affectsGlobalScope":true},"7be4c510922d20d3946d7916b8a4c075429b179a3b143e3541bbbd4191e5988e","f295ab6b1bfd2b6b5b19ba621cca18c1b94b25c430c67fcb66c9594e89e3ff39","ea6c58f9711f6dc2f5609e085a1751d1284f1097b568852863bc24becf970831","f59327cd1c98362028d2d2b034b9bada17481ef7f12f13b046bc047ab4fc343c","d759d5a895085d1cfc89d1d1791c188c8170d933092db93e2b48676c49ee7310","23cdc008b29455b89f900f5667bbbb95df280deb7740e7a1d118f894118d8eb8","bc0ee5816f40067bef4972b88c81564d50b9aac01833a818a0528667730d7729","2c8e1d8fe99738fe377049c1baa8b074ac11bdbfad103881c6f012a09383e361","5fac858cb922fe34b898ddc12db441c878ec72bf6a1e3bcbe297f4da4bb6672a","7f119c8c5d4d145e6fcf668055a76f37ed273c24584d5bb90ff9f5520648b47d","eda83eb5ad3e0dab986107adbe50ebc6a2a832e20331770341263d82446369a4","7aad58c3b214bfb7e53ea867e8c34181c0458780b999e448fe953919b4401780",{"version":"fbe4a5b75dc59bc1b82010c79a7420e1613accb5925fb6511b00653c8de208b5","signature":"64fa5d796f6f8071c5e5282d751646e1863a20756814c232f3ac7656c39070a6"},"5ac6404ddc5d622905e131dbc5da0362a82e89d1cb97cc8256bf06ca9fad4b24",{"version":"9fcfbc2dd0c0614b3a25d41e4425dd86cdfa574a9e7d2febffc85badcee1a0b8","signature":"895ef4cd86d49605f187c52ac4b77f8139f69df7e2f539c27196d72c75df7d31"},{"version":"48674187365141743eaadc4ffa47b457bfa63d36e945b8e4f43d60b0fe6b1907","signature":"ee5f9536bf6f19945a671e027422956b23b812a5cdbef077cb8bce06512987d7"},{"version":"ffb67d1f7f5d12096a626f3fd43f4e3b6c3b3bc27a781b4f18d57c5017a39950","signature":"9992bfe40cad650194a736cdf7f0cc54035dbdb73388191edf46b85c7ddc986b"},{"version":"975eb852881942b64b42f35251bb55a75b6521e47c3eefe95d61f986265a5225","signature":"ebcf727b4ea8f6266308020bcf5a6f592bddc7ce27d49e88f0e04545305b5a8e"},{"version":"b86196ae20b726e4a42e00bbfc38361e5f751d3d738c952e659a1fbd60964d27","signature":"bfa6b4eb44114b5261a7dcf7d1e69f54af8bc4ab9a39fbe6063013f33ba8b641"},{"version":"c67951274199df6c887191adafac1c605901c3f6ce123351225e2e93c4282de4","signature":"8db3c1fe705300424e16eccb289f38f0f1fa48c0ba2f7ec73342b678c4582f5d"},{"version":"4fc2fcab4e27cceba55c653a6a35f9d9486ce732debfddfa946d0b7bab9229bb","signature":"00da318428374edba6adde61bea395981d1b13728c4dcc5b855f754b5112642e"},{"version":"9fe3ad22699e09cd90816d13110f6d87af62e2e0720c1afe8b2de94676b91571","signature":"58d8a243809620e7d2a164f62d4f57256e66775137cd276d5c4cfff1fd9e7ccd"},{"version":"f7c2e96070b71535448899394e918ae84abae597e457f8b5b99866c6e2c02b0f","signature":"ff76b8ba80b70f157bd235558599e13355a81b640c270e1f504cfb5b0c5b23fa"},{"version":"412e9398be155d644b609b06bb2d0b6f99d86bf3d7db81b27a357ad8df07e0c0","signature":"b453c1a2eac87cc7083566d798ca756e0256165b9e47d7e3db00426cea8fc626"},{"version":"19c27d32b928fb696df567fd2102de34e948bba3550b30787590d15ae58c86ef","signature":"0c37cfbb515ee4df942133efa11132b16e9a3c8b2bf70f602337756d0783918b"},{"version":"c17118d21ac084068b77eb8e382d9f8988e26bded75c7f0f0b132fa67d4ca625","signature":"cc24820820bdd2761360a0d8f809cfa686294a0c4481c3a69a9c61336ec68b80"},{"version":"6968fdcec473f7b2ca486d7cfe38f716f95ffe7eb602ed01fc3701cc654f5bc5","signature":"26f9698c5251a9c7a9ecdf39a52fa9d93d3758495921f41d17f016783bea312a"},"9a4c49a0b2bf8536b1f4a72f162f807d7a23aa27a816e9cd24cc965540ba4b35","146ba4b99c5feb82663e17a671bf9f53bb39c704cd76345d6c5a801c26372f44",{"version":"dc8a746041b9afc357038c00dc7bb204e7c758e5796e2b965782b10c010ea5da","signature":"3118e3f67853a4d11cd0225bdc00b683855c9fefa5a42bde70b5394b3b57551c"},{"version":"3c2eecbb08d00f262c3266a5729d8dc7033b12c10ad11085239d942330a66be4","signature":"0fadba7aa026b174f612f3ff924b5a2e9a6b53a70568d489f45afc375ad7cfcc"},{"version":"5beba082191ffa3874df0a9a7803c8d933b0da320a1b64862f57c3792584cfc1","signature":"829868d6ec1927e4700983dba2e0835327ecdd4d7f99072a3de19fda116551b4"},{"version":"50ed6e45c39d15e21c206f167abb7c33067931c37c8c660f1928e504a3ba6fda","signature":"0daf72d81e292312f185c81a2ad0648b226433a00d7d139addc06d39d078b2f1"},"abb6d9adcc79c591f712e79c55f769b48690ec66a55b6f6189569a0d357c7e58","5190f1a110a789c2f8ed8dcf2da6ce122dcb74249d0c01d19d1ed0b1c6bb02a1","3650bbe137c9c44bc6b8f44a56353b00eba9654e41a9355e6228f7f0f464c648","eb467c4dcea39773409e7cf23dce1c65991ce3d31c86a0a7e1dfd73b880fc986",{"version":"02fdc48e90772a67702e098b722a5772fddf789fb8aa961fc1e292655581df34","signature":"90b78b57b0842bd1fd5ec099a97cfb33146e6d2d52dd68d8a89ae834105ab366"},{"version":"e08f7f2e161bf3631ced28081d5b567ebce6f58dedc9930ec299b14f7dc52ae2","signature":"4a9216f87f9b92167b0b18cd90016000e71dd7ea61a95385b2b97be6585e9cb3"},{"version":"56a1d5d8e0d9fc4e3e39936097c3064338df9031872c8e21a9648e3390aae30c","signature":"496a712363ee622ead98319bdf81471e550993b83529174068fce0f0e2db1615"},{"version":"c12fb0c4b324c65600609051919b1de0da4630c66bdbd4dc268efe7780ff4ed8","signature":"92deca0757666c0db63066e8307e28452fed66d809d5c1ef0554b0475e3b098b"},{"version":"ea28e24296ad23e752a833c57ba347af21000e51a3d04d99e1c6d6ddc7e2cf24","signature":"887dc6c82444f5c7f3da9c1914b74a13bb46ca0f218deda5ea25d9fda2bef1b6"},{"version":"94dab901493475872f90a4e2d58eb6f2cf6265e95fecba1723436c15cd9b29e5","signature":"d628659c9f4df17c9f47205600cd27ca34327b6f49c03c3a92ba35194ba5358d"},{"version":"e1d7d13bf67f07f3efbed72a4ee999083be13ef8c9968e99f38586545b28b399","signature":"a895daacc14309d96555463210644d8e2aceef5d57346ce1bb513f8cdfabd393"},{"version":"6469e0325b8d62347b79baf42ba957cc2401ce05378bfd521737c049554028ae","signature":"7f1be7e4a47f9abe89d28793e59d0d7a935c7f14a597f1e2b6651d1e54f23957"},{"version":"e6afc6c377cdc0b881c15db7be06fe57fbdbb4074753bb36abdc26000de853ee","signature":"39f82ec23c92368df0de1449bb26e14280862e092ab8e3eaacf80570ac35a7f2"},{"version":"b4e83151bd067378d7fcce251d866b13f6789843a66d18f7c4ca58c3e70035e4","signature":"6f82e9d16b584ec9127bcccd8ce9311e587652acb36657458f9174ccaec7b354"},{"version":"6419036e9ec25b03fed142edef64280f5d7dbcc158170cb27899ecb9cb2dae8b","signature":"9798502506a30b631a4841a0c5e4dd369c8662c2ab08bf069fb464262cd9d9f8"},{"version":"205b5a62e15144e9bd6a49846df7d30399a5738a3ab439f35eb25e19aab66299","signature":"e3fa7ffb42258b9fc94b57a2547b30cd2abc69ce64a9031c6e27197a62c9c333"},{"version":"8d09f7a29021a69909eca56a60012bb043c703b82fbb1dede51186fedcce88f9","signature":"1a4f84d939445c350647adf2f5001ecc6fcef110b6daa79c11b3aa7c9984d0e1"},{"version":"593405def651364d973e4f004babc84c36d0975d0a51565bd15ba9e13cd17837","signature":"e7b7ca1fbfddbe67a3736393a170a4fe8d2929cdde754c08e4db38a03869ec94"},{"version":"d4d33a78e8cd5bca6bd5706fbbaa207f6d7983b180c274dc91ebba52e3ab90dc","signature":"7a536fc359a698b1cc477a7b5bb083262f0546e896611e2ca47c5a4d0cabbe3d"},"8eed414bd2305e20163d35205b450204002bf20e14c7241d7fec46bb18f174d2"],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"importsNotUsedAsValues":2,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":false,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[71],[67,68,69,70],[60,61,62,63],[60],[61],[72],[71,72],[73],[71,86,87],[94],[71,96],[110],[73,74],[72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,95,97,98,99,100,101,111,112,113,114,115,116,117,118,119,120],[151,152],[110,151],[110,137],[149,150],[110,149],[155,156],[110,121,150],[58,150],[58,110,145,148,150,152],[110,121,157],[121,159],[110,121,153],[56,58],[136],[58,137],[56,58,59,134,136,137,138,144,153,154,157,158,159,160,161,162],[123],[143],[136,139,140,142,163],[141],[57,125],[57,58,59,66,121,124,126,128,129,131,132,133,164],[57,130,131,164],[130,132],[57],[58,65,124,127,134,135],[127,136],[58],[64],[94,102,105,106,107,108,109],[103,104],[71,94],[68,69,70,165],[146,147],[148],[122],[71,136],[131,164],[132]],"referencedMap":[[104,1],[103,1],[71,2],[64,3],[61,4],[62,5],[77,1],[78,1],[80,6],[81,7],[83,1],[84,1],[85,1],[114,8],[88,9],[90,1],[118,1],[120,1],[86,1],[87,1],[91,1],[119,1],[95,10],[97,11],[116,1],[117,1],[111,12],[115,13],[101,1],[121,14],[72,1],[151,12],[161,15],[152,16],[149,17],[159,18],[150,19],[157,20],[156,21],[155,22],[153,23],[158,24],[160,25],[154,26],[59,27],[137,28],[138,29],[163,30],[124,31],[144,32],[143,33],[142,34],[126,35],[134,36],[132,37],[133,38],[130,39],[136,40],[128,41],[162,29],[58,39],[135,42],[65,43],[102,10],[110,44],[109,1],[105,45],[94,1],[108,46],[93,47],[148,48],[146,49],[123,50],[66,39]],"exportedModulesMap":[[104,1],[103,1],[71,2],[64,3],[61,4],[62,5],[77,1],[78,1],[80,6],[81,7],[83,1],[84,1],[85,1],[114,8],[88,9],[90,1],[118,1],[120,1],[86,1],[87,1],[91,1],[119,1],[95,10],[97,11],[116,1],[117,1],[111,12],[115,13],[101,1],[121,14],[72,1],[151,1],[149,51],[155,42],[153,42],[158,12],[160,1],[154,12],[59,42],[137,28],[138,42],[163,42],[143,28],[126,39],[134,42],[132,52],[133,53],[130,39],[136,42],[128,28],[162,42],[58,39],[135,42],[65,43],[102,10],[110,44],[109,1],[105,45],[94,1],[108,46],[93,47],[148,48],[146,49],[123,50],[66,39]],"semanticDiagnosticsPerFile":[96,69,104,103,67,71,70,68,140,139,125,57,11,13,12,2,14,15,16,17,18,19,20,21,3,4,25,22,23,24,26,27,28,5,29,30,31,32,6,36,33,34,35,37,7,38,43,44,39,40,41,42,8,48,45,46,47,49,9,50,51,52,53,54,1,10,55,60,63,64,61,62,75,77,76,78,79,80,81,82,112,83,84,85,114,88,89,90,118,120,86,87,91,119,92,95,97,98,116,99,100,117,111,115,101,113,121,72,73,74,151,161,152,149,159,150,157,156,155,153,158,160,154,59,137,138,56,163,124,144,143,142,141,126,134,131,164,132,133,130,129,136,128,162,127,58,135,65,102,110,107,109,105,94,108,106,93,147,148,146,145,122,123,66],"latestChangedDtsFile":"./build-types/index.d.ts"},"version":"4.9.5"}