@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.
- package/ChannelHandler/channelUtils.js +1 -1
- package/ChannelHandler/channelUtils.js.map +1 -1
- package/boot/apollo.js +39 -3
- package/boot/apollo.js.map +1 -1
- package/boot/client/startClient.js +16 -1
- package/boot/client/startClient.js.map +1 -1
- package/boot/server/IntervalQuery.d.ts +32 -0
- package/boot/server/IntervalQuery.js +95 -0
- package/boot/server/IntervalQuery.js.map +1 -0
- package/boot/server/IntervalQuery.test.js +276 -0
- package/boot/server/PersistedApolloClient.d.ts +20 -0
- package/boot/server/PersistedApolloClient.js +40 -0
- package/boot/server/PersistedApolloClient.js.map +1 -0
- package/boot/server/PersistedApolloClient.test.js +234 -0
- package/boot/server/createApolloServer.js +6 -0
- package/boot/server/createApolloServer.js.map +1 -1
- package/boot/server/createApolloServer.test.js +114 -0
- package/boot/server/createRenderer.d.ts +2 -2
- package/boot/server/createRenderer.js +25 -12
- package/boot/server/createRenderer.js.map +1 -1
- package/boot/server/createServer.js +11 -0
- package/boot/server/createServer.js.map +1 -1
- package/boot/server/getPreloadAssets.test.js +133 -0
- package/boot/server/index.d.ts +2 -0
- package/boot/server/index.js +16 -4
- package/boot/server/index.js.map +1 -1
- package/boot/server/persistedQueries/PersistedClient.d.ts +22 -0
- package/boot/server/persistedQueries/PersistedClient.js +58 -0
- package/boot/server/persistedQueries/PersistedClient.js.map +1 -0
- package/boot/server/persistedQueries/__tests__/getPersistedQueriesForRequest.test.js +201 -0
- package/boot/server/persistedQueries/__tests__/mockQuery.gql +6 -0
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.d.ts +3 -0
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js +27 -0
- package/boot/server/persistedQueries/getPersistedQueriesForRequest.js.map +1 -0
- package/boot/server/saleSource.test.js +39 -0
- package/boot/server/salesSource.d.ts +8 -0
- package/boot/server/salesSource.js +16 -0
- package/boot/server/salesSource.js.map +1 -0
- package/components/Auth/formFieldsFromSettings.d.ts +1 -1
- package/components/ConfigProvider.d.ts +15 -3
- package/components/ConfigProvider.js.map +1 -1
- package/components/DynamicRoute/GenericError.js +4 -0
- package/components/DynamicRoute/GenericError.js.map +1 -1
- package/components/DynamicRoute/ProductRoute.js +11 -6
- package/components/DynamicRoute/ProductRoute.js.map +1 -1
- package/components/Pagination/PaginationProvider.d.ts +2 -0
- package/components/Pagination/PaginationProvider.js +10 -1
- package/components/Pagination/PaginationProvider.js.map +1 -1
- package/components/StructuredData/StructuredProductData.d.ts +1 -1
- package/errorReporting.browser.d.ts +3 -0
- package/errorReporting.browser.js +17 -0
- package/errorReporting.browser.js.map +1 -0
- package/errorReporting.d.ts +4 -0
- package/errorReporting.js +24 -0
- package/errorReporting.js.map +1 -0
- package/errorReporting.server.d.ts +3 -0
- package/errorReporting.server.js +12 -0
- package/errorReporting.server.js.map +1 -0
- package/errorReporting.shared.d.ts +5 -0
- package/errorReporting.shared.js +17 -0
- package/errorReporting.shared.js.map +1 -0
- package/global.d.ts +1 -0
- package/hooks/usePreconnectLinks.js +5 -1
- package/hooks/usePreconnectLinks.js.map +1 -1
- package/hooks/usePreconnectLinks.test.js +4 -0
- package/package.json +6 -5
- package/polyfills.d.ts +1 -0
- package/polyfills.js +58 -0
- package/polyfills.js.map +1 -0
- package/sentry/client.d.ts +1 -0
- package/sentry/client.js +30 -0
- package/sentry/client.js.map +1 -0
- package/sentry/common.d.ts +1 -0
- package/sentry/common.js +5 -0
- package/sentry/common.js.map +1 -0
- package/sentry/server.d.ts +1 -0
- package/sentry/server.js +20 -0
- package/sentry/server.js.map +1 -0
- package/sentry/utils.d.ts +1 -0
- package/sentry/utils.js +2 -0
- package/sentry/utils.js.map +1 -0
- package/boot/worker/createApolloServerWorker.d.ts +0 -18
- package/boot/worker/createApolloServerWorker.js +0 -119
- package/boot/worker/createApolloServerWorker.js.map +0 -1
- package/boot/worker/createRenderer.d.ts +0 -23
- package/boot/worker/createRenderer.js +0 -242
- package/boot/worker/createRenderer.js.map +0 -1
- package/boot/worker/getPrefetchFiles.d.ts +0 -10
- package/boot/worker/getPrefetchFiles.js +0 -20
- package/boot/worker/getPrefetchFiles.js.map +0 -1
- package/boot/worker/getPreloadAssets.d.ts +0 -10
- package/boot/worker/getPreloadAssets.js +0 -18
- package/boot/worker/getPreloadAssets.js.map +0 -1
- package/boot/worker/index.d.ts +0 -6
- package/boot/worker/index.js +0 -98
- 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?:
|
|
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?:
|
|
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;
|
|
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;
|
|
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
|
-
(
|
|
58
|
+
(_e = location.state) === null || _e === void 0 ? void 0 : _e.list,
|
|
54
59
|
product,
|
|
55
|
-
(
|
|
56
|
-
(
|
|
57
|
-
(
|
|
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":";;;;;;;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,KAAK,EAAE,EAAiB,SAAS,EAAE,MAAM,OAAO,CAAC;AAExD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,4BAA4B,MAAM,8DAA8D,CAAC;AACxG,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAC;AAC3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yDAAyD,CAAC;
|
|
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":"AAAA,OAAO,EACL,WAAW,EACX,cAAc,EACf,MAAM,sDAAsD,CAAC;AAC9D,OAAO,iBAEN,MAAM,uDAAuD,CAAC;AAE/D,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,KAAK,EAAE,EAEZ,WAAW,EACX,UAAU,EACV,SAAS,EACT,OAAO,EACP,QAAQ,EACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAoB,WAAW,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEvD,MAAM,aAAa,GAAG,CACpB,EAAE,OAAO,EAAE,QAAQ,EAA4C,EAC/D,OAAe,EACf,UAAkB,EAClB,OAAyB,EACzB,EAAE;IACF,MAAM,aAAa,GAAG,EAAE,CAAC,KAAK,CAC5B,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,EACxE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAC5B,CAAC;IAEF,MAAM,MAAM,mCAAQ,aAAa,KAAE,CAAC,UAAU,CAAC,EAAE,OAAO,GAAE,CAAC;IAE3D,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,EAAE;QAC9B,cAAc,CAAC;YACb,OAAO;YACP,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM;YACN,SAAS,EAAE,OAAO,KAAK,CAAC;YACxB,SAAS,EAAE,kBAAkB;SAC9B,CAAC,CAAC;KACJ;SAAM;QACL,WAAW,CAAC;YACV,OAAO;YACP,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM;YACN,SAAS,EAAE,OAAO,KAAK,CAAC;YACxB,SAAS,EAAE,kBAAkB;SAC9B,CAAC,CAAC;KACJ;IAED,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,iBAAiB,GAAG,CAAC,QAAkB,EAAE,UAAkB,EAAE,EAAE;IACnE,IAAI,IAAI,GAAG,IAAI,CAAC;IAChB,oDAAoD;IACpD,IAAI,QAAQ,CAAC,MAAM,EAAE;QACnB,IAAI,GAAG,QAAQ,CACb,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,EAClE,EAAE,CACH,CAAC;KACH;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,eAAe,GAAG,CAAC,IAAY,EAAE,OAAe,EAAE,EAAE;IACxD,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,IAAI,EAAE;QAC3B,OAAO,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,OAAO,CAAC;KAC7B;SAAM;QACL,OAAO,CAAC,CAAC;KACV;AACH,CAAC,CAAC;
|
|
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,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,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,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,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
|
@@ -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;
|
|
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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jetshop/core",
|
|
3
|
-
"version": "6.3.8
|
|
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": "
|
|
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
|
package/polyfills.js.map
ADDED
|
@@ -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;
|
package/sentry/client.js
ADDED
|
@@ -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[];
|
package/sentry/common.js
ADDED
|
@@ -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;
|
package/sentry/server.js
ADDED
|
@@ -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;
|
package/sentry/utils.js
ADDED
|
@@ -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>;
|