@zengenti/contensis-react-base 4.0.0-beta.1 → 4.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/cjs/{App-cf7e3103.js → App-b56aca04.js} +139 -93
  2. package/{esm/App-6e8e803b.js.map → cjs/App-b56aca04.js.map} +1 -1
  3. package/cjs/{ChangePassword.container-a617190b.js → ChangePassword.container-ae35785e.js} +120 -62
  4. package/{esm/ChangePassword.container-ae0f9ce4.js.map → cjs/ChangePassword.container-ae35785e.js.map} +1 -1
  5. package/cjs/{ContensisDeliveryApi-9e32960d.js → ContensisDeliveryApi-4fcf049d.js} +71 -17
  6. package/{esm/ContensisDeliveryApi-c66b0cc3.js.map → cjs/ContensisDeliveryApi-4fcf049d.js.map} +1 -1
  7. package/cjs/CookieConstants-000427db.js.map +1 -1
  8. package/cjs/{RouteLoader-3e284fd6.js → RouteLoader-c06dccd5.js} +182 -63
  9. package/cjs/RouteLoader-c06dccd5.js.map +1 -0
  10. package/cjs/{ToJs-149fc5e1.js → ToJs-a8d8f3f0.js} +14 -6
  11. package/cjs/{ToJs-149fc5e1.js.map → ToJs-a8d8f3f0.js.map} +1 -1
  12. package/cjs/client.js +20 -14
  13. package/cjs/client.js.map +1 -1
  14. package/cjs/contensis-react-base.js +275 -139
  15. package/cjs/contensis-react-base.js.map +1 -1
  16. package/cjs/forms.js +717 -228
  17. package/cjs/forms.js.map +1 -1
  18. package/cjs/{fromJSLeaveImmer-7c363211.js → fromJSLeaveImmer-e74c673c.js} +4 -1
  19. package/cjs/{fromJSLeaveImmer-7c363211.js.map → fromJSLeaveImmer-e74c673c.js.map} +1 -1
  20. package/cjs/{reducers-9afb5f89.js → reducers-73a03ef4.js} +31 -10
  21. package/cjs/{reducers-9afb5f89.js.map → reducers-73a03ef4.js.map} +1 -1
  22. package/cjs/redux.js +4 -5
  23. package/cjs/redux.js.map +1 -1
  24. package/cjs/routing.js +6 -4
  25. package/cjs/routing.js.map +1 -1
  26. package/cjs/{sagas-e04b94c1.js → sagas-570f23ba.js} +286 -187
  27. package/cjs/{sagas-e04b94c1.js.map → sagas-570f23ba.js.map} +1 -1
  28. package/cjs/search.js +82 -56
  29. package/cjs/search.js.map +1 -1
  30. package/cjs/{selectors-46b689d0.js → selectors-14caa813.js} +6 -1
  31. package/cjs/selectors-14caa813.js.map +1 -0
  32. package/cjs/urls-6fcaf4c6.js.map +1 -1
  33. package/cjs/user.js +9 -4
  34. package/cjs/user.js.map +1 -1
  35. package/cjs/util.js +55 -35
  36. package/cjs/util.js.map +1 -1
  37. package/cjs/{version-79a027cb.js → version-34d91f68.js} +60 -26
  38. package/cjs/version-34d91f68.js.map +1 -0
  39. package/cjs/{version-afd4f77e.js → version-a410c88e.js} +6 -3
  40. package/cjs/{version-afd4f77e.js.map → version-a410c88e.js.map} +1 -1
  41. package/esm/{App-6e8e803b.js → App-83107d7e.js} +137 -91
  42. package/{cjs/App-cf7e3103.js.map → esm/App-83107d7e.js.map} +1 -1
  43. package/esm/{ChangePassword.container-ae0f9ce4.js → ChangePassword.container-76fd5e9b.js} +120 -62
  44. package/{cjs/ChangePassword.container-a617190b.js.map → esm/ChangePassword.container-76fd5e9b.js.map} +1 -1
  45. package/esm/{ContensisDeliveryApi-c66b0cc3.js → ContensisDeliveryApi-fe57a037.js} +71 -17
  46. package/{cjs/ContensisDeliveryApi-9e32960d.js.map → esm/ContensisDeliveryApi-fe57a037.js.map} +1 -1
  47. package/esm/CookieConstants-3d3b6531.js.map +1 -1
  48. package/esm/RouteLoader-29fd689a.js +310 -0
  49. package/esm/RouteLoader-29fd689a.js.map +1 -0
  50. package/esm/{ToJs-ae860aad.js → ToJs-df57f31d.js} +14 -6
  51. package/esm/{ToJs-ae860aad.js.map → ToJs-df57f31d.js.map} +1 -1
  52. package/esm/client.js +21 -15
  53. package/esm/client.js.map +1 -1
  54. package/esm/contensis-react-base.js +270 -136
  55. package/esm/contensis-react-base.js.map +1 -1
  56. package/esm/forms.js +717 -228
  57. package/esm/forms.js.map +1 -1
  58. package/esm/{fromJSLeaveImmer-e2dacd63.js → fromJSLeaveImmer-0114ffcf.js} +4 -1
  59. package/esm/{fromJSLeaveImmer-e2dacd63.js.map → fromJSLeaveImmer-0114ffcf.js.map} +1 -1
  60. package/esm/{reducers-3d5c37d1.js → reducers-aa8cef1e.js} +31 -10
  61. package/esm/{reducers-3d5c37d1.js.map → reducers-aa8cef1e.js.map} +1 -1
  62. package/esm/redux.js +7 -8
  63. package/esm/redux.js.map +1 -1
  64. package/esm/routing.js +3 -4
  65. package/esm/routing.js.map +1 -1
  66. package/esm/{sagas-933a8fc8.js → sagas-07e82e18.js} +239 -139
  67. package/esm/{sagas-933a8fc8.js.map → sagas-07e82e18.js.map} +1 -1
  68. package/esm/search.js +83 -57
  69. package/esm/search.js.map +1 -1
  70. package/esm/{selectors-01074974.js → selectors-691caf02.js} +6 -1
  71. package/esm/selectors-691caf02.js.map +1 -0
  72. package/esm/urls-eac9a747.js.map +1 -1
  73. package/esm/user.js +11 -6
  74. package/esm/user.js.map +1 -1
  75. package/esm/util.js +55 -35
  76. package/esm/util.js.map +1 -1
  77. package/esm/{version-346a9787.js → version-3d9911e2.js} +60 -26
  78. package/esm/version-3d9911e2.js.map +1 -0
  79. package/esm/{version-0fbd1b82.js → version-9f29becb.js} +6 -3
  80. package/esm/{version-0fbd1b82.js.map → version-9f29becb.js.map} +1 -1
  81. package/models/redux/appstate.d.ts +2 -3
  82. package/models/redux/store/history.d.ts +2 -2
  83. package/models/routing/components/Redirect.d.ts +5 -0
  84. package/models/routing/components/StaticRouteLoader.d.ts +6 -0
  85. package/models/routing/httpContext.d.ts +7 -0
  86. package/models/routing/index.d.ts +3 -0
  87. package/models/routing/redux/actions.d.ts +2 -3
  88. package/models/routing/routes.d.ts +11 -5
  89. package/models/util/ContensisDeliveryApi.d.ts +0 -1
  90. package/models/util/mergeStaticRoutes.d.ts +1 -0
  91. package/package.json +3 -5
  92. package/cjs/RouteLoader-3e284fd6.js.map +0 -1
  93. package/cjs/selectors-46b689d0.js.map +0 -1
  94. package/cjs/version-79a027cb.js.map +0 -1
  95. package/esm/RouteLoader-e3c5505f.js +0 -196
  96. package/esm/RouteLoader-e3c5505f.js.map +0 -1
  97. package/esm/selectors-01074974.js.map +0 -1
  98. package/esm/version-346a9787.js.map +0 -1
package/esm/util.js CHANGED
@@ -1,11 +1,11 @@
1
1
  export { s as setCachingHeaders, u as urls } from './urls-eac9a747.js';
2
- export { c as cachedSearch, a as cachedSearchWithCookies, d as deliveryApi, b as deliveryApiWithCookies, g as getClientConfig } from './ContensisDeliveryApi-c66b0cc3.js';
2
+ export { c as cachedSearch, a as cachedSearchWithCookies, d as deliveryApi, b as deliveryApiWithCookies, g as getClientConfig } from './ContensisDeliveryApi-fe57a037.js';
3
3
  import mapJson, { jpath } from 'jsonpath-mapper';
4
4
  export { jpath, default as mapJson } from 'jsonpath-mapper';
5
5
  import React from 'react';
6
6
  import { connect } from 'react-redux';
7
- import { b as selectCurrentProject } from './selectors-01074974.js';
8
- import { f as selectCommitRef, g as selectBuildNumber, s as selectVersionStatus } from './version-346a9787.js';
7
+ import { b as selectCurrentProject } from './selectors-691caf02.js';
8
+ import { f as selectCommitRef, g as selectBuildNumber, s as selectVersionStatus } from './version-3d9911e2.js';
9
9
  import styled from 'styled-components';
10
10
  import 'contensis-delivery-api';
11
11
  import 'query-string';
@@ -15,7 +15,7 @@ import 'redux-thunk';
15
15
  import 'redux-saga';
16
16
  import 'redux-injectors';
17
17
  import 'immer';
18
- import './reducers-3d5c37d1.js';
18
+ import './reducers-aa8cef1e.js';
19
19
 
20
20
  /**
21
21
  *
@@ -26,11 +26,11 @@ import './reducers-3d5c37d1.js';
26
26
  const useMapper = (json, template) => {
27
27
  return template ? mapJson(json || {}, template) : json;
28
28
  };
29
+
29
30
  const chooseMapperByFieldValue = (entry, mappers, field = 'sys.contentTypeId') => {
30
31
  const fieldValue = jpath(field, entry || {});
31
32
  return mappers[fieldValue] || mappers.default || {};
32
33
  };
33
-
34
34
  /**
35
35
  * useEntriesMapper hook to take a list of entries from Delivery API along
36
36
  * with mappers for each contentTypeId and return an array of mapped objects
@@ -43,16 +43,17 @@ const chooseMapperByFieldValue = (entry, mappers, field = 'sys.contentTypeId') =
43
43
  * a default mapper template, returns an empty object if no mapper template
44
44
  * couild be applied.
45
45
  */
46
+
47
+
46
48
  const useEntriesMapper = (entry, mappers, field = 'sys.contentTypeId') => {
47
49
  const mapper = chooseMapperByFieldValue(entry, mappers, field);
48
50
  return useMapper(entry, mapper);
49
51
  };
50
-
51
52
  /**
52
53
  * Deprecated: due to misleading name, use the hook useEntriesMapper instead
53
54
  */
54
- const useEntryMapper = useEntriesMapper;
55
55
 
56
+ const useEntryMapper = useEntriesMapper;
56
57
  /**
57
58
  * mapEntries mapping function to take a list of entries from Delivery API along
58
59
  * with mappers for each contentTypeId and return an array of mapped objects
@@ -65,11 +66,11 @@ const useEntryMapper = useEntriesMapper;
65
66
  * a default mapper template, returns an empty object if no mapper template
66
67
  * couild be applied.
67
68
  */
69
+
68
70
  const mapEntries = (entries, mappers, field = 'sys.contentTypeId') => entries.map(entry => {
69
71
  const mapper = chooseMapperByFieldValue(entry, mappers, field);
70
72
  return mapper ? mapJson(entry || {}, mapper) : entry;
71
73
  });
72
-
73
74
  /**
74
75
  * mapComposer mapping function to take a composer field from Delivery API along
75
76
  * with mappers for each Composer Item "type" and return an array of mapped components
@@ -79,42 +80,37 @@ const mapEntries = (entries, mappers, field = 'sys.contentTypeId') => entries.ma
79
80
  * or null. Injects a "_type" property into each transformed object in the array to indicate
80
81
  * where the mapping originated and for what component the mapped object is representing
81
82
  */
83
+
82
84
  const mapComposer = (composer, mappers) => Array.isArray(composer) ? composer.map((composerItem, index) => {
83
85
  const itemValue = composerItem.value;
84
86
  const mapper = mappers[composerItem.type] || mappers.default;
87
+
85
88
  if (mapper) {
86
89
  // Add some fields into the composer item mapper and return object
87
90
  const addedFields = {
88
91
  _type: composerItem.type,
89
92
  _index: index
90
- };
91
-
92
- // Add fields and $root item into the composer item source object
93
+ }; // Add fields and $root item into the composer item source object
93
94
  // for use inside each item mapping, for arrays we inject the added fields
94
95
  // into the first array item. This is useful if we require any of
95
96
  // composerItem.type, composerItem index/position and composer $root
96
97
  // in scope to influence any composer item's mapping logic
97
- const sourceObject = itemValue && Array.isArray(itemValue) ? itemValue.map((iv, idx) => idx !== 0 ? iv : typeof iv === 'object' ? {
98
- ...addedFields,
98
+
99
+ const sourceObject = itemValue && Array.isArray(itemValue) ? itemValue.map((iv, idx) => idx !== 0 ? iv : typeof iv === 'object' ? { ...addedFields,
99
100
  ...iv,
100
101
  $root: composer
101
- } : iv) : typeof itemValue === 'object' ? {
102
- ...addedFields,
102
+ } : iv) : typeof itemValue === 'object' ? { ...addedFields,
103
103
  ...itemValue,
104
104
  $root: composer
105
- } : itemValue || {};
105
+ } : itemValue || {}; // Apply the composer item mapping
106
106
 
107
- // Apply the composer item mapping
108
- const mappedFields = mapJson(sourceObject, mapper);
107
+ const mappedFields = mapJson(sourceObject, mapper); // Add the extra fields in with the return object
109
108
 
110
- // Add the extra fields in with the return object
111
- return mappedFields && typeof mappedFields === 'object' ? {
112
- ...mappedFields,
109
+ return mappedFields && typeof mappedFields === 'object' ? { ...mappedFields,
113
110
  ...addedFields
114
111
  } : mappedFields;
115
112
  } else return {};
116
113
  }) : composer || [];
117
-
118
114
  /**
119
115
  * useComposerMapper hook to take a composer field from Delivery API along
120
116
  * with mappers for each Composer Item "type" and return an array of mapped components
@@ -124,8 +120,8 @@ const mapComposer = (composer, mappers) => Array.isArray(composer) ? composer.ma
124
120
  * or null. Injects a "_type" property into each transformed object in the array to indicate
125
121
  * where the mapping originated and for what component the mapped object is representing
126
122
  */
127
- const useComposerMapper = (composer = [], mappers) => mapComposer(composer, mappers);
128
123
 
124
+ const useComposerMapper = (composer = [], mappers) => mapComposer(composer, mappers);
129
125
  /**
130
126
  * entryMapper will return a function to satisfy an entryMapper when defining app route
131
127
  * this is essentially a shorthand function to prevent boilerplate repetition inside your routes file
@@ -133,8 +129,8 @@ const useComposerMapper = (composer = [], mappers) => mapComposer(composer, mapp
133
129
  * @param mapping the jsonpath-mapper mapping template to apply when the route is resolved
134
130
  * @returns {mappedEntry}
135
131
  */
136
- const entryMapper = mapping => (node, state) => mapJson({
137
- ...node,
132
+
133
+ const entryMapper = mapping => (node, state) => mapJson({ ...node,
138
134
  ...(node.entry || {}),
139
135
  state
140
136
  }, mapping);
@@ -146,9 +142,11 @@ const stringifyStrings = obj => {
146
142
  case 'string':
147
143
  returnObj[key] = JSON.stringify(value);
148
144
  break;
145
+
149
146
  case 'object':
150
147
  returnObj[key] = stringifyStrings(value);
151
148
  break;
149
+
152
150
  default:
153
151
  returnObj[key] = value;
154
152
  break;
@@ -156,14 +154,19 @@ const stringifyStrings = obj => {
156
154
  });
157
155
  return returnObj;
158
156
  };
157
+
159
158
  var stringifyStrings_1 = stringifyStrings;
160
159
 
161
160
  const context = typeof window != 'undefined' ? window : global;
162
161
  const isDev = process.env.NODE_ENV === 'development';
163
- const pj = () => isDev ? PACKAGE_JSON /* global PACKAGE_JSON */ : context.PACKAGE_JSON || {
162
+
163
+ const pj = () => isDev ? PACKAGE_JSON
164
+ /* global PACKAGE_JSON */
165
+ : context.PACKAGE_JSON || {
164
166
  name: 'packagejson not found',
165
167
  repository: ''
166
168
  };
169
+
167
170
  const versionInfoProps = {
168
171
  packageDetail: () => {
169
172
  const pkg = pj();
@@ -185,24 +188,40 @@ const versionInfoProps = {
185
188
  }
186
189
  },
187
190
  zenPackageVersions: () => [...(Object.entries(pj().devDependencies || {}).filter(([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')) || []), ...(Object.entries(pj().dependencies || {}).filter(([pkg]) => pkg.includes('zengenti') || pkg.includes('contensis')) || [])],
188
- deliveryApi: () => JSON.parse(JSON.stringify(DELIVERY_API_CONFIG /* global DELIVERY_API_CONFIG */)),
189
-
190
- devEnv: () => typeof DEV_ENV !== 'undefined' /* global DEV_ENV */ ? DEV_ENV : null,
191
- disableSsrRedux: () => isDev ? DISABLE_SSR_REDUX /* global DISABLE_SSR_REDUX*/ : context.DISABLE_SSR_REDUX || false,
191
+ deliveryApi: () => JSON.parse(JSON.stringify(DELIVERY_API_CONFIG
192
+ /* global DELIVERY_API_CONFIG */
193
+ )),
194
+ devEnv: () => typeof DEV_ENV !== 'undefined'
195
+ /* global DEV_ENV */
196
+ ? DEV_ENV : null,
197
+ disableSsrRedux: () => isDev ? DISABLE_SSR_REDUX
198
+ /* global DISABLE_SSR_REDUX*/
199
+ : context.DISABLE_SSR_REDUX || false,
192
200
  nodeEnv: () => process.env.NODE_ENV || 'production',
193
201
  packagejson: () => pj() || {},
194
- projects: () => isDev ? PROJECTS /* global PROJECTS */ : context.PROJECTS,
195
- proxyDeliveryApi: () => isDev ? PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */ : context.PROXY_DELIVERY_API || false,
196
- publicUri: () => isDev ? PUBLIC_URI /* global PUBLIC_URI */ : context.PUBLIC_URI || null,
202
+ projects: () => isDev ? PROJECTS
203
+ /* global PROJECTS */
204
+ : context.PROJECTS,
205
+ proxyDeliveryApi: () => isDev ? PROXY_DELIVERY_API
206
+ /* global PROXY_DELIVERY_API */
207
+ : context.PROXY_DELIVERY_API || false,
208
+ publicUri: () => isDev ? PUBLIC_URI
209
+ /* global PUBLIC_URI */
210
+ : context.PUBLIC_URI || null,
197
211
  project: state => selectCurrentProject(state),
198
- reverseProxyPaths: () => isDev ? REVERSE_PROXY_PATHS /* global REVERSE_PROXY_PATHS */ : context.REVERSE_PROXY_PATHS || {},
199
- servers: () => isDev ? SERVERS /* global SERVERS */ : context.SERVERS,
212
+ reverseProxyPaths: () => isDev ? REVERSE_PROXY_PATHS
213
+ /* global REVERSE_PROXY_PATHS */
214
+ : context.REVERSE_PROXY_PATHS || {},
215
+ servers: () => isDev ? SERVERS
216
+ /* global SERVERS */
217
+ : context.SERVERS,
200
218
  version: {
201
219
  buildNumber: state => selectBuildNumber(state),
202
220
  commitRef: state => selectCommitRef(state),
203
221
  contensisVersionStatus: state => selectVersionStatus(state)
204
222
  }
205
223
  };
224
+
206
225
  const mapStateToVersionInfo = state => {
207
226
  const mappedProps = mapJson(state, versionInfoProps);
208
227
  return mappedProps;
@@ -290,6 +309,7 @@ const VersionInfo = ({
290
309
  key: key
291
310
  }, "[ ", k, ": ", v, " ]"))))));
292
311
  };
312
+
293
313
  var VersionInfo$1 = connect(mapStateToVersionInfo)(VersionInfo);
294
314
 
295
315
  export { VersionInfo$1 as VersionInfo, entryMapper, mapComposer, mapEntries, stringifyStrings_1 as stringifyStrings, useComposerMapper, useEntriesMapper, useEntryMapper, useMapper };
package/esm/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../src/util/json-mapper.ts","../src/util/stringifyStrings.js","../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","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","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: { [k: string]: string };\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","stringifyStrings","obj","returnObj","Object","forEach","key","JSON","stringify","module","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","project","selectCurrentProject","reverseProxyPaths","REVERSE_PROXY_PATHS","servers","SERVERS","contensisVersionStatus","selectVersionStatus","mapStateToVersionInfo","mappedProps","VersionInfoStyledTable","styled","table","withConfig","displayName","componentId","VersionInfo","React","createElement","colSpan","href","className","target","rel","alias","ver","web","previewWeb","api","cms","iis","previewIis","path","id","style","margin","padding","listStyleType","toString","k","v","connect"],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sources":["../src/util/json-mapper.ts","../src/util/stringifyStrings.js","../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","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","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: { [k: string]: string };\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","stringifyStrings","obj","returnObj","Object","forEach","key","JSON","stringify","module","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","project","selectCurrentProject","reverseProxyPaths","REVERSE_PROXY_PATHS","servers","SERVERS","contensisVersionStatus","selectVersionStatus","mapStateToVersionInfo","mappedProps","VersionInfoStyledTable","styled","table","VersionInfo","alias","ver","web","previewWeb","api","cms","iis","previewIis","path","id","margin","padding","listStyleType","toString","k","v","connect"],"mappings":"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"}