@jetshop/core 6.3.8-alpha.33 → 6.3.8

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 (96) hide show
  1. package/ChannelHandler/channelUtils.js +1 -1
  2. package/ChannelHandler/channelUtils.js.map +1 -1
  3. package/boot/apollo.js +39 -3
  4. package/boot/apollo.js.map +1 -1
  5. package/boot/client/startClient.js +16 -1
  6. package/boot/client/startClient.js.map +1 -1
  7. package/boot/server/IntervalQuery.d.ts +32 -0
  8. package/boot/server/IntervalQuery.js +95 -0
  9. package/boot/server/IntervalQuery.js.map +1 -0
  10. package/boot/server/IntervalQuery.test.js +276 -0
  11. package/boot/server/PersistedApolloClient.d.ts +20 -0
  12. package/boot/server/PersistedApolloClient.js +40 -0
  13. package/boot/server/PersistedApolloClient.js.map +1 -0
  14. package/boot/server/PersistedApolloClient.test.js +234 -0
  15. package/boot/server/createApolloServer.js +6 -0
  16. package/boot/server/createApolloServer.js.map +1 -1
  17. package/boot/server/createApolloServer.test.js +114 -0
  18. package/boot/server/createRenderer.d.ts +2 -2
  19. package/boot/server/createRenderer.js +25 -12
  20. package/boot/server/createRenderer.js.map +1 -1
  21. package/boot/server/createServer.js +11 -0
  22. package/boot/server/createServer.js.map +1 -1
  23. package/boot/server/getPreloadAssets.test.js +133 -0
  24. package/boot/server/index.d.ts +2 -0
  25. package/boot/server/index.js +16 -4
  26. package/boot/server/index.js.map +1 -1
  27. package/boot/server/persistedQueries/PersistedClient.d.ts +22 -0
  28. package/boot/server/persistedQueries/PersistedClient.js +58 -0
  29. package/boot/server/persistedQueries/PersistedClient.js.map +1 -0
  30. package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +201 -0
  31. package/boot/server/persistedQueries/__tests__/mockQuery.gql +6 -0
  32. package/boot/server/persistedQueries/getPersistedQueriesForRequest.d.ts +3 -0
  33. package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +27 -0
  34. package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +1 -0
  35. package/boot/server/saleSource.test.js +39 -0
  36. package/boot/server/salesSource.d.ts +8 -0
  37. package/boot/server/salesSource.js +16 -0
  38. package/boot/server/salesSource.js.map +1 -0
  39. package/components/Auth/formFieldsFromSettings.d.ts +1 -1
  40. package/components/ConfigProvider.d.ts +15 -3
  41. package/components/ConfigProvider.js.map +1 -1
  42. package/components/DynamicRoute/GenericError.js +4 -0
  43. package/components/DynamicRoute/GenericError.js.map +1 -1
  44. package/components/DynamicRoute/ProductRoute.js +11 -6
  45. package/components/DynamicRoute/ProductRoute.js.map +1 -1
  46. package/components/Pagination/PaginationProvider.d.ts +2 -0
  47. package/components/Pagination/PaginationProvider.js +10 -1
  48. package/components/Pagination/PaginationProvider.js.map +1 -1
  49. package/components/StructuredData/StructuredProductData.d.ts +1 -1
  50. package/errorReporting.browser.d.ts +3 -0
  51. package/errorReporting.browser.js +17 -0
  52. package/errorReporting.browser.js.map +1 -0
  53. package/errorReporting.d.ts +4 -0
  54. package/errorReporting.js +24 -0
  55. package/errorReporting.js.map +1 -0
  56. package/errorReporting.server.d.ts +3 -0
  57. package/errorReporting.server.js +12 -0
  58. package/errorReporting.server.js.map +1 -0
  59. package/errorReporting.shared.d.ts +5 -0
  60. package/errorReporting.shared.js +17 -0
  61. package/errorReporting.shared.js.map +1 -0
  62. package/global.d.ts +1 -0
  63. package/hooks/usePreconnectLinks.js +5 -1
  64. package/hooks/usePreconnectLinks.js.map +1 -1
  65. package/hooks/usePreconnectLinks.test.js +4 -0
  66. package/package.json +6 -5
  67. package/polyfills.d.ts +1 -0
  68. package/polyfills.js +58 -0
  69. package/polyfills.js.map +1 -0
  70. package/sentry/client.d.ts +1 -0
  71. package/sentry/client.js +30 -0
  72. package/sentry/client.js.map +1 -0
  73. package/sentry/common.d.ts +1 -0
  74. package/sentry/common.js +5 -0
  75. package/sentry/common.js.map +1 -0
  76. package/sentry/server.d.ts +1 -0
  77. package/sentry/server.js +20 -0
  78. package/sentry/server.js.map +1 -0
  79. package/sentry/utils.d.ts +1 -0
  80. package/sentry/utils.js +2 -0
  81. package/sentry/utils.js.map +1 -0
  82. package/boot/worker/createApolloServerWorker.d.ts +0 -18
  83. package/boot/worker/createApolloServerWorker.js +0 -119
  84. package/boot/worker/createApolloServerWorker.js.map +0 -1
  85. package/boot/worker/createRenderer.d.ts +0 -23
  86. package/boot/worker/createRenderer.js +0 -242
  87. package/boot/worker/createRenderer.js.map +0 -1
  88. package/boot/worker/getPrefetchFiles.d.ts +0 -10
  89. package/boot/worker/getPrefetchFiles.js +0 -20
  90. package/boot/worker/getPrefetchFiles.js.map +0 -1
  91. package/boot/worker/getPreloadAssets.d.ts +0 -10
  92. package/boot/worker/getPreloadAssets.js +0 -18
  93. package/boot/worker/getPreloadAssets.js.map +0 -1
  94. package/boot/worker/index.d.ts +0 -6
  95. package/boot/worker/index.js +0 -98
  96. package/boot/worker/index.js.map +0 -1
@@ -20,10 +20,13 @@ export interface ApolloConfig {
20
20
  engineApiKey?: string;
21
21
  enableGateway?: boolean;
22
22
  channelsQuery?: DocumentNode;
23
- persistedQueries?: any;
23
+ persistedQueries?: {
24
+ query: DocumentNode;
25
+ variables?: Record<string, any>;
26
+ }[];
24
27
  }
25
28
  export interface ChannelOverrides {
26
- [id: number]: Omit<BootOptions, 'apolloConfig' | 'intl' | 'disableGeoRedirect' | 'singleDomainMode' | 'optimize' | 'routes' | 'loginPath' | 'pathsWithNoAuthRequired'>;
29
+ [id: number]: Omit<BootOptions, 'usePolyfilling' | 'apolloConfig' | 'intl' | 'disableGeoRedirect' | 'singleDomainMode' | 'optimize' | 'routes' | 'loginPath' | 'pathsWithNoAuthRequired'>;
27
30
  }
28
31
  export interface OptimizeConfig {
29
32
  container: string;
@@ -79,15 +82,24 @@ export interface BootOptions {
79
82
  optimize?: OptimizeConfig;
80
83
  routes?: Routes;
81
84
  preload?: PreLoaderProviderConfig;
82
- sentry?: any;
85
+ sentry?: Sentry;
83
86
  /** Server specific configuration */
84
87
  server?: Server;
85
88
  usePrimaryRouteForProducts?: boolean;
86
89
  useTrackingConsentAPI?: boolean;
87
90
  useIndefinitelySavedCart?: boolean;
91
+ /** Enable this if you want to use Polyfill.io service before booting shop on client */
88
92
  usePolyfilling?: boolean;
89
93
  useMobileImageSizes?: boolean;
90
94
  }
95
+ interface Sentry {
96
+ /** DSN used to track client side errors */
97
+ clientDSN?: string;
98
+ /** DSN used to track server side errors */
99
+ serverDSN?: string;
100
+ /** A list of strings or RegExps to filter errors to ignore */
101
+ ignoreErrors?: (string | RegExp)[];
102
+ }
91
103
  interface Server {
92
104
  /** GraphQL proxy server configuration */
93
105
  graphql?: GraphQL;
@@ -1 +1 @@
1
- {"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["ConfigProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAgB,MAAM,OAAO,CAAC;AAM3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAkH5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAC5C,SAAS,CACV,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,EAO9B;QAP8B,EAC7B,MAAM,EAAE,UAAU,EAClB,QAAQ,OAKT,EAJI,IAAI,cAHsB,sBAI9B,CADQ;IAKP,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,CACL,oBAAC,iBAAiB,CAAC,QAAQ,kBAAC,KAAK,EAAE,MAAM,IAAM,IAAI,GAChD,QAAQ,CACkB,CAC9B,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"ConfigProvider.js","sourceRoot":"","sources":["ConfigProvider.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,aAAa,EAAgB,MAAM,OAAO,CAAC;AAM3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AA2H5D,MAAM,CAAC,MAAM,iBAAiB,GAAG,aAAa,CAC5C,SAAS,CACV,CAAC;AAEF,MAAM,UAAU,cAAc,CAAC,EAO9B;QAP8B,EAC7B,MAAM,EAAE,UAAU,EAClB,QAAQ,OAKT,EAJI,IAAI,cAHsB,sBAI9B,CADQ;IAKP,MAAM,MAAM,GAAG,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC5C,OAAO,CACL,oBAAC,iBAAiB,CAAC,QAAQ,kBAAC,KAAK,EAAE,MAAM,IAAM,IAAI,GAChD,QAAQ,CACkB,CAC9B,CAAC;AACJ,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import * as React from 'react';
2
+ import report from '@jetshop/core/errorReporting';
2
3
  export const DefaultError = ({ error, info }) => (React.createElement("section", { style: {
3
4
  width: '57ch',
4
5
  maxWidth: '100%',
@@ -40,6 +41,9 @@ class ErrorBoundary extends React.Component {
40
41
  };
41
42
  }
42
43
  componentDidCatch(error, info) {
44
+ const { extraInfo = {} } = this.props;
45
+ // Report to Sentry
46
+ report(error, Object.assign(Object.assign({}, extraInfo), { reactInfo: info }));
43
47
  this.setState({ error, info });
44
48
  }
45
49
  render() {
@@ -1 +1 @@
1
- {"version":3,"file":"GenericError.js","sourceRoot":"","sources":["GenericError.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAa/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAsB,EAAE,EAAE,CAAC,CACnE,iCACE,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,MAAM;KAChB;IAED,4BACE,KAAK,EAAE;YACL,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,MAAM;SACrB,4BAGE;IACL,2EAAgD;IAChD;QACE,2BACE,IAAI,EAAC,GAAG,EACR,KAAK,EAAE;gBACL,OAAO,EAAE,cAAc;gBACvB,MAAM,EAAE,eAAe;gBACvB,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,QAAQ;gBACjB,cAAc,EAAE,MAAM;gBACtB,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,SAAS;gBACrB,MAAM,EAAE,mBAAmB;gBAC3B,KAAK,EAAE,MAAM;aACd,gCAGC,CACA;IACL,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CACxC;QACG,KAAK,IAAI;;YAAW,KAAK,CAAC,OAAO,CAAK;QACtC,IAAI,IAAI,CACP,6BACE,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,GAAG;gBACf,KAAK,EAAE,SAAS;aACjB,IAEA,IAAI,CAAC,cAAc,CAChB,CACP,CACG,CACP,CACO,CACX,CAAC;AAEF,MAAM,aAAc,SAAQ,KAAK,CAAC,SAGjC;IAHD;;QAIE,UAAK,GAAuB;YAC1B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;SAChB,CAAC;IAmBJ,CAAC;IAbC,iBAAiB,CAAC,KAAY,EAAE,IAAqB;QACnD,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAyC,CAAC;QAElE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC5B;QAED,OAAO,oBAAC,IAAI,oBAAK,IAAI,CAAC,KAAK,EAAI,CAAC;IAClC,CAAC;;AAhBM,0BAAY,GAAgC;IACjD,SAAS,EAAE,YAAY;CACxB,CAAC;AAiBJ,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"GenericError.js","sourceRoot":"","sources":["GenericError.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,MAAM,MAAM,8BAA8B,CAAC;AAalD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAsB,EAAE,EAAE,CAAC,CACnE,iCACE,KAAK,EAAE;QACL,KAAK,EAAE,MAAM;QACb,QAAQ,EAAE,MAAM;QAChB,MAAM,EAAE,WAAW;QACnB,OAAO,EAAE,MAAM;KAChB;IAED,4BACE,KAAK,EAAE;YACL,QAAQ,EAAE,QAAQ;YAClB,YAAY,EAAE,MAAM;SACrB,4BAGE;IACL,2EAAgD;IAChD;QACE,2BACE,IAAI,EAAC,GAAG,EACR,KAAK,EAAE;gBACL,OAAO,EAAE,cAAc;gBACvB,MAAM,EAAE,eAAe;gBACvB,YAAY,EAAE,KAAK;gBACnB,OAAO,EAAE,QAAQ;gBACjB,cAAc,EAAE,MAAM;gBACtB,UAAU,EAAE,GAAG;gBACf,UAAU,EAAE,SAAS;gBACrB,MAAM,EAAE,mBAAmB;gBAC3B,KAAK,EAAE,MAAM;aACd,gCAGC,CACA;IACL,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,IAAI,CACxC;QACG,KAAK,IAAI;;YAAW,KAAK,CAAC,OAAO,CAAK;QACtC,IAAI,IAAI,CACP,6BACE,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,GAAG;gBACf,KAAK,EAAE,SAAS;aACjB,IAEA,IAAI,CAAC,cAAc,CAChB,CACP,CACG,CACP,CACO,CACX,CAAC;AAEF,MAAM,aAAc,SAAQ,KAAK,CAAC,SAGjC;IAHD;;QAIE,UAAK,GAAuB;YAC1B,KAAK,EAAE,SAAS;YAChB,IAAI,EAAE,SAAS;SAChB,CAAC;IAsBJ,CAAC;IAhBC,iBAAiB,CAAC,KAAY,EAAE,IAAqB;QACnD,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,mBAAmB;QACnB,MAAM,CAAC,KAAK,kCAAO,SAAS,KAAE,SAAS,EAAE,IAAI,IAAG,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAyC,CAAC;QAElE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE;YACrB,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;SAC5B;QAED,OAAO,oBAAC,IAAI,oBAAK,IAAI,CAAC,KAAK,EAAI,CAAC;IAClC,CAAC;;AAnBM,0BAAY,GAAgC;IACjD,SAAS,EAAE,YAAY;CACxB,CAAC;AAoBJ,eAAe,aAAa,CAAC"}
@@ -19,13 +19,18 @@ import { StructuredProductData } from '../StructuredData';
19
19
  import { OpenGraphProductData } from '../OpenGraph';
20
20
  import { unSlugify } from '@jetshop/core/analytics/integrations/unslugify';
21
21
  import { breadcrumbsWithoutProduct } from '@jetshop/core/analytics/utils/breadcrumbsWithoutProduct';
22
+ import { useVariantFromUrl } from '../../hooks/useProductVariants/useVariantFromUrl';
22
23
  const ProductRoute = (props) => {
23
- var _a, _b, _c, _d, _e, _f, _g, _h, _j;
24
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
24
25
  const { component: ProductPage, partialProduct } = props, rest = __rest(props, ["component", "partialProduct"]);
25
26
  const product = ((_b = (_a = props.result.data) === null || _a === void 0 ? void 0 : _a.route) === null || _b === void 0 ? void 0 : _b.object) || ((_c = props.result.data) === null || _c === void 0 ? void 0 : _c.product);
26
27
  const { structuredData, openGraph, tracking } = useShopConfig();
27
28
  const location = useLocation();
28
29
  const track = useTracker();
30
+ const initialVariantFromUrl = useVariantFromUrl();
31
+ const initialVariant = (((_d = initialVariantFromUrl === null || initialVariantFromUrl === void 0 ? void 0 : initialVariantFromUrl.values) === null || _d === void 0 ? void 0 : _d.length) > 0
32
+ ? initialVariantFromUrl
33
+ : null);
29
34
  const disableStructuredProductData = structuredData
30
35
  ? !!structuredData.disableDefaultProductData
31
36
  : false;
@@ -50,16 +55,16 @@ const ProductRoute = (props) => {
50
55
  }));
51
56
  }
52
57
  }, [
53
- (_d = location.state) === null || _d === void 0 ? void 0 : _d.list,
58
+ (_e = location.state) === null || _e === void 0 ? void 0 : _e.list,
54
59
  product,
55
- (_e = props.result.data) === null || _e === void 0 ? void 0 : _e.product,
56
- (_g = (_f = props.result.data) === null || _f === void 0 ? void 0 : _f.route) === null || _g === void 0 ? void 0 : _g.breadcrumbs,
57
- (_j = (_h = props.result.data) === null || _h === void 0 ? void 0 : _h.route) === null || _j === void 0 ? void 0 : _j.object,
60
+ (_f = props.result.data) === null || _f === void 0 ? void 0 : _f.product,
61
+ (_h = (_g = props.result.data) === null || _g === void 0 ? void 0 : _g.route) === null || _h === void 0 ? void 0 : _h.breadcrumbs,
62
+ (_k = (_j = props.result.data) === null || _j === void 0 ? void 0 : _j.route) === null || _k === void 0 ? void 0 : _k.object,
58
63
  track
59
64
  ]);
60
65
  return (React.createElement(React.Fragment, null,
61
66
  product && (React.createElement(React.Fragment, null,
62
- !disableStructuredProductData && (React.createElement(StructuredProductData, { product: product })),
67
+ !disableStructuredProductData && (React.createElement(StructuredProductData, { product: product, initialVariant: initialVariant })),
63
68
  !disableOpenGraphProductData && (React.createElement(OpenGraphProductData, { product: product })))),
64
69
  React.createElement(ProductConfigurationProvider, { product: product },
65
70
  React.createElement(ProductPage, Object.assign({}, rest, { product: product, partialProduct: partialProduct })))));
@@ -1 +1 @@
1
- {"version":3,"file":"ProductRoute.js","sourceRoot":"","sources":["ProductRoute.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ProductRoute.js","sourceRoot":"","sources":["ProductRoute.tsx"],"names":[],"mappings":"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"}
@@ -8,10 +8,12 @@ export type IPaginationProps = {
8
8
  defaultProductsPerPage?: number;
9
9
  /** The query param to use for pagination. @default 'page' */
10
10
  queryParam?: string;
11
+ errorReportingEnabled?: boolean;
11
12
  } & ReactCookieProps;
12
13
  export declare function usePagination(): import("@jetshop/core/components/Pagination/PaginationContext").PaginationState;
13
14
  declare const _default: React.ComponentType<{
14
15
  defaultProductsPerPage?: number;
15
16
  queryParam?: string;
17
+ errorReportingEnabled?: boolean;
16
18
  }>;
17
19
  export default _default;
@@ -1,5 +1,6 @@
1
1
  import { pushHistory, replaceHistory } from '@jetshop/core/components/Filters/utils/updateHistory';
2
2
  import PaginationContext from '@jetshop/core/components/Pagination/PaginationContext';
3
+ import report from '@jetshop/core/errorReporting';
3
4
  import qs from 'qs';
4
5
  import React, { useCallback, useContext, useEffect, useMemo, useState } from 'react';
5
6
  import { withCookies } from 'react-cookie';
@@ -45,7 +46,7 @@ const calculateOffset = (page, perPage) => {
45
46
  return 0;
46
47
  }
47
48
  };
48
- const PaginationProvider = ({ cookies, defaultProductsPerPage = 16, children, queryParam = 'page' }) => {
49
+ const PaginationProvider = ({ cookies, defaultProductsPerPage = 16, children, queryParam = 'page', errorReportingEnabled = true }) => {
49
50
  const history = useHistory();
50
51
  const location = useLocation();
51
52
  const [currentPage, setCurrentPage] = useState(getPageFromSearch(location, queryParam) || 1);
@@ -69,6 +70,14 @@ const PaginationProvider = ({ cookies, defaultProductsPerPage = 16, children, qu
69
70
  }, [cookies]);
70
71
  const cookieProductsPerPage = parseInt(cookies.get('perPage'), 10);
71
72
  const perPage = cookieProductsPerPage || defaultProductsPerPage;
73
+ if (errorReportingEnabled && currentPage >= 1000) {
74
+ report(new Error('Page number is too nigh'), {
75
+ currentPage,
76
+ perPage,
77
+ location,
78
+ history
79
+ });
80
+ }
72
81
  const value = useMemo(() => ({
73
82
  currentPage,
74
83
  offset: calculateOffset(currentPage, perPage),
@@ -1 +1 @@
1
- {"version":3,"file":"PaginationProvider.js","sourceRoot":"","sources":["PaginationProvider.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"PaginationProvider.js","sourceRoot":"","sources":["PaginationProvider.tsx"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ export interface StructuredProductDataProps {
5
5
  /** The product object */
6
6
  product: FlightProduct;
7
7
  /** Optional pre-selected variant */
8
- initialVariant?: ProductVariantOption;
8
+ initialVariant?: ProductVariantOption | null;
9
9
  /**
10
10
  * Optional object containing extra fields. These will be merged with the
11
11
  * default fields. Full list of fields available at
@@ -0,0 +1,3 @@
1
+ import { Extras } from './errorReporting.shared';
2
+ declare const _default: (error: Error, extra?: Extras) => void;
3
+ export default _default;
@@ -0,0 +1,17 @@
1
+ import * as Sentry from '@sentry/browser';
2
+ import { convertAnyToError } from './errorReporting.shared';
3
+ const errorReporting = (error, extra = {}) => {
4
+ Sentry.withScope((scope) => {
5
+ // https://github.com/getsentry/sentry-javascript/issues/1607#issuecomment-425974249
6
+ Object.keys(extra).forEach((key) => {
7
+ scope.setExtra(key, extra[key]);
8
+ });
9
+ Sentry.captureException(convertAnyToError(error));
10
+ });
11
+ };
12
+ export default __USE_SENTRY__
13
+ ? errorReporting
14
+ : () => {
15
+ return;
16
+ };
17
+ //# sourceMappingURL=errorReporting.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorReporting.browser.js","sourceRoot":"","sources":["errorReporting.browser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAU,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,cAAc,GAAG,CAAC,KAAY,EAAE,QAAgB,EAAE,EAAE,EAAE;IAC1D,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,oFAAoF;QACpF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,eAAe,cAAc;IAC3B,CAAC,CAAC,cAAc;IAChB,CAAC,CAAC,GAAG,EAAE;QACH,OAAO;IACT,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ import { Extras } from './errorReporting.shared';
2
+ declare function errorReporting(error: Error, extra?: Extras): void;
3
+ declare const _default: typeof errorReporting;
4
+ export default _default;
@@ -0,0 +1,24 @@
1
+ /*
2
+ Import Sentry's node or browser moudule depending on env
3
+
4
+ Use process.env.BUILD_TARGET over @jetshop/core/inServer.
5
+
6
+ When using `process.env.*` this is evaluated at compile time & only one
7
+ of the lines will transpiled into the final code.
8
+ */
9
+ function errorReporting(error, extra) {
10
+ let report;
11
+ if (__IN_SERVER__) {
12
+ report = require('./errorReporting.server').default;
13
+ }
14
+ else {
15
+ report = require('./errorReporting.browser').default;
16
+ }
17
+ return report(error, extra);
18
+ }
19
+ export default __USE_SENTRY__
20
+ ? errorReporting
21
+ : (_, __) => {
22
+ return;
23
+ };
24
+ //# sourceMappingURL=errorReporting.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorReporting.js","sourceRoot":"","sources":["errorReporting.ts"],"names":[],"mappings":"AAEA;;;;;;;EAOE;AACF,SAAS,cAAc,CAAC,KAAY,EAAE,KAAc;IAClD,IAAI,MAAc,CAAC;IACnB,IAAI,aAAa,EAAE;QACjB,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,OAAO,CAAC;KACrD;SAAM;QACL,MAAM,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAAC,OAAO,CAAC;KACtD;IACD,OAAO,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC9B,CAAC;AAED,eAAe,cAAc;IAC3B,CAAC,CAAC,cAAc;IAChB,CAAC,CAAC,CAAC,CAAQ,EAAE,EAAU,EAAE,EAAE;QACvB,OAAO;IACT,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Extras } from './errorReporting.shared';
2
+ declare const _default: (error: Error, extra?: Extras) => void;
3
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import * as Sentry from '@sentry/node';
2
+ import { convertAnyToError } from './errorReporting.shared';
3
+ export default (error, extra = {}) => {
4
+ Sentry.withScope((scope) => {
5
+ // https://github.com/getsentry/sentry-javascript/issues/1607#issuecomment-425974249
6
+ Object.keys(extra).forEach((key) => {
7
+ scope.setExtra(key, extra[key]);
8
+ });
9
+ Sentry.captureException(convertAnyToError(error));
10
+ });
11
+ };
12
+ //# sourceMappingURL=errorReporting.server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorReporting.server.js","sourceRoot":"","sources":["errorReporting.server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAU,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,eAAe,CAAC,KAAY,EAAE,QAAgB,EAAE,EAAE,EAAE;IAClD,MAAM,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;QACzB,oFAAoF;QACpF,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACjC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
@@ -0,0 +1,5 @@
1
+ export interface Extras {
2
+ [key: string]: any;
3
+ }
4
+ export type Report = (error: Error, extra?: Extras) => void;
5
+ export declare const convertAnyToError: (error: any) => any;
@@ -0,0 +1,17 @@
1
+ export const convertAnyToError = (error) => {
2
+ const errorType = Object.prototype.toString.call(error);
3
+ try {
4
+ switch (errorType) {
5
+ case '[object Error]':
6
+ return error;
7
+ case '[object String]':
8
+ return new Error(error);
9
+ default:
10
+ return new Error(JSON.stringify(error));
11
+ }
12
+ }
13
+ catch (err) {
14
+ return err;
15
+ }
16
+ };
17
+ //# sourceMappingURL=errorReporting.shared.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errorReporting.shared.js","sourceRoot":"","sources":["errorReporting.shared.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,KAAU,EAAE,EAAE;IAC9C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,IAAI;QACF,QAAQ,SAAS,EAAE;YACjB,KAAK,gBAAgB;gBACnB,OAAO,KAAK,CAAC;YAEf,KAAK,iBAAiB;gBACpB,OAAO,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC;YAE1B;gBACE,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;SAC3C;KACF;IAAC,OAAO,GAAG,EAAE;QACZ,OAAO,GAAG,CAAC;KACZ;AACH,CAAC,CAAC"}
package/global.d.ts CHANGED
@@ -13,6 +13,7 @@ declare module 'apollo-link' {
13
13
 
14
14
  declare global {
15
15
  let __IN_SERVER__: boolean;
16
+ let __USE_SENTRY__: boolean;
16
17
  }
17
18
 
18
19
  declare module 'history' {
@@ -1,8 +1,12 @@
1
1
  import { useShopConfig } from './useShopConfig';
2
2
  export function usePreconnectLinks({ ga = false, gtm = false } = {}) {
3
- const { apolloConfig } = useShopConfig();
3
+ const { apolloConfig, usePolyfilling } = useShopConfig();
4
4
  // These links are used with every store
5
5
  const staticLinks = [
6
+ usePolyfilling && {
7
+ href: 'https://cdnjs.cloudflare.com',
8
+ crossOrigin: null
9
+ },
6
10
  (apolloConfig === null || apolloConfig === void 0 ? void 0 : apolloConfig.graphQLURI) && {
7
11
  href: apolloConfig === null || apolloConfig === void 0 ? void 0 : apolloConfig.graphQLURI,
8
12
  crossOrigin: null
@@ -1 +1 @@
1
- {"version":3,"file":"usePreconnectLinks.js","sourceRoot":"","sources":["usePreconnectLinks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAYhD,MAAM,UAAU,kBAAkB,CAAC,EACjC,EAAE,GAAG,KAAK,EACV,GAAG,GAAG,KAAK,KACc,EAAE;IAC3B,MAAM,EAAE,YAAY,EAAE,GAAG,aAAa,EAAE,CAAC;IAEzC,wCAAwC;IACxC,MAAM,WAAW,GAAG;QAClB,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,KAAI;YAC1B,IAAI,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU;YAC9B,WAAW,EAAE,IAAI;SAClB;KACF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,+DAA+D;IAC/D,MAAM,OAAO,GAAG,EAAE;QAChB,CAAC,CAAC;YACE,kCAAkC;YAClC,wBAAwB;YACxB,iCAAiC;SAClC;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,OAAO;QACL,GAAG,WAAW;QACd,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"usePreconnectLinks.js","sourceRoot":"","sources":["usePreconnectLinks.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAYhD,MAAM,UAAU,kBAAkB,CAAC,EACjC,EAAE,GAAG,KAAK,EACV,GAAG,GAAG,KAAK,KACc,EAAE;IAC3B,MAAM,EAAE,YAAY,EAAE,cAAc,EAAE,GAAG,aAAa,EAAE,CAAC;IAEzD,wCAAwC;IACxC,MAAM,WAAW,GAAG;QAClB,cAAc,IAAI;YAChB,IAAI,EAAE,8BAA8B;YACpC,WAAW,EAAE,IAAI;SAClB;QACD,CAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU,KAAI;YAC1B,IAAI,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,UAAU;YAC9B,WAAW,EAAE,IAAI;SAClB;KACF,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAElB,+DAA+D;IAC/D,MAAM,OAAO,GAAG,EAAE;QAChB,CAAC,CAAC;YACE,kCAAkC;YAClC,wBAAwB;YACxB,iCAAiC;SAClC;QACH,CAAC,CAAC,EAAE,CAAC;IAEP,6CAA6C;IAC7C,MAAM,QAAQ,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjE,OAAO;QACL,GAAG,WAAW;QACd,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;KACzE,CAAC;AACJ,CAAC"}
@@ -12,6 +12,10 @@ function expectStaticLinks() {
12
12
  expect.objectContaining({
13
13
  href: apolloConfig.graphQLURI,
14
14
  crossOrigin: null
15
+ }),
16
+ expect.objectContaining({
17
+ href: 'https://cdn.polyfill.io',
18
+ crossOrigin: null
15
19
  })
16
20
  ];
17
21
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jetshop/core",
3
- "version": "6.3.8-alpha.33+1a96e0745",
3
+ "version": "6.3.8",
4
4
  "license": "MIT",
5
5
  "files": [
6
6
  "**/*.js",
@@ -32,17 +32,19 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@apollo/client": "~3.13.9",
35
- "@apollo/server": "^4.11.0",
36
- "@as-integrations/cloudflare-workers": "^1.1.1",
37
35
  "@graphql-tools/delegate": "^7.1.2",
38
36
  "@graphql-tools/stitch": "^7.5.1",
39
37
  "@graphql-tools/wrap": "^7.0.5",
40
38
  "@loadable/component": "^5.11.0",
41
39
  "@loadable/server": "^5.16.0",
40
+ "@sentry/browser": "^6.15.0",
41
+ "@sentry/core": "^6.15.0",
42
+ "@sentry/node": "^6.15.0",
42
43
  "@tanem/react-nprogress": "^5.0.44",
43
44
  "@xstate/react": "^0.8.1",
44
45
  "accept-language-parser": "^1.5.0",
45
46
  "apollo-server": "~2.6.9",
47
+ "apollo-server-caching": "^0.4.0",
46
48
  "apollo-server-express": "~2.6.9",
47
49
  "compression": "^1.7.2",
48
50
  "dnscache": "^1.0.2",
@@ -74,7 +76,6 @@
74
76
  "xstate": "^4.13.0"
75
77
  },
76
78
  "devDependencies": {
77
- "@cloudflare/workers-types": "^4.20241127.0",
78
79
  "@graphql-codegen/typescript": "^1.21.0",
79
80
  "@react-mock/localstorage": "^0.1.2",
80
81
  "@types/accept-language-parser": "^1.5.1",
@@ -111,5 +112,5 @@
111
112
  "react": "^18",
112
113
  "react-dom": "^18"
113
114
  },
114
- "gitHead": "1a96e074545c0d93b1663b41382a24ef6796fe3a"
115
+ "gitHead": "74e5c206d33c37e973bb0ca8c650a1c22a7bb0ad"
115
116
  }
package/polyfills.d.ts ADDED
@@ -0,0 +1 @@
1
+ export declare const createPolyfill: (locale: string, usePolyfilling: boolean) => string;
package/polyfills.js ADDED
@@ -0,0 +1,58 @@
1
+ const polyfills = (locale) => [
2
+ 'es2015',
3
+ 'Object.values',
4
+ 'Object.entries',
5
+ 'Object.keys',
6
+ 'Object.assign',
7
+ 'Array.prototype.find',
8
+ 'Array.prototype.findIndex',
9
+ 'Array.prototype.flatMap',
10
+ 'Array.prototype.includes',
11
+ 'Array.prototype.keys',
12
+ 'Array.from',
13
+ 'Array.prototype.fill',
14
+ 'String.prototype.endsWith',
15
+ 'String.prototype.startsWith',
16
+ 'URL',
17
+ 'IntersectionObserver',
18
+ `Intl.~locale.${locale}`,
19
+ 'Promise',
20
+ 'fetch',
21
+ 'Symbol',
22
+ 'ResizeObserver'
23
+ ];
24
+ export const createPolyfill = (locale, usePolyfilling) => {
25
+ const features = polyfills(locale).join(',');
26
+ // Here we add two script tags to be run once the client is loaded. One sets a global variable 'polyFillsLoaded' to false and adds a function bootShop which, when called will set 'polyFillsLoaded' to true. The second script will load the polyfills and once they are loaded will call the bootShop function to let the client know that the polyfills have been loaded and that the shop can be started.
27
+ return `
28
+ <script>
29
+ window.polyFillsLoaded = false;
30
+
31
+ // This is the base function that is later supplanted by startClient.tsx when it is ready to start the client
32
+ window.bootShop = function() {
33
+ window.polyFillsLoaded = true;
34
+ };
35
+
36
+ // Set the polyFillsLoaded flag to true and start the shop
37
+ window.onPolyfillLoad = function() {
38
+ window.polyFillsLoaded = true;
39
+ window.bootShop();
40
+ };
41
+
42
+
43
+ // If polyfill service does not respond, start the shop anyway
44
+ if (${usePolyfilling}) {
45
+ setTimeout(function () {
46
+ if(!window.polyFillsLoaded) {
47
+ window.bootShop();
48
+ }
49
+ }, 5000);
50
+ }
51
+ </script>
52
+
53
+ ${usePolyfilling
54
+ ? `<script async defer src='https://cdnjs.cloudflare.com/polyfill/v3/polyfill.min.js?version=4.8.0${process.env.NODE_ENV === 'production' ? '.min' : ''}.js&callback=onPolyfillLoad&features=${features}'></script>`
55
+ : '<script>window.bootShop();</script>'}
56
+ `;
57
+ };
58
+ //# sourceMappingURL=polyfills.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polyfills.js","sourceRoot":"","sources":["polyfills.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC;IACpC,QAAQ;IACR,eAAe;IACf,gBAAgB;IAChB,aAAa;IACb,eAAe;IACf,sBAAsB;IACtB,2BAA2B;IAC3B,yBAAyB;IACzB,0BAA0B;IAC1B,sBAAsB;IACtB,YAAY;IACZ,sBAAsB;IACtB,2BAA2B;IAC3B,6BAA6B;IAC7B,KAAK;IACL,sBAAsB;IACtB,gBAAgB,MAAM,EAAE;IACxB,SAAS;IACT,OAAO;IACP,QAAQ;IACR,gBAAgB;CACjB,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAAc,EAAE,cAAuB,EAAE,EAAE;IACxE,MAAM,QAAQ,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC7C,6YAA6Y;IAC7Y,OAAO;;;;;;;;;;;;;;;;;QAiBD,cAAc;;;;;;;;;IAUlB,cAAc;QACZ,CAAC,CAAC,kGACE,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EACnD,wCAAwC,QAAQ,aAAa;QAC/D,CAAC,CAAC,qCACN;CACD,CAAC;AACF,CAAC,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function init(dsn?: string, ignoreErrors?: (string | RegExp)[]): void;
@@ -0,0 +1,30 @@
1
+ import * as Sentry from '@sentry/browser';
2
+ import { checkSentryDSN } from './utils';
3
+ import { ignoreErrors as commonIgnoreErrors } from './common';
4
+ export function init(dsn, ignoreErrors = []) {
5
+ if (checkSentryDSN(dsn)) {
6
+ Sentry.init({
7
+ release: process.env.CI_COMMIT_SHA || undefined,
8
+ dsn,
9
+ ignoreErrors: [
10
+ ...commonIgnoreErrors,
11
+ 'PersistedQueryNotFound',
12
+ 'PERSISTED_QUERY_NOT_FOUND',
13
+ 'NetworkError when attempting to fetch resource',
14
+ /Loading chunk \d+ failed/,
15
+ // Network errors
16
+ 'TypeError: NetworkError when attempting to fetch resource.',
17
+ 'TypeError: Nätverksanslutningen förlorades.',
18
+ 'TypeError: Netværksforbindelsen gik tabt.',
19
+ 'TypeError: Verkkoyhteys katkesi.',
20
+ 'Failed to fetch',
21
+ 'ResizeObserver loop',
22
+ 'Unauthorized'
23
+ ].concat(ignoreErrors)
24
+ });
25
+ Sentry.configureScope((scope) => {
26
+ scope.setTag('BUILD_TARGET', 'client');
27
+ });
28
+ }
29
+ }
30
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["client.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,UAAU,IAAI,CAClB,GAAY,EACZ,eAAoC,EAAE;IAEtC,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS;YAC/C,GAAG;YACH,YAAY,EAAE;gBACZ,GAAG,kBAAkB;gBACrB,wBAAwB;gBACxB,2BAA2B;gBAC3B,gDAAgD;gBAChD,0BAA0B;gBAC1B,iBAAiB;gBACjB,4DAA4D;gBAC5D,6CAA6C;gBAC7C,2CAA2C;gBAC3C,kCAAkC;gBAClC,iBAAiB;gBACjB,qBAAqB;gBACrB,cAAc;aACf,CAAC,MAAM,CAAC,YAAY,CAAC;SACvB,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;KACJ;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const ignoreErrors: string[];
@@ -0,0 +1,5 @@
1
+ export const ignoreErrors = [
2
+ 'MissingRoute',
3
+ 'This channel requires you to be logged in'
4
+ ];
5
+ //# sourceMappingURL=common.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["common.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,cAAc;IACd,2CAA2C;CAC5C,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function init(dsn: string, ignoreErrors?: (string | RegExp)[]): void;
@@ -0,0 +1,20 @@
1
+ import * as Sentry from '@sentry/node';
2
+ import { checkSentryDSN } from './utils';
3
+ import { ignoreErrors as commonIgnoreErrors } from './common';
4
+ export function init(dsn, ignoreErrors = []) {
5
+ if (checkSentryDSN(dsn)) {
6
+ Sentry.init({
7
+ release: process.env.CI_COMMIT_SHA || undefined,
8
+ dsn,
9
+ ignoreErrors: [
10
+ ...commonIgnoreErrors,
11
+ 'request to https://storeapi.jetshop.io/ failed',
12
+ ...ignoreErrors
13
+ ]
14
+ });
15
+ Sentry.configureScope((scope) => {
16
+ scope.setTag('BUILD_TARGET', 'server');
17
+ });
18
+ }
19
+ }
20
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,YAAY,IAAI,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAE9D,MAAM,UAAU,IAAI,CAClB,GAAW,EACX,eAAoC,EAAE;IAEtC,IAAI,cAAc,CAAC,GAAG,CAAC,EAAE;QACvB,MAAM,CAAC,IAAI,CAAC;YACV,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,SAAS;YAC/C,GAAG;YACH,YAAY,EAAE;gBACZ,GAAG,kBAAkB;gBACrB,gDAAgD;gBAChD,GAAG,YAAY;aAChB;SACF,CAAC,CAAC;QACH,MAAM,CAAC,cAAc,CAAC,CAAC,KAAK,EAAE,EAAE;YAC9B,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACzC,CAAC,CAAC,CAAC;KACJ;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare const checkSentryDSN: (dsn: string) => boolean;
@@ -0,0 +1,2 @@
1
+ export const checkSentryDSN = (dsn) => !!dsn && dsn.length > 0;
2
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,GAAW,EAAW,EAAE,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC"}
@@ -1,18 +0,0 @@
1
- import { Transform, SubschemaConfig } from '@graphql-tools/delegate';
2
- export declare function createGraphqlServerWorker({ extensions }: {
3
- extensions: Promise<SubschemaConfig>[];
4
- }): Promise<(request: Request, env?: any, ctx?: any) => Promise<Response>>;
5
- export declare function createExtensionWorker({ endpoint, getHeaders, prefix, transforms, skipValidation }: {
6
- endpoint: string;
7
- getHeaders: (req: Request) => HeadersInit;
8
- prefix: string | null;
9
- transforms?: Transform[];
10
- skipValidation?: boolean;
11
- }): Promise<SubschemaConfig>;
12
- export declare const storeapiExtensionWorker: ({ endpoint, prefix, token, shopid, getHeaders }: {
13
- endpoint?: string;
14
- prefix?: string | null;
15
- token: string;
16
- shopid: string;
17
- getHeaders?: (req: Request) => HeadersInit;
18
- }) => Promise<SubschemaConfig>;