miolo 0.3.2 → 0.3.5
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/dist/cli/miolo.cli.iife.bundle.js +1 -1
- package/dist/cli/miolo.cli.iife.bundle.min.js +1 -1
- package/dist/cli/miolo.cli.iife.js +1 -1
- package/dist/cli/miolo.cli.iife.min.js +1 -1
- package/dist/cli/miolo.cli.min.mjs +1 -1
- package/dist/cli/miolo.cli.mjs +1 -1
- package/dist/cli/miolo.cli.umd.bundle.js +1 -1
- package/dist/cli/miolo.cli.umd.bundle.min.js +1 -1
- package/dist/cli/miolo.cli.umd.js +1 -1
- package/dist/cli/miolo.cli.umd.min.js +1 -1
- package/dist/cli-react/miolo.cli-react.iife.bundle.js +1670 -1677
- package/dist/cli-react/miolo.cli-react.iife.bundle.js.map +1 -1
- package/dist/cli-react/miolo.cli-react.iife.bundle.min.js +42 -49
- package/dist/cli-react/miolo.cli-react.iife.js +22 -11
- package/dist/cli-react/miolo.cli-react.iife.js.map +1 -1
- package/dist/cli-react/miolo.cli-react.iife.min.js +2 -2
- package/dist/cli-react/miolo.cli-react.min.mjs +2 -2
- package/dist/cli-react/miolo.cli-react.mjs +23 -9
- package/dist/cli-react/miolo.cli-react.mjs.map +1 -1
- package/dist/cli-react/miolo.cli-react.umd.bundle.js +1669 -1676
- package/dist/cli-react/miolo.cli-react.umd.bundle.js.map +1 -1
- package/dist/cli-react/miolo.cli-react.umd.bundle.min.js +42 -49
- package/dist/cli-react/miolo.cli-react.umd.js +24 -13
- package/dist/cli-react/miolo.cli-react.umd.js.map +1 -1
- package/dist/cli-react/miolo.cli-react.umd.min.js +2 -2
- package/dist/server/miolo.server.cjs +216 -265
- package/dist/server/miolo.server.min.mjs +2 -2
- package/dist/server/miolo.server.mjs +169 -227
- package/dist/server/miolo.server.mjs.map +1 -1
- package/dist/server/miolo.server.node.mjs +217 -265
- package/package.json +8 -9
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* miolo v0.3.
|
|
2
|
+
* miolo v0.3.5
|
|
3
3
|
*
|
|
4
4
|
* Copyright (c) Donato Lorenzo <donato@afialapis.com>
|
|
5
5
|
*
|
|
@@ -9,21 +9,15 @@
|
|
|
9
9
|
* @license MIT
|
|
10
10
|
*/
|
|
11
11
|
import Koa from 'koa';
|
|
12
|
-
import { initCalustraRouter } from 'calustra/router';
|
|
13
12
|
import merge from 'assign-deep';
|
|
14
13
|
import path from 'node:path';
|
|
15
14
|
import { fileURLToPath } from 'node:url';
|
|
16
|
-
import os from 'node:os';
|
|
17
|
-
import diskspace from 'diskspace';
|
|
18
|
-
import { cyan, yellow, green, uncolor, gray, magenta, red_light, red, blue } from 'tinguir';
|
|
19
|
-
import { CronJob } from 'cron';
|
|
20
15
|
import { getConnection } from 'calustra';
|
|
21
16
|
export { getConnection } from 'calustra';
|
|
22
17
|
import nodemailer from 'nodemailer';
|
|
18
|
+
import { uncolor, gray, magenta, cyan, yellow, red_light, red, green, blue } from 'tinguir';
|
|
23
19
|
import util from 'node:util';
|
|
24
20
|
import winston, { format, transports, createLogger } from 'winston';
|
|
25
|
-
import koa_cors from '@koa/cors';
|
|
26
|
-
import koa_proxy from 'koa-proxies';
|
|
27
21
|
import koa_body_parser from 'koa-better-body';
|
|
28
22
|
import koa_convert from 'koa-convert';
|
|
29
23
|
import koa_compress from 'koa-compress';
|
|
@@ -36,8 +30,13 @@ import koa_session from 'koa-session';
|
|
|
36
30
|
import RedisStore from 'koa-redis';
|
|
37
31
|
import Router from '@koa/router';
|
|
38
32
|
import { readFileSync } from 'node:fs';
|
|
39
|
-
import
|
|
40
|
-
import
|
|
33
|
+
import { initCalustraRouter } from 'calustra/router';
|
|
34
|
+
import koa_cors from '@koa/cors';
|
|
35
|
+
import koa_proxy from 'koa-proxies';
|
|
36
|
+
import os from 'node:os';
|
|
37
|
+
import diskspace from 'diskspace';
|
|
38
|
+
import { CronJob } from 'cron';
|
|
39
|
+
import React from 'react';
|
|
41
40
|
import { renderToString } from 'react-dom/server';
|
|
42
41
|
import jwt from 'jwt-simple';
|
|
43
42
|
import auth from 'basic-auth';
|
|
@@ -670,43 +669,6 @@ function init_config(config) {
|
|
|
670
669
|
return merge(base_config, config);
|
|
671
670
|
}
|
|
672
671
|
|
|
673
|
-
function init_sys_check_and_log(logger) {
|
|
674
|
-
function toMB(bytes) {
|
|
675
|
-
if (!bytes) return 0;
|
|
676
|
-
return bytes / 1000000;
|
|
677
|
-
}
|
|
678
|
-
function toGB(kbytes) {
|
|
679
|
-
if (!kbytes) return 0;
|
|
680
|
-
return kbytes / 1000000;
|
|
681
|
-
}
|
|
682
|
-
function sys_check_and_log() {
|
|
683
|
-
var used = Math.round(toMB(os.freemem()), 2);
|
|
684
|
-
var total = Math.round(toMB(os.totalmem()), 2);
|
|
685
|
-
var perc = Math.round(used * 100 / total, 2);
|
|
686
|
-
if (perc > 80) {
|
|
687
|
-
logger.error("[SERVER][" + cyan('SysCheck') + "] RAM " + yellow(used) + " MB used of " + green(total) + " MB (" + yellow(perc) + " %)");
|
|
688
|
-
} else {
|
|
689
|
-
logger.info("[SERVER][" + cyan('SysCheck') + "] RAM " + yellow(used) + " MB used of " + green(total) + " MB (" + yellow(perc) + " %)");
|
|
690
|
-
}
|
|
691
|
-
diskspace.check('/', function (err, result) {
|
|
692
|
-
var used = Math.round(toGB(result.used), 2);
|
|
693
|
-
var total = Math.round(toGB(result.total), 2);
|
|
694
|
-
var free = Math.round(toGB(result.free), 2);
|
|
695
|
-
if (free < 1) {
|
|
696
|
-
logger.error("[SERVER][" + cyan('SysCheck') + "] DISK " + yellow(used) + " GB used of " + green(total) + " GB (" + yellow(free) + " GB free)");
|
|
697
|
-
} else {
|
|
698
|
-
logger.info("[SERVER][" + cyan('SysCheck') + "] DISK " + yellow(used) + " GB used of " + green(total) + " GB (" + yellow(free) + " GB free)");
|
|
699
|
-
}
|
|
700
|
-
});
|
|
701
|
-
}
|
|
702
|
-
return sys_check_and_log;
|
|
703
|
-
}
|
|
704
|
-
|
|
705
|
-
function init_cron(logger) {
|
|
706
|
-
var sys_check_and_log = init_sys_check_and_log(logger);
|
|
707
|
-
new CronJob('30 * * * *', sys_check_and_log, null, true, 'Europe/Madrid');
|
|
708
|
-
}
|
|
709
|
-
|
|
710
672
|
function init_emailer(options, defaults, silent) {
|
|
711
673
|
if (silent === void 0) {
|
|
712
674
|
silent = false;
|
|
@@ -928,75 +890,6 @@ var init_context_middleware = function init_context_middleware(app, config) {
|
|
|
928
890
|
app.context.miolo = mioloContext;
|
|
929
891
|
};
|
|
930
892
|
|
|
931
|
-
var _if_options = function _if_options(http, field, callback) {
|
|
932
|
-
try {
|
|
933
|
-
var val = http[field];
|
|
934
|
-
if (val != undefined && val != false) {
|
|
935
|
-
return callback(val);
|
|
936
|
-
}
|
|
937
|
-
} catch (_) {}
|
|
938
|
-
};
|
|
939
|
-
var _cors_options = function _cors_options(options) {
|
|
940
|
-
if (typeof options == 'object') {
|
|
941
|
-
return options;
|
|
942
|
-
}
|
|
943
|
-
return {};
|
|
944
|
-
};
|
|
945
|
-
var _proxy_options = function _proxy_options(options) {
|
|
946
|
-
var _options, _options2, _options3, _options4;
|
|
947
|
-
if (options == undefined) {
|
|
948
|
-
options = {};
|
|
949
|
-
}
|
|
950
|
-
var tpath = ((_options = options) == null ? void 0 : _options.path) || '/';
|
|
951
|
-
var target = ((_options2 = options) == null ? void 0 : _options2.target) || "https://proxy.miolo.com";
|
|
952
|
-
var changeOrigin = ((_options3 = options) == null ? void 0 : _options3.changeOrigin) != undefined ? options.changeOrigin : true;
|
|
953
|
-
var logs = ((_options4 = options) == null ? void 0 : _options4.logs) != undefined ? options.logs : true;
|
|
954
|
-
var toptions = {
|
|
955
|
-
target: target,
|
|
956
|
-
changeOrigin: changeOrigin,
|
|
957
|
-
logs: logs
|
|
958
|
-
};
|
|
959
|
-
return [tpath, toptions];
|
|
960
|
-
};
|
|
961
|
-
var init_headers_middleware = function init_headers_middleware(app, http) {
|
|
962
|
-
var logger = app.context.miolo.logger;
|
|
963
|
-
_if_options(http, 'cors', function (options) {
|
|
964
|
-
if (options == 'simple') {
|
|
965
|
-
logger.debug("Setting CORS the simple way");
|
|
966
|
-
app.use( /*#__PURE__*/function () {
|
|
967
|
-
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ctx, next) {
|
|
968
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
969
|
-
while (1) switch (_context.prev = _context.next) {
|
|
970
|
-
case 0:
|
|
971
|
-
ctx.set('Access-Control-Allow-Origin', '*');
|
|
972
|
-
ctx.set('Access-Control-Expose-Headers', 'SourceMap,X-SourceMap');
|
|
973
|
-
_context.next = 4;
|
|
974
|
-
return next();
|
|
975
|
-
case 4:
|
|
976
|
-
case "end":
|
|
977
|
-
return _context.stop();
|
|
978
|
-
}
|
|
979
|
-
}, _callee);
|
|
980
|
-
}));
|
|
981
|
-
return function (_x, _x2) {
|
|
982
|
-
return _ref.apply(this, arguments);
|
|
983
|
-
};
|
|
984
|
-
}());
|
|
985
|
-
} else {
|
|
986
|
-
var coptions = _cors_options(options);
|
|
987
|
-
logger.debug("Setting CORS headers for " + JSON.stringify(coptions));
|
|
988
|
-
app.use(koa_cors(coptions));
|
|
989
|
-
}
|
|
990
|
-
});
|
|
991
|
-
_if_options(http, 'proxy', function (options) {
|
|
992
|
-
var _proxy_options2 = _proxy_options(options),
|
|
993
|
-
tpath = _proxy_options2[0],
|
|
994
|
-
toptions = _proxy_options2[1];
|
|
995
|
-
logger.debug("Setting Proxy for " + tpath + " to " + toptions.target + " ");
|
|
996
|
-
app.use(koa_proxy(tpath, toptions));
|
|
997
|
-
});
|
|
998
|
-
};
|
|
999
|
-
|
|
1000
893
|
var init_body_middleware = function init_body_middleware(app) {
|
|
1001
894
|
// Compress
|
|
1002
895
|
|
|
@@ -1124,36 +1017,6 @@ var init_static_middleware = function init_static_middleware(app, config) {
|
|
|
1124
1017
|
}
|
|
1125
1018
|
};
|
|
1126
1019
|
|
|
1127
|
-
var init_extra_middlewares = function init_extra_middlewares(app, middlewares) {
|
|
1128
|
-
if (middlewares == undefined || middlewares.length == 0) {
|
|
1129
|
-
return;
|
|
1130
|
-
}
|
|
1131
|
-
middlewares.map(function (midw) {
|
|
1132
|
-
function extra_middleware(_x, _x2) {
|
|
1133
|
-
return _extra_middleware.apply(this, arguments);
|
|
1134
|
-
}
|
|
1135
|
-
function _extra_middleware() {
|
|
1136
|
-
_extra_middleware = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ctx, next) {
|
|
1137
|
-
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1138
|
-
while (1) switch (_context.prev = _context.next) {
|
|
1139
|
-
case 0:
|
|
1140
|
-
_context.next = 2;
|
|
1141
|
-
return midw(ctx);
|
|
1142
|
-
case 2:
|
|
1143
|
-
_context.next = 4;
|
|
1144
|
-
return next();
|
|
1145
|
-
case 4:
|
|
1146
|
-
case "end":
|
|
1147
|
-
return _context.stop();
|
|
1148
|
-
}
|
|
1149
|
-
}, _callee);
|
|
1150
|
-
}));
|
|
1151
|
-
return _extra_middleware.apply(this, arguments);
|
|
1152
|
-
}
|
|
1153
|
-
app.use(extra_middleware);
|
|
1154
|
-
});
|
|
1155
|
-
};
|
|
1156
|
-
|
|
1157
1020
|
var REQUEST_COUNTER = 1;
|
|
1158
1021
|
|
|
1159
1022
|
/**
|
|
@@ -1287,40 +1150,140 @@ function init_route_catch_js_error(app, route) {
|
|
|
1287
1150
|
app.use(catch_js_error_router.routes());
|
|
1288
1151
|
}
|
|
1289
1152
|
|
|
1290
|
-
var
|
|
1291
|
-
|
|
1292
|
-
|
|
1293
|
-
var indexHTML = readFileSync(indexHTMLPath, 'utf8');
|
|
1294
|
-
function init_route_html_render(app, html) {
|
|
1295
|
-
// Server-side render
|
|
1296
|
-
function html_render(_x) {
|
|
1297
|
-
return _html_render.apply(this, arguments);
|
|
1153
|
+
var init_extra_middlewares = function init_extra_middlewares(app, middlewares) {
|
|
1154
|
+
if (middlewares == undefined || middlewares.length == 0) {
|
|
1155
|
+
return;
|
|
1298
1156
|
}
|
|
1299
|
-
function
|
|
1300
|
-
|
|
1301
|
-
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
|
|
1311
|
-
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1157
|
+
middlewares.map(function (midw) {
|
|
1158
|
+
function extra_middleware(_x, _x2) {
|
|
1159
|
+
return _extra_middleware.apply(this, arguments);
|
|
1160
|
+
}
|
|
1161
|
+
function _extra_middleware() {
|
|
1162
|
+
_extra_middleware = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ctx, next) {
|
|
1163
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1164
|
+
while (1) switch (_context.prev = _context.next) {
|
|
1165
|
+
case 0:
|
|
1166
|
+
_context.next = 2;
|
|
1167
|
+
return midw(ctx);
|
|
1168
|
+
case 2:
|
|
1169
|
+
_context.next = 4;
|
|
1170
|
+
return next();
|
|
1171
|
+
case 4:
|
|
1172
|
+
case "end":
|
|
1173
|
+
return _context.stop();
|
|
1174
|
+
}
|
|
1175
|
+
}, _callee);
|
|
1176
|
+
}));
|
|
1177
|
+
return _extra_middleware.apply(this, arguments);
|
|
1178
|
+
}
|
|
1179
|
+
app.use(extra_middleware);
|
|
1180
|
+
});
|
|
1181
|
+
};
|
|
1182
|
+
|
|
1183
|
+
var _if_options = function _if_options(http, field, callback) {
|
|
1184
|
+
try {
|
|
1185
|
+
var val = http[field];
|
|
1186
|
+
if (val != undefined && val != false) {
|
|
1187
|
+
return callback(val);
|
|
1188
|
+
}
|
|
1189
|
+
} catch (_) {}
|
|
1190
|
+
};
|
|
1191
|
+
var _cors_options = function _cors_options(options) {
|
|
1192
|
+
if (typeof options == 'object') {
|
|
1193
|
+
return options;
|
|
1320
1194
|
}
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1195
|
+
return {};
|
|
1196
|
+
};
|
|
1197
|
+
var _proxy_options = function _proxy_options(options) {
|
|
1198
|
+
var _options, _options2, _options3, _options4;
|
|
1199
|
+
if (options == undefined) {
|
|
1200
|
+
options = {};
|
|
1201
|
+
}
|
|
1202
|
+
var tpath = ((_options = options) == null ? void 0 : _options.path) || '/';
|
|
1203
|
+
var target = ((_options2 = options) == null ? void 0 : _options2.target) || "https://proxy.miolo.com";
|
|
1204
|
+
var changeOrigin = ((_options3 = options) == null ? void 0 : _options3.changeOrigin) != undefined ? options.changeOrigin : true;
|
|
1205
|
+
var logs = ((_options4 = options) == null ? void 0 : _options4.logs) != undefined ? options.logs : true;
|
|
1206
|
+
var toptions = {
|
|
1207
|
+
target: target,
|
|
1208
|
+
changeOrigin: changeOrigin,
|
|
1209
|
+
logs: logs
|
|
1210
|
+
};
|
|
1211
|
+
return [tpath, toptions];
|
|
1212
|
+
};
|
|
1213
|
+
var init_headers_middleware = function init_headers_middleware(app, http) {
|
|
1214
|
+
var logger = app.context.miolo.logger;
|
|
1215
|
+
_if_options(http, 'cors', function (options) {
|
|
1216
|
+
if (options == 'simple') {
|
|
1217
|
+
logger.debug("Setting CORS the simple way");
|
|
1218
|
+
app.use( /*#__PURE__*/function () {
|
|
1219
|
+
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ctx, next) {
|
|
1220
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1221
|
+
while (1) switch (_context.prev = _context.next) {
|
|
1222
|
+
case 0:
|
|
1223
|
+
ctx.set('Access-Control-Allow-Origin', '*');
|
|
1224
|
+
ctx.set('Access-Control-Expose-Headers', 'SourceMap,X-SourceMap');
|
|
1225
|
+
_context.next = 4;
|
|
1226
|
+
return next();
|
|
1227
|
+
case 4:
|
|
1228
|
+
case "end":
|
|
1229
|
+
return _context.stop();
|
|
1230
|
+
}
|
|
1231
|
+
}, _callee);
|
|
1232
|
+
}));
|
|
1233
|
+
return function (_x, _x2) {
|
|
1234
|
+
return _ref.apply(this, arguments);
|
|
1235
|
+
};
|
|
1236
|
+
}());
|
|
1237
|
+
} else {
|
|
1238
|
+
var coptions = _cors_options(options);
|
|
1239
|
+
logger.debug("Setting CORS headers for " + JSON.stringify(coptions));
|
|
1240
|
+
app.use(koa_cors(coptions));
|
|
1241
|
+
}
|
|
1242
|
+
});
|
|
1243
|
+
_if_options(http, 'proxy', function (options) {
|
|
1244
|
+
var _proxy_options2 = _proxy_options(options),
|
|
1245
|
+
tpath = _proxy_options2[0],
|
|
1246
|
+
toptions = _proxy_options2[1];
|
|
1247
|
+
logger.debug("Setting Proxy for " + tpath + " to " + toptions.target + " ");
|
|
1248
|
+
app.use(koa_proxy(tpath, toptions));
|
|
1249
|
+
});
|
|
1250
|
+
};
|
|
1251
|
+
|
|
1252
|
+
function init_sys_check_and_log(logger) {
|
|
1253
|
+
function toMB(bytes) {
|
|
1254
|
+
if (!bytes) return 0;
|
|
1255
|
+
return bytes / 1000000;
|
|
1256
|
+
}
|
|
1257
|
+
function toGB(kbytes) {
|
|
1258
|
+
if (!kbytes) return 0;
|
|
1259
|
+
return kbytes / 1000000;
|
|
1260
|
+
}
|
|
1261
|
+
function sys_check_and_log() {
|
|
1262
|
+
var used = Math.round(toMB(os.freemem()), 2);
|
|
1263
|
+
var total = Math.round(toMB(os.totalmem()), 2);
|
|
1264
|
+
var perc = Math.round(used * 100 / total, 2);
|
|
1265
|
+
if (perc > 80) {
|
|
1266
|
+
logger.error("[SERVER][" + cyan('SysCheck') + "] RAM " + yellow(used) + " MB used of " + green(total) + " MB (" + yellow(perc) + " %)");
|
|
1267
|
+
} else {
|
|
1268
|
+
logger.info("[SERVER][" + cyan('SysCheck') + "] RAM " + yellow(used) + " MB used of " + green(total) + " MB (" + yellow(perc) + " %)");
|
|
1269
|
+
}
|
|
1270
|
+
diskspace.check('/', function (err, result) {
|
|
1271
|
+
var used = Math.round(toGB(result.used), 2);
|
|
1272
|
+
var total = Math.round(toGB(result.total), 2);
|
|
1273
|
+
var free = Math.round(toGB(result.free), 2);
|
|
1274
|
+
if (free < 1) {
|
|
1275
|
+
logger.error("[SERVER][" + cyan('SysCheck') + "] DISK " + yellow(used) + " GB used of " + green(total) + " GB (" + yellow(free) + " GB free)");
|
|
1276
|
+
} else {
|
|
1277
|
+
logger.info("[SERVER][" + cyan('SysCheck') + "] DISK " + yellow(used) + " GB used of " + green(total) + " GB (" + yellow(free) + " GB free)");
|
|
1278
|
+
}
|
|
1279
|
+
});
|
|
1280
|
+
}
|
|
1281
|
+
return sys_check_and_log;
|
|
1282
|
+
}
|
|
1283
|
+
|
|
1284
|
+
function init_cron(logger) {
|
|
1285
|
+
var sys_check_and_log = init_sys_check_and_log(logger);
|
|
1286
|
+
new CronJob('30 * * * *', sys_check_and_log, null, true, 'Europe/Madrid');
|
|
1324
1287
|
}
|
|
1325
1288
|
|
|
1326
1289
|
function miolo(_x, _x2, _x3) {
|
|
@@ -1329,26 +1292,12 @@ function miolo(_x, _x2, _x3) {
|
|
|
1329
1292
|
function _miolo() {
|
|
1330
1293
|
_miolo = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(sconfig, render, callback) {
|
|
1331
1294
|
var _config$http, _config$auth, _config$auth2, _config$auth3;
|
|
1332
|
-
var app, config, catcher_url, _yield$import, init_guest_auth_middleware, _yield$import2, init_basic_auth_middleware, _yield$import3, init_passport_auth_middleware, conn, extra_middlewares;
|
|
1295
|
+
var app, config, catcher_url, _yield$import, init_guest_auth_middleware, _yield$import2, init_basic_auth_middleware, _yield$import3, init_passport_auth_middleware, conn, extra_middlewares, _yield$import4, init_route_html_render;
|
|
1333
1296
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1334
1297
|
while (1) switch (_context.prev = _context.next) {
|
|
1335
1298
|
case 0:
|
|
1336
1299
|
app = new Koa(); // Init some pieces
|
|
1337
|
-
config = init_config(sconfig); //
|
|
1338
|
-
//const logger = init_logger(config.log, emailer)
|
|
1339
|
-
//config.db.connection.options.log= logger
|
|
1340
|
-
// // attach to app calustra's db methods
|
|
1341
|
-
// initCalustraDbContext(app, config.db)
|
|
1342
|
-
//
|
|
1343
|
-
// // attach to app some custom miolo methods
|
|
1344
|
-
// app.context.miolo = {
|
|
1345
|
-
// config: {...config},
|
|
1346
|
-
// emailer,
|
|
1347
|
-
// logger,
|
|
1348
|
-
// db: app.context.db
|
|
1349
|
-
// }
|
|
1350
|
-
//
|
|
1351
|
-
// attach to app some custom miolo methods
|
|
1300
|
+
config = init_config(sconfig); // attach to app some custom miolo methods
|
|
1352
1301
|
init_context_middleware(app, config);
|
|
1353
1302
|
|
|
1354
1303
|
// Compress and body parser
|
|
@@ -1428,11 +1377,23 @@ function _miolo() {
|
|
|
1428
1377
|
init_headers_middleware(app, config.http);
|
|
1429
1378
|
|
|
1430
1379
|
// Middleware for html render
|
|
1431
|
-
if (render == undefined || render.html != undefined) {
|
|
1432
|
-
|
|
1433
|
-
|
|
1380
|
+
if (!(render == undefined || render.html != undefined)) {
|
|
1381
|
+
_context.next = 41;
|
|
1382
|
+
break;
|
|
1383
|
+
}
|
|
1384
|
+
_context.next = 36;
|
|
1385
|
+
return Promise.resolve().then(function () { return html_render; });
|
|
1386
|
+
case 36:
|
|
1387
|
+
_yield$import4 = _context.sent;
|
|
1388
|
+
init_route_html_render = _yield$import4.init_route_html_render;
|
|
1389
|
+
init_route_html_render(app, render == null ? void 0 : render.html);
|
|
1390
|
+
_context.next = 42;
|
|
1391
|
+
break;
|
|
1392
|
+
case 41:
|
|
1393
|
+
if (render.middleware != undefined) {
|
|
1434
1394
|
app.use(render.middleware);
|
|
1435
1395
|
}
|
|
1396
|
+
case 42:
|
|
1436
1397
|
app.listen(config.http.port, config.http.hostname, function () {
|
|
1437
1398
|
app.context.miolo.logger.info("miolo is listening on " + config.http.hostname + ":" + config.http.port);
|
|
1438
1399
|
init_cron(app.context.miolo.logger);
|
|
@@ -1441,7 +1402,7 @@ function _miolo() {
|
|
|
1441
1402
|
}
|
|
1442
1403
|
});
|
|
1443
1404
|
return _context.abrupt("return", app);
|
|
1444
|
-
case
|
|
1405
|
+
case 44:
|
|
1445
1406
|
case "end":
|
|
1446
1407
|
return _context.stop();
|
|
1447
1408
|
}
|
|
@@ -1450,77 +1411,22 @@ function _miolo() {
|
|
|
1450
1411
|
return _miolo.apply(this, arguments);
|
|
1451
1412
|
}
|
|
1452
1413
|
|
|
1453
|
-
var Context = /*#__PURE__*/React.createContext();
|
|
1454
|
-
|
|
1455
|
-
var AppContext = function AppContext(_ref) {
|
|
1456
|
-
var context = _ref.context,
|
|
1457
|
-
children = _ref.children;
|
|
1458
|
-
var _useState = useState(context),
|
|
1459
|
-
innerContext = _useState[0],
|
|
1460
|
-
setInnerContext = _useState[1];
|
|
1461
|
-
useEffect(function () {
|
|
1462
|
-
setInnerContext(context);
|
|
1463
|
-
}, [context]);
|
|
1464
|
-
return /*#__PURE__*/React.createElement(Context.Provider, {
|
|
1465
|
-
value: {
|
|
1466
|
-
context: innerContext,
|
|
1467
|
-
setContext: setInnerContext
|
|
1468
|
-
}
|
|
1469
|
-
}, children);
|
|
1470
|
-
};
|
|
1471
|
-
|
|
1472
|
-
var AppSsr = function AppSsr(_ref) {
|
|
1473
|
-
var url = _ref.url,
|
|
1474
|
-
context = _ref.context,
|
|
1475
|
-
children = _ref.children;
|
|
1476
|
-
return /*#__PURE__*/React.createElement(StaticRouter, {
|
|
1477
|
-
location: url
|
|
1478
|
-
}, /*#__PURE__*/React.createElement(AppContext, {
|
|
1479
|
-
context: context
|
|
1480
|
-
}, children));
|
|
1481
|
-
};
|
|
1482
|
-
|
|
1483
1414
|
var ErrMessage = function ErrMessage(_ref) {
|
|
1484
1415
|
_ref.ctx;
|
|
1485
1416
|
var error = _ref.error;
|
|
1486
1417
|
return /*#__PURE__*/React.createElement("div", null, "[MIOLO-SERVER_TOOLS] Missing SSR renderer: " + error.toString());
|
|
1487
1418
|
};
|
|
1488
1419
|
|
|
1489
|
-
var html = "\n\t\t<!DOCTYPE html>\n\t\t<html lang=\"en\">\n\t\t<head>\n\t\t\t<meta charset=\"utf-8\">\n\t\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n\t\t\t<title>miolo</title>\n\t\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\t\t\t<meta name=\"description\" content=\"miolo\" />\n\t\t\t<meta name=\"keywords\" content=\"miolo web\" />\n\t\t\t<meta name=\"author\" content=\"miolo.afialapis.com\" />\n\n\t\t\t<!-- Touch Icons - iOS and Android 2.1+ 180x180 pixels in size. --> \n\t\t\t<!--<link rel=\"apple-touch-icon-precomposed\" href=\"/favicon.ico\"/>-->\n\t\t\t<!-- Firefox, Chrome, Safari, IE 11+ and Opera. 196x196 pixels in size. -->\n\t\t\t<link rel=\"icon\" href=\"/favicon.ico\"/>\n\n\t\t\t
|
|
1420
|
+
var html = "\n\t\t<!DOCTYPE html>\n\t\t<html lang=\"en\">\n\t\t<head>\n\t\t\t<meta charset=\"utf-8\">\n\t\t\t<meta http-equiv=\"X-UA-Compatible\" content=\"IE=edge\">\n\t\t\t<title>miolo</title>\n\t\t\t<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n\t\t\t<meta name=\"description\" content=\"miolo\" />\n\t\t\t<meta name=\"keywords\" content=\"miolo web\" />\n\t\t\t<meta name=\"author\" content=\"miolo.afialapis.com\" />\n\n\t\t\t<!-- Touch Icons - iOS and Android 2.1+ 180x180 pixels in size. --> \n\t\t\t<!--<link rel=\"apple-touch-icon-precomposed\" href=\"/favicon.ico\"/>-->\n\t\t\t<!-- Firefox, Chrome, Safari, IE 11+ and Opera. 196x196 pixels in size. -->\n\t\t\t<link rel=\"icon\" href=\"/favicon.ico\"/>\n\n\t\t\t<script>\n\t\t\t\twindow.__CONTEXT = {context}\n\t\t\t</script>\t\t\n\t\t</head>\n\n\t\t<body>\n\t\t\t<div id=\"root\">{children}</div>\n\t\t</body>\n\t\t</html>\n ";
|
|
1490
1421
|
|
|
1491
1422
|
function init_render_middleware(loader, renderer, options) {
|
|
1492
1423
|
// parse options
|
|
1493
|
-
var html$1 = html
|
|
1494
|
-
port = 8000,
|
|
1495
|
-
use_css = true;
|
|
1424
|
+
var html$1 = html;
|
|
1496
1425
|
try {
|
|
1497
1426
|
if ((options == null ? void 0 : options.html) != undefined) {
|
|
1498
1427
|
html$1 = options.html;
|
|
1499
1428
|
}
|
|
1500
1429
|
} catch (_) {}
|
|
1501
|
-
try {
|
|
1502
|
-
if ((options == null ? void 0 : options.port) != undefined) {
|
|
1503
|
-
if (!isNaN(parseInt(options.port))) {
|
|
1504
|
-
port = parseInt(options.port);
|
|
1505
|
-
}
|
|
1506
|
-
}
|
|
1507
|
-
} catch (_) {}
|
|
1508
|
-
try {
|
|
1509
|
-
use_css = (options == null ? void 0 : options.css) !== false;
|
|
1510
|
-
} catch (_) {}
|
|
1511
|
-
var bundleURL = '';
|
|
1512
|
-
var cssURL = use_css ? '' : '';
|
|
1513
|
-
var def_renderer = function def_renderer(ctx) {
|
|
1514
|
-
try {
|
|
1515
|
-
return renderer(ctx);
|
|
1516
|
-
} catch (error) {
|
|
1517
|
-
ctx.miolo.logger.error('Missing renderer in the render middleware');
|
|
1518
|
-
return ErrMessage({
|
|
1519
|
-
ctx: ctx,
|
|
1520
|
-
error: error
|
|
1521
|
-
});
|
|
1522
|
-
}
|
|
1523
|
-
};
|
|
1524
1430
|
var def_loader = /*#__PURE__*/function () {
|
|
1525
1431
|
var _ref = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ctx) {
|
|
1526
1432
|
var res;
|
|
@@ -1565,7 +1471,6 @@ function init_render_middleware(loader, renderer, options) {
|
|
|
1565
1471
|
return def_loader(ctx);
|
|
1566
1472
|
case 2:
|
|
1567
1473
|
ssr_data = _context2.sent;
|
|
1568
|
-
//const ssr_comp = def_renderer(ctx)
|
|
1569
1474
|
isAuthed = false;
|
|
1570
1475
|
try {
|
|
1571
1476
|
isAuthed = (ctx == null ? void 0 : ctx.isAuthenticated()) === true;
|
|
@@ -1592,15 +1497,21 @@ function init_render_middleware(loader, renderer, options) {
|
|
|
1592
1497
|
ssr_data: ssr_data,
|
|
1593
1498
|
extra: ctx == null ? void 0 : ctx.extra
|
|
1594
1499
|
};
|
|
1595
|
-
ssr_html =
|
|
1596
|
-
|
|
1597
|
-
|
|
1598
|
-
}
|
|
1599
|
-
|
|
1600
|
-
|
|
1601
|
-
|
|
1500
|
+
ssr_html = '';
|
|
1501
|
+
try {
|
|
1502
|
+
ssr_html = renderToString(renderer(ctx, context));
|
|
1503
|
+
} catch (error) {
|
|
1504
|
+
ctx.miolo.logger.error('Missing renderer in the render middleware');
|
|
1505
|
+
ctx.miolo.logger.error(error);
|
|
1506
|
+
ssr_html = renderToString( /*#__PURE__*/React.createElement(ErrMessage, {
|
|
1507
|
+
ctx: ctx,
|
|
1508
|
+
error: error
|
|
1509
|
+
}));
|
|
1510
|
+
}
|
|
1511
|
+
parsed_html = html$1.replace('{context}', JSON.stringify(context, null, 2)).replace('{children}', ssr_html);
|
|
1512
|
+
ctx.miolo.logger.debug("render_middleware() rendered HTML (" + Buffer.byteLength(ssr_html, 'utf8') + " bytes of SSR content, " + Buffer.byteLength(parsed_html, 'utf8') + " bytes total) ");
|
|
1602
1513
|
ctx.body = parsed_html;
|
|
1603
|
-
case
|
|
1514
|
+
case 15:
|
|
1604
1515
|
case "end":
|
|
1605
1516
|
return _context2.stop();
|
|
1606
1517
|
}
|
|
@@ -1883,4 +1794,45 @@ var passport = /*#__PURE__*/Object.freeze({
|
|
|
1883
1794
|
init_passport_auth_middleware: init_passport_auth_middleware
|
|
1884
1795
|
});
|
|
1885
1796
|
|
|
1886
|
-
|
|
1797
|
+
var __my_filename = fileURLToPath(require('url').pathToFileURL(__filename).toString());
|
|
1798
|
+
var __my_dirname = path.dirname(__my_filename);
|
|
1799
|
+
var indexHTMLPath = path.resolve(__my_dirname, 'fallback_index.html');
|
|
1800
|
+
var indexHTML = readFileSync(indexHTMLPath, 'utf8');
|
|
1801
|
+
function init_route_html_render(app, html) {
|
|
1802
|
+
// Server-side render
|
|
1803
|
+
function html_render(_x) {
|
|
1804
|
+
return _html_render.apply(this, arguments);
|
|
1805
|
+
}
|
|
1806
|
+
function _html_render() {
|
|
1807
|
+
_html_render = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime().mark(function _callee(ctx) {
|
|
1808
|
+
var logger, reqid, ip, method, url, what;
|
|
1809
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
1810
|
+
while (1) switch (_context.prev = _context.next) {
|
|
1811
|
+
case 0:
|
|
1812
|
+
logger = ctx.miolo.logger;
|
|
1813
|
+
reqid = ctx.requestId;
|
|
1814
|
+
ip = ctx.headers["x-real-ip"] || '127.0.0.1';
|
|
1815
|
+
method = ctx.request.method;
|
|
1816
|
+
url = ctx.request.url;
|
|
1817
|
+
what = html != undefined ? 'provided html' : 'fallback page';
|
|
1818
|
+
logger.info(reqid + " - " + ip + " : " + cyan(method) + " " + cyan(url) + " => Rendering " + what);
|
|
1819
|
+
ctx.body = html || indexHTML;
|
|
1820
|
+
case 8:
|
|
1821
|
+
case "end":
|
|
1822
|
+
return _context.stop();
|
|
1823
|
+
}
|
|
1824
|
+
}, _callee);
|
|
1825
|
+
}));
|
|
1826
|
+
return _html_render.apply(this, arguments);
|
|
1827
|
+
}
|
|
1828
|
+
var html_render_router = new Router();
|
|
1829
|
+
html_render_router.get('/', html_render);
|
|
1830
|
+
app.use(html_render_router.routes());
|
|
1831
|
+
}
|
|
1832
|
+
|
|
1833
|
+
var html_render = /*#__PURE__*/Object.freeze({
|
|
1834
|
+
__proto__: null,
|
|
1835
|
+
init_route_html_render: init_route_html_render
|
|
1836
|
+
});
|
|
1837
|
+
|
|
1838
|
+
export { init_render_middleware, miolo };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "miolo",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "all-in-one koa-based server",
|
|
5
5
|
"author": "Donato Lorenzo <donato@afialapis.com>",
|
|
6
6
|
"contributors": [
|
|
@@ -52,10 +52,9 @@
|
|
|
52
52
|
|
|
53
53
|
"dist": "npm run cli-dist && npm run cli-react-dist && npm run server-dist",
|
|
54
54
|
|
|
55
|
-
"demo-cli-build-bundle": "npx xeira bundle --target=browser --source_index=./demo/src/cli/index.js --bundle_folder=./demo/build
|
|
56
|
-
"demo-cli-build-trim": "rm -fr ./demo/build
|
|
57
|
-
"demo-cli-build
|
|
58
|
-
"demo-cli-build": "rm -fr ./demo/build/* && npm run demo-cli-build-bundle && npm run demo-cli-build-trim && npm run demo-cli-build-link",
|
|
55
|
+
"demo-cli-build-bundle": "npx xeira bundle --target=browser --source_index=./demo/src/cli/index.js --bundle_folder=./demo/build --bundle_name=miolo-demo --bundler=rollup",
|
|
56
|
+
"demo-cli-build-trim": "rm -fr ./demo/build/*umd* ./demo/build/*.mjs* ./demo/build/*.min* ./demo/build/*.iife.js*",
|
|
57
|
+
"demo-cli-build": "rm -fr ./demo/build/* && npm run demo-cli-build-bundle && npm run demo-cli-build-trim",
|
|
59
58
|
"demo-server": "NODE_ENV=development npx nodemon --inspect ./demo/src/server/index.js",
|
|
60
59
|
"demo": "npm run demo-cli-build && npm run demo-server",
|
|
61
60
|
|
|
@@ -95,9 +94,9 @@
|
|
|
95
94
|
"winston": "^3.6.0"
|
|
96
95
|
},
|
|
97
96
|
"peerDependencies": {
|
|
98
|
-
"react": "
|
|
99
|
-
"react-dom": "
|
|
100
|
-
"react-router-dom": "
|
|
97
|
+
"react": ">=16.13.1",
|
|
98
|
+
"react-dom": ">=16.13.1",
|
|
99
|
+
"react-router-dom": ">=6.2.1"
|
|
101
100
|
},
|
|
102
101
|
"devDependencies": {
|
|
103
102
|
"@babel/core": "^7.17.2",
|
|
@@ -105,7 +104,7 @@
|
|
|
105
104
|
"@babel/preset-react": "7.16.7",
|
|
106
105
|
"@babel/register": "7.16.9",
|
|
107
106
|
"nodemon": "^2.0.22",
|
|
108
|
-
"xeira": "^0.3.
|
|
107
|
+
"xeira": "^0.3.3"
|
|
109
108
|
},
|
|
110
109
|
"eslintConfig": {
|
|
111
110
|
"extends": [
|