@wordpress/data 9.6.0 → 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.
@@ -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
@@ -101,11 +103,11 @@ function createResolversCache() {
101
103
  function createBindingCache(bind) {
102
104
  const cache = new WeakMap();
103
105
  return {
104
- get(item) {
106
+ get(item, itemName) {
105
107
  let boundItem = cache.get(item);
106
108
 
107
109
  if (!boundItem) {
108
- boundItem = bind(item);
110
+ boundItem = bind(item, itemName);
109
111
  cache.set(item, boundItem);
110
112
  }
111
113
 
@@ -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,
@@ -192,15 +207,16 @@ export default function createReduxStore(key, options) {
192
207
  const allActions = new Proxy(() => {}, {
193
208
  get: (target, prop) => {
194
209
  const privateAction = privateActions[prop];
195
- return privateAction ? boundPrivateActions.get(privateAction) : actions[prop];
210
+ return privateAction ? boundPrivateActions.get(privateAction, prop) : actions[prop];
196
211
  }
197
212
  });
198
213
  const thunkActions = new Proxy(allActions, {
199
214
  apply: (target, thisArg, [action]) => store.dispatch(action)
200
215
  });
201
216
  lock(actions, allActions);
217
+ const resolvers = options.resolvers ? mapResolvers(options.resolvers) : {};
202
218
 
203
- function bindSelector(selector) {
219
+ function bindSelector(selector, selectorName) {
204
220
  if (selector.isRegistrySelector) {
205
221
  selector.registry = registry;
206
222
  }
@@ -211,8 +227,14 @@ export default function createReduxStore(key, options) {
211
227
  return selector(state.root, ...args);
212
228
  };
213
229
 
214
- boundSelector.hasResolver = false;
215
- return boundSelector;
230
+ const resolver = resolvers[selectorName];
231
+
232
+ if (!resolver) {
233
+ boundSelector.hasResolver = false;
234
+ return boundSelector;
235
+ }
236
+
237
+ return mapSelectorWithResolver(boundSelector, selectorName, resolver, store, resolversCache);
216
238
  }
217
239
 
218
240
  function bindMetadataSelector(selector) {
@@ -226,27 +248,20 @@ export default function createReduxStore(key, options) {
226
248
  return boundSelector;
227
249
  }
228
250
 
229
- let selectors = { ...mapValues(metadataSelectors, bindMetadataSelector),
251
+ const selectors = { ...mapValues(metadataSelectors, bindMetadataSelector),
230
252
  ...mapValues(options.selectors, bindSelector)
231
253
  };
232
- let resolvers;
233
-
234
- if (options.resolvers) {
235
- resolvers = mapResolvers(options.resolvers);
236
- selectors = mapSelectorsWithResolvers(selectors, resolvers, store, resolversCache);
237
- }
238
-
239
254
  const boundPrivateSelectors = createBindingCache(bindSelector); // Pre-bind the private selectors that have been registered by the time of
240
255
  // instantiation, so that registry selectors are bound to the registry.
241
256
 
242
- for (const privateSelector of Object.values(privateSelectors)) {
243
- boundPrivateSelectors.get(privateSelector);
257
+ for (const [selectorName, selector] of Object.entries(privateSelectors)) {
258
+ boundPrivateSelectors.get(selector, selectorName);
244
259
  }
245
260
 
246
261
  const allSelectors = new Proxy(() => {}, {
247
262
  get: (target, prop) => {
248
263
  const privateSelector = privateSelectors[prop];
249
- return privateSelector ? boundPrivateSelectors.get(privateSelector) : selectors[prop];
264
+ return privateSelector ? boundPrivateSelectors.get(privateSelector, prop) : selectors[prop];
250
265
  }
251
266
  });
252
267
  const thunkSelectors = new Proxy(allSelectors, {
@@ -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) => {
@@ -476,19 +496,20 @@ function mapResolvers(resolvers) {
476
496
  });
477
497
  }
478
498
  /**
479
- * Returns resolvers with matched selectors for a given namespace.
499
+ * Returns a selector with a matched resolver.
480
500
  * Resolvers are side effects invoked once per argument set of a given selector call,
481
501
  * used in ensuring that the data needs for the selector are satisfied.
482
502
  *
483
- * @param {Object} selectors The current selectors to be modified.
484
- * @param {Object} resolvers Resolvers to register.
503
+ * @param {Object} selector The selector function to be bound.
504
+ * @param {string} selectorName The selector name.
505
+ * @param {Object} resolver Resolver to call.
485
506
  * @param {Object} store The redux store to which the resolvers should be mapped.
486
507
  * @param {Object} resolversCache Resolvers Cache.
487
508
  */
488
509
 
489
510
 
490
- function mapSelectorsWithResolvers(selectors, resolvers, store, resolversCache) {
491
- function fulfillSelector(resolver, selectorName, args) {
511
+ function mapSelectorWithResolver(selector, selectorName, resolver, store, resolversCache) {
512
+ function fulfillSelector(args) {
492
513
  const state = store.getState();
493
514
 
494
515
  if (resolversCache.isRunning(selectorName, args) || typeof resolver.isFulfilled === 'function' && resolver.isFulfilled(state, ...args)) {
@@ -522,20 +543,12 @@ function mapSelectorsWithResolvers(selectors, resolvers, store, resolversCache)
522
543
  }, 0);
523
544
  }
524
545
 
525
- return mapValues(selectors, (selector, selectorName) => {
526
- const resolver = resolvers[selectorName];
527
-
528
- if (!resolver) {
529
- return selector;
530
- }
531
-
532
- const selectorResolver = (...args) => {
533
- fulfillSelector(resolver, selectorName, args);
534
- return selector(...args);
535
- };
546
+ const selectorResolver = (...args) => {
547
+ fulfillSelector(args);
548
+ return selector(...args);
549
+ };
536
550
 
537
- selectorResolver.hasResolver = true;
538
- return selectorResolver;
539
- });
551
+ selectorResolver.hasResolver = true;
552
+ return selectorResolver;
540
553
  }
541
554
  //# sourceMappingURL=index.js.map
@@ -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","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","bindSelector","selector","isRegistrySelector","boundSelector","__unstableOriginalGetState","root","hasResolver","bindMetadataSelector","metadata","resolvers","mapResolvers","mapSelectorsWithResolvers","boundPrivateSelectors","privateSelector","values","allSelectors","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","resolver","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 ) {\n\t\t\tlet boundItem = cache.get( item );\n\t\t\tif ( ! boundItem ) {\n\t\t\t\tboundItem = bind( item );\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 )\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\tfunction bindSelector( selector ) {\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\t\t\t\tboundSelector.hasResolver = false;\n\t\t\t\treturn boundSelector;\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\tlet 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\tlet resolvers;\n\t\t\tif ( options.resolvers ) {\n\t\t\t\tresolvers = mapResolvers( options.resolvers );\n\t\t\t\tselectors = mapSelectorsWithResolvers(\n\t\t\t\t\tselectors,\n\t\t\t\t\tresolvers,\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\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 privateSelector of Object.values( privateSelectors ) ) {\n\t\t\t\tboundPrivateSelectors.get( privateSelector );\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 )\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 resolvers with matched selectors for a given namespace.\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} selectors The current selectors to be modified.\n * @param {Object} resolvers Resolvers to register.\n * @param {Object} store The redux store to which the resolvers should be mapped.\n * @param {Object} resolversCache Resolvers Cache.\n */\nfunction mapSelectorsWithResolvers(\n\tselectors,\n\tresolvers,\n\tstore,\n\tresolversCache\n) {\n\tfunction fulfillSelector( resolver, selectorName, 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\treturn mapValues( selectors, ( selector, selectorName ) => {\n\t\tconst resolver = resolvers[ selectorName ];\n\t\tif ( ! resolver ) {\n\t\t\treturn selector;\n\t\t}\n\n\t\tconst selectorResolver = ( ...args ) => {\n\t\t\tfulfillSelector( resolver, selectorName, args );\n\t\t\treturn selector( ...args );\n\t\t};\n\t\tselectorResolver.hasResolver = true;\n\t\treturn selectorResolver;\n\t} );\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":"AAAA;AACA;AACA;AACA,SAASA,WAAT,EAAsBC,eAAtB,QAA6C,OAA7C;AACA,OAAOC,eAAP,MAA4B,wBAA5B;AACA,OAAOC,gBAAP,MAA6B,oBAA7B;AAEA;AACA;AACA;;AACA,OAAOC,4BAAP,MAAyC,0BAAzC;AACA,SAASC,OAAT,QAAwB,oBAAxB;AAEA;AACA;AACA;;AACA,SAASC,eAAT,QAAgC,aAAhC;AACA,SAASC,IAAT,QAAqB,gBAArB;AACA,OAAOC,OAAP,MAAoB,uBAApB;AACA,OAAOC,8BAAP,MAA2C,+BAA3C;AACA,OAAOC,qBAAP,MAAkC,oBAAlC;AACA,OAAOC,eAAP,MAA4B,oBAA5B;AACA,OAAO,KAAKC,iBAAZ,MAAmC,sBAAnC;AACA,OAAO,KAAKC,eAAZ,MAAiC,oBAAjC;AAEA;;AACA;;AACA;AACA;AACA;AACA;;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,mBAAmB,GAAKC,KAAF,IAAa;AACxC,QAAMC,MAAM,GAAG,CAAE,GAAGD,KAAL,CAAf;;AACA,OAAM,IAAIE,CAAC,GAAGD,MAAM,CAACE,MAAP,GAAgB,CAA9B,EAAiCD,CAAC,IAAI,CAAtC,EAAyCA,CAAC,EAA1C,EAA+C;AAC9C,QAAKD,MAAM,CAAEC,CAAF,CAAN,KAAgBE,SAArB,EAAiC;AAChCH,MAAAA,MAAM,CAACI,MAAP,CAAeH,CAAf,EAAkB,CAAlB;AACA;AACD;;AACD,SAAOD,MAAP;AACA,CARD;AAUA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,MAAMK,SAAS,GAAG,CAAEC,GAAF,EAAOC,QAAP,KACjBC,MAAM,CAACC,WAAP,CACCD,MAAM,CAACE,OAAP,CAAgBJ,GAAhB,aAAgBA,GAAhB,cAAgBA,GAAhB,GAAuB,EAAvB,EAA4BK,GAA5B,CAAiC,CAAE,CAAEC,GAAF,EAAOC,KAAP,CAAF,KAAsB,CACtDD,GADsD,EAEtDL,QAAQ,CAAEM,KAAF,EAASD,GAAT,CAF8C,CAAvD,CADD,CADD,C,CAQA;;;AACA,MAAME,WAAW,GAAG,CAAEF,GAAF,EAAOG,KAAP,KAAkB;AACrC,MAAKA,KAAK,YAAYC,GAAtB,EAA4B;AAC3B,WAAOR,MAAM,CAACC,WAAP,CAAoBM,KAApB,CAAP;AACA;;AAED,SAAOA,KAAP;AACA,CAND;AAQA;AACA;AACA;AACA;AACA;;;AACA,SAASE,oBAAT,GAAgC;AAC/B,QAAMC,KAAK,GAAG,EAAd;AACA,SAAO;AACNC,IAAAA,SAAS,CAAEC,YAAF,EAAgBC,IAAhB,EAAuB;AAC/B,aACCH,KAAK,CAAEE,YAAF,CAAL,IACAF,KAAK,CAAEE,YAAF,CAAL,CAAsBE,GAAtB,CAA2BxB,mBAAmB,CAAEuB,IAAF,CAA9C,CAFD;AAIA,KANK;;AAQNE,IAAAA,KAAK,CAAEH,YAAF,EAAgBC,IAAhB,EAAuB;AAC3B,UAAKH,KAAK,CAAEE,YAAF,CAAV,EAA6B;AAC5BF,QAAAA,KAAK,CAAEE,YAAF,CAAL,CAAsBI,MAAtB,CAA8B1B,mBAAmB,CAAEuB,IAAF,CAAjD;AACA;AACD,KAZK;;AAcNI,IAAAA,aAAa,CAAEL,YAAF,EAAgBC,IAAhB,EAAuB;AACnC,UAAK,CAAEH,KAAK,CAAEE,YAAF,CAAZ,EAA+B;AAC9BF,QAAAA,KAAK,CAAEE,YAAF,CAAL,GAAwB,IAAIjC,gBAAJ,EAAxB;AACA;;AAED+B,MAAAA,KAAK,CAAEE,YAAF,CAAL,CAAsBM,GAAtB,CAA2B5B,mBAAmB,CAAEuB,IAAF,CAA9C,EAAwD,IAAxD;AACA;;AApBK,GAAP;AAsBA;;AAED,SAASM,kBAAT,CAA6BC,IAA7B,EAAoC;AACnC,QAAMV,KAAK,GAAG,IAAIW,OAAJ,EAAd;AAEA,SAAO;AACNP,IAAAA,GAAG,CAAEQ,IAAF,EAAQC,QAAR,EAAmB;AACrB,UAAIC,SAAS,GAAGd,KAAK,CAACI,GAAN,CAAWQ,IAAX,CAAhB;;AACA,UAAK,CAAEE,SAAP,EAAmB;AAClBA,QAAAA,SAAS,GAAGJ,IAAI,CAAEE,IAAF,EAAQC,QAAR,CAAhB;AACAb,QAAAA,KAAK,CAACQ,GAAN,CAAWI,IAAX,EAAiBE,SAAjB;AACA;;AACD,aAAOA,SAAP;AACA;;AARK,GAAP;AAUA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,eAAe,SAASC,gBAAT,CAA2BrB,GAA3B,EAAgCsB,OAAhC,EAA0C;AACxD,QAAMC,cAAc,GAAG,EAAvB;AACA,QAAMC,gBAAgB,GAAG,EAAzB;AACA,QAAMC,4BAA4B,GAAG;AACpCF,IAAAA,cADoC;AAEpCG,IAAAA,sBAAsB,EAAIC,OAAF,IAAe;AACtC/B,MAAAA,MAAM,CAACgC,MAAP,CAAeL,cAAf,EAA+BI,OAA/B;AACA,KAJmC;AAKpCH,IAAAA,gBALoC;AAMpCK,IAAAA,wBAAwB,EAAIC,SAAF,IAAiB;AAC1ClC,MAAAA,MAAM,CAACgC,MAAP,CAAeJ,gBAAf,EAAiCM,SAAjC;AACA;AARmC,GAArC;AAUA,QAAMC,eAAe,GAAG;AACvBC,IAAAA,IAAI,EAAEhC,GADiB;AAEvBiC,IAAAA,WAAW,EAAIC,QAAF,IAAgB;AAC5B;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACG,YAAMC,SAAS,GAAG,IAAIC,GAAJ,EAAlB;AACA,YAAMC,OAAO,GAAGf,OAAO,CAACe,OAAxB;AACA,YAAMC,SAAS,GAAG;AACjBJ,QAAAA,QADiB;;AAEjB,YAAIK,QAAJ,GAAe;AACd,iBAAOC,YAAP;AACA,SAJgB;;AAKjB,YAAIC,MAAJ,GAAa;AACZ,iBAAOC,cAAP;AACA,SAPgB;;AAQjB,YAAIC,aAAJ,GAAoB;AACnB,iBAAOC,mBAAmB,EAA1B;AACA;;AAVgB,OAAlB;AAaA,YAAMC,KAAK,GAAGC,qBAAqB,CAClC9C,GADkC,EAElCsB,OAFkC,EAGlCY,QAHkC,EAIlCI,SAJkC,CAAnC,CA5B4B,CAkC5B;AACA;;AACA3D,MAAAA,IAAI,CAAEkE,KAAF,EAASpB,4BAAT,CAAJ;AACA,YAAMsB,cAAc,GAAG1C,oBAAoB,EAA3C;;AAEA,eAAS2C,UAAT,CAAqBC,MAArB,EAA8B;AAC7B,eAAO,CAAE,GAAGxC,IAAL,KACNyC,OAAO,CAACC,OAAR,CAAiBN,KAAK,CAACN,QAAN,CAAgBU,MAAM,CAAE,GAAGxC,IAAL,CAAtB,CAAjB,CADD;AAEA;;AAED,YAAMkB,OAAO,GAAG,EACf,GAAGlC,SAAS,CAAER,eAAF,EAAmB+D,UAAnB,CADG;AAEf,WAAGvD,SAAS,CAAE6B,OAAO,CAACK,OAAV,EAAmBqB,UAAnB;AAFG,OAAhB;AAKA,YAAMI,mBAAmB,GAAGrC,kBAAkB,CAAEiC,UAAF,CAA9C;AACA,YAAMK,UAAU,GAAG,IAAIC,KAAJ,CAAW,MAAM,CAAE,CAAnB,EAAqB;AACvC5C,QAAAA,GAAG,EAAE,CAAE6C,MAAF,EAAUC,IAAV,KAAoB;AACxB,gBAAMC,aAAa,GAAGlC,cAAc,CAAEiC,IAAF,CAApC;AACA,iBAAOC,aAAa,GACjBL,mBAAmB,CAAC1C,GAApB,CAAyB+C,aAAzB,EAAwCD,IAAxC,CADiB,GAEjB7B,OAAO,CAAE6B,IAAF,CAFV;AAGA;AANsC,OAArB,CAAnB;AASA,YAAMhB,YAAY,GAAG,IAAIc,KAAJ,CAAWD,UAAX,EAAuB;AAC3CK,QAAAA,KAAK,EAAE,CAAEH,MAAF,EAAUI,OAAV,EAAmB,CAAEV,MAAF,CAAnB,KACNJ,KAAK,CAACN,QAAN,CAAgBU,MAAhB;AAF0C,OAAvB,CAArB;AAKAtE,MAAAA,IAAI,CAAEgD,OAAF,EAAW0B,UAAX,CAAJ;AAEA,YAAMO,SAAS,GAAGtC,OAAO,CAACsC,SAAR,GACfC,YAAY,CAAEvC,OAAO,CAACsC,SAAV,CADG,GAEf,EAFH;;AAIA,eAASE,YAAT,CAAuBC,QAAvB,EAAiCvD,YAAjC,EAAgD;AAC/C,YAAKuD,QAAQ,CAACC,kBAAd,EAAmC;AAClCD,UAAAA,QAAQ,CAAC7B,QAAT,GAAoBA,QAApB;AACA;;AACD,cAAM+B,aAAa,GAAG,CAAE,GAAGxD,IAAL,KAAe;AACpC,gBAAMN,KAAK,GAAG0C,KAAK,CAACqB,0BAAN,EAAd;;AACA,iBAAOH,QAAQ,CAAE5D,KAAK,CAACgE,IAAR,EAAc,GAAG1D,IAAjB,CAAf;AACA,SAHD;;AAKA,cAAM2D,QAAQ,GAAGR,SAAS,CAAEpD,YAAF,CAA1B;;AACA,YAAK,CAAE4D,QAAP,EAAkB;AACjBH,UAAAA,aAAa,CAACI,WAAd,GAA4B,KAA5B;AACA,iBAAOJ,aAAP;AACA;;AAED,eAAOK,uBAAuB,CAC7BL,aAD6B,EAE7BzD,YAF6B,EAG7B4D,QAH6B,EAI7BvB,KAJ6B,EAK7BE,cAL6B,CAA9B;AAOA;;AAED,eAASwB,oBAAT,CAA+BR,QAA/B,EAA0C;AACzC,cAAME,aAAa,GAAG,CAAE,GAAGxD,IAAL,KAAe;AACpC,gBAAMN,KAAK,GAAG0C,KAAK,CAACqB,0BAAN,EAAd;;AACA,iBAAOH,QAAQ,CAAE5D,KAAK,CAACqE,QAAR,EAAkB,GAAG/D,IAArB,CAAf;AACA,SAHD;;AAIAwD,QAAAA,aAAa,CAACI,WAAd,GAA4B,KAA5B;AACA,eAAOJ,aAAP;AACA;;AAED,YAAMnC,SAAS,GAAG,EACjB,GAAGrC,SAAS,CAAET,iBAAF,EAAqBuF,oBAArB,CADK;AAEjB,WAAG9E,SAAS,CAAE6B,OAAO,CAACQ,SAAV,EAAqBgC,YAArB;AAFK,OAAlB;AAKA,YAAMW,qBAAqB,GAAG1D,kBAAkB,CAAE+C,YAAF,CAAhD,CA5G4B,CA8G5B;AACA;;AACA,WAAM,MAAM,CAAEtD,YAAF,EAAgBuD,QAAhB,CAAZ,IAA0CnE,MAAM,CAACE,OAAP,CACzC0B,gBADyC,CAA1C,EAEI;AACHiD,QAAAA,qBAAqB,CAAC/D,GAAtB,CAA2BqD,QAA3B,EAAqCvD,YAArC;AACA;;AAED,YAAMkE,YAAY,GAAG,IAAIpB,KAAJ,CAAW,MAAM,CAAE,CAAnB,EAAqB;AACzC5C,QAAAA,GAAG,EAAE,CAAE6C,MAAF,EAAUC,IAAV,KAAoB;AACxB,gBAAMmB,eAAe,GAAGnD,gBAAgB,CAAEgC,IAAF,CAAxC;AACA,iBAAOmB,eAAe,GACnBF,qBAAqB,CAAC/D,GAAtB,CAA2BiE,eAA3B,EAA4CnB,IAA5C,CADmB,GAEnB1B,SAAS,CAAE0B,IAAF,CAFZ;AAGA;AANwC,OAArB,CAArB;AASA,YAAMd,cAAc,GAAG,IAAIY,KAAJ,CAAWoB,YAAX,EAAyB;AAC/ChB,QAAAA,KAAK,EAAE,CAAEH,MAAF,EAAUI,OAAV,EAAmB,CAAEI,QAAF,CAAnB,KACNA,QAAQ,CAAElB,KAAK,CAACqB,0BAAN,EAAF;AAFsC,OAAzB,CAAvB;AAKAvF,MAAAA,IAAI,CAAEmD,SAAF,EAAa4C,YAAb,CAAJ;AAEA,YAAME,gBAAgB,GAAGC,mBAAmB,CAAE/C,SAAF,EAAae,KAAb,CAA5C;AACA,YAAMiC,gBAAgB,GAAGC,mBAAmB,CAAEjD,SAAF,EAAae,KAAb,CAA5C;;AAEA,YAAMmC,YAAY,GAAG,MAAMlD,SAA3B;;AACA,YAAMmD,UAAU,GAAG,MAAMtD,OAAzB;;AACA,YAAMiB,mBAAmB,GAAG,MAAMgC,gBAAlC;;AACA,YAAMM,mBAAmB,GAAG,MAAMJ,gBAAlC,CA5I4B,CA8I5B;AACA;AACA;;;AACAjC,MAAAA,KAAK,CAACqB,0BAAN,GAAmCrB,KAAK,CAACsC,QAAzC;;AACAtC,MAAAA,KAAK,CAACsC,QAAN,GAAiB,MAAMtC,KAAK,CAACqB,0BAAN,GAAmCC,IAA1D,CAlJ4B,CAoJ5B;AACA;;;AACA,YAAMiB,SAAS,GACdvC,KAAK,KACDwC,QAAF,IAAgB;AACjBlD,QAAAA,SAAS,CAACmD,GAAV,CAAeD,QAAf;AAEA,eAAO,MAAMlD,SAAS,CAACvB,MAAV,CAAkByE,QAAlB,CAAb;AACA,OALI,CADN;;AAQA,UAAIE,SAAS,GAAG1C,KAAK,CAACqB,0BAAN,EAAhB;;AACArB,MAAAA,KAAK,CAACuC,SAAN,CAAiB,MAAM;AACtB,cAAMjF,KAAK,GAAG0C,KAAK,CAACqB,0BAAN,EAAd;;AACA,cAAMsB,UAAU,GAAGrF,KAAK,KAAKoF,SAA7B;AACAA,QAAAA,SAAS,GAAGpF,KAAZ;;AAEA,YAAKqF,UAAL,EAAkB;AACjB,eAAM,MAAMH,QAAZ,IAAwBlD,SAAxB,EAAoC;AACnCkD,YAAAA,QAAQ;AACR;AACD;AACD,OAVD,EA/J4B,CA2K5B;AACA;;AACA,aAAO;AACNhD,QAAAA,OADM;AAENQ,QAAAA,KAFM;AAGNlB,QAAAA,OAHM;AAING,QAAAA,SAJM;AAKN8B,QAAAA,SALM;AAMNoB,QAAAA,YANM;AAONpC,QAAAA,mBAPM;AAQNsC,QAAAA,mBARM;AASND,QAAAA,UATM;AAUNG,QAAAA;AAVM,OAAP;AAYA;AA3LsB,GAAxB,CAbwD,CA2MxD;AACA;AACA;;AACAzG,EAAAA,IAAI,CAAEoD,eAAF,EAAmBN,4BAAnB,CAAJ;AAEA,SAAOM,eAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASe,qBAAT,CAAgC9C,GAAhC,EAAqCsB,OAArC,EAA8CY,QAA9C,EAAwDI,SAAxD,EAAoE;AACnE,QAAMmD,QAAQ,GAAG,EAChB,GAAGnE,OAAO,CAACmE,QADK;AAEhB,OAAG/G;AAFa,GAAjB;AAKA,QAAMgH,kBAAkB,GAAGjG,SAAS,CAAEgG,QAAF,EAAcE,OAAF,IAC/CA,OAAO,CAACC,iBAAR,GAA4BD,OAAO,CAAEzD,QAAF,CAAnC,GAAkDyD,OADf,CAApC;AAIA,QAAME,WAAW,GAAG,CACnBhH,8BAA8B,CAAEqD,QAAF,EAAYlC,GAAZ,CADX,EAEnBpB,OAFmB,EAGnBJ,4BAA4B,CAAEkH,kBAAF,CAHT,EAInB5G,qBAAqB,CAAEwD,SAAF,CAJF,CAApB;AAOA,QAAMwD,SAAS,GAAG,CAAEzH,eAAe,CAAE,GAAGwH,WAAL,CAAjB,CAAlB;;AACA,MACC,OAAOE,MAAP,KAAkB,WAAlB,IACAA,MAAM,CAACC,4BAFR,EAGE;AACDF,IAAAA,SAAS,CAACG,IAAV,CACCF,MAAM,CAACC,4BAAP,CAAqC;AACpChE,MAAAA,IAAI,EAAEhC,GAD8B;AAEpCkG,MAAAA,UAAU,EAAElG,GAFwB;AAGpCmG,MAAAA,SAAS,EAAE;AACVC,QAAAA,QAAQ,EAAElG;AADA;AAHyB,KAArC,CADD;AASA;;AAED,QAAM;AAAEmC,IAAAA,OAAF;AAAWgE,IAAAA;AAAX,MAA4B/E,OAAlC;AACA,QAAMgF,eAAe,GAAGhI,eAAe,CAAE;AACxCkG,IAAAA,QAAQ,EAAEzF,eAD8B;AAExCoF,IAAAA,IAAI,EAAE9B;AAFkC,GAAF,CAAvC;AAKA,SAAOjE,WAAW,CACjBkI,eADiB,EAEjB;AAAEnC,IAAAA,IAAI,EAAEkC;AAAR,GAFiB,EAGjB5H,OAAO,CAAEqH,SAAF,CAHU,CAAlB;AAKA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASjB,mBAAT,CAA8B/C,SAA9B,EAAyCe,KAAzC,EAAiD;AAChD,QAAM;AACL0D,IAAAA,cADK;AAELC,IAAAA,oBAFK;AAGLC,IAAAA,qBAHK;AAILC,IAAAA,mBAJK;AAKLC,IAAAA,WALK;AAMLC,IAAAA,kBANK;AAOLC,IAAAA,kBAPK;AAQLC,IAAAA,kBARK;AASLC,IAAAA,qBATK;AAUL,OAAGC;AAVE,MAWFlF,SAXJ;AAaA,SAAOrC,SAAS,CAAEuH,cAAF,EAAkB,CAAEjD,QAAF,EAAYvD,YAAZ,KAA8B;AAC/D;AACA;AACA,QAAK,CAAEuD,QAAQ,CAACM,WAAhB,EAA8B;AAC7B,aAAO,OAAQ,GAAG5D,IAAX,KAAqBsD,QAAQ,CAACL,KAAT,CAAgB,IAAhB,EAAsBjD,IAAtB,CAA5B;AACA;;AAED,WAAO,CAAE,GAAGA,IAAL,KAAe;AACrB,aAAO,IAAIyC,OAAJ,CAAa,CAAEC,OAAF,EAAW8D,MAAX,KAAuB;AAC1C,cAAMC,WAAW,GAAG,MACnBpF,SAAS,CAAC2E,qBAAV,CAAiCjG,YAAjC,EAA+CC,IAA/C,CADD;;AAEA,cAAM0G,QAAQ,GAAK/H,MAAF,IAAc;AAC9B,gBAAMgI,SAAS,GAAGtF,SAAS,CAAC4E,mBAAV,CACjBlG,YADiB,EAEjBC,IAFiB,CAAlB;;AAIA,cAAK2G,SAAL,EAAiB;AAChB,kBAAMC,KAAK,GAAGvF,SAAS,CAACgF,kBAAV,CACbtG,YADa,EAEbC,IAFa,CAAd;AAIAwG,YAAAA,MAAM,CAAEI,KAAF,CAAN;AACA,WAND,MAMO;AACNlE,YAAAA,OAAO,CAAE/D,MAAF,CAAP;AACA;AACD,SAdD;;AAeA,cAAMkI,SAAS,GAAG,MAAMvD,QAAQ,CAACL,KAAT,CAAgB,IAAhB,EAAsBjD,IAAtB,CAAxB,CAlB0C,CAmB1C;;;AACA,cAAMrB,MAAM,GAAGkI,SAAS,EAAxB;;AACA,YAAKJ,WAAW,EAAhB,EAAqB;AACpB,iBAAOC,QAAQ,CAAE/H,MAAF,CAAf;AACA;;AAED,cAAMmI,WAAW,GAAG1E,KAAK,CAACuC,SAAN,CAAiB,MAAM;AAC1C,cAAK8B,WAAW,EAAhB,EAAqB;AACpBK,YAAAA,WAAW;AACXJ,YAAAA,QAAQ,CAAEG,SAAS,EAAX,CAAR;AACA;AACD,SALmB,CAApB;AAMA,OA/BM,CAAP;AAgCA,KAjCD;AAkCA,GAzCe,CAAhB;AA0CA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASvC,mBAAT,CAA8BjD,SAA9B,EAAyCe,KAAzC,EAAiD;AAChD,SAAOpD,SAAS,CAAEqC,SAAF,EAAa,CAAEiC,QAAF,EAAYvD,YAAZ,KAA8B;AAC1D;AACA,QAAK,CAAEuD,QAAQ,CAACM,WAAhB,EAA8B;AAC7B,aAAON,QAAP;AACA;;AAED,WAAO,CAAE,GAAGtD,IAAL,KAAe;AACrB,YAAMrB,MAAM,GAAG2E,QAAQ,CAACL,KAAT,CAAgB,IAAhB,EAAsBjD,IAAtB,CAAf;;AAEA,UAAKqB,SAAS,CAAC2E,qBAAV,CAAiCjG,YAAjC,EAA+CC,IAA/C,CAAL,EAA6D;AAC5D,YAAKqB,SAAS,CAAC4E,mBAAV,CAA+BlG,YAA/B,EAA6CC,IAA7C,CAAL,EAA2D;AAC1D,gBAAMqB,SAAS,CAACgF,kBAAV,CAA8BtG,YAA9B,EAA4CC,IAA5C,CAAN;AACA;;AAED,eAAOrB,MAAP;AACA;;AAED,YAAM,IAAI8D,OAAJ,CAAeC,OAAF,IAAe;AACjC,cAAMoE,WAAW,GAAG1E,KAAK,CAACuC,SAAN,CAAiB,MAAM;AAC1C,cACCtD,SAAS,CAAC2E,qBAAV,CAAiCjG,YAAjC,EAA+CC,IAA/C,CADD,EAEE;AACD0C,YAAAA,OAAO;AACPoE,YAAAA,WAAW;AACX;AACD,SAPmB,CAApB;AAQA,OATK,CAAN;AAUA,KArBD;AAsBA,GA5Be,CAAhB;AA6BA;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS1D,YAAT,CAAuBD,SAAvB,EAAmC;AAClC,SAAOnE,SAAS,CAAEmE,SAAF,EAAeQ,QAAF,IAAgB;AAC5C,QAAKA,QAAQ,CAACoD,OAAd,EAAwB;AACvB,aAAOpD,QAAP;AACA;;AAED,WAAO,EACN,GAAGA,QADG;AACO;AACboD,MAAAA,OAAO,EAAEpD,QAFH,CAEa;;AAFb,KAAP;AAIA,GATe,CAAhB;AAUA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,uBAAT,CACCP,QADD,EAECvD,YAFD,EAGC4D,QAHD,EAICvB,KAJD,EAKCE,cALD,EAME;AACD,WAAS0E,eAAT,CAA0BhH,IAA1B,EAAiC;AAChC,UAAMN,KAAK,GAAG0C,KAAK,CAACsC,QAAN,EAAd;;AAEA,QACCpC,cAAc,CAACxC,SAAf,CAA0BC,YAA1B,EAAwCC,IAAxC,KACE,OAAO2D,QAAQ,CAACsD,WAAhB,KAAgC,UAAhC,IACDtD,QAAQ,CAACsD,WAAT,CAAsBvH,KAAtB,EAA6B,GAAGM,IAAhC,CAHF,EAIE;AACD;AACA;;AAED,UAAM;AAAE+D,MAAAA;AAAF,QAAe3B,KAAK,CAACqB,0BAAN,EAArB;;AAEA,QACClF,iBAAiB,CAACwH,oBAAlB,CACChC,QADD,EAEChE,YAFD,EAGCC,IAHD,CADD,EAME;AACD;AACA;;AAEDsC,IAAAA,cAAc,CAAClC,aAAf,CAA8BL,YAA9B,EAA4CC,IAA5C;AAEAkH,IAAAA,UAAU,CAAE,YAAY;AACvB5E,MAAAA,cAAc,CAACpC,KAAf,CAAsBH,YAAtB,EAAoCC,IAApC;AACAoC,MAAAA,KAAK,CAACN,QAAN,CACCtD,eAAe,CAAC2I,eAAhB,CAAiCpH,YAAjC,EAA+CC,IAA/C,CADD;;AAGA,UAAI;AACH,cAAMwC,MAAM,GAAGmB,QAAQ,CAACoD,OAAT,CAAkB,GAAG/G,IAArB,CAAf;;AACA,YAAKwC,MAAL,EAAc;AACb,gBAAMJ,KAAK,CAACN,QAAN,CAAgBU,MAAhB,CAAN;AACA;;AACDJ,QAAAA,KAAK,CAACN,QAAN,CACCtD,eAAe,CAAC4I,gBAAhB,CAAkCrH,YAAlC,EAAgDC,IAAhD,CADD;AAGA,OARD,CAQE,OAAQ4G,KAAR,EAAgB;AACjBxE,QAAAA,KAAK,CAACN,QAAN,CACCtD,eAAe,CAAC6I,cAAhB,CAAgCtH,YAAhC,EAA8CC,IAA9C,EAAoD4G,KAApD,CADD;AAGA;AACD,KAlBS,EAkBP,CAlBO,CAAV;AAmBA;;AAED,QAAMU,gBAAgB,GAAG,CAAE,GAAGtH,IAAL,KAAe;AACvCgH,IAAAA,eAAe,CAAEhH,IAAF,CAAf;AACA,WAAOsD,QAAQ,CAAE,GAAGtD,IAAL,CAAf;AACA,GAHD;;AAIAsH,EAAAA,gBAAgB,CAAC1D,WAAjB,GAA+B,IAA/B;AACA,SAAO0D,gBAAP;AACA","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,+KA8LhB;2BA9Sa,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.6.0",
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.13.0",
33
- "@wordpress/deprecated": "^3.36.0",
34
- "@wordpress/element": "^5.13.0",
35
- "@wordpress/is-shallow-equal": "^4.36.0",
36
- "@wordpress/priority-queue": "^2.36.0",
37
- "@wordpress/private-apis": "^0.18.0",
38
- "@wordpress/redux-routine": "^4.36.0",
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": "d47d8069e1aae05d4a16dc287902eb90edcbff50"
53
+ "gitHead": "bcd13d59b22553b3c9dc5869077bff1e864cf9f5"
54
54
  }