@automattic/data-stores 3.1.2 → 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 (601) hide show
  1. package/CHANGELOG.md +18 -1
  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/{domain-suggestions → agents-manager}/types.js.map +1 -1
  17. package/dist/cjs/contextual-help/admin-sections.js +2 -2
  18. package/dist/cjs/contextual-help/admin-sections.js.map +1 -1
  19. package/dist/cjs/help-center/actions.js +103 -69
  20. package/dist/cjs/help-center/actions.js.map +1 -1
  21. package/dist/cjs/help-center/constants.js +2 -1
  22. package/dist/cjs/help-center/constants.js.map +1 -1
  23. package/dist/cjs/help-center/index.js +14 -27
  24. package/dist/cjs/help-center/index.js.map +1 -1
  25. package/dist/cjs/help-center/reducer.js +36 -12
  26. package/dist/cjs/help-center/reducer.js.map +1 -1
  27. package/dist/cjs/help-center/resolvers.js +45 -24
  28. package/dist/cjs/help-center/resolvers.js.map +1 -1
  29. package/dist/cjs/help-center/selectors.js +13 -5
  30. package/dist/cjs/help-center/selectors.js.map +1 -1
  31. package/dist/cjs/help-center/utils.js +136 -0
  32. package/dist/cjs/help-center/utils.js.map +1 -0
  33. package/dist/cjs/index.js +8 -6
  34. package/dist/cjs/index.js.map +1 -1
  35. package/dist/cjs/mutations/use-domains-bulk-actions-mutation.js +3 -3
  36. package/dist/cjs/mutations/use-domains-bulk-actions-mutation.js.map +1 -1
  37. package/dist/cjs/newsletter-categories/index.js +2 -2
  38. package/dist/cjs/newsletter-categories/index.js.map +1 -1
  39. package/dist/cjs/onboard/actions.js +16 -1
  40. package/dist/cjs/onboard/actions.js.map +1 -1
  41. package/dist/cjs/onboard/reducer.js +34 -1
  42. package/dist/cjs/onboard/reducer.js.map +1 -1
  43. package/dist/cjs/onboard/selectors.js +7 -1
  44. package/dist/cjs/onboard/selectors.js.map +1 -1
  45. package/dist/cjs/plans/constants.js +3 -1
  46. package/dist/cjs/plans/constants.js.map +1 -1
  47. package/dist/cjs/plans/hooks/use-pricing-meta-for-grid-plans.js +35 -18
  48. package/dist/cjs/plans/hooks/use-pricing-meta-for-grid-plans.js.map +1 -1
  49. package/dist/cjs/plans/index.js +2 -1
  50. package/dist/cjs/plans/index.js.map +1 -1
  51. package/dist/cjs/plans/queries/use-plans.js +21 -2
  52. package/dist/cjs/plans/queries/use-plans.js.map +1 -1
  53. package/dist/cjs/plans/queries/use-site-plans.js +2 -2
  54. package/dist/cjs/plans/queries/use-site-plans.js.map +1 -1
  55. package/dist/cjs/plans/resolvers.js +0 -1
  56. package/dist/cjs/plans/resolvers.js.map +1 -1
  57. package/dist/cjs/plans/selectors.js.map +1 -1
  58. package/dist/cjs/products-list/queries/use-products.js +2 -2
  59. package/dist/cjs/products-list/queries/use-products.js.map +1 -1
  60. package/dist/cjs/products-list/resolvers.js +2 -2
  61. package/dist/cjs/products-list/resolvers.js.map +1 -1
  62. package/dist/cjs/purchases/lib/assembler.js +15 -20
  63. package/dist/cjs/purchases/lib/assembler.js.map +1 -1
  64. package/dist/cjs/purchases/queries/use-get-jetpack-transferred-license-purchases.js +2 -2
  65. package/dist/cjs/purchases/queries/use-get-jetpack-transferred-license-purchases.js.map +1 -1
  66. package/dist/cjs/purchases/queries/use-site-purchases.js +3 -3
  67. package/dist/cjs/purchases/queries/use-site-purchases.js.map +1 -1
  68. package/dist/cjs/queries/use-all-domains-query.js +2 -2
  69. package/dist/cjs/queries/use-all-domains-query.js.map +1 -1
  70. package/dist/cjs/queries/use-bulk-domain-update-status-query.js +3 -57
  71. package/dist/cjs/queries/use-bulk-domain-update-status-query.js.map +1 -1
  72. package/dist/cjs/queries/use-happiness-engineers-query.js +2 -2
  73. package/dist/cjs/queries/use-happiness-engineers-query.js.map +1 -1
  74. package/dist/cjs/queries/use-launchpad.js +5 -5
  75. package/dist/cjs/queries/use-launchpad.js.map +1 -1
  76. package/dist/cjs/queries/use-site-domains-query.js +2 -2
  77. package/dist/cjs/queries/use-site-domains-query.js.map +1 -1
  78. package/dist/cjs/queries/use-site-intent.js +2 -2
  79. package/dist/cjs/queries/use-site-intent.js.map +1 -1
  80. package/dist/cjs/queries/use-site-query.js +2 -2
  81. package/dist/cjs/queries/use-site-query.js.map +1 -1
  82. package/dist/cjs/reader/contexts/index.js +1 -4
  83. package/dist/cjs/reader/contexts/index.js.map +1 -1
  84. package/dist/cjs/reader/helpers/index.js +4 -3
  85. package/dist/cjs/reader/helpers/index.js.map +1 -1
  86. package/dist/cjs/reader/helpers/optimistic-update.js +2 -1
  87. package/dist/cjs/reader/helpers/optimistic-update.js.map +1 -1
  88. package/dist/cjs/reader/index.js +2 -8
  89. package/dist/cjs/reader/index.js.map +1 -1
  90. package/dist/cjs/reader/mutations/use-pending-site-confirm-mutation.js +2 -2
  91. package/dist/cjs/reader/mutations/use-pending-site-confirm-mutation.js.map +1 -1
  92. package/dist/cjs/reader/mutations/use-site-delivery-frequency-mutation.js +26 -20
  93. package/dist/cjs/reader/mutations/use-site-delivery-frequency-mutation.js.map +1 -1
  94. package/dist/cjs/reader/mutations/use-site-email-me-new-comments-mutation.js +4 -3
  95. package/dist/cjs/reader/mutations/use-site-email-me-new-comments-mutation.js.map +1 -1
  96. package/dist/cjs/reader/mutations/use-site-email-me-new-posts-mutation.js +4 -3
  97. package/dist/cjs/reader/mutations/use-site-email-me-new-posts-mutation.js.map +1 -1
  98. package/dist/cjs/reader/mutations/use-site-notify-me-of-new-posts-mutation.js +4 -3
  99. package/dist/cjs/reader/mutations/use-site-notify-me-of-new-posts-mutation.js.map +1 -1
  100. package/dist/cjs/reader/mutations/use-site-subscribe-mutation.js +10 -4
  101. package/dist/cjs/reader/mutations/use-site-subscribe-mutation.js.map +1 -1
  102. package/dist/cjs/reader/mutations/use-site-unsubscribe-mutation.js +11 -4
  103. package/dist/cjs/reader/mutations/use-site-unsubscribe-mutation.js.map +1 -1
  104. package/dist/cjs/reader/queries/index.js +2 -8
  105. package/dist/cjs/reader/queries/index.js.map +1 -1
  106. package/dist/cjs/reader/queries/use-site-subscriptions-query.js +27 -26
  107. package/dist/cjs/reader/queries/use-site-subscriptions-query.js.map +1 -1
  108. package/dist/cjs/site/queries/use-site-features.js +2 -2
  109. package/dist/cjs/site/queries/use-site-features.js.map +1 -1
  110. package/dist/cjs/site/queries/use-site-media-storage.js +2 -2
  111. package/dist/cjs/site/queries/use-site-media-storage.js.map +1 -1
  112. package/dist/cjs/site/queries/use-site-user-query.js +2 -2
  113. package/dist/cjs/site/queries/use-site-user-query.js.map +1 -1
  114. package/dist/cjs/site/queries/use-site.js +2 -2
  115. package/dist/cjs/site/queries/use-site.js.map +1 -1
  116. package/dist/cjs/site/resolvers.js +5 -5
  117. package/dist/cjs/site/resolvers.js.map +1 -1
  118. package/dist/cjs/site/selectors.js +5 -3
  119. package/dist/cjs/site/selectors.js.map +1 -1
  120. package/dist/cjs/site/types.js.map +1 -1
  121. package/dist/cjs/site-reset/use-site-reset-content-summary-query.js +2 -2
  122. package/dist/cjs/site-reset/use-site-reset-content-summary-query.js.map +1 -1
  123. package/dist/cjs/site-reset/use-site-reset-mutation.js +2 -2
  124. package/dist/cjs/site-reset/use-site-reset-mutation.js.map +1 -1
  125. package/dist/cjs/site-reset/use-site-reset-status-query.js +2 -2
  126. package/dist/cjs/site-reset/use-site-reset-status-query.js.map +1 -1
  127. package/dist/cjs/starter-designs-queries/use-starter-design-by-slug.js +2 -2
  128. package/dist/cjs/starter-designs-queries/use-starter-design-by-slug.js.map +1 -1
  129. package/dist/cjs/starter-designs-queries/use-starter-designs-query.js +2 -2
  130. package/dist/cjs/starter-designs-queries/use-starter-designs-query.js.map +1 -1
  131. package/dist/cjs/subscriber/actions.js +5 -5
  132. package/dist/cjs/subscriber/actions.js.map +1 -1
  133. package/dist/cjs/templates/use-template.js +2 -2
  134. package/dist/cjs/templates/use-template.js.map +1 -1
  135. package/dist/cjs/users/use-send-invites.js +2 -2
  136. package/dist/cjs/users/use-send-invites.js.map +1 -1
  137. package/dist/cjs/utils.js +26 -0
  138. package/dist/cjs/utils.js.map +1 -0
  139. package/dist/cjs/wpcom-request-controls/index.js +3 -2
  140. package/dist/cjs/wpcom-request-controls/index.js.map +1 -1
  141. package/dist/cjs/wpcom-request.js +24 -0
  142. package/dist/cjs/wpcom-request.js.map +1 -0
  143. package/dist/esm/agents-manager/actions.js +104 -0
  144. package/dist/esm/agents-manager/actions.js.map +1 -0
  145. package/dist/esm/agents-manager/constants.js +2 -0
  146. package/dist/esm/agents-manager/constants.js.map +1 -0
  147. package/dist/esm/agents-manager/index.js +31 -0
  148. package/dist/esm/agents-manager/index.js.map +1 -0
  149. package/dist/esm/agents-manager/persist-state.js +54 -0
  150. package/dist/esm/agents-manager/persist-state.js.map +1 -0
  151. package/dist/esm/agents-manager/reducer.js +82 -0
  152. package/dist/esm/agents-manager/reducer.js.map +1 -0
  153. package/dist/esm/agents-manager/resolvers.js +57 -0
  154. package/dist/esm/agents-manager/resolvers.js.map +1 -0
  155. package/dist/esm/agents-manager/selectors.js +31 -0
  156. package/dist/esm/agents-manager/selectors.js.map +1 -0
  157. package/dist/esm/{domain-suggestions → agents-manager}/types.js.map +1 -1
  158. package/dist/esm/contextual-help/admin-sections.js +2 -2
  159. package/dist/esm/contextual-help/admin-sections.js.map +1 -1
  160. package/dist/esm/help-center/actions.js +95 -65
  161. package/dist/esm/help-center/actions.js.map +1 -1
  162. package/dist/esm/help-center/constants.js +1 -0
  163. package/dist/esm/help-center/constants.js.map +1 -1
  164. package/dist/esm/help-center/index.js +11 -23
  165. package/dist/esm/help-center/index.js.map +1 -1
  166. package/dist/esm/help-center/reducer.js +36 -12
  167. package/dist/esm/help-center/reducer.js.map +1 -1
  168. package/dist/esm/help-center/resolvers.js +43 -24
  169. package/dist/esm/help-center/resolvers.js.map +1 -1
  170. package/dist/esm/help-center/selectors.js +6 -2
  171. package/dist/esm/help-center/selectors.js.map +1 -1
  172. package/dist/esm/help-center/utils.js +127 -0
  173. package/dist/esm/help-center/utils.js.map +1 -0
  174. package/dist/esm/index.js +4 -4
  175. package/dist/esm/index.js.map +1 -1
  176. package/dist/esm/mutations/use-domains-bulk-actions-mutation.js +1 -1
  177. package/dist/esm/mutations/use-domains-bulk-actions-mutation.js.map +1 -1
  178. package/dist/esm/newsletter-categories/index.js +1 -1
  179. package/dist/esm/newsletter-categories/index.js.map +1 -1
  180. package/dist/esm/onboard/actions.js +12 -0
  181. package/dist/esm/onboard/actions.js.map +1 -1
  182. package/dist/esm/onboard/reducer.js +30 -0
  183. package/dist/esm/onboard/reducer.js.map +1 -1
  184. package/dist/esm/onboard/selectors.js +3 -0
  185. package/dist/esm/onboard/selectors.js.map +1 -1
  186. package/dist/esm/plans/constants.js +2 -0
  187. package/dist/esm/plans/constants.js.map +1 -1
  188. package/dist/esm/plans/hooks/use-pricing-meta-for-grid-plans.js +35 -18
  189. package/dist/esm/plans/hooks/use-pricing-meta-for-grid-plans.js.map +1 -1
  190. package/dist/esm/plans/index.js +1 -1
  191. package/dist/esm/plans/index.js.map +1 -1
  192. package/dist/esm/plans/queries/use-plans.js +21 -2
  193. package/dist/esm/plans/queries/use-plans.js.map +1 -1
  194. package/dist/esm/plans/queries/use-site-plans.js +1 -1
  195. package/dist/esm/plans/resolvers.js +0 -1
  196. package/dist/esm/plans/resolvers.js.map +1 -1
  197. package/dist/esm/plans/selectors.js.map +1 -1
  198. package/dist/esm/products-list/queries/use-products.js +1 -1
  199. package/dist/esm/products-list/queries/use-products.js.map +1 -1
  200. package/dist/esm/products-list/resolvers.js +1 -1
  201. package/dist/esm/products-list/resolvers.js.map +1 -1
  202. package/dist/esm/purchases/lib/assembler.js +15 -20
  203. package/dist/esm/purchases/lib/assembler.js.map +1 -1
  204. package/dist/esm/purchases/queries/use-get-jetpack-transferred-license-purchases.js +1 -1
  205. package/dist/esm/purchases/queries/use-site-purchases.js +2 -2
  206. package/dist/esm/queries/use-all-domains-query.js +1 -1
  207. package/dist/esm/queries/use-all-domains-query.js.map +1 -1
  208. package/dist/esm/queries/use-bulk-domain-update-status-query.js +3 -56
  209. package/dist/esm/queries/use-bulk-domain-update-status-query.js.map +1 -1
  210. package/dist/esm/queries/use-happiness-engineers-query.js +1 -1
  211. package/dist/esm/queries/use-happiness-engineers-query.js.map +1 -1
  212. package/dist/esm/queries/use-launchpad.js +1 -1
  213. package/dist/esm/queries/use-launchpad.js.map +1 -1
  214. package/dist/esm/queries/use-site-domains-query.js +1 -1
  215. package/dist/esm/queries/use-site-domains-query.js.map +1 -1
  216. package/dist/esm/queries/use-site-intent.js +1 -1
  217. package/dist/esm/queries/use-site-intent.js.map +1 -1
  218. package/dist/esm/queries/use-site-query.js +1 -1
  219. package/dist/esm/queries/use-site-query.js.map +1 -1
  220. package/dist/esm/reader/contexts/index.js +0 -1
  221. package/dist/esm/reader/contexts/index.js.map +1 -1
  222. package/dist/esm/reader/helpers/index.js +3 -2
  223. package/dist/esm/reader/helpers/index.js.map +1 -1
  224. package/dist/esm/reader/helpers/optimistic-update.js +2 -1
  225. package/dist/esm/reader/helpers/optimistic-update.js.map +1 -1
  226. package/dist/esm/reader/index.js +2 -3
  227. package/dist/esm/reader/index.js.map +1 -1
  228. package/dist/esm/reader/mutations/use-pending-site-confirm-mutation.js +2 -2
  229. package/dist/esm/reader/mutations/use-pending-site-confirm-mutation.js.map +1 -1
  230. package/dist/esm/reader/mutations/use-site-delivery-frequency-mutation.js +27 -21
  231. package/dist/esm/reader/mutations/use-site-delivery-frequency-mutation.js.map +1 -1
  232. package/dist/esm/reader/mutations/use-site-email-me-new-comments-mutation.js +5 -4
  233. package/dist/esm/reader/mutations/use-site-email-me-new-comments-mutation.js.map +1 -1
  234. package/dist/esm/reader/mutations/use-site-email-me-new-posts-mutation.js +5 -4
  235. package/dist/esm/reader/mutations/use-site-email-me-new-posts-mutation.js.map +1 -1
  236. package/dist/esm/reader/mutations/use-site-notify-me-of-new-posts-mutation.js +5 -4
  237. package/dist/esm/reader/mutations/use-site-notify-me-of-new-posts-mutation.js.map +1 -1
  238. package/dist/esm/reader/mutations/use-site-subscribe-mutation.js +10 -4
  239. package/dist/esm/reader/mutations/use-site-subscribe-mutation.js.map +1 -1
  240. package/dist/esm/reader/mutations/use-site-unsubscribe-mutation.js +11 -4
  241. package/dist/esm/reader/mutations/use-site-unsubscribe-mutation.js.map +1 -1
  242. package/dist/esm/reader/queries/index.js +1 -4
  243. package/dist/esm/reader/queries/index.js.map +1 -1
  244. package/dist/esm/reader/queries/use-site-subscriptions-query.js +28 -27
  245. package/dist/esm/reader/queries/use-site-subscriptions-query.js.map +1 -1
  246. package/dist/esm/site/queries/use-site-features.js +1 -1
  247. package/dist/esm/site/queries/use-site-media-storage.js +1 -1
  248. package/dist/esm/site/queries/use-site-user-query.js +1 -1
  249. package/dist/esm/site/queries/use-site-user-query.js.map +1 -1
  250. package/dist/esm/site/queries/use-site.js +1 -1
  251. package/dist/esm/site/resolvers.js +1 -1
  252. package/dist/esm/site/resolvers.js.map +1 -1
  253. package/dist/esm/site/selectors.js +5 -3
  254. package/dist/esm/site/selectors.js.map +1 -1
  255. package/dist/esm/site/types.js.map +1 -1
  256. package/dist/esm/site-reset/use-site-reset-content-summary-query.js +1 -1
  257. package/dist/esm/site-reset/use-site-reset-content-summary-query.js.map +1 -1
  258. package/dist/esm/site-reset/use-site-reset-mutation.js +1 -1
  259. package/dist/esm/site-reset/use-site-reset-mutation.js.map +1 -1
  260. package/dist/esm/site-reset/use-site-reset-status-query.js +1 -1
  261. package/dist/esm/site-reset/use-site-reset-status-query.js.map +1 -1
  262. package/dist/esm/starter-designs-queries/use-starter-design-by-slug.js +1 -1
  263. package/dist/esm/starter-designs-queries/use-starter-design-by-slug.js.map +1 -1
  264. package/dist/esm/starter-designs-queries/use-starter-designs-query.js +1 -1
  265. package/dist/esm/starter-designs-queries/use-starter-designs-query.js.map +1 -1
  266. package/dist/esm/subscriber/actions.js +1 -1
  267. package/dist/esm/subscriber/actions.js.map +1 -1
  268. package/dist/esm/templates/use-template.js +1 -1
  269. package/dist/esm/templates/use-template.js.map +1 -1
  270. package/dist/esm/users/use-send-invites.js +1 -1
  271. package/dist/esm/users/use-send-invites.js.map +1 -1
  272. package/dist/esm/utils.js +21 -0
  273. package/dist/esm/utils.js.map +1 -0
  274. package/dist/esm/wpcom-request-controls/index.js +2 -1
  275. package/dist/esm/wpcom-request-controls/index.js.map +1 -1
  276. package/dist/esm/wpcom-request.js +18 -0
  277. package/dist/esm/wpcom-request.js.map +1 -0
  278. package/dist/tsconfig-cjs.tsbuildinfo +1 -1
  279. package/dist/tsconfig.tsbuildinfo +1 -1
  280. package/dist/types/add-ons/types.d.ts +1 -0
  281. package/dist/types/add-ons/types.d.ts.map +1 -1
  282. package/dist/types/agents-manager/actions.d.ts +77 -0
  283. package/dist/types/agents-manager/actions.d.ts.map +1 -0
  284. package/dist/types/agents-manager/constants.d.ts +2 -0
  285. package/dist/types/agents-manager/constants.d.ts.map +1 -0
  286. package/dist/types/agents-manager/index.d.ts +6 -0
  287. package/dist/types/agents-manager/index.d.ts.map +1 -0
  288. package/dist/types/agents-manager/persist-state.d.ts +6 -0
  289. package/dist/types/agents-manager/persist-state.d.ts.map +1 -0
  290. package/dist/types/agents-manager/reducer.d.ts +29 -0
  291. package/dist/types/agents-manager/reducer.d.ts.map +1 -0
  292. package/dist/types/agents-manager/resolvers.d.ts +54 -0
  293. package/dist/types/agents-manager/resolvers.d.ts.map +1 -0
  294. package/dist/types/agents-manager/selectors.d.ts +22 -0
  295. package/dist/types/agents-manager/selectors.d.ts.map +1 -0
  296. package/dist/types/agents-manager/types.d.ts +20 -0
  297. package/dist/types/agents-manager/types.d.ts.map +1 -0
  298. package/dist/types/contextual-help/admin-sections.d.ts +330 -6
  299. package/dist/types/contextual-help/admin-sections.d.ts.map +1 -1
  300. package/dist/types/contextual-help/contextual-help.d.ts +410 -30
  301. package/dist/types/contextual-help/contextual-help.d.ts.map +1 -1
  302. package/dist/types/help-center/actions.d.ts +249 -28
  303. package/dist/types/help-center/actions.d.ts.map +1 -1
  304. package/dist/types/help-center/constants.d.ts +1 -0
  305. package/dist/types/help-center/constants.d.ts.map +1 -1
  306. package/dist/types/help-center/index.d.ts +1 -2
  307. package/dist/types/help-center/index.d.ts.map +1 -1
  308. package/dist/types/help-center/reducer.d.ts +19 -7
  309. package/dist/types/help-center/reducer.d.ts.map +1 -1
  310. package/dist/types/help-center/resolvers.d.ts +4 -23
  311. package/dist/types/help-center/resolvers.d.ts.map +1 -1
  312. package/dist/types/help-center/selectors.d.ts +14 -3
  313. package/dist/types/help-center/selectors.d.ts.map +1 -1
  314. package/dist/types/help-center/types.d.ts +21 -12
  315. package/dist/types/help-center/types.d.ts.map +1 -1
  316. package/dist/types/help-center/utils.d.ts +13 -0
  317. package/dist/types/help-center/utils.d.ts.map +1 -0
  318. package/dist/types/index.d.ts +347 -197
  319. package/dist/types/index.d.ts.map +1 -1
  320. package/dist/types/onboard/actions.d.ts +32 -4
  321. package/dist/types/onboard/actions.d.ts.map +1 -1
  322. package/dist/types/onboard/reducer.d.ts +11 -2
  323. package/dist/types/onboard/reducer.d.ts.map +1 -1
  324. package/dist/types/onboard/selectors.d.ts +14 -8
  325. package/dist/types/onboard/selectors.d.ts.map +1 -1
  326. package/dist/types/onboard/types.d.ts +1 -1
  327. package/dist/types/onboard/types.d.ts.map +1 -1
  328. package/dist/types/plans/constants.d.ts +3 -2
  329. package/dist/types/plans/constants.d.ts.map +1 -1
  330. package/dist/types/plans/hooks/use-pricing-meta-for-grid-plans.d.ts +6 -1
  331. package/dist/types/plans/hooks/use-pricing-meta-for-grid-plans.d.ts.map +1 -1
  332. package/dist/types/plans/index.d.ts +1 -1
  333. package/dist/types/plans/index.d.ts.map +1 -1
  334. package/dist/types/plans/queries/use-plans.d.ts.map +1 -1
  335. package/dist/types/plans/resolvers.d.ts.map +1 -1
  336. package/dist/types/plans/types.d.ts +6 -0
  337. package/dist/types/plans/types.d.ts.map +1 -1
  338. package/dist/types/products-list/index.d.ts +1 -1
  339. package/dist/types/products-list/index.d.ts.map +1 -1
  340. package/dist/types/products-list/queries/use-products.d.ts.map +1 -1
  341. package/dist/types/purchases/lib/assembler.d.ts +3 -3
  342. package/dist/types/purchases/lib/assembler.d.ts.map +1 -1
  343. package/dist/types/purchases/types.d.ts +40 -109
  344. package/dist/types/purchases/types.d.ts.map +1 -1
  345. package/dist/types/queries/use-all-domains-query.d.ts +3 -3
  346. package/dist/types/queries/use-all-domains-query.d.ts.map +1 -1
  347. package/dist/types/queries/use-bulk-domain-update-status-query.d.ts +5 -48
  348. package/dist/types/queries/use-bulk-domain-update-status-query.d.ts.map +1 -1
  349. package/dist/types/queries/use-site-domains-query.d.ts +1 -1
  350. package/dist/types/queries/use-site-domains-query.d.ts.map +1 -1
  351. package/dist/types/queries/use-site-intent.d.ts.map +1 -1
  352. package/dist/types/queries/use-site-query.d.ts +1 -1
  353. package/dist/types/queries/use-site-query.d.ts.map +1 -1
  354. package/dist/types/reader/contexts/index.d.ts +0 -1
  355. package/dist/types/reader/contexts/index.d.ts.map +1 -1
  356. package/dist/types/reader/helpers/index.d.ts.map +1 -1
  357. package/dist/types/reader/helpers/optimistic-update.d.ts.map +1 -1
  358. package/dist/types/reader/index.d.ts +342 -196
  359. package/dist/types/reader/index.d.ts.map +1 -1
  360. package/dist/types/reader/mutations/use-site-delivery-frequency-mutation.d.ts +3 -2
  361. package/dist/types/reader/mutations/use-site-delivery-frequency-mutation.d.ts.map +1 -1
  362. package/dist/types/reader/mutations/use-site-email-me-new-comments-mutation.d.ts +3 -2
  363. package/dist/types/reader/mutations/use-site-email-me-new-comments-mutation.d.ts.map +1 -1
  364. package/dist/types/reader/mutations/use-site-email-me-new-posts-mutation.d.ts +3 -2
  365. package/dist/types/reader/mutations/use-site-email-me-new-posts-mutation.d.ts.map +1 -1
  366. package/dist/types/reader/mutations/use-site-notify-me-of-new-posts-mutation.d.ts +3 -2
  367. package/dist/types/reader/mutations/use-site-notify-me-of-new-posts-mutation.d.ts.map +1 -1
  368. package/dist/types/reader/mutations/use-site-subscribe-mutation.d.ts +3 -2
  369. package/dist/types/reader/mutations/use-site-subscribe-mutation.d.ts.map +1 -1
  370. package/dist/types/reader/mutations/use-site-unsubscribe-mutation.d.ts +3 -2
  371. package/dist/types/reader/mutations/use-site-unsubscribe-mutation.d.ts.map +1 -1
  372. package/dist/types/reader/queries/index.d.ts +1 -5
  373. package/dist/types/reader/queries/index.d.ts.map +1 -1
  374. package/dist/types/reader/queries/use-pending-post-subscriptions-query.d.ts +75 -7
  375. package/dist/types/reader/queries/use-pending-post-subscriptions-query.d.ts.map +1 -1
  376. package/dist/types/reader/queries/use-pending-site-subscriptions-query.d.ts +75 -7
  377. package/dist/types/reader/queries/use-pending-site-subscriptions-query.d.ts.map +1 -1
  378. package/dist/types/reader/queries/use-post-subscriptions-query.d.ts +143 -13
  379. package/dist/types/reader/queries/use-post-subscriptions-query.d.ts.map +1 -1
  380. package/dist/types/reader/queries/use-site-subscriptions-query.d.ts +6 -135
  381. package/dist/types/reader/queries/use-site-subscriptions-query.d.ts.map +1 -1
  382. package/dist/types/reader/types/index.d.ts +32 -44
  383. package/dist/types/reader/types/index.d.ts.map +1 -1
  384. package/dist/types/shared-types.d.ts +11 -0
  385. package/dist/types/shared-types.d.ts.map +1 -1
  386. package/dist/types/site/actions.d.ts +1 -1
  387. package/dist/types/site/actions.d.ts.map +1 -1
  388. package/dist/types/site/queries/use-site-user-query.d.ts.map +1 -1
  389. package/dist/types/site/selectors.d.ts.map +1 -1
  390. package/dist/types/site/types.d.ts +5 -0
  391. package/dist/types/site/types.d.ts.map +1 -1
  392. package/dist/types/starter-designs-queries/types.d.ts +1 -1
  393. package/dist/types/starter-designs-queries/types.d.ts.map +1 -1
  394. package/dist/types/starter-designs-queries/use-starter-design-by-slug.d.ts +1 -1
  395. package/dist/types/starter-designs-queries/use-starter-design-by-slug.d.ts.map +1 -1
  396. package/dist/types/starter-designs-queries/use-starter-designs-query.d.ts +1 -1
  397. package/dist/types/starter-designs-queries/use-starter-designs-query.d.ts.map +1 -1
  398. package/dist/types/subscriber/index.d.ts +1 -1
  399. package/dist/types/subscriber/index.d.ts.map +1 -1
  400. package/dist/types/user/actions.d.ts +1 -1
  401. package/dist/types/user/reducer.d.ts +1 -1
  402. package/dist/types/user/resolvers.d.ts +2 -2
  403. package/dist/types/user/selectors.d.ts +2 -2
  404. package/dist/types/user/selectors.d.ts.map +1 -1
  405. package/dist/types/user/types.d.ts +2 -33
  406. package/dist/types/user/types.d.ts.map +1 -1
  407. package/dist/types/utils.d.ts +3 -0
  408. package/dist/types/utils.d.ts.map +1 -0
  409. package/dist/types/wpcom-plans-ui/actions.d.ts +1 -1
  410. package/dist/types/wpcom-plans-ui/index.d.ts +1 -1
  411. package/dist/types/wpcom-plans-ui/index.d.ts.map +1 -1
  412. package/dist/types/wpcom-request-controls/index.d.ts +1 -1
  413. package/dist/types/wpcom-request-controls/index.d.ts.map +1 -1
  414. package/dist/types/wpcom-request.d.ts +7 -0
  415. package/dist/types/wpcom-request.d.ts.map +1 -0
  416. package/package.json +26 -29
  417. package/src/add-ons/types.ts +1 -0
  418. package/src/agents-manager/actions.ts +151 -0
  419. package/src/agents-manager/constants.ts +1 -0
  420. package/src/agents-manager/index.ts +38 -0
  421. package/src/agents-manager/persist-state.ts +60 -0
  422. package/src/agents-manager/reducer.ts +106 -0
  423. package/src/agents-manager/resolvers.ts +87 -0
  424. package/src/agents-manager/selectors.ts +32 -0
  425. package/src/agents-manager/test/persist-state.test.ts +81 -0
  426. package/src/agents-manager/test/reducer.test.ts +69 -0
  427. package/src/agents-manager/types.ts +24 -0
  428. package/src/contextual-help/admin-sections.ts +2 -2
  429. package/src/help-center/actions.ts +139 -79
  430. package/src/help-center/constants.ts +1 -0
  431. package/src/help-center/index.ts +11 -32
  432. package/src/help-center/reducer.ts +55 -19
  433. package/src/help-center/resolvers.ts +47 -32
  434. package/src/help-center/selectors.ts +7 -2
  435. package/src/help-center/test/utils.ts +99 -0
  436. package/src/help-center/types.ts +23 -13
  437. package/src/help-center/utils.ts +156 -0
  438. package/src/index.ts +11 -4
  439. package/src/mutations/use-domains-bulk-actions-mutation.ts +1 -1
  440. package/src/newsletter-categories/index.ts +1 -1
  441. package/src/newsletter-categories/test/index.tsx +5 -2
  442. package/src/onboard/actions.ts +20 -3
  443. package/src/onboard/reducer.ts +38 -3
  444. package/src/onboard/selectors.ts +3 -0
  445. package/src/onboard/types.ts +1 -1
  446. package/src/plans/constants.ts +2 -0
  447. package/src/plans/hooks/test/use-pricing-meta-for-grid-plans.ts +120 -0
  448. package/src/plans/hooks/use-pricing-meta-for-grid-plans.ts +48 -18
  449. package/src/plans/index.ts +1 -0
  450. package/src/plans/queries/use-plans.ts +30 -2
  451. package/src/plans/queries/use-site-plans.ts +1 -1
  452. package/src/plans/resolvers.ts +0 -1
  453. package/src/plans/selectors.ts +9 -9
  454. package/src/plans/types.ts +6 -0
  455. package/src/products-list/queries/use-products.ts +1 -1
  456. package/src/products-list/resolvers.ts +1 -1
  457. package/src/products-list/selectors.ts +1 -1
  458. package/src/products-list/test/selectors.ts +2 -2
  459. package/src/purchases/lib/assembler.ts +20 -29
  460. package/src/purchases/queries/use-get-jetpack-transferred-license-purchases.tsx +1 -1
  461. package/src/purchases/queries/use-site-purchases.ts +2 -2
  462. package/src/purchases/types.ts +47 -116
  463. package/src/queries/use-all-domains-query.ts +3 -3
  464. package/src/queries/use-bulk-domain-update-status-query.ts +14 -115
  465. package/src/queries/use-happiness-engineers-query.ts +1 -1
  466. package/src/queries/use-launchpad.ts +1 -1
  467. package/src/queries/use-site-domains-query.ts +1 -1
  468. package/src/queries/use-site-intent.ts +1 -1
  469. package/src/queries/use-site-query.ts +1 -1
  470. package/src/reader/contexts/index.ts +0 -4
  471. package/src/reader/helpers/index.ts +3 -2
  472. package/src/reader/helpers/optimistic-update.ts +2 -1
  473. package/src/reader/index.ts +2 -4
  474. package/src/reader/mutations/test/use-site-subscription-mutations.test.tsx +208 -0
  475. package/src/reader/mutations/use-pending-site-confirm-mutation.ts +2 -2
  476. package/src/reader/mutations/use-site-delivery-frequency-mutation.ts +32 -36
  477. package/src/reader/mutations/use-site-email-me-new-comments-mutation.ts +10 -10
  478. package/src/reader/mutations/use-site-email-me-new-posts-mutation.ts +10 -10
  479. package/src/reader/mutations/use-site-notify-me-of-new-posts-mutation.ts +10 -10
  480. package/src/reader/mutations/use-site-subscribe-mutation.ts +21 -10
  481. package/src/reader/mutations/use-site-unsubscribe-mutation.ts +20 -10
  482. package/src/reader/queries/index.ts +4 -6
  483. package/src/reader/queries/test/use-site-subscriptions-query.tsx +158 -52
  484. package/src/reader/queries/use-site-subscriptions-query.ts +53 -55
  485. package/src/reader/types/index.ts +34 -48
  486. package/src/shared-types.ts +13 -0
  487. package/src/site/actions.ts +1 -1
  488. package/src/site/queries/use-site-features.ts +1 -1
  489. package/src/site/queries/use-site-media-storage.ts +1 -1
  490. package/src/site/queries/use-site-user-query.ts +1 -1
  491. package/src/site/queries/use-site.ts +1 -1
  492. package/src/site/resolvers.ts +1 -1
  493. package/src/site/selectors.ts +18 -10
  494. package/src/site/test/selectors.ts +3 -3
  495. package/src/site/types.ts +5 -0
  496. package/src/site-reset/test/use-site-reset-mutation.tsx +3 -4
  497. package/src/site-reset/use-site-reset-content-summary-query.ts +1 -1
  498. package/src/site-reset/use-site-reset-mutation.ts +1 -1
  499. package/src/site-reset/use-site-reset-status-query.ts +1 -1
  500. package/src/starter-designs-queries/types.ts +1 -1
  501. package/src/starter-designs-queries/use-starter-design-by-slug.ts +2 -2
  502. package/src/starter-designs-queries/use-starter-designs-query.ts +2 -2
  503. package/src/subscriber/actions.ts +1 -1
  504. package/src/templates/use-template.ts +1 -1
  505. package/src/user/types.ts +2 -38
  506. package/src/users/use-send-invites.ts +1 -1
  507. package/src/utils.ts +33 -0
  508. package/src/wpcom-request-controls/index.ts +2 -1
  509. package/src/wpcom-request.ts +26 -0
  510. package/dist/cjs/domain-suggestions/actions.js +0 -33
  511. package/dist/cjs/domain-suggestions/actions.js.map +0 -1
  512. package/dist/cjs/domain-suggestions/constants.js +0 -12
  513. package/dist/cjs/domain-suggestions/constants.js.map +0 -1
  514. package/dist/cjs/domain-suggestions/index.js +0 -25
  515. package/dist/cjs/domain-suggestions/index.js.map +0 -1
  516. package/dist/cjs/domain-suggestions/queries.js +0 -78
  517. package/dist/cjs/domain-suggestions/queries.js.map +0 -1
  518. package/dist/cjs/domain-suggestions/reducer.js +0 -65
  519. package/dist/cjs/domain-suggestions/reducer.js.map +0 -1
  520. package/dist/cjs/domain-suggestions/resolvers.js +0 -91
  521. package/dist/cjs/domain-suggestions/resolvers.js.map +0 -1
  522. package/dist/cjs/domain-suggestions/selectors.js +0 -58
  523. package/dist/cjs/domain-suggestions/selectors.js.map +0 -1
  524. package/dist/cjs/domain-suggestions/utils.js +0 -47
  525. package/dist/cjs/domain-suggestions/utils.js.map +0 -1
  526. package/dist/cjs/reader/contexts/unsubscribed-feeds-search.js +0 -26
  527. package/dist/cjs/reader/contexts/unsubscribed-feeds-search.js.map +0 -1
  528. package/dist/cjs/reader/queries/use-read-feed-query.js +0 -21
  529. package/dist/cjs/reader/queries/use-read-feed-query.js.map +0 -1
  530. package/dist/cjs/reader/queries/use-read-feed-search-query.js +0 -39
  531. package/dist/cjs/reader/queries/use-read-feed-search-query.js.map +0 -1
  532. package/dist/cjs/reader/queries/use-read-feed-site-query.js +0 -26
  533. package/dist/cjs/reader/queries/use-read-feed-site-query.js.map +0 -1
  534. package/dist/esm/domain-suggestions/actions.js +0 -25
  535. package/dist/esm/domain-suggestions/actions.js.map +0 -1
  536. package/dist/esm/domain-suggestions/constants.js +0 -9
  537. package/dist/esm/domain-suggestions/constants.js.map +0 -1
  538. package/dist/esm/domain-suggestions/index.js +0 -20
  539. package/dist/esm/domain-suggestions/index.js.map +0 -1
  540. package/dist/esm/domain-suggestions/queries.js +0 -72
  541. package/dist/esm/domain-suggestions/queries.js.map +0 -1
  542. package/dist/esm/domain-suggestions/reducer.js +0 -61
  543. package/dist/esm/domain-suggestions/reducer.js.map +0 -1
  544. package/dist/esm/domain-suggestions/resolvers.js +0 -84
  545. package/dist/esm/domain-suggestions/resolvers.js.map +0 -1
  546. package/dist/esm/domain-suggestions/selectors.js +0 -47
  547. package/dist/esm/domain-suggestions/selectors.js.map +0 -1
  548. package/dist/esm/domain-suggestions/utils.js +0 -41
  549. package/dist/esm/domain-suggestions/utils.js.map +0 -1
  550. package/dist/esm/reader/contexts/unsubscribed-feeds-search.js +0 -20
  551. package/dist/esm/reader/contexts/unsubscribed-feeds-search.js.map +0 -1
  552. package/dist/esm/reader/queries/use-read-feed-query.js +0 -18
  553. package/dist/esm/reader/queries/use-read-feed-query.js.map +0 -1
  554. package/dist/esm/reader/queries/use-read-feed-search-query.js +0 -35
  555. package/dist/esm/reader/queries/use-read-feed-search-query.js.map +0 -1
  556. package/dist/esm/reader/queries/use-read-feed-site-query.js +0 -23
  557. package/dist/esm/reader/queries/use-read-feed-site-query.js.map +0 -1
  558. package/dist/types/domain-suggestions/actions.d.ts +0 -27
  559. package/dist/types/domain-suggestions/actions.d.ts.map +0 -1
  560. package/dist/types/domain-suggestions/constants.d.ts +0 -8
  561. package/dist/types/domain-suggestions/constants.d.ts.map +0 -1
  562. package/dist/types/domain-suggestions/index.d.ts +0 -10
  563. package/dist/types/domain-suggestions/index.d.ts.map +0 -1
  564. package/dist/types/domain-suggestions/queries.d.ts +0 -323
  565. package/dist/types/domain-suggestions/queries.d.ts.map +0 -1
  566. package/dist/types/domain-suggestions/reducer.d.ts +0 -16
  567. package/dist/types/domain-suggestions/reducer.d.ts.map +0 -1
  568. package/dist/types/domain-suggestions/resolvers.d.ts +0 -39
  569. package/dist/types/domain-suggestions/resolvers.d.ts.map +0 -1
  570. package/dist/types/domain-suggestions/selectors.d.ts +0 -18
  571. package/dist/types/domain-suggestions/selectors.d.ts.map +0 -1
  572. package/dist/types/domain-suggestions/types.d.ts +0 -206
  573. package/dist/types/domain-suggestions/types.d.ts.map +0 -1
  574. package/dist/types/domain-suggestions/utils.d.ts +0 -23
  575. package/dist/types/domain-suggestions/utils.d.ts.map +0 -1
  576. package/dist/types/reader/contexts/unsubscribed-feeds-search.d.ts +0 -12
  577. package/dist/types/reader/contexts/unsubscribed-feeds-search.d.ts.map +0 -1
  578. package/dist/types/reader/queries/use-read-feed-query.d.ts +0 -28
  579. package/dist/types/reader/queries/use-read-feed-query.d.ts.map +0 -1
  580. package/dist/types/reader/queries/use-read-feed-search-query.d.ts +0 -34
  581. package/dist/types/reader/queries/use-read-feed-search-query.d.ts.map +0 -1
  582. package/dist/types/reader/queries/use-read-feed-site-query.d.ts +0 -15
  583. package/dist/types/reader/queries/use-read-feed-site-query.d.ts.map +0 -1
  584. package/src/domain-suggestions/actions.ts +0 -51
  585. package/src/domain-suggestions/constants.ts +0 -8
  586. package/src/domain-suggestions/index.ts +0 -22
  587. package/src/domain-suggestions/queries.ts +0 -85
  588. package/src/domain-suggestions/reducer.ts +0 -77
  589. package/src/domain-suggestions/resolvers.ts +0 -110
  590. package/src/domain-suggestions/selectors.ts +0 -86
  591. package/src/domain-suggestions/test/reducer.ts +0 -105
  592. package/src/domain-suggestions/test/selectors.ts +0 -127
  593. package/src/domain-suggestions/types.ts +0 -254
  594. package/src/domain-suggestions/utils.ts +0 -50
  595. package/src/reader/contexts/unsubscribed-feeds-search.tsx +0 -35
  596. package/src/reader/queries/test/use-read-feed-search-query.tsx +0 -55
  597. package/src/reader/queries/use-read-feed-query.ts +0 -45
  598. package/src/reader/queries/use-read-feed-search-query.ts +0 -72
  599. package/src/reader/queries/use-read-feed-site-query.ts +0 -35
  600. /package/dist/cjs/{domain-suggestions → agents-manager}/types.js +0 -0
  601. /package/dist/esm/{domain-suggestions → agents-manager}/types.js +0 -0
@@ -58,6 +58,12 @@ interface Props {
58
58
  * from the final price.
59
59
  */
60
60
  reflectStorageSelectionInPlanPrices?: boolean;
61
+
62
+ /**
63
+ * Renewal-pricing experiment flag. When falsy (non-treatment), the current plan's
64
+ * headline uses the renewal price, not an active intro price.
65
+ */
66
+ showBillingDescriptionForIncreasedRenewalPrice?: string | null;
61
67
  }
62
68
 
63
69
  function getTotalPrice( planPrice: number | null | undefined, addOnPrice = 0 ): number | null {
@@ -81,6 +87,7 @@ const usePricingMetaForGridPlans = ( {
81
87
  useCheckPlanAvailabilityForPurchase,
82
88
  withProratedDiscounts,
83
89
  reflectStorageSelectionInPlanPrices = false,
90
+ showBillingDescriptionForIncreasedRenewalPrice,
84
91
  }: Props ): { [ planSlug: string ]: Plans.PricingMetaForGridPlan } | null => {
85
92
  // plans - should have a definition for all plans, being the main source of API data
86
93
  const plans = Plans.usePlans( { coupon } );
@@ -117,6 +124,7 @@ const usePricingMetaForGridPlans = ( {
117
124
  discountedPrice: Plans.PlanPricing[ 'discountedPrice' ];
118
125
  currencyCode: Plans.PlanPricing[ 'currencyCode' ];
119
126
  introOffer: Plans.PlanPricing[ 'introOffer' ];
127
+ renewalPrice?: Plans.PlanPricing[ 'originalPrice' ];
120
128
  };
121
129
  }
122
130
  | null = null;
@@ -185,18 +193,38 @@ const usePricingMetaForGridPlans = ( {
185
193
  let fullPrice = sitePlan?.pricing.originalPrice.full;
186
194
 
187
195
  /**
188
- * Ensure the spotlight (current) plan shows the price with which the plan was purchased.
196
+ * Spotlight (current) plan headline. Only the renewal-pricing experiment treatment shows
197
+ * the active intro price (with a separate "renews at" line); everyone else sees the renewal
198
+ * price, so the headline is never lower than what they'll actually pay.
189
199
  */
200
+ let renewalPrice: Plans.PlanPricing[ 'originalPrice' ] | undefined;
201
+
190
202
  if ( purchasedPlan ) {
203
+ const showIntroOfferHeadline =
204
+ !! showBillingDescriptionForIncreasedRenewalPrice &&
205
+ purchasedPlan.introductoryOffer?.isWithinPeriod;
206
+ const currentTermPrice = showIntroOfferHeadline
207
+ ? purchasedPlan.introductoryOffer!.costPerIntervalInteger
208
+ : purchasedPlan.priceInteger;
191
209
  const isMonthly = purchasedPlan.billPeriodDays === PLAN_MONTHLY_PERIOD;
192
210
 
193
- if ( isMonthly && monthlyPrice !== purchasedPlan.priceInteger ) {
194
- monthlyPrice = purchasedPlan.priceInteger;
195
- fullPrice = parseFloat( ( purchasedPlan.priceInteger * 12 ).toFixed( 2 ) );
196
- } else if ( fullPrice !== purchasedPlan.priceInteger ) {
211
+ if ( isMonthly && monthlyPrice !== currentTermPrice ) {
212
+ monthlyPrice = currentTermPrice;
213
+ fullPrice = parseFloat( ( currentTermPrice * 12 ).toFixed( 2 ) );
214
+ } else if ( fullPrice !== currentTermPrice ) {
197
215
  const term = getTermFromDuration( purchasedPlan.billPeriodDays ) || '';
198
- monthlyPrice = calculateMonthlyPrice( term, purchasedPlan.priceInteger );
199
- fullPrice = purchasedPlan.priceInteger;
216
+ monthlyPrice = calculateMonthlyPrice( term, currentTermPrice );
217
+ fullPrice = currentTermPrice;
218
+ }
219
+
220
+ if ( showIntroOfferHeadline ) {
221
+ const renewalTerm = getTermFromDuration( purchasedPlan.billPeriodDays ) || '';
222
+ renewalPrice = {
223
+ monthly: isMonthly
224
+ ? purchasedPlan.priceInteger
225
+ : calculateMonthlyPrice( renewalTerm, purchasedPlan.priceInteger ),
226
+ full: purchasedPlan.priceInteger,
227
+ };
200
228
  }
201
229
  }
202
230
 
@@ -214,6 +242,7 @@ const usePricingMetaForGridPlans = ( {
214
242
  currencyCode: purchasedPlan
215
243
  ? purchasedPlan?.currencyCode
216
244
  : plan?.pricing?.currencyCode,
245
+ ...( renewalPrice && { renewalPrice } ),
217
246
  },
218
247
  ];
219
248
  }
@@ -234,13 +263,13 @@ const usePricingMetaForGridPlans = ( {
234
263
  // If there is, however, a sale coupon, show the discounted price
235
264
  // without proration. This isn't ideal, but is intentional. Because of
236
265
  // this, the price will differ between the plans grid and checkout screen.
237
- const costOverrideCode = sitePlan?.pricing?.costOverrides?.[ 0 ]?.overrideCode;
238
- const hasProratedCostOverride =
239
- costOverrideCode &&
240
- [
241
- COST_OVERRIDE_REASONS.RECENT_PLAN_PRORATION,
242
- COST_OVERRIDE_REASONS.RECENT_DOMAIN_PRORATION,
243
- ].includes( costOverrideCode );
266
+ const hasProratedCostOverride = sitePlan?.pricing?.costOverrides?.some(
267
+ ( { overrideCode } ) =>
268
+ [
269
+ COST_OVERRIDE_REASONS.RECENT_PLAN_PRORATION,
270
+ COST_OVERRIDE_REASONS.RECENT_DOMAIN_PRORATION,
271
+ ].includes( overrideCode )
272
+ );
244
273
  if (
245
274
  ! sitePlan?.pricing?.hasSaleCoupon &&
246
275
  ! withProratedDiscounts &&
@@ -258,7 +287,7 @@ const usePricingMetaForGridPlans = ( {
258
287
  ...( sitePlan?.pricing.introOffer && {
259
288
  introOffer: {
260
289
  ...sitePlan?.pricing.introOffer,
261
- rawPrice: introOfferPrice,
290
+ ...( introOfferPrice && { rawPrice: introOfferPrice } ),
262
291
  },
263
292
  } ),
264
293
  },
@@ -282,7 +311,7 @@ const usePricingMetaForGridPlans = ( {
282
311
  ...( sitePlan?.pricing.introOffer && {
283
312
  introOffer: {
284
313
  ...sitePlan?.pricing.introOffer,
285
- rawPrice: introOfferPrice,
314
+ ...( introOfferPrice && { rawPrice: introOfferPrice } ),
286
315
  },
287
316
  } ),
288
317
  },
@@ -314,7 +343,7 @@ const usePricingMetaForGridPlans = ( {
314
343
  ...( plan?.pricing.introOffer && {
315
344
  introOffer: {
316
345
  ...plan?.pricing.introOffer,
317
- rawPrice: introOfferPrice,
346
+ ...( introOfferPrice && { rawPrice: introOfferPrice } ),
318
347
  },
319
348
  } ),
320
349
  },
@@ -342,7 +371,7 @@ const usePricingMetaForGridPlans = ( {
342
371
  ...( plan?.pricing.introOffer && {
343
372
  introOffer: {
344
373
  ...plan?.pricing.introOffer,
345
- rawPrice: introOfferPrice,
374
+ ...( introOfferPrice && { rawPrice: introOfferPrice } ),
346
375
  },
347
376
  } ),
348
377
  },
@@ -366,6 +395,7 @@ const usePricingMetaForGridPlans = ( {
366
395
  currencyCode: planPrices?.[ planSlug ]?.currencyCode,
367
396
  expiry: sitePlans.data?.[ planSlug ]?.expiry,
368
397
  introOffer: planPrices?.[ planSlug ]?.introOffer,
398
+ renewalPrice: planPrices?.[ planSlug ]?.renewalPrice,
369
399
  },
370
400
  } ),
371
401
  {} as { [ planSlug in PlanSlug ]?: Plans.PricingMetaForGridPlan }
@@ -47,6 +47,7 @@ export {
47
47
  TIMELESS_PLAN_BUSINESS,
48
48
  TIMELESS_PLAN_ECOMMERCE,
49
49
  FREE_PLAN_PRODUCT_ID,
50
+ COST_OVERRIDE_REASONS,
50
51
  } from './constants';
51
52
 
52
53
  let isRegistered = false;
@@ -1,7 +1,8 @@
1
+ import { isEnabled } from '@automattic/calypso-config';
1
2
  import { calculateMonthlyPriceForPlan } from '@automattic/calypso-products';
2
3
  import { useLocale } from '@automattic/i18n-utils';
3
4
  import { useQuery, type UseQueryResult } from '@tanstack/react-query';
4
- import wpcomRequest from 'wpcom-proxy-request';
5
+ import wpcomRequest from '../../wpcom-request';
5
6
  import unpackIntroOffer from './lib/unpack-intro-offer';
6
7
  import useQueryKeysFactory from './lib/use-query-keys-factory';
7
8
  import type { PricedAPIPlan, PlanNext } from '../types';
@@ -10,6 +11,28 @@ interface PlansIndex {
10
11
  [ planSlug: string ]: PlanNext;
11
12
  }
12
13
 
14
+ type RequestFunction = ( params: {
15
+ path: string;
16
+ apiVersion: string;
17
+ query: string;
18
+ } ) => Promise< PricedAPIPlan[] >;
19
+
20
+ /**
21
+ * Request function for Jetpack that bypasses proxy and goes directly to WordPress.com
22
+ */
23
+ const jetpackRequestFunction: RequestFunction = async ( params ) => {
24
+ const queryParams = params.query ? `?${ params.query }` : '';
25
+ const url = `https://public-api.wordpress.com/rest/v${ params.apiVersion }${ params.path }${ queryParams }`;
26
+ const response = await fetch( url, {
27
+ method: 'GET',
28
+ credentials: 'omit', // Don't send cookies to avoid CORS issues
29
+ } );
30
+ if ( ! response.ok ) {
31
+ throw new Error( `API request failed: ${ response.status }` );
32
+ }
33
+ return response.json();
34
+ };
35
+
13
36
  /**
14
37
  * Plans from `/plans` endpoint, transformed into a map of planSlug => PlanNext
15
38
  */
@@ -27,10 +50,15 @@ function usePlans( {
27
50
  coupon && params.append( 'coupon_code', coupon );
28
51
  params.append( 'locale', locale );
29
52
 
53
+ // Auto-detect Jetpack context and use appropriate request function
54
+ const isJetpack = isEnabled( 'is_running_in_jetpack_site' );
55
+
56
+ const requestFn = isJetpack ? jetpackRequestFunction : wpcomRequest;
57
+
30
58
  return useQuery( {
31
59
  queryKey: queryKeys.plans( coupon ),
32
60
  queryFn: async (): Promise< PlansIndex > => {
33
- const data: PricedAPIPlan[] = await wpcomRequest( {
61
+ const data: PricedAPIPlan[] = await requestFn( {
34
62
  path: '/plans',
35
63
  apiVersion: '1.5',
36
64
  query: params.toString(),
@@ -1,6 +1,6 @@
1
1
  import { calculateMonthlyPriceForPlan } from '@automattic/calypso-products';
2
2
  import { useQuery, type UseQueryResult } from '@tanstack/react-query';
3
- import wpcomRequest from 'wpcom-proxy-request';
3
+ import wpcomRequest from '../../wpcom-request';
4
4
  import unpackCostOverrides from './lib/unpack-cost-overrides';
5
5
  import unpackIntroOffer from './lib/unpack-intro-offer';
6
6
  import useQueryKeysFactory from './lib/use-query-keys-factory';
@@ -142,7 +142,6 @@ function normalizePlanProducts(
142
142
  periodAgnosticSlug: periodAgnosticPlan.periodAgnosticSlug,
143
143
  storeSlug: planProduct.product_slug,
144
144
  rawPrice: planProduct.raw_price,
145
- // Not all plans returned from /plans have a `path_slug` (e.g. monthly plans don't have)
146
145
  pathSlug: planProduct.path_slug,
147
146
  price:
148
147
  planProduct?.bill_period === MONTHLY_PLAN_BILLING_PERIOD || planProduct.raw_price === 0
@@ -38,7 +38,7 @@ export const getPlanByProductId = (
38
38
  return undefined;
39
39
  }
40
40
 
41
- return ( select( STORE_KEY ) as PlansSelect )
41
+ return ( select( STORE_KEY ) as unknown as PlansSelect )
42
42
  .getSupportedPlans( locale )
43
43
  .find( ( plan: Plan ) => plan.productIds.indexOf( productId ) > -1 );
44
44
  };
@@ -51,7 +51,7 @@ export const getPlanProductById = (
51
51
  return undefined;
52
52
  }
53
53
 
54
- return ( select( STORE_KEY ) as PlansSelect )
54
+ return ( select( STORE_KEY ) as unknown as PlansSelect )
55
55
  .getPlansProducts()
56
56
  .find( ( product: PlanProduct ) => product.productId === productId );
57
57
  };
@@ -64,19 +64,19 @@ export const getPlanByPeriodAgnosticSlug = (
64
64
  if ( ! slug ) {
65
65
  return undefined;
66
66
  }
67
- return ( select( STORE_KEY ) as PlansSelect )
67
+ return ( select( STORE_KEY ) as unknown as PlansSelect )
68
68
  .getSupportedPlans( locale )
69
69
  .find( ( plan: Plan ) => plan.periodAgnosticSlug === slug );
70
70
  };
71
71
 
72
72
  export const getDefaultPaidPlan = ( _: State, locale: string ): Plan | undefined => {
73
- return ( select( STORE_KEY ) as PlansSelect )
73
+ return ( select( STORE_KEY ) as unknown as PlansSelect )
74
74
  .getSupportedPlans( locale )
75
75
  .find( ( plan: Plan ) => plan.periodAgnosticSlug === DEFAULT_PAID_PLAN );
76
76
  };
77
77
 
78
78
  export const getDefaultFreePlan = ( _: State, locale: string ): Plan | undefined => {
79
- return ( select( STORE_KEY ) as PlansSelect )
79
+ return ( select( STORE_KEY ) as unknown as PlansSelect )
80
80
  .getSupportedPlans( locale )
81
81
  .find( ( plan: Plan ) => plan.periodAgnosticSlug === TIMELESS_PLAN_FREE );
82
82
  };
@@ -98,7 +98,7 @@ export const getPrices = ( _state: State, _locale: string ): Record< StorePlanSl
98
98
  deprecate( 'getPrices', {
99
99
  alternative: 'getPlanProduct().price',
100
100
  } );
101
- return ( select( STORE_KEY ) as PlansSelect ).getPlansProducts().reduce(
101
+ return ( select( STORE_KEY ) as unknown as PlansSelect ).getPlansProducts().reduce(
102
102
  ( prices: Record< StorePlanSlug, string >, plan: PlanProduct ) => {
103
103
  prices[ plan.storeSlug ] = plan.price;
104
104
  return prices;
@@ -116,7 +116,7 @@ export const getPlanByPath = (
116
116
  return undefined;
117
117
  }
118
118
 
119
- const planProduct = ( select( STORE_KEY ) as PlansSelect )
119
+ const planProduct = ( select( STORE_KEY ) as unknown as PlansSelect )
120
120
  .getPlansProducts()
121
121
  .find( ( product: PlanProduct ) => product.pathSlug === path );
122
122
 
@@ -124,7 +124,7 @@ export const getPlanByPath = (
124
124
  return undefined;
125
125
  }
126
126
 
127
- return ( select( STORE_KEY ) as PlansSelect )
127
+ return ( select( STORE_KEY ) as unknown as PlansSelect )
128
128
  .getSupportedPlans( locale )
129
129
  .find( ( plan: Plan ) => plan.periodAgnosticSlug === planProduct.periodAgnosticSlug );
130
130
  };
@@ -138,7 +138,7 @@ export const getPlanProduct = (
138
138
  return undefined;
139
139
  }
140
140
 
141
- return ( select( STORE_KEY ) as PlansSelect )
141
+ return ( select( STORE_KEY ) as unknown as PlansSelect )
142
142
  .getPlansProducts()
143
143
  .find( ( product: PlanProduct ) => {
144
144
  const matchesSlug = product.periodAgnosticSlug === periodAgnosticSlug;
@@ -146,6 +146,12 @@ export interface PricingMetaForGridPlan {
146
146
  */
147
147
  introOffer?: PlanPricing[ 'introOffer' ];
148
148
  expiry?: SitePlan[ 'expiry' ];
149
+ /**
150
+ * The renewal price for the current plan when it differs from originalPrice
151
+ * (e.g. when the current billing term has an active intro offer).
152
+ * Used by renewal pricing text to show what the plan will cost after the offer ends.
153
+ */
154
+ renewalPrice?: PlanPricing[ 'originalPrice' ];
149
155
  }
150
156
 
151
157
  export interface SitePlan {
@@ -1,7 +1,7 @@
1
1
  import { useLocale } from '@automattic/i18n-utils';
2
2
  import { useQuery, type UseQueryResult } from '@tanstack/react-query';
3
- import wpcomRequest from 'wpcom-proxy-request';
4
3
  import * as ProductsList from '../../products-list';
4
+ import wpcomRequest from '../../wpcom-request';
5
5
  import useQueryKeysFactory from './lib/use-query-keys-factory';
6
6
  import type { StoreProductSlug, Product, RawAPIProductsList } from '../types';
7
7
 
@@ -1,4 +1,4 @@
1
- import wpcomRequest from 'wpcom-proxy-request';
1
+ import wpcomRequest from '../wpcom-request';
2
2
  import { RawAPIProductsList, ProductsListFailure, Dispatch } from './types';
3
3
 
4
4
  /**
@@ -14,7 +14,7 @@ export const getProductBySlug = ( _state: State, slug: string ) => {
14
14
  return undefined;
15
15
  }
16
16
  const products = (
17
- select( STORE_KEY ) as { getProductsList: () => RawAPIProductsList | undefined }
17
+ select( STORE_KEY ) as unknown as { getProductsList: () => RawAPIProductsList | undefined }
18
18
  ).getProductsList();
19
19
 
20
20
  if ( ! products ) {
@@ -6,10 +6,10 @@
6
6
  * @jest-environment jsdom
7
7
  */
8
8
  import { select, subscribe } from '@wordpress/data';
9
- import wpcomRequest from 'wpcom-proxy-request';
10
9
  import { store } from '../';
10
+ import wpcomRequest from '../../wpcom-request';
11
11
 
12
- jest.mock( 'wpcom-proxy-request', () => ( {
12
+ jest.mock( '../../wpcom-request', () => ( {
13
13
  __esModule: true,
14
14
  default: jest.fn(),
15
15
  } ) );
@@ -1,11 +1,14 @@
1
1
  import { snakeToCamelCase } from '@automattic/js-utils';
2
- import type { PurchasePriceTier, Purchase, RawPurchase, RawPurchaseCreditCard } from '../types';
2
+ import type { PurchasePriceTier, Purchase, RawPurchase } from '../types';
3
3
 
4
- export function createPurchaseObject( purchase: RawPurchase | RawPurchaseCreditCard ): Purchase {
4
+ export function createPurchaseObject( purchase: RawPurchase ): Purchase {
5
5
  const object: Purchase = {
6
6
  id: Number( purchase.ID ),
7
- active: Boolean( purchase.active ),
8
7
  amount: Number( purchase.amount ),
8
+ advertisedTotalUploadSpaceInGb:
9
+ purchase.advertised_total_upload_space_in_gb == null
10
+ ? null
11
+ : Number( purchase.advertised_total_upload_space_in_gb ),
9
12
  attachedToPurchaseId: Number( purchase.attached_to_purchase_id ),
10
13
  autoRenewCouponCode: purchase.auto_renew_coupon_code,
11
14
  autoRenewCouponDiscountPercentage: Number( purchase.auto_renew_coupon_discount_percentage ),
@@ -16,20 +19,15 @@ export function createPurchaseObject( purchase: RawPurchase | RawPurchaseCreditC
16
19
  canDisableAutoRenew: Boolean( purchase.can_disable_auto_renew ),
17
20
  canReenableAutoRenewal: Boolean( purchase.can_reenable_auto_renewal ),
18
21
  canExplicitRenew: Boolean( purchase.can_explicit_renew ),
19
- costToUnbundle: purchase.cost_to_unbundle
20
- ? Number( purchase.cost_to_unbundle )
21
- : Number( purchase.amount ),
22
- costToUnbundleText: purchase.cost_to_unbundle_display
23
- ? purchase.cost_to_unbundle_display
24
- : purchase.price_text,
22
+ costToUnbundleText: purchase.cost_to_unbundle_display ?? '',
25
23
  currencyCode: purchase.currency_code,
26
24
  currencySymbol: purchase.currency_symbol,
27
25
  description: purchase.description,
28
26
  domain: purchase.domain,
29
27
  domainRegistrationAgreementUrl: purchase.domain_registration_agreement_url || null,
30
- error: null,
31
28
  blogCreatedDate: purchase.blog_created_date,
32
29
  expiryDate: purchase.expiry_date,
30
+ paymentExpiryDate: purchase.payment_expiry_date,
33
31
  expiryStatus: snakeToCamelCase( purchase.expiry_status ),
34
32
  iapPurchaseManagementLink: purchase.iap_purchase_management_link,
35
33
  includedDomain: purchase.included_domain,
@@ -37,6 +35,7 @@ export function createPurchaseObject( purchase: RawPurchase | RawPurchaseCreditC
37
35
  introductoryOffer: purchase.introductory_offer
38
36
  ? {
39
37
  costPerInterval: Number( purchase.introductory_offer.cost_per_interval ),
38
+ costPerIntervalInteger: Number( purchase.introductory_offer.cost_per_interval_integer ),
40
39
  endDate: String( purchase.introductory_offer.end_date ),
41
40
  intervalCount: Number( purchase.introductory_offer.interval_count ),
42
41
  intervalUnit: String( purchase.introductory_offer.interval_unit ),
@@ -62,8 +61,9 @@ export function createPurchaseObject( purchase: RawPurchase | RawPurchaseCreditC
62
61
  isHundredYearDomain: Boolean( purchase.is_hundred_year_domain ),
63
62
  isLocked: Boolean( purchase.is_locked ),
64
63
  isInAppPurchase: Boolean( purchase.is_iap_purchase ),
65
- isRechargeable: Boolean( purchase.is_rechargable ),
64
+ isRechargeable: Boolean( purchase.is_rechargeable ),
66
65
  isRefundable: Boolean( purchase.is_refundable ),
66
+ isWithinInitialRefundWindow: Boolean( purchase.is_within_initial_refund_window ),
67
67
  isRenewable: Boolean( purchase.is_renewable ),
68
68
  isRenewal: Boolean( purchase.is_renewal ),
69
69
  isWooExpressTrial: Boolean( purchase.is_woo_express_trial ),
@@ -117,26 +117,21 @@ export function createPurchaseObject( purchase: RawPurchase | RawPurchaseCreditC
117
117
  siteSlug: purchase.site_slug,
118
118
  subscribedDate: purchase.subscribed_date,
119
119
  subscriptionStatus: purchase.subscription_status,
120
- tagLine: purchase.tag_line,
121
- taxAmount: purchase.tax_amount,
122
- taxText: purchase.tax_text,
123
120
  purchaseRenewalQuantity: purchase.renewal_price_tier_usage_quantity || null,
124
121
  userId: Number( purchase.user_id ),
125
- isAutoRenewEnabled: parseInt( purchase.auto_renew ?? '' ) === 1,
122
+ isAutoRenewEnabled: purchase.is_auto_renew_enabled,
123
+ isJetpackPlanOrProduct: purchase.is_jetpack_plan_or_product,
124
+ isAttachedToHoldingSite: Boolean( purchase.is_attached_to_holding_site ),
126
125
  };
127
126
 
128
- if ( purchase.purchaser_id ) {
129
- object.purchaserId = Number( purchase.purchaser_id );
130
- }
131
-
132
127
  if ( isCreditCardPurchase( purchase ) ) {
133
128
  object.payment.creditCard = {
134
129
  id: Number( purchase.payment_card_id ),
135
- type: purchase.payment_card_type,
130
+ type: purchase.payment_card_type ?? '',
136
131
  displayBrand: purchase.payment_card_display_brand,
137
- processor: purchase.payment_card_processor,
138
- number: purchase.payment_details,
139
- expiryDate: purchase.payment_expiry,
132
+ processor: purchase.payment_card_processor ?? '',
133
+ number: purchase.payment_details ?? '',
134
+ expiryDate: purchase.payment_expiry ?? '',
140
135
  };
141
136
  }
142
137
 
@@ -147,15 +142,11 @@ export function createPurchaseObject( purchase: RawPurchase | RawPurchaseCreditC
147
142
  return object;
148
143
  }
149
144
 
150
- function isCreditCardPurchase(
151
- purchase: RawPurchase | RawPurchaseCreditCard
152
- ): purchase is RawPurchaseCreditCard {
145
+ function isCreditCardPurchase( purchase: RawPurchase ): boolean {
153
146
  return purchase.payment_type === 'credit_card';
154
147
  }
155
148
 
156
- export function createPurchasesArray(
157
- dataTransferObject: undefined | ( RawPurchase | RawPurchaseCreditCard )[]
158
- ): Purchase[] {
149
+ export function createPurchasesArray( dataTransferObject: undefined | RawPurchase[] ): Purchase[] {
159
150
  if ( ! Array.isArray( dataTransferObject ) ) {
160
151
  return [];
161
152
  }
@@ -1,5 +1,5 @@
1
1
  import { useQuery } from '@tanstack/react-query';
2
- import wpcomRequest from 'wpcom-proxy-request';
2
+ import wpcomRequest from '../../wpcom-request';
3
3
  import { createPurchaseObject } from '../lib/assembler';
4
4
  import useQueryKeysFactory from './lib/use-query-keys-factory';
5
5
  import type { RawPurchase, Purchase } from '../types';
@@ -1,5 +1,5 @@
1
1
  import { useQuery } from '@tanstack/react-query';
2
- import wpcomRequest from 'wpcom-proxy-request';
2
+ import wpcomRequest from '../../wpcom-request';
3
3
  import { createPurchaseObject } from '../lib/assembler';
4
4
  import useQueryKeysFactory from './lib/use-query-keys-factory';
5
5
  import type { RawPurchase, Purchase } from '../types';
@@ -21,7 +21,7 @@ export function getUseSitePurchasesOptions(
21
21
  queryFn: async (): Promise< PurchasesIndex > => {
22
22
  const purchases: RawPurchase[] = await wpcomRequest( {
23
23
  path: `/sites/${ encodeURIComponent( siteId as string ) }/purchases`,
24
- apiVersion: '1.1',
24
+ apiVersion: '1.2',
25
25
  } );
26
26
 
27
27
  return Object.fromEntries(