@zengenti/contensis-react-base 4.0.0-beta.56 → 4.0.0-beta.59
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/cjs/{App-C5hfqiyz.js → App-Dr56ZsQj.js} +2 -1
- package/{esm/App-BVdAv4vL.js.map → cjs/App-Dr56ZsQj.js.map} +1 -1
- package/cjs/client.js +4 -3
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +36 -15
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/util.js +9 -0
- package/cjs/util.js.map +1 -1
- package/esm/{App-BVdAv4vL.js → App-CrCf7gso.js} +2 -1
- package/{cjs/App-C5hfqiyz.js.map → esm/App-CrCf7gso.js.map} +1 -1
- package/esm/client.js +5 -4
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +37 -16
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/util.js +1 -0
- package/esm/util.js.map +1 -1
- package/models/server/util/jsx.d.ts +1 -0
- package/models/util/index.d.ts +1 -0
- package/package.json +2 -1
package/cjs/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sources":["../src/client/client.tsx"],"sourcesContent":["import 'isomorphic-fetch';\nimport React from 'react';\nimport { createRoot, hydrateRoot } from 'react-dom/client';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { unstable_HistoryRouter as HistoryRouter } from 'react-router-dom';\nimport { loadableReady } from '@loadable/component';\nimport { parse } from 'query-string';\nimport { CookiesProvider } from 'react-cookie';\n\nimport { createLocaleRoutes } from '~/i18n/routes';\nimport { actions } from '~/i18n/redux/slice';\nimport { selectVersionStatus } from '~/redux/selectors/version';\nimport { setVersionStatus } from '~/redux/actions/version';\nimport rootSaga from '~/redux/sagas';\nimport { browserHistory as history } from '~/redux/store/history';\nimport createStore from '~/redux/store/store';\n\nimport { setCurrentProject } from '~/routing/redux/actions';\n\nimport { deliveryApi } from '~/util/ContensisDeliveryApi';\nimport pickProject from '~/util/pickProject';\nimport { SSRContextProvider } from '~/util/SSRContext';\n\nimport { AppConfig, AppState } from '~/models';\n\ndeclare let window: typeof globalThis & {\n isDynamic: boolean;\n REDUX_DATA: AppState;\n __USE_HYDRATE__: boolean;\n};\n\ntype ReactAppProps = { routes: any; withEvents: any };\n\nclass ClientApp {\n constructor(ReactApp: React.ComponentType<ReactAppProps>, config: AppConfig) {\n const documentRoot = document.getElementById('root') as HTMLElement;\n\n const {\n i18n,\n // stateType = 'immutable', // changed default in v4\n stateType = 'js',\n routes,\n withReducers,\n withSagas,\n withEvents,\n } = config;\n\n // process locales in static routes for i18n\n const localeRoutes = createLocaleRoutes(routes);\n\n const GetClientJSX = store => {\n const ClientJsx = (\n <CookiesProvider>\n <ReduxProvider store={store}>\n <HistoryRouter\n history={history as any}\n future={{\n v7_relativeSplatPath: true,\n v7_startTransition: true,\n }}\n >\n <SSRContextProvider>\n <ReactApp routes={routes} withEvents={withEvents} />\n </SSRContextProvider>\n </HistoryRouter>\n </ReduxProvider>\n </CookiesProvider>\n );\n return ClientJsx;\n };\n\n const isDev = process.env.NODE_ENV !== 'production';\n // const isProduction = !isDev;\n const shouldHydrate = window.__USE_HYDRATE__ && !window.isDynamic;\n\n /**\n * Webpack HMR Setup.\n */\n const HMRRenderer = Component => {\n if (shouldHydrate)\n loadableReady(\n () => {\n hydrateRoot(documentRoot, Component, {\n onRecoverableError(error) {\n console.warn('Hydration warning:', error);\n },\n });\n },\n { namespace: 'modern' }\n );\n else createRoot(documentRoot).render(Component);\n };\n\n const hmr = store => {\n // webpack Hot Module Replacement API\n if (module.hot) {\n module.hot.accept(ReactApp as unknown as string, () => {\n // if you are using harmony modules ({modules:false})\n HMRRenderer(GetClientJSX(store));\n });\n }\n };\n\n const qs = parse(window.location.search);\n const versionStatus = deliveryApi.getClientSideVersionStatus();\n\n if (isDev || window.isDynamic || window.REDUX_DATA) {\n createStore(withReducers, window.REDUX_DATA, history, stateType).then(\n store => {\n const state = store.getState();\n const ssrVersionStatus = selectVersionStatus(state);\n if (!ssrVersionStatus)\n store.dispatch(setVersionStatus(versionStatus));\n\n if (isDev && window.REDUX_DATA)\n console.log('Hydrating from inline Redux');\n\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n if (i18n) {\n store.dispatch(\n actions.INIT_LOCALES({\n locales: {},\n // Keep a record of the locale routes in Redux\n // so we can navigate between them when switching language\n routes: localeRoutes,\n ...i18n,\n })\n );\n }\n\n delete (window as any).REDUX_DATA;\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n }\n );\n } else {\n fetch(`${window.location.pathname}?redux=true`)\n .then(response => response.json())\n .then(data => {\n const ssRedux = JSON.parse(data);\n createStore(withReducers, ssRedux, history, stateType).then(store => {\n store.dispatch(setVersionStatus(versionStatus));\n\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n });\n });\n }\n }\n}\n\nexport default ClientApp;\n"],"names":["ClientApp","constructor","ReactApp","config","documentRoot","document","getElementById","i18n","stateType","routes","withReducers","withSagas","withEvents","localeRoutes","createLocaleRoutes","GetClientJSX","store","ClientJsx","React","createElement","CookiesProvider","ReduxProvider","HistoryRouter","history","future","v7_relativeSplatPath","v7_startTransition","SSRContextProvider","isDev","process","env","NODE_ENV","shouldHydrate","window","__USE_HYDRATE__","isDynamic","HMRRenderer","Component","loadableReady","hydrateRoot","onRecoverableError","error","console","warn","namespace","createRoot","render","hmr","module","hot","accept","qs","parse","location","search","versionStatus","deliveryApi","getClientSideVersionStatus","REDUX_DATA","createStore","then","state","getState","ssrVersionStatus","selectVersionStatus","dispatch","setVersionStatus","log","runSaga","rootSaga","setCurrentProject","pickProject","hostname","actions","INIT_LOCALES","locales","fetch","pathname","response","json","data","ssRedux","JSON"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"client.js","sources":["../src/client/client.tsx"],"sourcesContent":["import 'isomorphic-fetch';\nimport React from 'react';\nimport { createRoot, hydrateRoot } from 'react-dom/client';\nimport { Provider as ReduxProvider } from 'react-redux';\nimport { unstable_HistoryRouter as HistoryRouter } from 'react-router-dom';\nimport { loadableReady } from '@loadable/component';\nimport { parse } from 'query-string';\nimport { CookiesProvider } from 'react-cookie';\nimport { HelmetProvider } from 'react-helmet-async';\n\nimport { createLocaleRoutes } from '~/i18n/routes';\nimport { actions } from '~/i18n/redux/slice';\nimport { selectVersionStatus } from '~/redux/selectors/version';\nimport { setVersionStatus } from '~/redux/actions/version';\nimport rootSaga from '~/redux/sagas';\nimport { browserHistory as history } from '~/redux/store/history';\nimport createStore from '~/redux/store/store';\n\nimport { setCurrentProject } from '~/routing/redux/actions';\n\nimport { deliveryApi } from '~/util/ContensisDeliveryApi';\nimport pickProject from '~/util/pickProject';\nimport { SSRContextProvider } from '~/util/SSRContext';\n\nimport { AppConfig, AppState } from '~/models';\n\ndeclare let window: typeof globalThis & {\n isDynamic: boolean;\n REDUX_DATA: AppState;\n __USE_HYDRATE__: boolean;\n};\n\ntype ReactAppProps = { routes: any; withEvents: any };\n\nclass ClientApp {\n constructor(ReactApp: React.ComponentType<ReactAppProps>, config: AppConfig) {\n const documentRoot = document.getElementById('root') as HTMLElement;\n\n const {\n i18n,\n // stateType = 'immutable', // changed default in v4\n stateType = 'js',\n routes,\n withReducers,\n withSagas,\n withEvents,\n } = config;\n\n // process locales in static routes for i18n\n const localeRoutes = createLocaleRoutes(routes);\n\n const GetClientJSX = store => {\n const ClientJsx = (\n <HelmetProvider>\n <CookiesProvider>\n <ReduxProvider store={store}>\n <HistoryRouter\n history={history as any}\n future={{\n v7_relativeSplatPath: true,\n v7_startTransition: true,\n }}\n >\n <SSRContextProvider>\n <ReactApp routes={routes} withEvents={withEvents} />\n </SSRContextProvider>\n </HistoryRouter>\n </ReduxProvider>\n </CookiesProvider>\n </HelmetProvider>\n );\n return ClientJsx;\n };\n\n const isDev = process.env.NODE_ENV !== 'production';\n // const isProduction = !isDev;\n const shouldHydrate = window.__USE_HYDRATE__ && !window.isDynamic;\n\n /**\n * Webpack HMR Setup.\n */\n const HMRRenderer = Component => {\n if (shouldHydrate)\n loadableReady(\n () => {\n hydrateRoot(documentRoot, Component, {\n onRecoverableError(error) {\n console.warn('Hydration warning:', error);\n },\n });\n },\n { namespace: 'modern' }\n );\n else createRoot(documentRoot).render(Component);\n };\n\n const hmr = store => {\n // webpack Hot Module Replacement API\n if (module.hot) {\n module.hot.accept(ReactApp as unknown as string, () => {\n // if you are using harmony modules ({modules:false})\n HMRRenderer(GetClientJSX(store));\n });\n }\n };\n\n const qs = parse(window.location.search);\n const versionStatus = deliveryApi.getClientSideVersionStatus();\n\n if (isDev || window.isDynamic || window.REDUX_DATA) {\n createStore(withReducers, window.REDUX_DATA, history, stateType).then(\n store => {\n const state = store.getState();\n const ssrVersionStatus = selectVersionStatus(state);\n if (!ssrVersionStatus)\n store.dispatch(setVersionStatus(versionStatus));\n\n if (isDev && window.REDUX_DATA)\n console.log('Hydrating from inline Redux');\n\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n if (i18n) {\n store.dispatch(\n actions.INIT_LOCALES({\n locales: {},\n // Keep a record of the locale routes in Redux\n // so we can navigate between them when switching language\n routes: localeRoutes,\n ...i18n,\n })\n );\n }\n\n delete (window as any).REDUX_DATA;\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n }\n );\n } else {\n fetch(`${window.location.pathname}?redux=true`)\n .then(response => response.json())\n .then(data => {\n const ssRedux = JSON.parse(data);\n createStore(withReducers, ssRedux, history, stateType).then(store => {\n store.dispatch(setVersionStatus(versionStatus));\n\n store.runSaga(rootSaga(withSagas));\n store.dispatch(\n setCurrentProject(\n pickProject(window.location.hostname, qs),\n [],\n window.location.hostname\n )\n );\n\n HMRRenderer(GetClientJSX(store));\n\n hmr(store);\n });\n });\n }\n }\n}\n\nexport default ClientApp;\n"],"names":["ClientApp","constructor","ReactApp","config","documentRoot","document","getElementById","i18n","stateType","routes","withReducers","withSagas","withEvents","localeRoutes","createLocaleRoutes","GetClientJSX","store","ClientJsx","React","createElement","HelmetProvider","CookiesProvider","ReduxProvider","HistoryRouter","history","future","v7_relativeSplatPath","v7_startTransition","SSRContextProvider","isDev","process","env","NODE_ENV","shouldHydrate","window","__USE_HYDRATE__","isDynamic","HMRRenderer","Component","loadableReady","hydrateRoot","onRecoverableError","error","console","warn","namespace","createRoot","render","hmr","module","hot","accept","qs","parse","location","search","versionStatus","deliveryApi","getClientSideVersionStatus","REDUX_DATA","createStore","then","state","getState","ssrVersionStatus","selectVersionStatus","dispatch","setVersionStatus","log","runSaga","rootSaga","setCurrentProject","pickProject","hostname","actions","INIT_LOCALES","locales","fetch","pathname","response","json","data","ssRedux","JSON"],"mappings":"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"}
|
|
@@ -32,7 +32,7 @@ var lodash = require('lodash');
|
|
|
32
32
|
var lodashClean = require('lodash-clean');
|
|
33
33
|
var CookieHelper_class = require('./CookieHelper.class-Det3qfdU.js');
|
|
34
34
|
var cookiesMiddleware = require('universal-cookie-express');
|
|
35
|
-
var App = require('./App-
|
|
35
|
+
var App = require('./App-Dr56ZsQj.js');
|
|
36
36
|
var store = require('./store-Dn7vP6G0.js');
|
|
37
37
|
var version = require('./version-2FamXHhj.js');
|
|
38
38
|
var selectors = require('./selectors-BrxJ8-F8.js');
|
|
@@ -42,6 +42,7 @@ var server$2 = require('@loadable/server');
|
|
|
42
42
|
var chalk = require('chalk');
|
|
43
43
|
var minifyCssString = require('minify-css-string');
|
|
44
44
|
var reactCookie = require('react-cookie');
|
|
45
|
+
var reactHelmetAsync = require('react-helmet-async');
|
|
45
46
|
var server$3 = require('react-router-dom/server');
|
|
46
47
|
var SSRContext = require('./SSRContext-DotLlTQc.js');
|
|
47
48
|
require('./VersionInfo-zFPsvS8q.js');
|
|
@@ -662,6 +663,7 @@ const servers$1 = SERVERS; /* global SERVERS */
|
|
|
662
663
|
const project = PROJECT; /* global PROJECT */
|
|
663
664
|
const alias$1 = ALIAS; /* global ALIAS */
|
|
664
665
|
const deliveryApiHostname = urls.url(alias$1, project).api;
|
|
666
|
+
const proxyTimeoutMs = 45_000;
|
|
665
667
|
const assetProxy = httpProxy__default.default.createProxyServer();
|
|
666
668
|
const deliveryProxy = httpProxy__default.default.createProxyServer();
|
|
667
669
|
const reverseProxies = (app, reverseProxyPaths = []) => {
|
|
@@ -669,15 +671,17 @@ const reverseProxies = (app, reverseProxyPaths = []) => {
|
|
|
669
671
|
app.all(reverseProxyPaths.map(proxyPath =>
|
|
670
672
|
// Patch to update paths for express v5
|
|
671
673
|
proxyPath.endsWith('/*') ? `${proxyPath.slice(0, -2)}/{*splat}` : proxyPath.endsWith('/**') ? `${proxyPath.slice(0, -3)}/{*splat}` : proxyPath), (req, res) => {
|
|
672
|
-
const target = req.hostname.
|
|
674
|
+
const target = req.hostname.includes('preview-') || req.hostname.includes('preview.') || req.hostname === 'localhost' ? servers$1.previewIis || servers$1.iis : servers$1.iis;
|
|
673
675
|
assetProxy.web(req, res, {
|
|
674
676
|
target,
|
|
675
|
-
changeOrigin: true
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
console.log(`Proxy Request for ${req.path} HostName:${req.hostname} failed with ${e}`);
|
|
677
|
+
changeOrigin: true,
|
|
678
|
+
proxyTimeout: proxyTimeoutMs,
|
|
679
|
+
timeout: proxyTimeoutMs
|
|
679
680
|
});
|
|
680
681
|
});
|
|
682
|
+
assetProxy.on('error', (e, req) => {
|
|
683
|
+
console.log(`Proxy request for ${req.url} HostName:${req.headers.host} failed with ${e}`);
|
|
684
|
+
});
|
|
681
685
|
};
|
|
682
686
|
const deliveryApiProxy = (apiProxy, app) => {
|
|
683
687
|
// This is just here to stop cors requests on localhost. In Production this is mapped using varnish.
|
|
@@ -685,12 +689,14 @@ const deliveryApiProxy = (apiProxy, app) => {
|
|
|
685
689
|
console.log(`Proxying api request to ${servers$1.alias}`);
|
|
686
690
|
apiProxy.web(req, res, {
|
|
687
691
|
target: deliveryApiHostname,
|
|
688
|
-
changeOrigin: true
|
|
689
|
-
|
|
690
|
-
|
|
691
|
-
console.log(`Proxy request for ${req.path} HostName:${req.hostname} failed with ${e}`);
|
|
692
|
+
changeOrigin: true,
|
|
693
|
+
proxyTimeout: proxyTimeoutMs,
|
|
694
|
+
timeout: proxyTimeoutMs
|
|
692
695
|
});
|
|
693
696
|
});
|
|
697
|
+
apiProxy.on('error', (e, req) => {
|
|
698
|
+
console.log(`Proxy request for ${req.url} HostName:${req.headers.host} failed with ${e}`);
|
|
699
|
+
});
|
|
694
700
|
};
|
|
695
701
|
|
|
696
702
|
const CacheDuration = {
|
|
@@ -1219,7 +1225,9 @@ const ssrJsxProducer = (ReactApp, {
|
|
|
1219
1225
|
var _providers$styledComp;
|
|
1220
1226
|
// Recast ChunkExtractorManager to avoid TS error `Property 'children' does not exist on type...`
|
|
1221
1227
|
const ChunkExtractor = server$2.ChunkExtractorManager;
|
|
1222
|
-
const jsx = /*#__PURE__*/React__default.default.createElement(
|
|
1228
|
+
const jsx = /*#__PURE__*/React__default.default.createElement(reactHelmetAsync.HelmetProvider, {
|
|
1229
|
+
context: providers.helmet
|
|
1230
|
+
}, /*#__PURE__*/React__default.default.createElement(ChunkExtractor, {
|
|
1223
1231
|
extractor: providers.loadable.extractor
|
|
1224
1232
|
}, /*#__PURE__*/React__default.default.createElement(reactCookie.CookiesProvider, {
|
|
1225
1233
|
cookies: providers.cookies
|
|
@@ -1241,7 +1249,7 @@ const ssrJsxProducer = (ReactApp, {
|
|
|
1241
1249
|
}, /*#__PURE__*/React__default.default.createElement(ReactApp, {
|
|
1242
1250
|
routes: props.routes,
|
|
1243
1251
|
withEvents: props.withEvents
|
|
1244
|
-
})))))));
|
|
1252
|
+
}))))))));
|
|
1245
1253
|
|
|
1246
1254
|
// Wrap the JSX in a StyleSheetManager if a ServerStyleSheet is provided
|
|
1247
1255
|
return !((_providers$styledComp = providers.styledComponents) !== null && _providers$styledComp !== void 0 && _providers$styledComp.sheet) ? jsx : providers.styledComponents.sheet.collectStyles(jsx);
|
|
@@ -1361,12 +1369,17 @@ const webApp = (app, ReactApp, config) => {
|
|
|
1361
1369
|
// and read back any context props set by the ReactApp
|
|
1362
1370
|
const context = {};
|
|
1363
1371
|
|
|
1372
|
+
// Per-request helmet context object — populated by HelmetProvider during renderToString
|
|
1373
|
+
// Using a fresh object per request ensures thread safety under concurrent SSR requests
|
|
1374
|
+
const helmetContext = {};
|
|
1375
|
+
|
|
1364
1376
|
// Amalgamate all props for the various Providers we wrap the ReactApp with
|
|
1365
1377
|
const jsxProviderProps = {
|
|
1366
1378
|
loadable: {
|
|
1367
1379
|
extractor: loadableExtractor.commonLoadableExtractor
|
|
1368
1380
|
},
|
|
1369
1381
|
cookies: ssrCookies,
|
|
1382
|
+
helmet: helmetContext,
|
|
1370
1383
|
redux: store$1,
|
|
1371
1384
|
httpContext: context,
|
|
1372
1385
|
router: {
|
|
@@ -1483,15 +1496,23 @@ const webApp = (app, ReactApp, config) => {
|
|
|
1483
1496
|
const html = server$1.renderToString(styledJsx);
|
|
1484
1497
|
// Helmet.renderStatic() has to be called synchronously immediately after calling renderToString()
|
|
1485
1498
|
// as it is not thread-safe (or specifically scoped to only this request)
|
|
1499
|
+
// TODO: deprecate `react-helmet`
|
|
1486
1500
|
const helmet = reactHelmet.Helmet.renderStatic();
|
|
1487
1501
|
|
|
1502
|
+
// helmetContext is populated synchronously by HelmetProvider during renderToString()
|
|
1503
|
+
// It is scoped per-request via the helmetContext object, making this thread-safe
|
|
1504
|
+
// under concurrent SSR requests (unlike the previous Helmet.renderStatic() global singleton)
|
|
1505
|
+
const {
|
|
1506
|
+
helmet: helmetAsync
|
|
1507
|
+
} = helmetContext;
|
|
1508
|
+
|
|
1488
1509
|
// Because we have had to call renderToString() here to reliably gather all helmet metadata
|
|
1489
1510
|
// We could potentially call sheet.getStyleTags() here too and avoid piping a react-rendered
|
|
1490
1511
|
// stream to a second stream to inject styled-components CSS
|
|
1491
1512
|
|
|
1492
|
-
const htmlAttributes = helmet.htmlAttributes.toString();
|
|
1493
|
-
let title = helmet.title.toString();
|
|
1494
|
-
const metadata = helmet.meta.toString().concat(helmet.base.toString()).concat(helmet.link.toString()).concat(helmet.script.toString()).concat(helmet.noscript.toString());
|
|
1513
|
+
const htmlAttributes = helmetAsync.htmlAttributes.toString() || helmet.htmlAttributes.toString();
|
|
1514
|
+
let title = helmet.title.toString().includes('><') ? helmetAsync.title.toString() : helmet.title.toString();
|
|
1515
|
+
const metadata = helmetAsync.meta.toString().concat(helmetAsync.base.toString()).concat(helmetAsync.priority.toString()).concat(helmetAsync.link.toString()).concat(helmetAsync.script.toString()).concat(helmetAsync.noscript.toString()).concat(helmet.meta.toString()).concat(helmet.base.toString()).concat(helmet.link.toString()).concat(helmet.script.toString()).concat(helmet.noscript.toString());
|
|
1495
1516
|
try {
|
|
1496
1517
|
/**
|
|
1497
1518
|
* Loads all page assets into the provided templateHTML
|