@wordpress/data 9.19.0 → 9.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 9.20.0 (2024-01-24)
6
+
5
7
  ## 9.19.0 (2024-01-10)
6
8
 
7
9
  ## 9.18.0 (2023-12-13)
package/build/factory.js CHANGED
@@ -46,10 +46,22 @@ exports.createRegistrySelector = createRegistrySelector;
46
46
  * @return {Function} Registry selector that can be registered with a store.
47
47
  */
48
48
  function createRegistrySelector(registrySelector) {
49
+ const selectorsByRegistry = new WeakMap();
49
50
  // Create a selector function that is bound to the registry referenced by `selector.registry`
50
51
  // and that has the same API as a regular selector. Binding it in such a way makes it
51
52
  // possible to call the selector directly from another selector.
52
- const selector = (...args) => registrySelector(selector.registry.select)(...args);
53
+ const wrappedSelector = (...args) => {
54
+ let selector = selectorsByRegistry.get(wrappedSelector.registry);
55
+ // We want to make sure the cache persists even when new registry
56
+ // instances are created. For example patterns create their own editors
57
+ // with their own core/block-editor stores, so we should keep track of
58
+ // the cache for each registry instance.
59
+ if (!selector) {
60
+ selector = registrySelector(wrappedSelector.registry.select);
61
+ selectorsByRegistry.set(wrappedSelector.registry, selector);
62
+ }
63
+ return selector(...args);
64
+ };
53
65
 
54
66
  /**
55
67
  * Flag indicating that the selector is a registry selector that needs the correct registry
@@ -58,8 +70,8 @@ function createRegistrySelector(registrySelector) {
58
70
  *
59
71
  * @type {boolean}
60
72
  */
61
- selector.isRegistrySelector = true;
62
- return selector;
73
+ wrappedSelector.isRegistrySelector = true;
74
+ return wrappedSelector;
63
75
  }
64
76
 
65
77
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["createRegistrySelector","registrySelector","selector","args","registry","select","isRegistrySelector","createRegistryControl","registryControl","isRegistryControl"],"sources":["@wordpress/data/src/factory.js"],"sourcesContent":["/**\n * Creates a selector function that takes additional curried argument with the\n * registry `select` function. While a regular selector has signature\n * ```js\n * ( state, ...selectorArgs ) => ( result )\n * ```\n * that allows to select data from the store's `state`, a registry selector\n * has signature:\n * ```js\n * ( select ) => ( state, ...selectorArgs ) => ( result )\n * ```\n * that supports also selecting from other registered stores.\n *\n * @example\n * ```js\n * import { store as coreStore } from '@wordpress/core-data';\n * import { store as editorStore } from '@wordpress/editor';\n *\n * const getCurrentPostId = createRegistrySelector( ( select ) => ( state ) => {\n * return select( editorStore ).getCurrentPostId();\n * } );\n *\n * const getPostEdits = createRegistrySelector( ( select ) => ( state ) => {\n * // calling another registry selector just like any other function\n * const postType = getCurrentPostType( state );\n * const postId = getCurrentPostId( state );\n *\t return select( coreStore ).getEntityRecordEdits( 'postType', postType, postId );\n * } );\n * ```\n *\n * Note how the `getCurrentPostId` selector can be called just like any other function,\n * (it works even inside a regular non-registry selector) and we don't need to pass the\n * registry as argument. The registry binding happens automatically when registering the selector\n * with a store.\n *\n * @param {Function} registrySelector Function receiving a registry `select`\n * function and returning a state selector.\n *\n * @return {Function} Registry selector that can be registered with a store.\n */\nexport function createRegistrySelector( registrySelector ) {\n\t// Create a selector function that is bound to the registry referenced by `selector.registry`\n\t// and that has the same API as a regular selector. Binding it in such a way makes it\n\t// possible to call the selector directly from another selector.\n\tconst selector = ( ...args ) =>\n\t\tregistrySelector( selector.registry.select )( ...args );\n\n\t/**\n\t * Flag indicating that the selector is a registry selector that needs the correct registry\n\t * reference to be assigned to `selector.registry` to make it work correctly.\n\t * be mapped as a registry selector.\n\t *\n\t * @type {boolean}\n\t */\n\tselector.isRegistrySelector = true;\n\n\treturn selector;\n}\n\n/**\n * Creates a control function that takes additional curried argument with the `registry` object.\n * While a regular control has signature\n * ```js\n * ( action ) => ( iteratorOrPromise )\n * ```\n * where the control works with the `action` that it's bound to, a registry control has signature:\n * ```js\n * ( registry ) => ( action ) => ( iteratorOrPromise )\n * ```\n * A registry control is typically used to select data or dispatch an action to a registered\n * store.\n *\n * When registering a control created with `createRegistryControl` with a store, the store\n * knows which calling convention to use when executing the control.\n *\n * @param {Function} registryControl Function receiving a registry object and returning a control.\n *\n * @return {Function} Registry control that can be registered with a store.\n */\nexport function createRegistryControl( registryControl ) {\n\tregistryControl.isRegistryControl = true;\n\n\treturn registryControl;\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,sBAAsBA,CAAEC,gBAAgB,EAAG;EAC1D;EACA;EACA;EACA,MAAMC,QAAQ,GAAGA,CAAE,GAAGC,IAAI,KACzBF,gBAAgB,CAAEC,QAAQ,CAACE,QAAQ,CAACC,MAAO,CAAC,CAAE,GAAGF,IAAK,CAAC;;EAExD;AACD;AACA;AACA;AACA;AACA;AACA;EACCD,QAAQ,CAACI,kBAAkB,GAAG,IAAI;EAElC,OAAOJ,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,qBAAqBA,CAAEC,eAAe,EAAG;EACxDA,eAAe,CAACC,iBAAiB,GAAG,IAAI;EAExC,OAAOD,eAAe;AACvB"}
1
+ {"version":3,"names":["createRegistrySelector","registrySelector","selectorsByRegistry","WeakMap","wrappedSelector","args","selector","get","registry","select","set","isRegistrySelector","createRegistryControl","registryControl","isRegistryControl"],"sources":["@wordpress/data/src/factory.js"],"sourcesContent":["/**\n * Creates a selector function that takes additional curried argument with the\n * registry `select` function. While a regular selector has signature\n * ```js\n * ( state, ...selectorArgs ) => ( result )\n * ```\n * that allows to select data from the store's `state`, a registry selector\n * has signature:\n * ```js\n * ( select ) => ( state, ...selectorArgs ) => ( result )\n * ```\n * that supports also selecting from other registered stores.\n *\n * @example\n * ```js\n * import { store as coreStore } from '@wordpress/core-data';\n * import { store as editorStore } from '@wordpress/editor';\n *\n * const getCurrentPostId = createRegistrySelector( ( select ) => ( state ) => {\n * return select( editorStore ).getCurrentPostId();\n * } );\n *\n * const getPostEdits = createRegistrySelector( ( select ) => ( state ) => {\n * // calling another registry selector just like any other function\n * const postType = getCurrentPostType( state );\n * const postId = getCurrentPostId( state );\n *\t return select( coreStore ).getEntityRecordEdits( 'postType', postType, postId );\n * } );\n * ```\n *\n * Note how the `getCurrentPostId` selector can be called just like any other function,\n * (it works even inside a regular non-registry selector) and we don't need to pass the\n * registry as argument. The registry binding happens automatically when registering the selector\n * with a store.\n *\n * @param {Function} registrySelector Function receiving a registry `select`\n * function and returning a state selector.\n *\n * @return {Function} Registry selector that can be registered with a store.\n */\nexport function createRegistrySelector( registrySelector ) {\n\tconst selectorsByRegistry = new WeakMap();\n\t// Create a selector function that is bound to the registry referenced by `selector.registry`\n\t// and that has the same API as a regular selector. Binding it in such a way makes it\n\t// possible to call the selector directly from another selector.\n\tconst wrappedSelector = ( ...args ) => {\n\t\tlet selector = selectorsByRegistry.get( wrappedSelector.registry );\n\t\t// We want to make sure the cache persists even when new registry\n\t\t// instances are created. For example patterns create their own editors\n\t\t// with their own core/block-editor stores, so we should keep track of\n\t\t// the cache for each registry instance.\n\t\tif ( ! selector ) {\n\t\t\tselector = registrySelector( wrappedSelector.registry.select );\n\t\t\tselectorsByRegistry.set( wrappedSelector.registry, selector );\n\t\t}\n\t\treturn selector( ...args );\n\t};\n\n\t/**\n\t * Flag indicating that the selector is a registry selector that needs the correct registry\n\t * reference to be assigned to `selector.registry` to make it work correctly.\n\t * be mapped as a registry selector.\n\t *\n\t * @type {boolean}\n\t */\n\twrappedSelector.isRegistrySelector = true;\n\n\treturn wrappedSelector;\n}\n\n/**\n * Creates a control function that takes additional curried argument with the `registry` object.\n * While a regular control has signature\n * ```js\n * ( action ) => ( iteratorOrPromise )\n * ```\n * where the control works with the `action` that it's bound to, a registry control has signature:\n * ```js\n * ( registry ) => ( action ) => ( iteratorOrPromise )\n * ```\n * A registry control is typically used to select data or dispatch an action to a registered\n * store.\n *\n * When registering a control created with `createRegistryControl` with a store, the store\n * knows which calling convention to use when executing the control.\n *\n * @param {Function} registryControl Function receiving a registry object and returning a control.\n *\n * @return {Function} Registry control that can be registered with a store.\n */\nexport function createRegistryControl( registryControl ) {\n\tregistryControl.isRegistryControl = true;\n\n\treturn registryControl;\n}\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,sBAAsBA,CAAEC,gBAAgB,EAAG;EAC1D,MAAMC,mBAAmB,GAAG,IAAIC,OAAO,CAAC,CAAC;EACzC;EACA;EACA;EACA,MAAMC,eAAe,GAAGA,CAAE,GAAGC,IAAI,KAAM;IACtC,IAAIC,QAAQ,GAAGJ,mBAAmB,CAACK,GAAG,CAAEH,eAAe,CAACI,QAAS,CAAC;IAClE;IACA;IACA;IACA;IACA,IAAK,CAAEF,QAAQ,EAAG;MACjBA,QAAQ,GAAGL,gBAAgB,CAAEG,eAAe,CAACI,QAAQ,CAACC,MAAO,CAAC;MAC9DP,mBAAmB,CAACQ,GAAG,CAAEN,eAAe,CAACI,QAAQ,EAAEF,QAAS,CAAC;IAC9D;IACA,OAAOA,QAAQ,CAAE,GAAGD,IAAK,CAAC;EAC3B,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;EACCD,eAAe,CAACO,kBAAkB,GAAG,IAAI;EAEzC,OAAOP,eAAe;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASQ,qBAAqBA,CAAEC,eAAe,EAAG;EACxDA,eAAe,CAACC,iBAAiB,GAAG,IAAI;EAExC,OAAOD,eAAe;AACvB"}
@@ -216,6 +216,11 @@ function createReduxStore(key, options) {
216
216
  const boundSelector = (...args) => {
217
217
  args = normalize(selector, args);
218
218
  const state = store.__unstableOriginalGetState();
219
+ // Before calling the selector, switch to the correct
220
+ // registry.
221
+ if (selector.isRegistrySelector) {
222
+ selector.registry = registry;
223
+ }
219
224
  return selector(state.root, ...args);
220
225
  };
221
226
 
@@ -1 +1 @@
1
- {"version":3,"names":["_redux","require","_equivalentKeyMap","_interopRequireDefault","_reduxRoutine","_compose","_combineReducers","_controls","_lockUnlock","_promiseMiddleware","_resolversCacheMiddleware","_thunkMiddleware","_reducer","metadataSelectors","_interopRequireWildcard","metadataActions","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","trimUndefinedValues","array","result","i","length","undefined","splice","mapValues","callback","fromEntries","entries","map","value","mapToObject","state","Map","createResolversCache","isRunning","selectorName","args","clear","delete","markAsRunning","EquivalentKeyMap","createBindingCache","bind","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","lock","resolversCache","bindAction","action","Promise","resolve","boundPrivateActions","allActions","Proxy","target","prop","privateAction","apply","thisArg","resolvers","mapResolvers","bindSelector","selector","isRegistrySelector","boundSelector","normalize","__unstableOriginalGetState","root","__unstableNormalizeArgs","resolver","hasResolver","mapSelectorWithResolver","bindMetadataSelector","metaDataSelector","originalSelectorName","originalSelectorArgs","targetSelector","metadata","boundPrivateSelectors","allSelectors","privateSelector","resolveSelectors","mapResolveSelectors","suspendSelectors","mapSuspendSelectors","getSelectors","getActions","getSuspendSelectors","getState","subscribe","listener","add","lastState","hasChanged","controls","builtinControls","normalizedControls","control","isRegistryControl","middlewares","createResolversCacheMiddleware","promise","createReduxRoutineMiddleware","createThunkMiddleware","enhancers","applyMiddleware","window","__REDUX_DEVTOOLS_EXTENSION__","push","instanceId","serialize","replacer","initialState","enhancedReducer","combineReducers","metadataReducer","createStore","compose","getIsResolving","hasStartedResolution","hasFinishedResolution","hasResolutionFailed","isResolving","getCachedResolvers","getResolutionState","getResolutionError","hasResolvingSelectors","countSelectorsByStatus","storeSelectors","reject","hasFinished","finalize","hasFailed","error","getResult","unsubscribe","fulfill","fulfillSelector","isFulfilled","setTimeout","startResolution","finishResolution","failResolution","selectorResolver"],"sources":["@wordpress/data/src/redux-store/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { createStore, applyMiddleware } from 'redux';\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 { combineReducers } from './combine-reducers';\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\nexport { combineReducers };\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\targs = normalize( selector, 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\t// Expose normalization method on the bound selector\n\t\t\t\t// in order that it can be called when fullfilling\n\t\t\t\t// the resolver.\n\t\t\t\tboundSelector.__unstableNormalizeArgs =\n\t\t\t\t\tselector.__unstableNormalizeArgs;\n\n\t\t\t\tconst resolver = resolvers[ selectorName ];\n\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( metaDataSelector ) {\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\n\t\t\t\t\tconst originalSelectorName = args && args[ 0 ];\n\t\t\t\t\tconst originalSelectorArgs = args && args[ 1 ];\n\t\t\t\t\tconst targetSelector =\n\t\t\t\t\t\toptions?.selectors?.[ originalSelectorName ];\n\n\t\t\t\t\t// Normalize the arguments passed to the target selector.\n\t\t\t\t\tif ( originalSelectorName && targetSelector ) {\n\t\t\t\t\t\targs[ 1 ] = normalize(\n\t\t\t\t\t\t\ttargetSelector,\n\t\t\t\t\t\t\toriginalSelectorArgs\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn metaDataSelector( 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\tcountSelectorsByStatus,\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\targs = normalize( selector, args );\n\t\tfulfillSelector( args );\n\t\treturn selector( ...args );\n\t};\n\tselectorResolver.hasResolver = true;\n\treturn selectorResolver;\n}\n\n/**\n * Applies selector's normalization function to the given arguments\n * if it exists.\n *\n * @param {Object} selector The selector potentially with a normalization method property.\n * @param {Array} args selector arguments to normalize.\n * @return {Array} Potentially normalized arguments.\n */\nfunction normalize( selector, args ) {\n\tif (\n\t\tselector.__unstableNormalizeArgs &&\n\t\ttypeof selector.__unstableNormalizeArgs === 'function' &&\n\t\targs?.length\n\t) {\n\t\treturn selector.__unstableNormalizeArgs( args );\n\t}\n\treturn args;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_redux","require","_equivalentKeyMap","_interopRequireDefault","_reduxRoutine","_compose","_combineReducers","_controls","_lockUnlock","_promiseMiddleware","_resolversCacheMiddleware","_thunkMiddleware","_reducer","metadataSelectors","_interopRequireWildcard","metadataActions","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","trimUndefinedValues","array","result","i","length","undefined","splice","mapValues","callback","fromEntries","entries","map","value","mapToObject","state","Map","createResolversCache","isRunning","selectorName","args","clear","delete","markAsRunning","EquivalentKeyMap","createBindingCache","bind","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","lock","resolversCache","bindAction","action","Promise","resolve","boundPrivateActions","allActions","Proxy","target","prop","privateAction","apply","thisArg","resolvers","mapResolvers","bindSelector","selector","isRegistrySelector","boundSelector","normalize","__unstableOriginalGetState","root","__unstableNormalizeArgs","resolver","hasResolver","mapSelectorWithResolver","bindMetadataSelector","metaDataSelector","originalSelectorName","originalSelectorArgs","targetSelector","metadata","boundPrivateSelectors","allSelectors","privateSelector","resolveSelectors","mapResolveSelectors","suspendSelectors","mapSuspendSelectors","getSelectors","getActions","getSuspendSelectors","getState","subscribe","listener","add","lastState","hasChanged","controls","builtinControls","normalizedControls","control","isRegistryControl","middlewares","createResolversCacheMiddleware","promise","createReduxRoutineMiddleware","createThunkMiddleware","enhancers","applyMiddleware","window","__REDUX_DEVTOOLS_EXTENSION__","push","instanceId","serialize","replacer","initialState","enhancedReducer","combineReducers","metadataReducer","createStore","compose","getIsResolving","hasStartedResolution","hasFinishedResolution","hasResolutionFailed","isResolving","getCachedResolvers","getResolutionState","getResolutionError","hasResolvingSelectors","countSelectorsByStatus","storeSelectors","reject","hasFinished","finalize","hasFailed","error","getResult","unsubscribe","fulfill","fulfillSelector","isFulfilled","setTimeout","startResolution","finishResolution","failResolution","selectorResolver"],"sources":["@wordpress/data/src/redux-store/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { createStore, applyMiddleware } from 'redux';\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 { combineReducers } from './combine-reducers';\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\nexport { combineReducers };\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\targs = normalize( selector, args );\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\t// Before calling the selector, switch to the correct\n\t\t\t\t\t// registry.\n\t\t\t\t\tif ( selector.isRegistrySelector ) {\n\t\t\t\t\t\tselector.registry = registry;\n\t\t\t\t\t}\n\t\t\t\t\treturn selector( state.root, ...args );\n\t\t\t\t};\n\n\t\t\t\t// Expose normalization method on the bound selector\n\t\t\t\t// in order that it can be called when fullfilling\n\t\t\t\t// the resolver.\n\t\t\t\tboundSelector.__unstableNormalizeArgs =\n\t\t\t\t\tselector.__unstableNormalizeArgs;\n\n\t\t\t\tconst resolver = resolvers[ selectorName ];\n\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( metaDataSelector ) {\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\n\t\t\t\t\tconst originalSelectorName = args && args[ 0 ];\n\t\t\t\t\tconst originalSelectorArgs = args && args[ 1 ];\n\t\t\t\t\tconst targetSelector =\n\t\t\t\t\t\toptions?.selectors?.[ originalSelectorName ];\n\n\t\t\t\t\t// Normalize the arguments passed to the target selector.\n\t\t\t\t\tif ( originalSelectorName && targetSelector ) {\n\t\t\t\t\t\targs[ 1 ] = normalize(\n\t\t\t\t\t\t\ttargetSelector,\n\t\t\t\t\t\t\toriginalSelectorArgs\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn metaDataSelector( 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\tcountSelectorsByStatus,\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\targs = normalize( selector, args );\n\t\tfulfillSelector( args );\n\t\treturn selector( ...args );\n\t};\n\tselectorResolver.hasResolver = true;\n\treturn selectorResolver;\n}\n\n/**\n * Applies selector's normalization function to the given arguments\n * if it exists.\n *\n * @param {Object} selector The selector potentially with a normalization method property.\n * @param {Array} args selector arguments to normalize.\n * @return {Array} Potentially normalized arguments.\n */\nfunction normalize( selector, args ) {\n\tif (\n\t\tselector.__unstableNormalizeArgs &&\n\t\ttypeof selector.__unstableNormalizeArgs === 'function' &&\n\t\targs?.length\n\t) {\n\t\treturn selector.__unstableNormalizeArgs( args );\n\t}\n\treturn args;\n}\n"],"mappings":"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"}
@@ -39,10 +39,22 @@
39
39
  * @return {Function} Registry selector that can be registered with a store.
40
40
  */
41
41
  export function createRegistrySelector(registrySelector) {
42
+ const selectorsByRegistry = new WeakMap();
42
43
  // Create a selector function that is bound to the registry referenced by `selector.registry`
43
44
  // and that has the same API as a regular selector. Binding it in such a way makes it
44
45
  // possible to call the selector directly from another selector.
45
- const selector = (...args) => registrySelector(selector.registry.select)(...args);
46
+ const wrappedSelector = (...args) => {
47
+ let selector = selectorsByRegistry.get(wrappedSelector.registry);
48
+ // We want to make sure the cache persists even when new registry
49
+ // instances are created. For example patterns create their own editors
50
+ // with their own core/block-editor stores, so we should keep track of
51
+ // the cache for each registry instance.
52
+ if (!selector) {
53
+ selector = registrySelector(wrappedSelector.registry.select);
54
+ selectorsByRegistry.set(wrappedSelector.registry, selector);
55
+ }
56
+ return selector(...args);
57
+ };
46
58
 
47
59
  /**
48
60
  * Flag indicating that the selector is a registry selector that needs the correct registry
@@ -51,8 +63,8 @@ export function createRegistrySelector(registrySelector) {
51
63
  *
52
64
  * @type {boolean}
53
65
  */
54
- selector.isRegistrySelector = true;
55
- return selector;
66
+ wrappedSelector.isRegistrySelector = true;
67
+ return wrappedSelector;
56
68
  }
57
69
 
58
70
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["createRegistrySelector","registrySelector","selector","args","registry","select","isRegistrySelector","createRegistryControl","registryControl","isRegistryControl"],"sources":["@wordpress/data/src/factory.js"],"sourcesContent":["/**\n * Creates a selector function that takes additional curried argument with the\n * registry `select` function. While a regular selector has signature\n * ```js\n * ( state, ...selectorArgs ) => ( result )\n * ```\n * that allows to select data from the store's `state`, a registry selector\n * has signature:\n * ```js\n * ( select ) => ( state, ...selectorArgs ) => ( result )\n * ```\n * that supports also selecting from other registered stores.\n *\n * @example\n * ```js\n * import { store as coreStore } from '@wordpress/core-data';\n * import { store as editorStore } from '@wordpress/editor';\n *\n * const getCurrentPostId = createRegistrySelector( ( select ) => ( state ) => {\n * return select( editorStore ).getCurrentPostId();\n * } );\n *\n * const getPostEdits = createRegistrySelector( ( select ) => ( state ) => {\n * // calling another registry selector just like any other function\n * const postType = getCurrentPostType( state );\n * const postId = getCurrentPostId( state );\n *\t return select( coreStore ).getEntityRecordEdits( 'postType', postType, postId );\n * } );\n * ```\n *\n * Note how the `getCurrentPostId` selector can be called just like any other function,\n * (it works even inside a regular non-registry selector) and we don't need to pass the\n * registry as argument. The registry binding happens automatically when registering the selector\n * with a store.\n *\n * @param {Function} registrySelector Function receiving a registry `select`\n * function and returning a state selector.\n *\n * @return {Function} Registry selector that can be registered with a store.\n */\nexport function createRegistrySelector( registrySelector ) {\n\t// Create a selector function that is bound to the registry referenced by `selector.registry`\n\t// and that has the same API as a regular selector. Binding it in such a way makes it\n\t// possible to call the selector directly from another selector.\n\tconst selector = ( ...args ) =>\n\t\tregistrySelector( selector.registry.select )( ...args );\n\n\t/**\n\t * Flag indicating that the selector is a registry selector that needs the correct registry\n\t * reference to be assigned to `selector.registry` to make it work correctly.\n\t * be mapped as a registry selector.\n\t *\n\t * @type {boolean}\n\t */\n\tselector.isRegistrySelector = true;\n\n\treturn selector;\n}\n\n/**\n * Creates a control function that takes additional curried argument with the `registry` object.\n * While a regular control has signature\n * ```js\n * ( action ) => ( iteratorOrPromise )\n * ```\n * where the control works with the `action` that it's bound to, a registry control has signature:\n * ```js\n * ( registry ) => ( action ) => ( iteratorOrPromise )\n * ```\n * A registry control is typically used to select data or dispatch an action to a registered\n * store.\n *\n * When registering a control created with `createRegistryControl` with a store, the store\n * knows which calling convention to use when executing the control.\n *\n * @param {Function} registryControl Function receiving a registry object and returning a control.\n *\n * @return {Function} Registry control that can be registered with a store.\n */\nexport function createRegistryControl( registryControl ) {\n\tregistryControl.isRegistryControl = true;\n\n\treturn registryControl;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,sBAAsBA,CAAEC,gBAAgB,EAAG;EAC1D;EACA;EACA;EACA,MAAMC,QAAQ,GAAGA,CAAE,GAAGC,IAAI,KACzBF,gBAAgB,CAAEC,QAAQ,CAACE,QAAQ,CAACC,MAAO,CAAC,CAAE,GAAGF,IAAK,CAAC;;EAExD;AACD;AACA;AACA;AACA;AACA;AACA;EACCD,QAAQ,CAACI,kBAAkB,GAAG,IAAI;EAElC,OAAOJ,QAAQ;AAChB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASK,qBAAqBA,CAAEC,eAAe,EAAG;EACxDA,eAAe,CAACC,iBAAiB,GAAG,IAAI;EAExC,OAAOD,eAAe;AACvB"}
1
+ {"version":3,"names":["createRegistrySelector","registrySelector","selectorsByRegistry","WeakMap","wrappedSelector","args","selector","get","registry","select","set","isRegistrySelector","createRegistryControl","registryControl","isRegistryControl"],"sources":["@wordpress/data/src/factory.js"],"sourcesContent":["/**\n * Creates a selector function that takes additional curried argument with the\n * registry `select` function. While a regular selector has signature\n * ```js\n * ( state, ...selectorArgs ) => ( result )\n * ```\n * that allows to select data from the store's `state`, a registry selector\n * has signature:\n * ```js\n * ( select ) => ( state, ...selectorArgs ) => ( result )\n * ```\n * that supports also selecting from other registered stores.\n *\n * @example\n * ```js\n * import { store as coreStore } from '@wordpress/core-data';\n * import { store as editorStore } from '@wordpress/editor';\n *\n * const getCurrentPostId = createRegistrySelector( ( select ) => ( state ) => {\n * return select( editorStore ).getCurrentPostId();\n * } );\n *\n * const getPostEdits = createRegistrySelector( ( select ) => ( state ) => {\n * // calling another registry selector just like any other function\n * const postType = getCurrentPostType( state );\n * const postId = getCurrentPostId( state );\n *\t return select( coreStore ).getEntityRecordEdits( 'postType', postType, postId );\n * } );\n * ```\n *\n * Note how the `getCurrentPostId` selector can be called just like any other function,\n * (it works even inside a regular non-registry selector) and we don't need to pass the\n * registry as argument. The registry binding happens automatically when registering the selector\n * with a store.\n *\n * @param {Function} registrySelector Function receiving a registry `select`\n * function and returning a state selector.\n *\n * @return {Function} Registry selector that can be registered with a store.\n */\nexport function createRegistrySelector( registrySelector ) {\n\tconst selectorsByRegistry = new WeakMap();\n\t// Create a selector function that is bound to the registry referenced by `selector.registry`\n\t// and that has the same API as a regular selector. Binding it in such a way makes it\n\t// possible to call the selector directly from another selector.\n\tconst wrappedSelector = ( ...args ) => {\n\t\tlet selector = selectorsByRegistry.get( wrappedSelector.registry );\n\t\t// We want to make sure the cache persists even when new registry\n\t\t// instances are created. For example patterns create their own editors\n\t\t// with their own core/block-editor stores, so we should keep track of\n\t\t// the cache for each registry instance.\n\t\tif ( ! selector ) {\n\t\t\tselector = registrySelector( wrappedSelector.registry.select );\n\t\t\tselectorsByRegistry.set( wrappedSelector.registry, selector );\n\t\t}\n\t\treturn selector( ...args );\n\t};\n\n\t/**\n\t * Flag indicating that the selector is a registry selector that needs the correct registry\n\t * reference to be assigned to `selector.registry` to make it work correctly.\n\t * be mapped as a registry selector.\n\t *\n\t * @type {boolean}\n\t */\n\twrappedSelector.isRegistrySelector = true;\n\n\treturn wrappedSelector;\n}\n\n/**\n * Creates a control function that takes additional curried argument with the `registry` object.\n * While a regular control has signature\n * ```js\n * ( action ) => ( iteratorOrPromise )\n * ```\n * where the control works with the `action` that it's bound to, a registry control has signature:\n * ```js\n * ( registry ) => ( action ) => ( iteratorOrPromise )\n * ```\n * A registry control is typically used to select data or dispatch an action to a registered\n * store.\n *\n * When registering a control created with `createRegistryControl` with a store, the store\n * knows which calling convention to use when executing the control.\n *\n * @param {Function} registryControl Function receiving a registry object and returning a control.\n *\n * @return {Function} Registry control that can be registered with a store.\n */\nexport function createRegistryControl( registryControl ) {\n\tregistryControl.isRegistryControl = true;\n\n\treturn registryControl;\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,sBAAsBA,CAAEC,gBAAgB,EAAG;EAC1D,MAAMC,mBAAmB,GAAG,IAAIC,OAAO,CAAC,CAAC;EACzC;EACA;EACA;EACA,MAAMC,eAAe,GAAGA,CAAE,GAAGC,IAAI,KAAM;IACtC,IAAIC,QAAQ,GAAGJ,mBAAmB,CAACK,GAAG,CAAEH,eAAe,CAACI,QAAS,CAAC;IAClE;IACA;IACA;IACA;IACA,IAAK,CAAEF,QAAQ,EAAG;MACjBA,QAAQ,GAAGL,gBAAgB,CAAEG,eAAe,CAACI,QAAQ,CAACC,MAAO,CAAC;MAC9DP,mBAAmB,CAACQ,GAAG,CAAEN,eAAe,CAACI,QAAQ,EAAEF,QAAS,CAAC;IAC9D;IACA,OAAOA,QAAQ,CAAE,GAAGD,IAAK,CAAC;EAC3B,CAAC;;EAED;AACD;AACA;AACA;AACA;AACA;AACA;EACCD,eAAe,CAACO,kBAAkB,GAAG,IAAI;EAEzC,OAAOP,eAAe;AACvB;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASQ,qBAAqBA,CAAEC,eAAe,EAAG;EACxDA,eAAe,CAACC,iBAAiB,GAAG,IAAI;EAExC,OAAOD,eAAe;AACvB"}
@@ -202,6 +202,11 @@ export default function createReduxStore(key, options) {
202
202
  const boundSelector = (...args) => {
203
203
  args = normalize(selector, args);
204
204
  const state = store.__unstableOriginalGetState();
205
+ // Before calling the selector, switch to the correct
206
+ // registry.
207
+ if (selector.isRegistrySelector) {
208
+ selector.registry = registry;
209
+ }
205
210
  return selector(state.root, ...args);
206
211
  };
207
212
 
@@ -1 +1 @@
1
- {"version":3,"names":["createStore","applyMiddleware","EquivalentKeyMap","createReduxRoutineMiddleware","compose","combineReducers","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","normalize","__unstableOriginalGetState","root","__unstableNormalizeArgs","resolver","hasResolver","mapSelectorWithResolver","bindMetadataSelector","metaDataSelector","originalSelectorName","originalSelectorArgs","targetSelector","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","countSelectorsByStatus","storeSelectors","reject","hasFinished","finalize","hasFailed","error","getResult","unsubscribe","fulfill","fulfillSelector","isFulfilled","setTimeout","startResolution","finishResolution","failResolution","selectorResolver"],"sources":["@wordpress/data/src/redux-store/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { createStore, applyMiddleware } from 'redux';\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 { combineReducers } from './combine-reducers';\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\nexport { combineReducers };\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\targs = normalize( selector, 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\t// Expose normalization method on the bound selector\n\t\t\t\t// in order that it can be called when fullfilling\n\t\t\t\t// the resolver.\n\t\t\t\tboundSelector.__unstableNormalizeArgs =\n\t\t\t\t\tselector.__unstableNormalizeArgs;\n\n\t\t\t\tconst resolver = resolvers[ selectorName ];\n\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( metaDataSelector ) {\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\n\t\t\t\t\tconst originalSelectorName = args && args[ 0 ];\n\t\t\t\t\tconst originalSelectorArgs = args && args[ 1 ];\n\t\t\t\t\tconst targetSelector =\n\t\t\t\t\t\toptions?.selectors?.[ originalSelectorName ];\n\n\t\t\t\t\t// Normalize the arguments passed to the target selector.\n\t\t\t\t\tif ( originalSelectorName && targetSelector ) {\n\t\t\t\t\t\targs[ 1 ] = normalize(\n\t\t\t\t\t\t\ttargetSelector,\n\t\t\t\t\t\t\toriginalSelectorArgs\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn metaDataSelector( 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\tcountSelectorsByStatus,\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\targs = normalize( selector, args );\n\t\tfulfillSelector( args );\n\t\treturn selector( ...args );\n\t};\n\tselectorResolver.hasResolver = true;\n\treturn selectorResolver;\n}\n\n/**\n * Applies selector's normalization function to the given arguments\n * if it exists.\n *\n * @param {Object} selector The selector potentially with a normalization method property.\n * @param {Array} args selector arguments to normalize.\n * @return {Array} Potentially normalized arguments.\n */\nfunction normalize( selector, args ) {\n\tif (\n\t\tselector.__unstableNormalizeArgs &&\n\t\ttypeof selector.__unstableNormalizeArgs === 'function' &&\n\t\targs?.length\n\t) {\n\t\treturn selector.__unstableNormalizeArgs( args );\n\t}\n\treturn args;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["createStore","applyMiddleware","EquivalentKeyMap","createReduxRoutineMiddleware","compose","combineReducers","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","normalize","__unstableOriginalGetState","root","__unstableNormalizeArgs","resolver","hasResolver","mapSelectorWithResolver","bindMetadataSelector","metaDataSelector","originalSelectorName","originalSelectorArgs","targetSelector","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","countSelectorsByStatus","storeSelectors","reject","hasFinished","finalize","hasFailed","error","getResult","unsubscribe","fulfill","fulfillSelector","isFulfilled","setTimeout","startResolution","finishResolution","failResolution","selectorResolver"],"sources":["@wordpress/data/src/redux-store/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { createStore, applyMiddleware } from 'redux';\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 { combineReducers } from './combine-reducers';\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\nexport { combineReducers };\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\targs = normalize( selector, args );\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\t\t\t\t\t// Before calling the selector, switch to the correct\n\t\t\t\t\t// registry.\n\t\t\t\t\tif ( selector.isRegistrySelector ) {\n\t\t\t\t\t\tselector.registry = registry;\n\t\t\t\t\t}\n\t\t\t\t\treturn selector( state.root, ...args );\n\t\t\t\t};\n\n\t\t\t\t// Expose normalization method on the bound selector\n\t\t\t\t// in order that it can be called when fullfilling\n\t\t\t\t// the resolver.\n\t\t\t\tboundSelector.__unstableNormalizeArgs =\n\t\t\t\t\tselector.__unstableNormalizeArgs;\n\n\t\t\t\tconst resolver = resolvers[ selectorName ];\n\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( metaDataSelector ) {\n\t\t\t\tconst boundSelector = ( ...args ) => {\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\n\t\t\t\t\tconst originalSelectorName = args && args[ 0 ];\n\t\t\t\t\tconst originalSelectorArgs = args && args[ 1 ];\n\t\t\t\t\tconst targetSelector =\n\t\t\t\t\t\toptions?.selectors?.[ originalSelectorName ];\n\n\t\t\t\t\t// Normalize the arguments passed to the target selector.\n\t\t\t\t\tif ( originalSelectorName && targetSelector ) {\n\t\t\t\t\t\targs[ 1 ] = normalize(\n\t\t\t\t\t\t\ttargetSelector,\n\t\t\t\t\t\t\toriginalSelectorArgs\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn metaDataSelector( 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\tcountSelectorsByStatus,\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\targs = normalize( selector, args );\n\t\tfulfillSelector( args );\n\t\treturn selector( ...args );\n\t};\n\tselectorResolver.hasResolver = true;\n\treturn selectorResolver;\n}\n\n/**\n * Applies selector's normalization function to the given arguments\n * if it exists.\n *\n * @param {Object} selector The selector potentially with a normalization method property.\n * @param {Array} args selector arguments to normalize.\n * @return {Array} Potentially normalized arguments.\n */\nfunction normalize( selector, args ) {\n\tif (\n\t\tselector.__unstableNormalizeArgs &&\n\t\ttypeof selector.__unstableNormalizeArgs === 'function' &&\n\t\targs?.length\n\t) {\n\t\treturn selector.__unstableNormalizeArgs( args );\n\t}\n\treturn args;\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,6EAiBC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,2EAIC"}
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,6EA4BC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,2EAIC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/redux-store/index.js"],"names":[],"mappings":"AAyHA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,kIAPW,MAAM,+KA8OhB;;2BA/Va,OAAO,UAAU,EAAE,YAAY;+BAC/B,OAAO,UAAU,EAAE,gBAAgB;sEAEpC,OAAO,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;mHAIrC,OAAO,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAC,OAAO,EAAC,SAAS,CAAC;gCAnBzC,oBAAoB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/redux-store/index.js"],"names":[],"mappings":"AAyHA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,kIAPW,MAAM,+KAmPhB;;2BApWa,OAAO,UAAU,EAAE,YAAY;+BAC/B,OAAO,UAAU,EAAE,gBAAgB;sEAEpC,OAAO,UAAU,EAAE,eAAe,CAAC,CAAC,CAAC;mHAIrC,OAAO,UAAU,EAAE,gBAAgB,CAAC,KAAK,EAAC,OAAO,EAAC,SAAS,CAAC;gCAnBzC,oBAAoB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/data",
3
- "version": "9.19.0",
3
+ "version": "9.20.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.26.0",
33
- "@wordpress/deprecated": "^3.49.0",
34
- "@wordpress/element": "^5.26.0",
35
- "@wordpress/is-shallow-equal": "^4.49.0",
36
- "@wordpress/priority-queue": "^2.49.0",
37
- "@wordpress/private-apis": "^0.31.0",
38
- "@wordpress/redux-routine": "^4.49.0",
32
+ "@wordpress/compose": "^6.27.0",
33
+ "@wordpress/deprecated": "^3.50.0",
34
+ "@wordpress/element": "^5.27.0",
35
+ "@wordpress/is-shallow-equal": "^4.50.0",
36
+ "@wordpress/priority-queue": "^2.50.0",
37
+ "@wordpress/private-apis": "^0.32.0",
38
+ "@wordpress/redux-routine": "^4.50.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": "5e6f9caa205d3bfdbac131952b7bf9c6ec60569b"
53
+ "gitHead": "45de2cb4212fed7f2763e95f10300d1ff9d0ec08"
54
54
  }
package/src/factory.js CHANGED
@@ -39,11 +39,22 @@
39
39
  * @return {Function} Registry selector that can be registered with a store.
40
40
  */
41
41
  export function createRegistrySelector( registrySelector ) {
42
+ const selectorsByRegistry = new WeakMap();
42
43
  // Create a selector function that is bound to the registry referenced by `selector.registry`
43
44
  // and that has the same API as a regular selector. Binding it in such a way makes it
44
45
  // possible to call the selector directly from another selector.
45
- const selector = ( ...args ) =>
46
- registrySelector( selector.registry.select )( ...args );
46
+ const wrappedSelector = ( ...args ) => {
47
+ let selector = selectorsByRegistry.get( wrappedSelector.registry );
48
+ // We want to make sure the cache persists even when new registry
49
+ // instances are created. For example patterns create their own editors
50
+ // with their own core/block-editor stores, so we should keep track of
51
+ // the cache for each registry instance.
52
+ if ( ! selector ) {
53
+ selector = registrySelector( wrappedSelector.registry.select );
54
+ selectorsByRegistry.set( wrappedSelector.registry, selector );
55
+ }
56
+ return selector( ...args );
57
+ };
47
58
 
48
59
  /**
49
60
  * Flag indicating that the selector is a registry selector that needs the correct registry
@@ -52,9 +63,9 @@ export function createRegistrySelector( registrySelector ) {
52
63
  *
53
64
  * @type {boolean}
54
65
  */
55
- selector.isRegistrySelector = true;
66
+ wrappedSelector.isRegistrySelector = true;
56
67
 
57
- return selector;
68
+ return wrappedSelector;
58
69
  }
59
70
 
60
71
  /**
@@ -237,6 +237,11 @@ export default function createReduxStore( key, options ) {
237
237
  const boundSelector = ( ...args ) => {
238
238
  args = normalize( selector, args );
239
239
  const state = store.__unstableOriginalGetState();
240
+ // Before calling the selector, switch to the correct
241
+ // registry.
242
+ if ( selector.isRegistrySelector ) {
243
+ selector.registry = registry;
244
+ }
240
245
  return selector( state.root, ...args );
241
246
  };
242
247
 
@@ -0,0 +1,154 @@
1
+ /**
2
+ * External dependencies
3
+ */
4
+ import createSelector from 'rememo';
5
+
6
+ /**
7
+ * Internal dependencies
8
+ */
9
+ import { createRegistry } from '../registry';
10
+ import { createRegistrySelector } from '../factory';
11
+ import createReduxStore from '../redux-store';
12
+
13
+ const getElementCount = createRegistrySelector( ( select ) => () => {
14
+ return select( 'elements' ).getElements().length;
15
+ } );
16
+
17
+ const getFilterValue = ( state ) => state;
18
+
19
+ const getFilteredElements = createRegistrySelector( ( select ) =>
20
+ createSelector(
21
+ ( state ) => {
22
+ const filter = getFilterValue( state );
23
+ const elements = select( 'elements' ).getElements();
24
+ if ( ! filter ) {
25
+ return elements;
26
+ }
27
+ return elements.filter( ( el ) => el.startsWith( filter ) );
28
+ },
29
+ ( state ) => [
30
+ select( 'elements' ).getElements(),
31
+ getFilterValue( state ),
32
+ ]
33
+ )
34
+ );
35
+
36
+ const elementsStore = createReduxStore( 'elements', {
37
+ reducer( state = [], action ) {
38
+ if ( action.type === 'ADD' ) {
39
+ return [ ...state, ...action.elements ];
40
+ }
41
+ return state;
42
+ },
43
+ actions: {
44
+ add: ( ...elements ) => ( { type: 'ADD', elements } ),
45
+ },
46
+ selectors: {
47
+ getElements: ( state ) => state,
48
+ },
49
+ } );
50
+
51
+ const uiStore = createReduxStore( 'ui', {
52
+ reducer( state = '', action ) {
53
+ if ( action.type === 'FILTER' ) {
54
+ return action.value;
55
+ }
56
+ return state;
57
+ },
58
+ actions: {
59
+ filter: ( value ) => ( { type: 'FILTER', value } ),
60
+ },
61
+ selectors: {
62
+ getFilterValue,
63
+ getElementCount,
64
+ getFilteredElements,
65
+ },
66
+ } );
67
+
68
+ describe( 'createRegistrySelector', () => {
69
+ it( 'can bind one selector to a registry', () => {
70
+ const registry = createRegistry();
71
+ registry.register( elementsStore );
72
+ registry.register( uiStore );
73
+
74
+ expect( registry.select( uiStore ).getElementCount() ).toBe( 0 );
75
+
76
+ registry.dispatch( elementsStore ).add( 'Carbon' );
77
+
78
+ expect( registry.select( uiStore ).getElementCount() ).toBe( 1 );
79
+ } );
80
+
81
+ it( 'can bind one selector to multiple registries (createRegistrySelector)', () => {
82
+ const registry1 = createRegistry();
83
+ const registry2 = createRegistry();
84
+
85
+ registry1.register( elementsStore );
86
+ registry1.register( uiStore );
87
+ registry2.register( elementsStore );
88
+ registry2.register( uiStore );
89
+
90
+ expect( registry1.select( uiStore ).getElementCount() ).toBe( 0 );
91
+ expect( registry2.select( uiStore ).getElementCount() ).toBe( 0 );
92
+
93
+ registry1.dispatch( elementsStore ).add( 'Carbon' );
94
+
95
+ expect( registry1.select( uiStore ).getElementCount() ).toBe( 1 );
96
+ expect( registry2.select( uiStore ).getElementCount() ).toBe( 0 );
97
+
98
+ registry2.dispatch( elementsStore ).add( 'Helium' );
99
+
100
+ expect( registry1.select( uiStore ).getElementCount() ).toBe( 1 );
101
+ expect( registry2.select( uiStore ).getElementCount() ).toBe( 1 );
102
+ } );
103
+
104
+ it( 'can bind one selector to multiple registries (createRegistrySelector + createSelector)', () => {
105
+ const registry1 = createRegistry();
106
+ registry1.register( elementsStore );
107
+ registry1.register( uiStore );
108
+ registry1.dispatch( elementsStore ).add( 'Carbon' );
109
+
110
+ const registry2 = createRegistry();
111
+ registry2.register( elementsStore );
112
+ registry2.register( uiStore );
113
+ registry2.dispatch( elementsStore ).add( 'Helium' );
114
+
115
+ // Expects the `getFilteredElements` to be bound separately and independently to the two registries
116
+ expect( registry1.select( uiStore ).getFilteredElements() ).toEqual( [
117
+ 'Carbon',
118
+ ] );
119
+ expect( registry2.select( uiStore ).getFilteredElements() ).toEqual( [
120
+ 'Helium',
121
+ ] );
122
+ } );
123
+
124
+ it( 'can bind a memoized selector to a registry', () => {
125
+ const registry = createRegistry();
126
+ registry.register( elementsStore );
127
+ registry.register( uiStore );
128
+
129
+ registry.dispatch( elementsStore ).add( 'Carbon', 'Nitrogen' );
130
+ registry.dispatch( uiStore ).filter( 'Ca' );
131
+
132
+ // check that `getFilteredElements` return value is a memoized array
133
+ const elements1 = registry.select( uiStore ).getFilteredElements();
134
+ expect( elements1 ).toEqual( [ 'Carbon' ] );
135
+ const elements2 = registry.select( uiStore ).getFilteredElements();
136
+ expect( elements2 ).toBe( elements1 ); // memoized
137
+
138
+ // check that adding a new element triggers recalculation
139
+ registry.dispatch( elementsStore ).add( 'Calcium' );
140
+
141
+ const elements3 = registry.select( uiStore ).getFilteredElements();
142
+ expect( elements3 ).toEqual( [ 'Carbon', 'Calcium' ] );
143
+ const elements4 = registry.select( uiStore ).getFilteredElements();
144
+ expect( elements4 ).toBe( elements3 ); // memoized
145
+
146
+ // check that changing the filter triggers recalculation
147
+ registry.dispatch( uiStore ).filter( 'Ni' );
148
+
149
+ const elements5 = registry.select( uiStore ).getFilteredElements();
150
+ expect( elements5 ).toEqual( [ 'Nitrogen' ] );
151
+ const elements6 = registry.select( uiStore ).getFilteredElements();
152
+ expect( elements6 ).toBe( elements5 ); // memoized
153
+ } );
154
+ } );
@@ -1 +1 @@
1
- {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/factory.js","../../node_modules/redux/index.d.ts","./src/types.ts","./src/controls.js","../../node_modules/utility-types/dist/aliases-and-guards.d.ts","../../node_modules/utility-types/dist/mapped-types.d.ts","../../node_modules/utility-types/dist/utility-types.d.ts","../../node_modules/utility-types/dist/functional-helpers.d.ts","../../node_modules/utility-types/dist/index.d.ts","../deprecated/build-types/index.d.ts","../redux-routine/build-types/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","../../node_modules/@types/react/index.d.ts","../compose/build-types/utils/create-higher-order-component/index.d.ts","../compose/build-types/utils/debounce/index.d.ts","../compose/build-types/utils/throttle/index.d.ts","../compose/build-types/higher-order/compose.d.ts","../compose/build-types/higher-order/pipe.d.ts","../compose/build-types/higher-order/if-condition/index.d.ts","../compose/build-types/higher-order/pure/index.d.ts","../compose/build-types/higher-order/with-global-events/index.d.ts","../compose/build-types/higher-order/with-instance-id/index.d.ts","../compose/build-types/higher-order/with-safe-timeout/index.d.ts","../compose/build-types/higher-order/with-state/index.d.ts","../compose/build-types/hooks/use-constrained-tabbing/index.d.ts","../compose/build-types/hooks/use-copy-on-click/index.d.ts","../compose/build-types/hooks/use-copy-to-clipboard/index.d.ts","../compose/build-types/hooks/use-focus-on-mount/index.d.ts","../compose/build-types/hooks/use-focus-outside/index.d.ts","../compose/build-types/hooks/use-dialog/index.d.ts","../compose/build-types/hooks/use-disabled/index.d.ts","../compose/build-types/hooks/use-dragging/index.d.ts","../compose/build-types/hooks/use-focus-return/index.d.ts","../compose/build-types/hooks/use-instance-id/index.d.ts","../element/build-types/create-interpolate-element.d.ts","../element/build-types/react.d.ts","../../node_modules/@types/react-dom/index.d.ts","../../node_modules/@types/react-dom/client.d.ts","../element/build-types/react-platform.d.ts","../element/build-types/utils.d.ts","../element/build-types/platform.d.ts","../element/build-types/serialize.d.ts","../element/build-types/raw-html.d.ts","../element/build-types/index.d.ts","../compose/build-types/hooks/use-isomorphic-layout-effect/index.d.ts","../../node_modules/@types/mousetrap/index.d.ts","../compose/build-types/hooks/use-keyboard-shortcut/index.d.ts","../compose/build-types/hooks/use-media-query/index.d.ts","../compose/build-types/hooks/use-previous/index.d.ts","../compose/build-types/hooks/use-reduced-motion/index.d.ts","../compose/build-types/hooks/use-state-with-history/index.d.ts","../compose/build-types/hooks/use-viewport-match/index.d.ts","../compose/build-types/hooks/use-resize-observer/index.d.ts","../compose/build-types/hooks/use-async-list/index.d.ts","../compose/build-types/hooks/use-warn-on-change/index.d.ts","../compose/build-types/hooks/use-debounce/index.d.ts","../compose/build-types/hooks/use-debounced-input/index.d.ts","../compose/build-types/hooks/use-throttle/index.d.ts","../compose/build-types/hooks/use-merge-refs/index.d.ts","../compose/build-types/hooks/use-ref-effect/index.d.ts","../compose/build-types/hooks/use-drop-zone/index.d.ts","../compose/build-types/hooks/use-focusable-iframe/index.d.ts","../compose/build-types/hooks/use-fixed-window-list/index.d.ts","../compose/build-types/index.d.ts","./src/redux-store/combine-reducers.js","../private-apis/build-types/implementation.d.ts","../private-apis/build-types/index.d.ts","./src/lock-unlock.js","../../node_modules/is-promise/index.d.ts","./src/promise-middleware.js","./src/resolvers-cache-middleware.js","./src/redux-store/thunk-middleware.js","./src/redux-store/metadata/utils.ts","./src/redux-store/metadata/actions.js","./src/redux-store/metadata/reducer.ts","../../node_modules/rememo/rememo.d.ts","./src/redux-store/metadata/selectors.js","./src/redux-store/index.js","./src/store/index.js","./src/utils/emitter.js","./src/registry.js","./src/default-registry.js","./src/dispatch.ts","../../node_modules/is-plain-object/is-plain-object.d.ts","../../node_modules/deepmerge/index.d.ts","./src/plugins/persistence/storage/object.js","./src/plugins/persistence/storage/default.js","./src/plugins/persistence/index.js","./src/plugins/index.js","../priority-queue/build-types/index.d.ts","../is-shallow-equal/build-types/objects.d.ts","../is-shallow-equal/build-types/arrays.d.ts","../is-shallow-equal/build-types/index.d.ts","./src/components/registry-provider/context.js","./src/components/registry-provider/use-registry.js","./src/components/async-mode-provider/context.js","./src/components/async-mode-provider/use-async-mode.js","./src/components/use-select/index.js","./src/components/with-select/index.js","./src/components/use-dispatch/use-dispatch.js","./src/components/use-dispatch/use-dispatch-with-map.js","./src/components/use-dispatch/index.js","./src/components/with-dispatch/index.js","./src/components/registry-provider/index.js","./src/components/with-registry/index.js","./src/components/async-mode-provider/index.js","./src/select.ts","./src/index.js","./src/redux-store/metadata/equivalent-key-map.d.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"750b0952483dfc1a963abad82bffc11d16267e830ad9c02e2ac04ae4011d4743","signature":"9481c72104c81bcf6384d66fec925883e1cfc251ec79911b224c020402fcca43"},{"version":"8f19251323456195ec9236df857bac3b8f97b73b540ef06ead2ceccc3884954f","affectsGlobalScope":true},{"version":"9187c63478d0b5d7558808e8bbeeee910b73a87bd7e2314d12aef5a54b60534f","signature":"b87862101a0bc834b490d40f203e7550d38ba119fbb4b7cf1a3fe5d62e3aa62d"},{"version":"e382a7658f76f31d91f33c404b9526eeee7938eb4aee831feb51a3ba0e40a321","signature":"8c2a4bbd3555d93ed90e0c99548acc2b32c260cddafecec4b4cd454c1424ad1e"},"bd0d80db12ef1aceefc4f9d3eb88517b9634fa747ae8475981da8655292feab8","55e68fb1618e3f55f7866b8c8415152159309a14b716370081ab0b7af96d876e","bf0491af2455f92282b61807be2be6e7ad7d532e47fac7b698019d3617c28ff7","5d874fb879ab8601c02549817dceb2d0a30729cb7e161625dd6f819bbff1ec0b","ee551a880882770c4f56a0964a9767c9feafe497a5be52652527d098c88d85cb","111864872d90aef86668951ee1765f09e9def8de81160a1ddc3312f2766989ab","a1a9bdabeeb22c50cd0fbae1ca01a15ebe75a1adb5a9e7c27b3d23eb8b10441d",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"4c68749a564a6facdf675416d75789ee5a557afda8960e0803cf6711fa569288","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},"33ac93038bb0401ec8d626b8e9283233a83e185b72de6af25e2be198c142af7c","5770292808bdac9e809cde7178a187cce89dcd6ce72979c1d1d099d213067671","49f44b9e32a9d528a264cc9cf1caeb63fb8e784ad6593ae4db97b8d55958487e","fc1233533790a4225cd78fe456ad42066f5ede6ed5c9338f04dacec955e8432b","4aad182af186a2df9306a344432307410992bb387f9dae22246d4198d970afc2","9e2e7bb9f856f9bc12840215ae088dbc2254f61ac59b13a5b057c231595cf259","c4313f128e258b621bda8c3429aee68bbf3e1a148a349b6407df01170d773d4a","1d2894af65430564ba12842214a8384c3edc94b9cf0e64538474d28acb288ab0","ee5c6b1a350cfffc56ceb3919c0e33fb037788f46689eb56e8a664813eac3f2d","101b9062bf99fffcd043805fb43f67acaa0bfe7495b324aa9b682372c98fd4ac","ae51096d7e513de636260729cce1c8cab0f03417bf7fd4a5fc3bc1e13066a3e0","184a90fe849d5227047070956c9507aea4884d97a7c4e16bc1d8bb2033aabbed","8c55bbcfff983c0e9afd933a35c73eaf8ee1186e3e86feb0e6ee237dd3e375bd","903129fde008533775b06a5ebdf00698e5fde5bf5652ff6c29c3f7e432c7378c","74015f799eaf1baad08d90b1b2ce91fab84d50ead10c58c699a858b717f63f41","28701b1e705eafec432aa5e8581e689c9bb9341bba6616f6d1f681025d32f221","e2248218e82b4e3df1e2f590c6e235c0e3987c50a8a087e3104964c61644bf78","f30b5c4f3570832ada75cb2c06e668934f9b9b9d437a10780b01effb53e2a9a2","2ac28d481be387f5cad74c06d1dd0d61b3d94953687e55043218c927c2ed18bb","26a6058ab933bbdcf633bf4029cbadea38c2d1f8fd516dd6f994546a906c5247","202ca9254496f06eb5fc5b14e7386a800579d34808ee327f43e97596d8845c1e","0c1c79ce1b4c085adce94f17891812ee1a8b76fc1de63dd0d9d80ea34034f389","470509b95e55f314470599d05bd8600eaf3c7bd10d35c94eea5f1ae3139a2bae","e4dd91dd4789a109aab51d8a0569a282369fcda9ba6f2b2297bc61bacfb1a042","83e27bbd7304ea67f9afa1535f1d4fdb15866089f0d893c784cbb5b1c6fb3386","472c14cdec534a465e866b6e1feee2d4e0d89c15fdc33ba80ff034fa0e80f3c1","4d807d55c784b72f71c092c34c84d09b95c29500c30252538fd5cf9a0a788c0e","df43a3968118d4b16618d7a0ac8ba89337fcce3c39e39984087ac34bf0cf250c","7f2497d56947331a6705c6c8d099b173d6fa7b90f5110c190cbca5cae1f3a09c","582f001c48a6204fd6bb5c6c71b36adc5256078c0ac3686b99db59cbb724ca73","af88a0b0f808a6721401550621bfe67c46c6fd55000305058e7c73600d119a9b","35bde1eadd47ade9e8fdad3888485ccbdcb27f718e4b1ad80241437c521f5ff8","96520a873073a2f39f922d0a422498cdcc28be9066a769000cdd07ecaba7b645","7302cf0bc39ea0cb42f0605035b2dddb048809d0cb2ce18af00547e0f4933c93","f1d2d2c3278068da7558b0e56945caf3716d63663da66d2d3fa1d5ba1672122f","35e96b392c3b0e1134be3c6e7c0c75f42daf09a1ed172f979d93078050a04645","ca4c88ef756cb9c6abd4b9ee2db0ee816f68484200f9e0c8a53363e44ab47374","a65a75f828f15734b92b18842c561b5dc8052ee2bf955aa8d8ce452bc7906cb1","2371b1f1d8ff771badcebc3944f9296c4ce5854c4051e5501d1fb43451230d19",{"version":"15f62f4185e8bb96097c0ea709bcc4d091dbe762f48076a08bae01d3014a01f6","affectsGlobalScope":true},"4b34ff3543e7b99f7b8f2125d0dc6ccacc11e9fa9f8e6de7a9cbd5d11a1ddd79","90358612694ff8f39093016eac40ee2fcd0fe2d98ec495463a23822f9498ef50","7217b5c129ccf4da64100067edd1cf89684c5843b047467c074acfd7ca3b384c","9d5c955581f7529f3b68d9a63d703c389807441106e51e604d2cd0b613aaa952","ea7224606ec74917a59437170337f3e1b38de98bc36d9e9d955bd5e484f40bbf","5cf71c5937450c62d091b5a43cfb545f7ff376cdf1d0271ac38f01a6198af88a","c728ed4d9edd0dadc4acf47b491683872bc24c1394d948139f718fdfdc3d8073","c3e7c912712adcd13af72f32caeb91de2f7a09880fd50747c690c91b29dfb7c3","fc2cb49e13333ce31695f24728e80eb1bd2e12f89936f618f122389d9b7598dc","4d7143da723a27bc1273d24da92da612538afec8fa226f5cd865b9715311ce16","25092d3e6e29889bf0eea39873006da9114433da3e475d8d92943f7abf59a3af",{"version":"e0504ea87fdc7dec18ce35a401d7e2047e58b54818318fde49727772fcdedd2f","signature":"c91163558b26e3122d9509f217eac4a204c38105c7b0075d9313606f475904ab"},"142d6426a67811d7bb2211ec07461b73302abc1c58f1b7c62a7f084d05717228","af7111a79dd6691e3168ce5b0feb86dc18b4e296e30d4994448b61f899967dd5",{"version":"8ef752d294a4ab29b7bbda576bc6d763bf727078e685537a695a812d83ecdaa0","signature":"64fa5d796f6f8071c5e5282d751646e1863a20756814c232f3ac7656c39070a6"},"5ac6404ddc5d622905e131dbc5da0362a82e89d1cb97cc8256bf06ca9fad4b24",{"version":"9fcfbc2dd0c0614b3a25d41e4425dd86cdfa574a9e7d2febffc85badcee1a0b8","signature":"895ef4cd86d49605f187c52ac4b77f8139f69df7e2f539c27196d72c75df7d31"},{"version":"f7bc005cc4797b7afe6e2a3a538248d346b943322edab6ab1cb332092ce55e3b","signature":"77ffa277b9d3e950e1db6577196590ca2a9d8ecb215359816aeae54c91fe3ab1"},{"version":"975eb852881942b64b42f35251bb55a75b6521e47c3eefe95d61f986265a5225","signature":"ebcf727b4ea8f6266308020bcf5a6f592bddc7ce27d49e88f0e04545305b5a8e"},{"version":"b86196ae20b726e4a42e00bbfc38361e5f751d3d738c952e659a1fbd60964d27","signature":"bfa6b4eb44114b5261a7dcf7d1e69f54af8bc4ab9a39fbe6063013f33ba8b641"},{"version":"c67951274199df6c887191adafac1c605901c3f6ce123351225e2e93c4282de4","signature":"8db3c1fe705300424e16eccb289f38f0f1fa48c0ba2f7ec73342b678c4582f5d"},{"version":"4fc2fcab4e27cceba55c653a6a35f9d9486ce732debfddfa946d0b7bab9229bb","signature":"00da318428374edba6adde61bea395981d1b13728c4dcc5b855f754b5112642e"},"d83d6ec306241a9a59716eadf007d405cbc9d77b688871089a02159087100d5c",{"version":"2729718058d854c0ad8f5c087ba29eed8474ab9a9e07ebf15eb700f06e64b1cb","signature":"2a46d538ae020f29311198de90a5480d05a0d7f7029a58771d0b467ba5426af4"},{"version":"fd5fb0b19cd760511769a1745fc1a05eb029f6cdbed2f4d89020825b759c8752","signature":"d23323d3fd4e48402abcbebffd8c2ec6b32ef4c217f78ac42bf866c2f6c4552c"},{"version":"48674187365141743eaadc4ffa47b457bfa63d36e945b8e4f43d60b0fe6b1907","signature":"26a926d714be0b62bd6e30976bdfc341ec31c2e95a0c30e88e9d971e8c74586f"},{"version":"412e9398be155d644b609b06bb2d0b6f99d86bf3d7db81b27a357ad8df07e0c0","signature":"b453c1a2eac87cc7083566d798ca756e0256165b9e47d7e3db00426cea8fc626"},{"version":"19c27d32b928fb696df567fd2102de34e948bba3550b30787590d15ae58c86ef","signature":"0c37cfbb515ee4df942133efa11132b16e9a3c8b2bf70f602337756d0783918b"},{"version":"c17118d21ac084068b77eb8e382d9f8988e26bded75c7f0f0b132fa67d4ca625","signature":"cc24820820bdd2761360a0d8f809cfa686294a0c4481c3a69a9c61336ec68b80"},{"version":"d9cf2d880112bcdf535b2e069cfc930c0be744548125758087b0d0f5f8bb5205","signature":"acc5e4fc8f5c67e0ec0b0e70a9aa47e928b4bf45439ca592309cbc1592764d4a"},"9a4c49a0b2bf8536b1f4a72f162f807d7a23aa27a816e9cd24cc965540ba4b35","146ba4b99c5feb82663e17a671bf9f53bb39c704cd76345d6c5a801c26372f44",{"version":"dc8a746041b9afc357038c00dc7bb204e7c758e5796e2b965782b10c010ea5da","signature":"3118e3f67853a4d11cd0225bdc00b683855c9fefa5a42bde70b5394b3b57551c"},{"version":"3c2eecbb08d00f262c3266a5729d8dc7033b12c10ad11085239d942330a66be4","signature":"0fadba7aa026b174f612f3ff924b5a2e9a6b53a70568d489f45afc375ad7cfcc"},{"version":"3b9adf4816bbbfce9644c253cc98f9c288ed843a47937b4c1b0cece533529907","signature":"829868d6ec1927e4700983dba2e0835327ecdd4d7f99072a3de19fda116551b4"},{"version":"50ed6e45c39d15e21c206f167abb7c33067931c37c8c660f1928e504a3ba6fda","signature":"0daf72d81e292312f185c81a2ad0648b226433a00d7d139addc06d39d078b2f1"},"2a57cbf1f516e1a2da6e22644f4517479c3ea3f28ff13aefcb1999c0d31c23f0","403d1ce0100de3871af7504ea28916adfc00f4ed05533299196020bb24a5f4f9","f2418af0b544a141cfb8f320b8b6599a4de8031d04554ae5b5a8f5f74983c99d","8de77521349d45f032ccb921923625d7c44116ad1a281ac331beda3197df59c2",{"version":"02fdc48e90772a67702e098b722a5772fddf789fb8aa961fc1e292655581df34","signature":"90b78b57b0842bd1fd5ec099a97cfb33146e6d2d52dd68d8a89ae834105ab366"},{"version":"e08f7f2e161bf3631ced28081d5b567ebce6f58dedc9930ec299b14f7dc52ae2","signature":"4a9216f87f9b92167b0b18cd90016000e71dd7ea61a95385b2b97be6585e9cb3"},{"version":"f5052fefcfa949e999a862b476c37116c29ce6f294c3dbd7f9e9fec0f2091f63","signature":"496a712363ee622ead98319bdf81471e550993b83529174068fce0f0e2db1615"},{"version":"c12fb0c4b324c65600609051919b1de0da4630c66bdbd4dc268efe7780ff4ed8","signature":"92deca0757666c0db63066e8307e28452fed66d809d5c1ef0554b0475e3b098b"},{"version":"7960cf5ee7ba1a5e13a32a18d37e4776ff1fba2019488e6aafe529145ded726d","signature":"887dc6c82444f5c7f3da9c1914b74a13bb46ca0f218deda5ea25d9fda2bef1b6"},{"version":"91f1c45fd1477bc5cb37a9d4fd53162b58192c01cc9e3d82c683f30a2d1d62c8","signature":"4acad5519af585dca63e9cb8fad17d8c6ab406cb272a0263f0507136f1736c06"},{"version":"42beccc3c85d59f68fd450eef31987bd96b8dab6c1f0365759f1361f4a2bab20","signature":"bc627141b934bcd56c4dd7c2cfd6e8a493e5aeca5d0cd654b2f64433504fa8ce"},{"version":"6469e0325b8d62347b79baf42ba957cc2401ce05378bfd521737c049554028ae","signature":"7f1be7e4a47f9abe89d28793e59d0d7a935c7f14a597f1e2b6651d1e54f23957"},{"version":"e6afc6c377cdc0b881c15db7be06fe57fbdbb4074753bb36abdc26000de853ee","signature":"39f82ec23c92368df0de1449bb26e14280862e092ab8e3eaacf80570ac35a7f2"},{"version":"39912ea790c688755e231a1fe88441c441a4b5d4f085c6d69082b3816c3d5b4b","signature":"82382b2041d0305af5dbc1fdf913319293ad163d9286f19914a15ed4920ddeef"},{"version":"6419036e9ec25b03fed142edef64280f5d7dbcc158170cb27899ecb9cb2dae8b","signature":"9798502506a30b631a4841a0c5e4dd369c8662c2ab08bf069fb464262cd9d9f8"},{"version":"4868b67fbbd8cbeee47a13fa7c3d725b2a79c3c0c808e8007160dc18bcdd163f","signature":"1e23589afc9b7799569b118d252a854a7411f206d3a6f1f8f479dad52faa7e8d"},{"version":"8d09f7a29021a69909eca56a60012bb043c703b82fbb1dede51186fedcce88f9","signature":"1a4f84d939445c350647adf2f5001ecc6fcef110b6daa79c11b3aa7c9984d0e1"},{"version":"593405def651364d973e4f004babc84c36d0975d0a51565bd15ba9e13cd17837","signature":"e7b7ca1fbfddbe67a3736393a170a4fe8d2929cdde754c08e4db38a03869ec94"},{"version":"707299fb29dbeab70e66353f5cc7f675af20ba880334ffc77900bb4c2bd875dc","signature":"292ce5a17ff2c76cea97f425a55a9cf3e7ea2b97de64e34f96e499fa3c32fd58"},"8eed414bd2305e20163d35205b450204002bf20e14c7241d7fec46bb18f174d2"],"root":[61,63,64,128,131,[133,138],[140,146],[149,152],[157,172]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":false,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[76],[72,73,74,75],[65,66,67,68],[65],[66],[77],[76,77],[78],[76,91,92],[107],[76,109],[78,79],[77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126],[159,160],[107,159],[107,145],[157,158],[107,157],[163,164],[107,127,158],[63,158],[63,107,153,156,158,160],[76,127,165],[127,167],[76,127,161],[61,63],[144],[63,145],[61,63,64,141,144,145,146,152,161,162,165,166,167,168,169,170],[130],[151],[144,147,148,150,171],[149],[62,132],[62,63,64,71,127,128,131,133,134,135,137,138,140,172],[62,136,137,172],[136,138,139],[62],[63,70,131,141,142,143],[63],[69],[98,99,102,103,104,105,106],[100,101],[154,155],[156],[129],[76,144],[137,172],[138,139]],"referencedMap":[[101,1],[100,1],[76,2],[69,3],[66,4],[67,5],[82,1],[83,1],[85,6],[86,7],[88,1],[89,1],[90,1],[119,8],[93,9],[94,1],[95,1],[124,1],[126,1],[91,1],[96,1],[125,1],[108,10],[110,11],[122,1],[123,1],[116,1],[121,12],[115,1],[127,13],[77,1],[159,10],[169,14],[160,15],[157,16],[167,17],[158,18],[165,19],[164,20],[163,21],[161,22],[166,23],[168,24],[162,25],[64,26],[145,27],[146,28],[171,29],[131,30],[152,31],[151,32],[150,33],[133,34],[141,35],[138,36],[140,37],[136,38],[144,39],[134,27],[170,28],[63,38],[143,40],[70,41],[98,1],[107,42],[106,1],[102,43],[99,1],[105,1],[156,44],[154,45],[130,46],[71,38]],"exportedModulesMap":[[101,1],[100,1],[76,2],[69,3],[66,4],[67,5],[82,1],[83,1],[85,6],[86,7],[88,1],[89,1],[90,1],[119,8],[93,9],[94,1],[95,1],[124,1],[126,1],[91,1],[96,1],[125,1],[108,10],[110,11],[122,1],[123,1],[116,1],[121,12],[115,1],[127,13],[77,1],[159,1],[157,47],[163,40],[161,40],[166,1],[168,1],[162,1],[64,40],[145,27],[146,40],[171,40],[151,27],[133,38],[141,40],[138,48],[140,49],[136,38],[144,40],[134,27],[170,40],[63,38],[143,40],[70,41],[98,1],[107,42],[106,1],[102,43],[99,1],[105,1],[156,44],[154,45],[130,46],[71,38]],"semanticDiagnosticsPerFile":[109,74,101,100,72,76,75,73,148,147,132,62,139,59,60,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,10,1,11,58,65,68,69,66,67,80,82,81,83,84,85,86,87,117,88,89,90,119,120,93,94,95,124,126,91,92,96,125,97,108,110,111,122,112,113,123,116,114,121,115,118,127,77,78,79,159,169,160,157,167,158,165,164,163,161,166,168,162,64,145,146,61,171,131,152,151,150,149,133,128,141,137,172,138,140,136,135,144,134,170,142,63,143,70,98,107,104,106,102,99,105,103,155,156,154,153,129,130,71],"latestChangedDtsFile":"./build-types/index.d.ts"},"version":"5.1.6"}
1
+ {"program":{"fileNames":["../../node_modules/typescript/lib/lib.es5.d.ts","../../node_modules/typescript/lib/lib.es2015.d.ts","../../node_modules/typescript/lib/lib.es2016.d.ts","../../node_modules/typescript/lib/lib.es2017.d.ts","../../node_modules/typescript/lib/lib.es2018.d.ts","../../node_modules/typescript/lib/lib.es2019.d.ts","../../node_modules/typescript/lib/lib.es2020.d.ts","../../node_modules/typescript/lib/lib.es2021.d.ts","../../node_modules/typescript/lib/lib.es2022.d.ts","../../node_modules/typescript/lib/lib.es2023.d.ts","../../node_modules/typescript/lib/lib.esnext.d.ts","../../node_modules/typescript/lib/lib.dom.d.ts","../../node_modules/typescript/lib/lib.es2015.core.d.ts","../../node_modules/typescript/lib/lib.es2015.collection.d.ts","../../node_modules/typescript/lib/lib.es2015.generator.d.ts","../../node_modules/typescript/lib/lib.es2015.iterable.d.ts","../../node_modules/typescript/lib/lib.es2015.promise.d.ts","../../node_modules/typescript/lib/lib.es2015.proxy.d.ts","../../node_modules/typescript/lib/lib.es2015.reflect.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.d.ts","../../node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2016.array.include.d.ts","../../node_modules/typescript/lib/lib.es2017.object.d.ts","../../node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2017.string.d.ts","../../node_modules/typescript/lib/lib.es2017.intl.d.ts","../../node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","../../node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","../../node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","../../node_modules/typescript/lib/lib.es2018.intl.d.ts","../../node_modules/typescript/lib/lib.es2018.promise.d.ts","../../node_modules/typescript/lib/lib.es2018.regexp.d.ts","../../node_modules/typescript/lib/lib.es2019.array.d.ts","../../node_modules/typescript/lib/lib.es2019.object.d.ts","../../node_modules/typescript/lib/lib.es2019.string.d.ts","../../node_modules/typescript/lib/lib.es2019.symbol.d.ts","../../node_modules/typescript/lib/lib.es2019.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.bigint.d.ts","../../node_modules/typescript/lib/lib.es2020.date.d.ts","../../node_modules/typescript/lib/lib.es2020.promise.d.ts","../../node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2020.string.d.ts","../../node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","../../node_modules/typescript/lib/lib.es2020.intl.d.ts","../../node_modules/typescript/lib/lib.es2020.number.d.ts","../../node_modules/typescript/lib/lib.es2021.promise.d.ts","../../node_modules/typescript/lib/lib.es2021.string.d.ts","../../node_modules/typescript/lib/lib.es2021.weakref.d.ts","../../node_modules/typescript/lib/lib.es2021.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.array.d.ts","../../node_modules/typescript/lib/lib.es2022.error.d.ts","../../node_modules/typescript/lib/lib.es2022.intl.d.ts","../../node_modules/typescript/lib/lib.es2022.object.d.ts","../../node_modules/typescript/lib/lib.es2022.sharedmemory.d.ts","../../node_modules/typescript/lib/lib.es2022.string.d.ts","../../node_modules/typescript/lib/lib.es2022.regexp.d.ts","../../node_modules/typescript/lib/lib.es2023.array.d.ts","../../node_modules/typescript/lib/lib.esnext.intl.d.ts","../../node_modules/typescript/lib/lib.decorators.d.ts","../../node_modules/typescript/lib/lib.decorators.legacy.d.ts","./src/factory.js","../../node_modules/redux/index.d.ts","./src/types.ts","./src/controls.js","../../node_modules/utility-types/dist/aliases-and-guards.d.ts","../../node_modules/utility-types/dist/mapped-types.d.ts","../../node_modules/utility-types/dist/utility-types.d.ts","../../node_modules/utility-types/dist/functional-helpers.d.ts","../../node_modules/utility-types/dist/index.d.ts","../deprecated/build-types/index.d.ts","../redux-routine/build-types/index.d.ts","../../node_modules/@types/react/global.d.ts","../../node_modules/csstype/index.d.ts","../../node_modules/@types/prop-types/index.d.ts","../../node_modules/@types/scheduler/tracing.d.ts","../../node_modules/@types/react/index.d.ts","../compose/build-types/utils/create-higher-order-component/index.d.ts","../compose/build-types/utils/debounce/index.d.ts","../compose/build-types/utils/throttle/index.d.ts","../compose/build-types/higher-order/compose.d.ts","../compose/build-types/higher-order/pipe.d.ts","../compose/build-types/higher-order/if-condition/index.d.ts","../compose/build-types/higher-order/pure/index.d.ts","../compose/build-types/higher-order/with-global-events/index.d.ts","../compose/build-types/higher-order/with-instance-id/index.d.ts","../compose/build-types/higher-order/with-safe-timeout/index.d.ts","../compose/build-types/higher-order/with-state/index.d.ts","../compose/build-types/hooks/use-constrained-tabbing/index.d.ts","../compose/build-types/hooks/use-copy-on-click/index.d.ts","../compose/build-types/hooks/use-copy-to-clipboard/index.d.ts","../compose/build-types/hooks/use-focus-on-mount/index.d.ts","../compose/build-types/hooks/use-focus-outside/index.d.ts","../compose/build-types/hooks/use-dialog/index.d.ts","../compose/build-types/hooks/use-disabled/index.d.ts","../compose/build-types/hooks/use-dragging/index.d.ts","../compose/build-types/hooks/use-focus-return/index.d.ts","../compose/build-types/hooks/use-instance-id/index.d.ts","../element/build-types/create-interpolate-element.d.ts","../element/build-types/react.d.ts","../../node_modules/@types/react-dom/index.d.ts","../../node_modules/@types/react-dom/client.d.ts","../element/build-types/react-platform.d.ts","../element/build-types/utils.d.ts","../element/build-types/platform.d.ts","../element/build-types/serialize.d.ts","../element/build-types/raw-html.d.ts","../element/build-types/index.d.ts","../compose/build-types/hooks/use-isomorphic-layout-effect/index.d.ts","../../node_modules/@types/mousetrap/index.d.ts","../compose/build-types/hooks/use-keyboard-shortcut/index.d.ts","../compose/build-types/hooks/use-media-query/index.d.ts","../compose/build-types/hooks/use-previous/index.d.ts","../compose/build-types/hooks/use-reduced-motion/index.d.ts","../compose/build-types/hooks/use-state-with-history/index.d.ts","../compose/build-types/hooks/use-viewport-match/index.d.ts","../compose/build-types/hooks/use-resize-observer/index.d.ts","../compose/build-types/hooks/use-async-list/index.d.ts","../compose/build-types/hooks/use-warn-on-change/index.d.ts","../compose/build-types/hooks/use-debounce/index.d.ts","../compose/build-types/hooks/use-debounced-input/index.d.ts","../compose/build-types/hooks/use-throttle/index.d.ts","../compose/build-types/hooks/use-merge-refs/index.d.ts","../compose/build-types/hooks/use-ref-effect/index.d.ts","../compose/build-types/hooks/use-drop-zone/index.d.ts","../compose/build-types/hooks/use-focusable-iframe/index.d.ts","../compose/build-types/hooks/use-fixed-window-list/index.d.ts","../compose/build-types/index.d.ts","./src/redux-store/combine-reducers.js","../private-apis/build-types/implementation.d.ts","../private-apis/build-types/index.d.ts","./src/lock-unlock.js","../../node_modules/is-promise/index.d.ts","./src/promise-middleware.js","./src/resolvers-cache-middleware.js","./src/redux-store/thunk-middleware.js","./src/redux-store/metadata/utils.ts","./src/redux-store/metadata/actions.js","./src/redux-store/metadata/reducer.ts","../../node_modules/rememo/rememo.d.ts","./src/redux-store/metadata/selectors.js","./src/redux-store/index.js","./src/store/index.js","./src/utils/emitter.js","./src/registry.js","./src/default-registry.js","./src/dispatch.ts","../../node_modules/is-plain-object/is-plain-object.d.ts","../../node_modules/deepmerge/index.d.ts","./src/plugins/persistence/storage/object.js","./src/plugins/persistence/storage/default.js","./src/plugins/persistence/index.js","./src/plugins/index.js","../priority-queue/build-types/index.d.ts","../is-shallow-equal/build-types/objects.d.ts","../is-shallow-equal/build-types/arrays.d.ts","../is-shallow-equal/build-types/index.d.ts","./src/components/registry-provider/context.js","./src/components/registry-provider/use-registry.js","./src/components/async-mode-provider/context.js","./src/components/async-mode-provider/use-async-mode.js","./src/components/use-select/index.js","./src/components/with-select/index.js","./src/components/use-dispatch/use-dispatch.js","./src/components/use-dispatch/use-dispatch-with-map.js","./src/components/use-dispatch/index.js","./src/components/with-dispatch/index.js","./src/components/registry-provider/index.js","./src/components/with-registry/index.js","./src/components/async-mode-provider/index.js","./src/select.ts","./src/index.js","./src/redux-store/metadata/equivalent-key-map.d.ts"],"fileInfos":[{"version":"f59215c5f1d886b05395ee7aca73e0ac69ddfad2843aa88530e797879d511bad","affectsGlobalScope":true},"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","dc48272d7c333ccf58034c0026162576b7d50ea0e69c3b9292f803fc20720fd5","27147504487dc1159369da4f4da8a26406364624fa9bc3db632f7d94a5bae2c3","5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","5514e54f17d6d74ecefedc73c504eadffdeda79c7ea205cf9febead32d45c4bc","f4e736d6c8d69ae5b3ab0ddfcaa3dc365c3e76909d6660af5b4e979b3934ac20","eeeb3aca31fbadef8b82502484499dfd1757204799a6f5b33116201c810676ec",{"version":"3dda5344576193a4ae48b8d03f105c86f20b2f2aff0a1d1fd7935f5d68649654","affectsGlobalScope":true},{"version":"9d9885c728913c1d16e0d2831b40341d6ad9a0ceecaabc55209b306ad9c736a5","affectsGlobalScope":true},{"version":"17bea081b9c0541f39dd1ae9bc8c78bdd561879a682e60e2f25f688c0ecab248","affectsGlobalScope":true},{"version":"4443e68b35f3332f753eacc66a04ac1d2053b8b035a0e0ac1d455392b5e243b3","affectsGlobalScope":true},{"version":"ab22100fdd0d24cfc2cc59d0a00fc8cf449830d9c4030dc54390a46bd562e929","affectsGlobalScope":true},{"version":"f7bd636ae3a4623c503359ada74510c4005df5b36de7f23e1db8a5c543fd176b","affectsGlobalScope":true},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true},{"version":"0c20f4d2358eb679e4ae8a4432bdd96c857a2960fd6800b21ec4008ec59d60ea","affectsGlobalScope":true},{"version":"36ae84ccc0633f7c0787bc6108386c8b773e95d3b052d9464a99cd9b8795fbec","affectsGlobalScope":true},{"version":"82d0d8e269b9eeac02c3bd1c9e884e85d483fcb2cd168bccd6bc54df663da031","affectsGlobalScope":true},{"version":"b8deab98702588840be73d67f02412a2d45a417a3c097b2e96f7f3a42ac483d1","affectsGlobalScope":true},{"version":"4738f2420687fd85629c9efb470793bb753709c2379e5f85bc1815d875ceadcd","affectsGlobalScope":true},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true},{"version":"376d554d042fb409cb55b5cbaf0b2b4b7e669619493c5d18d5fa8bd67273f82a","affectsGlobalScope":true},{"version":"9fc46429fbe091ac5ad2608c657201eb68b6f1b8341bd6d670047d32ed0a88fa","affectsGlobalScope":true},{"version":"61c37c1de663cf4171e1192466e52c7a382afa58da01b1dc75058f032ddf0839","affectsGlobalScope":true},{"version":"c4138a3dd7cd6cf1f363ca0f905554e8d81b45844feea17786cdf1626cb8ea06","affectsGlobalScope":true},{"version":"6ff3e2452b055d8f0ec026511c6582b55d935675af67cdb67dd1dc671e8065df","affectsGlobalScope":true},{"version":"03de17b810f426a2f47396b0b99b53a82c1b60e9cba7a7edda47f9bb077882f4","affectsGlobalScope":true},{"version":"8184c6ddf48f0c98429326b428478ecc6143c27f79b79e85740f17e6feb090f1","affectsGlobalScope":true},{"version":"261c4d2cf86ac5a89ad3fb3fafed74cbb6f2f7c1d139b0540933df567d64a6ca","affectsGlobalScope":true},{"version":"6af1425e9973f4924fca986636ac19a0cf9909a7e0d9d3009c349e6244e957b6","affectsGlobalScope":true},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true},{"version":"15a630d6817718a2ddd7088c4f83e4673fde19fa992d2eae2cf51132a302a5d3","affectsGlobalScope":true},{"version":"f06948deb2a51aae25184561c9640fb66afeddb34531a9212d011792b1d19e0a","affectsGlobalScope":true},{"version":"01e0ee7e1f661acedb08b51f8a9b7d7f959e9cdb6441360f06522cc3aea1bf2e","affectsGlobalScope":true},{"version":"ac17a97f816d53d9dd79b0d235e1c0ed54a8cc6a0677e9a3d61efb480b2a3e4e","affectsGlobalScope":true},{"version":"bf14a426dbbf1022d11bd08d6b8e709a2e9d246f0c6c1032f3b2edb9a902adbe","affectsGlobalScope":true},{"version":"ec0104fee478075cb5171e5f4e3f23add8e02d845ae0165bfa3f1099241fa2aa","affectsGlobalScope":true},{"version":"2b72d528b2e2fe3c57889ca7baef5e13a56c957b946906d03767c642f386bbc3","affectsGlobalScope":true},{"version":"9cc66b0513ad41cb5f5372cca86ef83a0d37d1c1017580b7dace3ea5661836df","affectsGlobalScope":true},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true},{"version":"709efdae0cb5df5f49376cde61daacc95cdd44ae4671da13a540da5088bf3f30","affectsGlobalScope":true},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true},{"version":"61ed9b6d07af959e745fb11f9593ecd743b279418cc8a99448ea3cd5f3b3eb22","affectsGlobalScope":true},{"version":"038a2f66a34ee7a9c2fbc3584c8ab43dff2995f8c68e3f566f4c300d2175e31e","affectsGlobalScope":true},{"version":"4fa6ed14e98aa80b91f61b9805c653ee82af3502dc21c9da5268d3857772ca05","affectsGlobalScope":true},{"version":"f5c92f2c27b06c1a41b88f6db8299205aee52c2a2943f7ed29bd585977f254e8","affectsGlobalScope":true},{"version":"930b0e15811f84e203d3c23508674d5ded88266df4b10abee7b31b2ac77632d2","affectsGlobalScope":true},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true},{"version":"b9ea5778ff8b50d7c04c9890170db34c26a5358cccba36844fe319f50a43a61a","affectsGlobalScope":true},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true},{"version":"50d53ccd31f6667aff66e3d62adf948879a3a16f05d89882d1188084ee415bbc","affectsGlobalScope":true},{"version":"25de46552b782d43cb7284df22fe2a265de387cf0248b747a7a1b647d81861f6","affectsGlobalScope":true},{"version":"307c8b7ebbd7f23a92b73a4c6c0a697beca05b06b036c23a34553e5fe65e4fdc","affectsGlobalScope":true},{"version":"189c0703923150aa30673fa3de411346d727cc44a11c75d05d7cf9ef095daa22","affectsGlobalScope":true},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true},{"version":"c9615c18df636433fd4f3b74df589a29f3beffaab8f7f4c6915686b6bb87eddd","signature":"9481c72104c81bcf6384d66fec925883e1cfc251ec79911b224c020402fcca43"},{"version":"8f19251323456195ec9236df857bac3b8f97b73b540ef06ead2ceccc3884954f","affectsGlobalScope":true},{"version":"9187c63478d0b5d7558808e8bbeeee910b73a87bd7e2314d12aef5a54b60534f","signature":"b87862101a0bc834b490d40f203e7550d38ba119fbb4b7cf1a3fe5d62e3aa62d"},{"version":"e382a7658f76f31d91f33c404b9526eeee7938eb4aee831feb51a3ba0e40a321","signature":"8c2a4bbd3555d93ed90e0c99548acc2b32c260cddafecec4b4cd454c1424ad1e"},"bd0d80db12ef1aceefc4f9d3eb88517b9634fa747ae8475981da8655292feab8","55e68fb1618e3f55f7866b8c8415152159309a14b716370081ab0b7af96d876e","bf0491af2455f92282b61807be2be6e7ad7d532e47fac7b698019d3617c28ff7","5d874fb879ab8601c02549817dceb2d0a30729cb7e161625dd6f819bbff1ec0b","ee551a880882770c4f56a0964a9767c9feafe497a5be52652527d098c88d85cb","111864872d90aef86668951ee1765f09e9def8de81160a1ddc3312f2766989ab","a1a9bdabeeb22c50cd0fbae1ca01a15ebe75a1adb5a9e7c27b3d23eb8b10441d",{"version":"bbdf156fea2fabed31a569445835aeedcc33643d404fcbaa54541f06c109df3f","affectsGlobalScope":true},"4c68749a564a6facdf675416d75789ee5a557afda8960e0803cf6711fa569288","f7b46d22a307739c145e5fddf537818038fdfffd580d79ed717f4d4d37249380","f5a8b384f182b3851cec3596ccc96cb7464f8d3469f48c74bf2befb782a19de5",{"version":"5917af4ff931b050dba49a1dedd9c00f15f7b3dc4345ad8491bfacd2ec68ed32","affectsGlobalScope":true},"33ac93038bb0401ec8d626b8e9283233a83e185b72de6af25e2be198c142af7c","5770292808bdac9e809cde7178a187cce89dcd6ce72979c1d1d099d213067671","49f44b9e32a9d528a264cc9cf1caeb63fb8e784ad6593ae4db97b8d55958487e","fc1233533790a4225cd78fe456ad42066f5ede6ed5c9338f04dacec955e8432b","4aad182af186a2df9306a344432307410992bb387f9dae22246d4198d970afc2","9e2e7bb9f856f9bc12840215ae088dbc2254f61ac59b13a5b057c231595cf259","0848142b6b710fbacb6ebe61f27eb0f9e998dfc1f8fc8564a5391576b67eabae","1d2894af65430564ba12842214a8384c3edc94b9cf0e64538474d28acb288ab0","ee5c6b1a350cfffc56ceb3919c0e33fb037788f46689eb56e8a664813eac3f2d","101b9062bf99fffcd043805fb43f67acaa0bfe7495b324aa9b682372c98fd4ac","ae51096d7e513de636260729cce1c8cab0f03417bf7fd4a5fc3bc1e13066a3e0","184a90fe849d5227047070956c9507aea4884d97a7c4e16bc1d8bb2033aabbed","8c55bbcfff983c0e9afd933a35c73eaf8ee1186e3e86feb0e6ee237dd3e375bd","903129fde008533775b06a5ebdf00698e5fde5bf5652ff6c29c3f7e432c7378c","74015f799eaf1baad08d90b1b2ce91fab84d50ead10c58c699a858b717f63f41","28701b1e705eafec432aa5e8581e689c9bb9341bba6616f6d1f681025d32f221","e2248218e82b4e3df1e2f590c6e235c0e3987c50a8a087e3104964c61644bf78","f30b5c4f3570832ada75cb2c06e668934f9b9b9d437a10780b01effb53e2a9a2","2ac28d481be387f5cad74c06d1dd0d61b3d94953687e55043218c927c2ed18bb","26a6058ab933bbdcf633bf4029cbadea38c2d1f8fd516dd6f994546a906c5247","202ca9254496f06eb5fc5b14e7386a800579d34808ee327f43e97596d8845c1e","0c1c79ce1b4c085adce94f17891812ee1a8b76fc1de63dd0d9d80ea34034f389","85abb794f600fbd798f9bc50e51771a9152b7e5ad611a95fceac020efd0a0bd4","e4dd91dd4789a109aab51d8a0569a282369fcda9ba6f2b2297bc61bacfb1a042","83e27bbd7304ea67f9afa1535f1d4fdb15866089f0d893c784cbb5b1c6fb3386","472c14cdec534a465e866b6e1feee2d4e0d89c15fdc33ba80ff034fa0e80f3c1","4d807d55c784b72f71c092c34c84d09b95c29500c30252538fd5cf9a0a788c0e","df43a3968118d4b16618d7a0ac8ba89337fcce3c39e39984087ac34bf0cf250c","7f2497d56947331a6705c6c8d099b173d6fa7b90f5110c190cbca5cae1f3a09c","582f001c48a6204fd6bb5c6c71b36adc5256078c0ac3686b99db59cbb724ca73","af88a0b0f808a6721401550621bfe67c46c6fd55000305058e7c73600d119a9b","35bde1eadd47ade9e8fdad3888485ccbdcb27f718e4b1ad80241437c521f5ff8","96520a873073a2f39f922d0a422498cdcc28be9066a769000cdd07ecaba7b645","7302cf0bc39ea0cb42f0605035b2dddb048809d0cb2ce18af00547e0f4933c93","f1d2d2c3278068da7558b0e56945caf3716d63663da66d2d3fa1d5ba1672122f","35e96b392c3b0e1134be3c6e7c0c75f42daf09a1ed172f979d93078050a04645","ca4c88ef756cb9c6abd4b9ee2db0ee816f68484200f9e0c8a53363e44ab47374","a65a75f828f15734b92b18842c561b5dc8052ee2bf955aa8d8ce452bc7906cb1","2371b1f1d8ff771badcebc3944f9296c4ce5854c4051e5501d1fb43451230d19",{"version":"15f62f4185e8bb96097c0ea709bcc4d091dbe762f48076a08bae01d3014a01f6","affectsGlobalScope":true},"4b34ff3543e7b99f7b8f2125d0dc6ccacc11e9fa9f8e6de7a9cbd5d11a1ddd79","90358612694ff8f39093016eac40ee2fcd0fe2d98ec495463a23822f9498ef50","7217b5c129ccf4da64100067edd1cf89684c5843b047467c074acfd7ca3b384c","9d5c955581f7529f3b68d9a63d703c389807441106e51e604d2cd0b613aaa952","ea7224606ec74917a59437170337f3e1b38de98bc36d9e9d955bd5e484f40bbf","5cf71c5937450c62d091b5a43cfb545f7ff376cdf1d0271ac38f01a6198af88a","c728ed4d9edd0dadc4acf47b491683872bc24c1394d948139f718fdfdc3d8073","c3e7c912712adcd13af72f32caeb91de2f7a09880fd50747c690c91b29dfb7c3","fc2cb49e13333ce31695f24728e80eb1bd2e12f89936f618f122389d9b7598dc","4d7143da723a27bc1273d24da92da612538afec8fa226f5cd865b9715311ce16","25092d3e6e29889bf0eea39873006da9114433da3e475d8d92943f7abf59a3af",{"version":"e0504ea87fdc7dec18ce35a401d7e2047e58b54818318fde49727772fcdedd2f","signature":"c91163558b26e3122d9509f217eac4a204c38105c7b0075d9313606f475904ab"},"142d6426a67811d7bb2211ec07461b73302abc1c58f1b7c62a7f084d05717228","af7111a79dd6691e3168ce5b0feb86dc18b4e296e30d4994448b61f899967dd5",{"version":"8ef752d294a4ab29b7bbda576bc6d763bf727078e685537a695a812d83ecdaa0","signature":"64fa5d796f6f8071c5e5282d751646e1863a20756814c232f3ac7656c39070a6"},"5ac6404ddc5d622905e131dbc5da0362a82e89d1cb97cc8256bf06ca9fad4b24",{"version":"9fcfbc2dd0c0614b3a25d41e4425dd86cdfa574a9e7d2febffc85badcee1a0b8","signature":"895ef4cd86d49605f187c52ac4b77f8139f69df7e2f539c27196d72c75df7d31"},{"version":"f7bc005cc4797b7afe6e2a3a538248d346b943322edab6ab1cb332092ce55e3b","signature":"77ffa277b9d3e950e1db6577196590ca2a9d8ecb215359816aeae54c91fe3ab1"},{"version":"975eb852881942b64b42f35251bb55a75b6521e47c3eefe95d61f986265a5225","signature":"ebcf727b4ea8f6266308020bcf5a6f592bddc7ce27d49e88f0e04545305b5a8e"},{"version":"b86196ae20b726e4a42e00bbfc38361e5f751d3d738c952e659a1fbd60964d27","signature":"bfa6b4eb44114b5261a7dcf7d1e69f54af8bc4ab9a39fbe6063013f33ba8b641"},{"version":"c67951274199df6c887191adafac1c605901c3f6ce123351225e2e93c4282de4","signature":"8db3c1fe705300424e16eccb289f38f0f1fa48c0ba2f7ec73342b678c4582f5d"},{"version":"4fc2fcab4e27cceba55c653a6a35f9d9486ce732debfddfa946d0b7bab9229bb","signature":"00da318428374edba6adde61bea395981d1b13728c4dcc5b855f754b5112642e"},"d83d6ec306241a9a59716eadf007d405cbc9d77b688871089a02159087100d5c",{"version":"2729718058d854c0ad8f5c087ba29eed8474ab9a9e07ebf15eb700f06e64b1cb","signature":"2a46d538ae020f29311198de90a5480d05a0d7f7029a58771d0b467ba5426af4"},{"version":"6071da873e5fdcc95c8817a7f0284fbee39283c29aec16e38563cb94be1e48eb","signature":"d23323d3fd4e48402abcbebffd8c2ec6b32ef4c217f78ac42bf866c2f6c4552c"},{"version":"48674187365141743eaadc4ffa47b457bfa63d36e945b8e4f43d60b0fe6b1907","signature":"26a926d714be0b62bd6e30976bdfc341ec31c2e95a0c30e88e9d971e8c74586f"},{"version":"412e9398be155d644b609b06bb2d0b6f99d86bf3d7db81b27a357ad8df07e0c0","signature":"b453c1a2eac87cc7083566d798ca756e0256165b9e47d7e3db00426cea8fc626"},{"version":"19c27d32b928fb696df567fd2102de34e948bba3550b30787590d15ae58c86ef","signature":"0c37cfbb515ee4df942133efa11132b16e9a3c8b2bf70f602337756d0783918b"},{"version":"c17118d21ac084068b77eb8e382d9f8988e26bded75c7f0f0b132fa67d4ca625","signature":"cc24820820bdd2761360a0d8f809cfa686294a0c4481c3a69a9c61336ec68b80"},{"version":"d9cf2d880112bcdf535b2e069cfc930c0be744548125758087b0d0f5f8bb5205","signature":"acc5e4fc8f5c67e0ec0b0e70a9aa47e928b4bf45439ca592309cbc1592764d4a"},"9a4c49a0b2bf8536b1f4a72f162f807d7a23aa27a816e9cd24cc965540ba4b35","146ba4b99c5feb82663e17a671bf9f53bb39c704cd76345d6c5a801c26372f44",{"version":"dc8a746041b9afc357038c00dc7bb204e7c758e5796e2b965782b10c010ea5da","signature":"3118e3f67853a4d11cd0225bdc00b683855c9fefa5a42bde70b5394b3b57551c"},{"version":"3c2eecbb08d00f262c3266a5729d8dc7033b12c10ad11085239d942330a66be4","signature":"0fadba7aa026b174f612f3ff924b5a2e9a6b53a70568d489f45afc375ad7cfcc"},{"version":"3b9adf4816bbbfce9644c253cc98f9c288ed843a47937b4c1b0cece533529907","signature":"829868d6ec1927e4700983dba2e0835327ecdd4d7f99072a3de19fda116551b4"},{"version":"50ed6e45c39d15e21c206f167abb7c33067931c37c8c660f1928e504a3ba6fda","signature":"0daf72d81e292312f185c81a2ad0648b226433a00d7d139addc06d39d078b2f1"},"2a57cbf1f516e1a2da6e22644f4517479c3ea3f28ff13aefcb1999c0d31c23f0","403d1ce0100de3871af7504ea28916adfc00f4ed05533299196020bb24a5f4f9","f2418af0b544a141cfb8f320b8b6599a4de8031d04554ae5b5a8f5f74983c99d","8de77521349d45f032ccb921923625d7c44116ad1a281ac331beda3197df59c2",{"version":"02fdc48e90772a67702e098b722a5772fddf789fb8aa961fc1e292655581df34","signature":"90b78b57b0842bd1fd5ec099a97cfb33146e6d2d52dd68d8a89ae834105ab366"},{"version":"e08f7f2e161bf3631ced28081d5b567ebce6f58dedc9930ec299b14f7dc52ae2","signature":"4a9216f87f9b92167b0b18cd90016000e71dd7ea61a95385b2b97be6585e9cb3"},{"version":"f5052fefcfa949e999a862b476c37116c29ce6f294c3dbd7f9e9fec0f2091f63","signature":"496a712363ee622ead98319bdf81471e550993b83529174068fce0f0e2db1615"},{"version":"c12fb0c4b324c65600609051919b1de0da4630c66bdbd4dc268efe7780ff4ed8","signature":"92deca0757666c0db63066e8307e28452fed66d809d5c1ef0554b0475e3b098b"},{"version":"7960cf5ee7ba1a5e13a32a18d37e4776ff1fba2019488e6aafe529145ded726d","signature":"887dc6c82444f5c7f3da9c1914b74a13bb46ca0f218deda5ea25d9fda2bef1b6"},{"version":"91f1c45fd1477bc5cb37a9d4fd53162b58192c01cc9e3d82c683f30a2d1d62c8","signature":"4acad5519af585dca63e9cb8fad17d8c6ab406cb272a0263f0507136f1736c06"},{"version":"42beccc3c85d59f68fd450eef31987bd96b8dab6c1f0365759f1361f4a2bab20","signature":"bc627141b934bcd56c4dd7c2cfd6e8a493e5aeca5d0cd654b2f64433504fa8ce"},{"version":"6469e0325b8d62347b79baf42ba957cc2401ce05378bfd521737c049554028ae","signature":"7f1be7e4a47f9abe89d28793e59d0d7a935c7f14a597f1e2b6651d1e54f23957"},{"version":"e6afc6c377cdc0b881c15db7be06fe57fbdbb4074753bb36abdc26000de853ee","signature":"39f82ec23c92368df0de1449bb26e14280862e092ab8e3eaacf80570ac35a7f2"},{"version":"39912ea790c688755e231a1fe88441c441a4b5d4f085c6d69082b3816c3d5b4b","signature":"82382b2041d0305af5dbc1fdf913319293ad163d9286f19914a15ed4920ddeef"},{"version":"6419036e9ec25b03fed142edef64280f5d7dbcc158170cb27899ecb9cb2dae8b","signature":"9798502506a30b631a4841a0c5e4dd369c8662c2ab08bf069fb464262cd9d9f8"},{"version":"4868b67fbbd8cbeee47a13fa7c3d725b2a79c3c0c808e8007160dc18bcdd163f","signature":"1e23589afc9b7799569b118d252a854a7411f206d3a6f1f8f479dad52faa7e8d"},{"version":"8d09f7a29021a69909eca56a60012bb043c703b82fbb1dede51186fedcce88f9","signature":"1a4f84d939445c350647adf2f5001ecc6fcef110b6daa79c11b3aa7c9984d0e1"},{"version":"593405def651364d973e4f004babc84c36d0975d0a51565bd15ba9e13cd17837","signature":"e7b7ca1fbfddbe67a3736393a170a4fe8d2929cdde754c08e4db38a03869ec94"},{"version":"707299fb29dbeab70e66353f5cc7f675af20ba880334ffc77900bb4c2bd875dc","signature":"292ce5a17ff2c76cea97f425a55a9cf3e7ea2b97de64e34f96e499fa3c32fd58"},"8eed414bd2305e20163d35205b450204002bf20e14c7241d7fec46bb18f174d2"],"root":[61,63,64,128,131,[133,138],[140,146],[149,152],[157,172]],"options":{"allowSyntheticDefaultImports":true,"composite":true,"declaration":true,"declarationDir":"./build-types","declarationMap":true,"emitDeclarationOnly":true,"esModuleInterop":false,"jsx":1,"module":99,"noFallthroughCasesInSwitch":true,"noImplicitReturns":true,"noUnusedLocals":true,"noUnusedParameters":false,"rootDir":"./src","strict":true,"target":99},"fileIdsList":[[76],[72,73,74,75],[65,66,67,68],[65],[66],[77],[76,77],[78],[76,91,92],[107],[76,109],[78,79],[77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126],[159,160],[107,159],[107,145],[157,158],[107,157],[163,164],[107,127,158],[63,158],[63,107,153,156,158,160],[76,127,165],[127,167],[76,127,161],[61,63],[144],[63,145],[61,63,64,141,144,145,146,152,161,162,165,166,167,168,169,170],[130],[151],[144,147,148,150,171],[149],[62,132],[62,63,64,71,127,128,131,133,134,135,137,138,140,172],[62,136,137,172],[136,138,139],[62],[63,70,131,141,142,143],[63],[69],[98,99,102,103,104,105,106],[100,101],[154,155],[156],[129],[76,144],[137,172],[138,139]],"referencedMap":[[101,1],[100,1],[76,2],[69,3],[66,4],[67,5],[82,1],[83,1],[85,6],[86,7],[88,1],[89,1],[90,1],[119,8],[93,9],[94,1],[95,1],[124,1],[126,1],[91,1],[96,1],[125,1],[108,10],[110,11],[122,1],[123,1],[116,1],[121,12],[115,1],[127,13],[77,1],[159,10],[169,14],[160,15],[157,16],[167,17],[158,18],[165,19],[164,20],[163,21],[161,22],[166,23],[168,24],[162,25],[64,26],[145,27],[146,28],[171,29],[131,30],[152,31],[151,32],[150,33],[133,34],[141,35],[138,36],[140,37],[136,38],[144,39],[134,27],[170,28],[63,38],[143,40],[70,41],[98,1],[107,42],[106,1],[102,43],[99,1],[105,1],[156,44],[154,45],[130,46],[71,38]],"exportedModulesMap":[[101,1],[100,1],[76,2],[69,3],[66,4],[67,5],[82,1],[83,1],[85,6],[86,7],[88,1],[89,1],[90,1],[119,8],[93,9],[94,1],[95,1],[124,1],[126,1],[91,1],[96,1],[125,1],[108,10],[110,11],[122,1],[123,1],[116,1],[121,12],[115,1],[127,13],[77,1],[159,1],[157,47],[163,40],[161,40],[166,1],[168,1],[162,1],[64,40],[145,27],[146,40],[171,40],[151,27],[133,38],[141,40],[138,48],[140,49],[136,38],[144,40],[134,27],[170,40],[63,38],[143,40],[70,41],[98,1],[107,42],[106,1],[102,43],[99,1],[105,1],[156,44],[154,45],[130,46],[71,38]],"semanticDiagnosticsPerFile":[109,74,101,100,72,76,75,73,148,147,132,62,139,59,60,12,14,13,2,15,16,17,18,19,20,21,22,3,4,26,23,24,25,27,28,29,5,30,31,32,33,6,37,34,35,36,38,7,39,44,45,40,41,42,43,8,49,46,47,48,50,9,51,52,53,56,54,55,57,10,1,11,58,65,68,69,66,67,80,82,81,83,84,85,86,87,117,88,89,90,119,120,93,94,95,124,126,91,92,96,125,97,108,110,111,122,112,113,123,116,114,121,115,118,127,77,78,79,159,169,160,157,167,158,165,164,163,161,166,168,162,64,145,146,61,171,131,152,151,150,149,133,128,141,137,172,138,140,136,135,144,134,170,142,63,143,70,98,107,104,106,102,99,105,103,155,156,154,153,129,130,71],"latestChangedDtsFile":"./build-types/index.d.ts"},"version":"5.1.6"}