@wordpress/data 10.37.0 → 10.37.1-next.06ee73755.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.
Files changed (181) hide show
  1. package/CHANGELOG.md +0 -2
  2. package/LICENSE.md +1 -1
  3. package/README.md +1 -1
  4. package/build/components/async-mode-provider/{context.js → context.cjs} +1 -1
  5. package/build/components/async-mode-provider/{index.js → index.cjs} +3 -3
  6. package/build/components/async-mode-provider/{use-async-mode.js → use-async-mode.cjs} +2 -2
  7. package/build/components/registry-provider/{context.js → context.cjs} +2 -2
  8. package/build/components/registry-provider/{index.js → index.cjs} +3 -3
  9. package/build/components/registry-provider/{use-registry.js → use-registry.cjs} +2 -2
  10. package/build/components/use-dispatch/{index.js → index.cjs} +3 -3
  11. package/build/components/use-dispatch/{use-dispatch-with-map.js → use-dispatch-with-map.cjs} +2 -2
  12. package/build/components/use-dispatch/{use-dispatch.js → use-dispatch.cjs} +2 -2
  13. package/build/components/use-select/{index.js → index.cjs} +6 -6
  14. package/build/components/use-select/index.cjs.map +7 -0
  15. package/build/components/with-dispatch/{index.js → index.cjs} +2 -2
  16. package/build/components/with-registry/{index.js → index.cjs} +2 -2
  17. package/build/components/with-select/{index.js → index.cjs} +2 -2
  18. package/build/{controls.js → controls.cjs} +2 -2
  19. package/build/{create-selector.js → create-selector.cjs} +1 -1
  20. package/build/{default-registry.js → default-registry.cjs} +2 -2
  21. package/build/{dispatch.js → dispatch.cjs} +2 -2
  22. package/build/{factory.js → factory.cjs} +1 -1
  23. package/build/{index.js → index.cjs} +22 -23
  24. package/build/index.cjs.map +7 -0
  25. package/build/{lock-unlock.js → lock-unlock.cjs} +1 -1
  26. package/build/plugins/{index.js → index.cjs} +2 -2
  27. package/build/plugins/persistence/{index.js → index.cjs} +3 -3
  28. package/build/plugins/persistence/storage/{default.js → default.cjs} +2 -2
  29. package/build/plugins/persistence/storage/{object.js → object.cjs} +1 -1
  30. package/build/{promise-middleware.js → promise-middleware.cjs} +1 -1
  31. package/build/redux-store/{combine-reducers.js → combine-reducers.cjs} +1 -1
  32. package/build/redux-store/{index.js → index.cjs} +17 -18
  33. package/build/redux-store/{index.js.map → index.cjs.map} +2 -2
  34. package/build/redux-store/metadata/{actions.js → actions.cjs} +1 -1
  35. package/build/redux-store/metadata/equivalent-key-map.d.cjs +2 -0
  36. package/build/redux-store/metadata/{reducer.js → reducer.cjs} +2 -2
  37. package/build/redux-store/metadata/{selectors.js → selectors.cjs} +3 -3
  38. package/build/redux-store/metadata/{utils.js → utils.cjs} +1 -1
  39. package/build/redux-store/{thunk-middleware.js → thunk-middleware.cjs} +1 -1
  40. package/build/{registry.js → registry.cjs} +5 -5
  41. package/build/{resolvers-cache-middleware.js → resolvers-cache-middleware.cjs} +1 -1
  42. package/build/{select.js → select.cjs} +2 -2
  43. package/build/store/{index.js → index.cjs} +1 -1
  44. package/build/{types.js → types.cjs} +1 -1
  45. package/build/types.cjs.map +7 -0
  46. package/build/utils/{emitter.js → emitter.cjs} +1 -1
  47. package/build-module/components/async-mode-provider/{context.js → context.mjs} +1 -1
  48. package/build-module/components/async-mode-provider/{index.js → index.mjs} +3 -3
  49. package/build-module/components/async-mode-provider/{use-async-mode.js → use-async-mode.mjs} +2 -2
  50. package/build-module/components/registry-provider/{context.js → context.mjs} +2 -2
  51. package/build-module/components/registry-provider/{index.js → index.mjs} +3 -3
  52. package/build-module/components/registry-provider/{use-registry.js → use-registry.mjs} +2 -2
  53. package/build-module/components/use-dispatch/index.mjs +8 -0
  54. package/build-module/components/use-dispatch/{use-dispatch-with-map.js → use-dispatch-with-map.mjs} +2 -2
  55. package/build-module/components/use-dispatch/{use-dispatch.js → use-dispatch.mjs} +2 -2
  56. package/build-module/components/use-select/{index.js → index.mjs} +4 -4
  57. package/build-module/components/use-select/index.mjs.map +7 -0
  58. package/build-module/components/with-dispatch/{index.js → index.mjs} +2 -2
  59. package/build-module/components/with-registry/{index.js → index.mjs} +2 -2
  60. package/build-module/components/with-select/{index.js → index.mjs} +2 -2
  61. package/build-module/{controls.js → controls.mjs} +2 -2
  62. package/build-module/{create-selector.js → create-selector.mjs} +1 -1
  63. package/build-module/{default-registry.js → default-registry.mjs} +2 -2
  64. package/build-module/{dispatch.js → dispatch.mjs} +2 -2
  65. package/build-module/{factory.js → factory.mjs} +1 -1
  66. package/build-module/{index.js → index.mjs} +21 -20
  67. package/build-module/index.mjs.map +7 -0
  68. package/build-module/{lock-unlock.js → lock-unlock.mjs} +1 -1
  69. package/build-module/plugins/index.mjs +6 -0
  70. package/build-module/plugins/persistence/{index.js → index.mjs} +3 -3
  71. package/build-module/plugins/persistence/storage/{default.js → default.mjs} +2 -2
  72. package/build-module/plugins/persistence/storage/{object.js → object.mjs} +1 -1
  73. package/build-module/{promise-middleware.js → promise-middleware.mjs} +1 -1
  74. package/build-module/redux-store/{combine-reducers.js → combine-reducers.mjs} +1 -1
  75. package/build-module/redux-store/{index.js → index.mjs} +17 -18
  76. package/build-module/redux-store/{index.js.map → index.mjs.map} +2 -2
  77. package/build-module/redux-store/metadata/{actions.js → actions.mjs} +1 -1
  78. package/build-module/redux-store/metadata/equivalent-key-map.d.mjs +1 -0
  79. package/build-module/redux-store/metadata/{reducer.js → reducer.mjs} +2 -2
  80. package/build-module/redux-store/metadata/{selectors.js → selectors.mjs} +3 -3
  81. package/build-module/redux-store/metadata/{utils.js → utils.mjs} +1 -1
  82. package/build-module/redux-store/{thunk-middleware.js → thunk-middleware.mjs} +1 -1
  83. package/build-module/{registry.js → registry.mjs} +5 -5
  84. package/build-module/{resolvers-cache-middleware.js → resolvers-cache-middleware.mjs} +1 -1
  85. package/build-module/{select.js → select.mjs} +2 -2
  86. package/build-module/store/{index.js → index.mjs} +1 -1
  87. package/build-module/types.mjs +1 -0
  88. package/build-module/utils/{emitter.js → emitter.mjs} +1 -1
  89. package/build-types/index.d.ts +4 -4
  90. package/build-types/index.d.ts.map +1 -1
  91. package/build-types/types.d.ts +21 -0
  92. package/build-types/types.d.ts.map +1 -1
  93. package/package.json +23 -13
  94. package/src/components/use-select/index.js +1 -1
  95. package/src/index.ts +9 -7
  96. package/src/redux-store/index.js +8 -12
  97. package/src/redux-store/test/index.js +137 -0
  98. package/src/types.ts +36 -0
  99. package/build/components/use-select/index.js.map +0 -7
  100. package/build/index.js.map +0 -7
  101. package/build/redux-store/metadata/equivalent-key-map.d.js +0 -2
  102. package/build/types.js.map +0 -7
  103. package/build-module/components/use-dispatch/index.js +0 -8
  104. package/build-module/components/use-select/index.js.map +0 -7
  105. package/build-module/index.js.map +0 -7
  106. package/build-module/plugins/index.js +0 -6
  107. package/build-module/redux-store/metadata/equivalent-key-map.d.js +0 -1
  108. package/build-module/types.js +0 -1
  109. package/tsconfig.json +0 -16
  110. package/tsconfig.tsbuildinfo +0 -1
  111. /package/build/components/async-mode-provider/{context.js.map → context.cjs.map} +0 -0
  112. /package/build/components/async-mode-provider/{index.js.map → index.cjs.map} +0 -0
  113. /package/build/components/async-mode-provider/{use-async-mode.js.map → use-async-mode.cjs.map} +0 -0
  114. /package/build/components/registry-provider/{context.js.map → context.cjs.map} +0 -0
  115. /package/build/components/registry-provider/{index.js.map → index.cjs.map} +0 -0
  116. /package/build/components/registry-provider/{use-registry.js.map → use-registry.cjs.map} +0 -0
  117. /package/build/components/use-dispatch/{index.js.map → index.cjs.map} +0 -0
  118. /package/build/components/use-dispatch/{use-dispatch-with-map.js.map → use-dispatch-with-map.cjs.map} +0 -0
  119. /package/build/components/use-dispatch/{use-dispatch.js.map → use-dispatch.cjs.map} +0 -0
  120. /package/build/components/with-dispatch/{index.js.map → index.cjs.map} +0 -0
  121. /package/build/components/with-registry/{index.js.map → index.cjs.map} +0 -0
  122. /package/build/components/with-select/{index.js.map → index.cjs.map} +0 -0
  123. /package/build/{controls.js.map → controls.cjs.map} +0 -0
  124. /package/build/{create-selector.js.map → create-selector.cjs.map} +0 -0
  125. /package/build/{default-registry.js.map → default-registry.cjs.map} +0 -0
  126. /package/build/{dispatch.js.map → dispatch.cjs.map} +0 -0
  127. /package/build/{factory.js.map → factory.cjs.map} +0 -0
  128. /package/build/{lock-unlock.js.map → lock-unlock.cjs.map} +0 -0
  129. /package/build/plugins/{index.js.map → index.cjs.map} +0 -0
  130. /package/build/plugins/persistence/{index.js.map → index.cjs.map} +0 -0
  131. /package/build/plugins/persistence/storage/{default.js.map → default.cjs.map} +0 -0
  132. /package/build/plugins/persistence/storage/{object.js.map → object.cjs.map} +0 -0
  133. /package/build/{promise-middleware.js.map → promise-middleware.cjs.map} +0 -0
  134. /package/build/redux-store/{combine-reducers.js.map → combine-reducers.cjs.map} +0 -0
  135. /package/build/redux-store/metadata/{actions.js.map → actions.cjs.map} +0 -0
  136. /package/build/redux-store/metadata/{equivalent-key-map.d.js.map → equivalent-key-map.d.cjs.map} +0 -0
  137. /package/build/redux-store/metadata/{reducer.js.map → reducer.cjs.map} +0 -0
  138. /package/build/redux-store/metadata/{selectors.js.map → selectors.cjs.map} +0 -0
  139. /package/build/redux-store/metadata/{utils.js.map → utils.cjs.map} +0 -0
  140. /package/build/redux-store/{thunk-middleware.js.map → thunk-middleware.cjs.map} +0 -0
  141. /package/build/{registry.js.map → registry.cjs.map} +0 -0
  142. /package/build/{resolvers-cache-middleware.js.map → resolvers-cache-middleware.cjs.map} +0 -0
  143. /package/build/{select.js.map → select.cjs.map} +0 -0
  144. /package/build/store/{index.js.map → index.cjs.map} +0 -0
  145. /package/build/utils/{emitter.js.map → emitter.cjs.map} +0 -0
  146. /package/build-module/components/async-mode-provider/{context.js.map → context.mjs.map} +0 -0
  147. /package/build-module/components/async-mode-provider/{index.js.map → index.mjs.map} +0 -0
  148. /package/build-module/components/async-mode-provider/{use-async-mode.js.map → use-async-mode.mjs.map} +0 -0
  149. /package/build-module/components/registry-provider/{context.js.map → context.mjs.map} +0 -0
  150. /package/build-module/components/registry-provider/{index.js.map → index.mjs.map} +0 -0
  151. /package/build-module/components/registry-provider/{use-registry.js.map → use-registry.mjs.map} +0 -0
  152. /package/build-module/components/use-dispatch/{index.js.map → index.mjs.map} +0 -0
  153. /package/build-module/components/use-dispatch/{use-dispatch-with-map.js.map → use-dispatch-with-map.mjs.map} +0 -0
  154. /package/build-module/components/use-dispatch/{use-dispatch.js.map → use-dispatch.mjs.map} +0 -0
  155. /package/build-module/components/with-dispatch/{index.js.map → index.mjs.map} +0 -0
  156. /package/build-module/components/with-registry/{index.js.map → index.mjs.map} +0 -0
  157. /package/build-module/components/with-select/{index.js.map → index.mjs.map} +0 -0
  158. /package/build-module/{controls.js.map → controls.mjs.map} +0 -0
  159. /package/build-module/{create-selector.js.map → create-selector.mjs.map} +0 -0
  160. /package/build-module/{default-registry.js.map → default-registry.mjs.map} +0 -0
  161. /package/build-module/{dispatch.js.map → dispatch.mjs.map} +0 -0
  162. /package/build-module/{factory.js.map → factory.mjs.map} +0 -0
  163. /package/build-module/{lock-unlock.js.map → lock-unlock.mjs.map} +0 -0
  164. /package/build-module/plugins/{index.js.map → index.mjs.map} +0 -0
  165. /package/build-module/plugins/persistence/{index.js.map → index.mjs.map} +0 -0
  166. /package/build-module/plugins/persistence/storage/{default.js.map → default.mjs.map} +0 -0
  167. /package/build-module/plugins/persistence/storage/{object.js.map → object.mjs.map} +0 -0
  168. /package/build-module/{promise-middleware.js.map → promise-middleware.mjs.map} +0 -0
  169. /package/build-module/redux-store/{combine-reducers.js.map → combine-reducers.mjs.map} +0 -0
  170. /package/build-module/redux-store/metadata/{actions.js.map → actions.mjs.map} +0 -0
  171. /package/build-module/redux-store/metadata/{equivalent-key-map.d.js.map → equivalent-key-map.d.mjs.map} +0 -0
  172. /package/build-module/redux-store/metadata/{reducer.js.map → reducer.mjs.map} +0 -0
  173. /package/build-module/redux-store/metadata/{selectors.js.map → selectors.mjs.map} +0 -0
  174. /package/build-module/redux-store/metadata/{utils.js.map → utils.mjs.map} +0 -0
  175. /package/build-module/redux-store/{thunk-middleware.js.map → thunk-middleware.mjs.map} +0 -0
  176. /package/build-module/{registry.js.map → registry.mjs.map} +0 -0
  177. /package/build-module/{resolvers-cache-middleware.js.map → resolvers-cache-middleware.mjs.map} +0 -0
  178. /package/build-module/{select.js.map → select.mjs.map} +0 -0
  179. /package/build-module/store/{index.js.map → index.mjs.map} +0 -0
  180. /package/build-module/{types.js.map → types.mjs.map} +0 -0
  181. /package/build-module/utils/{emitter.js.map → emitter.mjs.map} +0 -0
@@ -1,32 +1,33 @@
1
1
  // packages/data/src/index.ts
2
- import defaultRegistryUntyped from "./default-registry";
3
- import * as plugins from "./plugins";
4
- import { combineReducers as combineReducersModule } from "./redux-store";
5
- import { default as default2 } from "./components/with-select";
6
- import { default as default3 } from "./components/with-dispatch";
7
- import { default as default4 } from "./components/with-registry";
2
+ import defaultRegistryUntyped from "./default-registry.mjs";
3
+ import * as plugins from "./plugins/index.mjs";
4
+ import { combineReducers as combineReducersModule } from "./redux-store/index.mjs";
5
+ import { default as default2 } from "./components/with-select/index.mjs";
6
+ import { default as default3 } from "./components/with-dispatch/index.mjs";
7
+ import { default as default4 } from "./components/with-registry/index.mjs";
8
8
  import {
9
9
  RegistryProvider,
10
10
  RegistryConsumer,
11
11
  useRegistry
12
- } from "./components/registry-provider";
12
+ } from "./components/registry-provider/index.mjs";
13
13
  import {
14
14
  default as default5,
15
15
  useSuspenseSelect
16
- } from "./components/use-select";
17
- import { useDispatch } from "./components/use-dispatch";
18
- import { AsyncModeProvider } from "./components/async-mode-provider";
19
- import { createRegistry } from "./registry";
20
- import { createRegistrySelector, createRegistryControl } from "./factory";
21
- import { createSelector } from "./create-selector";
22
- import { controls } from "./controls";
23
- import { default as default6 } from "./redux-store";
24
- import { dispatch } from "./dispatch";
25
- import { select } from "./select";
26
- export * from "./types";
16
+ } from "./components/use-select/index.mjs";
17
+ import { useDispatch } from "./components/use-dispatch/index.mjs";
18
+ import { AsyncModeProvider } from "./components/async-mode-provider/index.mjs";
19
+ import { createRegistry } from "./registry.mjs";
20
+ import { createRegistrySelector, createRegistryControl } from "./factory.mjs";
21
+ import { createSelector } from "./create-selector.mjs";
22
+ import { controls } from "./controls.mjs";
23
+ import { default as default6 } from "./redux-store/index.mjs";
24
+ import { dispatch } from "./dispatch.mjs";
25
+ import { select } from "./select.mjs";
27
26
  var defaultRegistry = defaultRegistryUntyped;
28
27
  var combineReducers = combineReducersModule;
29
- var resolveSelect = (storeNameOrDescriptor) => defaultRegistry.resolveSelect(storeNameOrDescriptor);
28
+ function resolveSelect(storeNameOrDescriptor) {
29
+ return defaultRegistry.resolveSelect(storeNameOrDescriptor);
30
+ }
30
31
  var suspendSelect = (storeNameOrDescriptor) => defaultRegistry.suspendSelect(storeNameOrDescriptor);
31
32
  var subscribe = (listener, storeNameOrDescriptor) => defaultRegistry.subscribe(listener, storeNameOrDescriptor);
32
33
  var registerGenericStore = defaultRegistry.registerGenericStore;
@@ -62,4 +63,4 @@ export {
62
63
  default4 as withRegistry,
63
64
  default2 as withSelect
64
65
  };
65
- //# sourceMappingURL=index.js.map
66
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/index.ts"],
4
+ "sourcesContent": ["/**\n * Internal dependencies\n */\nimport defaultRegistryUntyped from './default-registry';\nimport * as plugins from './plugins';\nimport { combineReducers as combineReducersModule } from './redux-store';\n\nimport type {\n\tStoreDescriptor,\n\tReduxStoreConfig,\n\tcombineReducers as CombineReducers,\n\tAnyConfig,\n\tCurriedSelectorsResolveOf,\n} from './types';\n\n// The runtime registry is created from the JavaScript implementation in `registry.js`.\n// Its JSDoc type (`WPDataRegistry`) doesn't include some newer methods like\n// `resolveSelect` or `suspendSelect`, so we widen the type here for the typed\n// exports in this module.\nconst defaultRegistry: any = defaultRegistryUntyped;\n\nexport { default as withSelect } from './components/with-select';\nexport { default as withDispatch } from './components/with-dispatch';\nexport { default as withRegistry } from './components/with-registry';\nexport {\n\tRegistryProvider,\n\tRegistryConsumer,\n\tuseRegistry,\n} from './components/registry-provider';\nexport {\n\tdefault as useSelect,\n\tuseSuspenseSelect,\n} from './components/use-select';\nexport { useDispatch } from './components/use-dispatch';\nexport { AsyncModeProvider } from './components/async-mode-provider';\nexport { createRegistry } from './registry';\nexport { createRegistrySelector, createRegistryControl } from './factory';\nexport { createSelector } from './create-selector';\nexport { controls } from './controls';\nexport { default as createReduxStore } from './redux-store';\nexport { dispatch } from './dispatch';\nexport { select } from './select';\n\nexport type * from './types';\n\n/**\n * Object of available plugins to use with a registry.\n *\n * @see [use](#use)\n */\nexport { plugins };\n\n/**\n * The combineReducers helper function turns an object whose values are different\n * reducing functions into a single reducing function you can pass to registerReducer.\n *\n * @type {import('./types').combineReducers}\n * @param {Object} reducers An object whose values correspond to different reducing\n * functions that need to be combined into one.\n *\n * @example\n * ```js\n * import { combineReducers, createReduxStore, register } from '@wordpress/data';\n *\n * const prices = ( state = {}, action ) => {\n * \treturn action.type === 'SET_PRICE' ?\n * \t\t{\n * \t\t\t...state,\n * \t\t\t[ action.item ]: action.price,\n * \t\t} :\n * \t\tstate;\n * };\n *\n * const discountPercent = ( state = 0, action ) => {\n * \treturn action.type === 'START_SALE' ?\n * \t\taction.discountPercent :\n * \t\tstate;\n * };\n *\n * const store = createReduxStore( 'my-shop', {\n * \treducer: combineReducers( {\n * \t\tprices,\n * \t\tdiscountPercent,\n * \t} ),\n * } );\n * register( store );\n * ```\n *\n * @return {Function} A reducer that invokes every reducer inside the reducers\n * object, and constructs a state object with the same shape.\n */\nexport const combineReducers =\n\tcombineReducersModule as unknown as CombineReducers;\n\n/**\n * Given a store descriptor, returns an object containing the store's selectors\n * pre-bound to state so that you only need to supply additional arguments, and\n * modified so that they return promises that resolve to their eventual values,\n * after any resolvers have ran.\n *\n * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n * convention of passing the store name is\n * also supported.\n *\n * @example\n * ```js\n * import { resolveSelect } from '@wordpress/data';\n * import { store as myCustomStore } from 'my-custom-store';\n *\n * resolveSelect( myCustomStore ).getPrice( 'hammer' ).then(console.log)\n * ```\n *\n * @return Object containing the store's promise-wrapped selectors.\n */\nexport function resolveSelect< T extends StoreDescriptor< AnyConfig > >(\n\tstoreNameOrDescriptor: T | string\n): CurriedSelectorsResolveOf< T > {\n\treturn defaultRegistry.resolveSelect( storeNameOrDescriptor );\n}\n\n/**\n * Given a store descriptor, returns an object containing the store's selectors pre-bound to state\n * so that you only need to supply additional arguments, and modified so that they throw promises\n * in case the selector is not resolved yet.\n *\n * @param {StoreDescriptor|string} storeNameOrDescriptor The store descriptor. The legacy calling\n * convention of passing the store name is\n * also supported.\n *\n * @return {Object} Object containing the store's suspense-wrapped selectors.\n */\nexport const suspendSelect = (\n\tstoreNameOrDescriptor:\n\t\t| string\n\t\t| StoreDescriptor< ReduxStoreConfig< any, any, any > >\n): any => defaultRegistry.suspendSelect( storeNameOrDescriptor );\n\n/**\n * Given a listener function, the function will be called any time the state value\n * of one of the registered stores has changed. If you specify the optional\n * `storeNameOrDescriptor` parameter, the listener function will be called only\n * on updates on that one specific registered store.\n *\n * This function returns an `unsubscribe` function used to stop the subscription.\n *\n * @param {Function} listener Callback function.\n * @param {string|StoreDescriptor?} storeNameOrDescriptor Optional store name.\n *\n * @example\n * ```js\n * import { subscribe } from '@wordpress/data';\n *\n * const unsubscribe = subscribe( () => {\n * \t// You could use this opportunity to test whether the derived result of a\n * \t// selector has subsequently changed as the result of a state update.\n * } );\n *\n * // Later, if necessary...\n * unsubscribe();\n * ```\n */\nexport const subscribe = (\n\tlistener: () => void,\n\tstoreNameOrDescriptor?:\n\t\t| string\n\t\t| StoreDescriptor< ReduxStoreConfig< any, any, any > >\n): ( () => void ) =>\n\tdefaultRegistry.subscribe( listener, storeNameOrDescriptor );\n\n/**\n * Registers a generic store instance.\n *\n * @deprecated Use `register( storeDescriptor )` instead.\n *\n * @param {string} name Store registry name.\n * @param {Object} store Store instance (`{ getSelectors, getActions, subscribe }`).\n */\nexport const registerGenericStore: Function =\n\tdefaultRegistry.registerGenericStore;\n\n/**\n * Registers a standard `@wordpress/data` store.\n *\n * @deprecated Use `register` instead.\n *\n * @param {string} storeName Unique namespace identifier for the store.\n * @param {Object} options Store description (reducer, actions, selectors, resolvers).\n *\n * @return {Object} Registered store object.\n */\nexport const registerStore: Function = defaultRegistry.registerStore;\n\n/**\n * Extends a registry to inherit functionality provided by a given plugin. A\n * plugin is an object with properties aligning to that of a registry, merged\n * to extend the default registry behavior.\n *\n * @param {Object} plugin Plugin object.\n */\nexport const use: any = defaultRegistry.use;\n\n/**\n * Registers a standard `@wordpress/data` store descriptor.\n *\n * @example\n * ```js\n * import { createReduxStore, register } from '@wordpress/data';\n *\n * const store = createReduxStore( 'demo', {\n * reducer: ( state = 'OK' ) => state,\n * selectors: {\n * getValue: ( state ) => state,\n * },\n * } );\n * register( store );\n * ```\n *\n * @param {StoreDescriptor} store Store descriptor.\n */\nexport const register = (\n\tstore: StoreDescriptor< ReduxStoreConfig< any, any, any > >\n): void => defaultRegistry.register( store );\n"],
5
+ "mappings": ";AAGA,OAAO,4BAA4B;AACnC,YAAY,aAAa;AACzB,SAAS,mBAAmB,6BAA6B;AAgBzD,SAAoB,WAAXA,gBAA6B;AACtC,SAAoB,WAAXA,gBAA+B;AACxC,SAAoB,WAAXA,gBAA+B;AACxC;AAAA,EACC;AAAA,EACA;AAAA,EACA;AAAA,OACM;AACP;AAAA,EACY,WAAXA;AAAA,EACA;AAAA,OACM;AACP,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB,6BAA6B;AAC9D,SAAS,sBAAsB;AAC/B,SAAS,gBAAgB;AACzB,SAAoB,WAAXA,gBAAmC;AAC5C,SAAS,gBAAgB;AACzB,SAAS,cAAc;AAtBvB,IAAM,kBAAuB;AAwEtB,IAAM,kBACZ;AAsBM,SAAS,cACf,uBACiC;AACjC,SAAO,gBAAgB,cAAe,qBAAsB;AAC7D;AAaO,IAAM,gBAAgB,CAC5B,0BAGS,gBAAgB,cAAe,qBAAsB;AA0BxD,IAAM,YAAY,CACxB,UACA,0BAIA,gBAAgB,UAAW,UAAU,qBAAsB;AAUrD,IAAM,uBACZ,gBAAgB;AAYV,IAAM,gBAA0B,gBAAgB;AAShD,IAAM,MAAW,gBAAgB;AAoBjC,IAAM,WAAW,CACvB,UACU,gBAAgB,SAAU,KAAM;",
6
+ "names": ["default"]
7
+ }
@@ -8,4 +8,4 @@ export {
8
8
  lock,
9
9
  unlock
10
10
  };
11
- //# sourceMappingURL=lock-unlock.js.map
11
+ //# sourceMappingURL=lock-unlock.mjs.map
@@ -0,0 +1,6 @@
1
+ // packages/data/src/plugins/index.js
2
+ import { default as default2 } from "./persistence/index.mjs";
3
+ export {
4
+ default2 as persistence
5
+ };
6
+ //# sourceMappingURL=index.mjs.map
@@ -1,8 +1,8 @@
1
1
  // packages/data/src/plugins/persistence/index.js
2
2
  import { isPlainObject } from "is-plain-object";
3
3
  import deepmerge from "deepmerge";
4
- import defaultStorage from "./storage/default";
5
- import { combineReducers } from "../../";
4
+ import defaultStorage from "./storage/default.mjs";
5
+ import { combineReducers } from "../../index.mjs";
6
6
  var DEFAULT_STORAGE = defaultStorage;
7
7
  var DEFAULT_STORAGE_KEY = "WP_DATA";
8
8
  var withLazySameState = (reducer) => (state, action) => {
@@ -110,4 +110,4 @@ export {
110
110
  persistence_default as default,
111
111
  withLazySameState
112
112
  };
113
- //# sourceMappingURL=index.js.map
113
+ //# sourceMappingURL=index.mjs.map
@@ -1,5 +1,5 @@
1
1
  // packages/data/src/plugins/persistence/storage/default.js
2
- import objectStorage from "./object";
2
+ import objectStorage from "./object.mjs";
3
3
  var storage;
4
4
  try {
5
5
  storage = window.localStorage;
@@ -12,4 +12,4 @@ var default_default = storage;
12
12
  export {
13
13
  default_default as default
14
14
  };
15
- //# sourceMappingURL=default.js.map
15
+ //# sourceMappingURL=default.mjs.map
@@ -21,4 +21,4 @@ var object_default = storage;
21
21
  export {
22
22
  object_default as default
23
23
  };
24
- //# sourceMappingURL=object.js.map
24
+ //# sourceMappingURL=object.mjs.map
@@ -14,4 +14,4 @@ var promise_middleware_default = promiseMiddleware;
14
14
  export {
15
15
  promise_middleware_default as default
16
16
  };
17
- //# sourceMappingURL=promise-middleware.js.map
17
+ //# sourceMappingURL=promise-middleware.mjs.map
@@ -17,4 +17,4 @@ function combineReducers(reducers) {
17
17
  export {
18
18
  combineReducers
19
19
  };
20
- //# sourceMappingURL=combine-reducers.js.map
20
+ //# sourceMappingURL=combine-reducers.mjs.map
@@ -3,15 +3,15 @@ import { createStore, applyMiddleware } from "redux";
3
3
  import EquivalentKeyMap from "equivalent-key-map";
4
4
  import createReduxRoutineMiddleware from "@wordpress/redux-routine";
5
5
  import { compose } from "@wordpress/compose";
6
- import { combineReducers } from "./combine-reducers";
7
- import { builtinControls } from "../controls";
8
- import { lock } from "../lock-unlock";
9
- import promise from "../promise-middleware";
10
- import createResolversCacheMiddleware from "../resolvers-cache-middleware";
11
- import createThunkMiddleware from "./thunk-middleware";
12
- import metadataReducer from "./metadata/reducer";
13
- import * as metadataSelectors from "./metadata/selectors";
14
- import * as metadataActions from "./metadata/actions";
6
+ import { combineReducers } from "./combine-reducers.mjs";
7
+ import { builtinControls } from "../controls.mjs";
8
+ import { lock } from "../lock-unlock.mjs";
9
+ import promise from "../promise-middleware.mjs";
10
+ import createResolversCacheMiddleware from "../resolvers-cache-middleware.mjs";
11
+ import createThunkMiddleware from "./thunk-middleware.mjs";
12
+ import metadataReducer from "./metadata/reducer.mjs";
13
+ import * as metadataSelectors from "./metadata/selectors.mjs";
14
+ import * as metadataActions from "./metadata/actions.mjs";
15
15
  var trimUndefinedValues = (array) => {
16
16
  const result = [...array];
17
17
  for (let i = result.length - 1; i >= 0; i--) {
@@ -408,11 +408,7 @@ function mapResolver(resolver) {
408
408
  }
409
409
  function mapSelectorWithResolver(selector, selectorName, resolver, store, resolversCache, boundMetadataSelectors) {
410
410
  function fulfillSelector(args) {
411
- const state = store.getState();
412
- if (resolversCache.isRunning(selectorName, args) || typeof resolver.isFulfilled === "function" && resolver.isFulfilled(state, ...args)) {
413
- return;
414
- }
415
- if (boundMetadataSelectors.hasStartedResolution(selectorName, args)) {
411
+ if (resolversCache.isRunning(selectorName, args) || boundMetadataSelectors.hasStartedResolution(selectorName, args)) {
416
412
  return;
417
413
  }
418
414
  resolversCache.markAsRunning(selectorName, args);
@@ -422,9 +418,12 @@ function mapSelectorWithResolver(selector, selectorName, resolver, store, resolv
422
418
  metadataActions.startResolution(selectorName, args)
423
419
  );
424
420
  try {
425
- const action = resolver.fulfill(...args);
426
- if (action) {
427
- await store.dispatch(action);
421
+ const isFulfilled = typeof resolver.isFulfilled === "function" && resolver.isFulfilled(store.getState(), ...args);
422
+ if (!isFulfilled) {
423
+ const action = resolver.fulfill(...args);
424
+ if (action) {
425
+ await store.dispatch(action);
426
+ }
428
427
  }
429
428
  store.dispatch(
430
429
  metadataActions.finishResolution(selectorName, args)
@@ -454,4 +453,4 @@ export {
454
453
  combineReducers,
455
454
  createReduxStore as default
456
455
  };
457
- //# sourceMappingURL=index.js.map
456
+ //# sourceMappingURL=index.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/redux-store/index.js"],
4
- "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 non serializable types to plain objects\nconst devToolsReplacer = ( key, state ) => {\n\tif ( state instanceof Map ) {\n\t\treturn Object.fromEntries( state );\n\t}\n\n\tif ( state instanceof window.HTMLElement ) {\n\t\treturn null;\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( getItem, bindItem ) {\n\tconst cache = new WeakMap();\n\n\treturn {\n\t\tget( itemName ) {\n\t\t\tconst item = getItem( itemName );\n\t\t\tif ( ! item ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tlet boundItem = cache.get( item );\n\t\t\tif ( ! boundItem ) {\n\t\t\t\tboundItem = bindItem( 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\nfunction createPrivateProxy( publicItems, privateItems ) {\n\treturn new Proxy( publicItems, {\n\t\tget: ( target, itemName ) =>\n\t\t\tprivateItems.get( itemName ) || Reflect.get( target, itemName ),\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\n\t\t\t// Object that every thunk function receives as the first argument. It contains the\n\t\t\t// `registry`, `dispatch`, `select` and `resolveSelect` fields. Some of them are\n\t\t\t// constructed as getters to avoid circular dependencies.\n\t\t\tconst thunkArgs = {\n\t\t\t\tregistry,\n\t\t\t\tget dispatch() {\n\t\t\t\t\treturn thunkDispatch;\n\t\t\t\t},\n\t\t\t\tget select() {\n\t\t\t\t\treturn thunkSelect;\n\t\t\t\t},\n\t\t\t\tget resolveSelect() {\n\t\t\t\t\treturn resolveSelectors;\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\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\t// Binds an action creator (`action`) to the `store`, making it a callable function.\n\t\t\t// These are the functions that are returned by `useDispatch`, for example.\n\t\t\t// It always returns a `Promise`, although actions are not always async. That's an\n\t\t\t// unfortunate backward compatibility measure.\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\t/*\n\t\t\t * Object with all public actions, both metadata and store actions.\n\t\t\t */\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\t// Object with both public and private actions. Private actions are accessed through a proxy,\n\t\t\t// which looks them up in real time on the `privateActions` object. That's because private\n\t\t\t// actions can be registered at any time with `registerPrivateActions`. Also once a private\n\t\t\t// action creator is bound to the store, it is cached to give it a stable identity.\n\t\t\tconst allActions = createPrivateProxy(\n\t\t\t\tactions,\n\t\t\t\tcreateBindingCache(\n\t\t\t\t\t( name ) => privateActions[ name ],\n\t\t\t\t\tbindAction\n\t\t\t\t)\n\t\t\t);\n\n\t\t\t// An object that implements the `dispatch` object that is passed to thunk functions.\n\t\t\t// It is callable (`dispatch( action )`) and also has methods (`dispatch.foo()`) that\n\t\t\t// correspond to bound registered actions, both public and private. Implemented with the proxy\n\t\t\t// `get` method, delegating to `allActions`.\n\t\t\tconst thunkDispatch = new Proxy(\n\t\t\t\t( action ) => store.dispatch( action ),\n\t\t\t\t{ get: ( target, name ) => allActions[ name ] }\n\t\t\t);\n\n\t\t\t// To the public `actions` object, add the \"locked\" `allActions` object. When used,\n\t\t\t// `unlock( actions )` will return `allActions`, implementing a way how to get at the private actions.\n\t\t\tlock( actions, allActions );\n\n\t\t\t// If we have selector resolvers, convert them to a normalized form.\n\t\t\tconst resolvers = options.resolvers\n\t\t\t\t? mapValues( options.resolvers, mapResolver )\n\t\t\t\t: {};\n\n\t\t\t// Bind a selector to the store. Call the selector with the current state, correct registry,\n\t\t\t// and if there is a resolver, attach the resolver logic to the selector.\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 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 fulfilling\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\tboundMetadataSelectors\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Metadata selectors are bound differently: different state (`state.metadata`), no resolvers,\n\t\t\t// normalization depending on the target selector.\n\t\t\tfunction bindMetadataSelector( metaDataSelector ) {\n\t\t\t\tconst boundSelector = (\n\t\t\t\t\tselectorName,\n\t\t\t\t\tselectorArgs,\n\t\t\t\t\t...args\n\t\t\t\t) => {\n\t\t\t\t\t// Normalize the arguments passed to the target selector.\n\t\t\t\t\tif ( selectorName ) {\n\t\t\t\t\t\tconst targetSelector =\n\t\t\t\t\t\t\toptions.selectors?.[ selectorName ];\n\t\t\t\t\t\tif ( targetSelector ) {\n\t\t\t\t\t\t\tselectorArgs = normalize(\n\t\t\t\t\t\t\t\ttargetSelector,\n\t\t\t\t\t\t\t\tselectorArgs\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\n\t\t\t\t\treturn metaDataSelector(\n\t\t\t\t\t\tstate.metadata,\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\tselectorArgs,\n\t\t\t\t\t\t...args\n\t\t\t\t\t);\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\t// Perform binding of both metadata and store selectors and combine them in one\n\t\t\t// `selectors` object. These are all public selectors of the store.\n\t\t\tconst boundMetadataSelectors = mapValues(\n\t\t\t\tmetadataSelectors,\n\t\t\t\tbindMetadataSelector\n\t\t\t);\n\n\t\t\tconst boundSelectors = mapValues( options.selectors, bindSelector );\n\n\t\t\tconst selectors = {\n\t\t\t\t...boundMetadataSelectors,\n\t\t\t\t...boundSelectors,\n\t\t\t};\n\n\t\t\t// Cache of bould private selectors. They are bound only when first accessed, because\n\t\t\t// new private selectors can be registered at any time (with `registerPrivateSelectors`).\n\t\t\t// Once bound, they are cached to give them a stable identity.\n\t\t\tconst boundPrivateSelectors = createBindingCache(\n\t\t\t\t( name ) => privateSelectors[ name ],\n\t\t\t\tbindSelector\n\t\t\t);\n\n\t\t\tconst allSelectors = createPrivateProxy(\n\t\t\t\tselectors,\n\t\t\t\tboundPrivateSelectors\n\t\t\t);\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 of Object.keys( privateSelectors ) ) {\n\t\t\t\tboundPrivateSelectors.get( selectorName );\n\t\t\t}\n\n\t\t\t// An object that implements the `select` object that is passed to thunk functions.\n\t\t\t// It is callable (`select( selector )`) and also has methods (`select.foo()`) that\n\t\t\t// correspond to bound registered selectors, both public and private. Implemented with the proxy\n\t\t\t// `get` method, delegating to `allSelectors`.\n\t\t\tconst thunkSelect = new Proxy(\n\t\t\t\t( selector ) => selector( store.__unstableOriginalGetState() ),\n\t\t\t\t{ get: ( target, name ) => allSelectors[ name ] }\n\t\t\t);\n\n\t\t\t// To the public `selectors` object, add the \"locked\" `allSelectors` object. When used,\n\t\t\t// `unlock( selectors )` will return `allSelectors`, implementing a way how to get at the private selectors.\n\t\t\tlock( selectors, allSelectors );\n\n\t\t\t// For each selector, create a function that calls the selector, waits for resolution and returns\n\t\t\t// a promise that resolves when the resolution is finished.\n\t\t\tconst bindResolveSelector = mapResolveSelector(\n\t\t\t\tstore,\n\t\t\t\tboundMetadataSelectors\n\t\t\t);\n\n\t\t\t// Now apply this function to all bound selectors, public and private. We are excluding\n\t\t\t// metadata selectors because they don't have resolvers.\n\t\t\tconst resolveSelectors = mapValues(\n\t\t\t\tboundSelectors,\n\t\t\t\tbindResolveSelector\n\t\t\t);\n\n\t\t\tconst allResolveSelectors = createPrivateProxy(\n\t\t\t\tresolveSelectors,\n\t\t\t\tcreateBindingCache(\n\t\t\t\t\t( name ) => boundPrivateSelectors.get( name ),\n\t\t\t\t\tbindResolveSelector\n\t\t\t\t)\n\t\t\t);\n\n\t\t\t// Lock the selectors so that `unlock( resolveSelectors )` returns `allResolveSelectors`.\n\t\t\tlock( resolveSelectors, allResolveSelectors );\n\n\t\t\t// Now, in a way very similar to `bindResolveSelector`, we create a function that maps\n\t\t\t// selectors to functions that throw a suspense promise if not yet resolved.\n\t\t\tconst bindSuspendSelector = mapSuspendSelector(\n\t\t\t\tstore,\n\t\t\t\tboundMetadataSelectors\n\t\t\t);\n\n\t\t\tconst suspendSelectors = {\n\t\t\t\t...boundMetadataSelectors, // no special suspense behavior\n\t\t\t\t...mapValues( boundSelectors, bindSuspendSelector ),\n\t\t\t};\n\n\t\t\tconst allSuspendSelectors = createPrivateProxy(\n\t\t\t\tsuspendSelectors,\n\t\t\t\tcreateBindingCache(\n\t\t\t\t\t( name ) => boundPrivateSelectors.get( name ),\n\t\t\t\t\tbindSuspendSelector\n\t\t\t\t)\n\t\t\t);\n\n\t\t\t// Lock the selectors so that `unlock( suspendSelectors )` returns 'allSuspendSelectors`.\n\t\t\tlock( suspendSelectors, allSuspendSelectors );\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: devToolsReplacer,\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} store The redux store the selectors are bound to.\n * @param {Object} boundMetadataSelectors The bound metadata selectors.\n *\n * @return {Function} Function that maps selectors to resolvers.\n */\nfunction mapResolveSelector( store, boundMetadataSelectors ) {\n\treturn ( 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\tnew Promise( ( resolve, reject ) => {\n\t\t\t\tconst hasFinished = () => {\n\t\t\t\t\treturn boundMetadataSelectors.hasFinishedResolution(\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};\n\t\t\t\tconst finalize = ( result ) => {\n\t\t\t\t\tconst hasFailed =\n\t\t\t\t\t\tboundMetadataSelectors.hasResolutionFailed(\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\tif ( hasFailed ) {\n\t\t\t\t\t\tconst error = boundMetadataSelectors.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\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};\n}\n\n/**\n * Maps selectors to functions that throw a suspense promise if not yet resolved.\n *\n * @param {Object} store The redux store the selectors select from.\n * @param {Object} boundMetadataSelectors The bound metadata selectors.\n *\n * @return {Function} Function that maps selectors to their suspending versions.\n */\nfunction mapSuspendSelector( store, boundMetadataSelectors ) {\n\treturn ( 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 (\n\t\t\t\tboundMetadataSelectors.hasFinishedResolution(\n\t\t\t\t\tselectorName,\n\t\t\t\t\targs\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif (\n\t\t\t\t\tboundMetadataSelectors.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) {\n\t\t\t\t\tthrow boundMetadataSelectors.getResolutionError(\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}\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\tboundMetadataSelectors.hasFinishedResolution(\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) {\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 a resolver to a normalized form, an object with `fulfill` method and\n * optional methods like `isFulfilled`.\n *\n * @param {Function} resolver Resolver to convert\n */\nfunction mapResolver( resolver ) {\n\tif ( resolver.fulfill ) {\n\t\treturn resolver;\n\t}\n\n\treturn {\n\t\t...resolver, // Copy the enumerable properties of the resolver function.\n\t\tfulfill: resolver, // Add the fulfill method.\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 * @param {Object} boundMetadataSelectors The bound metadata selectors.\n */\nfunction mapSelectorWithResolver(\n\tselector,\n\tselectorName,\n\tresolver,\n\tstore,\n\tresolversCache,\n\tboundMetadataSelectors\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\tif (\n\t\t\tboundMetadataSelectors.hasStartedResolution( selectorName, args )\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"],
5
- "mappings": "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",
4
+ "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 non serializable types to plain objects\nconst devToolsReplacer = ( key, state ) => {\n\tif ( state instanceof Map ) {\n\t\treturn Object.fromEntries( state );\n\t}\n\n\tif ( state instanceof window.HTMLElement ) {\n\t\treturn null;\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( getItem, bindItem ) {\n\tconst cache = new WeakMap();\n\n\treturn {\n\t\tget( itemName ) {\n\t\t\tconst item = getItem( itemName );\n\t\t\tif ( ! item ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tlet boundItem = cache.get( item );\n\t\t\tif ( ! boundItem ) {\n\t\t\t\tboundItem = bindItem( 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\nfunction createPrivateProxy( publicItems, privateItems ) {\n\treturn new Proxy( publicItems, {\n\t\tget: ( target, itemName ) =>\n\t\t\tprivateItems.get( itemName ) || Reflect.get( target, itemName ),\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\n\t\t\t// Object that every thunk function receives as the first argument. It contains the\n\t\t\t// `registry`, `dispatch`, `select` and `resolveSelect` fields. Some of them are\n\t\t\t// constructed as getters to avoid circular dependencies.\n\t\t\tconst thunkArgs = {\n\t\t\t\tregistry,\n\t\t\t\tget dispatch() {\n\t\t\t\t\treturn thunkDispatch;\n\t\t\t\t},\n\t\t\t\tget select() {\n\t\t\t\t\treturn thunkSelect;\n\t\t\t\t},\n\t\t\t\tget resolveSelect() {\n\t\t\t\t\treturn resolveSelectors;\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\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\t// Binds an action creator (`action`) to the `store`, making it a callable function.\n\t\t\t// These are the functions that are returned by `useDispatch`, for example.\n\t\t\t// It always returns a `Promise`, although actions are not always async. That's an\n\t\t\t// unfortunate backward compatibility measure.\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\t/*\n\t\t\t * Object with all public actions, both metadata and store actions.\n\t\t\t */\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\t// Object with both public and private actions. Private actions are accessed through a proxy,\n\t\t\t// which looks them up in real time on the `privateActions` object. That's because private\n\t\t\t// actions can be registered at any time with `registerPrivateActions`. Also once a private\n\t\t\t// action creator is bound to the store, it is cached to give it a stable identity.\n\t\t\tconst allActions = createPrivateProxy(\n\t\t\t\tactions,\n\t\t\t\tcreateBindingCache(\n\t\t\t\t\t( name ) => privateActions[ name ],\n\t\t\t\t\tbindAction\n\t\t\t\t)\n\t\t\t);\n\n\t\t\t// An object that implements the `dispatch` object that is passed to thunk functions.\n\t\t\t// It is callable (`dispatch( action )`) and also has methods (`dispatch.foo()`) that\n\t\t\t// correspond to bound registered actions, both public and private. Implemented with the proxy\n\t\t\t// `get` method, delegating to `allActions`.\n\t\t\tconst thunkDispatch = new Proxy(\n\t\t\t\t( action ) => store.dispatch( action ),\n\t\t\t\t{ get: ( target, name ) => allActions[ name ] }\n\t\t\t);\n\n\t\t\t// To the public `actions` object, add the \"locked\" `allActions` object. When used,\n\t\t\t// `unlock( actions )` will return `allActions`, implementing a way how to get at the private actions.\n\t\t\tlock( actions, allActions );\n\n\t\t\t// If we have selector resolvers, convert them to a normalized form.\n\t\t\tconst resolvers = options.resolvers\n\t\t\t\t? mapValues( options.resolvers, mapResolver )\n\t\t\t\t: {};\n\n\t\t\t// Bind a selector to the store. Call the selector with the current state, correct registry,\n\t\t\t// and if there is a resolver, attach the resolver logic to the selector.\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 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 fulfilling\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\tboundMetadataSelectors\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// Metadata selectors are bound differently: different state (`state.metadata`), no resolvers,\n\t\t\t// normalization depending on the target selector.\n\t\t\tfunction bindMetadataSelector( metaDataSelector ) {\n\t\t\t\tconst boundSelector = (\n\t\t\t\t\tselectorName,\n\t\t\t\t\tselectorArgs,\n\t\t\t\t\t...args\n\t\t\t\t) => {\n\t\t\t\t\t// Normalize the arguments passed to the target selector.\n\t\t\t\t\tif ( selectorName ) {\n\t\t\t\t\t\tconst targetSelector =\n\t\t\t\t\t\t\toptions.selectors?.[ selectorName ];\n\t\t\t\t\t\tif ( targetSelector ) {\n\t\t\t\t\t\t\tselectorArgs = normalize(\n\t\t\t\t\t\t\t\ttargetSelector,\n\t\t\t\t\t\t\t\tselectorArgs\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst state = store.__unstableOriginalGetState();\n\n\t\t\t\t\treturn metaDataSelector(\n\t\t\t\t\t\tstate.metadata,\n\t\t\t\t\t\tselectorName,\n\t\t\t\t\t\tselectorArgs,\n\t\t\t\t\t\t...args\n\t\t\t\t\t);\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\t// Perform binding of both metadata and store selectors and combine them in one\n\t\t\t// `selectors` object. These are all public selectors of the store.\n\t\t\tconst boundMetadataSelectors = mapValues(\n\t\t\t\tmetadataSelectors,\n\t\t\t\tbindMetadataSelector\n\t\t\t);\n\n\t\t\tconst boundSelectors = mapValues( options.selectors, bindSelector );\n\n\t\t\tconst selectors = {\n\t\t\t\t...boundMetadataSelectors,\n\t\t\t\t...boundSelectors,\n\t\t\t};\n\n\t\t\t// Cache of bould private selectors. They are bound only when first accessed, because\n\t\t\t// new private selectors can be registered at any time (with `registerPrivateSelectors`).\n\t\t\t// Once bound, they are cached to give them a stable identity.\n\t\t\tconst boundPrivateSelectors = createBindingCache(\n\t\t\t\t( name ) => privateSelectors[ name ],\n\t\t\t\tbindSelector\n\t\t\t);\n\n\t\t\tconst allSelectors = createPrivateProxy(\n\t\t\t\tselectors,\n\t\t\t\tboundPrivateSelectors\n\t\t\t);\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 of Object.keys( privateSelectors ) ) {\n\t\t\t\tboundPrivateSelectors.get( selectorName );\n\t\t\t}\n\n\t\t\t// An object that implements the `select` object that is passed to thunk functions.\n\t\t\t// It is callable (`select( selector )`) and also has methods (`select.foo()`) that\n\t\t\t// correspond to bound registered selectors, both public and private. Implemented with the proxy\n\t\t\t// `get` method, delegating to `allSelectors`.\n\t\t\tconst thunkSelect = new Proxy(\n\t\t\t\t( selector ) => selector( store.__unstableOriginalGetState() ),\n\t\t\t\t{ get: ( target, name ) => allSelectors[ name ] }\n\t\t\t);\n\n\t\t\t// To the public `selectors` object, add the \"locked\" `allSelectors` object. When used,\n\t\t\t// `unlock( selectors )` will return `allSelectors`, implementing a way how to get at the private selectors.\n\t\t\tlock( selectors, allSelectors );\n\n\t\t\t// For each selector, create a function that calls the selector, waits for resolution and returns\n\t\t\t// a promise that resolves when the resolution is finished.\n\t\t\tconst bindResolveSelector = mapResolveSelector(\n\t\t\t\tstore,\n\t\t\t\tboundMetadataSelectors\n\t\t\t);\n\n\t\t\t// Now apply this function to all bound selectors, public and private. We are excluding\n\t\t\t// metadata selectors because they don't have resolvers.\n\t\t\tconst resolveSelectors = mapValues(\n\t\t\t\tboundSelectors,\n\t\t\t\tbindResolveSelector\n\t\t\t);\n\n\t\t\tconst allResolveSelectors = createPrivateProxy(\n\t\t\t\tresolveSelectors,\n\t\t\t\tcreateBindingCache(\n\t\t\t\t\t( name ) => boundPrivateSelectors.get( name ),\n\t\t\t\t\tbindResolveSelector\n\t\t\t\t)\n\t\t\t);\n\n\t\t\t// Lock the selectors so that `unlock( resolveSelectors )` returns `allResolveSelectors`.\n\t\t\tlock( resolveSelectors, allResolveSelectors );\n\n\t\t\t// Now, in a way very similar to `bindResolveSelector`, we create a function that maps\n\t\t\t// selectors to functions that throw a suspense promise if not yet resolved.\n\t\t\tconst bindSuspendSelector = mapSuspendSelector(\n\t\t\t\tstore,\n\t\t\t\tboundMetadataSelectors\n\t\t\t);\n\n\t\t\tconst suspendSelectors = {\n\t\t\t\t...boundMetadataSelectors, // no special suspense behavior\n\t\t\t\t...mapValues( boundSelectors, bindSuspendSelector ),\n\t\t\t};\n\n\t\t\tconst allSuspendSelectors = createPrivateProxy(\n\t\t\t\tsuspendSelectors,\n\t\t\t\tcreateBindingCache(\n\t\t\t\t\t( name ) => boundPrivateSelectors.get( name ),\n\t\t\t\t\tbindSuspendSelector\n\t\t\t\t)\n\t\t\t);\n\n\t\t\t// Lock the selectors so that `unlock( suspendSelectors )` returns 'allSuspendSelectors`.\n\t\t\tlock( suspendSelectors, allSuspendSelectors );\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: devToolsReplacer,\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} store The redux store the selectors are bound to.\n * @param {Object} boundMetadataSelectors The bound metadata selectors.\n *\n * @return {Function} Function that maps selectors to resolvers.\n */\nfunction mapResolveSelector( store, boundMetadataSelectors ) {\n\treturn ( 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\tnew Promise( ( resolve, reject ) => {\n\t\t\t\tconst hasFinished = () => {\n\t\t\t\t\treturn boundMetadataSelectors.hasFinishedResolution(\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};\n\t\t\t\tconst finalize = ( result ) => {\n\t\t\t\t\tconst hasFailed =\n\t\t\t\t\t\tboundMetadataSelectors.hasResolutionFailed(\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\tif ( hasFailed ) {\n\t\t\t\t\t\tconst error = boundMetadataSelectors.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\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};\n}\n\n/**\n * Maps selectors to functions that throw a suspense promise if not yet resolved.\n *\n * @param {Object} store The redux store the selectors select from.\n * @param {Object} boundMetadataSelectors The bound metadata selectors.\n *\n * @return {Function} Function that maps selectors to their suspending versions.\n */\nfunction mapSuspendSelector( store, boundMetadataSelectors ) {\n\treturn ( 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 (\n\t\t\t\tboundMetadataSelectors.hasFinishedResolution(\n\t\t\t\t\tselectorName,\n\t\t\t\t\targs\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tif (\n\t\t\t\t\tboundMetadataSelectors.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) {\n\t\t\t\t\tthrow boundMetadataSelectors.getResolutionError(\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}\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\tboundMetadataSelectors.hasFinishedResolution(\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) {\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 a resolver to a normalized form, an object with `fulfill` method and\n * optional methods like `isFulfilled`.\n *\n * @param {Function} resolver Resolver to convert\n */\nfunction mapResolver( resolver ) {\n\tif ( resolver.fulfill ) {\n\t\treturn resolver;\n\t}\n\n\treturn {\n\t\t...resolver, // Copy the enumerable properties of the resolver function.\n\t\tfulfill: resolver, // Add the fulfill method.\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 * @param {Object} boundMetadataSelectors The bound metadata selectors.\n */\nfunction mapSelectorWithResolver(\n\tselector,\n\tselectorName,\n\tresolver,\n\tstore,\n\tresolversCache,\n\tboundMetadataSelectors\n) {\n\tfunction fulfillSelector( args ) {\n\t\tif (\n\t\t\tresolversCache.isRunning( selectorName, args ) ||\n\t\t\tboundMetadataSelectors.hasStartedResolution( selectorName, args )\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 isFulfilled =\n\t\t\t\t\ttypeof resolver.isFulfilled === 'function' &&\n\t\t\t\t\tresolver.isFulfilled( store.getState(), ...args );\n\t\t\t\tif ( ! isFulfilled ) {\n\t\t\t\t\tconst action = resolver.fulfill( ...args );\n\t\t\t\t\tif ( action ) {\n\t\t\t\t\t\tawait store.dispatch( action );\n\t\t\t\t\t}\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"],
5
+ "mappings": "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",
6
6
  "names": ["result"]
7
7
  }
@@ -72,4 +72,4 @@ export {
72
72
  startResolution,
73
73
  startResolutions
74
74
  };
75
- //# sourceMappingURL=actions.js.map
75
+ //# sourceMappingURL=actions.mjs.map
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=equivalent-key-map.d.mjs.map
@@ -1,6 +1,6 @@
1
1
  // packages/data/src/redux-store/metadata/reducer.ts
2
2
  import EquivalentKeyMap from "equivalent-key-map";
3
- import { selectorArgsToStateKey, onSubKey } from "./utils";
3
+ import { selectorArgsToStateKey, onSubKey } from "./utils.mjs";
4
4
  var subKeysIsResolved = onSubKey("selectorName")((state = new EquivalentKeyMap(), action) => {
5
5
  switch (action.type) {
6
6
  case "START_RESOLUTION": {
@@ -98,4 +98,4 @@ var reducer_default = isResolved;
98
98
  export {
99
99
  reducer_default as default
100
100
  };
101
- //# sourceMappingURL=reducer.js.map
101
+ //# sourceMappingURL=reducer.mjs.map
@@ -1,7 +1,7 @@
1
1
  // packages/data/src/redux-store/metadata/selectors.js
2
2
  import deprecated from "@wordpress/deprecated";
3
- import { createSelector } from "../../create-selector";
4
- import { selectorArgsToStateKey } from "./utils";
3
+ import { createSelector } from "../../create-selector.mjs";
4
+ import { selectorArgsToStateKey } from "./utils.mjs";
5
5
  function getResolutionState(state, selectorName, args) {
6
6
  const map = state[selectorName];
7
7
  if (!map) {
@@ -93,4 +93,4 @@ export {
93
93
  hasStartedResolution,
94
94
  isResolving
95
95
  };
96
- //# sourceMappingURL=selectors.js.map
96
+ //# sourceMappingURL=selectors.mjs.map
@@ -28,4 +28,4 @@ export {
28
28
  onSubKey,
29
29
  selectorArgsToStateKey
30
30
  };
31
- //# sourceMappingURL=utils.js.map
31
+ //# sourceMappingURL=utils.mjs.map
@@ -10,4 +10,4 @@ function createThunkMiddleware(args) {
10
10
  export {
11
11
  createThunkMiddleware as default
12
12
  };
13
- //# sourceMappingURL=thunk-middleware.js.map
13
+ //# sourceMappingURL=thunk-middleware.mjs.map
@@ -1,9 +1,9 @@
1
1
  // packages/data/src/registry.js
2
2
  import deprecated from "@wordpress/deprecated";
3
- import createReduxStore from "./redux-store";
4
- import coreDataStore from "./store";
5
- import { createEmitter } from "./utils/emitter";
6
- import { lock, unlock } from "./lock-unlock";
3
+ import createReduxStore from "./redux-store/index.mjs";
4
+ import coreDataStore from "./store/index.mjs";
5
+ import { createEmitter } from "./utils/emitter.mjs";
6
+ import { lock, unlock } from "./lock-unlock.mjs";
7
7
  function getStoreName(storeNameOrDescriptor) {
8
8
  return typeof storeNameOrDescriptor === "string" ? storeNameOrDescriptor : storeNameOrDescriptor.name;
9
9
  }
@@ -227,4 +227,4 @@ function createRegistry(storeConfigs = {}, parent = null) {
227
227
  export {
228
228
  createRegistry
229
229
  };
230
- //# sourceMappingURL=registry.js.map
230
+ //# sourceMappingURL=registry.mjs.map
@@ -26,4 +26,4 @@ var resolvers_cache_middleware_default = createResolversCacheMiddleware;
26
26
  export {
27
27
  resolvers_cache_middleware_default as default
28
28
  };
29
- //# sourceMappingURL=resolvers-cache-middleware.js.map
29
+ //# sourceMappingURL=resolvers-cache-middleware.mjs.map
@@ -1,9 +1,9 @@
1
1
  // packages/data/src/select.ts
2
- import defaultRegistry from "./default-registry";
2
+ import defaultRegistry from "./default-registry.mjs";
3
3
  function select(storeNameOrDescriptor) {
4
4
  return defaultRegistry.select(storeNameOrDescriptor);
5
5
  }
6
6
  export {
7
7
  select
8
8
  };
9
- //# sourceMappingURL=select.js.map
9
+ //# sourceMappingURL=select.mjs.map
@@ -48,4 +48,4 @@ var store_default = coreDataStore;
48
48
  export {
49
49
  store_default as default
50
50
  };
51
- //# sourceMappingURL=index.js.map
51
+ //# sourceMappingURL=index.mjs.map
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=types.mjs.map
@@ -39,4 +39,4 @@ function createEmitter() {
39
39
  export {
40
40
  createEmitter
41
41
  };
42
- //# sourceMappingURL=emitter.js.map
42
+ //# sourceMappingURL=emitter.mjs.map
@@ -1,5 +1,5 @@
1
1
  import * as plugins from './plugins';
2
- import type { StoreDescriptor, ReduxStoreConfig, combineReducers as CombineReducers } from './types';
2
+ import type { StoreDescriptor, ReduxStoreConfig, combineReducers as CombineReducers, AnyConfig, CurriedSelectorsResolveOf } from './types';
3
3
  export { default as withSelect } from './components/with-select';
4
4
  export { default as withDispatch } from './components/with-dispatch';
5
5
  export { default as withRegistry } from './components/with-registry';
@@ -14,7 +14,7 @@ export { controls } from './controls';
14
14
  export { default as createReduxStore } from './redux-store';
15
15
  export { dispatch } from './dispatch';
16
16
  export { select } from './select';
17
- export * from './types';
17
+ export type * from './types';
18
18
  /**
19
19
  * Object of available plugins to use with a registry.
20
20
  *
@@ -79,9 +79,9 @@ export declare const combineReducers: CombineReducers;
79
79
  * resolveSelect( myCustomStore ).getPrice( 'hammer' ).then(console.log)
80
80
  * ```
81
81
  *
82
- * @return {Object} Object containing the store's promise-wrapped selectors.
82
+ * @return Object containing the store's promise-wrapped selectors.
83
83
  */
84
- export declare const resolveSelect: (storeNameOrDescriptor: string | StoreDescriptor<ReduxStoreConfig<any, any, any>>) => any;
84
+ export declare function resolveSelect<T extends StoreDescriptor<AnyConfig>>(storeNameOrDescriptor: T | string): CurriedSelectorsResolveOf<T>;
85
85
  /**
86
86
  * Given a store descriptor, returns an object containing the store's selectors pre-bound to state
87
87
  * so that you only need to supply additional arguments, and modified so that they throw promises
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAGrC,OAAO,KAAK,EACX,eAAe,EACf,gBAAgB,EAChB,eAAe,IAAI,eAAe,EAClC,MAAM,SAAS,CAAC;AAQjB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACN,OAAO,IAAI,SAAS,EACpB,iBAAiB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,cAAc,SAAS,CAAC;AAExB;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,eAAe,EACS,eAAe,CAAC;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,aAAa,GACzB,uBACG,MAAM,GACN,eAAe,CAAE,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,KACrD,GAA6D,CAAC;AAEjE;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,GACzB,uBACG,MAAM,GACN,eAAe,CAAE,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,KACrD,GAA6D,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,SAAS,GACrB,UAAU,MAAM,IAAI,EACpB,wBACG,MAAM,GACN,eAAe,CAAE,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,KACrD,CAAE,MAAM,IAAI,CAC8C,CAAC;AAE9D;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,QACE,CAAC;AAEtC;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,EAAE,QAAwC,CAAC;AAErE;;;;;;GAMG;AACH,eAAO,MAAM,GAAG,EAAE,GAAyB,CAAC;AAE5C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,QAAQ,GACpB,OAAO,eAAe,CAAE,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,KACzD,IAAyC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAGrC,OAAO,KAAK,EACX,eAAe,EACf,gBAAgB,EAChB,eAAe,IAAI,eAAe,EAClC,SAAS,EACT,yBAAyB,EACzB,MAAM,SAAS,CAAC;AAQjB,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EACN,gBAAgB,EAChB,gBAAgB,EAChB,WAAW,GACX,MAAM,gCAAgC,CAAC;AACxC,OAAO,EACN,OAAO,IAAI,SAAS,EACpB,iBAAiB,GACjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,mBAAmB,SAAS,CAAC;AAE7B;;;;GAIG;AACH,OAAO,EAAE,OAAO,EAAE,CAAC;AAEnB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,eAAO,MAAM,eAAe,EACS,eAAe,CAAC;AAErD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,aAAa,CAAE,CAAC,SAAS,eAAe,CAAE,SAAS,CAAE,EACpE,qBAAqB,EAAE,CAAC,GAAG,MAAM,GAC/B,yBAAyB,CAAE,CAAC,CAAE,CAEhC;AAED;;;;;;;;;;GAUG;AACH,eAAO,MAAM,aAAa,GACzB,uBACG,MAAM,GACN,eAAe,CAAE,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,KACrD,GAA6D,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,eAAO,MAAM,SAAS,GACrB,UAAU,MAAM,IAAI,EACpB,wBACG,MAAM,GACN,eAAe,CAAE,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,KACrD,CAAE,MAAM,IAAI,CAC8C,CAAC;AAE9D;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB,EAAE,QACE,CAAC;AAEtC;;;;;;;;;GASG;AACH,eAAO,MAAM,aAAa,EAAE,QAAwC,CAAC;AAErE;;;;;;GAMG;AACH,eAAO,MAAM,GAAG,EAAE,GAAyB,CAAC;AAE5C;;;;;;;;;;;;;;;;;GAiBG;AACH,eAAO,MAAM,QAAQ,GACpB,OAAO,eAAe,CAAE,gBAAgB,CAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAE,CAAE,KACzD,IAAyC,CAAC"}
@@ -46,6 +46,26 @@ export type ListenerFunction = () => void;
46
46
  export type CurriedSelectorsOf<S> = S extends StoreDescriptor<ReduxStoreConfig<any, any, infer Selectors>> ? {
47
47
  [key in keyof Selectors]: CurriedState<Selectors[key]>;
48
48
  } : never;
49
+ /**
50
+ * Like CurriedState but wraps the return type in a Promise.
51
+ * Used for resolveSelect where selectors return promises.
52
+ *
53
+ * For generic selectors that define PromiseCurriedSignature, that signature
54
+ * is used directly to preserve generic type parameters (which would otherwise
55
+ * be lost when using `infer`).
56
+ */
57
+ type CurriedStateWithPromise<F> = F extends SelectorWithCustomCurrySignature & {
58
+ PromiseCurriedSignature: infer S;
59
+ } ? S : F extends SelectorWithCustomCurrySignature & {
60
+ CurriedSignature: (...args: infer P) => infer R;
61
+ } ? (...args: P) => Promise<R> : F extends (state: any, ...args: infer P) => infer R ? (...args: P) => Promise<R> : F;
62
+ /**
63
+ * Like CurriedSelectorsOf but each selector returns a Promise.
64
+ * Used for resolveSelect.
65
+ */
66
+ export type CurriedSelectorsResolveOf<S> = S extends StoreDescriptor<ReduxStoreConfig<any, any, infer Selectors>> ? {
67
+ [key in keyof Selectors]: CurriedStateWithPromise<Selectors[key]>;
68
+ } : never;
49
69
  /**
50
70
  * Removes the first argument from a function.
51
71
  *
@@ -109,6 +129,7 @@ type CurriedState<F> = F extends SelectorWithCustomCurrySignature ? F['CurriedSi
109
129
  */
110
130
  export interface SelectorWithCustomCurrySignature {
111
131
  CurriedSignature: Function;
132
+ PromiseCurriedSignature?: Function;
112
133
  }
113
134
  export interface DataRegistry {
114
135
  register: (store: StoreDescriptor<any>) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}