@jetshop/core 6.3.8-alpha.33 → 6.3.9-alpha.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 (655) hide show
  1. package/boot/server/IntervalQuery.test.js +276 -0
  2. package/boot/server/PersistedApolloClient.test.js +234 -0
  3. package/boot/server/createApolloServer.test.js +114 -0
  4. package/boot/server/getPreloadAssets.test.js +133 -0
  5. package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +201 -0
  6. package/boot/server/persistedQueries/__tests__/mockQuery.gql +6 -0
  7. package/boot/server/saleSource.test.js +39 -0
  8. package/global.d.ts +1 -0
  9. package/hooks/usePreconnectLinks.test.js +4 -0
  10. package/package.json +6 -5
  11. package/ChannelHandler/ChannelHandler.d.ts +0 -53
  12. package/ChannelHandler/ChannelHandler.js +0 -114
  13. package/ChannelHandler/ChannelHandler.js.map +0 -1
  14. package/ChannelHandler/channelUtils.d.ts +0 -73
  15. package/ChannelHandler/channelUtils.js +0 -313
  16. package/ChannelHandler/channelUtils.js.map +0 -1
  17. package/ChannelHandler/redirectUtils.d.ts +0 -4
  18. package/ChannelHandler/redirectUtils.js +0 -53
  19. package/ChannelHandler/redirectUtils.js.map +0 -1
  20. package/analytics/Analytics.d.ts +0 -18
  21. package/analytics/Analytics.js +0 -57
  22. package/analytics/Analytics.js.map +0 -1
  23. package/analytics/AnalyticsProvider.d.ts +0 -54
  24. package/analytics/AnalyticsProvider.js +0 -229
  25. package/analytics/AnalyticsProvider.js.map +0 -1
  26. package/analytics/deprecatedTracking.d.ts +0 -17
  27. package/analytics/deprecatedTracking.js +0 -33
  28. package/analytics/deprecatedTracking.js.map +0 -1
  29. package/analytics/integrations/ga4.d.ts +0 -28
  30. package/analytics/integrations/ga4.js +0 -189
  31. package/analytics/integrations/ga4.js.map +0 -1
  32. package/analytics/integrations/gtag/gtag.d.ts +0 -8
  33. package/analytics/integrations/gtag/gtag.js +0 -209
  34. package/analytics/integrations/gtag/gtag.js.map +0 -1
  35. package/analytics/integrations/gtag/index.d.ts +0 -1
  36. package/analytics/integrations/gtag/index.js +0 -2
  37. package/analytics/integrations/gtag/index.js.map +0 -1
  38. package/analytics/integrations/gtm/gtm.d.ts +0 -12
  39. package/analytics/integrations/gtm/gtm.js +0 -227
  40. package/analytics/integrations/gtm/gtm.js.map +0 -1
  41. package/analytics/integrations/gtm/index.d.ts +0 -1
  42. package/analytics/integrations/gtm/index.js +0 -2
  43. package/analytics/integrations/gtm/index.js.map +0 -1
  44. package/analytics/integrations/gtm/referrerModifier.d.ts +0 -1
  45. package/analytics/integrations/gtm/referrerModifier.js +0 -62
  46. package/analytics/integrations/gtm/referrerModifier.js.map +0 -1
  47. package/analytics/integrations/releware/index.d.ts +0 -3
  48. package/analytics/integrations/releware/index.js +0 -39
  49. package/analytics/integrations/releware/index.js.map +0 -1
  50. package/analytics/integrations/unslugify.d.ts +0 -1
  51. package/analytics/integrations/unslugify.js +0 -16
  52. package/analytics/integrations/unslugify.js.map +0 -1
  53. package/analytics/trackerRegistry.d.ts +0 -113
  54. package/analytics/trackerRegistry.js +0 -234
  55. package/analytics/trackerRegistry.js.map +0 -1
  56. package/analytics/tracking.d.ts +0 -14
  57. package/analytics/tracking.js +0 -72
  58. package/analytics/tracking.js.map +0 -1
  59. package/analytics/utils/breadcrumbsWithoutProduct.d.ts +0 -1
  60. package/analytics/utils/breadcrumbsWithoutProduct.js +0 -9
  61. package/analytics/utils/breadcrumbsWithoutProduct.js.map +0 -1
  62. package/analytics/utils/script.d.ts +0 -8
  63. package/analytics/utils/script.js +0 -40
  64. package/analytics/utils/script.js.map +0 -1
  65. package/boot/AuthHandler.d.ts +0 -14
  66. package/boot/AuthHandler.js +0 -39
  67. package/boot/AuthHandler.js.map +0 -1
  68. package/boot/NetworkStatusNotifier.d.ts +0 -2
  69. package/boot/NetworkStatusNotifier.js +0 -4
  70. package/boot/NetworkStatusNotifier.js.map +0 -1
  71. package/boot/PreviewHandler.d.ts +0 -7
  72. package/boot/PreviewHandler.js +0 -14
  73. package/boot/PreviewHandler.js.map +0 -1
  74. package/boot/SharedTree.d.ts +0 -23
  75. package/boot/SharedTree.js +0 -27
  76. package/boot/SharedTree.js.map +0 -1
  77. package/boot/addMissingConfig.d.ts +0 -5
  78. package/boot/addMissingConfig.js +0 -34
  79. package/boot/addMissingConfig.js.map +0 -1
  80. package/boot/apollo.d.ts +0 -20
  81. package/boot/apollo.js +0 -167
  82. package/boot/apollo.js.map +0 -1
  83. package/boot/client/entrypoint.d.ts +0 -1
  84. package/boot/client/entrypoint.js +0 -5
  85. package/boot/client/entrypoint.js.map +0 -1
  86. package/boot/client/index.d.ts +0 -1
  87. package/boot/client/index.js +0 -2
  88. package/boot/client/index.js.map +0 -1
  89. package/boot/client/startClient.d.ts +0 -4
  90. package/boot/client/startClient.js +0 -139
  91. package/boot/client/startClient.js.map +0 -1
  92. package/boot/server/asyncErrorHandler.d.ts +0 -3
  93. package/boot/server/asyncErrorHandler.js +0 -5
  94. package/boot/server/asyncErrorHandler.js.map +0 -1
  95. package/boot/server/breakpointMiddleware.d.ts +0 -3
  96. package/boot/server/breakpointMiddleware.js +0 -10
  97. package/boot/server/breakpointMiddleware.js.map +0 -1
  98. package/boot/server/createApolloServer.d.ts +0 -29
  99. package/boot/server/createApolloServer.js +0 -138
  100. package/boot/server/createApolloServer.js.map +0 -1
  101. package/boot/server/createDevServer.d.ts +0 -14
  102. package/boot/server/createDevServer.js +0 -30
  103. package/boot/server/createDevServer.js.map +0 -1
  104. package/boot/server/createRenderer.d.ts +0 -28
  105. package/boot/server/createRenderer.js +0 -233
  106. package/boot/server/createRenderer.js.map +0 -1
  107. package/boot/server/createServer.d.ts +0 -14
  108. package/boot/server/createServer.js +0 -31
  109. package/boot/server/createServer.js.map +0 -1
  110. package/boot/server/entrypoint.d.ts +0 -1
  111. package/boot/server/entrypoint.js +0 -39
  112. package/boot/server/entrypoint.js.map +0 -1
  113. package/boot/server/getPrefetchFiles.d.ts +0 -10
  114. package/boot/server/getPrefetchFiles.js +0 -20
  115. package/boot/server/getPrefetchFiles.js.map +0 -1
  116. package/boot/server/getPreloadAssets.d.ts +0 -10
  117. package/boot/server/getPreloadAssets.js +0 -18
  118. package/boot/server/getPreloadAssets.js.map +0 -1
  119. package/boot/server/index.d.ts +0 -7
  120. package/boot/server/index.js +0 -114
  121. package/boot/server/index.js.map +0 -1
  122. package/boot/server/listen.d.ts +0 -13
  123. package/boot/server/listen.js +0 -17
  124. package/boot/server/listen.js.map +0 -1
  125. package/boot/utils/createIntOptions.d.ts +0 -6
  126. package/boot/utils/createIntOptions.js +0 -19
  127. package/boot/utils/createIntOptions.js.map +0 -1
  128. package/boot/utils/queryLoggingMiddleware.d.ts +0 -2
  129. package/boot/utils/queryLoggingMiddleware.js +0 -15
  130. package/boot/utils/queryLoggingMiddleware.js.map +0 -1
  131. package/boot/utils/uid.d.ts +0 -3
  132. package/boot/utils/uid.js +0 -20
  133. package/boot/utils/uid.js.map +0 -1
  134. package/boot/worker/createApolloServerWorker.d.ts +0 -18
  135. package/boot/worker/createApolloServerWorker.js +0 -119
  136. package/boot/worker/createApolloServerWorker.js.map +0 -1
  137. package/boot/worker/createRenderer.d.ts +0 -23
  138. package/boot/worker/createRenderer.js +0 -242
  139. package/boot/worker/createRenderer.js.map +0 -1
  140. package/boot/worker/getPrefetchFiles.d.ts +0 -10
  141. package/boot/worker/getPrefetchFiles.js +0 -20
  142. package/boot/worker/getPrefetchFiles.js.map +0 -1
  143. package/boot/worker/getPreloadAssets.d.ts +0 -10
  144. package/boot/worker/getPreloadAssets.js +0 -18
  145. package/boot/worker/getPreloadAssets.js.map +0 -1
  146. package/boot/worker/index.d.ts +0 -6
  147. package/boot/worker/index.js +0 -98
  148. package/boot/worker/index.js.map +0 -1
  149. package/cart/AddToCartFormik.d.ts +0 -42
  150. package/cart/AddToCartFormik.js +0 -79
  151. package/cart/AddToCartFormik.js.map +0 -1
  152. package/cart/useAddToCart.d.ts +0 -88
  153. package/cart/useAddToCart.js +0 -119
  154. package/cart/useAddToCart.js.map +0 -1
  155. package/cart/useCart.d.ts +0 -0
  156. package/cart/useCart.js +0 -1
  157. package/cart/useCart.js.map +0 -1
  158. package/components/Auth/CustomerFormContainer.d.ts +0 -0
  159. package/components/Auth/CustomerFormContainer.js +0 -1
  160. package/components/Auth/CustomerFormContainer.js.map +0 -1
  161. package/components/Auth/CustomerUpdateForm.d.ts +0 -32
  162. package/components/Auth/CustomerUpdateForm.js +0 -122
  163. package/components/Auth/CustomerUpdateForm.js.map +0 -1
  164. package/components/Auth/ForgotPasswordProvider.d.ts +0 -69
  165. package/components/Auth/ForgotPasswordProvider.js +0 -57
  166. package/components/Auth/ForgotPasswordProvider.js.map +0 -1
  167. package/components/Auth/ResetPasswordProvider.d.ts +0 -90
  168. package/components/Auth/ResetPasswordProvider.js +0 -78
  169. package/components/Auth/ResetPasswordProvider.js.map +0 -1
  170. package/components/Auth/SSN.d.ts +0 -12
  171. package/components/Auth/SSN.js +0 -35
  172. package/components/Auth/SSN.js.map +0 -1
  173. package/components/Auth/SSNLookupContainer.d.ts +0 -15
  174. package/components/Auth/SSNLookupContainer.js +0 -20
  175. package/components/Auth/SSNLookupContainer.js.map +0 -1
  176. package/components/Auth/SignupFormContainer.d.ts +0 -16
  177. package/components/Auth/SignupFormContainer.js +0 -82
  178. package/components/Auth/SignupFormContainer.js.map +0 -1
  179. package/components/Auth/UpdatePasswordForm.d.ts +0 -44
  180. package/components/Auth/UpdatePasswordForm.js +0 -98
  181. package/components/Auth/UpdatePasswordForm.js.map +0 -1
  182. package/components/Auth/formFieldsFromSettings.d.ts +0 -65
  183. package/components/Auth/formFieldsFromSettings.js +0 -77
  184. package/components/Auth/formFieldsFromSettings.js.map +0 -1
  185. package/components/Auth/formatSignupInput.d.ts +0 -8
  186. package/components/Auth/formatSignupInput.js +0 -43
  187. package/components/Auth/formatSignupInput.js.map +0 -1
  188. package/components/Auth/signup-context.d.ts +0 -36
  189. package/components/Auth/signup-context.js +0 -71
  190. package/components/Auth/signup-context.js.map +0 -1
  191. package/components/Auth/signup-field-translations.d.ts +0 -3
  192. package/components/Auth/signup-field-translations.js +0 -44
  193. package/components/Auth/signup-field-translations.js.map +0 -1
  194. package/components/Auth/signupSubmit.d.ts +0 -6
  195. package/components/Auth/signupSubmit.js +0 -65
  196. package/components/Auth/signupSubmit.js.map +0 -1
  197. package/components/Auth/useAddressFields.d.ts +0 -22
  198. package/components/Auth/useAddressFields.js +0 -33
  199. package/components/Auth/useAddressFields.js.map +0 -1
  200. package/components/Auth/useCustomer.d.ts +0 -116
  201. package/components/Auth/useCustomer.js +0 -189
  202. package/components/Auth/useCustomer.js.map +0 -1
  203. package/components/Auth/useLoginFields.d.ts +0 -20
  204. package/components/Auth/useLoginFields.js +0 -21
  205. package/components/Auth/useLoginFields.js.map +0 -1
  206. package/components/Auth/useSignupForm.d.ts +0 -7
  207. package/components/Auth/useSignupForm.js +0 -15
  208. package/components/Auth/useSignupForm.js.map +0 -1
  209. package/components/AuthContext/AuthContext.d.ts +0 -12
  210. package/components/AuthContext/AuthContext.js +0 -11
  211. package/components/AuthContext/AuthContext.js.map +0 -1
  212. package/components/AuthContext/AuthProvider.d.ts +0 -6
  213. package/components/AuthContext/AuthProvider.js +0 -100
  214. package/components/AuthContext/AuthProvider.js.map +0 -1
  215. package/components/AuthContext/LogOut.d.ts +0 -5
  216. package/components/AuthContext/LogOut.js +0 -17
  217. package/components/AuthContext/LogOut.js.map +0 -1
  218. package/components/AuthContext/useAuth.d.ts +0 -6
  219. package/components/AuthContext/useAuth.js +0 -20
  220. package/components/AuthContext/useAuth.js.map +0 -1
  221. package/components/BreakpointProvider.d.ts +0 -21
  222. package/components/BreakpointProvider.js +0 -24
  223. package/components/BreakpointProvider.js.map +0 -1
  224. package/components/Cart/CartIdContext.d.ts +0 -11
  225. package/components/Cart/CartIdContext.js +0 -61
  226. package/components/Cart/CartIdContext.js.map +0 -1
  227. package/components/ChannelContext/ChannelContext.d.ts +0 -21
  228. package/components/ChannelContext/ChannelContext.js +0 -4
  229. package/components/ChannelContext/ChannelContext.js.map +0 -1
  230. package/components/ChannelContext/ChannelProvider.d.ts +0 -10
  231. package/components/ChannelContext/ChannelProvider.js +0 -45
  232. package/components/ChannelContext/ChannelProvider.js.map +0 -1
  233. package/components/ChannelContext/index.d.ts +0 -2
  234. package/components/ChannelContext/index.js +0 -3
  235. package/components/ChannelContext/index.js.map +0 -1
  236. package/components/ChannelContext/useCountrySettings.d.ts +0 -8
  237. package/components/ChannelContext/useCountrySettings.js +0 -24
  238. package/components/ChannelContext/useCountrySettings.js.map +0 -1
  239. package/components/ConfigProvider.d.ts +0 -104
  240. package/components/ConfigProvider.js +0 -20
  241. package/components/ConfigProvider.js.map +0 -1
  242. package/components/DynamicRoute/CategoryRoute.d.ts +0 -13
  243. package/components/DynamicRoute/CategoryRoute.js +0 -59
  244. package/components/DynamicRoute/CategoryRoute.js.map +0 -1
  245. package/components/DynamicRoute/ContentRoute.d.ts +0 -14
  246. package/components/DynamicRoute/ContentRoute.js +0 -28
  247. package/components/DynamicRoute/ContentRoute.js.map +0 -1
  248. package/components/DynamicRoute/CustomerRoute.d.ts +0 -0
  249. package/components/DynamicRoute/CustomerRoute.js +0 -1
  250. package/components/DynamicRoute/CustomerRoute.js.map +0 -1
  251. package/components/DynamicRoute/GenericError.d.ts +0 -18
  252. package/components/DynamicRoute/GenericError.js +0 -57
  253. package/components/DynamicRoute/GenericError.js.map +0 -1
  254. package/components/DynamicRoute/PreviewRoute.d.ts +0 -17
  255. package/components/DynamicRoute/PreviewRoute.js +0 -58
  256. package/components/DynamicRoute/PreviewRoute.js.map +0 -1
  257. package/components/DynamicRoute/ProductByArticlenumber.d.ts +0 -5
  258. package/components/DynamicRoute/ProductByArticlenumber.js +0 -22
  259. package/components/DynamicRoute/ProductByArticlenumber.js.map +0 -1
  260. package/components/DynamicRoute/ProductRoute.d.ts +0 -15
  261. package/components/DynamicRoute/ProductRoute.js +0 -68
  262. package/components/DynamicRoute/ProductRoute.js.map +0 -1
  263. package/components/DynamicRoute/RouteResolver.d.ts +0 -22
  264. package/components/DynamicRoute/RouteResolver.js +0 -64
  265. package/components/DynamicRoute/RouteResolver.js.map +0 -1
  266. package/components/DynamicRoute/Status.d.ts +0 -15
  267. package/components/DynamicRoute/Status.js +0 -20
  268. package/components/DynamicRoute/Status.js.map +0 -1
  269. package/components/DynamicRoute/index.d.ts +0 -17
  270. package/components/DynamicRoute/index.js +0 -101
  271. package/components/DynamicRoute/index.js.map +0 -1
  272. package/components/Filters/index.d.ts +0 -1
  273. package/components/Filters/index.js +0 -2
  274. package/components/Filters/index.js.map +0 -1
  275. package/components/Filters/utils/replaceInSearch.d.ts +0 -14
  276. package/components/Filters/utils/replaceInSearch.js +0 -23
  277. package/components/Filters/utils/replaceInSearch.js.map +0 -1
  278. package/components/Filters/utils/updateHistory.d.ts +0 -25
  279. package/components/Filters/utils/updateHistory.js +0 -30
  280. package/components/Filters/utils/updateHistory.js.map +0 -1
  281. package/components/Fonts/CustomFont.d.ts +0 -14
  282. package/components/Fonts/CustomFont.js +0 -17
  283. package/components/Fonts/CustomFont.js.map +0 -1
  284. package/components/Fonts/injectFont.d.ts +0 -11
  285. package/components/Fonts/injectFont.js +0 -30
  286. package/components/Fonts/injectFont.js.map +0 -1
  287. package/components/Head.d.ts +0 -11
  288. package/components/Head.js +0 -86
  289. package/components/Head.js.map +0 -1
  290. package/components/Mutation/AddToCart/addToCartUtils.d.ts +0 -18
  291. package/components/Mutation/AddToCart/addToCartUtils.js +0 -52
  292. package/components/Mutation/AddToCart/addToCartUtils.js.map +0 -1
  293. package/components/Mutation/AddToCartFormik.d.ts +0 -53
  294. package/components/Mutation/AddToCartFormik.js +0 -183
  295. package/components/Mutation/AddToCartFormik.js.map +0 -1
  296. package/components/Mutation/DecrementQuantity.d.ts +0 -4
  297. package/components/Mutation/DecrementQuantity.js +0 -35
  298. package/components/Mutation/DecrementQuantity.js.map +0 -1
  299. package/components/Mutation/IncrementQuantity.d.ts +0 -4
  300. package/components/Mutation/IncrementQuantity.js +0 -35
  301. package/components/Mutation/IncrementQuantity.js.map +0 -1
  302. package/components/Mutation/RemoveFromCart.d.ts +0 -5
  303. package/components/Mutation/RemoveFromCart.js +0 -52
  304. package/components/Mutation/RemoveFromCart.js.map +0 -1
  305. package/components/Mutation/SetQuantity.d.ts +0 -4
  306. package/components/Mutation/SetQuantity.js +0 -37
  307. package/components/Mutation/SetQuantity.js.map +0 -1
  308. package/components/Mutation/SubscribeToNewsletter.d.ts +0 -4
  309. package/components/Mutation/SubscribeToNewsletter.js +0 -30
  310. package/components/Mutation/SubscribeToNewsletter.js.map +0 -1
  311. package/components/Mutation/SubscribeToStockNotifications.d.ts +0 -4
  312. package/components/Mutation/SubscribeToStockNotifications.js +0 -35
  313. package/components/Mutation/SubscribeToStockNotifications.js.map +0 -1
  314. package/components/Mutation/cartMutationUtils.d.ts +0 -27
  315. package/components/Mutation/cartMutationUtils.js +0 -106
  316. package/components/Mutation/cartMutationUtils.js.map +0 -1
  317. package/components/Mutation/useDecrementQuantity.d.ts +0 -11
  318. package/components/Mutation/useDecrementQuantity.js +0 -50
  319. package/components/Mutation/useDecrementQuantity.js.map +0 -1
  320. package/components/Mutation/useIncrementQuantity.d.ts +0 -11
  321. package/components/Mutation/useIncrementQuantity.js +0 -50
  322. package/components/Mutation/useIncrementQuantity.js.map +0 -1
  323. package/components/Mutation/useRemoveFromCart.d.ts +0 -13
  324. package/components/Mutation/useRemoveFromCart.js +0 -45
  325. package/components/Mutation/useRemoveFromCart.js.map +0 -1
  326. package/components/Mutation/useSetQuantity.d.ts +0 -12
  327. package/components/Mutation/useSetQuantity.js +0 -38
  328. package/components/Mutation/useSetQuantity.js.map +0 -1
  329. package/components/Notifications/Notifications.d.ts +0 -15
  330. package/components/Notifications/Notifications.js +0 -26
  331. package/components/Notifications/Notifications.js.map +0 -1
  332. package/components/Notifications/index.d.ts +0 -2
  333. package/components/Notifications/index.js +0 -3
  334. package/components/Notifications/index.js.map +0 -1
  335. package/components/Notifications/notificationMachine.d.ts +0 -30
  336. package/components/Notifications/notificationMachine.js +0 -74
  337. package/components/Notifications/notificationMachine.js.map +0 -1
  338. package/components/Notifications/notificationsMachine.d.ts +0 -37
  339. package/components/Notifications/notificationsMachine.js +0 -66
  340. package/components/Notifications/notificationsMachine.js.map +0 -1
  341. package/components/Notifications/useNotification.d.ts +0 -9
  342. package/components/Notifications/useNotification.js +0 -27
  343. package/components/Notifications/useNotification.js.map +0 -1
  344. package/components/OpenGraph/OpenGraphGeneralPageData.d.ts +0 -25
  345. package/components/OpenGraph/OpenGraphGeneralPageData.js +0 -37
  346. package/components/OpenGraph/OpenGraphGeneralPageData.js.map +0 -1
  347. package/components/OpenGraph/OpenGraphProductData.d.ts +0 -25
  348. package/components/OpenGraph/OpenGraphProductData.js +0 -49
  349. package/components/OpenGraph/OpenGraphProductData.js.map +0 -1
  350. package/components/OpenGraph/index.d.ts +0 -2
  351. package/components/OpenGraph/index.js +0 -3
  352. package/components/OpenGraph/index.js.map +0 -1
  353. package/components/Pagination/PaginationContainer.d.ts +0 -2
  354. package/components/Pagination/PaginationContainer.js +0 -5
  355. package/components/Pagination/PaginationContainer.js.map +0 -1
  356. package/components/Pagination/PaginationContext.d.ts +0 -14
  357. package/components/Pagination/PaginationContext.js +0 -4
  358. package/components/Pagination/PaginationContext.js.map +0 -1
  359. package/components/Pagination/PaginationProvider.d.ts +0 -17
  360. package/components/Pagination/PaginationProvider.js +0 -86
  361. package/components/Pagination/PaginationProvider.js.map +0 -1
  362. package/components/PreviewContext.d.ts +0 -10
  363. package/components/PreviewContext.js +0 -27
  364. package/components/PreviewContext.js.map +0 -1
  365. package/components/ProductConfigurationProvider/ProductConfigurationContext.d.ts +0 -13
  366. package/components/ProductConfigurationProvider/ProductConfigurationContext.js +0 -5
  367. package/components/ProductConfigurationProvider/ProductConfigurationContext.js.map +0 -1
  368. package/components/ProductConfigurationProvider/ProductConfigurationProvider.d.ts +0 -6
  369. package/components/ProductConfigurationProvider/ProductConfigurationProvider.js +0 -50
  370. package/components/ProductConfigurationProvider/ProductConfigurationProvider.js.map +0 -1
  371. package/components/Query/CartProvider.d.ts +0 -22
  372. package/components/Query/CartProvider.js +0 -68
  373. package/components/Query/CartProvider.js.map +0 -1
  374. package/components/SortOrder/SortOrderContainer.d.ts +0 -40
  375. package/components/SortOrder/SortOrderContainer.js +0 -108
  376. package/components/SortOrder/SortOrderContainer.js.map +0 -1
  377. package/components/SortOrder/SortOrderContext.d.ts +0 -9
  378. package/components/SortOrder/SortOrderContext.js +0 -9
  379. package/components/SortOrder/SortOrderContext.js.map +0 -1
  380. package/components/StructuredData/SiteLinksSearchStructuredData.d.ts +0 -3
  381. package/components/StructuredData/SiteLinksSearchStructuredData.js +0 -25
  382. package/components/StructuredData/SiteLinksSearchStructuredData.js.map +0 -1
  383. package/components/StructuredData/StructuredBreadcrumbData.d.ts +0 -12
  384. package/components/StructuredData/StructuredBreadcrumbData.js +0 -55
  385. package/components/StructuredData/StructuredBreadcrumbData.js.map +0 -1
  386. package/components/StructuredData/StructuredCategoryData.d.ts +0 -16
  387. package/components/StructuredData/StructuredCategoryData.js +0 -18
  388. package/components/StructuredData/StructuredCategoryData.js.map +0 -1
  389. package/components/StructuredData/StructuredData.d.ts +0 -9
  390. package/components/StructuredData/StructuredData.js +0 -7
  391. package/components/StructuredData/StructuredData.js.map +0 -1
  392. package/components/StructuredData/StructuredPageData.d.ts +0 -16
  393. package/components/StructuredData/StructuredPageData.js +0 -17
  394. package/components/StructuredData/StructuredPageData.js.map +0 -1
  395. package/components/StructuredData/StructuredProductData.d.ts +0 -18
  396. package/components/StructuredData/StructuredProductData.js +0 -43
  397. package/components/StructuredData/StructuredProductData.js.map +0 -1
  398. package/components/StructuredData/index.d.ts +0 -5
  399. package/components/StructuredData/index.js +0 -6
  400. package/components/StructuredData/index.js.map +0 -1
  401. package/data/cache.d.ts +0 -3
  402. package/data/cache.js +0 -71
  403. package/data/cache.js.map +0 -1
  404. package/data/fragmentTypes.d.ts +0 -8
  405. package/data/fragmentTypes.js +0 -84
  406. package/data/fragmentTypes.js.map +0 -1
  407. package/data/fragments/index.d.ts +0 -1
  408. package/data/fragments/index.js +0 -2
  409. package/data/fragments/index.js.map +0 -1
  410. package/experiments/ExperimentsProvider.d.ts +0 -4
  411. package/experiments/ExperimentsProvider.js +0 -29
  412. package/experiments/ExperimentsProvider.js.map +0 -1
  413. package/experiments/selectExperimentVariant.d.ts +0 -3
  414. package/experiments/selectExperimentVariant.js +0 -35
  415. package/experiments/selectExperimentVariant.js.map +0 -1
  416. package/experiments/useExperiment.d.ts +0 -2
  417. package/experiments/useExperiment.js +0 -11
  418. package/experiments/useExperiment.js.map +0 -1
  419. package/helpers/decodeUrlQuery.d.ts +0 -9
  420. package/helpers/decodeUrlQuery.js +0 -27
  421. package/helpers/decodeUrlQuery.js.map +0 -1
  422. package/helpers/distance.d.ts +0 -7
  423. package/helpers/distance.js +0 -13
  424. package/helpers/distance.js.map +0 -1
  425. package/helpers/encodeVariant.d.ts +0 -3
  426. package/helpers/encodeVariant.js +0 -25
  427. package/helpers/encodeVariant.js.map +0 -1
  428. package/helpers/getBreakpointsFromValues.d.ts +0 -6
  429. package/helpers/getBreakpointsFromValues.js +0 -15
  430. package/helpers/getBreakpointsFromValues.js.map +0 -1
  431. package/helpers/getCartItemVariant.d.ts +0 -7
  432. package/helpers/getCartItemVariant.js +0 -9
  433. package/helpers/getCartItemVariant.js.map +0 -1
  434. package/helpers/getErrorDetail.d.ts +0 -7
  435. package/helpers/getErrorDetail.js +0 -12
  436. package/helpers/getErrorDetail.js.map +0 -1
  437. package/helpers/getHeaders.d.ts +0 -6
  438. package/helpers/getHeaders.js +0 -4
  439. package/helpers/getHeaders.js.map +0 -1
  440. package/helpers/isRelativeUrl.d.ts +0 -1
  441. package/helpers/isRelativeUrl.js +0 -4
  442. package/helpers/isRelativeUrl.js.map +0 -1
  443. package/helpers/logError.d.ts +0 -1
  444. package/helpers/logError.js +0 -17
  445. package/helpers/logError.js.map +0 -1
  446. package/helpers/logWarningInDev.d.ts +0 -1
  447. package/helpers/logWarningInDev.js +0 -7
  448. package/helpers/logWarningInDev.js.map +0 -1
  449. package/helpers/throwErrorInDev.d.ts +0 -6
  450. package/helpers/throwErrorInDev.js +0 -20
  451. package/helpers/throwErrorInDev.js.map +0 -1
  452. package/helpers/uniqueId.d.ts +0 -5
  453. package/helpers/uniqueId.js +0 -10
  454. package/helpers/uniqueId.js.map +0 -1
  455. package/hooks/Channels/useChannelSettings.d.ts +0 -7
  456. package/hooks/Channels/useChannelSettings.js +0 -12
  457. package/hooks/Channels/useChannelSettings.js.map +0 -1
  458. package/hooks/Filters/useBooleanFilter.d.ts +0 -8
  459. package/hooks/Filters/useBooleanFilter.js +0 -20
  460. package/hooks/Filters/useBooleanFilter.js.map +0 -1
  461. package/hooks/Filters/useFilters.d.ts +0 -3
  462. package/hooks/Filters/useFilters.js +0 -15
  463. package/hooks/Filters/useFilters.js.map +0 -1
  464. package/hooks/Filters/useListFilter.d.ts +0 -10
  465. package/hooks/Filters/useListFilter.js +0 -37
  466. package/hooks/Filters/useListFilter.js.map +0 -1
  467. package/hooks/Filters/useMultiFilter.d.ts +0 -13
  468. package/hooks/Filters/useMultiFilter.js +0 -49
  469. package/hooks/Filters/useMultiFilter.js.map +0 -1
  470. package/hooks/Filters/useRangeFilter.d.ts +0 -10
  471. package/hooks/Filters/useRangeFilter.js +0 -35
  472. package/hooks/Filters/useRangeFilter.js.map +0 -1
  473. package/hooks/Filters/useSortOrder.d.ts +0 -16
  474. package/hooks/Filters/useSortOrder.js +0 -23
  475. package/hooks/Filters/useSortOrder.js.map +0 -1
  476. package/hooks/PackageProducts/index.d.ts +0 -2
  477. package/hooks/PackageProducts/index.js +0 -3
  478. package/hooks/PackageProducts/index.js.map +0 -1
  479. package/hooks/PackageProducts/usePackageProductItem.d.ts +0 -17
  480. package/hooks/PackageProducts/usePackageProductItem.js +0 -27
  481. package/hooks/PackageProducts/usePackageProductItem.js.map +0 -1
  482. package/hooks/PackageProducts/usePackageProducts.d.ts +0 -19
  483. package/hooks/PackageProducts/usePackageProducts.js +0 -346
  484. package/hooks/PackageProducts/usePackageProducts.js.map +0 -1
  485. package/hooks/Product/index.d.ts +0 -1
  486. package/hooks/Product/index.js +0 -2
  487. package/hooks/Product/index.js.map +0 -1
  488. package/hooks/Product/useStockStatus.d.ts +0 -9
  489. package/hooks/Product/useStockStatus.js +0 -26
  490. package/hooks/Product/useStockStatus.js.map +0 -1
  491. package/hooks/Product/useSwitchToVariantImage.d.ts +0 -9
  492. package/hooks/Product/useSwitchToVariantImage.js +0 -21
  493. package/hooks/Product/useSwitchToVariantImage.js.map +0 -1
  494. package/hooks/ProductList/ProductListContext.d.ts +0 -12
  495. package/hooks/ProductList/ProductListContext.js +0 -129
  496. package/hooks/ProductList/ProductListContext.js.map +0 -1
  497. package/hooks/ProductList/action-creators.d.ts +0 -46
  498. package/hooks/ProductList/action-creators.js +0 -295
  499. package/hooks/ProductList/action-creators.js.map +0 -1
  500. package/hooks/ProductList/index.d.ts +0 -119
  501. package/hooks/ProductList/index.js +0 -22
  502. package/hooks/ProductList/index.js.map +0 -1
  503. package/hooks/ProductList/list-transforms.d.ts +0 -75
  504. package/hooks/ProductList/list-transforms.js +0 -107
  505. package/hooks/ProductList/list-transforms.js.map +0 -1
  506. package/hooks/ProductList/product-list-reducer.d.ts +0 -76
  507. package/hooks/ProductList/product-list-reducer.js +0 -192
  508. package/hooks/ProductList/product-list-reducer.js.map +0 -1
  509. package/hooks/ProductList/useProductList.d.ts +0 -13
  510. package/hooks/ProductList/useProductList.js +0 -94
  511. package/hooks/ProductList/useProductList.js.map +0 -1
  512. package/hooks/ProductList/useProductListItems.d.ts +0 -10
  513. package/hooks/ProductList/useProductListItems.js +0 -50
  514. package/hooks/ProductList/useProductListItems.js.map +0 -1
  515. package/hooks/ProductList/validate-product.d.ts +0 -6
  516. package/hooks/ProductList/validate-product.js +0 -41
  517. package/hooks/ProductList/validate-product.js.map +0 -1
  518. package/hooks/Subscriptions/useNewsletterSubscription.d.ts +0 -38
  519. package/hooks/Subscriptions/useNewsletterSubscription.js +0 -42
  520. package/hooks/Subscriptions/useNewsletterSubscription.js.map +0 -1
  521. package/hooks/Subscriptions/useStockNotifications.d.ts +0 -36
  522. package/hooks/Subscriptions/useStockNotifications.js +0 -38
  523. package/hooks/Subscriptions/useStockNotifications.js.map +0 -1
  524. package/hooks/Subscriptions/useStoreSubscriptions.d.ts +0 -48
  525. package/hooks/Subscriptions/useStoreSubscriptions.js +0 -148
  526. package/hooks/Subscriptions/useStoreSubscriptions.js.map +0 -1
  527. package/hooks/useAddMultipleToCart.d.ts +0 -27
  528. package/hooks/useAddMultipleToCart.js +0 -113
  529. package/hooks/useAddMultipleToCart.js.map +0 -1
  530. package/hooks/useChannels.d.ts +0 -1
  531. package/hooks/useChannels.js +0 -10
  532. package/hooks/useChannels.js.map +0 -1
  533. package/hooks/useCustomerOrdersQuery.d.ts +0 -21
  534. package/hooks/useCustomerOrdersQuery.js +0 -21
  535. package/hooks/useCustomerOrdersQuery.js.map +0 -1
  536. package/hooks/useDeleteAccountMutation.d.ts +0 -15
  537. package/hooks/useDeleteAccountMutation.js +0 -39
  538. package/hooks/useDeleteAccountMutation.js.map +0 -1
  539. package/hooks/useDynamicPrice.d.ts +0 -3
  540. package/hooks/useDynamicPrice.js +0 -25
  541. package/hooks/useDynamicPrice.js.map +0 -1
  542. package/hooks/useFreeShippingCheck.d.ts +0 -15
  543. package/hooks/useFreeShippingCheck.js +0 -31
  544. package/hooks/useFreeShippingCheck.js.map +0 -1
  545. package/hooks/useGeolocation.d.ts +0 -11
  546. package/hooks/useGeolocation.js +0 -34
  547. package/hooks/useGeolocation.js.map +0 -1
  548. package/hooks/useInfinitePagination.d.ts +0 -37
  549. package/hooks/useInfinitePagination.js +0 -142
  550. package/hooks/useInfinitePagination.js.map +0 -1
  551. package/hooks/useLogError.d.ts +0 -1
  552. package/hooks/useLogError.js +0 -8
  553. package/hooks/useLogError.js.map +0 -1
  554. package/hooks/useLoginMutation.d.ts +0 -13
  555. package/hooks/useLoginMutation.js +0 -19
  556. package/hooks/useLoginMutation.js.map +0 -1
  557. package/hooks/useLoginRedirect.d.ts +0 -4
  558. package/hooks/useLoginRedirect.js +0 -37
  559. package/hooks/useLoginRedirect.js.map +0 -1
  560. package/hooks/useOrderDetailQuery.d.ts +0 -20
  561. package/hooks/useOrderDetailQuery.js +0 -29
  562. package/hooks/useOrderDetailQuery.js.map +0 -1
  563. package/hooks/usePreconnectLinks.d.ts +0 -10
  564. package/hooks/usePreconnectLinks.js +0 -26
  565. package/hooks/usePreconnectLinks.js.map +0 -1
  566. package/hooks/usePrice.d.ts +0 -41
  567. package/hooks/usePrice.js +0 -73
  568. package/hooks/usePrice.js.map +0 -1
  569. package/hooks/useProductVariants/index.d.ts +0 -1
  570. package/hooks/useProductVariants/index.js +0 -2
  571. package/hooks/useProductVariants/index.js.map +0 -1
  572. package/hooks/useProductVariants/useProductVariants.d.ts +0 -19
  573. package/hooks/useProductVariants/useProductVariants.js +0 -203
  574. package/hooks/useProductVariants/useProductVariants.js.map +0 -1
  575. package/hooks/useProductVariants/useVariantFromUrl.d.ts +0 -5
  576. package/hooks/useProductVariants/useVariantFromUrl.js +0 -16
  577. package/hooks/useProductVariants/useVariantFromUrl.js.map +0 -1
  578. package/hooks/useRoutePreload.d.ts +0 -24
  579. package/hooks/useRoutePreload.js +0 -45
  580. package/hooks/useRoutePreload.js.map +0 -1
  581. package/hooks/useShopConfig.d.ts +0 -1
  582. package/hooks/useShopConfig.js +0 -11
  583. package/hooks/useShopConfig.js.map +0 -1
  584. package/hooks/useStockStatus.d.ts +0 -8
  585. package/hooks/useStockStatus.js +0 -26
  586. package/hooks/useStockStatus.js.map +0 -1
  587. package/hooks/useThrowErrorInDev.d.ts +0 -1
  588. package/hooks/useThrowErrorInDev.js +0 -8
  589. package/hooks/useThrowErrorInDev.js.map +0 -1
  590. package/hooks/useThunkReducer.d.ts +0 -7
  591. package/hooks/useThunkReducer.js +0 -24
  592. package/hooks/useThunkReducer.js.map +0 -1
  593. package/hooks/useWarningInDev.d.ts +0 -1
  594. package/hooks/useWarningInDev.js +0 -10
  595. package/hooks/useWarningInDev.js.map +0 -1
  596. package/inServer.d.ts +0 -1
  597. package/inServer.js +0 -3
  598. package/inServer.js.map +0 -1
  599. package/index.d.ts +0 -1
  600. package/index.js +0 -2
  601. package/index.js.map +0 -1
  602. package/integrations/sluggishSchemaExtension.d.ts +0 -2
  603. package/integrations/sluggishSchemaExtension.js +0 -27
  604. package/integrations/sluggishSchemaExtension.js.map +0 -1
  605. package/resolvers/filters/boolFilter.d.ts +0 -3
  606. package/resolvers/filters/boolFilter.js +0 -82
  607. package/resolvers/filters/boolFilter.js.map +0 -1
  608. package/resolvers/filters/defaultActiveFilters.d.ts +0 -3
  609. package/resolvers/filters/defaultActiveFilters.js +0 -9
  610. package/resolvers/filters/defaultActiveFilters.js.map +0 -1
  611. package/resolvers/filters/filterParams.d.ts +0 -3
  612. package/resolvers/filters/filterParams.js +0 -85
  613. package/resolvers/filters/filterParams.js.map +0 -1
  614. package/resolvers/filters/filters.d.ts +0 -5
  615. package/resolvers/filters/filters.js +0 -79
  616. package/resolvers/filters/filters.js.map +0 -1
  617. package/resolvers/filters/index.d.ts +0 -23
  618. package/resolvers/filters/index.js +0 -8
  619. package/resolvers/filters/index.js.map +0 -1
  620. package/resolvers/filters/listFilter.d.ts +0 -7
  621. package/resolvers/filters/listFilter.js +0 -69
  622. package/resolvers/filters/listFilter.js.map +0 -1
  623. package/resolvers/filters/listFilterItem.d.ts +0 -3
  624. package/resolvers/filters/listFilterItem.js +0 -118
  625. package/resolvers/filters/listFilterItem.js.map +0 -1
  626. package/resolvers/filters/multiListFilter.d.ts +0 -5
  627. package/resolvers/filters/multiListFilter.js +0 -195
  628. package/resolvers/filters/multiListFilter.js.map +0 -1
  629. package/resolvers/filters/multiListFilterList.d.ts +0 -3
  630. package/resolvers/filters/multiListFilterList.js +0 -56
  631. package/resolvers/filters/multiListFilterList.js.map +0 -1
  632. package/resolvers/filters/rangeFilter.d.ts +0 -5
  633. package/resolvers/filters/rangeFilter.js +0 -122
  634. package/resolvers/filters/rangeFilter.js.map +0 -1
  635. package/resolvers/filters/updateQueryString.d.ts +0 -12
  636. package/resolvers/filters/updateQueryString.js +0 -117
  637. package/resolvers/filters/updateQueryString.js.map +0 -1
  638. package/resolvers/index.d.ts +0 -37
  639. package/resolvers/index.js +0 -38
  640. package/resolvers/index.js.map +0 -1
  641. package/server/graphql.d.ts +0 -20
  642. package/server/graphql.js +0 -118
  643. package/server/graphql.js.map +0 -1
  644. package/server/index.d.ts +0 -2
  645. package/server/index.js +0 -3
  646. package/server/index.js.map +0 -1
  647. package/server/tracking/facebook.d.ts +0 -5
  648. package/server/tracking/facebook.js +0 -148
  649. package/server/tracking/facebook.js.map +0 -1
  650. package/server/tracking/middleware.d.ts +0 -8
  651. package/server/tracking/middleware.js +0 -15
  652. package/server/tracking/middleware.js.map +0 -1
  653. package/time.d.ts +0 -1
  654. package/time.js +0 -6
  655. package/time.js.map +0 -1
@@ -0,0 +1,276 @@
1
+ import {
2
+ ApolloClient,
3
+ ApolloError,
4
+ InMemoryCache,
5
+ HttpLink,
6
+ gql
7
+ } from '@apollo/client';
8
+ import { IntervalQuery } from './IntervalQuery';
9
+ import nock from 'nock';
10
+ beforeAll(() => {
11
+ jest.useFakeTimers();
12
+ nock.disableNetConnect();
13
+ });
14
+ afterAll(() => {
15
+ jest.useRealTimers();
16
+ nock.enableNetConnect();
17
+ });
18
+ afterEach(() => {
19
+ jest.restoreAllMocks();
20
+ jest.clearAllTimers();
21
+ nock.enableNetConnect();
22
+ });
23
+ const query = gql`
24
+ query ChannelsQuery {
25
+ channels {
26
+ id
27
+ name
28
+ }
29
+ }
30
+ `;
31
+ const apolloConfig = {
32
+ shopid: '...',
33
+ graphQLURI: 'http://localhost/graphql',
34
+ token: '...',
35
+ enableGateway: false
36
+ };
37
+
38
+ /**
39
+ * Mocks response for `/graphql`
40
+ * Only for **one** request, it resets on each call.
41
+ */
42
+ function mockResponse({ channels = null, statusCode = 200, errors }) {
43
+ const data = {
44
+ errors,
45
+ data: {
46
+ channels: Array.isArray(channels)
47
+ ? channels.map((channel) =>
48
+ Object.assign({ __typename: 'Channel' }, channel)
49
+ )
50
+ : null
51
+ }
52
+ };
53
+ const res = jest.fn(() => data);
54
+ nock('http://localhost').post('/graphql').reply(statusCode, res);
55
+ return res;
56
+ }
57
+ test('does request on init', async () => {
58
+ const firstCall = mockResponse({
59
+ channels: [
60
+ {
61
+ id: 1,
62
+ name: 'test'
63
+ }
64
+ ]
65
+ });
66
+ const intervalQuery = new IntervalQuery({
67
+ createClientOpts: { apolloConfig },
68
+ query,
69
+ pollInterval: 60e3
70
+ });
71
+ await intervalQuery.getPendingResponse();
72
+ expect(firstCall).toHaveBeenCalled();
73
+ const res = await intervalQuery.results();
74
+ expect(res.channels).toHaveLength(1);
75
+ expect(res.channels[0].id).toBe(1);
76
+ });
77
+ test('does request on intervals', async () => {
78
+ mockResponse({
79
+ channels: [
80
+ {
81
+ id: 1,
82
+ name: 'test1'
83
+ }
84
+ ]
85
+ });
86
+ const pollInterval = 60e3;
87
+ const intervalQuery = new IntervalQuery({
88
+ createClientOpts: { apolloConfig },
89
+ query,
90
+ pollInterval
91
+ });
92
+ {
93
+ const res = await intervalQuery.results();
94
+ expect(res.channels[0].name).toBe('test1');
95
+ nock.cleanAll();
96
+ }
97
+ {
98
+ const mock = mockResponse({
99
+ channels: [
100
+ {
101
+ id: 2,
102
+ name: 'test2'
103
+ }
104
+ ]
105
+ });
106
+ jest.advanceTimersByTime(pollInterval);
107
+ await intervalQuery.getPendingResponse();
108
+ const res = await intervalQuery.results();
109
+ expect(mock).toHaveBeenCalled();
110
+ expect(res.channels[0].name).toBe('test2');
111
+ }
112
+ {
113
+ mockResponse({
114
+ channels: [
115
+ {
116
+ id: 3,
117
+ name: 'test3'
118
+ }
119
+ ]
120
+ });
121
+ jest.advanceTimersByTime(pollInterval);
122
+ await intervalQuery.getPendingResponse();
123
+ const res = await intervalQuery.results();
124
+ expect(res.channels[0].name).toBe('test3');
125
+ }
126
+ });
127
+ test('propagates bad statusCodes', async () => {
128
+ mockResponse({ statusCode: 500 });
129
+ const onError = jest.fn();
130
+ const pollInterval = 60e3;
131
+ const intervalQuery = new IntervalQuery({
132
+ createClientOpts: { apolloConfig },
133
+ query,
134
+ pollInterval,
135
+ onError
136
+ });
137
+ expect.assertions(3);
138
+ try {
139
+ await intervalQuery.getPendingResponse();
140
+ } catch (err) {
141
+ expect(err.networkError.statusCode).toBe(500);
142
+ expect(onError).toHaveBeenCalledTimes(1);
143
+ }
144
+ // successful response after
145
+ mockResponse({ channels: [] });
146
+ const res = await intervalQuery.results();
147
+ expect(res.channels).toEqual([]);
148
+ });
149
+ test('propagates when response contains GraphQL-errors', async () => {
150
+ const errorMessage = 'Something went wrong';
151
+ mockResponse({
152
+ errors: [
153
+ {
154
+ message: errorMessage,
155
+ locations: null
156
+ }
157
+ ]
158
+ });
159
+ const pollInterval = 60e3;
160
+ const intervalQuery = new IntervalQuery({
161
+ createClientOpts: { apolloConfig },
162
+ query,
163
+ pollInterval
164
+ });
165
+ expect.assertions(2);
166
+ try {
167
+ await intervalQuery.getPendingResponse();
168
+ } catch (_err) {
169
+ const err = _err;
170
+ expect(err).toBeInstanceOf(ApolloError);
171
+ expect(err.message).toBe(`GraphQL error: ${errorMessage}`);
172
+ }
173
+ });
174
+ test('extracting and using cache in new client', async () => {
175
+ mockResponse({
176
+ channels: [
177
+ {
178
+ id: 1,
179
+ name: 'test1'
180
+ }
181
+ ]
182
+ });
183
+ const pollInterval = 60e3;
184
+ const intervalQuery = new IntervalQuery({
185
+ createClientOpts: { apolloConfig },
186
+ query,
187
+ pollInterval
188
+ });
189
+ await intervalQuery.getPendingResponse();
190
+ {
191
+ const cache = intervalQuery.extractCache();
192
+ expect(cache).toHaveProperty('Channel:1');
193
+ expect(cache['Channel:1'].name).toBe('test1');
194
+ const newClient = new ApolloClient({
195
+ link: new HttpLink(),
196
+ cache: new InMemoryCache().restore(cache)
197
+ });
198
+ const res = newClient.readQuery({
199
+ query
200
+ });
201
+ expect(res.channels).toHaveLength(1);
202
+ expect(res.channels[0].name).toBe('test1');
203
+ }
204
+ // update data in new request
205
+ {
206
+ const mock = mockResponse({
207
+ channels: [
208
+ {
209
+ id: 1,
210
+ name: 'test1--updated'
211
+ },
212
+ {
213
+ id: 2,
214
+ name: 'test2'
215
+ }
216
+ ]
217
+ });
218
+ jest.advanceTimersByTime(pollInterval);
219
+ await intervalQuery.getPendingResponse();
220
+ expect(mock).toHaveBeenCalled();
221
+ const cache = intervalQuery.extractCache();
222
+ const newClient = new ApolloClient({
223
+ link: new HttpLink(),
224
+ cache: new InMemoryCache().restore(cache)
225
+ });
226
+ const res = newClient.readQuery({
227
+ query
228
+ });
229
+ expect(res.channels).toHaveLength(2);
230
+ expect(res.channels[0].name).toBe('test1--updated');
231
+ expect(res.channels[1].name).toBe('test2');
232
+ }
233
+ });
234
+
235
+ test(`internal state doesn't get overridden by erroneous requests`, async () => {
236
+ mockResponse({
237
+ channels: [
238
+ {
239
+ id: 1,
240
+ name: 'test1'
241
+ }
242
+ ]
243
+ });
244
+ const pollInterval = 60e3;
245
+ const intervalQuery = new IntervalQuery({
246
+ createClientOpts: { apolloConfig },
247
+ query,
248
+ pollInterval
249
+ });
250
+ await intervalQuery.getPendingResponse();
251
+
252
+ mockResponse({
253
+ errors: [
254
+ {
255
+ message: 'Something went wrong',
256
+ locations: null
257
+ }
258
+ ]
259
+ });
260
+ jest.advanceTimersByTime(pollInterval);
261
+ let err;
262
+ try {
263
+ await intervalQuery.getPendingResponse();
264
+ } catch (_err) {
265
+ err = _err;
266
+ }
267
+ expect(err).toBeInstanceOf(Error);
268
+
269
+ const cache = intervalQuery.extractCache();
270
+ expect(cache['Channel:1']).toBeTruthy();
271
+ expect(cache['Channel:1'].name).toBe('test1');
272
+
273
+ const res = await intervalQuery.results();
274
+
275
+ expect(res.channels[0].name).toBe('test1');
276
+ });
@@ -0,0 +1,234 @@
1
+ // TODO
2
+ // File reverted from TypeScript, should be reverted when pipeline supports it
3
+ // https://gitlab.jetshop.se/jetshop/flight/merge_requests/409/diffs?commit_id=d30490f833ec2d2eec94e5a75ed99de71e666377
4
+ // https://gitlab.jetshop.se/jetshop/flight/blob/94b6108017f6205e7d31f6bedb19c14f278d227a/packages/core/boot/server/PersistedApolloClient.test.ts
5
+
6
+ import {
7
+ ApolloClient,
8
+ ApolloError,
9
+ InMemoryCache,
10
+ HttpLink
11
+ } from '@apollo/client';
12
+ import { PersistedApolloClient } from './PersistedApolloClient';
13
+ import nock from 'nock';
14
+ import channelsQuery from '../ChannelsQuery.gql';
15
+
16
+ global.__IN_SERVER__ = true;
17
+ jest.useFakeTimers();
18
+ beforeEach(() => {
19
+ nock.disableNetConnect();
20
+ });
21
+ afterEach(() => {
22
+ jest.restoreAllMocks();
23
+ jest.clearAllTimers();
24
+ nock.enableNetConnect();
25
+ nock.cleanAll();
26
+ });
27
+ const apolloConfig = {
28
+ shopid: '...',
29
+ graphQLURI: 'http://localhost/graphql',
30
+ token: '...',
31
+ enableGateway: false,
32
+ channelsQuery
33
+ };
34
+ function getPendingResponse(persitedClient) {
35
+ const channelsIntervalQuery = persitedClient.channelsIntervalQuery;
36
+ return channelsIntervalQuery.getPendingResponse();
37
+ }
38
+ /**
39
+ * Mocks response for `/graphql`
40
+ * Only for **one** request, it resets on each call.
41
+ */
42
+ function mockResponse({ channels = null, statusCode = 200, errors }) {
43
+ const data = {
44
+ errors,
45
+ data: {
46
+ channels: Array.isArray(channels)
47
+ ? channels.map((channel) =>
48
+ Object.assign(
49
+ {
50
+ __typename: 'Channel',
51
+ requiresAuth: false,
52
+ countries: null,
53
+ currencies: null,
54
+ defaultCurrency: null,
55
+ defaultLanguage: null,
56
+ displayName: null,
57
+ groupName: null,
58
+ isDefault: null,
59
+ languages: null,
60
+ settings: null,
61
+ name: null,
62
+ url: null,
63
+ imageUrl: null
64
+ },
65
+ channel
66
+ )
67
+ )
68
+ : null
69
+ }
70
+ };
71
+ const res = jest.fn(() => data);
72
+ nock('http://localhost').post('/graphql').reply(statusCode, res);
73
+ return res;
74
+ }
75
+ test('does request on init', async () => {
76
+ const firstCall = mockResponse({
77
+ channels: [
78
+ {
79
+ id: 1,
80
+ name: 'test'
81
+ }
82
+ ]
83
+ });
84
+ const persistedClient = new PersistedApolloClient({
85
+ createClientOpts: { apolloConfig }
86
+ });
87
+ await getPendingResponse(persistedClient);
88
+ expect(firstCall).toHaveBeenCalled();
89
+ const channels = await persistedClient.getChannels();
90
+ expect(channels).toHaveLength(1);
91
+ expect(channels[0].id).toBe(1);
92
+ });
93
+ test('does request on intervals', async () => {
94
+ mockResponse({
95
+ channels: [
96
+ {
97
+ id: 1,
98
+ name: 'test1'
99
+ }
100
+ ]
101
+ });
102
+ const channelsPollInterval = 60e3;
103
+ const persistedClient = new PersistedApolloClient({
104
+ createClientOpts: { apolloConfig },
105
+ channelsPollInterval
106
+ });
107
+ {
108
+ const channels = await persistedClient.getChannels();
109
+ expect(channels[0].name).toBe('test1');
110
+ }
111
+ {
112
+ mockResponse({
113
+ channels: [
114
+ {
115
+ id: 2,
116
+ name: 'test2'
117
+ }
118
+ ]
119
+ });
120
+ jest.advanceTimersByTime(channelsPollInterval + 1);
121
+ await getPendingResponse(persistedClient);
122
+ const channels = await persistedClient.getChannels();
123
+ expect(channels[0].name).toBe('test2');
124
+ }
125
+ {
126
+ mockResponse({
127
+ channels: [
128
+ {
129
+ id: 3,
130
+ name: 'test3'
131
+ }
132
+ ]
133
+ });
134
+ jest.advanceTimersByTime(channelsPollInterval);
135
+ await getPendingResponse(persistedClient);
136
+ const channels = await persistedClient.getChannels();
137
+ expect(channels[0].name).toBe('test3');
138
+ }
139
+ });
140
+ test('propagates bad statusCodes', async () => {
141
+ mockResponse({ statusCode: 500 });
142
+ const persistedClient = new PersistedApolloClient({
143
+ createClientOpts: { apolloConfig }
144
+ });
145
+ expect.assertions(1);
146
+ try {
147
+ await getPendingResponse(persistedClient);
148
+ } catch (err) {
149
+ expect(err.networkError.statusCode).toBe(500);
150
+ }
151
+ });
152
+ test('propagates when response contains GraphQL-errors', async () => {
153
+ const errorMessage = 'Something went wrong';
154
+ mockResponse({
155
+ errors: [
156
+ {
157
+ message: errorMessage,
158
+ locations: null
159
+ }
160
+ ]
161
+ });
162
+ const persistedClient = new PersistedApolloClient({
163
+ createClientOpts: { apolloConfig }
164
+ });
165
+ expect.assertions(2);
166
+ try {
167
+ await getPendingResponse(persistedClient);
168
+ } catch (_err) {
169
+ const err = _err;
170
+ expect(err).toBeInstanceOf(ApolloError);
171
+ expect(err.message).toBe(`GraphQL error: ${errorMessage}`);
172
+ }
173
+ });
174
+ test('extracting and using cache in new client', async () => {
175
+ mockResponse({
176
+ channels: [
177
+ {
178
+ id: 1,
179
+ name: 'test1'
180
+ }
181
+ ]
182
+ });
183
+ const pollInterval = 60e3;
184
+ const channelsPollInterval = 60e3;
185
+ const persistedClient = new PersistedApolloClient({
186
+ createClientOpts: { apolloConfig },
187
+ channelsPollInterval
188
+ });
189
+ await getPendingResponse(persistedClient);
190
+ {
191
+ const cache = persistedClient.extractCache();
192
+ expect(cache).toHaveProperty('Channel:1');
193
+ expect(cache['Channel:1'].name).toBe('test1');
194
+ const newClient = new ApolloClient({
195
+ link: new HttpLink(),
196
+ cache: new InMemoryCache().restore(cache)
197
+ });
198
+ const res = newClient.readQuery({
199
+ query: channelsQuery
200
+ });
201
+ expect(res.channels).toHaveLength(1);
202
+ expect(res.channels[0].name).toBe('test1');
203
+ }
204
+ // update data in new request
205
+ {
206
+ const mock = mockResponse({
207
+ channels: [
208
+ {
209
+ id: 1,
210
+ name: 'test1--updated'
211
+ },
212
+ {
213
+ id: 2,
214
+ name: 'test2'
215
+ }
216
+ ]
217
+ });
218
+ jest.advanceTimersByTime(pollInterval);
219
+ await getPendingResponse(persistedClient);
220
+ expect(mock).toHaveBeenCalled();
221
+ const cache = persistedClient.extractCache();
222
+ const newClient = new ApolloClient({
223
+ link: new HttpLink(),
224
+ cache: new InMemoryCache().restore(cache)
225
+ });
226
+ const res = newClient.readQuery({
227
+ query: channelsQuery
228
+ });
229
+ expect(res.channels).toHaveLength(2);
230
+ expect(res.channels[0].name).toBe('test1--updated');
231
+ expect(res.channels[1].name).toBe('test2');
232
+ }
233
+ });
234
+ //# sourceMappingURL=PersistedApolloClient.test.js.map
@@ -0,0 +1,114 @@
1
+ import express from 'express';
2
+ import { ApolloServer, gql } from 'apollo-server-express';
3
+ import listen from './listen';
4
+ import createApolloServer from './createApolloServer';
5
+ import fetch from 'node-fetch';
6
+ import { GraphQLError } from 'graphql';
7
+
8
+ function createGraphqlClient(port) {
9
+ const url = `http://localhost:${port}/graphql`;
10
+
11
+ return async function request({ query, variables }) {
12
+ const body = { query, variables };
13
+
14
+ const resBody = await fetch(url, {
15
+ method: 'post',
16
+ body: JSON.stringify(body),
17
+ headers: { 'Content-Type': 'application/json' }
18
+ }).then(r => r.json());
19
+
20
+ return resBody;
21
+ };
22
+ }
23
+
24
+ async function createTargetServer() {
25
+ const typeDefs = gql`
26
+ type Query {
27
+ hello(name: String!): String!
28
+ }
29
+ `;
30
+
31
+ const resolvers = {
32
+ Query: {
33
+ hello: async (_source, { name }) => {
34
+ if (name === '') {
35
+ throw new GraphQLError(`Name can't be empty`);
36
+ }
37
+
38
+ return `Hello ${name}`;
39
+ }
40
+ }
41
+ };
42
+
43
+ const apolloServer = new ApolloServer({
44
+ typeDefs,
45
+ resolvers
46
+ });
47
+
48
+ const app = express();
49
+
50
+ apolloServer.applyMiddleware({ app });
51
+
52
+ const { port, close } = await listen({ app, port: 0 });
53
+ const query = createGraphqlClient(port);
54
+
55
+ return { port, close, query };
56
+ }
57
+ async function createLocalServer({ targetPort }) {
58
+ const { apolloServer } = await createApolloServer({
59
+ apolloConfig: {
60
+ graphQLURI: `http://localhost:${targetPort}/graphql`
61
+ }
62
+ });
63
+
64
+ const app = express();
65
+ apolloServer.applyMiddleware({ app });
66
+
67
+ const { port, close } = await listen({ app, port: 0 });
68
+ const query = createGraphqlClient(port);
69
+
70
+ return { port, close, query };
71
+ }
72
+
73
+ let targetServer;
74
+ let localServer;
75
+
76
+ afterEach(async () => {
77
+ if (localServer) {
78
+ await localServer.close();
79
+ }
80
+ if (targetServer) {
81
+ await targetServer.close();
82
+ }
83
+ localServer = null;
84
+ targetServer = null;
85
+ });
86
+
87
+ test('forwarding queries', async () => {
88
+ targetServer = await createTargetServer();
89
+ localServer = await createLocalServer({ targetPort: targetServer.port });
90
+
91
+ const { data } = await localServer.query({
92
+ query: '{ hello(name: "World") }'
93
+ });
94
+
95
+ expect(data.hello).toBe('Hello World');
96
+ });
97
+
98
+ test('propagating errors', async () => {
99
+ targetServer = await createTargetServer();
100
+ localServer = await createLocalServer({ targetPort: targetServer.port });
101
+
102
+ const query = '{ hello(name: "") }'; // should trigger "Name can't be empty"
103
+
104
+ const { errors: expectedErrors } = await targetServer.query({ query });
105
+ const { errors: actualErrors } = await localServer.query({ query });
106
+
107
+ expect(expectedErrors).toHaveLength(1);
108
+ expect(actualErrors).toHaveLength(1);
109
+
110
+ expect(expectedErrors[0].message).toBe(`Name can't be empty`);
111
+
112
+ expect(actualErrors[0].message).toBe(expectedErrors[0].message);
113
+ expect(actualErrors[0].path).toEqual(expectedErrors[0].path);
114
+ });