@zengenti/contensis-react-base 3.0.0-beta.70 → 3.0.0-beta.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/{App-0c10c9fa.js → App-80a696bc.js} +2 -6
- package/cjs/App-80a696bc.js.map +1 -0
- package/cjs/client.js +1 -1
- package/cjs/contensis-react-base.js +75 -26
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/{sagas-24f5607f.js → sagas-594b5ecd.js} +86 -48
- package/cjs/sagas-594b5ecd.js.map +1 -0
- package/cjs/search.js +19 -12
- package/cjs/search.js.map +1 -1
- package/esm/{App-d7b18a4f.js → App-af0670fa.js} +2 -6
- package/esm/App-af0670fa.js.map +1 -0
- package/esm/client.js +2 -2
- package/esm/contensis-react-base.js +76 -27
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/{sagas-489c29ca.js → sagas-1f2b2aa0.js} +84 -50
- package/esm/sagas-1f2b2aa0.js.map +1 -0
- package/esm/search.js +16 -13
- package/esm/search.js.map +1 -1
- package/models/search/index.d.ts +4 -3
- package/models/search/models/SearchActions.d.ts +5 -2
- package/models/search/redux/actions.d.ts +4 -2
- package/models/search/redux/sagas.d.ts +7 -3
- package/models/search/redux/selectors.d.ts +2 -2
- package/models/search/redux/util.d.ts +1 -0
- package/models/search/search/expressions.d.ts +2 -2
- package/models/search/search/util.d.ts +14 -0
- package/models/server/util/bundles.d.ts +17 -21
- package/package.json +2 -1
- package/CHANGELOG.md +0 -293
- package/cjs/App-0c10c9fa.js.map +0 -1
- package/cjs/sagas-24f5607f.js.map +0 -1
- package/esm/App-d7b18a4f.js.map +0 -1
- package/esm/sagas-489c29ca.js.map +0 -1
- package/package-lock.json +0 -12406
package/CHANGELOG.md
DELETED
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
#### 2.5.0 (2021-09-20)
|
|
2
|
-
|
|
3
|
-
##### New Features
|
|
4
|
-
|
|
5
|
-
- Removed useUser hook and created hooks for change password, forgot password (c65d6dd7)
|
|
6
|
-
- add entryMapper to /util utility function to clean up code when mapping route entries with jsonpath-mapper style templates and default arguments (3b6132d9)
|
|
7
|
-
|
|
8
|
-
##### Bug Fixes
|
|
9
|
-
|
|
10
|
-
- Error messages not displaying on the various password forms when operations fail (341bc827)
|
|
11
|
-
- issue with a default value set in typescript refactor (822da5c9)
|
|
12
|
-
- added two missing routing selectors (2ddc26e6)
|
|
13
|
-
- server side debugging requires an old version of babel-plugin to define the set globals in the app (09566a99)
|
|
14
|
-
- changes in latest immutable js typings break existing selectors by changing their return value from any to unknown, update search package to fix bug with ToJS component. Use typescript eslint import resolver (9da62533)
|
|
15
|
-
- update search package to set projectId in listings (098ea40f)
|
|
16
|
-
- small issue with SSR and dynamic bundles need to filter out some undefined array items from the loadable modules (c9fa233f)
|
|
17
|
-
|
|
18
|
-
##### Build System / Dependencies
|
|
19
|
-
|
|
20
|
-
- install latest search package and uninstall unused packages (81f1c1eb)
|
|
21
|
-
- update search package to add missing types, add rules-of-hooks back to eslintrc, correct staticRoute type in OnRouteLoadArgs (c7d1a9ce)
|
|
22
|
-
- add follow-tags to git push in release script so we caputure the tag created by npm version command (7030a4fd)
|
|
23
|
-
- adding further types to app config (d5da430c)
|
|
24
|
-
- add types to AppConfig keys (2c0d3447)
|
|
25
|
-
- search index.d.ts is not being copied in CI (0f6b7137)
|
|
26
|
-
- copy typescript models for search package as existing d.ts files are ignored by tsc (5f1ce21f)
|
|
27
|
-
- add missing @types packages (0f54a201)
|
|
28
|
-
- update search package to fix build (5223e118)
|
|
29
|
-
- update package-lock to fix build (a2f40c58)
|
|
30
|
-
- fix no default export in /client (9e10dc24)
|
|
31
|
-
- most models not published to npm (1b2eea17)
|
|
32
|
-
- try remove now redundant build stage (87d68755)
|
|
33
|
-
- handle all exports via index file, use ts-patch to be able to use tsconfig plugins to transform alias paths in d.ts files to usable paths for consumers (7fd52af6)
|
|
34
|
-
- update packages (dcc3cbd4)
|
|
35
|
-
- change npm script in CI to clean assets and build models with tsc (32c61de8)
|
|
36
|
-
- further TypeScript work (e91452d8)
|
|
37
|
-
- TypeScript with rollup and babel initial commit (2c737ed9)##### Other Changes
|
|
38
|
-
|
|
39
|
-
##### Performance Improvements
|
|
40
|
-
|
|
41
|
-
- remove excess code from bundles (03773ece)
|
|
42
|
-
- update zengenti packages (f654d22a)
|
|
43
|
-
|
|
44
|
-
##### Refactors
|
|
45
|
-
|
|
46
|
-
- further typescript conversions (9c88cd52)
|
|
47
|
-
- further typescript conversions (d7010813)
|
|
48
|
-
- typescript conversion progress, all models exported through default package, convert client entrypoint and types for routes and routing events (2a15b4c6)
|
|
49
|
-
- typescript conversion progress, types added for globals and server start config (12e17c53)
|
|
50
|
-
|
|
51
|
-
##### Documentation Changes
|
|
52
|
-
|
|
53
|
-
- add TypeScript notes to README (0a8bcabd)
|
|
54
|
-
- tweak package description text (4f713d5a)
|
|
55
|
-
- update CHANGELOG (b8b1b488)
|
|
56
|
-
|
|
57
|
-
#### Other changes
|
|
58
|
-
|
|
59
|
-
- zengenti/contensis-react-base into dom-auth-changes-merge (7d6e7ed9)
|
|
60
|
-
- //github.com/zengenti/contensis-react-base into contensis-14-forgot-change-password (c6775cf1)
|
|
61
|
-
|
|
62
|
-
#### 2.4.0 (2021-08-19)
|
|
63
|
-
|
|
64
|
-
##### Build System / Dependencies
|
|
65
|
-
|
|
66
|
-
- search package had gone back to old non TS version, now merged into master and back on correct version (5de95dfc)
|
|
67
|
-
|
|
68
|
-
##### Documentation Changes
|
|
69
|
-
|
|
70
|
-
- update README with some clarity on the available subpackages and their purpose also key scripts reduced to remove references to an included web app (29f284af)
|
|
71
|
-
|
|
72
|
-
##### New Features
|
|
73
|
-
|
|
74
|
-
- support saga and reducer injection, new key in ContentTypeMappings and StaticRoutes injectRedux async function when provided expects a returned object containing { key, reducer, saga } allowing adding dynamic imports into the redux store (d9786fda)
|
|
75
|
-
|
|
76
|
-
##### Bug Fixes
|
|
77
|
-
|
|
78
|
-
- global not defined error in dev mode (c650266c)
|
|
79
|
-
- update versionInfo page props to support github repositories (325992a4)
|
|
80
|
-
- entryMapper does not fire if the route path hasn't changed, we sometimes need the route entry remapped based on query params change for example, add return key to "onRouteLoad" event to ask the routing saga to not reuse the entry/mappedEntry from routing state and instead refetch and remap the route node if refetchNode is returned from the calling app as true (90f1fc7e)
|
|
81
|
-
|
|
82
|
-
##### Performance Improvements
|
|
83
|
-
|
|
84
|
-
- oidc-client appearing in consumer bundles despite the package being externalized in webpack. change to dynamic import and allow webpack splitChunksPlugin to handle the separation of this element and lazy loading (if it's ever called upon). webpackChunkName does not work at this time although the webpack hint comment has been left in should this work in future (13e3cb94)
|
|
85
|
-
|
|
86
|
-
##### Refactors
|
|
87
|
-
|
|
88
|
-
- call reduxInjector for static route separately (b4941837)
|
|
89
|
-
- implement new ./src/{lib} folder structure and remove inappropriate leftover folders (797c8bd1)
|
|
90
|
-
- delete webapp source and dependencies, update babel and eslint dependencies (40c320fb)
|
|
91
|
-
|
|
92
|
-
#### 2.3.0 (2021-08-06)
|
|
93
|
-
|
|
94
|
-
##### New Features
|
|
95
|
-
|
|
96
|
-
- add StaticRoute option "fetchNodeLevel" to be used with "fetchNode" to control how many url parts are sent to the siteview node api to resolve a route entry (f9e90ce0)
|
|
97
|
-
- new search package queryParams options "assetTypes" and "includeInSearch" (7cd86adb)
|
|
98
|
-
- scripts server start option. attributes option to add custom attributes to all rendered script tags. startup is now specified under new 'scripts' option (912625a9)
|
|
99
|
-
- add VersionInfo page as a named export of /util sub package, add globals from server startup options, keep this all server-side (9290561c)
|
|
100
|
-
- add new server start option "appRootPath", add support for any "startupScriptFilename" to be provided, added "resolveStartupMiddleware" to resolve requests for this static file to be served up from /dist/static/startup.js [skip ci](12d7f298)
|
|
101
|
-
- hostname in routing redux (17ed17f7)
|
|
102
|
-
|
|
103
|
-
##### Bug Fixes
|
|
104
|
-
|
|
105
|
-
- support new scripts.startup server config option (c53b96af)
|
|
106
|
-
- oidc-client import returning "UserMAnager is not a constructor" error when not importing the library version (b18b331f)
|
|
107
|
-
- build error around undefined global var (bdb0fc91)
|
|
108
|
-
- ensure in-app 404s hit the load balancer to allow load balancer take over and do any required rerouting (56dc8f12)
|
|
109
|
-
- add defaultLang to all api calls in routing saga (1fc57ba3)
|
|
110
|
-
|
|
111
|
-
##### Code Style Changes
|
|
112
|
-
|
|
113
|
-
- a new lick of paint for vscode (27c9a40d)
|
|
114
|
-
|
|
115
|
-
##### Tests
|
|
116
|
-
|
|
117
|
-
- add console.info when writing login cookies (de51a605)
|
|
118
|
-
|
|
119
|
-
##### Build System / Dependencies
|
|
120
|
-
|
|
121
|
-
- update search package to typescript branch (249ea515)
|
|
122
|
-
- remove /forms dir from global .npmignore (7bbb85e4)
|
|
123
|
-
- fix ci error due to out of date package-lock.json [skip ci](942b50a2)
|
|
124
|
-
- change release action to use github hosted runner (5a5d95c1)
|
|
125
|
-
- change local dev watch folders [skip ci](11d57430)
|
|
126
|
-
- change local dev watch folders [skip ci](2855d023)
|
|
127
|
-
- start script rollup watch [skip ci](615b4284)
|
|
128
|
-
- changes to scripts to work in monorepo scripts [skip ci](c294c27f)
|
|
129
|
-
- update package.json details (d287b258)
|
|
130
|
-
- remove pr from build ci [skip ci](2c8644d3)
|
|
131
|
-
- fix release script inputs [skip ci](b98804cf)
|
|
132
|
-
- fix syntax in release script [skip ci](42595aee)
|
|
133
|
-
- fix workflow syntax error, add master branch to build (c56c3d41)
|
|
134
|
-
- add new release action to be manually triggered, limit build and publish to branches (5c17ced5)
|
|
135
|
-
- fix issue with npm config (4112915c)
|
|
136
|
-
- fix problem with git actions (1031accd)
|
|
137
|
-
- move git interaction away from npm version scripts and into the action yml (c22665a1)
|
|
138
|
-
- don't tag ci prereleases (a5c55cb0)
|
|
139
|
-
- add git config to ci (871ed3c0)
|
|
140
|
-
- further testing ways of incrementing version and publishing prerelease package with actions (7c7b9f86)
|
|
141
|
-
- remove faulty test stage from preversion (91f3e248)
|
|
142
|
-
- add npm version to ci to increment a prerelease version and publish on each build (182a1a74)
|
|
143
|
-
- try fix cwebp compile from source in build (bfc61f6f)
|
|
144
|
-
- fix broken build with sudo (301f21fb)
|
|
145
|
-
- remove compiling from source error in npm ci (4d0196e1)
|
|
146
|
-
- suppress logging on npm ci build step (bde3cda0)
|
|
147
|
-
- update package name (4c1a43d6)
|
|
148
|
-
- update workflow action to use self-hosted runner (846b65bf)
|
|
149
|
-
- update search package to fix patch error in ci (caebac49)
|
|
150
|
-
- update package to remove missing patch error causing build to fail (0ffec891)
|
|
151
|
-
- add build github workflow action (a36f36a5)
|
|
152
|
-
- fix pull rate limit error (8efdf084)
|
|
153
|
-
- update search package to latest (a6447008)
|
|
154
|
-
|
|
155
|
-
##### Documentation Changes
|
|
156
|
-
|
|
157
|
-
- README update (#1) (8db8e8a1)
|
|
158
|
-
- tiny README update (54db40c5)
|
|
159
|
-
- update changelog (129081ca)
|
|
160
|
-
|
|
161
|
-
#### 2.2.3 (2021-05-10)
|
|
162
|
-
|
|
163
|
-
##### Bug Fixes
|
|
164
|
-
|
|
165
|
-
- entry object in routing saga not being passed to onRouteLoaded when doing field-limited entry search for a found siteview node (ce5d5df9)
|
|
166
|
-
- Empty currentNode value in routing when doing SSR (3a6cecd2)
|
|
167
|
-
- remove hostname from the ReturnURL querystring provided in the login redirect from classic web servers (e124ef11)
|
|
168
|
-
- issue around expired contensisClassicToken sending app on a redirect loop due to app reading refreshToken as valid but IIS requiring the contensisClassicToken / ContensisCMSUserName cookie which is not valid/not present, always write the latest client credentials to cookie when validating stored credentials (64cb6194)
|
|
169
|
-
|
|
170
|
-
##### Tests
|
|
171
|
-
|
|
172
|
-
- add new forms sub package (1393b479)
|
|
173
|
-
|
|
174
|
-
#### 2.2.2 (2021-04-08)
|
|
175
|
-
|
|
176
|
-
##### Documentation Changes
|
|
177
|
-
|
|
178
|
-
- update changelog (724f1727)
|
|
179
|
-
|
|
180
|
-
##### Bug Fixes
|
|
181
|
-
|
|
182
|
-
- change user props firstName, lastName to match new Management API format of camelcase (8433553b)
|
|
183
|
-
- Add contensis "ReturnURL" support to login redirects (b5c39814)
|
|
184
|
-
|
|
185
|
-
#### 2.2.1 (2021-04-06)
|
|
186
|
-
|
|
187
|
-
##### Documentation Changes
|
|
188
|
-
|
|
189
|
-
- update changelog (27eb6c35)
|
|
190
|
-
|
|
191
|
-
##### Bug Fixes
|
|
192
|
-
|
|
193
|
-
- issue in search package when using a customApi to retrieve search results (bf1cb0b7)
|
|
194
|
-
- issue with reading mappedEntry from the state not short circuiting to the fallback Immutable.Map() before calling .toJS() on a null value (36b62e55)
|
|
195
|
-
|
|
196
|
-
#### 2.2.0 (2021-04-01)
|
|
197
|
-
|
|
198
|
-
##### Build System / Dependencies
|
|
199
|
-
|
|
200
|
-
- disable warning (158a635d)
|
|
201
|
-
- add zenhub-dev as default .env (0308f34f)
|
|
202
|
-
- set zengenti-search-package to install from master branch (a90778fd)
|
|
203
|
-
- update contensis dependency packages (8a7e49f0)
|
|
204
|
-
- lib to ensure latest search package is installed (fec721ef)
|
|
205
|
-
|
|
206
|
-
##### Documentation Changes
|
|
207
|
-
|
|
208
|
-
- create changelog.md (859c4ae1)
|
|
209
|
-
|
|
210
|
-
##### New Features
|
|
211
|
-
|
|
212
|
-
- record and bubble up errors from the routing saga into the redux state, webApp middleware respects the context.status returned from the React StaticRouter and will render all status codes > 400 with the same rules as a plain 404 (b9f1dcc1)
|
|
213
|
-
|
|
214
|
-
##### Bug Fixes
|
|
215
|
-
|
|
216
|
-
- change user props userName, firstName, lastName to match new Management API format of all lowercase (8dbe7c3d)
|
|
217
|
-
- alter cache duration for 404 response to 5s down from 500s (f14a60a8)
|
|
218
|
-
- bug introduced with last fix causing dynamic=true to throw a server side error and return an error page (e81470df)
|
|
219
|
-
- Commit updated search bundles (cfa6b0ac)
|
|
220
|
-
- LoginHelper class - Loop through ApplicationData to find refresh token rather than assuming it's always at the same index (ade9ac53)
|
|
221
|
-
|
|
222
|
-
##### Other Changes
|
|
223
|
-
|
|
224
|
-
- track the current statusCode by setting it in the response object when it changes instead of primitive var (42dfd243)
|
|
225
|
-
|
|
226
|
-
#### 2.1.1
|
|
227
|
-
|
|
228
|
-
##### Bug Fixes
|
|
229
|
-
|
|
230
|
-
- issue with manipulated bundles from static not having cache headers on their response (9e59ca8d)
|
|
231
|
-
- prevent using relative paths to locate assets in a consumer project (d8cbe564)
|
|
232
|
-
|
|
233
|
-
##### Performance Improvements
|
|
234
|
-
|
|
235
|
-
- smaller bundles for release (db0a917f)
|
|
236
|
-
|
|
237
|
-
#### 2.1.0
|
|
238
|
-
|
|
239
|
-
##### Chores
|
|
240
|
-
|
|
241
|
-
##### New Features
|
|
242
|
-
|
|
243
|
-
- export redux store object in /redux subpackage (82db686e)
|
|
244
|
-
- new server startup options staticRoutePath and staticRoutePaths[] so an array of static route paths can be defined to serve up static assets from staticFolderPath. STATIC_PATH and STATIC_ROUTE_PATH are recommended in .env file can be used exclusively or together (df990169)
|
|
245
|
-
- adds new server start option to allow custom folder path and filename for static/startup.js (2c9ad565)
|
|
246
|
-
- support for a new server startup option of "staticFolderPath" this is not required initially as everything should default to 'static' path (b4356e17)
|
|
247
|
-
- use react-helmet to generate the html tag server side if htmlAttributes are specified in the consuming app (ad466706)
|
|
248
|
-
- introduced html attributes - If the app uses react-helmet html attributes they will now work server side. (ef7b89a3)
|
|
249
|
-
- add UPDATE_LOADING_STATE action to reset isLoading state when app has entry (79377ab0)
|
|
250
|
-
- add language control to routing preview and add defaultLang var (b7dbac18)
|
|
251
|
-
|
|
252
|
-
##### Bug Fixes
|
|
253
|
-
|
|
254
|
-
- add node.entry.language to the routing query (5247fb75)
|
|
255
|
-
- linkDepth in ContentTypeMappings not taking effect (f78c8507)
|
|
256
|
-
- issue with SSR not hydrating properly/flash alternative way of handling immer features (3b193fb2)
|
|
257
|
-
- set default folder path when serving static assets (cb9b2aef)
|
|
258
|
-
- variable access issue (a61bd07e)
|
|
259
|
-
- update search package to latest containing fixes and other tweaks (e8703763)
|
|
260
|
-
- removed unused comment (1401dbdd)
|
|
261
|
-
- multilingual entries not getting mapped when visiting the same entry but after switching language (ebcea379)
|
|
262
|
-
- removed some non-illegal characters from fixFreeTextForElastic func in search package (eeb2fe94)
|
|
263
|
-
- issue with mappedEntry not being written to the redux state in v2 only due to iffy Object.keys check (24fd300c)
|
|
264
|
-
- remove uneeded toJs (975a17b5)
|
|
265
|
-
- remove module-alias package reference causing server start to fail in release package (7261b155)
|
|
266
|
-
|
|
267
|
-
##### Other Changes
|
|
268
|
-
|
|
269
|
-
- add support for a nodeOptions object supplied with a ContentTypeMapping to specify details for fetching children for a route entry's contentTypeId (87a1302d)
|
|
270
|
-
- You have reached your pull rate limit. (4a2e76b7)
|
|
271
|
-
- attempt to nest immer reducers under one key (809e49be)
|
|
272
|
-
- testImmer bit more of an example (c4cab4d5)
|
|
273
|
-
- emulated sometimes using fromJS sometimes fromJSOrdered in the fromJSLeaveImmer (d54530bb)
|
|
274
|
-
- examples/doc to show how to use immer reducers and selectors (92712b0b)
|
|
275
|
-
- immer functionality/testing (8ce191d7)
|
|
276
|
-
- immer redux features (e16dfa3f)
|
|
277
|
-
- opportunity to reduce some of the excess code and add additional comments to webApp.js, remove redundant patch (0b7e0269)
|
|
278
|
-
- remove feature to automatically exclude the current route entry id in any minilist search, instead expect the consumer to provide the current route entry id in the options if they require the current page to be excluded from minilist results (98282648)
|
|
279
|
-
|
|
280
|
-
##### Performance Improvements
|
|
281
|
-
|
|
282
|
-
- changing the way we import login code and contensis-management-api package, to give consumer projects the potential to externalise this library from their vendor.js bundle if the login features are not required (055e4d43)
|
|
283
|
-
- remove unused packages, remove old webpack build script, update jsonpath-mapper to latest version (22323612)
|
|
284
|
-
|
|
285
|
-
##### Refactors
|
|
286
|
-
|
|
287
|
-
- remve superfluos header with Neil’s guidance (918d2e22)
|
|
288
|
-
|
|
289
|
-
#### 2.0.1
|
|
290
|
-
|
|
291
|
-
##### Bug Fixes
|
|
292
|
-
|
|
293
|
-
- issue in release package casuing prod server to fail to start, remove previous fix for @lse/component-library package (cbf61d96)
|
package/cjs/App-0c10c9fa.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"App-0c10c9fa.js","sources":["../src/util/ContensisDeliveryApi.js","../src/redux/store/history.js","../src/redux/sagas/navigation.js","../src/util/schema.ts","../src/routing/util/expressions.ts","../src/routing/util/queries.ts","../src/routing/redux/sagas.js","../src/user/redux/sagas/register.js","../src/user/util/userHelper.js","../src/user/redux/sagas/resetPassword.js","../src/user/redux/sagas/index.js","../src/redux/sagas/index.js","../src/util/pickProject.js","../src/app/App.tsx"],"sourcesContent":["import { Client } from 'contensis-delivery-api';\nimport { setSurrogateKeys } from '../routing/redux/actions';\nimport { reduxStore } from '~/redux/store/store';\n\nconst storeSurrogateKeys = response => {\n const keys = response.headers.get\n ? response.headers.get('surrogate-key')\n : response.headers.map['surrogate-key'];\n if (keys) reduxStore?.dispatch(setSurrogateKeys(keys, response.url));\n};\n\nconst getClientConfig = project => {\n let config = DELIVERY_API_CONFIG; /* global DELIVERY_API_CONFIG */\n config.responseHandler = {};\n\n if (project) {\n config.projectId = project;\n }\n\n // we only want the surrogate key header in a server context\n if (typeof window === 'undefined') {\n config.defaultHeaders = {\n 'x-require-surrogate-key': true,\n };\n config.responseHandler[200] = storeSurrogateKeys;\n }\n\n if (\n typeof window !== 'undefined' &&\n PROXY_DELIVERY_API /* global PROXY_DELIVERY_API */\n ) {\n // ensure a relative url is used to bypass the need for CORS (separate OPTIONS calls)\n config.rootUrl = '';\n config.responseHandler[404] = () => null;\n }\n return config;\n};\n\nexport * from 'contensis-delivery-api';\n\nclass DeliveryApi {\n getClientSideVersionStatus = () => {\n if (typeof window != 'undefined') {\n const currentHostname = window.location.hostname;\n return this.getVersionStatusFromHostname(currentHostname);\n }\n return null;\n };\n getVersionStatusFromHostname = currentHostname => {\n if (currentHostname.indexOf('localhost') > -1) return 'latest';\n\n if (currentHostname.endsWith('contensis.cloud')) {\n if (currentHostname.indexOf('preview.') > -1) {\n return 'latest';\n } else {\n return 'published';\n }\n }\n\n if (currentHostname.endsWith('cloud.contensis.com')) {\n if (currentHostname.indexOf('preview-') > -1) {\n return 'latest';\n } else {\n return 'published';\n }\n }\n\n return 'published';\n };\n search = (query, linkDepth, project, env) => {\n const client = Client.create(getClientConfig(project, env));\n return client.entries.search(\n query,\n typeof linkDepth !== 'undefined' ? linkDepth : 1\n );\n };\n getClient = (deliveryApiStatus = 'published', project, env) => {\n const baseConfig = getClientConfig(project, env);\n baseConfig.versionStatus = deliveryApiStatus;\n return Client.create(baseConfig);\n };\n getEntry = (\n id,\n linkDepth = 0,\n deliveryApiStatus = 'published',\n project,\n env\n ) => {\n const baseConfig = getClientConfig(project, env);\n baseConfig.versionStatus = deliveryApiStatus;\n const client = Client.create(baseConfig);\n // return client.entries.get(id, linkDepth);\n return client.entries.get({ id, linkDepth });\n };\n}\n\nexport const deliveryApi = new DeliveryApi();\n\nclass CacheNode {\n constructor(key, value) {\n this.key = key;\n this.value = value;\n this.next = null;\n this.prev = null;\n }\n}\n\nclass LruCache {\n constructor(limit = 100) {\n this.map = {};\n this.head = null;\n this.tail = null;\n this.limit = limit || 100;\n this.size = 0;\n }\n\n get(key) {\n if (this.map[key]) {\n let value = this.map[key].value;\n let node = new CacheNode(key, value);\n this.remove(key);\n this.setHead(node);\n return value;\n }\n }\n\n set(key, value) {\n let node = new CacheNode(key, value);\n if (this.map[key]) {\n this.remove(key);\n } else {\n if (this.size >= this.limit) {\n delete this.map[this.tail.key];\n this.size--;\n this.tail = this.tail.prev;\n this.tail.next = null;\n }\n }\n this.setHead(node);\n }\n\n setHead(node) {\n node.next = this.head;\n node.prev = null;\n if (this.head) {\n this.head.prev = node;\n }\n this.head = node;\n if (!this.tail) {\n this.tail = node;\n }\n this.size++;\n this.map[node.key] = node;\n }\n\n remove(key) {\n let node = this.map[key];\n if (node.prev) {\n node.prev.next = node.next;\n } else {\n this.head = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n } else {\n this.tail = node.prev;\n }\n delete this.map[key];\n this.size--;\n }\n}\n\nclass CachedSearch {\n cache = new LruCache();\n taxonomyLookup = {};\n\n search(query, linkDepth, project, env) {\n const client = Client.create(getClientConfig(project, env));\n return this.request(\n project + JSON.stringify(query) + linkDepth.toString(),\n () => client.entries.search(query, linkDepth)\n );\n }\n\n searchUsingPost(query, linkDepth = 0, project = '', env) {\n const client = Client.create(getClientConfig(project, env));\n return this.request(\n project + JSON.stringify(query) + linkDepth.toString(),\n () => client.entries.searchUsingPost(query, linkDepth)\n );\n }\n\n get(id, linkDepth, versionStatus, project, env) {\n const client = Client.create(getClientConfig(project, env));\n client.clientConfig.versionStatus = versionStatus;\n return this.request(id, () => client.entries.get({ id, linkDepth }));\n }\n\n getContentType(id, project, env) {\n const client = Client.create(getClientConfig(project, env));\n return this.request(`[CONTENT TYPE] ${id} ${project}`, () =>\n client.contentTypes.get(id)\n );\n }\n\n getTaxonomyNode(key, project, env) {\n const client = Client.create(getClientConfig(project, env));\n return this.request(`[TAXONOMY NODE] ${key}`, () =>\n client.taxonomy\n .resolveChildren(key)\n .then(node => this.extendTaxonomyNode(node))\n );\n }\n\n getRootNode(options, project, env) {\n const client = Client.create(getClientConfig(project, env));\n return this.request(`${project} / ${JSON.stringify(options)}`, () =>\n client.nodes.getRoot(options)\n );\n }\n\n getNode(options, project, env) {\n const client = Client.create(getClientConfig(project, env));\n return this.request(\n `${project} ${(options && options.path) || options} ${JSON.stringify(\n options\n )}`,\n () => client.nodes.get(options)\n );\n }\n\n getAncestors(options, project, env) {\n const client = Client.create(getClientConfig(project, env));\n return this.request(\n `${project} [A] ${(options && options.id) || options} ${JSON.stringify(\n options\n )}`,\n () => client.nodes.getAncestors(options)\n );\n }\n\n getChildren(options, project, env) {\n const client = Client.create(getClientConfig(project, env));\n return this.request(\n `${project} [C] ${(options && options.id) || options} ${JSON.stringify(\n options\n )}`,\n () => client.nodes.getChildren(options)\n );\n }\n\n getSiblings(options, project, env) {\n const client = Client.create(getClientConfig(project, env));\n return this.request(\n `${project} [S] ${(options && options.id) || options} ${JSON.stringify(\n options\n )}`,\n () => client.nodes.getSiblings(options)\n );\n }\n\n request(key, execute) {\n if (!this.cache.get(key) || typeof window == 'undefined') {\n let promise = execute();\n this.cache.set(key, promise);\n promise.catch(() => {\n this.cache.remove(key);\n });\n }\n return this.cache.get(key);\n }\n}\n\nexport const cachedSearch = new CachedSearch();\n","import { createBrowserHistory, createMemoryHistory } from 'history';\n\n// Create a history depending on the environment\nconst selectedHistory =\n typeof window !== 'undefined' ? createBrowserHistory : createMemoryHistory;\n\nexport const history = (options = {}) => selectedHistory(options);\nexport const browserHistory = selectedHistory();\n","import { takeEvery, put, select } from 'redux-saga/effects';\nimport * as log from 'loglevel';\n\nimport { deliveryApi } from '~/util/ContensisDeliveryApi';\nimport {\n GET_NODE_TREE,\n SET_NODE_TREE,\n GET_NODE_TREE_ERROR,\n} from '~/redux/types/navigation';\nimport { hasNavigationTree } from '~/redux/selectors/navigation';\nimport { selectVersionStatus } from '~/redux/selectors/version';\nimport { selectCurrentProject } from '~/routing/redux/selectors';\n\nexport const navigationSagas = [takeEvery(GET_NODE_TREE, ensureNodeTreeSaga)];\n\nexport function* ensureNodeTreeSaga(action) {\n const state = yield select();\n try {\n if (!hasNavigationTree(state)) {\n const deliveryApiVersionStatus = yield select(selectVersionStatus);\n const project = yield select(selectCurrentProject);\n const nodes = yield deliveryApi\n .getClient(deliveryApiVersionStatus, project)\n .nodes.getRoot({\n depth: action.treeDepth || 0,\n });\n if (nodes) {\n yield put({ type: SET_NODE_TREE, nodes });\n } else {\n yield put({ type: GET_NODE_TREE_ERROR });\n }\n }\n } catch (ex) {\n log.error(...['Error running ensureNodeTreeSaga:', ex]);\n yield put({ type: GET_NODE_TREE_ERROR, error: ex.toString() });\n }\n}\n","export const DataFormats = {\n entry: 'entry',\n webpage: 'webpage',\n};\n\nconst sys = {\n contentTypeId: 'sys.contentTypeId',\n dataFormat: 'sys.dataFormat',\n filename: 'sys.properties.filename',\n id: 'sys.id',\n includeInSearch: 'sys.metadata.includeInSearch',\n slug: 'sys.slug',\n uri: 'sys.uri',\n versionStatus: 'sys.versionStatus',\n};\n\nexport const Fields = {\n entryTitle: 'entryTitle',\n entryDescription: 'entryDescription',\n keywords: 'keywords',\n sys,\n contentTypeId: 'sys.contentTypeId',\n wildcard: '*',\n};\n\nexport const VersionStatus = {\n published: 'published',\n latest: 'latest',\n};\n","import { IExpression } from 'contensis-core-api';\nimport { Op } from 'contensis-delivery-api';\nimport { Fields } from '~/util/schema';\n\nexport const fieldExpression = (\n field: string,\n value: string | string[],\n operator = 'equalTo',\n weight = null\n) => {\n if (!field || !value) return [];\n if (Array.isArray(value)) return equalToOrIn(field, value, operator);\n else\n return !weight\n ? [Op[operator](field, value)]\n : [Op[operator](field, value).weight(weight)];\n};\n\nexport const defaultExpressions = (\n versionStatus: 'published' | 'latest'\n): IExpression[] => {\n return [Op.equalTo(Fields.sys.versionStatus, versionStatus)];\n};\n\nconst equalToOrIn = (field: string, arr: string[], operator = 'equalTo') =>\n arr.length === 0\n ? []\n : arr.length === 1\n ? [Op[operator](field, arr[0])]\n : [Op.in(field, ...arr)];\n","import { Query } from '~/util/ContensisDeliveryApi';\nimport { fieldExpression, defaultExpressions } from './expressions';\n\nexport const routeEntryByFieldsQuery = (\n id: string,\n language = 'en-GB',\n fields: string[] = [],\n versionStatus: 'published' | 'latest' = 'published'\n) => {\n const query = new Query(\n ...[\n ...fieldExpression('sys.id', id),\n ...fieldExpression('sys.language', language),\n ...defaultExpressions(versionStatus),\n ]\n );\n query.fields = fields;\n return query;\n};\n","import * as log from 'loglevel';\nimport { takeEvery, put, select, call, all } from 'redux-saga/effects';\n\nimport {\n SET_ENTRY,\n SET_ANCESTORS,\n SET_NAVIGATION_PATH,\n SET_ROUTE,\n SET_SIBLINGS,\n UPDATE_LOADING_STATE,\n} from './types';\nimport { GET_NODE_TREE } from '~/redux/types/navigation';\nimport {\n selectCurrentAncestors,\n selectCurrentNode,\n selectCurrentProject,\n selectCurrentSiblings,\n selectMappedEntry,\n selectRouteEntry,\n selectRouteEntryEntryId,\n selectRouteEntryLanguage,\n} from './selectors';\nimport { hasNavigationTree } from '~/redux/selectors/navigation';\nimport { selectVersionStatus } from '~/redux/selectors/version';\nimport { ensureNodeTreeSaga } from '~/redux/sagas/navigation';\nimport { handleRequiresLoginSaga } from '~/user/redux/sagas/login';\n\nimport { findContentTypeMapping } from '../util/find-contenttype-mapping';\nimport { routeEntryByFieldsQuery } from '../util/queries';\nimport { cachedSearch, deliveryApi } from '~/util/ContensisDeliveryApi';\nimport { injectRedux as reduxInjector } from '~/redux/store/injectors';\n\nexport const routingSagas = [\n takeEvery(SET_NAVIGATION_PATH, getRouteSaga),\n takeEvery(SET_ROUTE, setRouteSaga),\n];\n\n/**\n * To navigate / push a specific route via redux middleware\n * @param {path, state} action\n */\nfunction* setRouteSaga(action) {\n yield put({\n type: 'CALL_HISTORY_METHOD',\n payload: {\n method: 'push',\n args: [action.path, action.state],\n },\n });\n}\n\nfunction* getRouteSaga(action) {\n let entry = null;\n try {\n const {\n withEvents,\n routes: { ContentTypeMappings = {} } = {},\n staticRoute,\n } = action;\n\n // Inject redux { key, reducer, saga } provided by staticRoute\n if (staticRoute && staticRoute.route.injectRedux)\n yield call(reduxInjectorSaga, staticRoute.route.injectRedux);\n\n // Variables we will pass to setRouteEntry\n let pathNode = null,\n ancestors = null,\n children = [],\n siblings = null;\n\n let contentTypeMapping = {};\n\n // These variables are the return values from\n // calls to withEvents.onRouteLoad and onRouteLoaded\n let appsays,\n requireLogin = false;\n\n if (withEvents && withEvents.onRouteLoad) {\n appsays = yield withEvents.onRouteLoad(action);\n }\n\n const entryLinkDepth =\n appsays && appsays.entryLinkDepth !== undefined\n ? appsays.entryLinkDepth\n : 2;\n const setContentTypeLimits = !!ContentTypeMappings.find(\n ct => ct.fields || ct.linkDepth || ct.nodeOptions\n );\n\n const state = yield select();\n const routeEntry = selectRouteEntry(state, 'js');\n const routeNode = selectCurrentNode(state, 'js');\n const currentPath = action.path; //selectCurrentPath(state);\n const deliveryApiStatus = selectVersionStatus(state);\n const project = selectCurrentProject(state);\n // const isHome = currentPath === '/';\n const isPreview = currentPath && currentPath.startsWith('/preview/');\n const defaultLang = (appsays && appsays.defaultLang) || 'en-GB';\n\n if (\n !isPreview &&\n ((appsays && appsays.customRouting) ||\n (staticRoute && !staticRoute.route.fetchNode) ||\n (routeEntry &&\n action.statePath === action.path &&\n (appsays && appsays.refetchNode) !== true))\n ) {\n // To prevent erroneous 404s and wasted network calls, this covers\n // - appsays customRouting and does SET_ENTRY etc. via the consuming app\n // - all staticRoutes (where custom 'route.fetchNode' attribute is falsey)\n // - standard Contensis SiteView Routing where we already have that entry in state\n if (\n routeEntry &&\n (!staticRoute || (staticRoute.route && staticRoute.route.fetchNode))\n ) {\n pathNode = { ...routeNode, entry: null };\n pathNode.entry = entry = routeEntry;\n //Do nothing, the entry is allready the right one.\n // yield put({\n // type: SET_ENTRY,\n // entry,\n // node: routeNode,\n // isLoading: false,\n // });\n yield put({\n type: UPDATE_LOADING_STATE,\n isLoading: false,\n });\n } else\n yield call(\n setRouteEntry,\n routeEntry,\n yield select(selectCurrentNode),\n yield select(selectCurrentAncestors),\n yield select(selectCurrentSiblings)\n );\n } else {\n // Handle preview routes\n if (isPreview) {\n let splitPath = currentPath.split('/');\n let entryGuid = splitPath[2];\n let language = defaultLang;\n if (splitPath.length >= 3) {\n //set lang key if available in the path, else use default lang\n //assumes preview url on content type is: http://preview.ALIAS.contensis.cloud/preview/{GUID}/{LANG}\n if (splitPath.length == 4) language = splitPath[3];\n // According to product dev we cannot use Node API\n // for previewing entries as it gives a response of []\n // -- apparently it is not correct to request latest content\n // with Node API\n\n let previewEntry = yield deliveryApi\n .getClient(deliveryApiStatus, project)\n .entries.get({\n id: entryGuid,\n language,\n linkDepth: entryLinkDepth,\n });\n if (previewEntry) {\n pathNode = { entry: previewEntry };\n ({ entry } = pathNode || {});\n }\n }\n } else {\n // Handle all other routes\n pathNode = yield cachedSearch.getNode(\n {\n depth: 0,\n path: currentPath,\n entryFields: setContentTypeLimits\n ? ['sys.contentTypeId', 'sys.id']\n : '*',\n entryLinkDepth: setContentTypeLimits ? 0 : entryLinkDepth,\n language: defaultLang,\n versionStatus: deliveryApiStatus,\n },\n project\n );\n ({ entry } = pathNode || {});\n\n if (setContentTypeLimits && pathNode?.entry?.sys?.id) {\n // Get fields[] and linkDepth from ContentTypeMapping to get the entry data\n // and current node's ordinates at a specified depth with specified fields\n contentTypeMapping =\n findContentTypeMapping(\n ContentTypeMappings,\n pathNode.entry.sys.contentTypeId\n ) || {};\n const { fields, linkDepth } = contentTypeMapping;\n const query = routeEntryByFieldsQuery(\n pathNode.entry.sys.id,\n pathNode.entry.sys.language,\n fields,\n deliveryApiStatus\n );\n const payload = yield cachedSearch.search(\n query,\n typeof linkDepth !== 'undefined' ? linkDepth : entryLinkDepth || 0,\n project\n );\n if (payload?.items?.length > 0) {\n pathNode.entry = entry = payload.items[0];\n }\n }\n }\n\n // make calls to fetch node ancestors, children,\n // siblings or entire node tree\n [ancestors, children, siblings] = yield call(\n resolveCurrentNodeOrdinates,\n {\n appsays,\n contentTypeMapping,\n language: defaultLang,\n path: currentPath,\n pathNode,\n project,\n versionStatus: deliveryApiStatus,\n }\n );\n\n if (children) pathNode.children = children;\n }\n\n const { entryMapper, injectRedux } =\n findContentTypeMapping(\n ContentTypeMappings,\n pathNode?.entry?.sys?.contentTypeId\n ) || {};\n\n // Inject redux { key, reducer, saga } provided by ContentTypeMapping\n if (injectRedux) yield call(reduxInjectorSaga, injectRedux);\n\n if (withEvents && withEvents.onRouteLoaded) {\n // Check if the app has provided a requireLogin boolean flag or groups array\n // in addition to checking if requireLogin is set in the route definition\n ({ requireLogin } =\n (yield withEvents.onRouteLoaded({ ...action, entry })) || {});\n }\n\n if (requireLogin !== false) {\n // Do not call the login feature saga if requireLogin is false\n yield call(handleRequiresLoginSaga, {\n ...action,\n entry,\n requireLogin,\n });\n }\n\n if (!appsays || !appsays.preventScrollTop) {\n // Scroll into View\n if (typeof window !== 'undefined') {\n window.scroll({\n top: 0,\n });\n }\n }\n\n if (pathNode?.entry?.sys?.id) {\n entry = pathNode.entry;\n\n yield call(\n setRouteEntry,\n entry,\n pathNode,\n ancestors,\n siblings,\n entryMapper,\n false,\n appsays?.refetchNode\n );\n } else {\n if (staticRoute)\n yield call(setRouteEntry, null, pathNode, ancestors, siblings);\n else yield call(do404);\n }\n } catch (e) {\n log.error(...['Error running route saga:', e, e.stack]);\n yield call(do500, e);\n }\n}\n\nfunction* resolveCurrentNodeOrdinates({\n appsays,\n contentTypeMapping,\n language,\n path,\n pathNode,\n project,\n versionStatus,\n}) {\n const apiCall = [() => null, () => null, () => null, () => null];\n\n // if appsays customNavigation: true, we will set doNavigation to false\n // if appsays customNavigation: { ... }, we will set doNavigation to the customNavigation object and check for child elements\n // if appsays nothing we will set doNavigation to true and continue to do navigation calls\n const doNavigation =\n !appsays ||\n (appsays?.customNavigation === true\n ? false\n : appsays?.customNavigation || true);\n\n const {\n entryLinkDepth = 0,\n fields,\n linkDepth,\n nodeOptions = {},\n } = contentTypeMapping;\n\n if (pathNode && pathNode.id) {\n if (doNavigation === true || doNavigation.ancestors) {\n apiCall[0] = function* getAncestors() {\n try {\n return yield cachedSearch.getAncestors(\n {\n id: pathNode.id,\n language,\n versionStatus,\n },\n project\n );\n } catch (ex) {\n log.info('Problem fetching ancestors', ex);\n return [];\n }\n };\n }\n\n const childrenDepth =\n doNavigation === true || doNavigation.children === true\n ? 1\n : (doNavigation && doNavigation.children) || 0;\n\n if (\n (typeof nodeOptions?.children === 'undefined' && childrenDepth > 0) ||\n nodeOptions.children\n ) {\n const childrenOptions =\n typeof nodeOptions.children === 'boolean' ? {} : nodeOptions.children;\n apiCall[1] = function* getChildren() {\n try {\n return yield cachedSearch.getNode(\n {\n depth:\n childrenOptions.depth !== undefined\n ? childrenOptions.depth\n : childrenDepth,\n path,\n entryFields: childrenOptions.fields || fields || undefined,\n entryLinkDepth:\n typeof childrenOptions.linkDepth !== 'undefined'\n ? childrenOptions.linkDepth\n : typeof linkDepth !== 'undefined'\n ? linkDepth\n : entryLinkDepth,\n language,\n versionStatus,\n },\n project\n );\n } catch (ex) {\n log.info('Problem fetching children', ex);\n return [];\n }\n };\n }\n\n if (\n (typeof nodeOptions?.siblings === 'undefined' && doNavigation.siblings) ||\n nodeOptions.siblings\n ) {\n apiCall[2] = function* getSiblings() {\n try {\n return yield cachedSearch.getSiblings(\n {\n id: pathNode.id,\n entryFields: nodeOptions?.siblings?.fields || fields || undefined,\n entryLinkDepth:\n typeof nodeOptions?.siblings?.linkDepth !== 'undefined'\n ? nodeOptions.siblings.linkDepth\n : typeof linkDepth !== 'undefined'\n ? linkDepth\n : entryLinkDepth,\n includeInMenu: true,\n language,\n versionStatus,\n },\n project\n );\n } catch (ex) {\n log.info('Problem fetching siblings', ex);\n return [];\n }\n };\n }\n }\n\n const isTreeLoaded = yield select(hasNavigationTree);\n if (!isTreeLoaded && (doNavigation === true || doNavigation.tree))\n apiCall[3] = function* getNodeTree() {\n const treeDepth =\n doNavigation === true ||\n !doNavigation.tree ||\n doNavigation.tree === true\n ? 2\n : doNavigation.tree;\n\n if (typeof window !== 'undefined') {\n return yield put({\n type: GET_NODE_TREE,\n treeDepth,\n });\n } else {\n return yield call(ensureNodeTreeSaga, {\n treeDepth,\n });\n }\n };\n\n const [loadAncestors, loadChildren, loadSiblings, loadTree] = apiCall;\n const [ancestors, nodeWithChildren, siblings] = yield all([\n loadAncestors(),\n loadChildren(),\n loadSiblings(),\n loadTree(),\n ]);\n return [ancestors, nodeWithChildren?.children, siblings];\n}\n\nfunction* setRouteEntry(\n entry,\n node,\n ancestors,\n siblings,\n entryMapper,\n notFound = false,\n remapEntry = false\n) {\n const entrySys = (entry && entry.sys) || {};\n\n const currentEntryId = yield select(selectRouteEntryEntryId);\n const currentEntryLang = yield select(selectRouteEntryLanguage);\n const mappedEntry =\n currentEntryId === entrySys.id &&\n currentEntryLang === entrySys.language &&\n remapEntry === false\n ? (yield select(selectMappedEntry, 'js')) || {}\n : yield mapRouteEntry(entryMapper, {\n ...node,\n entry,\n ancestors,\n siblings,\n });\n\n yield all([\n put({\n type: SET_ENTRY,\n id: entrySys.id,\n entry,\n mappedEntry,\n node,\n notFound,\n }),\n ancestors &&\n put({\n type: SET_ANCESTORS,\n ancestors,\n }),\n siblings &&\n put({\n type: SET_SIBLINGS,\n siblings,\n }),\n ]);\n}\n\nfunction* mapRouteEntry(entryMapper, node) {\n try {\n if (typeof entryMapper === 'function') {\n const state = yield select();\n const mappedEntry = yield call(entryMapper, node, state);\n return mappedEntry;\n }\n } catch (e) {\n log.error(...['Error running entryMapper:', e, e.stack]);\n }\n return;\n}\n\nfunction* do404() {\n yield call(clientReloadHitServer);\n yield put({\n type: SET_ENTRY,\n id: null,\n entry: null,\n notFound: true,\n });\n}\n\nfunction* clientReloadHitServer() {\n const stateEntry = yield select(selectRouteEntry);\n\n // If in client and there is a stateEntry.sys field reload the page,\n // on the 2nd load stateEntry.sys should be null at this point,\n // we do not wish to reload again and get stuck in an infinite reloading loop\n if (typeof window !== 'undefined' && (stateEntry?.sys || null)) {\n window.location.reload();\n }\n}\n\nfunction* do500(error) {\n yield put({\n type: SET_ENTRY,\n id: null,\n entry: null,\n notFound: true,\n isError: true,\n error,\n statusCode: error && error.status ? error.status : 500,\n });\n}\n\nfunction* reduxInjectorSaga(injectorFn) {\n if (typeof injectorFn === 'function') {\n const { key, reducer, saga } = yield injectorFn();\n reduxInjector({ key, reducer, saga });\n }\n}\n","import { to } from 'await-to-js';\nimport { put, select, takeEvery } from 'redux-saga/effects';\nimport { setRoute } from '~/routing/redux/actions';\nimport { selectCurrentSearch } from '~/routing/redux/selectors';\nimport { queryParams } from '~/util/navigation';\nimport {\n REGISTER_USER,\n REGISTER_USER_SUCCESS,\n REGISTER_USER_FAILED,\n} from '../types';\n\nexport const registerSagas = [\n takeEvery(REGISTER_USER, registerSaga),\n takeEvery(REGISTER_USER_SUCCESS, redirectSaga),\n];\n\nfunction* registerSaga({ user, mappers }) {\n let requestBody = user;\n // Allow use of request mapper to take a user object\n // of any format and return the payload for the api request\n if (mappers && mappers.request && typeof mappers.request === 'function') {\n requestBody = yield mappers.request(user);\n }\n\n // Make POST call to register API\n const response = yield fetch('/account/register', {\n method: 'POST',\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n },\n body: JSON.stringify(requestBody),\n });\n\n if (response.ok) {\n let mappedResponse;\n const [, responseBody] = yield to(response.json());\n if (responseBody) {\n // Allow use of response mapper to convert the successful user object\n // from the api response body into a user object of any format\n if (\n mappers &&\n mappers.response &&\n typeof mappers.response === 'function'\n ) {\n mappedResponse = yield mappers.response(responseBody);\n }\n // Update user object with mappedResponse or responseBody\n yield put({\n type: REGISTER_USER_SUCCESS,\n user: mappedResponse || responseBody,\n });\n } else {\n // OK response but unable to parse the response body\n yield put({\n type: REGISTER_USER_FAILED,\n error: {\n message:\n 'Unable to parse the created user from the register service response',\n },\n });\n }\n } else {\n // Not OK responses, these can be due to service availability\n // or status codes echoed from the responses received from\n // management api when registering the user\n const [, errorResponse] = yield to(response.json());\n const error = (errorResponse && errorResponse.error) || errorResponse || {};\n // Get something meaningful from the response if there is no message in the body\n if (!error.message) {\n error.message = `Registration service: ${response.statusText}`;\n error.status = response.status;\n }\n yield put({\n type: REGISTER_USER_FAILED,\n error,\n });\n }\n}\n\nfunction* redirectSaga() {\n // Check if querystring contains a redirect_uri\n const currentQs = queryParams(yield select(selectCurrentSearch));\n const redirectUri = currentQs.redirect_uri || currentQs.redirect;\n\n // We must use redux based navigation to preserve the registration state\n if (redirectUri) yield put(setRoute(redirectUri));\n}\n","const PAP_URL = 'https://pap.zengenti.com';\n\nconst USER_ENVS_URI = 'my-environments';\nconst USER_RESEND_VERIFICATION_URI = 'account/verify/resend';\nconst USER_REQUEST_PASSWORD_RESET_URI = 'account/reset';\nconst USER_RESET_PASSWORD_URI = 'account/reset/password';\n\nconst USER_ENVS_URL = `${PAP_URL}/${USER_ENVS_URI}`;\n\nconst BASE_OPTIONS = {\n method: 'GET',\n headers: { 'Content-Type': 'application/json' },\n};\n\nexport class UserHelper {\n static async GetUsersEnvironments(securityToken) {\n const options = {\n ...BASE_OPTIONS,\n headers: {\n 'x-security-token': securityToken,\n },\n };\n return await UserHelper.get(USER_ENVS_URL, options);\n }\n static async ResendUserVerification(userEmail) {\n const options = {\n ...BASE_OPTIONS,\n };\n return await UserHelper.get(\n `/${USER_RESEND_VERIFICATION_URI}?user=${userEmail}`,\n options\n );\n }\n static async RequestPasswordReset(userEmailObject) {\n const options = {\n ...BASE_OPTIONS,\n body: JSON.stringify(userEmailObject),\n };\n options.method = 'POST';\n\n return await UserHelper.get(`/${USER_REQUEST_PASSWORD_RESET_URI}`, options);\n }\n static async ResetPassword(resetPasswordObject) {\n const options = {\n ...BASE_OPTIONS,\n body: JSON.stringify(resetPasswordObject),\n };\n options.method = 'POST';\n\n return await UserHelper.get(`/${USER_RESET_PASSWORD_URI}`, options);\n }\n\n static async get(url, options = BASE_OPTIONS) {\n try {\n const responseBody = await api(url, options);\n return responseBody;\n } catch (err) {\n return { error: { message: err.message } };\n }\n }\n}\n\nasync function api(url, options) {\n return fetch(url, options)\n .then(async response => {\n return response.json().then(data => data);\n })\n .catch(error => {\n throw error;\n });\n}\n","import { put, takeEvery, select } from 'redux-saga/effects';\nimport { to } from 'await-to-js';\nimport { getManagementApiClient } from '~/user/util/ContensisManagementApi';\nimport { UserHelper } from '~/user/util/userHelper';\nimport { selectClientCredentials } from '../selectors';\nimport {\n REQUEST_USER_PASSWORD_RESET,\n RESET_USER_PASSWORD,\n REQUEST_USER_PASSWORD_RESET_ERROR,\n REQUEST_USER_PASSWORD_RESET_SENDING,\n REQUEST_USER_PASSWORD_RESET_SUCCESS,\n RESET_USER_PASSWORD_ERROR,\n RESET_USER_PASSWORD_SENDING,\n RESET_USER_PASSWORD_SUCCESS,\n CHANGE_USER_PASSWORD,\n CHANGE_USER_PASSWORD_SENDING,\n CHANGE_USER_PASSWORD_SUCCESS,\n CHANGE_USER_PASSWORD_ERROR,\n} from '../types';\n\nexport const resetPasswordSagas = [\n takeEvery(REQUEST_USER_PASSWORD_RESET, requestPasswordResetSaga),\n takeEvery(RESET_USER_PASSWORD, resetPasswordSaga),\n takeEvery(CHANGE_USER_PASSWORD, changePasswordSaga),\n];\n\nfunction* requestPasswordResetSaga(action) {\n const userEmailObject = action.userEmailObject;\n yield put({\n type: REQUEST_USER_PASSWORD_RESET_SENDING,\n });\n if (userEmailObject && userEmailObject.userEmail) {\n try {\n const passwordResetRequestResponse =\n yield UserHelper.RequestPasswordReset(userEmailObject);\n\n if (passwordResetRequestResponse) {\n if (!passwordResetRequestResponse.error) {\n yield put({\n type: REQUEST_USER_PASSWORD_RESET_SUCCESS,\n });\n } else {\n yield put({\n type: REQUEST_USER_PASSWORD_RESET_ERROR,\n error: passwordResetRequestResponse.error.message,\n });\n }\n } else {\n yield put({\n type: REQUEST_USER_PASSWORD_RESET_ERROR,\n error: 'No response from server',\n });\n }\n } catch (error) {\n yield put({\n type: REQUEST_USER_PASSWORD_RESET_ERROR,\n error: error && error.toString(),\n });\n }\n } else {\n yield put({\n type: REQUEST_USER_PASSWORD_RESET_ERROR,\n error: 'Invalid object',\n });\n }\n}\n\nfunction* resetPasswordSaga(action) {\n const resetPasswordObject = action.resetPasswordObject;\n\n yield put({\n type: RESET_USER_PASSWORD_SENDING,\n });\n if (resetPasswordObject.token && resetPasswordObject.password) {\n try {\n const resetPasswordResponse = yield UserHelper.ResetPassword(\n resetPasswordObject\n );\n\n if (resetPasswordResponse) {\n if (!resetPasswordResponse.error) {\n yield put({\n type: RESET_USER_PASSWORD_SUCCESS,\n });\n } else {\n const error =\n (resetPasswordResponse.error.data &&\n resetPasswordResponse.error.data.length > 0 &&\n resetPasswordResponse.error.data[0].message) ||\n resetPasswordResponse.error.message;\n yield put({\n type: RESET_USER_PASSWORD_ERROR,\n error,\n });\n }\n } else {\n yield put({\n type: RESET_USER_PASSWORD_ERROR,\n error: 'No response from server',\n });\n }\n } catch (error) {\n yield put({\n type: RESET_USER_PASSWORD_ERROR,\n error: error && error.toString(),\n });\n }\n } else {\n yield put({\n type: RESET_USER_PASSWORD_ERROR,\n error: 'Invalid object',\n });\n }\n}\n\n// userId\n// existingPassword\n// newPassword\nfunction* changePasswordSaga(action) {\n if (\n !action ||\n !action.userId ||\n !action.currentPassword ||\n !action.newPassword\n ) {\n yield put({\n type: CHANGE_USER_PASSWORD_ERROR,\n error: 'Invalid action object sent to changePassword saga',\n });\n return;\n }\n\n try {\n const changePasswordObject = {\n userId: action.userId,\n existing: action.currentPassword,\n new: action.newPassword,\n };\n\n yield put({\n type: CHANGE_USER_PASSWORD_SENDING,\n });\n const clientCredentials = yield select(selectClientCredentials, 'js');\n const client = yield getManagementApiClient({ ...clientCredentials });\n\n const [err, res] = yield to(\n client.security.users.updatePassword(changePasswordObject)\n );\n\n if (err) {\n const error =\n (err?.data?.data?.length > 0 && err.data.data[0].message) ||\n err?.data?.message;\n yield put({\n type: CHANGE_USER_PASSWORD_ERROR,\n error,\n });\n return;\n }\n\n // // eslint-disable-next-line no-console\n // console.log(changePasswordObject);\n // // eslint-disable-next-line no-console\n // console.log(userCredentialsObject);\n yield put({\n type: CHANGE_USER_PASSWORD_SUCCESS,\n });\n } catch (error) {\n yield put({\n type: CHANGE_USER_PASSWORD_ERROR,\n error: error && error.toString(),\n });\n }\n}\n","import { loginSagas } from './login';\nimport { registerSagas } from './register';\nimport { resetPasswordSagas } from './resetPassword';\n\nexport const userSagas = [\n ...loginSagas,\n ...registerSagas,\n ...resetPasswordSagas,\n];\n","// index.js\nimport { all } from 'redux-saga/effects';\nimport { navigationSagas } from './navigation';\nimport { routingSagas } from '~/routing/redux/sagas';\nimport { userSagas } from '~/user/redux/sagas';\n\nexport default function (featureSagas = []) {\n return function* rootSaga() {\n const subSagas = [...routingSagas, ...navigationSagas, ...userSagas];\n yield all([...subSagas, ...featureSagas]);\n };\n}\n","const servers = SERVERS; /* global SERVERS */\nconst alias = servers.alias.toLowerCase();\nconst publicUri = PUBLIC_URI; /* global PUBLIC_URI */\nconst projects = PROJECTS; /* global PROJECTS */\n\n// return a projectId via the request hostname\nconst pickProject = (hostname, query) => {\n // if localhost we can only infer via a querystring, and take your word for it\n if (hostname == 'localhost') {\n return (query && query.p) || projects[0].id;\n }\n\n // if hostname is the actual public uri we can return the first project from the list\n if (hostname == publicUri) {\n return projects[0].id;\n }\n\n let project = 'unknown';\n\n // // go through all the defined projects\n // Object.entries(projects).map(([, p]) => {\n const p = projects[0];\n\n // check if we're accessing via the project's public uri\n if (hostname.includes(p.publicUri)) project = p.id;\n\n // the url structure is different for website (we don't prefix)\n if (p.id.startsWith('website')) {\n // check for internal and external hostnames\n // we check live and preview distinctly so our rule does not clash with\n // hostnames that use a project prefix\n if (\n hostname.includes(`live-${alias}.cloud.contensis.com`) ||\n hostname.includes(`live.${alias}.contensis.cloud`) ||\n hostname.includes(`preview-${alias}.cloud.contensis.com`) ||\n hostname.includes(`preview.${alias}.contensis.cloud`)\n )\n project = p.id;\n } else {\n // check for internal and external hostnames, prefixed with the projectId\n if (\n hostname.includes(`${p.id.toLowerCase()}-${alias}.cloud.contensis.com`) ||\n hostname.includes(`${p.id.toLowerCase()}.${alias}.contensis.cloud`)\n )\n project = p.id;\n }\n // });\n return project === 'unknown' ? p.id : project;\n};\n\nexport default pickProject;\n","import React from 'react';\nimport { hot } from 'react-hot-loader';\nimport { AppRootProps } from '../routing/routes';\nimport { RouteLoader } from '../routing';\n\nconst AppRoot = (props: AppRootProps) => {\n return <RouteLoader {...props} />;\n};\n\nexport default hot(module)(AppRoot);\n"],"names":["storeSurrogateKeys","response","keys","headers","get","map","reduxStore","dispatch","setSurrogateKeys","url","getClientConfig","project","config","DELIVERY_API_CONFIG","responseHandler","projectId","window","defaultHeaders","PROXY_DELIVERY_API","rootUrl","DeliveryApi","getClientSideVersionStatus","currentHostname","location","hostname","getVersionStatusFromHostname","indexOf","endsWith","search","query","linkDepth","env","client","Client","create","entries","getClient","deliveryApiStatus","baseConfig","versionStatus","getEntry","id","deliveryApi","CacheNode","constructor","key","value","next","prev","LruCache","limit","head","tail","size","node","remove","setHead","set","CachedSearch","cache","taxonomyLookup","request","JSON","stringify","toString","searchUsingPost","clientConfig","getContentType","contentTypes","getTaxonomyNode","taxonomy","resolveChildren","then","extendTaxonomyNode","getRootNode","options","nodes","getRoot","getNode","path","getAncestors","getChildren","getSiblings","execute","promise","catch","cachedSearch","selectedHistory","createBrowserHistory","createMemoryHistory","history","browserHistory","navigationSagas","takeEvery","GET_NODE_TREE","ensureNodeTreeSaga","action","state","select","hasNavigationTree","deliveryApiVersionStatus","selectVersionStatus","selectCurrentProject","depth","treeDepth","put","type","SET_NODE_TREE","GET_NODE_TREE_ERROR","ex","log","error","sys","contentTypeId","dataFormat","filename","includeInSearch","slug","uri","Fields","entryTitle","entryDescription","keywords","wildcard","fieldExpression","field","operator","weight","Array","isArray","equalToOrIn","Op","defaultExpressions","equalTo","arr","length","in","routeEntryByFieldsQuery","language","fields","Query","routingSagas","SET_NAVIGATION_PATH","getRouteSaga","SET_ROUTE","setRouteSaga","payload","method","args","entry","withEvents","routes","ContentTypeMappings","staticRoute","route","injectRedux","call","reduxInjectorSaga","pathNode","ancestors","children","siblings","contentTypeMapping","appsays","requireLogin","onRouteLoad","entryLinkDepth","undefined","setContentTypeLimits","find","ct","nodeOptions","routeEntry","selectRouteEntry","routeNode","selectCurrentNode","currentPath","isPreview","startsWith","defaultLang","customRouting","fetchNode","statePath","refetchNode","UPDATE_LOADING_STATE","isLoading","setRouteEntry","selectCurrentAncestors","selectCurrentSiblings","splitPath","split","entryGuid","previewEntry","entryFields","findContentTypeMapping","items","resolveCurrentNodeOrdinates","entryMapper","onRouteLoaded","handleRequiresLoginSaga","preventScrollTop","scroll","top","do404","e","stack","do500","apiCall","doNavigation","customNavigation","info","childrenDepth","childrenOptions","includeInMenu","isTreeLoaded","tree","getNodeTree","loadAncestors","loadChildren","loadSiblings","loadTree","nodeWithChildren","all","notFound","remapEntry","entrySys","currentEntryId","selectRouteEntryEntryId","currentEntryLang","selectRouteEntryLanguage","mappedEntry","selectMappedEntry","mapRouteEntry","SET_ENTRY","SET_ANCESTORS","SET_SIBLINGS","clientReloadHitServer","stateEntry","reload","isError","statusCode","status","injectorFn","reducer","saga","reduxInjector","registerSagas","REGISTER_USER","registerSaga","REGISTER_USER_SUCCESS","redirectSaga","user","mappers","requestBody","fetch","Accept","body","ok","mappedResponse","responseBody","to","json","REGISTER_USER_FAILED","message","errorResponse","statusText","currentQs","queryParams","selectCurrentSearch","redirectUri","redirect_uri","redirect","setRoute","PAP_URL","USER_ENVS_URI","USER_RESEND_VERIFICATION_URI","USER_REQUEST_PASSWORD_RESET_URI","USER_RESET_PASSWORD_URI","USER_ENVS_URL","BASE_OPTIONS","UserHelper","GetUsersEnvironments","securityToken","ResendUserVerification","userEmail","RequestPasswordReset","userEmailObject","ResetPassword","resetPasswordObject","api","err","data","resetPasswordSagas","REQUEST_USER_PASSWORD_RESET","requestPasswordResetSaga","RESET_USER_PASSWORD","resetPasswordSaga","CHANGE_USER_PASSWORD","changePasswordSaga","REQUEST_USER_PASSWORD_RESET_SENDING","passwordResetRequestResponse","REQUEST_USER_PASSWORD_RESET_SUCCESS","REQUEST_USER_PASSWORD_RESET_ERROR","RESET_USER_PASSWORD_SENDING","token","password","resetPasswordResponse","RESET_USER_PASSWORD_SUCCESS","RESET_USER_PASSWORD_ERROR","userId","currentPassword","newPassword","CHANGE_USER_PASSWORD_ERROR","changePasswordObject","existing","new","CHANGE_USER_PASSWORD_SENDING","clientCredentials","selectClientCredentials","getManagementApiClient","res","security","users","updatePassword","CHANGE_USER_PASSWORD_SUCCESS","userSagas","loginSagas","featureSagas","rootSaga","subSagas","servers","SERVERS","alias","toLowerCase","publicUri","PUBLIC_URI","projects","PROJECTS","pickProject","p","includes","AppRoot","props","React","RouteLoader"],"mappings":"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"}
|