@automattic/data-stores 3.2.0 → 3.2.1

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 (516) hide show
  1. package/CHANGELOG.md +4 -0
  2. package/dist/cjs/agents-manager/actions.js +116 -0
  3. package/dist/cjs/agents-manager/actions.js.map +1 -0
  4. package/dist/cjs/agents-manager/constants.js +5 -0
  5. package/dist/cjs/agents-manager/constants.js.map +1 -0
  6. package/dist/cjs/agents-manager/index.js +37 -0
  7. package/dist/cjs/agents-manager/index.js.map +1 -0
  8. package/dist/cjs/agents-manager/persist-state.js +58 -0
  9. package/dist/cjs/agents-manager/persist-state.js.map +1 -0
  10. package/dist/cjs/agents-manager/reducer.js +87 -0
  11. package/dist/cjs/agents-manager/reducer.js.map +1 -0
  12. package/dist/cjs/agents-manager/resolvers.js +60 -0
  13. package/dist/cjs/agents-manager/resolvers.js.map +1 -0
  14. package/dist/cjs/agents-manager/selectors.js +44 -0
  15. package/dist/cjs/agents-manager/selectors.js.map +1 -0
  16. package/dist/cjs/agents-manager/types.js +3 -0
  17. package/dist/cjs/agents-manager/types.js.map +1 -0
  18. package/dist/cjs/contextual-help/admin-sections.js +1 -1
  19. package/dist/cjs/contextual-help/admin-sections.js.map +1 -1
  20. package/dist/cjs/help-center/actions.js +67 -63
  21. package/dist/cjs/help-center/actions.js.map +1 -1
  22. package/dist/cjs/help-center/constants.js +2 -1
  23. package/dist/cjs/help-center/constants.js.map +1 -1
  24. package/dist/cjs/help-center/index.js +14 -27
  25. package/dist/cjs/help-center/index.js.map +1 -1
  26. package/dist/cjs/help-center/reducer.js +17 -2
  27. package/dist/cjs/help-center/reducer.js.map +1 -1
  28. package/dist/cjs/help-center/resolvers.js +45 -25
  29. package/dist/cjs/help-center/resolvers.js.map +1 -1
  30. package/dist/cjs/help-center/selectors.js +7 -1
  31. package/dist/cjs/help-center/selectors.js.map +1 -1
  32. package/dist/cjs/help-center/utils.js +136 -0
  33. package/dist/cjs/help-center/utils.js.map +1 -0
  34. package/dist/cjs/index.js +8 -3
  35. package/dist/cjs/index.js.map +1 -1
  36. package/dist/cjs/mutations/use-domains-bulk-actions-mutation.js +3 -3
  37. package/dist/cjs/mutations/use-domains-bulk-actions-mutation.js.map +1 -1
  38. package/dist/cjs/newsletter-categories/index.js +2 -2
  39. package/dist/cjs/newsletter-categories/index.js.map +1 -1
  40. package/dist/cjs/onboard/actions.js +6 -1
  41. package/dist/cjs/onboard/actions.js.map +1 -1
  42. package/dist/cjs/onboard/reducer.js +12 -1
  43. package/dist/cjs/onboard/reducer.js.map +1 -1
  44. package/dist/cjs/onboard/selectors.js +3 -1
  45. package/dist/cjs/onboard/selectors.js.map +1 -1
  46. package/dist/cjs/plans/constants.js +3 -1
  47. package/dist/cjs/plans/constants.js.map +1 -1
  48. package/dist/cjs/plans/hooks/use-pricing-meta-for-grid-plans.js +35 -18
  49. package/dist/cjs/plans/hooks/use-pricing-meta-for-grid-plans.js.map +1 -1
  50. package/dist/cjs/plans/index.js +2 -1
  51. package/dist/cjs/plans/index.js.map +1 -1
  52. package/dist/cjs/plans/queries/use-plans.js +2 -2
  53. package/dist/cjs/plans/queries/use-plans.js.map +1 -1
  54. package/dist/cjs/plans/queries/use-site-plans.js +2 -2
  55. package/dist/cjs/plans/queries/use-site-plans.js.map +1 -1
  56. package/dist/cjs/plans/resolvers.js +0 -1
  57. package/dist/cjs/plans/resolvers.js.map +1 -1
  58. package/dist/cjs/plans/selectors.js.map +1 -1
  59. package/dist/cjs/products-list/queries/use-products.js +2 -2
  60. package/dist/cjs/products-list/queries/use-products.js.map +1 -1
  61. package/dist/cjs/products-list/resolvers.js +2 -2
  62. package/dist/cjs/products-list/resolvers.js.map +1 -1
  63. package/dist/cjs/purchases/lib/assembler.js +9 -4
  64. package/dist/cjs/purchases/lib/assembler.js.map +1 -1
  65. package/dist/cjs/purchases/queries/use-get-jetpack-transferred-license-purchases.js +2 -2
  66. package/dist/cjs/purchases/queries/use-get-jetpack-transferred-license-purchases.js.map +1 -1
  67. package/dist/cjs/purchases/queries/use-site-purchases.js +3 -3
  68. package/dist/cjs/purchases/queries/use-site-purchases.js.map +1 -1
  69. package/dist/cjs/queries/use-all-domains-query.js +2 -2
  70. package/dist/cjs/queries/use-all-domains-query.js.map +1 -1
  71. package/dist/cjs/queries/use-bulk-domain-update-status-query.js +3 -57
  72. package/dist/cjs/queries/use-bulk-domain-update-status-query.js.map +1 -1
  73. package/dist/cjs/queries/use-happiness-engineers-query.js +2 -2
  74. package/dist/cjs/queries/use-happiness-engineers-query.js.map +1 -1
  75. package/dist/cjs/queries/use-launchpad.js +5 -5
  76. package/dist/cjs/queries/use-launchpad.js.map +1 -1
  77. package/dist/cjs/queries/use-site-domains-query.js +2 -2
  78. package/dist/cjs/queries/use-site-domains-query.js.map +1 -1
  79. package/dist/cjs/queries/use-site-intent.js +2 -2
  80. package/dist/cjs/queries/use-site-intent.js.map +1 -1
  81. package/dist/cjs/queries/use-site-query.js +2 -2
  82. package/dist/cjs/queries/use-site-query.js.map +1 -1
  83. package/dist/cjs/reader/contexts/index.js +1 -4
  84. package/dist/cjs/reader/contexts/index.js.map +1 -1
  85. package/dist/cjs/reader/helpers/index.js +4 -3
  86. package/dist/cjs/reader/helpers/index.js.map +1 -1
  87. package/dist/cjs/reader/helpers/optimistic-update.js +2 -1
  88. package/dist/cjs/reader/helpers/optimistic-update.js.map +1 -1
  89. package/dist/cjs/reader/index.js +2 -8
  90. package/dist/cjs/reader/index.js.map +1 -1
  91. package/dist/cjs/reader/mutations/use-pending-site-confirm-mutation.js +2 -2
  92. package/dist/cjs/reader/mutations/use-pending-site-confirm-mutation.js.map +1 -1
  93. package/dist/cjs/reader/mutations/use-site-delivery-frequency-mutation.js +26 -20
  94. package/dist/cjs/reader/mutations/use-site-delivery-frequency-mutation.js.map +1 -1
  95. package/dist/cjs/reader/mutations/use-site-email-me-new-comments-mutation.js +4 -3
  96. package/dist/cjs/reader/mutations/use-site-email-me-new-comments-mutation.js.map +1 -1
  97. package/dist/cjs/reader/mutations/use-site-email-me-new-posts-mutation.js +4 -3
  98. package/dist/cjs/reader/mutations/use-site-email-me-new-posts-mutation.js.map +1 -1
  99. package/dist/cjs/reader/mutations/use-site-notify-me-of-new-posts-mutation.js +4 -3
  100. package/dist/cjs/reader/mutations/use-site-notify-me-of-new-posts-mutation.js.map +1 -1
  101. package/dist/cjs/reader/mutations/use-site-subscribe-mutation.js +10 -4
  102. package/dist/cjs/reader/mutations/use-site-subscribe-mutation.js.map +1 -1
  103. package/dist/cjs/reader/mutations/use-site-unsubscribe-mutation.js +11 -4
  104. package/dist/cjs/reader/mutations/use-site-unsubscribe-mutation.js.map +1 -1
  105. package/dist/cjs/reader/queries/index.js +2 -8
  106. package/dist/cjs/reader/queries/index.js.map +1 -1
  107. package/dist/cjs/reader/queries/use-site-subscriptions-query.js +27 -26
  108. package/dist/cjs/reader/queries/use-site-subscriptions-query.js.map +1 -1
  109. package/dist/cjs/site/queries/use-site-features.js +2 -2
  110. package/dist/cjs/site/queries/use-site-features.js.map +1 -1
  111. package/dist/cjs/site/queries/use-site-media-storage.js +2 -2
  112. package/dist/cjs/site/queries/use-site-media-storage.js.map +1 -1
  113. package/dist/cjs/site/queries/use-site-user-query.js +2 -2
  114. package/dist/cjs/site/queries/use-site-user-query.js.map +1 -1
  115. package/dist/cjs/site/queries/use-site.js +2 -2
  116. package/dist/cjs/site/queries/use-site.js.map +1 -1
  117. package/dist/cjs/site/resolvers.js +5 -5
  118. package/dist/cjs/site/resolvers.js.map +1 -1
  119. package/dist/cjs/site/selectors.js +5 -3
  120. package/dist/cjs/site/selectors.js.map +1 -1
  121. package/dist/cjs/site/types.js.map +1 -1
  122. package/dist/cjs/site-reset/use-site-reset-content-summary-query.js +2 -2
  123. package/dist/cjs/site-reset/use-site-reset-content-summary-query.js.map +1 -1
  124. package/dist/cjs/site-reset/use-site-reset-mutation.js +2 -2
  125. package/dist/cjs/site-reset/use-site-reset-mutation.js.map +1 -1
  126. package/dist/cjs/site-reset/use-site-reset-status-query.js +2 -2
  127. package/dist/cjs/site-reset/use-site-reset-status-query.js.map +1 -1
  128. package/dist/cjs/starter-designs-queries/use-starter-design-by-slug.js +2 -2
  129. package/dist/cjs/starter-designs-queries/use-starter-design-by-slug.js.map +1 -1
  130. package/dist/cjs/starter-designs-queries/use-starter-designs-query.js +2 -2
  131. package/dist/cjs/starter-designs-queries/use-starter-designs-query.js.map +1 -1
  132. package/dist/cjs/subscriber/actions.js +5 -5
  133. package/dist/cjs/subscriber/actions.js.map +1 -1
  134. package/dist/cjs/templates/use-template.js +2 -2
  135. package/dist/cjs/templates/use-template.js.map +1 -1
  136. package/dist/cjs/users/use-send-invites.js +2 -2
  137. package/dist/cjs/users/use-send-invites.js.map +1 -1
  138. package/dist/cjs/utils.js +26 -0
  139. package/dist/cjs/utils.js.map +1 -0
  140. package/dist/cjs/wpcom-request-controls/index.js +3 -2
  141. package/dist/cjs/wpcom-request-controls/index.js.map +1 -1
  142. package/dist/cjs/wpcom-request.js +24 -0
  143. package/dist/cjs/wpcom-request.js.map +1 -0
  144. package/dist/esm/agents-manager/actions.js +104 -0
  145. package/dist/esm/agents-manager/actions.js.map +1 -0
  146. package/dist/esm/agents-manager/constants.js +2 -0
  147. package/dist/esm/agents-manager/constants.js.map +1 -0
  148. package/dist/esm/agents-manager/index.js +31 -0
  149. package/dist/esm/agents-manager/index.js.map +1 -0
  150. package/dist/esm/agents-manager/persist-state.js +54 -0
  151. package/dist/esm/agents-manager/persist-state.js.map +1 -0
  152. package/dist/esm/agents-manager/reducer.js +82 -0
  153. package/dist/esm/agents-manager/reducer.js.map +1 -0
  154. package/dist/esm/agents-manager/resolvers.js +57 -0
  155. package/dist/esm/agents-manager/resolvers.js.map +1 -0
  156. package/dist/esm/agents-manager/selectors.js +31 -0
  157. package/dist/esm/agents-manager/selectors.js.map +1 -0
  158. package/dist/esm/agents-manager/types.js +2 -0
  159. package/dist/esm/agents-manager/types.js.map +1 -0
  160. package/dist/esm/contextual-help/admin-sections.js +1 -1
  161. package/dist/esm/contextual-help/admin-sections.js.map +1 -1
  162. package/dist/esm/help-center/actions.js +63 -61
  163. package/dist/esm/help-center/actions.js.map +1 -1
  164. package/dist/esm/help-center/constants.js +1 -0
  165. package/dist/esm/help-center/constants.js.map +1 -1
  166. package/dist/esm/help-center/index.js +11 -23
  167. package/dist/esm/help-center/index.js.map +1 -1
  168. package/dist/esm/help-center/reducer.js +17 -2
  169. package/dist/esm/help-center/reducer.js.map +1 -1
  170. package/dist/esm/help-center/resolvers.js +43 -25
  171. package/dist/esm/help-center/resolvers.js.map +1 -1
  172. package/dist/esm/help-center/selectors.js +3 -0
  173. package/dist/esm/help-center/selectors.js.map +1 -1
  174. package/dist/esm/help-center/utils.js +127 -0
  175. package/dist/esm/help-center/utils.js.map +1 -0
  176. package/dist/esm/index.js +4 -2
  177. package/dist/esm/index.js.map +1 -1
  178. package/dist/esm/mutations/use-domains-bulk-actions-mutation.js +1 -1
  179. package/dist/esm/mutations/use-domains-bulk-actions-mutation.js.map +1 -1
  180. package/dist/esm/newsletter-categories/index.js +1 -1
  181. package/dist/esm/newsletter-categories/index.js.map +1 -1
  182. package/dist/esm/onboard/actions.js +4 -0
  183. package/dist/esm/onboard/actions.js.map +1 -1
  184. package/dist/esm/onboard/reducer.js +10 -0
  185. package/dist/esm/onboard/reducer.js.map +1 -1
  186. package/dist/esm/onboard/selectors.js +1 -0
  187. package/dist/esm/onboard/selectors.js.map +1 -1
  188. package/dist/esm/plans/constants.js +2 -0
  189. package/dist/esm/plans/constants.js.map +1 -1
  190. package/dist/esm/plans/hooks/use-pricing-meta-for-grid-plans.js +35 -18
  191. package/dist/esm/plans/hooks/use-pricing-meta-for-grid-plans.js.map +1 -1
  192. package/dist/esm/plans/index.js +1 -1
  193. package/dist/esm/plans/index.js.map +1 -1
  194. package/dist/esm/plans/queries/use-plans.js +1 -1
  195. package/dist/esm/plans/queries/use-site-plans.js +1 -1
  196. package/dist/esm/plans/resolvers.js +0 -1
  197. package/dist/esm/plans/resolvers.js.map +1 -1
  198. package/dist/esm/plans/selectors.js.map +1 -1
  199. package/dist/esm/products-list/queries/use-products.js +1 -1
  200. package/dist/esm/products-list/queries/use-products.js.map +1 -1
  201. package/dist/esm/products-list/resolvers.js +1 -1
  202. package/dist/esm/products-list/resolvers.js.map +1 -1
  203. package/dist/esm/purchases/lib/assembler.js +9 -4
  204. package/dist/esm/purchases/lib/assembler.js.map +1 -1
  205. package/dist/esm/purchases/queries/use-get-jetpack-transferred-license-purchases.js +1 -1
  206. package/dist/esm/purchases/queries/use-site-purchases.js +2 -2
  207. package/dist/esm/queries/use-all-domains-query.js +1 -1
  208. package/dist/esm/queries/use-all-domains-query.js.map +1 -1
  209. package/dist/esm/queries/use-bulk-domain-update-status-query.js +3 -56
  210. package/dist/esm/queries/use-bulk-domain-update-status-query.js.map +1 -1
  211. package/dist/esm/queries/use-happiness-engineers-query.js +1 -1
  212. package/dist/esm/queries/use-happiness-engineers-query.js.map +1 -1
  213. package/dist/esm/queries/use-launchpad.js +1 -1
  214. package/dist/esm/queries/use-launchpad.js.map +1 -1
  215. package/dist/esm/queries/use-site-domains-query.js +1 -1
  216. package/dist/esm/queries/use-site-domains-query.js.map +1 -1
  217. package/dist/esm/queries/use-site-intent.js +1 -1
  218. package/dist/esm/queries/use-site-intent.js.map +1 -1
  219. package/dist/esm/queries/use-site-query.js +1 -1
  220. package/dist/esm/queries/use-site-query.js.map +1 -1
  221. package/dist/esm/reader/contexts/index.js +0 -1
  222. package/dist/esm/reader/contexts/index.js.map +1 -1
  223. package/dist/esm/reader/helpers/index.js +3 -2
  224. package/dist/esm/reader/helpers/index.js.map +1 -1
  225. package/dist/esm/reader/helpers/optimistic-update.js +2 -1
  226. package/dist/esm/reader/helpers/optimistic-update.js.map +1 -1
  227. package/dist/esm/reader/index.js +2 -3
  228. package/dist/esm/reader/index.js.map +1 -1
  229. package/dist/esm/reader/mutations/use-pending-site-confirm-mutation.js +2 -2
  230. package/dist/esm/reader/mutations/use-pending-site-confirm-mutation.js.map +1 -1
  231. package/dist/esm/reader/mutations/use-site-delivery-frequency-mutation.js +27 -21
  232. package/dist/esm/reader/mutations/use-site-delivery-frequency-mutation.js.map +1 -1
  233. package/dist/esm/reader/mutations/use-site-email-me-new-comments-mutation.js +5 -4
  234. package/dist/esm/reader/mutations/use-site-email-me-new-comments-mutation.js.map +1 -1
  235. package/dist/esm/reader/mutations/use-site-email-me-new-posts-mutation.js +5 -4
  236. package/dist/esm/reader/mutations/use-site-email-me-new-posts-mutation.js.map +1 -1
  237. package/dist/esm/reader/mutations/use-site-notify-me-of-new-posts-mutation.js +5 -4
  238. package/dist/esm/reader/mutations/use-site-notify-me-of-new-posts-mutation.js.map +1 -1
  239. package/dist/esm/reader/mutations/use-site-subscribe-mutation.js +10 -4
  240. package/dist/esm/reader/mutations/use-site-subscribe-mutation.js.map +1 -1
  241. package/dist/esm/reader/mutations/use-site-unsubscribe-mutation.js +11 -4
  242. package/dist/esm/reader/mutations/use-site-unsubscribe-mutation.js.map +1 -1
  243. package/dist/esm/reader/queries/index.js +1 -4
  244. package/dist/esm/reader/queries/index.js.map +1 -1
  245. package/dist/esm/reader/queries/use-site-subscriptions-query.js +28 -27
  246. package/dist/esm/reader/queries/use-site-subscriptions-query.js.map +1 -1
  247. package/dist/esm/site/queries/use-site-features.js +1 -1
  248. package/dist/esm/site/queries/use-site-media-storage.js +1 -1
  249. package/dist/esm/site/queries/use-site-user-query.js +1 -1
  250. package/dist/esm/site/queries/use-site-user-query.js.map +1 -1
  251. package/dist/esm/site/queries/use-site.js +1 -1
  252. package/dist/esm/site/resolvers.js +1 -1
  253. package/dist/esm/site/resolvers.js.map +1 -1
  254. package/dist/esm/site/selectors.js +5 -3
  255. package/dist/esm/site/selectors.js.map +1 -1
  256. package/dist/esm/site/types.js.map +1 -1
  257. package/dist/esm/site-reset/use-site-reset-content-summary-query.js +1 -1
  258. package/dist/esm/site-reset/use-site-reset-content-summary-query.js.map +1 -1
  259. package/dist/esm/site-reset/use-site-reset-mutation.js +1 -1
  260. package/dist/esm/site-reset/use-site-reset-mutation.js.map +1 -1
  261. package/dist/esm/site-reset/use-site-reset-status-query.js +1 -1
  262. package/dist/esm/site-reset/use-site-reset-status-query.js.map +1 -1
  263. package/dist/esm/starter-designs-queries/use-starter-design-by-slug.js +1 -1
  264. package/dist/esm/starter-designs-queries/use-starter-design-by-slug.js.map +1 -1
  265. package/dist/esm/starter-designs-queries/use-starter-designs-query.js +1 -1
  266. package/dist/esm/starter-designs-queries/use-starter-designs-query.js.map +1 -1
  267. package/dist/esm/subscriber/actions.js +1 -1
  268. package/dist/esm/subscriber/actions.js.map +1 -1
  269. package/dist/esm/templates/use-template.js +1 -1
  270. package/dist/esm/templates/use-template.js.map +1 -1
  271. package/dist/esm/users/use-send-invites.js +1 -1
  272. package/dist/esm/users/use-send-invites.js.map +1 -1
  273. package/dist/esm/utils.js +21 -0
  274. package/dist/esm/utils.js.map +1 -0
  275. package/dist/esm/wpcom-request-controls/index.js +2 -1
  276. package/dist/esm/wpcom-request-controls/index.js.map +1 -1
  277. package/dist/esm/wpcom-request.js +18 -0
  278. package/dist/esm/wpcom-request.js.map +1 -0
  279. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  280. package/dist/tsconfig.tsbuildinfo +1 -1
  281. package/dist/types/add-ons/types.d.ts +1 -0
  282. package/dist/types/add-ons/types.d.ts.map +1 -1
  283. package/dist/types/agents-manager/actions.d.ts +77 -0
  284. package/dist/types/agents-manager/actions.d.ts.map +1 -0
  285. package/dist/types/agents-manager/constants.d.ts +2 -0
  286. package/dist/types/agents-manager/constants.d.ts.map +1 -0
  287. package/dist/types/agents-manager/index.d.ts +6 -0
  288. package/dist/types/agents-manager/index.d.ts.map +1 -0
  289. package/dist/types/agents-manager/persist-state.d.ts +6 -0
  290. package/dist/types/agents-manager/persist-state.d.ts.map +1 -0
  291. package/dist/types/agents-manager/reducer.d.ts +29 -0
  292. package/dist/types/agents-manager/reducer.d.ts.map +1 -0
  293. package/dist/types/agents-manager/resolvers.d.ts +54 -0
  294. package/dist/types/agents-manager/resolvers.d.ts.map +1 -0
  295. package/dist/types/agents-manager/selectors.d.ts +22 -0
  296. package/dist/types/agents-manager/selectors.d.ts.map +1 -0
  297. package/dist/types/agents-manager/types.d.ts +20 -0
  298. package/dist/types/agents-manager/types.d.ts.map +1 -0
  299. package/dist/types/contextual-help/admin-sections.d.ts +330 -6
  300. package/dist/types/contextual-help/admin-sections.d.ts.map +1 -1
  301. package/dist/types/contextual-help/contextual-help.d.ts +410 -30
  302. package/dist/types/contextual-help/contextual-help.d.ts.map +1 -1
  303. package/dist/types/help-center/actions.d.ts +235 -30
  304. package/dist/types/help-center/actions.d.ts.map +1 -1
  305. package/dist/types/help-center/constants.d.ts +1 -0
  306. package/dist/types/help-center/constants.d.ts.map +1 -1
  307. package/dist/types/help-center/index.d.ts +1 -2
  308. package/dist/types/help-center/index.d.ts.map +1 -1
  309. package/dist/types/help-center/reducer.d.ts +13 -2
  310. package/dist/types/help-center/reducer.d.ts.map +1 -1
  311. package/dist/types/help-center/resolvers.d.ts +4 -31
  312. package/dist/types/help-center/resolvers.d.ts.map +1 -1
  313. package/dist/types/help-center/selectors.d.ts +11 -1
  314. package/dist/types/help-center/selectors.d.ts.map +1 -1
  315. package/dist/types/help-center/types.d.ts +20 -12
  316. package/dist/types/help-center/types.d.ts.map +1 -1
  317. package/dist/types/help-center/utils.d.ts +13 -0
  318. package/dist/types/help-center/utils.d.ts.map +1 -0
  319. package/dist/types/index.d.ts +18 -298
  320. package/dist/types/index.d.ts.map +1 -1
  321. package/dist/types/onboard/actions.d.ts +19 -3
  322. package/dist/types/onboard/actions.d.ts.map +1 -1
  323. package/dist/types/onboard/reducer.d.ts +4 -1
  324. package/dist/types/onboard/reducer.d.ts.map +1 -1
  325. package/dist/types/onboard/selectors.d.ts +8 -6
  326. package/dist/types/onboard/selectors.d.ts.map +1 -1
  327. package/dist/types/plans/constants.d.ts +3 -2
  328. package/dist/types/plans/constants.d.ts.map +1 -1
  329. package/dist/types/plans/hooks/use-pricing-meta-for-grid-plans.d.ts +6 -1
  330. package/dist/types/plans/hooks/use-pricing-meta-for-grid-plans.d.ts.map +1 -1
  331. package/dist/types/plans/index.d.ts +1 -1
  332. package/dist/types/plans/index.d.ts.map +1 -1
  333. package/dist/types/plans/resolvers.d.ts.map +1 -1
  334. package/dist/types/plans/types.d.ts +6 -0
  335. package/dist/types/plans/types.d.ts.map +1 -1
  336. package/dist/types/products-list/index.d.ts +1 -1
  337. package/dist/types/products-list/index.d.ts.map +1 -1
  338. package/dist/types/products-list/queries/use-products.d.ts.map +1 -1
  339. package/dist/types/purchases/lib/assembler.d.ts.map +1 -1
  340. package/dist/types/purchases/types.d.ts +37 -0
  341. package/dist/types/purchases/types.d.ts.map +1 -1
  342. package/dist/types/queries/use-all-domains-query.d.ts +2 -2
  343. package/dist/types/queries/use-all-domains-query.d.ts.map +1 -1
  344. package/dist/types/queries/use-bulk-domain-update-status-query.d.ts +5 -48
  345. package/dist/types/queries/use-bulk-domain-update-status-query.d.ts.map +1 -1
  346. package/dist/types/queries/use-site-intent.d.ts.map +1 -1
  347. package/dist/types/reader/contexts/index.d.ts +0 -1
  348. package/dist/types/reader/contexts/index.d.ts.map +1 -1
  349. package/dist/types/reader/helpers/index.d.ts.map +1 -1
  350. package/dist/types/reader/helpers/optimistic-update.d.ts.map +1 -1
  351. package/dist/types/reader/index.d.ts +13 -299
  352. package/dist/types/reader/index.d.ts.map +1 -1
  353. package/dist/types/reader/mutations/use-site-delivery-frequency-mutation.d.ts +3 -2
  354. package/dist/types/reader/mutations/use-site-delivery-frequency-mutation.d.ts.map +1 -1
  355. package/dist/types/reader/mutations/use-site-email-me-new-comments-mutation.d.ts +3 -2
  356. package/dist/types/reader/mutations/use-site-email-me-new-comments-mutation.d.ts.map +1 -1
  357. package/dist/types/reader/mutations/use-site-email-me-new-posts-mutation.d.ts +3 -2
  358. package/dist/types/reader/mutations/use-site-email-me-new-posts-mutation.d.ts.map +1 -1
  359. package/dist/types/reader/mutations/use-site-notify-me-of-new-posts-mutation.d.ts +3 -2
  360. package/dist/types/reader/mutations/use-site-notify-me-of-new-posts-mutation.d.ts.map +1 -1
  361. package/dist/types/reader/mutations/use-site-subscribe-mutation.d.ts +3 -2
  362. package/dist/types/reader/mutations/use-site-subscribe-mutation.d.ts.map +1 -1
  363. package/dist/types/reader/mutations/use-site-unsubscribe-mutation.d.ts +3 -2
  364. package/dist/types/reader/mutations/use-site-unsubscribe-mutation.d.ts.map +1 -1
  365. package/dist/types/reader/queries/index.d.ts +1 -5
  366. package/dist/types/reader/queries/index.d.ts.map +1 -1
  367. package/dist/types/reader/queries/use-site-subscriptions-query.d.ts +6 -225
  368. package/dist/types/reader/queries/use-site-subscriptions-query.d.ts.map +1 -1
  369. package/dist/types/reader/types/index.d.ts +32 -44
  370. package/dist/types/reader/types/index.d.ts.map +1 -1
  371. package/dist/types/shared-types.d.ts +11 -0
  372. package/dist/types/shared-types.d.ts.map +1 -1
  373. package/dist/types/site/actions.d.ts +1 -1
  374. package/dist/types/site/actions.d.ts.map +1 -1
  375. package/dist/types/site/queries/use-site-user-query.d.ts.map +1 -1
  376. package/dist/types/site/selectors.d.ts.map +1 -1
  377. package/dist/types/site/types.d.ts +4 -1
  378. package/dist/types/site/types.d.ts.map +1 -1
  379. package/dist/types/starter-designs-queries/types.d.ts +1 -1
  380. package/dist/types/starter-designs-queries/types.d.ts.map +1 -1
  381. package/dist/types/starter-designs-queries/use-starter-design-by-slug.d.ts +1 -1
  382. package/dist/types/starter-designs-queries/use-starter-design-by-slug.d.ts.map +1 -1
  383. package/dist/types/starter-designs-queries/use-starter-designs-query.d.ts +1 -1
  384. package/dist/types/starter-designs-queries/use-starter-designs-query.d.ts.map +1 -1
  385. package/dist/types/subscriber/index.d.ts +1 -1
  386. package/dist/types/subscriber/index.d.ts.map +1 -1
  387. package/dist/types/utils.d.ts +3 -0
  388. package/dist/types/utils.d.ts.map +1 -0
  389. package/dist/types/wpcom-plans-ui/actions.d.ts +1 -1
  390. package/dist/types/wpcom-plans-ui/index.d.ts +1 -1
  391. package/dist/types/wpcom-plans-ui/index.d.ts.map +1 -1
  392. package/dist/types/wpcom-request-controls/index.d.ts +1 -1
  393. package/dist/types/wpcom-request-controls/index.d.ts.map +1 -1
  394. package/dist/types/wpcom-request.d.ts +7 -0
  395. package/dist/types/wpcom-request.d.ts.map +1 -0
  396. package/package.json +23 -22
  397. package/src/add-ons/types.ts +1 -0
  398. package/src/agents-manager/actions.ts +151 -0
  399. package/src/agents-manager/constants.ts +1 -0
  400. package/src/agents-manager/index.ts +38 -0
  401. package/src/agents-manager/persist-state.ts +60 -0
  402. package/src/agents-manager/reducer.ts +106 -0
  403. package/src/agents-manager/resolvers.ts +87 -0
  404. package/src/agents-manager/selectors.ts +32 -0
  405. package/src/agents-manager/test/persist-state.test.ts +81 -0
  406. package/src/agents-manager/test/reducer.test.ts +69 -0
  407. package/src/agents-manager/types.ts +24 -0
  408. package/src/contextual-help/admin-sections.ts +1 -1
  409. package/src/help-center/actions.ts +101 -76
  410. package/src/help-center/constants.ts +1 -0
  411. package/src/help-center/index.ts +11 -32
  412. package/src/help-center/reducer.ts +29 -5
  413. package/src/help-center/resolvers.ts +46 -38
  414. package/src/help-center/selectors.ts +3 -0
  415. package/src/help-center/test/utils.ts +99 -0
  416. package/src/help-center/types.ts +22 -13
  417. package/src/help-center/utils.ts +156 -0
  418. package/src/index.ts +11 -1
  419. package/src/mutations/use-domains-bulk-actions-mutation.ts +1 -1
  420. package/src/newsletter-categories/index.ts +1 -1
  421. package/src/newsletter-categories/test/index.tsx +5 -2
  422. package/src/onboard/actions.ts +7 -2
  423. package/src/onboard/reducer.ts +12 -2
  424. package/src/onboard/selectors.ts +1 -0
  425. package/src/plans/constants.ts +2 -0
  426. package/src/plans/hooks/test/use-pricing-meta-for-grid-plans.ts +120 -0
  427. package/src/plans/hooks/use-pricing-meta-for-grid-plans.ts +48 -18
  428. package/src/plans/index.ts +1 -0
  429. package/src/plans/queries/use-plans.ts +1 -1
  430. package/src/plans/queries/use-site-plans.ts +1 -1
  431. package/src/plans/resolvers.ts +0 -1
  432. package/src/plans/selectors.ts +9 -9
  433. package/src/plans/types.ts +6 -0
  434. package/src/products-list/queries/use-products.ts +1 -1
  435. package/src/products-list/resolvers.ts +1 -1
  436. package/src/products-list/selectors.ts +1 -1
  437. package/src/products-list/test/selectors.ts +2 -2
  438. package/src/purchases/lib/assembler.ts +10 -4
  439. package/src/purchases/queries/use-get-jetpack-transferred-license-purchases.tsx +1 -1
  440. package/src/purchases/queries/use-site-purchases.ts +2 -2
  441. package/src/purchases/types.ts +43 -0
  442. package/src/queries/use-all-domains-query.ts +3 -3
  443. package/src/queries/use-bulk-domain-update-status-query.ts +14 -115
  444. package/src/queries/use-happiness-engineers-query.ts +1 -1
  445. package/src/queries/use-launchpad.ts +1 -1
  446. package/src/queries/use-site-domains-query.ts +1 -1
  447. package/src/queries/use-site-intent.ts +1 -1
  448. package/src/queries/use-site-query.ts +1 -1
  449. package/src/reader/contexts/index.ts +0 -4
  450. package/src/reader/helpers/index.ts +3 -2
  451. package/src/reader/helpers/optimistic-update.ts +2 -1
  452. package/src/reader/index.ts +2 -4
  453. package/src/reader/mutations/test/use-site-subscription-mutations.test.tsx +208 -0
  454. package/src/reader/mutations/use-pending-site-confirm-mutation.ts +2 -2
  455. package/src/reader/mutations/use-site-delivery-frequency-mutation.ts +32 -36
  456. package/src/reader/mutations/use-site-email-me-new-comments-mutation.ts +10 -10
  457. package/src/reader/mutations/use-site-email-me-new-posts-mutation.ts +10 -10
  458. package/src/reader/mutations/use-site-notify-me-of-new-posts-mutation.ts +10 -10
  459. package/src/reader/mutations/use-site-subscribe-mutation.ts +21 -10
  460. package/src/reader/mutations/use-site-unsubscribe-mutation.ts +20 -10
  461. package/src/reader/queries/index.ts +4 -6
  462. package/src/reader/queries/test/use-site-subscriptions-query.tsx +158 -52
  463. package/src/reader/queries/use-site-subscriptions-query.ts +53 -55
  464. package/src/reader/types/index.ts +34 -48
  465. package/src/shared-types.ts +13 -0
  466. package/src/site/actions.ts +1 -1
  467. package/src/site/queries/use-site-features.ts +1 -1
  468. package/src/site/queries/use-site-media-storage.ts +1 -1
  469. package/src/site/queries/use-site-user-query.ts +1 -1
  470. package/src/site/queries/use-site.ts +1 -1
  471. package/src/site/resolvers.ts +1 -1
  472. package/src/site/selectors.ts +18 -10
  473. package/src/site/test/selectors.ts +3 -3
  474. package/src/site/types.ts +4 -1
  475. package/src/site-reset/test/use-site-reset-mutation.tsx +3 -4
  476. package/src/site-reset/use-site-reset-content-summary-query.ts +1 -1
  477. package/src/site-reset/use-site-reset-mutation.ts +1 -1
  478. package/src/site-reset/use-site-reset-status-query.ts +1 -1
  479. package/src/starter-designs-queries/types.ts +1 -1
  480. package/src/starter-designs-queries/use-starter-design-by-slug.ts +2 -2
  481. package/src/starter-designs-queries/use-starter-designs-query.ts +2 -2
  482. package/src/subscriber/actions.ts +1 -1
  483. package/src/templates/use-template.ts +1 -1
  484. package/src/users/use-send-invites.ts +1 -1
  485. package/src/utils.ts +33 -0
  486. package/src/wpcom-request-controls/index.ts +2 -1
  487. package/src/wpcom-request.ts +26 -0
  488. package/dist/cjs/reader/contexts/unsubscribed-feeds-search.js +0 -26
  489. package/dist/cjs/reader/contexts/unsubscribed-feeds-search.js.map +0 -1
  490. package/dist/cjs/reader/queries/use-read-feed-query.js +0 -21
  491. package/dist/cjs/reader/queries/use-read-feed-query.js.map +0 -1
  492. package/dist/cjs/reader/queries/use-read-feed-search-query.js +0 -39
  493. package/dist/cjs/reader/queries/use-read-feed-search-query.js.map +0 -1
  494. package/dist/cjs/reader/queries/use-read-feed-site-query.js +0 -26
  495. package/dist/cjs/reader/queries/use-read-feed-site-query.js.map +0 -1
  496. package/dist/esm/reader/contexts/unsubscribed-feeds-search.js +0 -20
  497. package/dist/esm/reader/contexts/unsubscribed-feeds-search.js.map +0 -1
  498. package/dist/esm/reader/queries/use-read-feed-query.js +0 -18
  499. package/dist/esm/reader/queries/use-read-feed-query.js.map +0 -1
  500. package/dist/esm/reader/queries/use-read-feed-search-query.js +0 -35
  501. package/dist/esm/reader/queries/use-read-feed-search-query.js.map +0 -1
  502. package/dist/esm/reader/queries/use-read-feed-site-query.js +0 -23
  503. package/dist/esm/reader/queries/use-read-feed-site-query.js.map +0 -1
  504. package/dist/types/reader/contexts/unsubscribed-feeds-search.d.ts +0 -12
  505. package/dist/types/reader/contexts/unsubscribed-feeds-search.d.ts.map +0 -1
  506. package/dist/types/reader/queries/use-read-feed-query.d.ts +0 -28
  507. package/dist/types/reader/queries/use-read-feed-query.d.ts.map +0 -1
  508. package/dist/types/reader/queries/use-read-feed-search-query.d.ts +0 -34
  509. package/dist/types/reader/queries/use-read-feed-search-query.d.ts.map +0 -1
  510. package/dist/types/reader/queries/use-read-feed-site-query.d.ts +0 -15
  511. package/dist/types/reader/queries/use-read-feed-site-query.d.ts.map +0 -1
  512. package/src/reader/contexts/unsubscribed-feeds-search.tsx +0 -35
  513. package/src/reader/queries/test/use-read-feed-search-query.tsx +0 -55
  514. package/src/reader/queries/use-read-feed-query.ts +0 -45
  515. package/src/reader/queries/use-read-feed-search-query.ts +0 -72
  516. package/src/reader/queries/use-read-feed-site-query.ts +0 -35
@@ -1,38 +1,38 @@
1
+ import {
2
+ adaptSiteSubscriptionsResponse,
3
+ type SiteSubscriptionsApiResponse,
4
+ } from '@automattic/api-core';
5
+ import { siteSubscriptionsQuery, getSiteSubscriptionsQueryKey } from '@automattic/api-queries';
1
6
  import { useInfiniteQuery } from '@tanstack/react-query';
7
+ import { addQueryArgs } from '@wordpress/url';
2
8
  import { useMemo, useEffect, useCallback } from 'react';
3
9
  import { SiteSubscriptionsFilterBy, SiteSubscriptionsSortBy } from '../constants';
4
10
  import { useSiteSubscriptionsQueryProps } from '../contexts';
5
11
  import { callApi } from '../helpers';
6
- import { useCacheKey, useIsLoggedIn, useIsQueryEnabled } from '../hooks';
7
- import type { SiteSubscriptionsResponseItem } from '../types';
12
+ import { useIsLoggedIn, useIsQueryEnabled } from '../hooks';
13
+ import type { SiteSubscriptionItem } from '../types';
8
14
 
9
- export const siteSubscriptionsQueryKeyPrefix = [ 'read', 'site-subscriptions' ];
15
+ export const siteSubscriptionsQueryKeyPrefix = [ ...getSiteSubscriptionsQueryKey() ];
10
16
 
11
- type SubscriptionManagerSiteSubscriptions = {
12
- subscriptions: SiteSubscriptionsResponseItem[];
13
- page: number;
14
- total_subscriptions: number;
15
- };
16
-
17
- type SubscriptionManagerSiteSubscriptionsQueryProps = {
18
- number?: number;
19
- };
17
+ // Must match the page size the shared `siteSubscriptionsQuery` (in
18
+ // `@automattic/api-queries`) assumes for next-page detection. That query reasons
19
+ // about how much offset it has covered, so requesting a different page size here
20
+ // would make pagination stop early or over-fetch. The value mirrors the server
21
+ // cap (`PER_PAGE_MAX = 100`) on `/read/following/mine`.
22
+ const SITE_SUBSCRIPTIONS_PAGE_SIZE = 100;
20
23
 
21
- const sortByDateSubscribed = (
22
- a: SiteSubscriptionsResponseItem,
23
- b: SiteSubscriptionsResponseItem
24
- ) =>
24
+ const sortByDateSubscribed = ( a: SiteSubscriptionItem, b: SiteSubscriptionItem ) =>
25
25
  a.date_subscribed instanceof Date && b.date_subscribed instanceof Date
26
26
  ? b.date_subscribed.getTime() - a.date_subscribed.getTime()
27
27
  : 0;
28
28
 
29
- const sortByLastUpdated = ( a: SiteSubscriptionsResponseItem, b: SiteSubscriptionsResponseItem ) =>
29
+ const sortByLastUpdated = ( a: SiteSubscriptionItem, b: SiteSubscriptionItem ) =>
30
30
  a.last_updated instanceof Date && b.last_updated instanceof Date
31
31
  ? b.last_updated.getTime() - a.last_updated.getTime()
32
32
  : 0;
33
33
 
34
- const sortBySiteName = ( a: SiteSubscriptionsResponseItem, b: SiteSubscriptionsResponseItem ) =>
35
- a.name.localeCompare( b.name );
34
+ const sortBySiteName = ( a: SiteSubscriptionItem, b: SiteSubscriptionItem ) =>
35
+ ( a.name ?? '' ).localeCompare( b.name ?? '' );
36
36
 
37
37
  const getSortFunction = ( sortTerm: SiteSubscriptionsSortBy ) => {
38
38
  switch ( sortTerm ) {
@@ -47,42 +47,38 @@ const getSortFunction = ( sortTerm: SiteSubscriptionsSortBy ) => {
47
47
  }
48
48
  };
49
49
 
50
- const useSiteSubscriptionsQuery = ( {
51
- number = 100,
52
- }: SubscriptionManagerSiteSubscriptionsQueryProps = {} ) => {
50
+ const useSiteSubscriptionsQuery = () => {
53
51
  const { isLoggedIn } = useIsLoggedIn();
54
52
  const enabled = useIsQueryEnabled();
55
- const cacheKey = useCacheKey( siteSubscriptionsQueryKeyPrefix );
56
53
  const { searchTerm, filterOption, sortTerm } = useSiteSubscriptionsQueryProps();
57
54
 
58
- const { data, fetchNextPage, hasNextPage, isFetchingNextPage, isFetching, ...rest } =
59
- useInfiniteQuery< SubscriptionManagerSiteSubscriptions >( {
60
- queryKey: cacheKey,
61
- queryFn: async ( { pageParam } ) => {
62
- const data = await callApi< SubscriptionManagerSiteSubscriptions >( {
63
- path: `/read/following/mine?number=${ number }&page=${ pageParam }`,
64
- isLoggedIn,
65
- apiVersion: '1.2',
66
- } );
67
-
68
- return {
69
- ...data,
70
- subscriptions: data.subscriptions
71
- ? data.subscriptions.map( ( subscription ) => ( {
72
- ...subscription,
73
- last_updated: new Date( subscription.last_updated ),
74
- date_subscribed: new Date( subscription.date_subscribed ),
75
- } ) )
76
- : [],
77
- };
78
- },
79
- enabled,
80
- initialPageParam: 1,
81
- getNextPageParam: ( lastPage, pages ) => {
82
- return lastPage.page * number < lastPage.total_subscriptions ? pages.length + 1 : undefined;
83
- },
84
- refetchOnWindowFocus: false,
85
- } );
55
+ const query = useInfiniteQuery( {
56
+ ...siteSubscriptionsQuery(),
57
+ queryFn: async ( { pageParam } ) => {
58
+ const response = await callApi< SiteSubscriptionsApiResponse >( {
59
+ path: addQueryArgs( '/read/following/mine', {
60
+ page: pageParam,
61
+ number: SITE_SUBSCRIPTIONS_PAGE_SIZE,
62
+ meta: '',
63
+ } ),
64
+ apiVersion: '1.2',
65
+ isLoggedIn,
66
+ } );
67
+
68
+ return adaptSiteSubscriptionsResponse( response );
69
+ },
70
+ enabled,
71
+ } );
72
+ const {
73
+ data,
74
+ error,
75
+ fetchNextPage,
76
+ hasNextPage,
77
+ isFetchingNextPage,
78
+ isFetching,
79
+ isLoading,
80
+ refetch,
81
+ } = query;
86
82
 
87
83
  const nextPage = hasNextPage && ! isFetching && data ? data.pages.length + 1 : null;
88
84
 
@@ -93,7 +89,7 @@ const useSiteSubscriptionsQuery = ( {
93
89
  }, [ nextPage, fetchNextPage ] );
94
90
 
95
91
  const filterFunction = useCallback(
96
- ( item: SiteSubscriptionsResponseItem ) => {
92
+ ( item: SiteSubscriptionItem ) => {
97
93
  switch ( filterOption ) {
98
94
  case SiteSubscriptionsFilterBy.Paid:
99
95
  return item.is_paid_subscription;
@@ -114,7 +110,7 @@ const useSiteSubscriptionsQuery = ( {
114
110
  const flattenedData = data?.pages?.map( ( page ) => page.subscriptions ).flat();
115
111
 
116
112
  const searchTermLowerCase = searchTerm.toLowerCase();
117
- const searchFilter = ( item: SiteSubscriptionsResponseItem ) => {
113
+ const searchFilter = ( item: SiteSubscriptionItem ) => {
118
114
  if ( searchTerm === '' ) {
119
115
  return true;
120
116
  }
@@ -131,17 +127,19 @@ const useSiteSubscriptionsQuery = ( {
131
127
  flattenedData
132
128
  ?.filter( ( item ) => item !== null && filterFunction( item ) && searchFilter( item ) )
133
129
  .sort( sort ) ?? [],
134
- totalCount: data?.pages?.[ 0 ]?.total_subscriptions ?? 0,
130
+ totalCount: data?.pages?.[ 0 ]?.totalCount ?? 0,
135
131
  };
136
132
  // eslint-disable-next-line react-hooks/exhaustive-deps
137
133
  }, [ data?.pages, filterOption, searchTerm, sortTerm ] );
138
134
 
139
135
  return {
140
136
  data: resultData,
137
+ error,
141
138
  isFetchingNextPage,
142
139
  isFetching,
143
140
  hasNextPage,
144
- ...rest,
141
+ isLoading,
142
+ refetch,
145
143
  };
146
144
  };
147
145
 
@@ -1,4 +1,7 @@
1
1
  import { EmailDeliveryFrequency } from '../constants';
2
+ import type { Railcar } from '@automattic/calypso-analytics';
3
+
4
+ export type { SiteSubscriptionItem } from '@automattic/api-core';
2
5
 
3
6
  export type EmailFormatType = 'html' | 'text';
4
7
 
@@ -27,13 +30,6 @@ export type EmailSettingsAPIResponse = {
27
30
  };
28
31
  };
29
32
 
30
- type SiteSubscriptionMeta = {
31
- links: {
32
- site: string;
33
- feed: string;
34
- };
35
- };
36
-
37
33
  export type SiteSubscriptionDeliveryMethods = {
38
34
  email?: {
39
35
  send_posts: boolean;
@@ -47,46 +43,6 @@ export type SiteSubscriptionDeliveryMethods = {
47
43
  };
48
44
  };
49
45
 
50
- export type PagedQueryResult< TDataType, TKey extends string > = {
51
- pages: {
52
- [ K in TKey ]: TDataType[];
53
- }[];
54
- pageParams: number;
55
- };
56
-
57
- export type SiteSubscriptionsResponseItem = {
58
- ID: string;
59
- blog_ID: string;
60
- feed_ID: string;
61
- URL: string;
62
- date_subscribed: Date;
63
- delivery_methods: SiteSubscriptionDeliveryMethods;
64
- name: string;
65
- organization_id: number;
66
- unseen_count: number;
67
- last_updated: Date;
68
- site_icon: string;
69
- is_owner: boolean;
70
- meta: SiteSubscriptionMeta;
71
- is_wpforteams_site: boolean;
72
- is_paid_subscription: boolean;
73
- is_gift: boolean;
74
- gift_id: number;
75
- is_rss: boolean;
76
- isDeleted: boolean;
77
- resubscribed: boolean;
78
- };
79
-
80
- export type SiteSubscriptionPage = {
81
- subscriptions: SiteSubscriptionsResponseItem[];
82
- total_subscriptions: number;
83
- };
84
-
85
- export type SiteSubscriptionsPages = {
86
- pageParams: [];
87
- pages: SiteSubscriptionPage[];
88
- };
89
-
90
46
  export type PostSubscription = {
91
47
  id: string;
92
48
  blog_id: string;
@@ -166,7 +122,9 @@ export type SiteSubscriptionDetails< DateT = Date > = {
166
122
  };
167
123
 
168
124
  export type SiteSubscriptionPaymentDetails = {
169
- is_gift: boolean;
125
+ is_comp: boolean;
126
+ /** @deprecated Legacy field from the API — plans with is_gift are filtered out. */
127
+ is_gift?: boolean;
170
128
  ID: string;
171
129
  site_id: string;
172
130
  status: string;
@@ -202,3 +160,31 @@ export type SiteSubscriptionDetailsErrorResponse = ErrorResponse<
202
160
  export type SiteSubscriptionDetailsResponse< DateT = Date > =
203
161
  | SiteSubscriptionDetails< DateT >
204
162
  | SiteSubscriptionDetailsErrorResponse;
163
+
164
+ export interface FeedItem {
165
+ ID: string;
166
+ URL: string;
167
+ blog_ID: string;
168
+ description: string;
169
+ feed_ID: string;
170
+ feed_URL: string;
171
+ image: string;
172
+ is_following: boolean;
173
+ last_checked: string;
174
+ last_update: string;
175
+ marked_for_refresh: boolean;
176
+ meta: {
177
+ links?: {
178
+ self: string;
179
+ [ key: string ]: string;
180
+ };
181
+ };
182
+ name: string;
183
+ next_refresh_time: string | null;
184
+ organization_id: number;
185
+ railcar?: Railcar;
186
+ subscribe_URL: string;
187
+ subscribers_count: number;
188
+ unseen_count: number;
189
+ subscription_id?: number; // Only present if the user is subscribed to the feed.
190
+ }
@@ -18,3 +18,16 @@ declare global {
18
18
  _currentSiteId: number;
19
19
  }
20
20
  }
21
+
22
+ export type Location = {
23
+ pathname: string;
24
+ search?: string;
25
+ hash?: string;
26
+ state?: unknown;
27
+ key?: string;
28
+ };
29
+
30
+ export interface APIFetchOptions {
31
+ global: boolean;
32
+ path: string;
33
+ }
@@ -33,7 +33,7 @@ import type {
33
33
  } from './types';
34
34
  import type { WpcomClientCredentials } from '../shared-types';
35
35
  import type { RequestTemplate } from '../templates';
36
- import type { Design, DesignOptions } from '@automattic/design-picker/src/types'; // Import from a specific file directly to avoid the circular dependencies
36
+ import type { Design, DesignOptions } from '@automattic/design-types';
37
37
 
38
38
  export function createActions( clientCreds: WpcomClientCredentials ) {
39
39
  const fetchSite = () => ( {
@@ -1,5 +1,5 @@
1
1
  import { useQuery, type UseQueryResult } from '@tanstack/react-query';
2
- import wpcomRequest from 'wpcom-proxy-request';
2
+ import wpcomRequest from '../../wpcom-request';
3
3
  import useQueryKeysFactory from './lib/use-query-keys-factory';
4
4
  import type { SiteFeatures } from '../types';
5
5
 
@@ -1,5 +1,5 @@
1
1
  import { useQuery, type UseQueryResult } from '@tanstack/react-query';
2
- import wpcomRequest from 'wpcom-proxy-request';
2
+ import wpcomRequest from '../../wpcom-request';
3
3
  import useQueryKeysFactory from './lib/use-query-keys-factory';
4
4
  import type { SiteMediaStorage, RawSiteMediaStorage } from '../types';
5
5
 
@@ -1,6 +1,6 @@
1
1
  import { useQuery } from '@tanstack/react-query';
2
- import wpcomRequest from 'wpcom-proxy-request';
3
2
  import { Member } from '../../users/types';
3
+ import wpcomRequest from '../../wpcom-request';
4
4
  import useQueryKeysFactory from './lib/use-query-keys-factory';
5
5
 
6
6
  export function getUseSiteUserQueryOptions(
@@ -1,5 +1,5 @@
1
1
  import { useQuery, type UseQueryResult } from '@tanstack/react-query';
2
- import wpcomRequest from 'wpcom-proxy-request';
2
+ import wpcomRequest from '../../wpcom-request';
3
3
  import useQueryKeysFactory from './lib/use-query-keys-factory';
4
4
  import type { SiteDetails } from '../types';
5
5
 
@@ -1,5 +1,5 @@
1
1
  // wpcomRequest is a temporary rename while we're working on migrating generators to thunks
2
- import wpcomRequest from 'wpcom-proxy-request';
2
+ import wpcomRequest from '../wpcom-request';
3
3
  import type {
4
4
  CurrentTheme,
5
5
  SiteDetails,
@@ -38,16 +38,16 @@ export const getSite: ( state: State, siteId: number | string ) => SiteDetails |
38
38
  };
39
39
 
40
40
  export const getSiteIdBySlug: ( _: State, slug: string ) => number | undefined = ( _, slug ) => {
41
- return ( select( STORE_KEY ) as SiteSelect ).getSite( slug )?.ID;
41
+ return ( select( STORE_KEY ) as unknown as SiteSelect ).getSite( slug )?.ID;
42
42
  };
43
43
 
44
44
  export const getSiteTitle: ( _: State, siteId: number ) => string | undefined = ( _, siteId ) =>
45
- ( select( STORE_KEY ) as SiteSelect ).getSite( siteId )?.name;
45
+ ( select( STORE_KEY ) as unknown as SiteSelect ).getSite( siteId )?.name;
46
46
 
47
47
  export const getSiteVerticalId: ( _: State, siteId: number ) => string | null | undefined = (
48
48
  _,
49
49
  siteId
50
- ) => ( select( STORE_KEY ) as SiteSelect ).getSite( siteId )?.options?.site_vertical_id;
50
+ ) => ( select( STORE_KEY ) as unknown as SiteSelect ).getSite( siteId )?.options?.site_vertical_id;
51
51
 
52
52
  // @TODO: Return LaunchStatus instead of a boolean
53
53
  export const isSiteLaunched = ( state: State, siteId: number ) => {
@@ -60,7 +60,10 @@ export const isSiteLaunching = ( state: State, siteId: number ) => {
60
60
  };
61
61
 
62
62
  export const isSiteAtomic: ( _: State, siteId: number | string ) => boolean = ( state, siteId ) => {
63
- return ( select( STORE_KEY ) as SiteSelect ).getSite( siteId )?.options?.is_wpcom_atomic === true;
63
+ return (
64
+ ( select( STORE_KEY ) as unknown as SiteSelect ).getSite( siteId )?.options?.is_wpcom_atomic ===
65
+ true
66
+ );
64
67
  };
65
68
 
66
69
  export const isSiteWPForTeams: ( _: State, siteId: number | string ) => boolean = (
@@ -68,7 +71,8 @@ export const isSiteWPForTeams: ( _: State, siteId: number | string ) => boolean
68
71
  siteId
69
72
  ) => {
70
73
  return (
71
- ( select( STORE_KEY ) as SiteSelect ).getSite( siteId )?.options?.is_wpforteams_site === true
74
+ ( select( STORE_KEY ) as unknown as SiteSelect ).getSite( siteId )?.options
75
+ ?.is_wpforteams_site === true
72
76
  );
73
77
  };
74
78
 
@@ -104,12 +108,12 @@ export const getPrimarySiteDomain: ( _: State, siteId: number ) => Domain | unde
104
108
  _,
105
109
  siteId
106
110
  ) =>
107
- ( select( STORE_KEY ) as SiteSelect )
111
+ ( select( STORE_KEY ) as unknown as SiteSelect )
108
112
  .getSiteDomains( siteId )
109
113
  ?.find( ( domain: Domain ) => domain.primary_domain );
110
114
 
111
115
  export const getSiteSubdomain: ( _: State, siteId: number ) => Domain | undefined = ( _, siteId ) =>
112
- ( select( STORE_KEY ) as SiteSelect )
116
+ ( select( STORE_KEY ) as unknown as SiteSelect )
113
117
  .getSiteDomains( siteId )
114
118
  ?.find( ( domain: Domain ) => domain.is_subdomain );
115
119
 
@@ -144,7 +148,7 @@ export const siteHasFeature = (
144
148
  ): boolean => {
145
149
  return Boolean(
146
150
  siteId &&
147
- ( select( STORE_KEY ) as SiteSelect )
151
+ ( select( STORE_KEY ) as unknown as SiteSelect )
148
152
  .getSite( siteId )
149
153
  ?.plan?.features.active.includes( featureKey )
150
154
  );
@@ -155,11 +159,15 @@ export const requiresUpgrade: ( state: State, siteId: number | null ) => boolean
155
159
  state,
156
160
  siteId
157
161
  ) => {
158
- return siteId && ! ( select( STORE_KEY ) as SiteSelect ).siteHasFeature( siteId, 'woop' );
162
+ return (
163
+ siteId && ! ( select( STORE_KEY ) as unknown as SiteSelect ).siteHasFeature( siteId, 'woop' )
164
+ );
159
165
  };
160
166
 
161
167
  export function isJetpackSite( state: State, siteId?: number ): boolean {
162
- return Boolean( siteId && ( select( STORE_KEY ) as SiteSelect ).getSite( siteId )?.jetpack );
168
+ return Boolean(
169
+ siteId && ( select( STORE_KEY ) as unknown as SiteSelect ).getSite( siteId )?.jetpack
170
+ );
163
171
  }
164
172
 
165
173
  export const getBundledPluginSlug = ( state: State, siteSlug: string ) =>
@@ -7,8 +7,8 @@
7
7
  */
8
8
 
9
9
  import { dispatch, select, subscribe } from '@wordpress/data';
10
- import wpcomRequest from 'wpcom-proxy-request';
11
10
  import { AtomicSoftwareStatus, AtomicSoftwareStatusError, register } from '..';
11
+ import wpcomRequest from '../../wpcom-request';
12
12
  import {
13
13
  getAtomicSoftwareStatus,
14
14
  getAtomicSoftwareError,
@@ -20,10 +20,10 @@ import {
20
20
  import { SiteDetails } from '../types';
21
21
  import type { State } from '../reducer';
22
22
 
23
- jest.mock( 'wpcom-proxy-request', () => ( {
23
+ jest.mock( '../../wpcom-request', () => ( {
24
24
  __esModule: true,
25
25
  default: jest.fn(),
26
- requestAllBlogsAccess: jest.fn( () => Promise.resolve() ),
26
+ canAccessWpcomApis: jest.fn( () => true ),
27
27
  } ) );
28
28
 
29
29
  let store: ReturnType< typeof register >;
package/src/site/types.ts CHANGED
@@ -125,6 +125,7 @@ export interface SiteDetails {
125
125
  capabilities?: SiteDetailsCapabilities;
126
126
  description: string;
127
127
  domain: string;
128
+ feed_ID?: number;
128
129
  icon?: { ico: string; img: string; media_id: number };
129
130
  is_a8c?: boolean;
130
131
  is_coming_soon?: boolean;
@@ -137,6 +138,8 @@ export interface SiteDetails {
137
138
  is_wpcom_staging_site?: boolean;
138
139
  is_a4a_client?: boolean;
139
140
  is_a4a_dev_site?: boolean;
141
+ is_garden?: boolean;
142
+ garden_name?: string | null;
140
143
  jetpack: boolean;
141
144
  jetpack_connection?: boolean;
142
145
  lang?: string;
@@ -259,7 +262,7 @@ export interface SiteDetailsOptions {
259
262
  is_automated_transfer?: boolean;
260
263
  is_cloud_eligible?: boolean;
261
264
  is_difm_lite_in_progress?: boolean;
262
- is_summer_special_2025?: boolean;
265
+ is_gating_business_q1?: boolean;
263
266
  is_domain_only?: boolean;
264
267
  is_mapped_domain?: boolean;
265
268
  is_pending_plan?: boolean;
@@ -4,12 +4,11 @@
4
4
  import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
5
5
  import { waitFor } from '@testing-library/dom';
6
6
  import { renderHook } from '@testing-library/react';
7
- import React from 'react';
8
- import { act } from 'react-dom/test-utils';
9
- import wpcomRequest from 'wpcom-proxy-request';
7
+ import React, { act } from 'react';
8
+ import wpcomRequest from '../../wpcom-request';
10
9
  import { useSiteResetMutation } from '../use-site-reset-mutation';
11
10
 
12
- jest.mock( 'wpcom-proxy-request', () => ( {
11
+ jest.mock( '../../wpcom-request', () => ( {
13
12
  __esModule: true,
14
13
  default: jest.fn(),
15
14
  } ) );
@@ -1,5 +1,5 @@
1
1
  import { useQuery, UseQueryResult } from '@tanstack/react-query';
2
- import wpcomRequest from 'wpcom-proxy-request';
2
+ import wpcomRequest from '../wpcom-request';
3
3
  import { APIError } from './use-site-reset-mutation';
4
4
 
5
5
  export type SiteContent = {
@@ -1,6 +1,6 @@
1
1
  import { UseMutationOptions, useMutation } from '@tanstack/react-query';
2
2
  import { useCallback } from 'react';
3
- import wpcomRequest from 'wpcom-proxy-request';
3
+ import wpcomRequest from '../wpcom-request';
4
4
 
5
5
  export interface SiteResetAPIResponse {
6
6
  success: boolean;
@@ -1,5 +1,5 @@
1
1
  import { useQuery, UseQueryResult } from '@tanstack/react-query';
2
- import wpcomRequest from 'wpcom-proxy-request';
2
+ import wpcomRequest from '../wpcom-request';
3
3
  import { APIError } from './use-site-reset-mutation';
4
4
 
5
5
  export type SiteResetStatus = {
@@ -1,4 +1,4 @@
1
- import type { Category, Design } from '@automattic/design-picker/src/types';
1
+ import type { Category, Design } from '@automattic/design-types';
2
2
 
3
3
  export interface StarterDesigns {
4
4
  filters: { subject: Record< string, Category > };
@@ -1,7 +1,7 @@
1
1
  import { useLocale } from '@automattic/i18n-utils';
2
2
  import { useQuery, UseQueryResult, QueryOptions } from '@tanstack/react-query';
3
- import wpcomRequest from 'wpcom-proxy-request';
4
- import type { Design } from '@automattic/design-picker/src/types';
3
+ import wpcomRequest from '../wpcom-request';
4
+ import type { Design } from '@automattic/design-types';
5
5
 
6
6
  interface Options extends QueryOptions< Design > {
7
7
  enabled?: boolean;
@@ -1,6 +1,6 @@
1
1
  import { useQuery, UseQueryResult, QueryOptions } from '@tanstack/react-query';
2
2
  import { stringify } from 'qs';
3
- import wpcomRequest from 'wpcom-proxy-request';
3
+ import wpcomRequest from '../wpcom-request';
4
4
  import type { StarterDesigns } from './types';
5
5
  import type {
6
6
  Category,
@@ -10,7 +10,7 @@ import type {
10
10
  StyleVariation,
11
11
  PreviewData,
12
12
  DesignType,
13
- } from '@automattic/design-picker/src/types';
13
+ } from '@automattic/design-types';
14
14
 
15
15
  interface StarterDesignsQueryParams {
16
16
  seed?: string;
@@ -1,5 +1,5 @@
1
1
  import * as oauthToken from '@automattic/oauth-token';
2
- import wpcomProxyRequest from 'wpcom-proxy-request';
2
+ import wpcomProxyRequest from '../wpcom-request';
3
3
  import type {
4
4
  AddSubscribersResponse,
5
5
  GetSubscribersImportResponse,
@@ -1,5 +1,5 @@
1
1
  import { useQuery, UseQueryResult, QueryOptions } from '@tanstack/react-query';
2
- import wpcomRequest from 'wpcom-proxy-request';
2
+ import wpcomRequest from '../wpcom-request';
3
3
  import type { Template } from './types';
4
4
 
5
5
  interface Options extends QueryOptions< Template > {
@@ -1,5 +1,5 @@
1
1
  import { useMutation } from '@tanstack/react-query';
2
- import wpcomRequest from 'wpcom-proxy-request';
2
+ import wpcomRequest from '../wpcom-request';
3
3
 
4
4
  interface Invitee {
5
5
  email_or_username: string;
package/src/utils.ts ADDED
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Utility functions shared across data stores
3
+ */
4
+ declare const helpCenterData:
5
+ | { isProxied: boolean; isSU: boolean; isSSP: boolean; currentUser: { ID: number } }
6
+ | undefined;
7
+ declare const isSupportSession: boolean;
8
+ declare const isSSP: boolean;
9
+
10
+ // All end-to-end tests use a custom user agent containing this string.
11
+ const E2E_USER_AGENT = 'wp-e2e-tests';
12
+
13
+ export const isE2ETest = (): boolean =>
14
+ typeof window !== 'undefined' && window.navigator.userAgent.includes( E2E_USER_AGENT );
15
+
16
+ export const isInSupportSession = () => {
17
+ if ( typeof window !== 'undefined' ) {
18
+ return (
19
+ // A bit hacky but much easier than passing down data from PHP in Jetpack
20
+ // Simple
21
+ !! document.querySelector( '#wp-admin-bar-support-session-details' ) ||
22
+ !! document.querySelector( '#a8c-support-session-overlay' ) ||
23
+ // Atomic
24
+ document.body?.classList.contains( 'support-session' ) ||
25
+ document.querySelector( '#wpcom > .is-support-session' ) ||
26
+ ( typeof isSupportSession !== 'undefined' && !! isSupportSession ) ||
27
+ ( typeof helpCenterData !== 'undefined' && helpCenterData?.isSU ) ||
28
+ ( typeof helpCenterData !== 'undefined' && helpCenterData?.isSSP ) ||
29
+ ( typeof isSSP !== 'undefined' && !! isSSP )
30
+ );
31
+ }
32
+ return false;
33
+ };
@@ -1,7 +1,8 @@
1
- import wpcomProxyRequest, {
1
+ import {
2
2
  reloadProxy as triggerReloadProxy,
3
3
  requestAllBlogsAccess as triggerRequestAllBlogsAccess,
4
4
  } from 'wpcom-proxy-request';
5
+ import wpcomProxyRequest from '../wpcom-request';
5
6
 
6
7
  type WpcomProxyRequestOptions = Parameters< typeof wpcomProxyRequest >[ 0 ];
7
8
 
@@ -0,0 +1,26 @@
1
+ import wpcomProxyRequest, {
2
+ type WpcomRequestParams,
3
+ canAccessWpcomApis as originalCanAccessWpcomApis,
4
+ } from 'wpcom-proxy-request';
5
+
6
+ type WpcomRequester = < T >( params: WpcomRequestParams ) => Promise< T >;
7
+
8
+ let customRequester: WpcomRequester | null = null;
9
+
10
+ export function setRequester( requester: WpcomRequester ): void {
11
+ customRequester = requester;
12
+ }
13
+
14
+ export default function wpcomRequest< T >( params: WpcomRequestParams ): Promise< T > {
15
+ if ( customRequester ) {
16
+ return customRequester( params );
17
+ }
18
+ return wpcomProxyRequest( params );
19
+ }
20
+
21
+ export function canAccessWpcomApis(): boolean {
22
+ if ( customRequester ) {
23
+ return true;
24
+ }
25
+ return originalCanAccessWpcomApis();
26
+ }