@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 +4 -0
- package/build/redux-store/index.js +28 -8
- package/build/redux-store/index.js.map +1 -1
- package/build/registry.js +6 -0
- package/build/registry.js.map +1 -1
- package/build-module/redux-store/index.js +28 -8
- package/build-module/redux-store/index.js.map +1 -1
- package/build-module/registry.js +6 -0
- package/build-module/registry.js.map +1 -1
- package/build-types/redux-store/index.d.ts +1 -0
- package/build-types/redux-store/index.d.ts.map +1 -1
- package/build-types/registry.d.ts.map +1 -1
- package/build-types/types.d.ts +5 -0
- package/build-types/types.d.ts.map +1 -1
- package/package.json +9 -9
- package/src/redux-store/index.js +31 -10
- package/src/redux-store/test/index.js +0 -1
- package/src/registry.js +6 -0
- package/src/test/registry.js +21 -0
- package/src/types.ts +6 -0
- package/tsconfig.tsbuildinfo +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -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
|
-
|
|
318
|
+
listeners.add(listener);
|
|
319
|
+
return () => listeners.delete(listener);
|
|
320
|
+
});
|
|
304
321
|
|
|
305
|
-
|
|
306
|
-
|
|
322
|
+
let lastState = store.__unstableOriginalGetState();
|
|
323
|
+
|
|
324
|
+
store.subscribe(() => {
|
|
325
|
+
const state = store.__unstableOriginalGetState();
|
|
307
326
|
|
|
308
|
-
|
|
309
|
-
|
|
327
|
+
const hasChanged = state !== lastState;
|
|
328
|
+
lastState = state;
|
|
310
329
|
|
|
311
|
-
|
|
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();
|
package/build/registry.js.map
CHANGED
|
@@ -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
|
-
|
|
292
|
+
listeners.add(listener);
|
|
293
|
+
return () => listeners.delete(listener);
|
|
294
|
+
});
|
|
278
295
|
|
|
279
|
-
|
|
280
|
-
|
|
296
|
+
let lastState = store.__unstableOriginalGetState();
|
|
297
|
+
|
|
298
|
+
store.subscribe(() => {
|
|
299
|
+
const state = store.__unstableOriginalGetState();
|
|
281
300
|
|
|
282
|
-
|
|
283
|
-
|
|
301
|
+
const hasChanged = state !== lastState;
|
|
302
|
+
lastState = state;
|
|
284
303
|
|
|
285
|
-
|
|
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"]}
|
package/build-module/registry.js
CHANGED
|
@@ -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":"
|
|
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,
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.js"],"names":[],"mappings":"AA8CA;;;;;;;;GAQG;AACH,8CALW,MAAM,WACN,MAAM,UAEL,cAAc,CAkVzB"}
|
package/build-types/types.d.ts
CHANGED
|
@@ -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.
|
|
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.
|
|
33
|
-
"@wordpress/deprecated": "^3.
|
|
34
|
-
"@wordpress/element": "^5.
|
|
35
|
-
"@wordpress/is-shallow-equal": "^4.
|
|
36
|
-
"@wordpress/priority-queue": "^2.
|
|
37
|
-
"@wordpress/private-apis": "^0.
|
|
38
|
-
"@wordpress/redux-routine": "^4.
|
|
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": "
|
|
53
|
+
"gitHead": "bcd13d59b22553b3c9dc5869077bff1e864cf9f5"
|
|
54
54
|
}
|
package/src/redux-store/index.js
CHANGED
|
@@ -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
|
-
|
|
301
|
-
|
|
302
|
-
|
|
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();
|
package/src/test/registry.js
CHANGED
|
@@ -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
|
>
|
package/tsconfig.tsbuildinfo
CHANGED
|
@@ -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"}
|