underpost 2.8.0 → 2.8.1
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/.vscode/settings.json +2 -1
- package/bin/deploy.js +2 -16
- package/bin/index.js +4 -5
- package/bin/util.js +18 -0
- package/conf.js +8 -1
- package/docker-compose.yml +1 -1
- package/package.json +11 -9
- package/src/client/components/core/Account.js +4 -2
- package/src/client/components/core/Auth.js +2 -2
- package/src/client/components/core/Css.js +1 -1
- package/src/client/components/core/Docs.js +2 -1
- package/src/client/components/core/JoyStick.js +8 -5
- package/src/client/components/core/Modal.js +7 -6
- package/src/client/components/core/Panel.js +1 -0
- package/src/client/components/core/PanelForm.js +7 -1
- package/src/client/components/core/SignUp.js +4 -1
- package/src/client/components/core/Translate.js +14 -0
- package/src/client/public/default/plantuml/client-conf.svg +1 -1
- package/src/client/public/default/plantuml/server-conf.svg +1 -1
- package/src/client/public/default/plantuml/server-schema.svg +1 -1
- package/src/client/public/default/plantuml/ssr-conf.svg +1 -1
- package/src/client/public/default/plantuml/ssr-schema.svg +1 -1
- package/src/client/services/core/core.service.js +2 -0
- package/src/client/ssr/body/CacheControl.js +2 -1
- package/src/client/ssr/body/DefaultSplashScreen.js +3 -3
- package/src/client/ssr/offline/Maintenance.js +63 -0
- package/src/client/sw/default.sw.js +23 -3
- package/src/index.js +8 -0
- package/src/server/client-build.js +5 -4
- package/src/server/client-icons.js +1 -1
- package/src/server/conf.js +3 -3
- package/src/server/logger.js +8 -6
- package/src/server/valkey.js +1 -0
|
@@ -62,15 +62,35 @@ self.addEventListener('fetch', (event) => {
|
|
|
62
62
|
if (!preCachedResponse) throw new Error(error.message);
|
|
63
63
|
return preCachedResponse;
|
|
64
64
|
} catch (error) {
|
|
65
|
-
console.error('Error opening cache for pre cached page',
|
|
65
|
+
console.error('Error opening cache for pre cached page', {
|
|
66
|
+
url: event.request.url,
|
|
67
|
+
error,
|
|
68
|
+
onLine: navigator.onLine,
|
|
69
|
+
});
|
|
66
70
|
try {
|
|
71
|
+
if (!navigator.onLine) {
|
|
72
|
+
if (event.request.method.toUpperCase() === 'GET') {
|
|
73
|
+
const cache = await caches.open(CACHE_NAME);
|
|
74
|
+
const preCachedResponse = await cache.match(
|
|
75
|
+
`${PROXY_PATH === '/' ? '' : PROXY_PATH}/offline/index.html`,
|
|
76
|
+
);
|
|
77
|
+
if (!preCachedResponse) throw new Error(error.message);
|
|
78
|
+
return preCachedResponse;
|
|
79
|
+
}
|
|
80
|
+
const response = new Response(JSON.stringify({ status: 'error', message: 'offline test response' }));
|
|
81
|
+
// response.status = 200;
|
|
82
|
+
response.headers.set('Content-Type', 'application/json');
|
|
83
|
+
return response;
|
|
84
|
+
}
|
|
67
85
|
if (event.request.method.toUpperCase() === 'GET') {
|
|
68
86
|
const cache = await caches.open(CACHE_NAME);
|
|
69
|
-
const preCachedResponse = await cache.match(
|
|
87
|
+
const preCachedResponse = await cache.match(
|
|
88
|
+
`${PROXY_PATH === '/' ? '' : PROXY_PATH}/maintenance/index.html`,
|
|
89
|
+
);
|
|
70
90
|
if (!preCachedResponse) throw new Error(error.message);
|
|
71
91
|
return preCachedResponse;
|
|
72
92
|
}
|
|
73
|
-
const response = new Response(JSON.stringify({ status: 'error', message: '
|
|
93
|
+
const response = new Response(JSON.stringify({ status: 'error', message: 'server in maintenance' }));
|
|
74
94
|
// response.status = 200;
|
|
75
95
|
response.headers.set('Content-Type', 'application/json');
|
|
76
96
|
return response;
|
package/src/index.js
CHANGED
|
@@ -14,6 +14,14 @@ const logger = loggerFactory(import.meta);
|
|
|
14
14
|
* @memberof Underpost
|
|
15
15
|
*/
|
|
16
16
|
class Underpost {
|
|
17
|
+
/**
|
|
18
|
+
* Underpost engine version
|
|
19
|
+
* @static
|
|
20
|
+
* @type {String}
|
|
21
|
+
* @memberof Underpost
|
|
22
|
+
*/
|
|
23
|
+
static version = 'v2.8.1';
|
|
24
|
+
|
|
17
25
|
constructor() {}
|
|
18
26
|
|
|
19
27
|
/**
|
|
@@ -465,10 +465,11 @@ const buildClient = async (options = { liveClientBuildPaths: [], instances: [] }
|
|
|
465
465
|
case 'DefaultSplashScreen':
|
|
466
466
|
if (backgroundImage) {
|
|
467
467
|
ssrHeadComponents += SrrComponent({
|
|
468
|
-
|
|
469
|
-
.readFileSync(backgroundImage)
|
|
470
|
-
.toString('base64')}`,
|
|
468
|
+
backgroundImage: (path === '/' ? path : `${path}/`) + backgroundImage,
|
|
471
469
|
});
|
|
470
|
+
// `data:image/${backgroundImage.split('.').pop()};base64,${fs
|
|
471
|
+
// .readFileSync()
|
|
472
|
+
// .toString('base64')}`,
|
|
472
473
|
break;
|
|
473
474
|
} else {
|
|
474
475
|
ssrHeadComponents += SrrComponent({ metadata });
|
|
@@ -480,7 +481,7 @@ const buildClient = async (options = { liveClientBuildPaths: [], instances: [] }
|
|
|
480
481
|
bgColor: metadata?.themeColor ? metadata.themeColor : '#ececec',
|
|
481
482
|
});
|
|
482
483
|
ssrHeadComponents += SrrComponent({
|
|
483
|
-
|
|
484
|
+
backgroundImage: `data:image/png;base64,${bufferBackgroundImage.toString('base64')}`,
|
|
484
485
|
});
|
|
485
486
|
}
|
|
486
487
|
|
|
@@ -141,7 +141,7 @@ const buildIcons = async ({
|
|
|
141
141
|
for (const file of response.files)
|
|
142
142
|
fs.writeFileSync(`./src/client/public/${publicClientId}/${file.name}`, file.contents, 'utf8');
|
|
143
143
|
|
|
144
|
-
const ssrPath = `./src/client/ssr/
|
|
144
|
+
const ssrPath = `./src/client/ssr/head/Pwa${getCapVariableName(publicClientId)}.js`;
|
|
145
145
|
if (!fs.existsSync(ssrPath))
|
|
146
146
|
fs.writeFileSync(ssrPath, 'SrrComponent = () => html`' + response.html.join(`\n`) + '`;', 'utf8');
|
|
147
147
|
} catch (error) {
|
package/src/server/conf.js
CHANGED
|
@@ -253,8 +253,8 @@ const buildClientSrc = async (
|
|
|
253
253
|
}
|
|
254
254
|
|
|
255
255
|
fs.writeFileSync(
|
|
256
|
-
`./src/client/ssr/
|
|
257
|
-
formattedSrc(fs.readFileSync(`./src/client/ssr/
|
|
256
|
+
`./src/client/ssr/head/${toClientVariableName}Scripts.js`,
|
|
257
|
+
formattedSrc(fs.readFileSync(`./src/client/ssr/head/${fromClientVariableName}Scripts.js`, 'utf8')),
|
|
258
258
|
'utf8',
|
|
259
259
|
);
|
|
260
260
|
|
|
@@ -473,7 +473,7 @@ const buildProxyRouter = () => {
|
|
|
473
473
|
title: 'Site in maintenance',
|
|
474
474
|
ssrPath: '/',
|
|
475
475
|
ssrHeadComponents: '',
|
|
476
|
-
ssrBodyComponents: (await ssrFactory(`./src/client/ssr/
|
|
476
|
+
ssrBodyComponents: (await ssrFactory(`./src/client/ssr/offline/Maintenance.js`))(),
|
|
477
477
|
});
|
|
478
478
|
})();
|
|
479
479
|
|
package/src/server/logger.js
CHANGED
|
@@ -86,6 +86,7 @@ const format = (meta) =>
|
|
|
86
86
|
* @memberof Logger
|
|
87
87
|
*/
|
|
88
88
|
const setUpInfo = async (logger = new winston.Logger()) => {
|
|
89
|
+
logger.info('npm_package_version', process.env.npm_package_version);
|
|
89
90
|
logger.info('argv', process.argv);
|
|
90
91
|
logger.info('platform', process.platform);
|
|
91
92
|
logger.info('env', process.env.NODE_ENV);
|
|
@@ -179,12 +180,13 @@ const loggerMiddleware = (meta = { url: '' }) => {
|
|
|
179
180
|
};
|
|
180
181
|
|
|
181
182
|
const underpostASCI = () => `
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
183
|
+
|
|
184
|
+
██╗░░░██╗███╗░░██╗██████╗░███████╗██████╗░██████╗░░█████╗░░██████╗████████╗
|
|
185
|
+
██║░░░██║████╗░██║██╔══██╗██╔════╝██╔══██╗██╔══██╗██╔══██╗██╔════╝╚══██╔══╝
|
|
186
|
+
██║░░░██║██╔██╗██║██║░░██║█████╗░░██████╔╝██████╔╝██║░░██║╚█████╗░░░░██║░░░
|
|
187
|
+
██║░░░██║██║╚████║██║░░██║██╔══╝░░██╔══██╗██╔═══╝░██║░░██║░╚═══██╗░░░██║░░░
|
|
188
|
+
╚██████╔╝██║░╚███║██████╔╝███████╗██║░░██║██║░░░░░╚█████╔╝██████╔╝░░░██║░░░
|
|
189
|
+
░╚═════╝░╚═╝░░╚══╝╚═════╝░╚══════╝╚═╝░░╚═╝╚═╝░░░░░░╚════╝░╚═════╝░░░░╚═╝░░░
|
|
188
190
|
`;
|
|
189
191
|
|
|
190
192
|
export { loggerFactory, loggerMiddleware, setUpInfo, underpostASCI };
|