@wordpress/core-data 6.15.0 → 6.17.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 (240) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/README.md +1 -1
  3. package/build/actions.js +70 -135
  4. package/build/actions.js.map +1 -1
  5. package/build/batch/create-batch.js +0 -22
  6. package/build/batch/create-batch.js.map +1 -1
  7. package/build/batch/default-processor.js +3 -15
  8. package/build/batch/default-processor.js.map +1 -1
  9. package/build/batch/index.js +0 -3
  10. package/build/batch/index.js.map +1 -1
  11. package/build/entities.js +109 -36
  12. package/build/entities.js.map +1 -1
  13. package/build/entity-provider.js +34 -53
  14. package/build/entity-provider.js.map +1 -1
  15. package/build/entity-types/attachment.js.map +1 -1
  16. package/build/entity-types/base-entity-records.js +0 -3
  17. package/build/entity-types/base-entity-records.js.map +1 -1
  18. package/build/entity-types/comment.js.map +1 -1
  19. package/build/entity-types/helpers.js.map +1 -1
  20. package/build/entity-types/index.js.map +1 -1
  21. package/build/entity-types/menu-location.js.map +1 -1
  22. package/build/entity-types/nav-menu-item.js.map +1 -1
  23. package/build/entity-types/nav-menu.js.map +1 -1
  24. package/build/entity-types/page.js.map +1 -1
  25. package/build/entity-types/plugin.js.map +1 -1
  26. package/build/entity-types/post.js.map +1 -1
  27. package/build/entity-types/settings.js.map +1 -1
  28. package/build/entity-types/sidebar.js.map +1 -1
  29. package/build/entity-types/taxonomy.js.map +1 -1
  30. package/build/entity-types/theme.js.map +1 -1
  31. package/build/entity-types/type.js.map +1 -1
  32. package/build/entity-types/user.js.map +1 -1
  33. package/build/entity-types/widget-type.js.map +1 -1
  34. package/build/entity-types/widget.js.map +1 -1
  35. package/build/entity-types/wp-template-part.js.map +1 -1
  36. package/build/entity-types/wp-template.js.map +1 -1
  37. package/build/fetch/__experimental-fetch-link-suggestions.js +14 -20
  38. package/build/fetch/__experimental-fetch-link-suggestions.js.map +1 -1
  39. package/build/fetch/__experimental-fetch-url-data.js +4 -13
  40. package/build/fetch/__experimental-fetch-url-data.js.map +1 -1
  41. package/build/fetch/index.js +0 -3
  42. package/build/fetch/index.js.map +1 -1
  43. package/build/hooks/constants.js +4 -5
  44. package/build/hooks/constants.js.map +1 -1
  45. package/build/hooks/index.js +0 -5
  46. package/build/hooks/index.js.map +1 -1
  47. package/build/hooks/memoize.js +0 -3
  48. package/build/hooks/memoize.js.map +1 -1
  49. package/build/hooks/use-entity-record.js +0 -9
  50. package/build/hooks/use-entity-record.js.map +1 -1
  51. package/build/hooks/use-entity-records.js +2 -9
  52. package/build/hooks/use-entity-records.js.map +1 -1
  53. package/build/hooks/use-query-select.js +1 -13
  54. package/build/hooks/use-query-select.js.map +1 -1
  55. package/build/hooks/use-resource-permissions.js +0 -15
  56. package/build/hooks/use-resource-permissions.js.map +1 -1
  57. package/build/index.js +9 -41
  58. package/build/index.js.map +1 -1
  59. package/build/locks/actions.js +1 -6
  60. package/build/locks/actions.js.map +1 -1
  61. package/build/locks/engine.js +1 -9
  62. package/build/locks/engine.js.map +1 -1
  63. package/build/locks/reducer.js +8 -9
  64. package/build/locks/reducer.js.map +1 -1
  65. package/build/locks/selectors.js +8 -11
  66. package/build/locks/selectors.js.map +1 -1
  67. package/build/locks/utils.js +4 -19
  68. package/build/locks/utils.js.map +1 -1
  69. package/build/name.js +0 -1
  70. package/build/name.js.map +1 -1
  71. package/build/private-apis.js +1 -2
  72. package/build/private-apis.js.map +1 -1
  73. package/build/private-selectors.js +2 -5
  74. package/build/private-selectors.js.map +1 -1
  75. package/build/queried-data/actions.js +4 -6
  76. package/build/queried-data/actions.js.map +1 -1
  77. package/build/queried-data/get-query-parts.js +11 -24
  78. package/build/queried-data/get-query-parts.js.map +1 -1
  79. package/build/queried-data/index.js +0 -6
  80. package/build/queried-data/index.js.map +1 -1
  81. package/build/queried-data/reducer.js +33 -51
  82. package/build/queried-data/reducer.js.map +1 -1
  83. package/build/queried-data/selectors.js +4 -25
  84. package/build/queried-data/selectors.js.map +1 -1
  85. package/build/reducer.js +76 -128
  86. package/build/reducer.js.map +1 -1
  87. package/build/resolvers.js +91 -133
  88. package/build/resolvers.js.map +1 -1
  89. package/build/selectors.js +51 -145
  90. package/build/selectors.js.map +1 -1
  91. package/build/sync.js +19 -0
  92. package/build/sync.js.map +1 -0
  93. package/build/types.js.map +1 -1
  94. package/build/utils/conservative-map-item.js +3 -10
  95. package/build/utils/conservative-map-item.js.map +1 -1
  96. package/build/utils/forward-resolver.js +0 -2
  97. package/build/utils/forward-resolver.js.map +1 -1
  98. package/build/utils/get-normalized-comma-separable.js +0 -3
  99. package/build/utils/get-normalized-comma-separable.js.map +1 -1
  100. package/build/utils/if-matching-action.js +0 -3
  101. package/build/utils/if-matching-action.js.map +1 -1
  102. package/build/utils/index.js +0 -10
  103. package/build/utils/index.js.map +1 -1
  104. package/build/utils/is-raw-attribute.js +0 -1
  105. package/build/utils/is-raw-attribute.js.map +1 -1
  106. package/build/utils/on-sub-key.js +5 -9
  107. package/build/utils/on-sub-key.js.map +1 -1
  108. package/build/utils/replace-action.js +0 -2
  109. package/build/utils/replace-action.js.map +1 -1
  110. package/build/utils/set-nested-value.js +0 -4
  111. package/build/utils/set-nested-value.js.map +1 -1
  112. package/build/utils/with-weak-map-cache.js +3 -6
  113. package/build/utils/with-weak-map-cache.js.map +1 -1
  114. package/build-module/actions.js +73 -96
  115. package/build-module/actions.js.map +1 -1
  116. package/build-module/batch/create-batch.js +1 -20
  117. package/build-module/batch/create-batch.js.map +1 -1
  118. package/build-module/batch/default-processor.js +4 -13
  119. package/build-module/batch/default-processor.js.map +1 -1
  120. package/build-module/batch/index.js.map +1 -1
  121. package/build-module/entities.js +109 -25
  122. package/build-module/entities.js.map +1 -1
  123. package/build-module/entity-provider.js +35 -45
  124. package/build-module/entity-provider.js.map +1 -1
  125. package/build-module/entity-types/attachment.js.map +1 -1
  126. package/build-module/entity-types/base-entity-records.js +0 -2
  127. package/build-module/entity-types/base-entity-records.js.map +1 -1
  128. package/build-module/entity-types/comment.js.map +1 -1
  129. package/build-module/entity-types/helpers.js.map +1 -1
  130. package/build-module/entity-types/index.js.map +1 -1
  131. package/build-module/entity-types/menu-location.js.map +1 -1
  132. package/build-module/entity-types/nav-menu-item.js.map +1 -1
  133. package/build-module/entity-types/nav-menu.js.map +1 -1
  134. package/build-module/entity-types/page.js.map +1 -1
  135. package/build-module/entity-types/plugin.js.map +1 -1
  136. package/build-module/entity-types/post.js.map +1 -1
  137. package/build-module/entity-types/settings.js.map +1 -1
  138. package/build-module/entity-types/sidebar.js.map +1 -1
  139. package/build-module/entity-types/taxonomy.js.map +1 -1
  140. package/build-module/entity-types/theme.js.map +1 -1
  141. package/build-module/entity-types/type.js.map +1 -1
  142. package/build-module/entity-types/user.js.map +1 -1
  143. package/build-module/entity-types/widget-type.js.map +1 -1
  144. package/build-module/entity-types/widget.js.map +1 -1
  145. package/build-module/entity-types/wp-template-part.js.map +1 -1
  146. package/build-module/entity-types/wp-template.js.map +1 -1
  147. package/build-module/fetch/__experimental-fetch-link-suggestions.js +15 -15
  148. package/build-module/fetch/__experimental-fetch-link-suggestions.js.map +1 -1
  149. package/build-module/fetch/__experimental-fetch-url-data.js +5 -10
  150. package/build-module/fetch/__experimental-fetch-url-data.js.map +1 -1
  151. package/build-module/fetch/index.js.map +1 -1
  152. package/build-module/hooks/constants.js +3 -4
  153. package/build-module/hooks/constants.js.map +1 -1
  154. package/build-module/hooks/index.js.map +1 -1
  155. package/build-module/hooks/memoize.js +2 -1
  156. package/build-module/hooks/memoize.js.map +1 -1
  157. package/build-module/hooks/use-entity-record.js +1 -3
  158. package/build-module/hooks/use-entity-record.js.map +1 -1
  159. package/build-module/hooks/use-entity-records.js +2 -3
  160. package/build-module/hooks/use-entity-records.js.map +1 -1
  161. package/build-module/hooks/use-query-select.js +1 -9
  162. package/build-module/hooks/use-query-select.js.map +1 -1
  163. package/build-module/hooks/use-resource-permissions.js +1 -10
  164. package/build-module/hooks/use-resource-permissions.js.map +1 -1
  165. package/build-module/index.js +11 -19
  166. package/build-module/index.js.map +1 -1
  167. package/build-module/locks/actions.js +0 -3
  168. package/build-module/locks/actions.js.map +1 -1
  169. package/build-module/locks/engine.js +0 -5
  170. package/build-module/locks/engine.js.map +1 -1
  171. package/build-module/locks/reducer.js +7 -7
  172. package/build-module/locks/reducer.js.map +1 -1
  173. package/build-module/locks/selectors.js +7 -8
  174. package/build-module/locks/selectors.js.map +1 -1
  175. package/build-module/locks/utils.js +4 -14
  176. package/build-module/locks/utils.js.map +1 -1
  177. package/build-module/name.js.map +1 -1
  178. package/build-module/private-apis.js.map +1 -1
  179. package/build-module/private-selectors.js +2 -2
  180. package/build-module/private-selectors.js.map +1 -1
  181. package/build-module/queried-data/actions.js +4 -3
  182. package/build-module/queried-data/actions.js.map +1 -1
  183. package/build-module/queried-data/get-query-parts.js +13 -21
  184. package/build-module/queried-data/get-query-parts.js.map +1 -1
  185. package/build-module/queried-data/index.js.map +1 -1
  186. package/build-module/queried-data/reducer.js +33 -42
  187. package/build-module/queried-data/reducer.js.map +1 -1
  188. package/build-module/queried-data/selectors.js +6 -21
  189. package/build-module/queried-data/selectors.js.map +1 -1
  190. package/build-module/reducer.js +79 -104
  191. package/build-module/reducer.js.map +1 -1
  192. package/build-module/resolvers.js +94 -96
  193. package/build-module/resolvers.js.map +1 -1
  194. package/build-module/selectors.js +56 -92
  195. package/build-module/selectors.js.map +1 -1
  196. package/build-module/sync.js +12 -0
  197. package/build-module/sync.js.map +1 -0
  198. package/build-module/types.js.map +1 -1
  199. package/build-module/utils/conservative-map-item.js +4 -8
  200. package/build-module/utils/conservative-map-item.js.map +1 -1
  201. package/build-module/utils/forward-resolver.js +0 -1
  202. package/build-module/utils/forward-resolver.js.map +1 -1
  203. package/build-module/utils/get-normalized-comma-separable.js +0 -2
  204. package/build-module/utils/get-normalized-comma-separable.js.map +1 -1
  205. package/build-module/utils/if-matching-action.js +0 -2
  206. package/build-module/utils/if-matching-action.js.map +1 -1
  207. package/build-module/utils/index.js.map +1 -1
  208. package/build-module/utils/is-raw-attribute.js.map +1 -1
  209. package/build-module/utils/on-sub-key.js +5 -7
  210. package/build-module/utils/on-sub-key.js.map +1 -1
  211. package/build-module/utils/replace-action.js +0 -1
  212. package/build-module/utils/replace-action.js.map +1 -1
  213. package/build-module/utils/set-nested-value.js +0 -3
  214. package/build-module/utils/set-nested-value.js.map +1 -1
  215. package/build-module/utils/with-weak-map-cache.js +3 -5
  216. package/build-module/utils/with-weak-map-cache.js.map +1 -1
  217. package/build-types/actions.d.ts.map +1 -1
  218. package/build-types/entities.d.ts +53 -0
  219. package/build-types/entities.d.ts.map +1 -1
  220. package/build-types/entity-provider.d.ts +1 -1
  221. package/build-types/entity-provider.d.ts.map +1 -1
  222. package/build-types/hooks/memoize.d.ts +1 -1
  223. package/build-types/hooks/memoize.d.ts.map +1 -1
  224. package/build-types/index.d.ts +4 -4
  225. package/build-types/index.d.ts.map +1 -1
  226. package/build-types/resolvers.d.ts.map +1 -1
  227. package/build-types/selectors.d.ts +1 -1
  228. package/build-types/selectors.d.ts.map +1 -1
  229. package/build-types/sync.d.ts +2 -0
  230. package/build-types/sync.d.ts.map +1 -0
  231. package/package.json +17 -15
  232. package/src/actions.js +30 -17
  233. package/src/entities.js +91 -0
  234. package/src/entity-provider.js +11 -2
  235. package/src/resolvers.js +89 -41
  236. package/src/selectors.ts +1 -1
  237. package/src/sync.js +18 -0
  238. package/src/test/entity-provider.js +272 -0
  239. package/tsconfig.json +1 -0
  240. package/tsconfig.tsbuildinfo +1 -1
@@ -1,20 +1,14 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
4
  Object.defineProperty(exports, "__esModule", {
6
5
  value: true
7
6
  });
8
7
  exports.getQueriedItems = void 0;
9
-
10
8
  var _rememo = _interopRequireDefault(require("rememo"));
11
-
12
9
  var _equivalentKeyMap = _interopRequireDefault(require("equivalent-key-map"));
13
-
14
10
  var _getQueryParts = _interopRequireDefault(require("./get-query-parts"));
15
-
16
11
  var _utils = require("../utils");
17
-
18
12
  /**
19
13
  * External dependencies
20
14
  */
@@ -31,6 +25,7 @@ var _utils = require("../utils");
31
25
  * @type {WeakMap<Object,EquivalentKeyMap>}
32
26
  */
33
27
  const queriedItemsCacheByState = new WeakMap();
28
+
34
29
  /**
35
30
  * Returns items for a given query, or null if the items are not known.
36
31
  *
@@ -39,7 +34,6 @@ const queriedItemsCacheByState = new WeakMap();
39
34
  *
40
35
  * @return {?Array} Query items.
41
36
  */
42
-
43
37
  function getQueriedItemsUncached(state, query) {
44
38
  const {
45
39
  stableKey,
@@ -50,37 +44,29 @@ function getQueriedItemsUncached(state, query) {
50
44
  context
51
45
  } = (0, _getQueryParts.default)(query);
52
46
  let itemIds;
53
-
54
47
  if (state.queries?.[context]?.[stableKey]) {
55
48
  itemIds = state.queries[context][stableKey];
56
49
  }
57
-
58
50
  if (!itemIds) {
59
51
  return null;
60
52
  }
61
-
62
53
  const startOffset = perPage === -1 ? 0 : (page - 1) * perPage;
63
54
  const endOffset = perPage === -1 ? itemIds.length : Math.min(startOffset + perPage, itemIds.length);
64
55
  const items = [];
65
-
66
56
  for (let i = startOffset; i < endOffset; i++) {
67
57
  const itemId = itemIds[i];
68
-
69
58
  if (Array.isArray(include) && !include.includes(itemId)) {
70
59
  continue;
71
- } // Having a target item ID doesn't guarantee that this object has been queried.
72
-
60
+ }
73
61
 
62
+ // Having a target item ID doesn't guarantee that this object has been queried.
74
63
  if (!state.items[context]?.hasOwnProperty(itemId)) {
75
64
  return null;
76
65
  }
77
-
78
66
  const item = state.items[context][itemId];
79
67
  let filteredItem;
80
-
81
68
  if (Array.isArray(fields)) {
82
69
  filteredItem = {};
83
-
84
70
  for (let f = 0; f < fields.length; f++) {
85
71
  const field = fields[f].split('.');
86
72
  let value = item;
@@ -95,15 +81,13 @@ function getQueriedItemsUncached(state, query) {
95
81
  if (!state.itemIsComplete[context]?.[itemId]) {
96
82
  return null;
97
83
  }
98
-
99
84
  filteredItem = item;
100
85
  }
101
-
102
86
  items.push(filteredItem);
103
87
  }
104
-
105
88
  return items;
106
89
  }
90
+
107
91
  /**
108
92
  * Returns items for a given query, or null if the items are not known. Caches
109
93
  * result both per state (by reference) and per query (by deep equality).
@@ -117,14 +101,10 @@ function getQueriedItemsUncached(state, query) {
117
101
  *
118
102
  * @return {?Array} Query items.
119
103
  */
120
-
121
-
122
104
  const getQueriedItems = (0, _rememo.default)((state, query = {}) => {
123
105
  let queriedItemsCache = queriedItemsCacheByState.get(state);
124
-
125
106
  if (queriedItemsCache) {
126
107
  const queriedItems = queriedItemsCache.get(query);
127
-
128
108
  if (queriedItems !== undefined) {
129
109
  return queriedItems;
130
110
  }
@@ -132,7 +112,6 @@ const getQueriedItems = (0, _rememo.default)((state, query = {}) => {
132
112
  queriedItemsCache = new _equivalentKeyMap.default();
133
113
  queriedItemsCacheByState.set(state, queriedItemsCache);
134
114
  }
135
-
136
115
  const items = getQueriedItemsUncached(state, query);
137
116
  queriedItemsCache.set(query, items);
138
117
  return items;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/core-data/src/queried-data/selectors.js"],"names":["queriedItemsCacheByState","WeakMap","getQueriedItemsUncached","state","query","stableKey","page","perPage","include","fields","context","itemIds","queries","startOffset","endOffset","length","Math","min","items","i","itemId","Array","isArray","includes","hasOwnProperty","item","filteredItem","f","field","split","value","forEach","fieldName","itemIsComplete","push","getQueriedItems","queriedItemsCache","get","queriedItems","undefined","EquivalentKeyMap","set"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\nimport EquivalentKeyMap from 'equivalent-key-map';\n\n/**\n * Internal dependencies\n */\nimport getQueryParts from './get-query-parts';\nimport { setNestedValue } from '../utils';\n\n/**\n * Cache of state keys to EquivalentKeyMap where the inner map tracks queries\n * to their resulting items set. WeakMap allows garbage collection on expired\n * state references.\n *\n * @type {WeakMap<Object,EquivalentKeyMap>}\n */\nconst queriedItemsCacheByState = new WeakMap();\n\n/**\n * Returns items for a given query, or null if the items are not known.\n *\n * @param {Object} state State object.\n * @param {?Object} query Optional query.\n *\n * @return {?Array} Query items.\n */\nfunction getQueriedItemsUncached( state, query ) {\n\tconst { stableKey, page, perPage, include, fields, context } =\n\t\tgetQueryParts( query );\n\tlet itemIds;\n\n\tif ( state.queries?.[ context ]?.[ stableKey ] ) {\n\t\titemIds = state.queries[ context ][ stableKey ];\n\t}\n\n\tif ( ! itemIds ) {\n\t\treturn null;\n\t}\n\n\tconst startOffset = perPage === -1 ? 0 : ( page - 1 ) * perPage;\n\tconst endOffset =\n\t\tperPage === -1\n\t\t\t? itemIds.length\n\t\t\t: Math.min( startOffset + perPage, itemIds.length );\n\n\tconst items = [];\n\tfor ( let i = startOffset; i < endOffset; i++ ) {\n\t\tconst itemId = itemIds[ i ];\n\t\tif ( Array.isArray( include ) && ! include.includes( itemId ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Having a target item ID doesn't guarantee that this object has been queried.\n\t\tif ( ! state.items[ context ]?.hasOwnProperty( itemId ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst item = state.items[ context ][ itemId ];\n\n\t\tlet filteredItem;\n\t\tif ( Array.isArray( fields ) ) {\n\t\t\tfilteredItem = {};\n\n\t\t\tfor ( let f = 0; f < fields.length; f++ ) {\n\t\t\t\tconst field = fields[ f ].split( '.' );\n\t\t\t\tlet value = item;\n\t\t\t\tfield.forEach( ( fieldName ) => {\n\t\t\t\t\tvalue = value[ fieldName ];\n\t\t\t\t} );\n\n\t\t\t\tsetNestedValue( filteredItem, field, value );\n\t\t\t}\n\t\t} else {\n\t\t\t// If expecting a complete item, validate that completeness, or\n\t\t\t// otherwise abort.\n\t\t\tif ( ! state.itemIsComplete[ context ]?.[ itemId ] ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tfilteredItem = item;\n\t\t}\n\n\t\titems.push( filteredItem );\n\t}\n\n\treturn items;\n}\n\n/**\n * Returns items for a given query, or null if the items are not known. Caches\n * result both per state (by reference) and per query (by deep equality).\n * The caching approach is intended to be durable to query objects which are\n * deeply but not referentially equal, since otherwise:\n *\n * `getQueriedItems( state, {} ) !== getQueriedItems( state, {} )`\n *\n * @param {Object} state State object.\n * @param {?Object} query Optional query.\n *\n * @return {?Array} Query items.\n */\nexport const getQueriedItems = createSelector( ( state, query = {} ) => {\n\tlet queriedItemsCache = queriedItemsCacheByState.get( state );\n\tif ( queriedItemsCache ) {\n\t\tconst queriedItems = queriedItemsCache.get( query );\n\t\tif ( queriedItems !== undefined ) {\n\t\t\treturn queriedItems;\n\t\t}\n\t} else {\n\t\tqueriedItemsCache = new EquivalentKeyMap();\n\t\tqueriedItemsCacheByState.set( state, queriedItemsCache );\n\t}\n\n\tconst items = getQueriedItemsUncached( state, query );\n\tqueriedItemsCache.set( query, items );\n\treturn items;\n} );\n"]}
1
+ {"version":3,"names":["_rememo","_interopRequireDefault","require","_equivalentKeyMap","_getQueryParts","_utils","queriedItemsCacheByState","WeakMap","getQueriedItemsUncached","state","query","stableKey","page","perPage","include","fields","context","getQueryParts","itemIds","queries","startOffset","endOffset","length","Math","min","items","i","itemId","Array","isArray","includes","hasOwnProperty","item","filteredItem","f","field","split","value","forEach","fieldName","setNestedValue","itemIsComplete","push","getQueriedItems","createSelector","queriedItemsCache","get","queriedItems","undefined","EquivalentKeyMap","set","exports"],"sources":["@wordpress/core-data/src/queried-data/selectors.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport createSelector from 'rememo';\nimport EquivalentKeyMap from 'equivalent-key-map';\n\n/**\n * Internal dependencies\n */\nimport getQueryParts from './get-query-parts';\nimport { setNestedValue } from '../utils';\n\n/**\n * Cache of state keys to EquivalentKeyMap where the inner map tracks queries\n * to their resulting items set. WeakMap allows garbage collection on expired\n * state references.\n *\n * @type {WeakMap<Object,EquivalentKeyMap>}\n */\nconst queriedItemsCacheByState = new WeakMap();\n\n/**\n * Returns items for a given query, or null if the items are not known.\n *\n * @param {Object} state State object.\n * @param {?Object} query Optional query.\n *\n * @return {?Array} Query items.\n */\nfunction getQueriedItemsUncached( state, query ) {\n\tconst { stableKey, page, perPage, include, fields, context } =\n\t\tgetQueryParts( query );\n\tlet itemIds;\n\n\tif ( state.queries?.[ context ]?.[ stableKey ] ) {\n\t\titemIds = state.queries[ context ][ stableKey ];\n\t}\n\n\tif ( ! itemIds ) {\n\t\treturn null;\n\t}\n\n\tconst startOffset = perPage === -1 ? 0 : ( page - 1 ) * perPage;\n\tconst endOffset =\n\t\tperPage === -1\n\t\t\t? itemIds.length\n\t\t\t: Math.min( startOffset + perPage, itemIds.length );\n\n\tconst items = [];\n\tfor ( let i = startOffset; i < endOffset; i++ ) {\n\t\tconst itemId = itemIds[ i ];\n\t\tif ( Array.isArray( include ) && ! include.includes( itemId ) ) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Having a target item ID doesn't guarantee that this object has been queried.\n\t\tif ( ! state.items[ context ]?.hasOwnProperty( itemId ) ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst item = state.items[ context ][ itemId ];\n\n\t\tlet filteredItem;\n\t\tif ( Array.isArray( fields ) ) {\n\t\t\tfilteredItem = {};\n\n\t\t\tfor ( let f = 0; f < fields.length; f++ ) {\n\t\t\t\tconst field = fields[ f ].split( '.' );\n\t\t\t\tlet value = item;\n\t\t\t\tfield.forEach( ( fieldName ) => {\n\t\t\t\t\tvalue = value[ fieldName ];\n\t\t\t\t} );\n\n\t\t\t\tsetNestedValue( filteredItem, field, value );\n\t\t\t}\n\t\t} else {\n\t\t\t// If expecting a complete item, validate that completeness, or\n\t\t\t// otherwise abort.\n\t\t\tif ( ! state.itemIsComplete[ context ]?.[ itemId ] ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tfilteredItem = item;\n\t\t}\n\n\t\titems.push( filteredItem );\n\t}\n\n\treturn items;\n}\n\n/**\n * Returns items for a given query, or null if the items are not known. Caches\n * result both per state (by reference) and per query (by deep equality).\n * The caching approach is intended to be durable to query objects which are\n * deeply but not referentially equal, since otherwise:\n *\n * `getQueriedItems( state, {} ) !== getQueriedItems( state, {} )`\n *\n * @param {Object} state State object.\n * @param {?Object} query Optional query.\n *\n * @return {?Array} Query items.\n */\nexport const getQueriedItems = createSelector( ( state, query = {} ) => {\n\tlet queriedItemsCache = queriedItemsCacheByState.get( state );\n\tif ( queriedItemsCache ) {\n\t\tconst queriedItems = queriedItemsCache.get( query );\n\t\tif ( queriedItems !== undefined ) {\n\t\t\treturn queriedItems;\n\t\t}\n\t} else {\n\t\tqueriedItemsCache = new EquivalentKeyMap();\n\t\tqueriedItemsCacheByState.set( state, queriedItemsCache );\n\t}\n\n\tconst items = getQueriedItemsUncached( state, query );\n\tqueriedItemsCache.set( query, items );\n\treturn items;\n} );\n"],"mappings":"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"}