miolo-react 3.0.0-beta.21 → 3.0.0-beta.210

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.
@@ -1,43 +1,229 @@
1
- import {useState, useCallback, useEffect} from 'react'
2
- import getSsrDataFromContext from './getSsrDataFromContext.mjs'
3
-
4
- const useSsrDataOrReload = (context, miolo, name, defval, loader, modifier) => {
5
-
6
- const _maybeModify = useCallback((value) => {
7
- return modifier==undefined ? value : modifier(value)
8
- }, [modifier])
9
-
10
- const ssrDataFromContext = getSsrDataFromContext(context, name)
11
- const [ssrData, setSsrData] = useState(_maybeModify(
12
- ssrDataFromContext != undefined
13
- ? ssrDataFromContext : defval))
14
- const [needToRefresh, setNeedToRefresh] = useState(ssrDataFromContext == undefined)
15
-
16
- const refreshSsrData = useCallback(() => {
17
- if (loader == undefined) {
1
+ import { useCallback, useEffect, useMemo, useState } from "react"
2
+ import getSsrDataFromContext from "./getSsrDataFromContext.mjs"
3
+ import usePropsCheck from "./usePropsCheck.mjs"
4
+
5
+ const makeSerializable = (obj) => {
6
+ try {
7
+ return JSON.parse(JSON.stringify(obj))
8
+ } catch (_) {
9
+ return obj
10
+ }
11
+ }
12
+
13
+ const useSsrDataOrReload = (context, miolo, name, options) => {
14
+ const { fetcher, socket, logger } = miolo
15
+ const {
16
+ defval = [],
17
+ loader = undefined,
18
+ url = undefined,
19
+ params = undefined,
20
+ modifier = undefined,
21
+ effect = undefined,
22
+ model = undefined,
23
+ cache = false,
24
+ ttl = undefined
25
+ } = options
26
+
27
+ usePropsCheck(loader, effect, modifier, name)
28
+
29
+ const parseData = useCallback(
30
+ (value) => {
31
+ let parsed = value
32
+ if (model !== undefined) {
33
+ parsed = new model(parsed)
34
+ }
35
+ if (modifier !== undefined) {
36
+ parsed = modifier(parsed)
37
+ }
38
+ return parsed
39
+ },
40
+ [modifier, model]
41
+ )
42
+
43
+ const ssrDataFromContext = useMemo(() => {
44
+ return getSsrDataFromContext(context, name)
45
+ }, [context, name])
46
+
47
+ const [ssrData, setSsrData] = useState(
48
+ parseData(ssrDataFromContext !== undefined ? ssrDataFromContext : defval)
49
+ )
50
+ const [status, setStatus] = useState(ssrDataFromContext !== undefined ? "loaded" : "idle")
51
+ const [error, setError] = useState(undefined)
52
+ const [socketInited, setSocketInited] = useState(false)
53
+
54
+ const updateSsrData = useCallback(
55
+ (data) => {
56
+ setStatus("loading")
57
+ setSsrData(parseData(data))
58
+ setStatus("loaded")
59
+ setError(undefined)
60
+ if (cache === true) {
61
+ if (typeof window !== "undefined") {
62
+ import("idb-keyval").then(({ set }) => {
63
+ set(`ssr-cache-${name}`, { data: makeSerializable(data), ts: Date.now() }).catch(
64
+ () => {}
65
+ )
66
+ })
67
+ }
68
+ }
69
+ },
70
+ [parseData, name, cache]
71
+ )
72
+
73
+ const refreshSsrData = useCallback(async () => {
74
+ if (status === "loading") {
18
75
  return
19
76
  }
20
77
 
21
- const {fetcher} = miolo
78
+ setStatus("loading")
79
+ setError(undefined)
80
+
81
+ let newData
82
+
83
+ if (loader !== undefined) {
84
+ newData = await loader(context, fetcher)
85
+ } else {
86
+ if (!url) {
87
+ setError(`No url provided for ${name}`)
88
+ } else {
89
+ const resp = await fetcher.get(url, params)
90
+ if (resp.ok) {
91
+ newData = resp?.data
92
+ } else {
93
+ setError(resp?.error || "Unknown error")
94
+ }
95
+ }
96
+ }
22
97
 
23
- async function fetchData() {
24
- let nSsrData = await loader(context, fetcher)
25
- setSsrData(_maybeModify(nSsrData))
98
+ if (newData !== undefined) {
99
+ if (cache === true) {
100
+ if (typeof window !== "undefined") {
101
+ try {
102
+ const { set } = await import("idb-keyval")
103
+ await set(`ssr-cache-${name}`, { data: makeSerializable(newData), ts: Date.now() })
104
+ } catch (err) {
105
+ console.error(err)
106
+ }
107
+ }
108
+ }
109
+ setSsrData(parseData(newData))
26
110
  }
27
111
 
28
- fetchData()
29
- }, [context, miolo, loader, _maybeModify])
30
-
112
+ setStatus("loaded")
113
+ }, [status, context, fetcher, loader, url, params, parseData, name, cache])
114
+
115
+ const invalidateCache = useCallback((tName, callback = undefined) => {
116
+ if (typeof window !== "undefined") {
117
+ import("idb-keyval").then(({ del }) => {
118
+ del(`ssr-cache-${tName}`)
119
+ .catch(() => {})
120
+ .then(() => {
121
+ if (callback) {
122
+ callback()
123
+ }
124
+ })
125
+ })
126
+ }
127
+ }, [])
128
+
31
129
  useEffect(() => {
32
- try {
33
- if (needToRefresh) {
34
- setNeedToRefresh(false)
35
- refreshSsrData()
130
+ let mounted = true
131
+
132
+ const loadData = async () => {
133
+ if (!mounted) return
134
+
135
+ try {
136
+ if (status === "idle") {
137
+ const changed =
138
+ effect === undefined ||
139
+ (typeof effect === "function" && effect() === true) ||
140
+ effect === true
141
+
142
+ if (changed === true) {
143
+ let cached = null
144
+ if (cache === true) {
145
+ if (typeof window !== "undefined") {
146
+ try {
147
+ const { get } = await import("idb-keyval")
148
+ cached = await get(`ssr-cache-${name}`)
149
+ } catch (err) {
150
+ console.error(err)
151
+ }
152
+ }
153
+ }
154
+
155
+ if (cached && cached.data !== undefined) {
156
+ setSsrData(parseData(cached.data))
157
+
158
+ if (ttl !== undefined && Date.now() - cached.ts > ttl * 1000) {
159
+ refreshSsrData()
160
+ } else {
161
+ setStatus("loaded")
162
+ }
163
+ } else {
164
+ refreshSsrData()
165
+ }
166
+ }
167
+ }
168
+ } catch (_) {}
169
+ }
170
+
171
+ loadData()
172
+
173
+ return () => {
174
+ mounted = false
175
+ }
176
+ }, [status, refreshSsrData, effect, name, ttl, parseData, cache])
177
+
178
+ useEffect(() => {
179
+ if (cache === true) {
180
+ if (ssrDataFromContext !== undefined && typeof window !== "undefined") {
181
+ import("idb-keyval").then(({ set }) => {
182
+ set(`ssr-cache-${name}`, {
183
+ data: makeSerializable(ssrDataFromContext),
184
+ ts: Date.now()
185
+ }).catch(() => {})
186
+ })
36
187
  }
37
- } catch(e) {}
38
- }, [needToRefresh, refreshSsrData])
188
+ }
189
+ }, [ssrDataFromContext, name, cache])
190
+
191
+ useEffect(() => {
192
+ if (socket === undefined) {
193
+ return
194
+ }
195
+
196
+ if (socketInited) {
197
+ return
198
+ }
199
+ setSocketInited(true)
200
+
201
+ socket.on("connect", () => {
202
+ logger.verbose("[ssr] Socket connected")
203
+ })
204
+
205
+ socket.on("ssr-invalidate", (data) => {
206
+ logger.info(`[ssr] ssr-invalidate ${data.name}`)
207
+ invalidateCache(data.name)
208
+ })
209
+
210
+ socket.on("ssr-refresh", (data) => {
211
+ logger.info(`[ssr] ssr-refresh ${data.name}`)
212
+ invalidateCache(data.name, () => {
213
+ refreshSsrData()
214
+ })
215
+ })
216
+ }, [socket, socketInited, logger, invalidateCache, refreshSsrData])
39
217
 
40
- return [ssrData, (data) => setSsrData(_maybeModify(data)), refreshSsrData]
218
+ return {
219
+ data: ssrData,
220
+ setData: updateSsrData,
221
+ refresh: refreshSsrData,
222
+ invalidate: (callback) => invalidateCache(name, callback),
223
+ error,
224
+ ok: error === undefined,
225
+ ready: status === "loaded"
226
+ }
41
227
  }
42
228
 
43
- export {useSsrDataOrReload}
229
+ export { useSsrDataOrReload }
@@ -1,265 +0,0 @@
1
- /**
2
- * miolo-react v3.0.0-beta.21
3
- *
4
- * https://www.afialapis.com/os/miolo
5
- *
6
- * Copyright (c) Donato Lorenzo <donato@afialapis.com>
7
- *
8
- * This source code is licensed under the MIT license found in the
9
- * LICENSE.md file in the root directory of this source tree.
10
- *
11
- * @license MIT
12
- */
13
- /* eslint-disable */
14
- import React, { useContext, useCallback, useState, useEffect } from 'react';
15
- import { miolo_client } from 'miolo-cli';
16
-
17
- var MioloContext = /*#__PURE__*/React.createContext();
18
-
19
- /* eslint react/display-name:0 */
20
- var withMioloContext = BaseComponent => props => {
21
- var context = useContext(MioloContext);
22
- return /*#__PURE__*/React.createElement(BaseComponent, Object.assign({}, props, context));
23
- };
24
-
25
- var useMioloContext = () => useContext(MioloContext);
26
-
27
- function asyncGeneratorStep(n, t, e, r, o, a, c) {
28
- try {
29
- var i = n[a](c),
30
- u = i.value;
31
- } catch (n) {
32
- return void e(n);
33
- }
34
- i.done ? t(u) : Promise.resolve(u).then(r, o);
35
- }
36
- function _asyncToGenerator(n) {
37
- return function () {
38
- var t = this,
39
- e = arguments;
40
- return new Promise(function (r, o) {
41
- var a = n.apply(t, e);
42
- function _next(n) {
43
- asyncGeneratorStep(a, r, o, _next, _throw, "next", n);
44
- }
45
- function _throw(n) {
46
- asyncGeneratorStep(a, r, o, _next, _throw, "throw", n);
47
- }
48
- _next(void 0);
49
- });
50
- };
51
- }
52
- function _defineProperty(e, r, t) {
53
- return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {
54
- value: t,
55
- enumerable: true,
56
- configurable: true,
57
- writable: true
58
- }) : e[r] = t, e;
59
- }
60
- function ownKeys(e, r) {
61
- var t = Object.keys(e);
62
- if (Object.getOwnPropertySymbols) {
63
- var o = Object.getOwnPropertySymbols(e);
64
- r && (o = o.filter(function (r) {
65
- return Object.getOwnPropertyDescriptor(e, r).enumerable;
66
- })), t.push.apply(t, o);
67
- }
68
- return t;
69
- }
70
- function _objectSpread2(e) {
71
- for (var r = 1; r < arguments.length; r++) {
72
- var t = null != arguments[r] ? arguments[r] : {};
73
- r % 2 ? ownKeys(Object(t), true).forEach(function (r) {
74
- _defineProperty(e, r, t[r]);
75
- }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {
76
- Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));
77
- });
78
- }
79
- return e;
80
- }
81
- function _toPrimitive(t, r) {
82
- if ("object" != typeof t || !t) return t;
83
- var e = t[Symbol.toPrimitive];
84
- if (void 0 !== e) {
85
- var i = e.call(t, r);
86
- if ("object" != typeof i) return i;
87
- throw new TypeError("@@toPrimitive must return a primitive value.");
88
- }
89
- return ("string" === r ? String : Number)(t);
90
- }
91
- function _toPropertyKey(t) {
92
- var i = _toPrimitive(t, "string");
93
- return "symbol" == typeof i ? i : i + "";
94
- }
95
-
96
- var _getDataFromWindow = name => {
97
- try {
98
- if (window != undefined) {
99
- var ssr_data = window.__CONTEXT.ssr_data;
100
- if (ssr_data != undefined) {
101
- if (ssr_data[name] != undefined) {
102
- return ssr_data[name];
103
- }
104
- }
105
- }
106
- } catch (e) {}
107
- return undefined;
108
- };
109
- var getSsrDataFromContext = (context, name) => {
110
- var data = undefined;
111
- if ((context === null || context === void 0 ? void 0 : context.ssr_data) != undefined && (context === null || context === void 0 ? void 0 : context.ssr_data[name]) != undefined) {
112
- data = context.ssr_data[name];
113
- } else {
114
- var wdata = _getDataFromWindow(name);
115
- if (wdata != undefined) {
116
- data = wdata;
117
- }
118
- }
119
- return data;
120
- };
121
-
122
- var useSsrDataOrReload = (context, miolo, name, defval, loader, modifier) => {
123
- var _maybeModify = useCallback(value => {
124
- return modifier == undefined ? value : modifier(value);
125
- }, [modifier]);
126
- var ssrDataFromContext = getSsrDataFromContext(context, name);
127
- var [ssrData, setSsrData] = useState(_maybeModify(ssrDataFromContext != undefined ? ssrDataFromContext : defval));
128
- var [needToRefresh, setNeedToRefresh] = useState(ssrDataFromContext == undefined);
129
- var refreshSsrData = useCallback(() => {
130
- if (loader == undefined) {
131
- return;
132
- }
133
- var {
134
- fetcher
135
- } = miolo;
136
- function fetchData() {
137
- return _fetchData.apply(this, arguments);
138
- }
139
- function _fetchData() {
140
- _fetchData = _asyncToGenerator(function* () {
141
- var nSsrData = yield loader(context, fetcher);
142
- setSsrData(_maybeModify(nSsrData));
143
- });
144
- return _fetchData.apply(this, arguments);
145
- }
146
- fetchData();
147
- }, [context, miolo, loader, _maybeModify]);
148
- useEffect(() => {
149
- try {
150
- if (needToRefresh) {
151
- setNeedToRefresh(false);
152
- refreshSsrData();
153
- }
154
- } catch (e) {}
155
- }, [needToRefresh, refreshSsrData]);
156
- return [ssrData, data => setSsrData(_maybeModify(data)), refreshSsrData];
157
- };
158
-
159
- var MioloContextProvider = _ref => {
160
- var {
161
- context,
162
- children
163
- } = _ref;
164
- var [innerContext, setInnerContext] = useState(context);
165
- var [mioloObj, setMioloObj] = useState(miolo_client(context));
166
- useEffect(() => {
167
- setInnerContext(context);
168
- setMioloObj(miolo_client(context));
169
- }, [context]);
170
- var login = useCallback(/*#__PURE__*/function () {
171
- var _ref2 = _asyncToGenerator(function* (credentials) {
172
- var {
173
- fetcher
174
- } = mioloObj;
175
- var {
176
- config
177
- } = innerContext;
178
- var url = config.login_url || '/login';
179
- var resp = yield fetcher.login(url, credentials);
180
- if (resp !== null && resp !== void 0 && resp.data) {
181
- var _resp$data;
182
- if (resp !== null && resp !== void 0 && (_resp$data = resp.data) !== null && _resp$data !== void 0 && _resp$data.authenticated) {
183
- setInnerContext(current => {
184
- return _objectSpread2(_objectSpread2({}, current), resp === null || resp === void 0 ? void 0 : resp.data);
185
- });
186
- }
187
- return resp === null || resp === void 0 ? void 0 : resp.data;
188
- }
189
- return {};
190
- });
191
- return function (_x) {
192
- return _ref2.apply(this, arguments);
193
- };
194
- }(), [innerContext, mioloObj]);
195
- var logout = useCallback(/*#__PURE__*/_asyncToGenerator(function* () {
196
- var {
197
- fetcher
198
- } = mioloObj;
199
- var {
200
- config
201
- } = innerContext;
202
- var url = config.logout_url || '/logout';
203
- yield fetcher.logout(url);
204
- // resp.redirected= true
205
-
206
- setInnerContext(current => {
207
- return _objectSpread2(_objectSpread2({}, current), {}, {
208
- user: undefined,
209
- authenticated: false
210
- });
211
- });
212
- return {
213
- user: undefined,
214
- authenticated: false
215
- };
216
- }), [innerContext, mioloObj]);
217
- var updateUser = useCallback(user => {
218
- setInnerContext(current => {
219
- return _objectSpread2(_objectSpread2({}, current), {}, {
220
- user
221
- });
222
- });
223
- }, []);
224
- var useSsrData = (name, defval, loader, modifier) => {
225
- return useSsrDataOrReload(innerContext, mioloObj, name, defval, loader, modifier);
226
- };
227
- return /*#__PURE__*/React.createElement(MioloContext.Provider, {
228
- value: {
229
- //context: innerContext,
230
- //setContext: setInnerContext,
231
- //miolo: mioloObj,
232
- user: innerContext.user,
233
- updateUser,
234
- authenticated: innerContext.authenticated,
235
- fetcher: mioloObj.fetcher,
236
- //socket: mioloObj.socket,
237
- login,
238
- logout,
239
- useSsrData
240
- }
241
- }, children);
242
- };
243
-
244
- var AppBrowser = _ref => {
245
- var {
246
- children
247
- } = _ref;
248
- var context = typeof window !== 'undefined' && window.__CONTEXT ? window.__CONTEXT : {};
249
- return /*#__PURE__*/React.createElement(MioloContextProvider, {
250
- context: context
251
- }, children);
252
- };
253
-
254
- var AppServer = _ref => {
255
- var {
256
- context,
257
- children
258
- } = _ref;
259
- return /*#__PURE__*/React.createElement(MioloContextProvider, {
260
- context: context || {}
261
- }, children);
262
- };
263
-
264
- export { AppBrowser, AppServer, useMioloContext, withMioloContext };
265
- //# sourceMappingURL=miolo-react.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"miolo-react.mjs","sources":["../src/context/MioloContext.mjs","../src/context/withMioloContext.jsx","../src/context/useMioloContext.jsx","../src/ssr/getSsrDataFromContext.mjs","../src/ssr/useSsrDataOrReload.mjs","../src/context/MioloContextProvider.jsx","../src/AppBrowser.jsx","../src/AppServer.jsx"],"sourcesContent":["import React from 'react'\n\nconst MioloContext = React.createContext()\n\nexport default MioloContext","import React, {useContext} from 'react'\nimport MioloContext from './MioloContext.mjs'\n\n/* eslint react/display-name:0 */\nconst withMioloContext = (BaseComponent) => (props) => {\n const context = useContext(MioloContext)\n\n return (\n <BaseComponent {...props}\n {...context}/>\n );\n}\n\n\nexport default withMioloContext","import {useContext} from 'react'\nimport MioloContext from './MioloContext.mjs'\n\nconst useMioloContext = () => useContext(MioloContext)\n\nexport default useMioloContext\n","\nconst _getDataFromWindow = (name) => {\n try {\n if (window != undefined) {\n const ssr_data= window.__CONTEXT.ssr_data\n \n if (ssr_data!=undefined) {\n if (ssr_data[name]!=undefined) {\n return ssr_data[name]\n }\n }\n }\n } catch(e) {}\n \n return undefined\n}\n\nconst getSsrDataFromContext = (context, name) => {\n let data= undefined\n\n if (context?.ssr_data != undefined && context?.ssr_data[name]!=undefined) {\n data= context.ssr_data[name]\n } else {\n const wdata= _getDataFromWindow(name)\n if (wdata != undefined) {\n data= wdata\n }\n }\n \n return data\n}\n\nexport default getSsrDataFromContext\n","import {useState, useCallback, useEffect} from 'react'\nimport getSsrDataFromContext from './getSsrDataFromContext.mjs'\n\nconst useSsrDataOrReload = (context, miolo, name, defval, loader, modifier) => {\n \n const _maybeModify = useCallback((value) => {\n return modifier==undefined ? value : modifier(value)\n }, [modifier])\n\n const ssrDataFromContext = getSsrDataFromContext(context, name)\n const [ssrData, setSsrData] = useState(_maybeModify(\n ssrDataFromContext != undefined \n ? ssrDataFromContext : defval))\n const [needToRefresh, setNeedToRefresh] = useState(ssrDataFromContext == undefined)\n\n const refreshSsrData = useCallback(() => {\n if (loader == undefined) {\n return\n }\n\n const {fetcher} = miolo\n\n async function fetchData() {\n let nSsrData = await loader(context, fetcher)\n setSsrData(_maybeModify(nSsrData))\n }\n\n fetchData()\n }, [context, miolo, loader, _maybeModify]) \n \n useEffect(() => {\n try {\n if (needToRefresh) {\n setNeedToRefresh(false)\n refreshSsrData()\n }\n } catch(e) {}\n }, [needToRefresh, refreshSsrData]) \n\n return [ssrData, (data) => setSsrData(_maybeModify(data)), refreshSsrData]\n}\n\nexport {useSsrDataOrReload}","import React , {useState, useEffect, useCallback} from 'react'\nimport Context from './MioloContext.mjs'\nimport { miolo_client } from 'miolo-cli'\nimport { useSsrDataOrReload } from '../ssr/useSsrDataOrReload.mjs'\n\n\nconst MioloContextProvider = ({context, children}) => {\n const [innerContext, setInnerContext]= useState(context)\n const [mioloObj, setMioloObj]= useState(miolo_client(context))\n \n useEffect(() => {\n setInnerContext(context)\n setMioloObj(miolo_client(context))\n }, [context])\n \n const login = useCallback(async (credentials) => {\n const { fetcher } = mioloObj\n const { config } = innerContext\n\n const url = config.login_url || '/login'\n const resp = await fetcher.login(url, credentials)\n\n if (resp?.data) {\n if (resp?.data?.authenticated) {\n setInnerContext(current => {\n return {\n ...current,\n ...resp?.data,\n }\n })\n }\n\n return resp?.data\n }\n\n return {}\n }, [innerContext, mioloObj])\n\n const logout = useCallback(async () => {\n const { fetcher } = mioloObj\n const { config } = innerContext\n\n const url = config.logout_url || '/logout'\n const _resp = await fetcher.logout(url)\n // resp.redirected= true\n\n setInnerContext(current => {\n return {\n ...current,\n user: undefined,\n authenticated: false,\n }\n })\n\n return {\n user: undefined,\n authenticated: false,\n }\n }, [innerContext, mioloObj])\n\n const updateUser = useCallback((user) => {\n setInnerContext((current) => {\n return {\n ...current,\n user,\n }\n })\n }, [])\n\n const useSsrData = (name, defval, loader, modifier) => {\n return useSsrDataOrReload(innerContext, mioloObj, name, defval, loader, modifier)\n } \n \n return (\n <Context.Provider \n value={{\n //context: innerContext, \n //setContext: setInnerContext,\n //miolo: mioloObj,\n user: innerContext.user,\n updateUser,\n authenticated: innerContext.authenticated,\n fetcher: mioloObj.fetcher,\n //socket: mioloObj.socket,\n login,\n logout,\n useSsrData\n }}>\n {children}\n </Context.Provider>\n )\n}\n\n\nexport default MioloContextProvider\n","import React from 'react'\nimport MioloContextProvider from './context/MioloContextProvider.jsx'\n\nconst AppBrowser = ({ children }) => {\n const context = typeof window !== 'undefined' && window.__CONTEXT ? window.__CONTEXT : {};\n\n return (\n <MioloContextProvider context={context}>\n {children}\n </MioloContextProvider>\n ) \n}\n\nexport default AppBrowser\n","\nimport React from 'react'\nimport MioloContextProvider from './context/MioloContextProvider.jsx'\n\n\nconst AppServer = ({context, children}) => {\n\n return (\n <MioloContextProvider \n context= {context || {}}>\n {children}\n </MioloContextProvider>\n )\n}\n\nexport default AppServer\n\n"],"names":["MioloContext","React","createContext","withMioloContext","BaseComponent","props","context","useContext","createElement","Object","assign","useMioloContext","_getDataFromWindow","name","window","undefined","ssr_data","__CONTEXT","e","getSsrDataFromContext","data","wdata","useSsrDataOrReload","miolo","defval","loader","modifier","_maybeModify","useCallback","value","ssrDataFromContext","ssrData","setSsrData","useState","needToRefresh","setNeedToRefresh","refreshSsrData","fetcher","fetchData","_fetchData","apply","arguments","_asyncToGenerator","nSsrData","useEffect","MioloContextProvider","_ref","children","innerContext","setInnerContext","mioloObj","setMioloObj","miolo_client","login","_ref2","credentials","config","url","login_url","resp","_resp$data","authenticated","current","_objectSpread","_x","logout","logout_url","user","updateUser","useSsrData","Context","Provider","AppBrowser","AppServer"],"mappings":"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"}