@zengenti/contensis-react-base 3.0.0-beta.26 → 3.0.0-beta.27

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/util.js CHANGED
@@ -90,15 +90,19 @@ const mapComposer = (composer, mappers) => Array.isArray(composer) ? composer.ma
90
90
  _type: composerItem.type,
91
91
  _index: index
92
92
  }; // Add fields and $root item into the composer item source object
93
- // for use inside each item mapping
93
+ // for use inside each item mapping, for arrays we inject the added fields
94
+ // into the first array item. This is useful if we require any of
95
+ // composerItem.type, composerItem index/position and composer $root
96
+ // in scope to influence any composer item's mapping logic
94
97
 
95
- const sourceObject = itemValue && Array.isArray(itemValue) ? itemValue.map(iv => typeof iv === 'object' ? { ...addedFields,
98
+ const sourceObject = itemValue && Array.isArray(itemValue) ? itemValue.map((iv, idx) => idx !== 0 ? iv : typeof iv === 'object' ? { ...addedFields,
96
99
  ...iv,
97
100
  $root: composer
98
101
  } : iv) : typeof itemValue === 'object' ? { ...addedFields,
99
102
  ...itemValue,
100
103
  $root: composer
101
- } : itemValue || {};
104
+ } : itemValue || {}; // Apply the composer item mapping
105
+
102
106
  const mappedFields = mapJson__default["default"](sourceObject, mapper); // Add the extra fields in with the return object
103
107
 
104
108
  return mappedFields && typeof mappedFields === 'object' ? { ...mappedFields,
package/cjs/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../src/util/json-mapper.ts","../src/server/features/caching/setCachingHeaders.ts","../src/util/stringifyStrings.js","../src/util/urls.ts","../src/app/pages/VersionInfo/transformations/state-to-versioninfoprops.mapper.ts","../src/app/pages/VersionInfo/components/VersionInfo.styled.tsx","../src/app/pages/VersionInfo/components/VersionInfo.tsx"],"sourcesContent":["import { Entry } from 'contensis-delivery-api/lib/models';\nimport mapJson, { jpath } from 'jsonpath-mapper';\nimport MappingTemplate, {\n PureJsFunction,\n} from 'jsonpath-mapper/dist/models/Template';\nimport { AppState } from '~/redux/appstate';\nimport { EntryMapper, RouteNode } from '~/routing/routes';\n\nexport { default as mapJson, jpath } from 'jsonpath-mapper';\n\ntype Mappers<S> = { [contentTypeId: string]: MappingTemplate<S> };\n\n/**\n *\n * @param {object} json The source object we wish to transform\n * @param {object} template The mapping template we wish to apply to the source\n * object to generate the intended target object\n */\nexport const useMapper = <T, S>(json: S, template: MappingTemplate<S>) => {\n return template ? (mapJson((json || {}) as S, template) as T) : json;\n};\n\nconst chooseMapperByFieldValue = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const fieldValue = jpath(field, entry || {}) as string;\n return (mappers[fieldValue] || mappers.default || {}) as T[keyof T];\n};\n\n/**\n * useEntriesMapper hook to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const useEntriesMapper = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return useMapper(entry, mapper);\n};\n\n/**\n * Deprecated: due to misleading name, use the hook useEntriesMapper instead\n */\nexport const useEntryMapper = useEntriesMapper;\n\n/**\n * mapEntries mapping function to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const mapEntries = <\n S,\n Mappers extends { [contentTypeId: string]: MappingTemplate<S> }\n>(\n entries: S[],\n mappers: Mappers,\n field = 'sys.contentTypeId'\n) =>\n entries.map(entry => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return mapper ? mapJson((entry || {}) as S, mapper) : entry;\n });\n\n/**\n * mapComposer mapping function to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const mapComposer = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[],\n mappers: T\n) =>\n Array.isArray(composer)\n ? composer.map((composerItem, index) => {\n const itemValue = composerItem.value;\n const mapper = mappers[composerItem.type] || mappers.default;\n if (mapper) {\n // Add some fields into the composer item mapper and return object\n const addedFields = {\n _type: composerItem.type,\n _index: index,\n };\n\n // Add fields and $root item into the composer item source object\n // for use inside each item mapping\n const sourceObject =\n itemValue && Array.isArray(itemValue)\n ? itemValue.map(iv =>\n typeof iv === 'object'\n ? { ...addedFields, ...iv, $root: composer }\n : iv\n )\n : typeof itemValue === 'object'\n ? { ...addedFields, ...itemValue, $root: composer }\n : itemValue || {};\n\n const mappedFields = mapJson(sourceObject, mapper) as any;\n\n // Add the extra fields in with the return object\n return mappedFields && typeof mappedFields === 'object'\n ? { ...mappedFields, ...addedFields }\n : mappedFields;\n } else return;\n })\n : composer || [];\n\n/**\n * useComposerMapper hook to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const useComposerMapper = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[] = [],\n mappers: T\n) => mapComposer(composer, mappers);\n\n/**\n * entryMapper will return a function to satisfy an entryMapper when defining app route\n * this is essentially a shorthand function to prevent boilerplate repetition inside your routes file\n * you do not need to use this function should you wish to map your entry via raw JS functions\n * @param mapping the jsonpath-mapper mapping template to apply when the route is resolved\n * @returns {mappedEntry}\n */\nexport const entryMapper =\n (\n mapping:\n | MappingTemplate<RouteNode & Entry & { state?: AppState }>\n | PureJsFunction<RouteNode & Entry & { state?: AppState }>\n ): EntryMapper =>\n (node, state) =>\n mapJson({ ...node, ...(node.entry || ({} as Entry)), state }, mapping);\n\nexport default mapJson;\n","import { Response } from 'express';\n\nconst setCachingHeaders = (\n response: Response,\n { cacheControl = 'private', surrogateControl = '3600' },\n method = 'header'\n) => {\n if (cacheControl) response[method]('Cache-Control', cacheControl);\n if (surrogateControl)\n response[method](\n 'Surrogate-Control',\n `max-age=${surrogateControl.toString()}`\n );\n};\n\nexport default setCachingHeaders;\n","const stringifyStrings = obj => {\n const returnObj = Array.isArray(obj) ? [] : {};\n Object.entries(obj).forEach(([key, value]) => {\n switch (typeof value) {\n case 'string':\n returnObj[key] = JSON.stringify(value);\n break;\n case 'object':\n returnObj[key] = stringifyStrings(value);\n break;\n default:\n returnObj[key] = value;\n break;\n }\n });\n return returnObj;\n};\n\nmodule.exports = stringifyStrings;\n","const url = (alias: string, project: string) => {\n const projectAndAlias =\n project && project.toLowerCase() !== 'website'\n ? `${project.toLowerCase()}-${alias}`\n : alias;\n return {\n api: `https://api-${alias}.cloud.contensis.com`,\n cms: `https://cms-${alias}.cloud.contensis.com`,\n liveWeb: `https://live-${projectAndAlias}.cloud.contensis.com`,\n previewWeb: `https://preview-${projectAndAlias}.cloud.contensis.com`,\n iisWeb: `https://iis-live-${projectAndAlias}.cloud.contensis.com`,\n iisPreviewWeb: `https://iis-preview-${projectAndAlias}.cloud.contensis.com`,\n };\n};\n\nexport default url;\n","import { default as mapJson } from '~/util/json-mapper';\nimport { selectCurrentProject } from '~/routing/redux/selectors';\nimport {\n selectBuildNumber,\n selectCommitRef,\n selectVersionStatus,\n} from '~/redux/selectors/version';\nimport { IVersionInfoProps } from '../components/VersionInfo';\n\nconst context = (\n typeof window != 'undefined' ? window : global\n) as typeof globalThis & {\n DISABLE_SSR_REDUX: any;\n PACKAGE_JSON: any;\n PROJECTS: any;\n PROXY_DELIVERY_API: any;\n PUBLIC_URI: any;\n REVERSE_PROXY_PATHS: string[];\n SERVERS: any;\n};\n\nconst isDev = process.env.NODE_ENV === 'development';\n\nconst pj = () =>\n isDev\n ? PACKAGE_JSON /* global PACKAGE_JSON */\n : context.PACKAGE_JSON || { name: 'packagejson not found', repository: '' };\n\nconst versionInfoProps = {\n packageDetail: () => {\n const pkg = pj();\n return { name: pkg.name, version: pkg.version, repository: pkg.repository };\n },\n uris: {\n gitRepo: () => pj().repository,\n commit: state => {\n const commitRef = selectCommitRef(state);\n return `${pj().repository}/commit/${commitRef ? commitRef : ''}`;\n },\n pipeline: state => {\n const buildNumber = selectBuildNumber(state);\n return `${pj().repository}/${\n pj().repository.includes('github.com') ? 'actions/runs' : 'pipelines'\n }/${buildNumber ? buildNumber : ''}`;\n },\n },\n zenPackageVersions: () => [\n ...(Object.entries(pj().devDependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ...(Object.entries(pj().dependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ],\n deliveryApi: () =>\n JSON.parse(\n JSON.stringify(DELIVERY_API_CONFIG /* global DELIVERY_API_CONFIG */)\n ),\n devEnv: () =>\n typeof DEV_ENV !== 'undefined' /* global DEV_ENV */ ? DEV_ENV : null,\n disableSsrRedux: () =>\n isDev\n ? DISABLE_SSR_REDUX /* global DISABLE_SSR_REDUX*/\n : context.DISABLE_SSR_REDUX || false,\n nodeEnv: () => process.env.NODE_ENV || 'production',\n packagejson: () => pj() || {},\n projects: () => (isDev ? PROJECTS /* global PROJECTS */ : context.PROJECTS),\n proxyDeliveryApi: () =>\n isDev\n ? PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */\n : context.PROXY_DELIVERY_API || false,\n publicUri: () =>\n isDev ? PUBLIC_URI /* global PUBLIC_URI */ : context.PUBLIC_URI || null,\n project: state => selectCurrentProject(state),\n reverseProxyPaths: () =>\n isDev\n ? REVERSE_PROXY_PATHS /* global REVERSE_PROXY_PATHS */\n : context.REVERSE_PROXY_PATHS || {},\n servers: () => (isDev ? SERVERS /* global SERVERS */ : context.SERVERS),\n version: {\n buildNumber: state => selectBuildNumber(state),\n commitRef: state => selectCommitRef(state),\n contensisVersionStatus: state => selectVersionStatus(state),\n },\n};\n\nconst mapStateToVersionInfo = state => {\n const mappedProps = mapJson(state, versionInfoProps);\n return mappedProps as IVersionInfoProps;\n};\n\nexport default mapStateToVersionInfo;\n","import styled from 'styled-components';\n\nexport const VersionInfoStyledTable = styled.table`\n font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;\n font-size: 1.6rem;\n line-height: 1.5rem;\n border-bottom: 4px solid #8892bf;\n border-collapse: separate;\n margin: 0 auto;\n width: 80%;\n th {\n text-align: left;\n background-color: #c4c9df;\n border-bottom: #8892bf 2px solid;\n border-bottom-color: #8892bf;\n border-top: 20px solid #fff;\n }\n td {\n border-bottom: 1px solid #eee;\n }\n td,\n th {\n padding: 0.5rem 0.75rem;\n vertical-align: top;\n }\n .left {\n width: 25%;\n }\n tr th {\n border-right: hidden;\n border-spacing: 0 15px;\n }\n .green {\n background-color: #9c9;\n border-bottom: 1px solid #696;\n }\n .red {\n background-color: #c99;\n border-bottom: 1px solid #966;\n }\n .small {\n font-size: 100%;\n line-height: 2.4rem;\n }\n`;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport mapStateToVersionInfo from '../transformations/state-to-versioninfoprops.mapper';\n\nimport { VersionInfoStyledTable } from './VersionInfo.styled';\n\nexport interface IVersionInfoProps {\n deliveryApi: {\n rootUrl: string;\n accessToken: string;\n projectId: string;\n livePublishingRootUrl: string;\n };\n devEnv: any;\n disableSsrRedux: boolean;\n nodeEnv: string;\n packageDetail: any;\n project: string;\n projects;\n proxyDeliveryApi;\n publicUri: string;\n reverseProxyPaths: string[];\n servers: {\n alias: string;\n api: string;\n cms: string;\n web: string;\n iis: string;\n previewIis: string;\n previewWeb: string;\n };\n uris: {\n gitRepo: string;\n commit: string;\n pipeline: string;\n };\n version: {\n buildNumber: string;\n commitRef: string;\n contensisVersionStatus: string;\n };\n zenPackageVersions: string[];\n}\n\nconst VersionInfo = ({\n deliveryApi,\n devEnv,\n disableSsrRedux,\n nodeEnv,\n packageDetail,\n project,\n projects,\n proxyDeliveryApi,\n publicUri,\n reverseProxyPaths,\n servers,\n uris,\n version,\n zenPackageVersions,\n}: IVersionInfoProps) => {\n return (\n <VersionInfoStyledTable>\n <thead>\n <tr>\n <td colSpan={2}>\n <h1>\n <a href=\"/\">Version Information</a>\n </h1>\n </td>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th colSpan={2}>Package detail</th>\n </tr>\n <tr>\n <td className=\"left\">Name</td>\n <td>{packageDetail.name}</td>\n </tr>\n <tr>\n <td className=\"left\">Version</td>\n <td>{packageDetail.version}</td>\n </tr>\n <tr>\n <th colSpan={2}>Version info (state)</th>\n </tr>\n <tr>\n <td>Git repo url: </td>\n <td>\n <a\n href={packageDetail.repository}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {packageDetail.repository}\n </a>\n </td>\n </tr>\n <tr>\n <td>Pipeline: </td>\n <td>\n <a href={uris.pipeline} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.buildNumber}\n </a>\n </td>\n </tr>\n <tr>\n <td>Commit: </td>\n <td>\n <a href={uris.commit} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.commitRef}\n </a>\n </td>\n </tr>\n {/* <tr>\n <td>Last release ref: </td>\n <td></td>\n </tr>\n <tr>\n <td>Number of commits since last release: </td>\n <td></td>\n </tr> */}\n <tr>\n <td>Project</td>\n <td className={project === 'unknown' ? 'red' : ''}>{project}</td>\n </tr>\n <tr>\n <td>Contensis version status: </td>\n <td\n className={\n version.contensisVersionStatus === 'published' ? 'green' : 'red'\n }\n >\n {version.contensisVersionStatus}\n </td>\n </tr>\n <tr>\n <th colSpan={2}>Build configuration</th>\n </tr>\n <tr>\n <td>Environment</td>\n <td>{servers.alias}</td>\n </tr>\n <tr>\n <td>Public uri</td>\n <td>{publicUri}</td>\n </tr>\n <tr>\n <td>Zengenti packages</td>\n <td>\n {zenPackageVersions.map(([pkg, ver], idx) => (\n <div key={idx}>\n {pkg}: {ver}\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Servers</td>\n <td className=\"small\">\n <div>web: {servers.web}</div>\n <div>preview: {servers.previewWeb}</div>\n <div>api: {servers.api}</div>\n <div>cms: {servers.cms}</div>\n <div>iis: {servers.iis}</div>\n <div>iis preview: {servers.previewIis}</div>\n </td>\n </tr>\n <tr>\n <td>Reverse proxy paths</td>\n <td>\n {Object.entries(reverseProxyPaths).map(([, path], key) => (\n <span key={key}>[ {path} ] </span>\n ))}\n </td>\n </tr>\n <tr>\n <td>Projects</td>\n <td>\n {Object.entries(\n projects as {\n id: string;\n publicUri: string;\n }[]\n ).map(([, project], key) => (\n <div key={key}>\n [ {project.id}: {project.publicUri} ]\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Delivery API</td>\n <td className=\"small\">\n <ul style={{ margin: 0, padding: 0 }}>\n {Object.entries(deliveryApi).map(\n ([key, value]: [string, any], idx) => {\n if (typeof value === 'object') return null;\n return (\n <li key={idx} style={{ listStyleType: 'none' }}>\n {key}: <span>{value}</span>\n </li>\n );\n }\n )}\n </ul>\n </td>\n </tr>\n <tr>\n <td>Proxy Delivery API requests</td>\n <td className={proxyDeliveryApi ? 'green' : 'red'}>\n {proxyDeliveryApi.toString()}\n </td>\n </tr>\n <tr>\n <td>Disable SSR inline-redux</td>\n <td>{disableSsrRedux.toString()}</td>\n </tr>\n <tr>\n <td>NODE_ENV</td>\n <td className={nodeEnv === 'production' ? 'green' : 'red'}>\n {nodeEnv.toString()}\n </td>\n </tr>\n {devEnv && (\n <tr>\n <td>process.env</td>\n <td>\n {Object.entries(devEnv).map(([k, v], key) => (\n <div key={key}>\n [ {k}: {v} ]\n </div>\n ))}\n </td>\n </tr>\n )}\n </tbody>\n </VersionInfoStyledTable>\n );\n};\n\nexport default connect(mapStateToVersionInfo)(VersionInfo);\n"],"names":["useMapper","json","template","mapJson","chooseMapperByFieldValue","entry","mappers","field","fieldValue","jpath","default","useEntriesMapper","mapper","useEntryMapper","mapEntries","entries","map","mapComposer","composer","Array","isArray","composerItem","index","itemValue","value","type","addedFields","_type","_index","sourceObject","iv","$root","mappedFields","useComposerMapper","entryMapper","mapping","node","state","setCachingHeaders","response","cacheControl","surrogateControl","method","toString","stringifyStrings","obj","returnObj","Object","forEach","key","JSON","stringify","module","url","alias","project","projectAndAlias","toLowerCase","api","cms","liveWeb","previewWeb","iisWeb","iisPreviewWeb","context","window","global","isDev","process","env","NODE_ENV","pj","PACKAGE_JSON","name","repository","versionInfoProps","packageDetail","pkg","version","uris","gitRepo","commit","commitRef","selectCommitRef","pipeline","buildNumber","selectBuildNumber","includes","zenPackageVersions","devDependencies","filter","dependencies","deliveryApi","parse","DELIVERY_API_CONFIG","devEnv","DEV_ENV","disableSsrRedux","DISABLE_SSR_REDUX","nodeEnv","packagejson","projects","PROJECTS","proxyDeliveryApi","PROXY_DELIVERY_API","publicUri","PUBLIC_URI","selectCurrentProject","reverseProxyPaths","REVERSE_PROXY_PATHS","servers","SERVERS","contensisVersionStatus","selectVersionStatus","mapStateToVersionInfo","mappedProps","VersionInfoStyledTable","styled","table","VersionInfo","React","ver","idx","web","iis","previewIis","path","id","margin","padding","listStyleType","k","v","connect"],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sources":["../src/util/json-mapper.ts","../src/server/features/caching/setCachingHeaders.ts","../src/util/stringifyStrings.js","../src/util/urls.ts","../src/app/pages/VersionInfo/transformations/state-to-versioninfoprops.mapper.ts","../src/app/pages/VersionInfo/components/VersionInfo.styled.tsx","../src/app/pages/VersionInfo/components/VersionInfo.tsx"],"sourcesContent":["import { Entry } from 'contensis-delivery-api/lib/models';\nimport mapJson, { jpath } from 'jsonpath-mapper';\nimport MappingTemplate, {\n PureJsFunction,\n} from 'jsonpath-mapper/dist/models/Template';\nimport { AppState } from '~/redux/appstate';\nimport { EntryMapper, RouteNode } from '~/routing/routes';\n\nexport { default as mapJson, jpath } from 'jsonpath-mapper';\n\ntype Mappers<S> = { [contentTypeId: string]: MappingTemplate<S> };\n\n/**\n *\n * @param {object} json The source object we wish to transform\n * @param {object} template The mapping template we wish to apply to the source\n * object to generate the intended target object\n */\nexport const useMapper = <T, S>(json: S, template: MappingTemplate<S>) => {\n return template ? (mapJson((json || {}) as S, template) as T) : json;\n};\n\nconst chooseMapperByFieldValue = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const fieldValue = jpath(field, entry || {}) as string;\n return (mappers[fieldValue] || mappers.default || {}) as T[keyof T];\n};\n\n/**\n * useEntriesMapper hook to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const useEntriesMapper = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return useMapper(entry, mapper);\n};\n\n/**\n * Deprecated: due to misleading name, use the hook useEntriesMapper instead\n */\nexport const useEntryMapper = useEntriesMapper;\n\n/**\n * mapEntries mapping function to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const mapEntries = <\n S,\n Mappers extends { [contentTypeId: string]: MappingTemplate<S> }\n>(\n entries: S[],\n mappers: Mappers,\n field = 'sys.contentTypeId'\n) =>\n entries.map(entry => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return mapper ? mapJson((entry || {}) as S, mapper) : entry;\n });\n\n/**\n * mapComposer mapping function to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const mapComposer = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[],\n mappers: T\n) =>\n Array.isArray(composer)\n ? composer.map((composerItem, index) => {\n const itemValue = composerItem.value;\n const mapper = mappers[composerItem.type] || mappers.default;\n if (mapper) {\n // Add some fields into the composer item mapper and return object\n const addedFields = {\n _type: composerItem.type,\n _index: index,\n };\n\n // Add fields and $root item into the composer item source object\n // for use inside each item mapping, for arrays we inject the added fields\n // into the first array item. This is useful if we require any of\n // composerItem.type, composerItem index/position and composer $root\n // in scope to influence any composer item's mapping logic\n const sourceObject =\n itemValue && Array.isArray(itemValue)\n ? itemValue.map((iv, idx) =>\n idx !== 0\n ? iv\n : typeof iv === 'object'\n ? { ...addedFields, ...iv, $root: composer }\n : iv\n )\n : typeof itemValue === 'object'\n ? { ...addedFields, ...itemValue, $root: composer }\n : itemValue || {};\n\n // Apply the composer item mapping\n const mappedFields = mapJson(sourceObject, mapper) as any;\n\n // Add the extra fields in with the return object\n return mappedFields && typeof mappedFields === 'object'\n ? { ...mappedFields, ...addedFields }\n : mappedFields;\n } else return;\n })\n : composer || [];\n\n/**\n * useComposerMapper hook to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const useComposerMapper = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[] = [],\n mappers: T\n) => mapComposer(composer, mappers);\n\n/**\n * entryMapper will return a function to satisfy an entryMapper when defining app route\n * this is essentially a shorthand function to prevent boilerplate repetition inside your routes file\n * you do not need to use this function should you wish to map your entry via raw JS functions\n * @param mapping the jsonpath-mapper mapping template to apply when the route is resolved\n * @returns {mappedEntry}\n */\nexport const entryMapper =\n (\n mapping:\n | MappingTemplate<RouteNode & Entry & { state?: AppState }>\n | PureJsFunction<RouteNode & Entry & { state?: AppState }>\n ): EntryMapper =>\n (node, state) =>\n mapJson({ ...node, ...(node.entry || ({} as Entry)), state }, mapping);\n\nexport default mapJson;\n","import { Response } from 'express';\n\nconst setCachingHeaders = (\n response: Response,\n { cacheControl = 'private', surrogateControl = '3600' },\n method = 'header'\n) => {\n if (cacheControl) response[method]('Cache-Control', cacheControl);\n if (surrogateControl)\n response[method](\n 'Surrogate-Control',\n `max-age=${surrogateControl.toString()}`\n );\n};\n\nexport default setCachingHeaders;\n","const stringifyStrings = obj => {\n const returnObj = Array.isArray(obj) ? [] : {};\n Object.entries(obj).forEach(([key, value]) => {\n switch (typeof value) {\n case 'string':\n returnObj[key] = JSON.stringify(value);\n break;\n case 'object':\n returnObj[key] = stringifyStrings(value);\n break;\n default:\n returnObj[key] = value;\n break;\n }\n });\n return returnObj;\n};\n\nmodule.exports = stringifyStrings;\n","const url = (alias: string, project: string) => {\n const projectAndAlias =\n project && project.toLowerCase() !== 'website'\n ? `${project.toLowerCase()}-${alias}`\n : alias;\n return {\n api: `https://api-${alias}.cloud.contensis.com`,\n cms: `https://cms-${alias}.cloud.contensis.com`,\n liveWeb: `https://live-${projectAndAlias}.cloud.contensis.com`,\n previewWeb: `https://preview-${projectAndAlias}.cloud.contensis.com`,\n iisWeb: `https://iis-live-${projectAndAlias}.cloud.contensis.com`,\n iisPreviewWeb: `https://iis-preview-${projectAndAlias}.cloud.contensis.com`,\n };\n};\n\nexport default url;\n","import { default as mapJson } from '~/util/json-mapper';\nimport { selectCurrentProject } from '~/routing/redux/selectors';\nimport {\n selectBuildNumber,\n selectCommitRef,\n selectVersionStatus,\n} from '~/redux/selectors/version';\nimport { IVersionInfoProps } from '../components/VersionInfo';\n\nconst context = (\n typeof window != 'undefined' ? window : global\n) as typeof globalThis & {\n DISABLE_SSR_REDUX: any;\n PACKAGE_JSON: any;\n PROJECTS: any;\n PROXY_DELIVERY_API: any;\n PUBLIC_URI: any;\n REVERSE_PROXY_PATHS: string[];\n SERVERS: any;\n};\n\nconst isDev = process.env.NODE_ENV === 'development';\n\nconst pj = () =>\n isDev\n ? PACKAGE_JSON /* global PACKAGE_JSON */\n : context.PACKAGE_JSON || { name: 'packagejson not found', repository: '' };\n\nconst versionInfoProps = {\n packageDetail: () => {\n const pkg = pj();\n return { name: pkg.name, version: pkg.version, repository: pkg.repository };\n },\n uris: {\n gitRepo: () => pj().repository,\n commit: state => {\n const commitRef = selectCommitRef(state);\n return `${pj().repository}/commit/${commitRef ? commitRef : ''}`;\n },\n pipeline: state => {\n const buildNumber = selectBuildNumber(state);\n return `${pj().repository}/${\n pj().repository.includes('github.com') ? 'actions/runs' : 'pipelines'\n }/${buildNumber ? buildNumber : ''}`;\n },\n },\n zenPackageVersions: () => [\n ...(Object.entries(pj().devDependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ...(Object.entries(pj().dependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ],\n deliveryApi: () =>\n JSON.parse(\n JSON.stringify(DELIVERY_API_CONFIG /* global DELIVERY_API_CONFIG */)\n ),\n devEnv: () =>\n typeof DEV_ENV !== 'undefined' /* global DEV_ENV */ ? DEV_ENV : null,\n disableSsrRedux: () =>\n isDev\n ? DISABLE_SSR_REDUX /* global DISABLE_SSR_REDUX*/\n : context.DISABLE_SSR_REDUX || false,\n nodeEnv: () => process.env.NODE_ENV || 'production',\n packagejson: () => pj() || {},\n projects: () => (isDev ? PROJECTS /* global PROJECTS */ : context.PROJECTS),\n proxyDeliveryApi: () =>\n isDev\n ? PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */\n : context.PROXY_DELIVERY_API || false,\n publicUri: () =>\n isDev ? PUBLIC_URI /* global PUBLIC_URI */ : context.PUBLIC_URI || null,\n project: state => selectCurrentProject(state),\n reverseProxyPaths: () =>\n isDev\n ? REVERSE_PROXY_PATHS /* global REVERSE_PROXY_PATHS */\n : context.REVERSE_PROXY_PATHS || {},\n servers: () => (isDev ? SERVERS /* global SERVERS */ : context.SERVERS),\n version: {\n buildNumber: state => selectBuildNumber(state),\n commitRef: state => selectCommitRef(state),\n contensisVersionStatus: state => selectVersionStatus(state),\n },\n};\n\nconst mapStateToVersionInfo = state => {\n const mappedProps = mapJson(state, versionInfoProps);\n return mappedProps as IVersionInfoProps;\n};\n\nexport default mapStateToVersionInfo;\n","import styled from 'styled-components';\n\nexport const VersionInfoStyledTable = styled.table`\n font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;\n font-size: 1.6rem;\n line-height: 1.5rem;\n border-bottom: 4px solid #8892bf;\n border-collapse: separate;\n margin: 0 auto;\n width: 80%;\n th {\n text-align: left;\n background-color: #c4c9df;\n border-bottom: #8892bf 2px solid;\n border-bottom-color: #8892bf;\n border-top: 20px solid #fff;\n }\n td {\n border-bottom: 1px solid #eee;\n }\n td,\n th {\n padding: 0.5rem 0.75rem;\n vertical-align: top;\n }\n .left {\n width: 25%;\n }\n tr th {\n border-right: hidden;\n border-spacing: 0 15px;\n }\n .green {\n background-color: #9c9;\n border-bottom: 1px solid #696;\n }\n .red {\n background-color: #c99;\n border-bottom: 1px solid #966;\n }\n .small {\n font-size: 100%;\n line-height: 2.4rem;\n }\n`;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport mapStateToVersionInfo from '../transformations/state-to-versioninfoprops.mapper';\n\nimport { VersionInfoStyledTable } from './VersionInfo.styled';\n\nexport interface IVersionInfoProps {\n deliveryApi: {\n rootUrl: string;\n accessToken: string;\n projectId: string;\n livePublishingRootUrl: string;\n };\n devEnv: any;\n disableSsrRedux: boolean;\n nodeEnv: string;\n packageDetail: any;\n project: string;\n projects;\n proxyDeliveryApi;\n publicUri: string;\n reverseProxyPaths: string[];\n servers: {\n alias: string;\n api: string;\n cms: string;\n web: string;\n iis: string;\n previewIis: string;\n previewWeb: string;\n };\n uris: {\n gitRepo: string;\n commit: string;\n pipeline: string;\n };\n version: {\n buildNumber: string;\n commitRef: string;\n contensisVersionStatus: string;\n };\n zenPackageVersions: string[];\n}\n\nconst VersionInfo = ({\n deliveryApi,\n devEnv,\n disableSsrRedux,\n nodeEnv,\n packageDetail,\n project,\n projects,\n proxyDeliveryApi,\n publicUri,\n reverseProxyPaths,\n servers,\n uris,\n version,\n zenPackageVersions,\n}: IVersionInfoProps) => {\n return (\n <VersionInfoStyledTable>\n <thead>\n <tr>\n <td colSpan={2}>\n <h1>\n <a href=\"/\">Version Information</a>\n </h1>\n </td>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th colSpan={2}>Package detail</th>\n </tr>\n <tr>\n <td className=\"left\">Name</td>\n <td>{packageDetail.name}</td>\n </tr>\n <tr>\n <td className=\"left\">Version</td>\n <td>{packageDetail.version}</td>\n </tr>\n <tr>\n <th colSpan={2}>Version info (state)</th>\n </tr>\n <tr>\n <td>Git repo url: </td>\n <td>\n <a\n href={packageDetail.repository}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {packageDetail.repository}\n </a>\n </td>\n </tr>\n <tr>\n <td>Pipeline: </td>\n <td>\n <a href={uris.pipeline} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.buildNumber}\n </a>\n </td>\n </tr>\n <tr>\n <td>Commit: </td>\n <td>\n <a href={uris.commit} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.commitRef}\n </a>\n </td>\n </tr>\n {/* <tr>\n <td>Last release ref: </td>\n <td></td>\n </tr>\n <tr>\n <td>Number of commits since last release: </td>\n <td></td>\n </tr> */}\n <tr>\n <td>Project</td>\n <td className={project === 'unknown' ? 'red' : ''}>{project}</td>\n </tr>\n <tr>\n <td>Contensis version status: </td>\n <td\n className={\n version.contensisVersionStatus === 'published' ? 'green' : 'red'\n }\n >\n {version.contensisVersionStatus}\n </td>\n </tr>\n <tr>\n <th colSpan={2}>Build configuration</th>\n </tr>\n <tr>\n <td>Environment</td>\n <td>{servers.alias}</td>\n </tr>\n <tr>\n <td>Public uri</td>\n <td>{publicUri}</td>\n </tr>\n <tr>\n <td>Zengenti packages</td>\n <td>\n {zenPackageVersions.map(([pkg, ver], idx) => (\n <div key={idx}>\n {pkg}: {ver}\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Servers</td>\n <td className=\"small\">\n <div>web: {servers.web}</div>\n <div>preview: {servers.previewWeb}</div>\n <div>api: {servers.api}</div>\n <div>cms: {servers.cms}</div>\n <div>iis: {servers.iis}</div>\n <div>iis preview: {servers.previewIis}</div>\n </td>\n </tr>\n <tr>\n <td>Reverse proxy paths</td>\n <td>\n {Object.entries(reverseProxyPaths).map(([, path], key) => (\n <span key={key}>[ {path} ] </span>\n ))}\n </td>\n </tr>\n <tr>\n <td>Projects</td>\n <td>\n {Object.entries(\n projects as {\n id: string;\n publicUri: string;\n }[]\n ).map(([, project], key) => (\n <div key={key}>\n [ {project.id}: {project.publicUri} ]\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Delivery API</td>\n <td className=\"small\">\n <ul style={{ margin: 0, padding: 0 }}>\n {Object.entries(deliveryApi).map(\n ([key, value]: [string, any], idx) => {\n if (typeof value === 'object') return null;\n return (\n <li key={idx} style={{ listStyleType: 'none' }}>\n {key}: <span>{value}</span>\n </li>\n );\n }\n )}\n </ul>\n </td>\n </tr>\n <tr>\n <td>Proxy Delivery API requests</td>\n <td className={proxyDeliveryApi ? 'green' : 'red'}>\n {proxyDeliveryApi.toString()}\n </td>\n </tr>\n <tr>\n <td>Disable SSR inline-redux</td>\n <td>{disableSsrRedux.toString()}</td>\n </tr>\n <tr>\n <td>NODE_ENV</td>\n <td className={nodeEnv === 'production' ? 'green' : 'red'}>\n {nodeEnv.toString()}\n </td>\n </tr>\n {devEnv && (\n <tr>\n <td>process.env</td>\n <td>\n {Object.entries(devEnv).map(([k, v], key) => (\n <div key={key}>\n [ {k}: {v} ]\n </div>\n ))}\n </td>\n </tr>\n )}\n </tbody>\n </VersionInfoStyledTable>\n );\n};\n\nexport default connect(mapStateToVersionInfo)(VersionInfo);\n"],"names":["useMapper","json","template","mapJson","chooseMapperByFieldValue","entry","mappers","field","fieldValue","jpath","default","useEntriesMapper","mapper","useEntryMapper","mapEntries","entries","map","mapComposer","composer","Array","isArray","composerItem","index","itemValue","value","type","addedFields","_type","_index","sourceObject","iv","idx","$root","mappedFields","useComposerMapper","entryMapper","mapping","node","state","setCachingHeaders","response","cacheControl","surrogateControl","method","toString","stringifyStrings","obj","returnObj","Object","forEach","key","JSON","stringify","module","url","alias","project","projectAndAlias","toLowerCase","api","cms","liveWeb","previewWeb","iisWeb","iisPreviewWeb","context","window","global","isDev","process","env","NODE_ENV","pj","PACKAGE_JSON","name","repository","versionInfoProps","packageDetail","pkg","version","uris","gitRepo","commit","commitRef","selectCommitRef","pipeline","buildNumber","selectBuildNumber","includes","zenPackageVersions","devDependencies","filter","dependencies","deliveryApi","parse","DELIVERY_API_CONFIG","devEnv","DEV_ENV","disableSsrRedux","DISABLE_SSR_REDUX","nodeEnv","packagejson","projects","PROJECTS","proxyDeliveryApi","PROXY_DELIVERY_API","publicUri","PUBLIC_URI","selectCurrentProject","reverseProxyPaths","REVERSE_PROXY_PATHS","servers","SERVERS","contensisVersionStatus","selectVersionStatus","mapStateToVersionInfo","mappedProps","VersionInfoStyledTable","styled","table","VersionInfo","React","ver","web","iis","previewIis","path","id","margin","padding","listStyleType","k","v","connect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"version-7c4ce67e.js","sources":["../src/redux/types/navigation.js","../src/redux/reducers/navigation.ts","../src/util/merge.ts","../src/routing/redux/reducers.ts","../src/redux/types/version.js","../src/redux/reducers/version.ts","../src/redux/store/routerMiddleware.js","../src/redux/store/store.ts","../src/redux/selectors/navigation.js","../src/redux/store/injectors.js","../src/redux/actions/version.js"],"sourcesContent":["const ACTION_PREFIX = '@NAVIGATION/';\nexport const GET_NODE_TREE = `${ACTION_PREFIX}_GET_NODE_TREE`;\nexport const SET_NODE_TREE = `${ACTION_PREFIX}_SET_NODE_TREE`;\nexport const GET_NODE_TREE_ERROR = `${ACTION_PREFIX}_GET_NODE_TREE_ERROR`;\n","import { Draft, produce } from 'immer';\nimport { SET_NODE_TREE, GET_NODE_TREE_ERROR } from '~/redux/types/navigation';\n\nconst initialState = {\n root: null,\n isError: false,\n isReady: false,\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_NODE_TREE: {\n state.root = action.nodes;\n state.isReady = true;\n return;\n }\n case GET_NODE_TREE_ERROR: {\n state.isError = true;\n return;\n }\n default:\n return;\n }\n}, initialState);\n","import merge from 'deepmerge';\n\nexport const combineMerge = (target, source, options) => {\n const destination = target.slice();\n\n source.forEach((item, index) => {\n if (typeof destination[index] === 'undefined') {\n destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);\n } else if (options.isMergeableObject(item)) {\n destination[index] = merge(target[index], item, options);\n } else if (target.indexOf(item) === -1) {\n destination.push(item);\n }\n });\n return destination;\n};\n","import { Draft, produce } from 'immer';\nimport merge from 'deepmerge';\n\nimport {\n SET_ENTRY,\n SET_NAVIGATION_PATH,\n SET_ANCESTORS,\n SET_TARGET_PROJECT,\n SET_ROUTE,\n SET_SIBLINGS,\n SET_SURROGATE_KEYS,\n UPDATE_LOADING_STATE,\n} from './types';\nimport { combineMerge } from '~/util/merge';\n\nconst initialState = {\n currentHostname: null,\n currentPath: '/',\n currentNode: {},\n currentNodeAncestors: [],\n currentProject: 'unknown',\n entryID: null,\n entry: null,\n error: undefined,\n isError: false,\n isLoading: false,\n location: {},\n mappedEntry: null,\n notFound: false,\n staticRoute: null,\n statusCode: 200,\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_ANCESTORS: {\n state.currentNodeAncestors = action.ancestors;\n return;\n }\n case SET_ENTRY: {\n const {\n entry,\n error,\n mappedEntry,\n node = {},\n isError = false,\n isLoading = false,\n notFound = false,\n statusCode,\n } = action;\n\n let defaultStatus = 200;\n if (notFound === true && isError === false) defaultStatus = 404;\n else if (isError === true) defaultStatus = statusCode || 500;\n\n if (!entry) {\n state.entryID = null;\n state.entry = null;\n state.error = error;\n state.mappedEntry = null;\n state.isError = isError;\n state.isLoading = isLoading;\n state.notFound = notFound;\n state.statusCode = statusCode || defaultStatus;\n } else {\n state.entryID = action.id;\n state.entry = entry;\n state.error = error;\n state.isError = isError;\n state.isLoading = isLoading;\n state.notFound = notFound;\n state.statusCode = statusCode || defaultStatus;\n\n if (mappedEntry && Object.keys(mappedEntry).length > 0) {\n state.mappedEntry = mappedEntry;\n state.entry = { sys: entry.sys };\n }\n }\n\n if (!node) {\n state.currentNode = null;\n } else {\n // On Set Node, we reset all dependants.\n state.currentNode = node;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { entry, ...nodeWithoutEntry } = node; // We have the entry stored elsewhere, so lets not keep it twice.\n state.currentNode = nodeWithoutEntry;\n }\n return;\n }\n case UPDATE_LOADING_STATE: {\n state.isLoading = action.isLoading;\n return;\n }\n case SET_NAVIGATION_PATH: {\n let staticRoute = {} as any;\n if (action.staticRoute) {\n staticRoute = { ...action.staticRoute };\n }\n if (action.path) {\n // Don't run a path update on initial load as we allready should have it in redux\n const entryUri = state?.entry?.sys?.uri;\n if (entryUri !== action.path) {\n state.currentPath = action.path;\n state.location = action.location;\n state.staticRoute = {\n ...staticRoute,\n route: { ...staticRoute.route, component: null },\n };\n\n state.isLoading = typeof window !== 'undefined';\n } else {\n state.location = action.location;\n state.staticRoute = {\n ...staticRoute,\n route: { ...staticRoute.route, component: null },\n };\n }\n }\n return;\n }\n case SET_ROUTE: {\n state.nextPath = action.path;\n return;\n }\n case SET_SIBLINGS: {\n // Can be null in some cases like the homepage.\n let currentNodeSiblingParent = null;\n if (action.siblings && action.siblings.length > 0) {\n currentNodeSiblingParent = action.siblings[0].parentId;\n }\n\n state.currentNodeSiblings = action.siblings;\n state.currentNodeSiblingsParent = currentNodeSiblingParent;\n return;\n }\n case SET_SURROGATE_KEYS: {\n console.info(`SET_SURROGATE_KEYS: '${action.url}' keys: ${action.keys}`);\n state.surrogateKeys = merge(\n state.surrogateKeys,\n (action.keys || '').split(' '),\n { arrayMerge: combineMerge }\n );\n return;\n }\n case SET_TARGET_PROJECT: {\n state.currentProject = action.project;\n state.allowedGroups = action.allowedGroups;\n state.currentHostname = action.hostname;\n return;\n }\n default:\n return state;\n }\n}, initialState);\n","const VERSION_PREFIX = '@VERSION/';\nexport const SET_VERSION = `${VERSION_PREFIX}SET_VERSION`;\nexport const SET_VERSION_STATUS = `${VERSION_PREFIX}SET_VERSION_STATUS`;\n","import { Draft, produce } from 'immer';\nimport { SET_VERSION, SET_VERSION_STATUS } from '~/redux/types/version';\n\nconst initialState = {\n commitRef: null,\n buildNo: null,\n contensisVersionStatus: 'published',\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_VERSION_STATUS: {\n state.contensisVersionStatus = action.status;\n return;\n }\n case SET_VERSION: {\n state.commitRef = action.commitRef;\n state.buildNo = action.buildNo;\n return;\n }\n default:\n return;\n }\n}, initialState);\n","/**\n * This middleware captures 'CALL_HISTORY_METHOD' actions to redirect to the\n * provided history object. This will prevent these actions from reaching your\n * reducer or any middleware that comes after this one.\n */\n/* eslint-disable no-unused-vars */\nconst routerMiddleware = history => store => next => action => {\n if (action.type !== 'CALL_HISTORY_METHOD') {\n return next(action);\n }\n\n const {\n payload: { method, args },\n } = action;\n history[method](...args);\n};\n\nexport default routerMiddleware;\n","import {\n applyMiddleware,\n combineReducers,\n compose,\n createStore,\n Action,\n Store,\n StoreEnhancer,\n} from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport createSagaMiddleware, { END } from 'redux-saga';\nimport { createInjectorsEnhancer } from 'redux-injectors';\n\n// Core reducers\nimport NavigationReducer from '../reducers/navigation';\nimport RoutingReducer from '~/routing/redux/reducers';\nimport UserReducer from '~/user/redux/reducers';\nimport VersionReducer from '../reducers/version';\nimport routerMiddleware from './routerMiddleware';\nimport { AppState } from '../appstate';\nimport { History, MemoryHistory } from 'history';\nimport { StateType } from '~/config';\n\nexport let reduxStore;\n\n/* eslint-disable no-underscore-dangle */\ndeclare let window: Window &\n typeof globalThis & {\n __REDUX_DEVTOOLS_EXTENSION__: any;\n };\n\nexport default async (\n featureReducers: any,\n initialState: AppState,\n history: History | MemoryHistory,\n stateType: StateType\n) => {\n let reduxDevToolsMiddleware = f => f;\n\n if (typeof window != 'undefined') {\n reduxDevToolsMiddleware = window.__REDUX_DEVTOOLS_EXTENSION__\n ? window.__REDUX_DEVTOOLS_EXTENSION__()\n : f => f;\n }\n\n const sagaMiddleware = createSagaMiddleware();\n\n const reducers = {\n navigation: NavigationReducer,\n routing: RoutingReducer,\n user: UserReducer,\n version: VersionReducer,\n ...featureReducers,\n };\n\n // Reassign the combiner and fromJS functions when\n // stateType is 'immutable' with dynamic imports\n let combiner = combineReducers;\n let fromJS: any = (obj: any) => obj;\n globalThis.STATE_TYPE = stateType;\n\n if (stateType === 'immutable') {\n globalThis.immutable = await import(\n /* webpackChunkName: \"immutable\" */ 'immutable'\n );\n\n fromJS = (\n await import(/* webpackChunkName: \"from-js\" */ '~/util/fromJSLeaveImmer')\n ).default;\n\n combiner = (\n await import(/* webpackChunkName: \"redux-immutable\" */ 'redux-immutable')\n ).combineReducers;\n }\n\n const createReducer = (injectedReducers = {}) => {\n const rootReducer = combiner<AppState>({\n ...injectedReducers,\n // other non-injected reducers go here\n ...reducers,\n });\n\n return rootReducer;\n };\n\n const store = (initialState: AppState) => {\n const runSaga = sagaMiddleware.run;\n\n const middleware: StoreEnhancer<\n {\n dispatch: unknown;\n },\n unknown\n > = compose(\n applyMiddleware(\n thunkMiddleware,\n sagaMiddleware,\n routerMiddleware(history)\n ),\n createInjectorsEnhancer({\n createReducer,\n runSaga,\n }),\n reduxDevToolsMiddleware\n );\n\n const store: Store<AppState, Action<any>> & {\n runSaga?: typeof runSaga;\n close?: () => void;\n } = createStore<AppState, Action<any>, unknown, unknown>(\n createReducer(),\n initialState,\n middleware\n );\n\n store.runSaga = runSaga;\n store.close = () => store.dispatch(END);\n\n return store;\n };\n\n reduxStore = store(fromJS(initialState));\n return reduxStore;\n};\n","import { getImmutableOrJS as getIn } from '~/redux/util';\n\nexport const hasNavigationTree = state =>\n getIn(state, ['navigation', 'isReady']);\n\nexport const selectNavigationRoot = state =>\n getIn(state, ['navigation', 'root']);\n\nexport const selectNavigationChildren = state =>\n getIn(state, ['navigation', 'root', 'children']);\n\nexport const selectNavigationDepends = () => [];\n","import { all } from 'redux-saga/effects';\nimport { reduxStore as DefaultStore } from './store';\n\nexport const convertSagaArray = sagas => {\n if (Array.isArray(sagas))\n return function* rootSaga() {\n yield all(sagas);\n };\n return sagas;\n};\n\nexport const injectReducer = ({ key, reducer }, store = DefaultStore) => {\n if (\n Reflect.has(store.injectedReducers, key) &&\n store.injectedReducers[key] === reducer\n )\n return;\n store.injectedReducers[key] = reducer;\n\n store.replaceReducer(store.createReducer(store.injectedReducers));\n};\n\nexport const injectSaga = ({ key, saga }, store = DefaultStore) => {\n const rootSaga = convertSagaArray(saga);\n let hasSaga = Reflect.has(store.injectedSagas, key);\n\n if (process.env.NODE_ENV !== 'production') {\n const oldDescriptor = store.injectedSagas[key]; // enable hot reloading of daemon and once-till-unmount sagas\n\n if (hasSaga && oldDescriptor.saga !== rootSaga) {\n oldDescriptor.task.cancel();\n hasSaga = false;\n }\n }\n console.info('injectSaga, key: ', key, 'hasSaga: ', hasSaga);\n\n if (!hasSaga) {\n store.injectedSagas[key] = {\n key,\n saga: rootSaga,\n task: store.runSaga(rootSaga),\n };\n }\n};\n\nexport const injectRedux = ({ key, reducer, saga }, store = DefaultStore) => {\n console.info('injectRedux, key: ', key);\n if (reducer) injectReducer({ key, reducer }, store);\n if (saga) injectSaga({ key, saga }, store);\n};\n\nexport const useInjectRedux = injectRedux;\n","import { action } from '../util';\nimport { SET_VERSION, SET_VERSION_STATUS } from '../types/version';\n\nexport const setVersion = (commitRef, buildNo) =>\n action(SET_VERSION, { commitRef, buildNo });\n\nexport const setVersionStatus = status =>\n action(SET_VERSION_STATUS, { status });\n"],"names":["ACTION_PREFIX","GET_NODE_TREE","SET_NODE_TREE","GET_NODE_TREE_ERROR","initialState","root","isError","isReady","produce","state","action","type","nodes","combineMerge","target","source","options","destination","slice","forEach","item","index","cloneUnlessOtherwiseSpecified","isMergeableObject","merge","indexOf","push","currentHostname","currentPath","currentNode","currentNodeAncestors","currentProject","entryID","entry","error","undefined","isLoading","location","mappedEntry","notFound","staticRoute","statusCode","SET_ANCESTORS","ancestors","SET_ENTRY","node","defaultStatus","id","Object","keys","length","sys","nodeWithoutEntry","UPDATE_LOADING_STATE","SET_NAVIGATION_PATH","path","entryUri","uri","route","component","window","SET_ROUTE","nextPath","SET_SIBLINGS","currentNodeSiblingParent","siblings","parentId","currentNodeSiblings","currentNodeSiblingsParent","SET_SURROGATE_KEYS","console","info","url","surrogateKeys","split","arrayMerge","SET_TARGET_PROJECT","project","allowedGroups","hostname","VERSION_PREFIX","SET_VERSION","SET_VERSION_STATUS","commitRef","buildNo","contensisVersionStatus","status","routerMiddleware","history","store","next","payload","method","args","reduxStore","featureReducers","stateType","reduxDevToolsMiddleware","f","__REDUX_DEVTOOLS_EXTENSION__","sagaMiddleware","createSagaMiddleware","reducers","navigation","NavigationReducer","routing","RoutingReducer","user","UserReducer","version","VersionReducer","combiner","combineReducers","fromJS","obj","globalThis","STATE_TYPE","immutable","default","createReducer","injectedReducers","rootReducer","runSaga","run","middleware","compose","applyMiddleware","thunkMiddleware","createInjectorsEnhancer","createStore","close","dispatch","END","hasNavigationTree","getIn","selectNavigationRoot","selectNavigationChildren","selectNavigationDepends","convertSagaArray","sagas","Array","isArray","rootSaga","all","injectReducer","key","reducer","DefaultStore","Reflect","has","replaceReducer","injectSaga","saga","hasSaga","injectedSagas","process","env","NODE_ENV","oldDescriptor","task","cancel","injectRedux","useInjectRedux","setVersion","setVersionStatus"],"mappings":"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"}
1
+ {"version":3,"file":"version-7c4ce67e.js","sources":["../src/redux/types/navigation.js","../src/redux/reducers/navigation.ts","../src/util/merge.ts","../src/routing/redux/reducers.ts","../src/redux/types/version.js","../src/redux/reducers/version.ts","../src/redux/store/routerMiddleware.js","../src/redux/store/store.ts","../src/redux/selectors/navigation.js","../src/redux/store/injectors.js","../src/redux/actions/version.js"],"sourcesContent":["const ACTION_PREFIX = '@NAVIGATION/';\nexport const GET_NODE_TREE = `${ACTION_PREFIX}_GET_NODE_TREE`;\nexport const SET_NODE_TREE = `${ACTION_PREFIX}_SET_NODE_TREE`;\nexport const GET_NODE_TREE_ERROR = `${ACTION_PREFIX}_GET_NODE_TREE_ERROR`;\n","import { Draft, produce } from 'immer';\nimport { SET_NODE_TREE, GET_NODE_TREE_ERROR } from '~/redux/types/navigation';\n\nconst initialState = {\n root: null,\n isError: false,\n isReady: false,\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_NODE_TREE: {\n state.root = action.nodes;\n state.isReady = true;\n return;\n }\n case GET_NODE_TREE_ERROR: {\n state.isError = true;\n return;\n }\n default:\n return;\n }\n}, initialState);\n","import merge from 'deepmerge';\n\nexport const combineMerge = (target: any, source: any, options: any) => {\n const destination = target.slice();\n\n source.forEach((item: any, index: any) => {\n if (typeof destination[index] === 'undefined') {\n destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);\n } else if (options.isMergeableObject(item)) {\n destination[index] = merge(target[index], item, options);\n } else if (target.indexOf(item) === -1) {\n destination.push(item);\n }\n });\n return destination;\n};\n","import { Draft, produce } from 'immer';\nimport merge from 'deepmerge';\n\nimport {\n SET_ENTRY,\n SET_NAVIGATION_PATH,\n SET_ANCESTORS,\n SET_TARGET_PROJECT,\n SET_ROUTE,\n SET_SIBLINGS,\n SET_SURROGATE_KEYS,\n UPDATE_LOADING_STATE,\n} from './types';\nimport { combineMerge } from '~/util/merge';\n\nconst initialState = {\n currentHostname: null,\n currentPath: '/',\n currentNode: {},\n currentNodeAncestors: [],\n currentProject: 'unknown',\n entryID: null,\n entry: null,\n error: undefined,\n isError: false,\n isLoading: false,\n location: {},\n mappedEntry: null,\n notFound: false,\n staticRoute: null,\n statusCode: 200,\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_ANCESTORS: {\n state.currentNodeAncestors = action.ancestors;\n return;\n }\n case SET_ENTRY: {\n const {\n entry,\n error,\n mappedEntry,\n node = {},\n isError = false,\n isLoading = false,\n notFound = false,\n statusCode,\n } = action;\n\n let defaultStatus = 200;\n if (notFound === true && isError === false) defaultStatus = 404;\n else if (isError === true) defaultStatus = statusCode || 500;\n\n if (!entry) {\n state.entryID = null;\n state.entry = null;\n state.error = error;\n state.mappedEntry = null;\n state.isError = isError;\n state.isLoading = isLoading;\n state.notFound = notFound;\n state.statusCode = statusCode || defaultStatus;\n } else {\n state.entryID = action.id;\n state.entry = entry;\n state.error = error;\n state.isError = isError;\n state.isLoading = isLoading;\n state.notFound = notFound;\n state.statusCode = statusCode || defaultStatus;\n\n if (mappedEntry && Object.keys(mappedEntry).length > 0) {\n state.mappedEntry = mappedEntry;\n state.entry = { sys: entry.sys };\n }\n }\n\n if (!node) {\n state.currentNode = null;\n } else {\n // On Set Node, we reset all dependants.\n state.currentNode = node;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { entry, ...nodeWithoutEntry } = node; // We have the entry stored elsewhere, so lets not keep it twice.\n state.currentNode = nodeWithoutEntry;\n }\n return;\n }\n case UPDATE_LOADING_STATE: {\n state.isLoading = action.isLoading;\n return;\n }\n case SET_NAVIGATION_PATH: {\n let staticRoute = {} as any;\n if (action.staticRoute) {\n staticRoute = { ...action.staticRoute };\n }\n if (action.path) {\n // Don't run a path update on initial load as we allready should have it in redux\n const entryUri = state?.entry?.sys?.uri;\n if (entryUri !== action.path) {\n state.currentPath = action.path;\n state.location = action.location;\n state.staticRoute = {\n ...staticRoute,\n route: { ...staticRoute.route, component: null },\n };\n\n state.isLoading = typeof window !== 'undefined';\n } else {\n state.location = action.location;\n state.staticRoute = {\n ...staticRoute,\n route: { ...staticRoute.route, component: null },\n };\n }\n }\n return;\n }\n case SET_ROUTE: {\n state.nextPath = action.path;\n return;\n }\n case SET_SIBLINGS: {\n // Can be null in some cases like the homepage.\n let currentNodeSiblingParent = null;\n if (action.siblings && action.siblings.length > 0) {\n currentNodeSiblingParent = action.siblings[0].parentId;\n }\n\n state.currentNodeSiblings = action.siblings;\n state.currentNodeSiblingsParent = currentNodeSiblingParent;\n return;\n }\n case SET_SURROGATE_KEYS: {\n console.info(`SET_SURROGATE_KEYS: '${action.url}' keys: ${action.keys}`);\n state.surrogateKeys = merge(\n state.surrogateKeys,\n (action.keys || '').split(' '),\n { arrayMerge: combineMerge }\n );\n return;\n }\n case SET_TARGET_PROJECT: {\n state.currentProject = action.project;\n state.allowedGroups = action.allowedGroups;\n state.currentHostname = action.hostname;\n return;\n }\n default:\n return state;\n }\n}, initialState);\n","const VERSION_PREFIX = '@VERSION/';\nexport const SET_VERSION = `${VERSION_PREFIX}SET_VERSION`;\nexport const SET_VERSION_STATUS = `${VERSION_PREFIX}SET_VERSION_STATUS`;\n","import { Draft, produce } from 'immer';\nimport { SET_VERSION, SET_VERSION_STATUS } from '~/redux/types/version';\n\nconst initialState = {\n commitRef: null,\n buildNo: null,\n contensisVersionStatus: 'published',\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_VERSION_STATUS: {\n state.contensisVersionStatus = action.status;\n return;\n }\n case SET_VERSION: {\n state.commitRef = action.commitRef;\n state.buildNo = action.buildNo;\n return;\n }\n default:\n return;\n }\n}, initialState);\n","/**\n * This middleware captures 'CALL_HISTORY_METHOD' actions to redirect to the\n * provided history object. This will prevent these actions from reaching your\n * reducer or any middleware that comes after this one.\n */\n/* eslint-disable no-unused-vars */\nconst routerMiddleware = history => store => next => action => {\n if (action.type !== 'CALL_HISTORY_METHOD') {\n return next(action);\n }\n\n const {\n payload: { method, args },\n } = action;\n history[method](...args);\n};\n\nexport default routerMiddleware;\n","import {\n applyMiddleware,\n combineReducers,\n compose,\n createStore,\n Action,\n Store,\n StoreEnhancer,\n} from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport createSagaMiddleware, { END } from 'redux-saga';\nimport { createInjectorsEnhancer } from 'redux-injectors';\n\n// Core reducers\nimport NavigationReducer from '../reducers/navigation';\nimport RoutingReducer from '~/routing/redux/reducers';\nimport UserReducer from '~/user/redux/reducers';\nimport VersionReducer from '../reducers/version';\nimport routerMiddleware from './routerMiddleware';\nimport { AppState } from '../appstate';\nimport { History, MemoryHistory } from 'history';\nimport { StateType } from '~/config';\n\nexport let reduxStore;\n\n/* eslint-disable no-underscore-dangle */\ndeclare let window: Window &\n typeof globalThis & {\n __REDUX_DEVTOOLS_EXTENSION__: any;\n };\n\nexport default async (\n featureReducers: any,\n initialState: AppState,\n history: History | MemoryHistory,\n stateType: StateType\n) => {\n let reduxDevToolsMiddleware = f => f;\n\n if (typeof window != 'undefined') {\n reduxDevToolsMiddleware = window.__REDUX_DEVTOOLS_EXTENSION__\n ? window.__REDUX_DEVTOOLS_EXTENSION__()\n : f => f;\n }\n\n const sagaMiddleware = createSagaMiddleware();\n\n const reducers = {\n navigation: NavigationReducer,\n routing: RoutingReducer,\n user: UserReducer,\n version: VersionReducer,\n ...featureReducers,\n };\n\n // Reassign the combiner and fromJS functions when\n // stateType is 'immutable' with dynamic imports\n let combiner = combineReducers;\n let fromJS: any = (obj: any) => obj;\n globalThis.STATE_TYPE = stateType;\n\n if (stateType === 'immutable') {\n globalThis.immutable = await import(\n /* webpackChunkName: \"immutable\" */ 'immutable'\n );\n\n fromJS = (\n await import(/* webpackChunkName: \"from-js\" */ '~/util/fromJSLeaveImmer')\n ).default;\n\n combiner = (\n await import(/* webpackChunkName: \"redux-immutable\" */ 'redux-immutable')\n ).combineReducers;\n }\n\n const createReducer = (injectedReducers = {}) => {\n const rootReducer = combiner<AppState>({\n ...injectedReducers,\n // other non-injected reducers go here\n ...reducers,\n });\n\n return rootReducer;\n };\n\n const store = (initialState: AppState) => {\n const runSaga = sagaMiddleware.run;\n\n const middleware: StoreEnhancer<\n {\n dispatch: unknown;\n },\n unknown\n > = compose(\n applyMiddleware(\n thunkMiddleware,\n sagaMiddleware,\n routerMiddleware(history)\n ),\n createInjectorsEnhancer({\n createReducer,\n runSaga,\n }),\n reduxDevToolsMiddleware\n );\n\n const store: Store<AppState, Action<any>> & {\n runSaga?: typeof runSaga;\n close?: () => void;\n } = createStore<AppState, Action<any>, unknown, unknown>(\n createReducer(),\n initialState,\n middleware\n );\n\n store.runSaga = runSaga;\n store.close = () => store.dispatch(END);\n\n return store;\n };\n\n reduxStore = store(fromJS(initialState));\n return reduxStore;\n};\n","import { getImmutableOrJS as getIn } from '~/redux/util';\n\nexport const hasNavigationTree = state =>\n getIn(state, ['navigation', 'isReady']);\n\nexport const selectNavigationRoot = state =>\n getIn(state, ['navigation', 'root']);\n\nexport const selectNavigationChildren = state =>\n getIn(state, ['navigation', 'root', 'children']);\n\nexport const selectNavigationDepends = () => [];\n","import { all } from 'redux-saga/effects';\nimport { reduxStore as DefaultStore } from './store';\n\nexport const convertSagaArray = sagas => {\n if (Array.isArray(sagas))\n return function* rootSaga() {\n yield all(sagas);\n };\n return sagas;\n};\n\nexport const injectReducer = ({ key, reducer }, store = DefaultStore) => {\n if (\n Reflect.has(store.injectedReducers, key) &&\n store.injectedReducers[key] === reducer\n )\n return;\n store.injectedReducers[key] = reducer;\n\n store.replaceReducer(store.createReducer(store.injectedReducers));\n};\n\nexport const injectSaga = ({ key, saga }, store = DefaultStore) => {\n const rootSaga = convertSagaArray(saga);\n let hasSaga = Reflect.has(store.injectedSagas, key);\n\n if (process.env.NODE_ENV !== 'production') {\n const oldDescriptor = store.injectedSagas[key]; // enable hot reloading of daemon and once-till-unmount sagas\n\n if (hasSaga && oldDescriptor.saga !== rootSaga) {\n oldDescriptor.task.cancel();\n hasSaga = false;\n }\n }\n console.info('injectSaga, key: ', key, 'hasSaga: ', hasSaga);\n\n if (!hasSaga) {\n store.injectedSagas[key] = {\n key,\n saga: rootSaga,\n task: store.runSaga(rootSaga),\n };\n }\n};\n\nexport const injectRedux = ({ key, reducer, saga }, store = DefaultStore) => {\n console.info('injectRedux, key: ', key);\n if (reducer) injectReducer({ key, reducer }, store);\n if (saga) injectSaga({ key, saga }, store);\n};\n\nexport const useInjectRedux = injectRedux;\n","import { action } from '../util';\nimport { SET_VERSION, SET_VERSION_STATUS } from '../types/version';\n\nexport const setVersion = (commitRef, buildNo) =>\n action(SET_VERSION, { commitRef, buildNo });\n\nexport const setVersionStatus = status =>\n action(SET_VERSION_STATUS, { status });\n"],"names":["ACTION_PREFIX","GET_NODE_TREE","SET_NODE_TREE","GET_NODE_TREE_ERROR","initialState","root","isError","isReady","produce","state","action","type","nodes","combineMerge","target","source","options","destination","slice","forEach","item","index","cloneUnlessOtherwiseSpecified","isMergeableObject","merge","indexOf","push","currentHostname","currentPath","currentNode","currentNodeAncestors","currentProject","entryID","entry","error","undefined","isLoading","location","mappedEntry","notFound","staticRoute","statusCode","SET_ANCESTORS","ancestors","SET_ENTRY","node","defaultStatus","id","Object","keys","length","sys","nodeWithoutEntry","UPDATE_LOADING_STATE","SET_NAVIGATION_PATH","path","entryUri","uri","route","component","window","SET_ROUTE","nextPath","SET_SIBLINGS","currentNodeSiblingParent","siblings","parentId","currentNodeSiblings","currentNodeSiblingsParent","SET_SURROGATE_KEYS","console","info","url","surrogateKeys","split","arrayMerge","SET_TARGET_PROJECT","project","allowedGroups","hostname","VERSION_PREFIX","SET_VERSION","SET_VERSION_STATUS","commitRef","buildNo","contensisVersionStatus","status","routerMiddleware","history","store","next","payload","method","args","reduxStore","featureReducers","stateType","reduxDevToolsMiddleware","f","__REDUX_DEVTOOLS_EXTENSION__","sagaMiddleware","createSagaMiddleware","reducers","navigation","NavigationReducer","routing","RoutingReducer","user","UserReducer","version","VersionReducer","combiner","combineReducers","fromJS","obj","globalThis","STATE_TYPE","immutable","default","createReducer","injectedReducers","rootReducer","runSaga","run","middleware","compose","applyMiddleware","thunkMiddleware","createInjectorsEnhancer","createStore","close","dispatch","END","hasNavigationTree","getIn","selectNavigationRoot","selectNavigationChildren","selectNavigationDepends","convertSagaArray","sagas","Array","isArray","rootSaga","all","injectReducer","key","reducer","DefaultStore","Reflect","has","replaceReducer","injectSaga","saga","hasSaga","injectedSagas","process","env","NODE_ENV","oldDescriptor","task","cancel","injectRedux","useInjectRedux","setVersion","setVersionStatus"],"mappings":"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"}
package/esm/util.js CHANGED
@@ -81,15 +81,19 @@ const mapComposer = (composer, mappers) => Array.isArray(composer) ? composer.ma
81
81
  _type: composerItem.type,
82
82
  _index: index
83
83
  }; // Add fields and $root item into the composer item source object
84
- // for use inside each item mapping
84
+ // for use inside each item mapping, for arrays we inject the added fields
85
+ // into the first array item. This is useful if we require any of
86
+ // composerItem.type, composerItem index/position and composer $root
87
+ // in scope to influence any composer item's mapping logic
85
88
 
86
- const sourceObject = itemValue && Array.isArray(itemValue) ? itemValue.map(iv => typeof iv === 'object' ? { ...addedFields,
89
+ const sourceObject = itemValue && Array.isArray(itemValue) ? itemValue.map((iv, idx) => idx !== 0 ? iv : typeof iv === 'object' ? { ...addedFields,
87
90
  ...iv,
88
91
  $root: composer
89
92
  } : iv) : typeof itemValue === 'object' ? { ...addedFields,
90
93
  ...itemValue,
91
94
  $root: composer
92
- } : itemValue || {};
95
+ } : itemValue || {}; // Apply the composer item mapping
96
+
93
97
  const mappedFields = mapJson(sourceObject, mapper); // Add the extra fields in with the return object
94
98
 
95
99
  return mappedFields && typeof mappedFields === 'object' ? { ...mappedFields,
package/esm/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../src/util/json-mapper.ts","../src/server/features/caching/setCachingHeaders.ts","../src/util/stringifyStrings.js","../src/util/urls.ts","../src/app/pages/VersionInfo/transformations/state-to-versioninfoprops.mapper.ts","../src/app/pages/VersionInfo/components/VersionInfo.styled.tsx","../src/app/pages/VersionInfo/components/VersionInfo.tsx"],"sourcesContent":["import { Entry } from 'contensis-delivery-api/lib/models';\nimport mapJson, { jpath } from 'jsonpath-mapper';\nimport MappingTemplate, {\n PureJsFunction,\n} from 'jsonpath-mapper/dist/models/Template';\nimport { AppState } from '~/redux/appstate';\nimport { EntryMapper, RouteNode } from '~/routing/routes';\n\nexport { default as mapJson, jpath } from 'jsonpath-mapper';\n\ntype Mappers<S> = { [contentTypeId: string]: MappingTemplate<S> };\n\n/**\n *\n * @param {object} json The source object we wish to transform\n * @param {object} template The mapping template we wish to apply to the source\n * object to generate the intended target object\n */\nexport const useMapper = <T, S>(json: S, template: MappingTemplate<S>) => {\n return template ? (mapJson((json || {}) as S, template) as T) : json;\n};\n\nconst chooseMapperByFieldValue = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const fieldValue = jpath(field, entry || {}) as string;\n return (mappers[fieldValue] || mappers.default || {}) as T[keyof T];\n};\n\n/**\n * useEntriesMapper hook to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const useEntriesMapper = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return useMapper(entry, mapper);\n};\n\n/**\n * Deprecated: due to misleading name, use the hook useEntriesMapper instead\n */\nexport const useEntryMapper = useEntriesMapper;\n\n/**\n * mapEntries mapping function to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const mapEntries = <\n S,\n Mappers extends { [contentTypeId: string]: MappingTemplate<S> }\n>(\n entries: S[],\n mappers: Mappers,\n field = 'sys.contentTypeId'\n) =>\n entries.map(entry => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return mapper ? mapJson((entry || {}) as S, mapper) : entry;\n });\n\n/**\n * mapComposer mapping function to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const mapComposer = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[],\n mappers: T\n) =>\n Array.isArray(composer)\n ? composer.map((composerItem, index) => {\n const itemValue = composerItem.value;\n const mapper = mappers[composerItem.type] || mappers.default;\n if (mapper) {\n // Add some fields into the composer item mapper and return object\n const addedFields = {\n _type: composerItem.type,\n _index: index,\n };\n\n // Add fields and $root item into the composer item source object\n // for use inside each item mapping\n const sourceObject =\n itemValue && Array.isArray(itemValue)\n ? itemValue.map(iv =>\n typeof iv === 'object'\n ? { ...addedFields, ...iv, $root: composer }\n : iv\n )\n : typeof itemValue === 'object'\n ? { ...addedFields, ...itemValue, $root: composer }\n : itemValue || {};\n\n const mappedFields = mapJson(sourceObject, mapper) as any;\n\n // Add the extra fields in with the return object\n return mappedFields && typeof mappedFields === 'object'\n ? { ...mappedFields, ...addedFields }\n : mappedFields;\n } else return;\n })\n : composer || [];\n\n/**\n * useComposerMapper hook to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const useComposerMapper = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[] = [],\n mappers: T\n) => mapComposer(composer, mappers);\n\n/**\n * entryMapper will return a function to satisfy an entryMapper when defining app route\n * this is essentially a shorthand function to prevent boilerplate repetition inside your routes file\n * you do not need to use this function should you wish to map your entry via raw JS functions\n * @param mapping the jsonpath-mapper mapping template to apply when the route is resolved\n * @returns {mappedEntry}\n */\nexport const entryMapper =\n (\n mapping:\n | MappingTemplate<RouteNode & Entry & { state?: AppState }>\n | PureJsFunction<RouteNode & Entry & { state?: AppState }>\n ): EntryMapper =>\n (node, state) =>\n mapJson({ ...node, ...(node.entry || ({} as Entry)), state }, mapping);\n\nexport default mapJson;\n","import { Response } from 'express';\n\nconst setCachingHeaders = (\n response: Response,\n { cacheControl = 'private', surrogateControl = '3600' },\n method = 'header'\n) => {\n if (cacheControl) response[method]('Cache-Control', cacheControl);\n if (surrogateControl)\n response[method](\n 'Surrogate-Control',\n `max-age=${surrogateControl.toString()}`\n );\n};\n\nexport default setCachingHeaders;\n","const stringifyStrings = obj => {\n const returnObj = Array.isArray(obj) ? [] : {};\n Object.entries(obj).forEach(([key, value]) => {\n switch (typeof value) {\n case 'string':\n returnObj[key] = JSON.stringify(value);\n break;\n case 'object':\n returnObj[key] = stringifyStrings(value);\n break;\n default:\n returnObj[key] = value;\n break;\n }\n });\n return returnObj;\n};\n\nmodule.exports = stringifyStrings;\n","const url = (alias: string, project: string) => {\n const projectAndAlias =\n project && project.toLowerCase() !== 'website'\n ? `${project.toLowerCase()}-${alias}`\n : alias;\n return {\n api: `https://api-${alias}.cloud.contensis.com`,\n cms: `https://cms-${alias}.cloud.contensis.com`,\n liveWeb: `https://live-${projectAndAlias}.cloud.contensis.com`,\n previewWeb: `https://preview-${projectAndAlias}.cloud.contensis.com`,\n iisWeb: `https://iis-live-${projectAndAlias}.cloud.contensis.com`,\n iisPreviewWeb: `https://iis-preview-${projectAndAlias}.cloud.contensis.com`,\n };\n};\n\nexport default url;\n","import { default as mapJson } from '~/util/json-mapper';\nimport { selectCurrentProject } from '~/routing/redux/selectors';\nimport {\n selectBuildNumber,\n selectCommitRef,\n selectVersionStatus,\n} from '~/redux/selectors/version';\nimport { IVersionInfoProps } from '../components/VersionInfo';\n\nconst context = (\n typeof window != 'undefined' ? window : global\n) as typeof globalThis & {\n DISABLE_SSR_REDUX: any;\n PACKAGE_JSON: any;\n PROJECTS: any;\n PROXY_DELIVERY_API: any;\n PUBLIC_URI: any;\n REVERSE_PROXY_PATHS: string[];\n SERVERS: any;\n};\n\nconst isDev = process.env.NODE_ENV === 'development';\n\nconst pj = () =>\n isDev\n ? PACKAGE_JSON /* global PACKAGE_JSON */\n : context.PACKAGE_JSON || { name: 'packagejson not found', repository: '' };\n\nconst versionInfoProps = {\n packageDetail: () => {\n const pkg = pj();\n return { name: pkg.name, version: pkg.version, repository: pkg.repository };\n },\n uris: {\n gitRepo: () => pj().repository,\n commit: state => {\n const commitRef = selectCommitRef(state);\n return `${pj().repository}/commit/${commitRef ? commitRef : ''}`;\n },\n pipeline: state => {\n const buildNumber = selectBuildNumber(state);\n return `${pj().repository}/${\n pj().repository.includes('github.com') ? 'actions/runs' : 'pipelines'\n }/${buildNumber ? buildNumber : ''}`;\n },\n },\n zenPackageVersions: () => [\n ...(Object.entries(pj().devDependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ...(Object.entries(pj().dependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ],\n deliveryApi: () =>\n JSON.parse(\n JSON.stringify(DELIVERY_API_CONFIG /* global DELIVERY_API_CONFIG */)\n ),\n devEnv: () =>\n typeof DEV_ENV !== 'undefined' /* global DEV_ENV */ ? DEV_ENV : null,\n disableSsrRedux: () =>\n isDev\n ? DISABLE_SSR_REDUX /* global DISABLE_SSR_REDUX*/\n : context.DISABLE_SSR_REDUX || false,\n nodeEnv: () => process.env.NODE_ENV || 'production',\n packagejson: () => pj() || {},\n projects: () => (isDev ? PROJECTS /* global PROJECTS */ : context.PROJECTS),\n proxyDeliveryApi: () =>\n isDev\n ? PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */\n : context.PROXY_DELIVERY_API || false,\n publicUri: () =>\n isDev ? PUBLIC_URI /* global PUBLIC_URI */ : context.PUBLIC_URI || null,\n project: state => selectCurrentProject(state),\n reverseProxyPaths: () =>\n isDev\n ? REVERSE_PROXY_PATHS /* global REVERSE_PROXY_PATHS */\n : context.REVERSE_PROXY_PATHS || {},\n servers: () => (isDev ? SERVERS /* global SERVERS */ : context.SERVERS),\n version: {\n buildNumber: state => selectBuildNumber(state),\n commitRef: state => selectCommitRef(state),\n contensisVersionStatus: state => selectVersionStatus(state),\n },\n};\n\nconst mapStateToVersionInfo = state => {\n const mappedProps = mapJson(state, versionInfoProps);\n return mappedProps as IVersionInfoProps;\n};\n\nexport default mapStateToVersionInfo;\n","import styled from 'styled-components';\n\nexport const VersionInfoStyledTable = styled.table`\n font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;\n font-size: 1.6rem;\n line-height: 1.5rem;\n border-bottom: 4px solid #8892bf;\n border-collapse: separate;\n margin: 0 auto;\n width: 80%;\n th {\n text-align: left;\n background-color: #c4c9df;\n border-bottom: #8892bf 2px solid;\n border-bottom-color: #8892bf;\n border-top: 20px solid #fff;\n }\n td {\n border-bottom: 1px solid #eee;\n }\n td,\n th {\n padding: 0.5rem 0.75rem;\n vertical-align: top;\n }\n .left {\n width: 25%;\n }\n tr th {\n border-right: hidden;\n border-spacing: 0 15px;\n }\n .green {\n background-color: #9c9;\n border-bottom: 1px solid #696;\n }\n .red {\n background-color: #c99;\n border-bottom: 1px solid #966;\n }\n .small {\n font-size: 100%;\n line-height: 2.4rem;\n }\n`;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport mapStateToVersionInfo from '../transformations/state-to-versioninfoprops.mapper';\n\nimport { VersionInfoStyledTable } from './VersionInfo.styled';\n\nexport interface IVersionInfoProps {\n deliveryApi: {\n rootUrl: string;\n accessToken: string;\n projectId: string;\n livePublishingRootUrl: string;\n };\n devEnv: any;\n disableSsrRedux: boolean;\n nodeEnv: string;\n packageDetail: any;\n project: string;\n projects;\n proxyDeliveryApi;\n publicUri: string;\n reverseProxyPaths: string[];\n servers: {\n alias: string;\n api: string;\n cms: string;\n web: string;\n iis: string;\n previewIis: string;\n previewWeb: string;\n };\n uris: {\n gitRepo: string;\n commit: string;\n pipeline: string;\n };\n version: {\n buildNumber: string;\n commitRef: string;\n contensisVersionStatus: string;\n };\n zenPackageVersions: string[];\n}\n\nconst VersionInfo = ({\n deliveryApi,\n devEnv,\n disableSsrRedux,\n nodeEnv,\n packageDetail,\n project,\n projects,\n proxyDeliveryApi,\n publicUri,\n reverseProxyPaths,\n servers,\n uris,\n version,\n zenPackageVersions,\n}: IVersionInfoProps) => {\n return (\n <VersionInfoStyledTable>\n <thead>\n <tr>\n <td colSpan={2}>\n <h1>\n <a href=\"/\">Version Information</a>\n </h1>\n </td>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th colSpan={2}>Package detail</th>\n </tr>\n <tr>\n <td className=\"left\">Name</td>\n <td>{packageDetail.name}</td>\n </tr>\n <tr>\n <td className=\"left\">Version</td>\n <td>{packageDetail.version}</td>\n </tr>\n <tr>\n <th colSpan={2}>Version info (state)</th>\n </tr>\n <tr>\n <td>Git repo url: </td>\n <td>\n <a\n href={packageDetail.repository}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {packageDetail.repository}\n </a>\n </td>\n </tr>\n <tr>\n <td>Pipeline: </td>\n <td>\n <a href={uris.pipeline} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.buildNumber}\n </a>\n </td>\n </tr>\n <tr>\n <td>Commit: </td>\n <td>\n <a href={uris.commit} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.commitRef}\n </a>\n </td>\n </tr>\n {/* <tr>\n <td>Last release ref: </td>\n <td></td>\n </tr>\n <tr>\n <td>Number of commits since last release: </td>\n <td></td>\n </tr> */}\n <tr>\n <td>Project</td>\n <td className={project === 'unknown' ? 'red' : ''}>{project}</td>\n </tr>\n <tr>\n <td>Contensis version status: </td>\n <td\n className={\n version.contensisVersionStatus === 'published' ? 'green' : 'red'\n }\n >\n {version.contensisVersionStatus}\n </td>\n </tr>\n <tr>\n <th colSpan={2}>Build configuration</th>\n </tr>\n <tr>\n <td>Environment</td>\n <td>{servers.alias}</td>\n </tr>\n <tr>\n <td>Public uri</td>\n <td>{publicUri}</td>\n </tr>\n <tr>\n <td>Zengenti packages</td>\n <td>\n {zenPackageVersions.map(([pkg, ver], idx) => (\n <div key={idx}>\n {pkg}: {ver}\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Servers</td>\n <td className=\"small\">\n <div>web: {servers.web}</div>\n <div>preview: {servers.previewWeb}</div>\n <div>api: {servers.api}</div>\n <div>cms: {servers.cms}</div>\n <div>iis: {servers.iis}</div>\n <div>iis preview: {servers.previewIis}</div>\n </td>\n </tr>\n <tr>\n <td>Reverse proxy paths</td>\n <td>\n {Object.entries(reverseProxyPaths).map(([, path], key) => (\n <span key={key}>[ {path} ] </span>\n ))}\n </td>\n </tr>\n <tr>\n <td>Projects</td>\n <td>\n {Object.entries(\n projects as {\n id: string;\n publicUri: string;\n }[]\n ).map(([, project], key) => (\n <div key={key}>\n [ {project.id}: {project.publicUri} ]\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Delivery API</td>\n <td className=\"small\">\n <ul style={{ margin: 0, padding: 0 }}>\n {Object.entries(deliveryApi).map(\n ([key, value]: [string, any], idx) => {\n if (typeof value === 'object') return null;\n return (\n <li key={idx} style={{ listStyleType: 'none' }}>\n {key}: <span>{value}</span>\n </li>\n );\n }\n )}\n </ul>\n </td>\n </tr>\n <tr>\n <td>Proxy Delivery API requests</td>\n <td className={proxyDeliveryApi ? 'green' : 'red'}>\n {proxyDeliveryApi.toString()}\n </td>\n </tr>\n <tr>\n <td>Disable SSR inline-redux</td>\n <td>{disableSsrRedux.toString()}</td>\n </tr>\n <tr>\n <td>NODE_ENV</td>\n <td className={nodeEnv === 'production' ? 'green' : 'red'}>\n {nodeEnv.toString()}\n </td>\n </tr>\n {devEnv && (\n <tr>\n <td>process.env</td>\n <td>\n {Object.entries(devEnv).map(([k, v], key) => (\n <div key={key}>\n [ {k}: {v} ]\n </div>\n ))}\n </td>\n </tr>\n )}\n </tbody>\n </VersionInfoStyledTable>\n );\n};\n\nexport default connect(mapStateToVersionInfo)(VersionInfo);\n"],"names":["useMapper","json","template","mapJson","chooseMapperByFieldValue","entry","mappers","field","fieldValue","jpath","default","useEntriesMapper","mapper","useEntryMapper","mapEntries","entries","map","mapComposer","composer","Array","isArray","composerItem","index","itemValue","value","type","addedFields","_type","_index","sourceObject","iv","$root","mappedFields","useComposerMapper","entryMapper","mapping","node","state","setCachingHeaders","response","cacheControl","surrogateControl","method","toString","stringifyStrings","obj","returnObj","Object","forEach","key","JSON","stringify","module","url","alias","project","projectAndAlias","toLowerCase","api","cms","liveWeb","previewWeb","iisWeb","iisPreviewWeb","context","window","global","isDev","process","env","NODE_ENV","pj","PACKAGE_JSON","name","repository","versionInfoProps","packageDetail","pkg","version","uris","gitRepo","commit","commitRef","selectCommitRef","pipeline","buildNumber","selectBuildNumber","includes","zenPackageVersions","devDependencies","filter","dependencies","deliveryApi","parse","DELIVERY_API_CONFIG","devEnv","DEV_ENV","disableSsrRedux","DISABLE_SSR_REDUX","nodeEnv","packagejson","projects","PROJECTS","proxyDeliveryApi","PROXY_DELIVERY_API","publicUri","PUBLIC_URI","selectCurrentProject","reverseProxyPaths","REVERSE_PROXY_PATHS","servers","SERVERS","contensisVersionStatus","selectVersionStatus","mapStateToVersionInfo","mappedProps","VersionInfoStyledTable","styled","table","VersionInfo","ver","idx","web","iis","previewIis","path","id","margin","padding","listStyleType","k","v","connect"],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sources":["../src/util/json-mapper.ts","../src/server/features/caching/setCachingHeaders.ts","../src/util/stringifyStrings.js","../src/util/urls.ts","../src/app/pages/VersionInfo/transformations/state-to-versioninfoprops.mapper.ts","../src/app/pages/VersionInfo/components/VersionInfo.styled.tsx","../src/app/pages/VersionInfo/components/VersionInfo.tsx"],"sourcesContent":["import { Entry } from 'contensis-delivery-api/lib/models';\nimport mapJson, { jpath } from 'jsonpath-mapper';\nimport MappingTemplate, {\n PureJsFunction,\n} from 'jsonpath-mapper/dist/models/Template';\nimport { AppState } from '~/redux/appstate';\nimport { EntryMapper, RouteNode } from '~/routing/routes';\n\nexport { default as mapJson, jpath } from 'jsonpath-mapper';\n\ntype Mappers<S> = { [contentTypeId: string]: MappingTemplate<S> };\n\n/**\n *\n * @param {object} json The source object we wish to transform\n * @param {object} template The mapping template we wish to apply to the source\n * object to generate the intended target object\n */\nexport const useMapper = <T, S>(json: S, template: MappingTemplate<S>) => {\n return template ? (mapJson((json || {}) as S, template) as T) : json;\n};\n\nconst chooseMapperByFieldValue = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const fieldValue = jpath(field, entry || {}) as string;\n return (mappers[fieldValue] || mappers.default || {}) as T[keyof T];\n};\n\n/**\n * useEntriesMapper hook to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const useEntriesMapper = <S, T extends Mappers<S>>(\n entry: S,\n mappers: T,\n field = 'sys.contentTypeId'\n) => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return useMapper(entry, mapper);\n};\n\n/**\n * Deprecated: due to misleading name, use the hook useEntriesMapper instead\n */\nexport const useEntryMapper = useEntriesMapper;\n\n/**\n * mapEntries mapping function to take a list of entries from Delivery API along\n * with mappers for each contentTypeId and return an array of mapped objects\n * @param {any} entry The source entry we wish to transform\n * @param {object} mappers Object with keys containing mapper templates,\n * the key name matching sys.contentTypeId\n * @param {string} field Only include if we need to match content based on\n * a field other than sys.contentTypeId in the source data\n * @returns {object} Object transformed using a matched content type or\n * a default mapper template, returns an empty object if no mapper template\n * couild be applied.\n */\nexport const mapEntries = <\n S,\n Mappers extends { [contentTypeId: string]: MappingTemplate<S> }\n>(\n entries: S[],\n mappers: Mappers,\n field = 'sys.contentTypeId'\n) =>\n entries.map(entry => {\n const mapper = chooseMapperByFieldValue(entry, mappers, field);\n return mapper ? mapJson((entry || {}) as S, mapper) : entry;\n });\n\n/**\n * mapComposer mapping function to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const mapComposer = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[],\n mappers: T\n) =>\n Array.isArray(composer)\n ? composer.map((composerItem, index) => {\n const itemValue = composerItem.value;\n const mapper = mappers[composerItem.type] || mappers.default;\n if (mapper) {\n // Add some fields into the composer item mapper and return object\n const addedFields = {\n _type: composerItem.type,\n _index: index,\n };\n\n // Add fields and $root item into the composer item source object\n // for use inside each item mapping, for arrays we inject the added fields\n // into the first array item. This is useful if we require any of\n // composerItem.type, composerItem index/position and composer $root\n // in scope to influence any composer item's mapping logic\n const sourceObject =\n itemValue && Array.isArray(itemValue)\n ? itemValue.map((iv, idx) =>\n idx !== 0\n ? iv\n : typeof iv === 'object'\n ? { ...addedFields, ...iv, $root: composer }\n : iv\n )\n : typeof itemValue === 'object'\n ? { ...addedFields, ...itemValue, $root: composer }\n : itemValue || {};\n\n // Apply the composer item mapping\n const mappedFields = mapJson(sourceObject, mapper) as any;\n\n // Add the extra fields in with the return object\n return mappedFields && typeof mappedFields === 'object'\n ? { ...mappedFields, ...addedFields }\n : mappedFields;\n } else return;\n })\n : composer || [];\n\n/**\n * useComposerMapper hook to take a composer field from Delivery API along\n * with mappers for each Composer Item \"type\" and return an array of mapped components\n * @param {array} composer Composer field array of Composer Items\n * @param {object} mappers A keyed object with each key matching the Composer Item \"type\"\n * @returns {array} Array of mapped objects transformed using a matched Composer Item \"type\" mapping\n * or null. Injects a \"_type\" property into each transformed object in the array to indicate\n * where the mapping originated and for what component the mapped object is representing\n */\nexport const useComposerMapper = <\n S extends { type: string; value: any },\n T extends Mappers<S>\n>(\n composer: S[] = [],\n mappers: T\n) => mapComposer(composer, mappers);\n\n/**\n * entryMapper will return a function to satisfy an entryMapper when defining app route\n * this is essentially a shorthand function to prevent boilerplate repetition inside your routes file\n * you do not need to use this function should you wish to map your entry via raw JS functions\n * @param mapping the jsonpath-mapper mapping template to apply when the route is resolved\n * @returns {mappedEntry}\n */\nexport const entryMapper =\n (\n mapping:\n | MappingTemplate<RouteNode & Entry & { state?: AppState }>\n | PureJsFunction<RouteNode & Entry & { state?: AppState }>\n ): EntryMapper =>\n (node, state) =>\n mapJson({ ...node, ...(node.entry || ({} as Entry)), state }, mapping);\n\nexport default mapJson;\n","import { Response } from 'express';\n\nconst setCachingHeaders = (\n response: Response,\n { cacheControl = 'private', surrogateControl = '3600' },\n method = 'header'\n) => {\n if (cacheControl) response[method]('Cache-Control', cacheControl);\n if (surrogateControl)\n response[method](\n 'Surrogate-Control',\n `max-age=${surrogateControl.toString()}`\n );\n};\n\nexport default setCachingHeaders;\n","const stringifyStrings = obj => {\n const returnObj = Array.isArray(obj) ? [] : {};\n Object.entries(obj).forEach(([key, value]) => {\n switch (typeof value) {\n case 'string':\n returnObj[key] = JSON.stringify(value);\n break;\n case 'object':\n returnObj[key] = stringifyStrings(value);\n break;\n default:\n returnObj[key] = value;\n break;\n }\n });\n return returnObj;\n};\n\nmodule.exports = stringifyStrings;\n","const url = (alias: string, project: string) => {\n const projectAndAlias =\n project && project.toLowerCase() !== 'website'\n ? `${project.toLowerCase()}-${alias}`\n : alias;\n return {\n api: `https://api-${alias}.cloud.contensis.com`,\n cms: `https://cms-${alias}.cloud.contensis.com`,\n liveWeb: `https://live-${projectAndAlias}.cloud.contensis.com`,\n previewWeb: `https://preview-${projectAndAlias}.cloud.contensis.com`,\n iisWeb: `https://iis-live-${projectAndAlias}.cloud.contensis.com`,\n iisPreviewWeb: `https://iis-preview-${projectAndAlias}.cloud.contensis.com`,\n };\n};\n\nexport default url;\n","import { default as mapJson } from '~/util/json-mapper';\nimport { selectCurrentProject } from '~/routing/redux/selectors';\nimport {\n selectBuildNumber,\n selectCommitRef,\n selectVersionStatus,\n} from '~/redux/selectors/version';\nimport { IVersionInfoProps } from '../components/VersionInfo';\n\nconst context = (\n typeof window != 'undefined' ? window : global\n) as typeof globalThis & {\n DISABLE_SSR_REDUX: any;\n PACKAGE_JSON: any;\n PROJECTS: any;\n PROXY_DELIVERY_API: any;\n PUBLIC_URI: any;\n REVERSE_PROXY_PATHS: string[];\n SERVERS: any;\n};\n\nconst isDev = process.env.NODE_ENV === 'development';\n\nconst pj = () =>\n isDev\n ? PACKAGE_JSON /* global PACKAGE_JSON */\n : context.PACKAGE_JSON || { name: 'packagejson not found', repository: '' };\n\nconst versionInfoProps = {\n packageDetail: () => {\n const pkg = pj();\n return { name: pkg.name, version: pkg.version, repository: pkg.repository };\n },\n uris: {\n gitRepo: () => pj().repository,\n commit: state => {\n const commitRef = selectCommitRef(state);\n return `${pj().repository}/commit/${commitRef ? commitRef : ''}`;\n },\n pipeline: state => {\n const buildNumber = selectBuildNumber(state);\n return `${pj().repository}/${\n pj().repository.includes('github.com') ? 'actions/runs' : 'pipelines'\n }/${buildNumber ? buildNumber : ''}`;\n },\n },\n zenPackageVersions: () => [\n ...(Object.entries(pj().devDependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ...(Object.entries(pj().dependencies || {}).filter(\n ([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')\n ) || []),\n ],\n deliveryApi: () =>\n JSON.parse(\n JSON.stringify(DELIVERY_API_CONFIG /* global DELIVERY_API_CONFIG */)\n ),\n devEnv: () =>\n typeof DEV_ENV !== 'undefined' /* global DEV_ENV */ ? DEV_ENV : null,\n disableSsrRedux: () =>\n isDev\n ? DISABLE_SSR_REDUX /* global DISABLE_SSR_REDUX*/\n : context.DISABLE_SSR_REDUX || false,\n nodeEnv: () => process.env.NODE_ENV || 'production',\n packagejson: () => pj() || {},\n projects: () => (isDev ? PROJECTS /* global PROJECTS */ : context.PROJECTS),\n proxyDeliveryApi: () =>\n isDev\n ? PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */\n : context.PROXY_DELIVERY_API || false,\n publicUri: () =>\n isDev ? PUBLIC_URI /* global PUBLIC_URI */ : context.PUBLIC_URI || null,\n project: state => selectCurrentProject(state),\n reverseProxyPaths: () =>\n isDev\n ? REVERSE_PROXY_PATHS /* global REVERSE_PROXY_PATHS */\n : context.REVERSE_PROXY_PATHS || {},\n servers: () => (isDev ? SERVERS /* global SERVERS */ : context.SERVERS),\n version: {\n buildNumber: state => selectBuildNumber(state),\n commitRef: state => selectCommitRef(state),\n contensisVersionStatus: state => selectVersionStatus(state),\n },\n};\n\nconst mapStateToVersionInfo = state => {\n const mappedProps = mapJson(state, versionInfoProps);\n return mappedProps as IVersionInfoProps;\n};\n\nexport default mapStateToVersionInfo;\n","import styled from 'styled-components';\n\nexport const VersionInfoStyledTable = styled.table`\n font-family: 'Source Sans Pro', Helvetica, Arial, sans-serif;\n font-size: 1.6rem;\n line-height: 1.5rem;\n border-bottom: 4px solid #8892bf;\n border-collapse: separate;\n margin: 0 auto;\n width: 80%;\n th {\n text-align: left;\n background-color: #c4c9df;\n border-bottom: #8892bf 2px solid;\n border-bottom-color: #8892bf;\n border-top: 20px solid #fff;\n }\n td {\n border-bottom: 1px solid #eee;\n }\n td,\n th {\n padding: 0.5rem 0.75rem;\n vertical-align: top;\n }\n .left {\n width: 25%;\n }\n tr th {\n border-right: hidden;\n border-spacing: 0 15px;\n }\n .green {\n background-color: #9c9;\n border-bottom: 1px solid #696;\n }\n .red {\n background-color: #c99;\n border-bottom: 1px solid #966;\n }\n .small {\n font-size: 100%;\n line-height: 2.4rem;\n }\n`;\n","import React from 'react';\nimport { connect } from 'react-redux';\n\nimport mapStateToVersionInfo from '../transformations/state-to-versioninfoprops.mapper';\n\nimport { VersionInfoStyledTable } from './VersionInfo.styled';\n\nexport interface IVersionInfoProps {\n deliveryApi: {\n rootUrl: string;\n accessToken: string;\n projectId: string;\n livePublishingRootUrl: string;\n };\n devEnv: any;\n disableSsrRedux: boolean;\n nodeEnv: string;\n packageDetail: any;\n project: string;\n projects;\n proxyDeliveryApi;\n publicUri: string;\n reverseProxyPaths: string[];\n servers: {\n alias: string;\n api: string;\n cms: string;\n web: string;\n iis: string;\n previewIis: string;\n previewWeb: string;\n };\n uris: {\n gitRepo: string;\n commit: string;\n pipeline: string;\n };\n version: {\n buildNumber: string;\n commitRef: string;\n contensisVersionStatus: string;\n };\n zenPackageVersions: string[];\n}\n\nconst VersionInfo = ({\n deliveryApi,\n devEnv,\n disableSsrRedux,\n nodeEnv,\n packageDetail,\n project,\n projects,\n proxyDeliveryApi,\n publicUri,\n reverseProxyPaths,\n servers,\n uris,\n version,\n zenPackageVersions,\n}: IVersionInfoProps) => {\n return (\n <VersionInfoStyledTable>\n <thead>\n <tr>\n <td colSpan={2}>\n <h1>\n <a href=\"/\">Version Information</a>\n </h1>\n </td>\n </tr>\n </thead>\n <tbody>\n <tr>\n <th colSpan={2}>Package detail</th>\n </tr>\n <tr>\n <td className=\"left\">Name</td>\n <td>{packageDetail.name}</td>\n </tr>\n <tr>\n <td className=\"left\">Version</td>\n <td>{packageDetail.version}</td>\n </tr>\n <tr>\n <th colSpan={2}>Version info (state)</th>\n </tr>\n <tr>\n <td>Git repo url: </td>\n <td>\n <a\n href={packageDetail.repository}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {packageDetail.repository}\n </a>\n </td>\n </tr>\n <tr>\n <td>Pipeline: </td>\n <td>\n <a href={uris.pipeline} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.buildNumber}\n </a>\n </td>\n </tr>\n <tr>\n <td>Commit: </td>\n <td>\n <a href={uris.commit} target=\"_blank\" rel=\"noopener noreferrer\">\n {version.commitRef}\n </a>\n </td>\n </tr>\n {/* <tr>\n <td>Last release ref: </td>\n <td></td>\n </tr>\n <tr>\n <td>Number of commits since last release: </td>\n <td></td>\n </tr> */}\n <tr>\n <td>Project</td>\n <td className={project === 'unknown' ? 'red' : ''}>{project}</td>\n </tr>\n <tr>\n <td>Contensis version status: </td>\n <td\n className={\n version.contensisVersionStatus === 'published' ? 'green' : 'red'\n }\n >\n {version.contensisVersionStatus}\n </td>\n </tr>\n <tr>\n <th colSpan={2}>Build configuration</th>\n </tr>\n <tr>\n <td>Environment</td>\n <td>{servers.alias}</td>\n </tr>\n <tr>\n <td>Public uri</td>\n <td>{publicUri}</td>\n </tr>\n <tr>\n <td>Zengenti packages</td>\n <td>\n {zenPackageVersions.map(([pkg, ver], idx) => (\n <div key={idx}>\n {pkg}: {ver}\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Servers</td>\n <td className=\"small\">\n <div>web: {servers.web}</div>\n <div>preview: {servers.previewWeb}</div>\n <div>api: {servers.api}</div>\n <div>cms: {servers.cms}</div>\n <div>iis: {servers.iis}</div>\n <div>iis preview: {servers.previewIis}</div>\n </td>\n </tr>\n <tr>\n <td>Reverse proxy paths</td>\n <td>\n {Object.entries(reverseProxyPaths).map(([, path], key) => (\n <span key={key}>[ {path} ] </span>\n ))}\n </td>\n </tr>\n <tr>\n <td>Projects</td>\n <td>\n {Object.entries(\n projects as {\n id: string;\n publicUri: string;\n }[]\n ).map(([, project], key) => (\n <div key={key}>\n [ {project.id}: {project.publicUri} ]\n </div>\n ))}\n </td>\n </tr>\n <tr>\n <td>Delivery API</td>\n <td className=\"small\">\n <ul style={{ margin: 0, padding: 0 }}>\n {Object.entries(deliveryApi).map(\n ([key, value]: [string, any], idx) => {\n if (typeof value === 'object') return null;\n return (\n <li key={idx} style={{ listStyleType: 'none' }}>\n {key}: <span>{value}</span>\n </li>\n );\n }\n )}\n </ul>\n </td>\n </tr>\n <tr>\n <td>Proxy Delivery API requests</td>\n <td className={proxyDeliveryApi ? 'green' : 'red'}>\n {proxyDeliveryApi.toString()}\n </td>\n </tr>\n <tr>\n <td>Disable SSR inline-redux</td>\n <td>{disableSsrRedux.toString()}</td>\n </tr>\n <tr>\n <td>NODE_ENV</td>\n <td className={nodeEnv === 'production' ? 'green' : 'red'}>\n {nodeEnv.toString()}\n </td>\n </tr>\n {devEnv && (\n <tr>\n <td>process.env</td>\n <td>\n {Object.entries(devEnv).map(([k, v], key) => (\n <div key={key}>\n [ {k}: {v} ]\n </div>\n ))}\n </td>\n </tr>\n )}\n </tbody>\n </VersionInfoStyledTable>\n );\n};\n\nexport default connect(mapStateToVersionInfo)(VersionInfo);\n"],"names":["useMapper","json","template","mapJson","chooseMapperByFieldValue","entry","mappers","field","fieldValue","jpath","default","useEntriesMapper","mapper","useEntryMapper","mapEntries","entries","map","mapComposer","composer","Array","isArray","composerItem","index","itemValue","value","type","addedFields","_type","_index","sourceObject","iv","idx","$root","mappedFields","useComposerMapper","entryMapper","mapping","node","state","setCachingHeaders","response","cacheControl","surrogateControl","method","toString","stringifyStrings","obj","returnObj","Object","forEach","key","JSON","stringify","module","url","alias","project","projectAndAlias","toLowerCase","api","cms","liveWeb","previewWeb","iisWeb","iisPreviewWeb","context","window","global","isDev","process","env","NODE_ENV","pj","PACKAGE_JSON","name","repository","versionInfoProps","packageDetail","pkg","version","uris","gitRepo","commit","commitRef","selectCommitRef","pipeline","buildNumber","selectBuildNumber","includes","zenPackageVersions","devDependencies","filter","dependencies","deliveryApi","parse","DELIVERY_API_CONFIG","devEnv","DEV_ENV","disableSsrRedux","DISABLE_SSR_REDUX","nodeEnv","packagejson","projects","PROJECTS","proxyDeliveryApi","PROXY_DELIVERY_API","publicUri","PUBLIC_URI","selectCurrentProject","reverseProxyPaths","REVERSE_PROXY_PATHS","servers","SERVERS","contensisVersionStatus","selectVersionStatus","mapStateToVersionInfo","mappedProps","VersionInfoStyledTable","styled","table","VersionInfo","ver","web","iis","previewIis","path","id","margin","padding","listStyleType","k","v","connect"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"version-e6a545e1.js","sources":["../src/redux/types/navigation.js","../src/redux/reducers/navigation.ts","../src/util/merge.ts","../src/routing/redux/reducers.ts","../src/redux/types/version.js","../src/redux/reducers/version.ts","../src/redux/store/routerMiddleware.js","../src/redux/store/store.ts","../src/redux/selectors/navigation.js","../src/redux/store/injectors.js","../src/redux/actions/version.js"],"sourcesContent":["const ACTION_PREFIX = '@NAVIGATION/';\nexport const GET_NODE_TREE = `${ACTION_PREFIX}_GET_NODE_TREE`;\nexport const SET_NODE_TREE = `${ACTION_PREFIX}_SET_NODE_TREE`;\nexport const GET_NODE_TREE_ERROR = `${ACTION_PREFIX}_GET_NODE_TREE_ERROR`;\n","import { Draft, produce } from 'immer';\nimport { SET_NODE_TREE, GET_NODE_TREE_ERROR } from '~/redux/types/navigation';\n\nconst initialState = {\n root: null,\n isError: false,\n isReady: false,\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_NODE_TREE: {\n state.root = action.nodes;\n state.isReady = true;\n return;\n }\n case GET_NODE_TREE_ERROR: {\n state.isError = true;\n return;\n }\n default:\n return;\n }\n}, initialState);\n","import merge from 'deepmerge';\n\nexport const combineMerge = (target, source, options) => {\n const destination = target.slice();\n\n source.forEach((item, index) => {\n if (typeof destination[index] === 'undefined') {\n destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);\n } else if (options.isMergeableObject(item)) {\n destination[index] = merge(target[index], item, options);\n } else if (target.indexOf(item) === -1) {\n destination.push(item);\n }\n });\n return destination;\n};\n","import { Draft, produce } from 'immer';\nimport merge from 'deepmerge';\n\nimport {\n SET_ENTRY,\n SET_NAVIGATION_PATH,\n SET_ANCESTORS,\n SET_TARGET_PROJECT,\n SET_ROUTE,\n SET_SIBLINGS,\n SET_SURROGATE_KEYS,\n UPDATE_LOADING_STATE,\n} from './types';\nimport { combineMerge } from '~/util/merge';\n\nconst initialState = {\n currentHostname: null,\n currentPath: '/',\n currentNode: {},\n currentNodeAncestors: [],\n currentProject: 'unknown',\n entryID: null,\n entry: null,\n error: undefined,\n isError: false,\n isLoading: false,\n location: {},\n mappedEntry: null,\n notFound: false,\n staticRoute: null,\n statusCode: 200,\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_ANCESTORS: {\n state.currentNodeAncestors = action.ancestors;\n return;\n }\n case SET_ENTRY: {\n const {\n entry,\n error,\n mappedEntry,\n node = {},\n isError = false,\n isLoading = false,\n notFound = false,\n statusCode,\n } = action;\n\n let defaultStatus = 200;\n if (notFound === true && isError === false) defaultStatus = 404;\n else if (isError === true) defaultStatus = statusCode || 500;\n\n if (!entry) {\n state.entryID = null;\n state.entry = null;\n state.error = error;\n state.mappedEntry = null;\n state.isError = isError;\n state.isLoading = isLoading;\n state.notFound = notFound;\n state.statusCode = statusCode || defaultStatus;\n } else {\n state.entryID = action.id;\n state.entry = entry;\n state.error = error;\n state.isError = isError;\n state.isLoading = isLoading;\n state.notFound = notFound;\n state.statusCode = statusCode || defaultStatus;\n\n if (mappedEntry && Object.keys(mappedEntry).length > 0) {\n state.mappedEntry = mappedEntry;\n state.entry = { sys: entry.sys };\n }\n }\n\n if (!node) {\n state.currentNode = null;\n } else {\n // On Set Node, we reset all dependants.\n state.currentNode = node;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { entry, ...nodeWithoutEntry } = node; // We have the entry stored elsewhere, so lets not keep it twice.\n state.currentNode = nodeWithoutEntry;\n }\n return;\n }\n case UPDATE_LOADING_STATE: {\n state.isLoading = action.isLoading;\n return;\n }\n case SET_NAVIGATION_PATH: {\n let staticRoute = {} as any;\n if (action.staticRoute) {\n staticRoute = { ...action.staticRoute };\n }\n if (action.path) {\n // Don't run a path update on initial load as we allready should have it in redux\n const entryUri = state?.entry?.sys?.uri;\n if (entryUri !== action.path) {\n state.currentPath = action.path;\n state.location = action.location;\n state.staticRoute = {\n ...staticRoute,\n route: { ...staticRoute.route, component: null },\n };\n\n state.isLoading = typeof window !== 'undefined';\n } else {\n state.location = action.location;\n state.staticRoute = {\n ...staticRoute,\n route: { ...staticRoute.route, component: null },\n };\n }\n }\n return;\n }\n case SET_ROUTE: {\n state.nextPath = action.path;\n return;\n }\n case SET_SIBLINGS: {\n // Can be null in some cases like the homepage.\n let currentNodeSiblingParent = null;\n if (action.siblings && action.siblings.length > 0) {\n currentNodeSiblingParent = action.siblings[0].parentId;\n }\n\n state.currentNodeSiblings = action.siblings;\n state.currentNodeSiblingsParent = currentNodeSiblingParent;\n return;\n }\n case SET_SURROGATE_KEYS: {\n console.info(`SET_SURROGATE_KEYS: '${action.url}' keys: ${action.keys}`);\n state.surrogateKeys = merge(\n state.surrogateKeys,\n (action.keys || '').split(' '),\n { arrayMerge: combineMerge }\n );\n return;\n }\n case SET_TARGET_PROJECT: {\n state.currentProject = action.project;\n state.allowedGroups = action.allowedGroups;\n state.currentHostname = action.hostname;\n return;\n }\n default:\n return state;\n }\n}, initialState);\n","const VERSION_PREFIX = '@VERSION/';\nexport const SET_VERSION = `${VERSION_PREFIX}SET_VERSION`;\nexport const SET_VERSION_STATUS = `${VERSION_PREFIX}SET_VERSION_STATUS`;\n","import { Draft, produce } from 'immer';\nimport { SET_VERSION, SET_VERSION_STATUS } from '~/redux/types/version';\n\nconst initialState = {\n commitRef: null,\n buildNo: null,\n contensisVersionStatus: 'published',\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_VERSION_STATUS: {\n state.contensisVersionStatus = action.status;\n return;\n }\n case SET_VERSION: {\n state.commitRef = action.commitRef;\n state.buildNo = action.buildNo;\n return;\n }\n default:\n return;\n }\n}, initialState);\n","/**\n * This middleware captures 'CALL_HISTORY_METHOD' actions to redirect to the\n * provided history object. This will prevent these actions from reaching your\n * reducer or any middleware that comes after this one.\n */\n/* eslint-disable no-unused-vars */\nconst routerMiddleware = history => store => next => action => {\n if (action.type !== 'CALL_HISTORY_METHOD') {\n return next(action);\n }\n\n const {\n payload: { method, args },\n } = action;\n history[method](...args);\n};\n\nexport default routerMiddleware;\n","import {\n applyMiddleware,\n combineReducers,\n compose,\n createStore,\n Action,\n Store,\n StoreEnhancer,\n} from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport createSagaMiddleware, { END } from 'redux-saga';\nimport { createInjectorsEnhancer } from 'redux-injectors';\n\n// Core reducers\nimport NavigationReducer from '../reducers/navigation';\nimport RoutingReducer from '~/routing/redux/reducers';\nimport UserReducer from '~/user/redux/reducers';\nimport VersionReducer from '../reducers/version';\nimport routerMiddleware from './routerMiddleware';\nimport { AppState } from '../appstate';\nimport { History, MemoryHistory } from 'history';\nimport { StateType } from '~/config';\n\nexport let reduxStore;\n\n/* eslint-disable no-underscore-dangle */\ndeclare let window: Window &\n typeof globalThis & {\n __REDUX_DEVTOOLS_EXTENSION__: any;\n };\n\nexport default async (\n featureReducers: any,\n initialState: AppState,\n history: History | MemoryHistory,\n stateType: StateType\n) => {\n let reduxDevToolsMiddleware = f => f;\n\n if (typeof window != 'undefined') {\n reduxDevToolsMiddleware = window.__REDUX_DEVTOOLS_EXTENSION__\n ? window.__REDUX_DEVTOOLS_EXTENSION__()\n : f => f;\n }\n\n const sagaMiddleware = createSagaMiddleware();\n\n const reducers = {\n navigation: NavigationReducer,\n routing: RoutingReducer,\n user: UserReducer,\n version: VersionReducer,\n ...featureReducers,\n };\n\n // Reassign the combiner and fromJS functions when\n // stateType is 'immutable' with dynamic imports\n let combiner = combineReducers;\n let fromJS: any = (obj: any) => obj;\n globalThis.STATE_TYPE = stateType;\n\n if (stateType === 'immutable') {\n globalThis.immutable = await import(\n /* webpackChunkName: \"immutable\" */ 'immutable'\n );\n\n fromJS = (\n await import(/* webpackChunkName: \"from-js\" */ '~/util/fromJSLeaveImmer')\n ).default;\n\n combiner = (\n await import(/* webpackChunkName: \"redux-immutable\" */ 'redux-immutable')\n ).combineReducers;\n }\n\n const createReducer = (injectedReducers = {}) => {\n const rootReducer = combiner<AppState>({\n ...injectedReducers,\n // other non-injected reducers go here\n ...reducers,\n });\n\n return rootReducer;\n };\n\n const store = (initialState: AppState) => {\n const runSaga = sagaMiddleware.run;\n\n const middleware: StoreEnhancer<\n {\n dispatch: unknown;\n },\n unknown\n > = compose(\n applyMiddleware(\n thunkMiddleware,\n sagaMiddleware,\n routerMiddleware(history)\n ),\n createInjectorsEnhancer({\n createReducer,\n runSaga,\n }),\n reduxDevToolsMiddleware\n );\n\n const store: Store<AppState, Action<any>> & {\n runSaga?: typeof runSaga;\n close?: () => void;\n } = createStore<AppState, Action<any>, unknown, unknown>(\n createReducer(),\n initialState,\n middleware\n );\n\n store.runSaga = runSaga;\n store.close = () => store.dispatch(END);\n\n return store;\n };\n\n reduxStore = store(fromJS(initialState));\n return reduxStore;\n};\n","import { getImmutableOrJS as getIn } from '~/redux/util';\n\nexport const hasNavigationTree = state =>\n getIn(state, ['navigation', 'isReady']);\n\nexport const selectNavigationRoot = state =>\n getIn(state, ['navigation', 'root']);\n\nexport const selectNavigationChildren = state =>\n getIn(state, ['navigation', 'root', 'children']);\n\nexport const selectNavigationDepends = () => [];\n","import { all } from 'redux-saga/effects';\nimport { reduxStore as DefaultStore } from './store';\n\nexport const convertSagaArray = sagas => {\n if (Array.isArray(sagas))\n return function* rootSaga() {\n yield all(sagas);\n };\n return sagas;\n};\n\nexport const injectReducer = ({ key, reducer }, store = DefaultStore) => {\n if (\n Reflect.has(store.injectedReducers, key) &&\n store.injectedReducers[key] === reducer\n )\n return;\n store.injectedReducers[key] = reducer;\n\n store.replaceReducer(store.createReducer(store.injectedReducers));\n};\n\nexport const injectSaga = ({ key, saga }, store = DefaultStore) => {\n const rootSaga = convertSagaArray(saga);\n let hasSaga = Reflect.has(store.injectedSagas, key);\n\n if (process.env.NODE_ENV !== 'production') {\n const oldDescriptor = store.injectedSagas[key]; // enable hot reloading of daemon and once-till-unmount sagas\n\n if (hasSaga && oldDescriptor.saga !== rootSaga) {\n oldDescriptor.task.cancel();\n hasSaga = false;\n }\n }\n console.info('injectSaga, key: ', key, 'hasSaga: ', hasSaga);\n\n if (!hasSaga) {\n store.injectedSagas[key] = {\n key,\n saga: rootSaga,\n task: store.runSaga(rootSaga),\n };\n }\n};\n\nexport const injectRedux = ({ key, reducer, saga }, store = DefaultStore) => {\n console.info('injectRedux, key: ', key);\n if (reducer) injectReducer({ key, reducer }, store);\n if (saga) injectSaga({ key, saga }, store);\n};\n\nexport const useInjectRedux = injectRedux;\n","import { action } from '../util';\nimport { SET_VERSION, SET_VERSION_STATUS } from '../types/version';\n\nexport const setVersion = (commitRef, buildNo) =>\n action(SET_VERSION, { commitRef, buildNo });\n\nexport const setVersionStatus = status =>\n action(SET_VERSION_STATUS, { status });\n"],"names":["ACTION_PREFIX","GET_NODE_TREE","SET_NODE_TREE","GET_NODE_TREE_ERROR","initialState","root","isError","isReady","produce","state","action","type","nodes","combineMerge","target","source","options","destination","slice","forEach","item","index","cloneUnlessOtherwiseSpecified","isMergeableObject","merge","indexOf","push","currentHostname","currentPath","currentNode","currentNodeAncestors","currentProject","entryID","entry","error","undefined","isLoading","location","mappedEntry","notFound","staticRoute","statusCode","SET_ANCESTORS","ancestors","SET_ENTRY","node","defaultStatus","id","Object","keys","length","sys","nodeWithoutEntry","UPDATE_LOADING_STATE","SET_NAVIGATION_PATH","path","entryUri","uri","route","component","window","SET_ROUTE","nextPath","SET_SIBLINGS","currentNodeSiblingParent","siblings","parentId","currentNodeSiblings","currentNodeSiblingsParent","SET_SURROGATE_KEYS","console","info","url","surrogateKeys","split","arrayMerge","SET_TARGET_PROJECT","project","allowedGroups","hostname","VERSION_PREFIX","SET_VERSION","SET_VERSION_STATUS","commitRef","buildNo","contensisVersionStatus","status","routerMiddleware","history","store","next","payload","method","args","reduxStore","featureReducers","stateType","reduxDevToolsMiddleware","f","__REDUX_DEVTOOLS_EXTENSION__","sagaMiddleware","createSagaMiddleware","reducers","navigation","NavigationReducer","routing","RoutingReducer","user","UserReducer","version","VersionReducer","combiner","combineReducers","fromJS","obj","globalThis","STATE_TYPE","immutable","default","createReducer","injectedReducers","rootReducer","runSaga","run","middleware","compose","applyMiddleware","thunkMiddleware","createInjectorsEnhancer","createStore","close","dispatch","END","hasNavigationTree","getIn","selectNavigationRoot","selectNavigationChildren","selectNavigationDepends","convertSagaArray","sagas","Array","isArray","rootSaga","all","injectReducer","key","reducer","DefaultStore","Reflect","has","replaceReducer","injectSaga","saga","hasSaga","injectedSagas","process","env","NODE_ENV","oldDescriptor","task","cancel","injectRedux","useInjectRedux","setVersion","setVersionStatus"],"mappings":"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"}
1
+ {"version":3,"file":"version-e6a545e1.js","sources":["../src/redux/types/navigation.js","../src/redux/reducers/navigation.ts","../src/util/merge.ts","../src/routing/redux/reducers.ts","../src/redux/types/version.js","../src/redux/reducers/version.ts","../src/redux/store/routerMiddleware.js","../src/redux/store/store.ts","../src/redux/selectors/navigation.js","../src/redux/store/injectors.js","../src/redux/actions/version.js"],"sourcesContent":["const ACTION_PREFIX = '@NAVIGATION/';\nexport const GET_NODE_TREE = `${ACTION_PREFIX}_GET_NODE_TREE`;\nexport const SET_NODE_TREE = `${ACTION_PREFIX}_SET_NODE_TREE`;\nexport const GET_NODE_TREE_ERROR = `${ACTION_PREFIX}_GET_NODE_TREE_ERROR`;\n","import { Draft, produce } from 'immer';\nimport { SET_NODE_TREE, GET_NODE_TREE_ERROR } from '~/redux/types/navigation';\n\nconst initialState = {\n root: null,\n isError: false,\n isReady: false,\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_NODE_TREE: {\n state.root = action.nodes;\n state.isReady = true;\n return;\n }\n case GET_NODE_TREE_ERROR: {\n state.isError = true;\n return;\n }\n default:\n return;\n }\n}, initialState);\n","import merge from 'deepmerge';\n\nexport const combineMerge = (target: any, source: any, options: any) => {\n const destination = target.slice();\n\n source.forEach((item: any, index: any) => {\n if (typeof destination[index] === 'undefined') {\n destination[index] = options.cloneUnlessOtherwiseSpecified(item, options);\n } else if (options.isMergeableObject(item)) {\n destination[index] = merge(target[index], item, options);\n } else if (target.indexOf(item) === -1) {\n destination.push(item);\n }\n });\n return destination;\n};\n","import { Draft, produce } from 'immer';\nimport merge from 'deepmerge';\n\nimport {\n SET_ENTRY,\n SET_NAVIGATION_PATH,\n SET_ANCESTORS,\n SET_TARGET_PROJECT,\n SET_ROUTE,\n SET_SIBLINGS,\n SET_SURROGATE_KEYS,\n UPDATE_LOADING_STATE,\n} from './types';\nimport { combineMerge } from '~/util/merge';\n\nconst initialState = {\n currentHostname: null,\n currentPath: '/',\n currentNode: {},\n currentNodeAncestors: [],\n currentProject: 'unknown',\n entryID: null,\n entry: null,\n error: undefined,\n isError: false,\n isLoading: false,\n location: {},\n mappedEntry: null,\n notFound: false,\n staticRoute: null,\n statusCode: 200,\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_ANCESTORS: {\n state.currentNodeAncestors = action.ancestors;\n return;\n }\n case SET_ENTRY: {\n const {\n entry,\n error,\n mappedEntry,\n node = {},\n isError = false,\n isLoading = false,\n notFound = false,\n statusCode,\n } = action;\n\n let defaultStatus = 200;\n if (notFound === true && isError === false) defaultStatus = 404;\n else if (isError === true) defaultStatus = statusCode || 500;\n\n if (!entry) {\n state.entryID = null;\n state.entry = null;\n state.error = error;\n state.mappedEntry = null;\n state.isError = isError;\n state.isLoading = isLoading;\n state.notFound = notFound;\n state.statusCode = statusCode || defaultStatus;\n } else {\n state.entryID = action.id;\n state.entry = entry;\n state.error = error;\n state.isError = isError;\n state.isLoading = isLoading;\n state.notFound = notFound;\n state.statusCode = statusCode || defaultStatus;\n\n if (mappedEntry && Object.keys(mappedEntry).length > 0) {\n state.mappedEntry = mappedEntry;\n state.entry = { sys: entry.sys };\n }\n }\n\n if (!node) {\n state.currentNode = null;\n } else {\n // On Set Node, we reset all dependants.\n state.currentNode = node;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const { entry, ...nodeWithoutEntry } = node; // We have the entry stored elsewhere, so lets not keep it twice.\n state.currentNode = nodeWithoutEntry;\n }\n return;\n }\n case UPDATE_LOADING_STATE: {\n state.isLoading = action.isLoading;\n return;\n }\n case SET_NAVIGATION_PATH: {\n let staticRoute = {} as any;\n if (action.staticRoute) {\n staticRoute = { ...action.staticRoute };\n }\n if (action.path) {\n // Don't run a path update on initial load as we allready should have it in redux\n const entryUri = state?.entry?.sys?.uri;\n if (entryUri !== action.path) {\n state.currentPath = action.path;\n state.location = action.location;\n state.staticRoute = {\n ...staticRoute,\n route: { ...staticRoute.route, component: null },\n };\n\n state.isLoading = typeof window !== 'undefined';\n } else {\n state.location = action.location;\n state.staticRoute = {\n ...staticRoute,\n route: { ...staticRoute.route, component: null },\n };\n }\n }\n return;\n }\n case SET_ROUTE: {\n state.nextPath = action.path;\n return;\n }\n case SET_SIBLINGS: {\n // Can be null in some cases like the homepage.\n let currentNodeSiblingParent = null;\n if (action.siblings && action.siblings.length > 0) {\n currentNodeSiblingParent = action.siblings[0].parentId;\n }\n\n state.currentNodeSiblings = action.siblings;\n state.currentNodeSiblingsParent = currentNodeSiblingParent;\n return;\n }\n case SET_SURROGATE_KEYS: {\n console.info(`SET_SURROGATE_KEYS: '${action.url}' keys: ${action.keys}`);\n state.surrogateKeys = merge(\n state.surrogateKeys,\n (action.keys || '').split(' '),\n { arrayMerge: combineMerge }\n );\n return;\n }\n case SET_TARGET_PROJECT: {\n state.currentProject = action.project;\n state.allowedGroups = action.allowedGroups;\n state.currentHostname = action.hostname;\n return;\n }\n default:\n return state;\n }\n}, initialState);\n","const VERSION_PREFIX = '@VERSION/';\nexport const SET_VERSION = `${VERSION_PREFIX}SET_VERSION`;\nexport const SET_VERSION_STATUS = `${VERSION_PREFIX}SET_VERSION_STATUS`;\n","import { Draft, produce } from 'immer';\nimport { SET_VERSION, SET_VERSION_STATUS } from '~/redux/types/version';\n\nconst initialState = {\n commitRef: null,\n buildNo: null,\n contensisVersionStatus: 'published',\n};\n\nexport default produce((state: Draft<any>, action) => {\n switch (action.type) {\n case SET_VERSION_STATUS: {\n state.contensisVersionStatus = action.status;\n return;\n }\n case SET_VERSION: {\n state.commitRef = action.commitRef;\n state.buildNo = action.buildNo;\n return;\n }\n default:\n return;\n }\n}, initialState);\n","/**\n * This middleware captures 'CALL_HISTORY_METHOD' actions to redirect to the\n * provided history object. This will prevent these actions from reaching your\n * reducer or any middleware that comes after this one.\n */\n/* eslint-disable no-unused-vars */\nconst routerMiddleware = history => store => next => action => {\n if (action.type !== 'CALL_HISTORY_METHOD') {\n return next(action);\n }\n\n const {\n payload: { method, args },\n } = action;\n history[method](...args);\n};\n\nexport default routerMiddleware;\n","import {\n applyMiddleware,\n combineReducers,\n compose,\n createStore,\n Action,\n Store,\n StoreEnhancer,\n} from 'redux';\nimport thunkMiddleware from 'redux-thunk';\nimport createSagaMiddleware, { END } from 'redux-saga';\nimport { createInjectorsEnhancer } from 'redux-injectors';\n\n// Core reducers\nimport NavigationReducer from '../reducers/navigation';\nimport RoutingReducer from '~/routing/redux/reducers';\nimport UserReducer from '~/user/redux/reducers';\nimport VersionReducer from '../reducers/version';\nimport routerMiddleware from './routerMiddleware';\nimport { AppState } from '../appstate';\nimport { History, MemoryHistory } from 'history';\nimport { StateType } from '~/config';\n\nexport let reduxStore;\n\n/* eslint-disable no-underscore-dangle */\ndeclare let window: Window &\n typeof globalThis & {\n __REDUX_DEVTOOLS_EXTENSION__: any;\n };\n\nexport default async (\n featureReducers: any,\n initialState: AppState,\n history: History | MemoryHistory,\n stateType: StateType\n) => {\n let reduxDevToolsMiddleware = f => f;\n\n if (typeof window != 'undefined') {\n reduxDevToolsMiddleware = window.__REDUX_DEVTOOLS_EXTENSION__\n ? window.__REDUX_DEVTOOLS_EXTENSION__()\n : f => f;\n }\n\n const sagaMiddleware = createSagaMiddleware();\n\n const reducers = {\n navigation: NavigationReducer,\n routing: RoutingReducer,\n user: UserReducer,\n version: VersionReducer,\n ...featureReducers,\n };\n\n // Reassign the combiner and fromJS functions when\n // stateType is 'immutable' with dynamic imports\n let combiner = combineReducers;\n let fromJS: any = (obj: any) => obj;\n globalThis.STATE_TYPE = stateType;\n\n if (stateType === 'immutable') {\n globalThis.immutable = await import(\n /* webpackChunkName: \"immutable\" */ 'immutable'\n );\n\n fromJS = (\n await import(/* webpackChunkName: \"from-js\" */ '~/util/fromJSLeaveImmer')\n ).default;\n\n combiner = (\n await import(/* webpackChunkName: \"redux-immutable\" */ 'redux-immutable')\n ).combineReducers;\n }\n\n const createReducer = (injectedReducers = {}) => {\n const rootReducer = combiner<AppState>({\n ...injectedReducers,\n // other non-injected reducers go here\n ...reducers,\n });\n\n return rootReducer;\n };\n\n const store = (initialState: AppState) => {\n const runSaga = sagaMiddleware.run;\n\n const middleware: StoreEnhancer<\n {\n dispatch: unknown;\n },\n unknown\n > = compose(\n applyMiddleware(\n thunkMiddleware,\n sagaMiddleware,\n routerMiddleware(history)\n ),\n createInjectorsEnhancer({\n createReducer,\n runSaga,\n }),\n reduxDevToolsMiddleware\n );\n\n const store: Store<AppState, Action<any>> & {\n runSaga?: typeof runSaga;\n close?: () => void;\n } = createStore<AppState, Action<any>, unknown, unknown>(\n createReducer(),\n initialState,\n middleware\n );\n\n store.runSaga = runSaga;\n store.close = () => store.dispatch(END);\n\n return store;\n };\n\n reduxStore = store(fromJS(initialState));\n return reduxStore;\n};\n","import { getImmutableOrJS as getIn } from '~/redux/util';\n\nexport const hasNavigationTree = state =>\n getIn(state, ['navigation', 'isReady']);\n\nexport const selectNavigationRoot = state =>\n getIn(state, ['navigation', 'root']);\n\nexport const selectNavigationChildren = state =>\n getIn(state, ['navigation', 'root', 'children']);\n\nexport const selectNavigationDepends = () => [];\n","import { all } from 'redux-saga/effects';\nimport { reduxStore as DefaultStore } from './store';\n\nexport const convertSagaArray = sagas => {\n if (Array.isArray(sagas))\n return function* rootSaga() {\n yield all(sagas);\n };\n return sagas;\n};\n\nexport const injectReducer = ({ key, reducer }, store = DefaultStore) => {\n if (\n Reflect.has(store.injectedReducers, key) &&\n store.injectedReducers[key] === reducer\n )\n return;\n store.injectedReducers[key] = reducer;\n\n store.replaceReducer(store.createReducer(store.injectedReducers));\n};\n\nexport const injectSaga = ({ key, saga }, store = DefaultStore) => {\n const rootSaga = convertSagaArray(saga);\n let hasSaga = Reflect.has(store.injectedSagas, key);\n\n if (process.env.NODE_ENV !== 'production') {\n const oldDescriptor = store.injectedSagas[key]; // enable hot reloading of daemon and once-till-unmount sagas\n\n if (hasSaga && oldDescriptor.saga !== rootSaga) {\n oldDescriptor.task.cancel();\n hasSaga = false;\n }\n }\n console.info('injectSaga, key: ', key, 'hasSaga: ', hasSaga);\n\n if (!hasSaga) {\n store.injectedSagas[key] = {\n key,\n saga: rootSaga,\n task: store.runSaga(rootSaga),\n };\n }\n};\n\nexport const injectRedux = ({ key, reducer, saga }, store = DefaultStore) => {\n console.info('injectRedux, key: ', key);\n if (reducer) injectReducer({ key, reducer }, store);\n if (saga) injectSaga({ key, saga }, store);\n};\n\nexport const useInjectRedux = injectRedux;\n","import { action } from '../util';\nimport { SET_VERSION, SET_VERSION_STATUS } from '../types/version';\n\nexport const setVersion = (commitRef, buildNo) =>\n action(SET_VERSION, { commitRef, buildNo });\n\nexport const setVersionStatus = status =>\n action(SET_VERSION_STATUS, { status });\n"],"names":["ACTION_PREFIX","GET_NODE_TREE","SET_NODE_TREE","GET_NODE_TREE_ERROR","initialState","root","isError","isReady","produce","state","action","type","nodes","combineMerge","target","source","options","destination","slice","forEach","item","index","cloneUnlessOtherwiseSpecified","isMergeableObject","merge","indexOf","push","currentHostname","currentPath","currentNode","currentNodeAncestors","currentProject","entryID","entry","error","undefined","isLoading","location","mappedEntry","notFound","staticRoute","statusCode","SET_ANCESTORS","ancestors","SET_ENTRY","node","defaultStatus","id","Object","keys","length","sys","nodeWithoutEntry","UPDATE_LOADING_STATE","SET_NAVIGATION_PATH","path","entryUri","uri","route","component","window","SET_ROUTE","nextPath","SET_SIBLINGS","currentNodeSiblingParent","siblings","parentId","currentNodeSiblings","currentNodeSiblingsParent","SET_SURROGATE_KEYS","console","info","url","surrogateKeys","split","arrayMerge","SET_TARGET_PROJECT","project","allowedGroups","hostname","VERSION_PREFIX","SET_VERSION","SET_VERSION_STATUS","commitRef","buildNo","contensisVersionStatus","status","routerMiddleware","history","store","next","payload","method","args","reduxStore","featureReducers","stateType","reduxDevToolsMiddleware","f","__REDUX_DEVTOOLS_EXTENSION__","sagaMiddleware","createSagaMiddleware","reducers","navigation","NavigationReducer","routing","RoutingReducer","user","UserReducer","version","VersionReducer","combiner","combineReducers","fromJS","obj","globalThis","STATE_TYPE","immutable","default","createReducer","injectedReducers","rootReducer","runSaga","run","middleware","compose","applyMiddleware","thunkMiddleware","createInjectorsEnhancer","createStore","close","dispatch","END","hasNavigationTree","getIn","selectNavigationRoot","selectNavigationChildren","selectNavigationDepends","convertSagaArray","sagas","Array","isArray","rootSaga","all","injectReducer","key","reducer","DefaultStore","Reflect","has","replaceReducer","injectSaga","saga","hasSaga","injectedSagas","process","env","NODE_ENV","oldDescriptor","task","cancel","injectRedux","useInjectRedux","setVersion","setVersionStatus"],"mappings":"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"}
package/package-lock.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zengenti/contensis-react-base",
3
- "version": "3.0.0-beta.26",
3
+ "version": "3.0.0-beta.27",
4
4
  "lockfileVersion": 1,
5
5
  "requires": true,
6
6
  "dependencies": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zengenti/contensis-react-base",
3
- "version": "3.0.0-beta.26",
3
+ "version": "3.0.0-beta.27",
4
4
  "repository": "https://github.com/zengenti/contensis-react-base",
5
5
  "license": "None",
6
6
  "description": "Turbocharge your React web apps with Contensis. This package handles all dependencies for creating full featured web apps in React with Contensis and Site View. Routing is driven by Site View, Redux is used for global state management and server-side rendering (SSR) is handled for you. Also taking care of intricate hosting issues such as cache invalidation and supporting authenticated content where required.",