miolo 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.
Files changed (246) hide show
  1. package/bin/build/build.mjs +53 -0
  2. package/bin/build/build_bin.mjs +17 -0
  3. package/bin/build/cli/client.mjs +52 -0
  4. package/bin/build/cli/css.mjs +22 -0
  5. package/bin/build/cli/index.mjs +40 -0
  6. package/bin/build/cli/ssr.mjs +21 -0
  7. package/bin/build/server/aliases.mjs +112 -0
  8. package/bin/build/server/babel.config.js +24 -0
  9. package/bin/build/server/banner.mjs +20 -0
  10. package/bin/build/server/bundle.mjs +111 -0
  11. package/bin/build/server/fix.mjs +15 -0
  12. package/bin/build/server/index.mjs +69 -0
  13. package/bin/build/server/options.mjs +83 -0
  14. package/bin/create/auth.mjs +23 -0
  15. package/bin/create/copy.mjs +175 -0
  16. package/bin/create/docker.mjs +25 -0
  17. package/bin/create/index.mjs +137 -0
  18. package/bin/create/pkgjson.mjs +72 -0
  19. package/bin/create/prepare-template.mjs +158 -0
  20. package/bin/create/validation.mjs +27 -0
  21. package/bin/dev/dev.mjs +32 -23
  22. package/bin/dev/dev_start.mjs +6 -5
  23. package/bin/index.mjs +94 -52
  24. package/bin/prod-bin/create-bin.mjs +42 -27
  25. package/bin/prod-bin/run.mjs +13 -9
  26. package/bin/{prod-run → run}/pid.mjs +4 -4
  27. package/bin/run/restart.mjs +13 -0
  28. package/bin/run/start.mjs +18 -0
  29. package/bin/run/stop.mjs +20 -0
  30. package/bin/util.mjs +35 -11
  31. package/package.json +59 -39
  32. package/src/config/.env +34 -12
  33. package/src/config/defaults.mjs +253 -185
  34. package/src/config/env.mjs +40 -22
  35. package/src/config/index.mjs +19 -24
  36. package/src/config/util.mjs +25 -10
  37. package/src/db-conn.mjs +34 -0
  38. package/src/engines/cron/emails.mjs +10 -5
  39. package/src/engines/cron/index.mjs +45 -51
  40. package/src/engines/cron/init.mjs +16 -17
  41. package/src/engines/cron/ipsum.mjs +65 -60
  42. package/src/engines/cron/syscheck.mjs +30 -30
  43. package/src/engines/emailer/index.mjs +1 -2
  44. package/src/engines/emailer/queue.mjs +14 -20
  45. package/src/engines/emailer/transporter.mjs +86 -74
  46. package/src/engines/geoip/index.mjs +23 -28
  47. package/src/engines/http/index.mjs +26 -15
  48. package/src/engines/logger/buildErrorEmailBody.mjs +72 -0
  49. package/src/engines/logger/index.mjs +114 -122
  50. package/src/engines/logger/injectStackTrace.mjs +59 -0
  51. package/src/engines/logger/logger_mail.mjs +47 -61
  52. package/src/engines/logger/reopenTransportOnHupSignal.mjs +12 -13
  53. package/src/engines/parser/Parser.mjs +77 -60
  54. package/src/engines/parser/index.mjs +1 -1
  55. package/src/engines/schema/diffObjs.mjs +41 -0
  56. package/src/engines/schema/index.mjs +4 -0
  57. package/src/engines/schema/input.mjs +54 -0
  58. package/src/engines/schema/output.mjs +66 -0
  59. package/src/engines/socket/index.mjs +44 -46
  60. package/src/index.mjs +15 -10
  61. package/src/middleware/auth/basic.mjs +41 -40
  62. package/src/middleware/auth/custom.mjs +10 -13
  63. package/src/middleware/auth/guest.mjs +27 -27
  64. package/src/middleware/auth/passport/index.mjs +374 -0
  65. package/src/middleware/auth/passport/session/index.mjs +43 -0
  66. package/src/middleware/auth/{credentials → passport}/session/store.mjs +35 -15
  67. package/src/middleware/auth/passport/session/store_koa_redis.mjs +3 -0
  68. package/src/middleware/context/cache/index.mjs +78 -33
  69. package/src/middleware/context/cache/options.mjs +19 -21
  70. package/src/middleware/context/db.mjs +45 -20
  71. package/src/middleware/context/index.mjs +12 -12
  72. package/src/middleware/extra.mjs +4 -5
  73. package/src/middleware/http/body.mjs +25 -25
  74. package/src/middleware/http/catcher.mjs +81 -8
  75. package/src/middleware/http/custom_blacklist.mjs +19 -16
  76. package/src/middleware/http/headers.mjs +37 -34
  77. package/src/middleware/http/ratelimit.mjs +16 -23
  78. package/src/middleware/http/request.mjs +60 -65
  79. package/src/middleware/routes/catch_js_error.mjs +30 -23
  80. package/src/middleware/routes/robots.mjs +4 -7
  81. package/src/middleware/routes/router/crud/attachCrudRoutes.mjs +108 -90
  82. package/src/middleware/routes/router/crud/getCrudConfig.mjs +31 -55
  83. package/src/middleware/routes/router/defaults.mjs +6 -19
  84. package/src/middleware/routes/router/index.mjs +17 -21
  85. package/src/middleware/routes/router/queries/attachQueriesRoutes.mjs +227 -50
  86. package/src/middleware/routes/router/queries/getQueriesConfig.mjs +45 -55
  87. package/src/middleware/routes/router/utils.mjs +41 -26
  88. package/src/middleware/ssr/context.mjs +5 -7
  89. package/src/middleware/ssr/html.mjs +66 -43
  90. package/src/middleware/ssr/loader.mjs +11 -14
  91. package/src/middleware/ssr/ssr_render.mjs +39 -22
  92. package/src/middleware/static/index.mjs +33 -14
  93. package/src/middleware/vite/devserver.mjs +38 -22
  94. package/src/middleware/vite/watcher.mjs +12 -14
  95. package/src/server-cron.mjs +13 -8
  96. package/src/server-dev.mjs +13 -16
  97. package/src/server.mjs +49 -51
  98. package/template/.agent/skills/miolo-app-arch/SKILL.md +218 -0
  99. package/template/.agent/skills/miolo-auth/SKILL.md +450 -0
  100. package/template/.agent/skills/miolo-cli-router/SKILL.md +394 -0
  101. package/template/.agent/skills/miolo-database/SKILL.md +358 -0
  102. package/template/.agent/skills/miolo-react-patterns/SKILL.md +426 -0
  103. package/template/.agent/skills/miolo-routing/SKILL.md +326 -0
  104. package/template/.agent/skills/miolo-schemas/SKILL.md +329 -0
  105. package/template/.agent/skills/miolo-session-context/SKILL.md +397 -0
  106. package/template/.agent/skills/miolo-ssr/SKILL.md +433 -0
  107. package/template/.editorconfig +18 -0
  108. package/template/.env +120 -0
  109. package/template/biome.json +63 -0
  110. package/template/components.json +21 -0
  111. package/template/db/init.sh +89 -0
  112. package/template/db/sql/00_drop.sql +2 -0
  113. package/template/db/sql/01_users.sql +31 -0
  114. package/template/db/sql/02_todos.sql +20 -0
  115. package/template/docker/Dockerfile +13 -0
  116. package/template/docker/docker-compose.yaml +79 -0
  117. package/template/gitignore +42 -0
  118. package/template/jsconfig.json +18 -0
  119. package/template/package.json +88 -0
  120. package/template/postcss.config.js +9 -0
  121. package/template/src/cli/App.jsx +25 -0
  122. package/template/src/cli/components/JsonTreeViewer.jsx +128 -0
  123. package/template/src/cli/components/shadcn-io/spinner/index.jsx +232 -0
  124. package/template/src/cli/components/stepper.jsx +408 -0
  125. package/template/src/cli/components/ui/avatar.jsx +36 -0
  126. package/template/src/cli/components/ui/badge.jsx +31 -0
  127. package/template/src/cli/components/ui/breadcrumb.jsx +97 -0
  128. package/template/src/cli/components/ui/card.jsx +73 -0
  129. package/template/src/cli/components/ui/collapsible.jsx +16 -0
  130. package/template/src/cli/components/ui/dropdown-menu.jsx +179 -0
  131. package/template/src/cli/components/ui/field.jsx +217 -0
  132. package/template/src/cli/components/ui/input.jsx +19 -0
  133. package/template/src/cli/components/ui/label.jsx +17 -0
  134. package/template/src/cli/components/ui/pagination.jsx +99 -0
  135. package/template/src/cli/components/ui/patched/alert.jsx +56 -0
  136. package/template/src/cli/components/ui/patched/button.jsx +45 -0
  137. package/template/src/cli/components/ui/patched/dialog.jsx +114 -0
  138. package/template/src/cli/components/ui/patched/sidebar.jsx +660 -0
  139. package/template/src/cli/components/ui/select.jsx +141 -0
  140. package/template/src/cli/components/ui/separator.jsx +21 -0
  141. package/template/src/cli/components/ui/sheet.jsx +115 -0
  142. package/template/src/cli/components/ui/skeleton.jsx +13 -0
  143. package/template/src/cli/components/ui/sonner.jsx +22 -0
  144. package/template/src/cli/components/ui/switch.jsx +25 -0
  145. package/template/src/cli/components/ui/table.jsx +88 -0
  146. package/template/src/cli/components/ui/textarea.jsx +16 -0
  147. package/template/src/cli/components/ui/tooltip.jsx +45 -0
  148. package/template/src/cli/config/store_keys.mjs +2 -0
  149. package/template/src/cli/context/data/DataContext.jsx +5 -0
  150. package/template/src/cli/context/data/DataProvider.jsx +44 -0
  151. package/template/src/cli/context/data/useBreads.mjs +15 -0
  152. package/template/src/cli/context/data/useDataContext.mjs +4 -0
  153. package/template/src/cli/context/session/SessionContext.mjs +4 -0
  154. package/template/src/cli/context/session/SessionProvider.jsx +31 -0
  155. package/template/src/cli/context/session/makePermissioner.mjs +34 -0
  156. package/template/src/cli/context/session/useSessionContext.mjs +6 -0
  157. package/template/src/cli/context/theme/ThemeContext.mjs +4 -0
  158. package/template/src/cli/context/theme/ThemeProvider.jsx +49 -0
  159. package/template/src/cli/context/theme/useThemeContext.mjs +6 -0
  160. package/template/src/cli/context/ui/UIContext.jsx +5 -0
  161. package/template/src/cli/context/ui/UIProvider.jsx +16 -0
  162. package/template/src/cli/context/ui/useUIContext.mjs +4 -0
  163. package/template/src/cli/context/util.mjs +17 -0
  164. package/template/src/cli/entry-cli.jsx +33 -0
  165. package/template/src/cli/hooks/useIsMobile.mjs +19 -0
  166. package/template/src/cli/hooks/useStoragedState.mjs +63 -0
  167. package/template/src/cli/index.html +29 -0
  168. package/template/src/cli/layout/app-sidebar.jsx +25 -0
  169. package/template/src/cli/layout/main-layout.jsx +63 -0
  170. package/template/src/cli/layout/nav-last-todos.jsx +72 -0
  171. package/template/src/cli/layout/nav-main.jsx +39 -0
  172. package/template/src/cli/layout/nav-user.jsx +105 -0
  173. package/template/src/cli/layout/prop-switcher.jsx +93 -0
  174. package/template/src/cli/lib/utils.mjs +10 -0
  175. package/template/src/cli/pages/Index.jsx +13 -0
  176. package/template/src/cli/pages/IndexOffline.jsx +13 -0
  177. package/template/src/cli/pages/IndexOnline.jsx +18 -0
  178. package/template/src/cli/pages/dash/Dashboard.jsx +29 -0
  179. package/template/src/cli/pages/offline/Login.jsx +43 -0
  180. package/template/src/cli/pages/offline/LoginForm.jsx +115 -0
  181. package/template/src/cli/pages/security/Security.jsx +39 -0
  182. package/template/src/cli/pages/security/SecurityForm.jsx +106 -0
  183. package/template/src/cli/pages/todos/TodoActions.jsx +99 -0
  184. package/template/src/cli/pages/todos/TodoAdd.jsx +43 -0
  185. package/template/src/cli/pages/todos/TodoList.jsx +60 -0
  186. package/template/src/cli/pages/todos/Todos.jsx +23 -0
  187. package/template/src/cli/pages/todos/context/TodosContext.jsx +5 -0
  188. package/template/src/cli/pages/todos/context/TodosProvider.jsx +191 -0
  189. package/template/src/cli/pages/todos/context/useTodosContext.mjs +4 -0
  190. package/template/src/ns/models/Todo.mjs +29 -0
  191. package/template/src/ns/models/TodoList.mjs +8 -0
  192. package/template/src/ns/models/User.mjs +40 -0
  193. package/template/src/server/bot/check_today.mjs +10 -0
  194. package/template/src/server/io/cache/base.mjs +21 -0
  195. package/template/src/server/io/db/filter.mjs +92 -0
  196. package/template/src/server/io/db/todos/delete.mjs +29 -0
  197. package/template/src/server/io/db/todos/find.mjs +13 -0
  198. package/template/src/server/io/db/todos/read.mjs +83 -0
  199. package/template/src/server/io/db/todos/toggle.mjs +37 -0
  200. package/template/src/server/io/db/todos/upsave.mjs +32 -0
  201. package/template/src/server/io/db/triggers/user.mjs +13 -0
  202. package/template/src/server/io/db/users/auth.mjs +132 -0
  203. package/template/src/server/io/db/users/pwd.mjs +38 -0
  204. package/template/src/server/io/db/users/save.mjs +17 -0
  205. package/template/src/server/miolo/auth/basic.mjs +15 -0
  206. package/template/src/server/miolo/auth/guest.mjs +3 -0
  207. package/template/src/server/miolo/auth/passport.mjs +73 -0
  208. package/template/src/server/miolo/cache.mjs +11 -0
  209. package/template/src/server/miolo/cron/foo.mjs +7 -0
  210. package/template/src/server/miolo/cron/index.mjs +28 -0
  211. package/template/src/server/miolo/cron/invalidate.mjs +21 -0
  212. package/template/src/server/miolo/db.mjs +36 -0
  213. package/template/src/server/miolo/http.mjs +14 -0
  214. package/template/src/server/miolo/index.mjs +43 -0
  215. package/template/src/server/miolo/routes/crud.mjs +16 -0
  216. package/template/src/server/miolo/routes/index.mjs +8 -0
  217. package/template/src/server/miolo/ssr/entry-server.jsx +13 -0
  218. package/template/src/server/miolo/ssr/loader.mjs +18 -0
  219. package/template/src/server/routes/index.mjs +66 -0
  220. package/template/src/server/routes/todos/mod.mjs +52 -0
  221. package/template/src/server/routes/todos/read.mjs +45 -0
  222. package/template/src/server/routes/todos/special.mjs +47 -0
  223. package/template/src/server/routes/users/user.mjs +54 -0
  224. package/template/src/server/server.mjs +10 -0
  225. package/template/src/server/utils/crypt.mjs +38 -0
  226. package/template/src/server/utils/io.mjs +15 -0
  227. package/template/src/server/utils/pwdfor.mjs +25 -0
  228. package/template/src/server/utils/schema.mjs +22 -0
  229. package/template/src/static/img/default/profile.png +0 -0
  230. package/template/src/static/img/favicon.ico +0 -0
  231. package/template/src/static/img/miolo_logo.png +0 -0
  232. package/template/src/static/img/miolo_name.png +0 -0
  233. package/template/src/static/public/manifest.json +21 -0
  234. package/template/src/static/public/sw.js +79 -0
  235. package/template/src/static/style/globals.css +156 -0
  236. package/template/src/static/style/json-tree.css +54 -0
  237. package/template/src/static/style/skeleton.css +49 -0
  238. package/bin/prod-build/build-client.mjs +0 -67
  239. package/bin/prod-build/build-server.mjs +0 -58
  240. package/bin/prod-run/restart.mjs +0 -9
  241. package/bin/prod-run/start.mjs +0 -15
  242. package/bin/prod-run/stop.mjs +0 -20
  243. package/src/engines/logger/verify.mjs +0 -22
  244. package/src/middleware/auth/credentials/index.mjs +0 -151
  245. package/src/middleware/auth/credentials/session/index.mjs +0 -24
  246. package/src/middleware/auth/credentials/session/store_koa_redis.mjs +0 -3
@@ -1,58 +0,0 @@
1
-
2
- import path from 'node:path'
3
- import { readFile, writeFile} from 'node:fs/promises'
4
- import { build } from 'vite'
5
- import {xeiraBundle} from 'xeira'
6
- import { cleanFolder } from '../util.mjs'
7
-
8
-
9
- export async function _fixProdBuild(appName, filePath) {
10
- try {
11
- const content = await readFile(filePath, 'utf8')
12
- const newContent = content.replace(
13
- /var key = crypto\.pseudoRandomBytes\(32\)/g,
14
- 'var key = crypto.randomBytes(32)'
15
- )
16
- await writeFile(filePath, newContent, 'utf8')
17
- console.log(`[${appName}][prod] Fixed server build (prod)!`)
18
- } catch (error) {
19
- console.error(`[${appName}][prod] Error fixing server build (prod): ${error}`)
20
- }
21
- }
22
-
23
- export default async function(appName, ssrEntry, ssrDest, srvEntry, srvDest) {
24
- console.log(`[${appName}][prod] Building first the SSR entry ${ssrEntry}`)
25
-
26
- // clean dest folder
27
- cleanFolder(srvDest)
28
-
29
- // Build SSR entry
30
- await build({
31
- build: {
32
- outDir: path.resolve(process.cwd(), ssrDest),
33
- ssr: path.resolve(process.cwd(), ssrEntry),
34
- rollupOptions: {},
35
- },
36
- // server ssr's entry must bundle externals
37
- ssr: {
38
- noExternal: true
39
- }
40
- })
41
-
42
- console.log(`[${appName}][prod] Building server entry for ${srvEntry}`)
43
-
44
- const serverExt = 'node.bundle.mjs'
45
- await xeiraBundle({
46
- source_index: srvEntry,
47
- target: 'node',
48
- bundle_folder: srvDest,
49
- bundle_name: appName,
50
- bundle_extension: serverExt,
51
- bundler: 'rollup',
52
- bundle_node_polyfill: true,
53
- })
54
-
55
- console.log(`[${appName}][prod] Fixing server build (prod)...`)
56
- const destFile = path.join(process.cwd(), `${srvDest}/${appName}.${serverExt}`)
57
- await _fixProdBuild(appName, destFile)
58
- }
@@ -1,9 +0,0 @@
1
- import start from "./start.mjs"
2
- import stop from "./stop.mjs"
3
-
4
- export default async function restart(appName, destFile) {
5
- console.log(`[${appName}][prod][restart] Restarting server...`)
6
-
7
- await stop(appName)
8
- await start(appName, destFile)
9
- }
@@ -1,15 +0,0 @@
1
- import { pidFileCreate } from "./pid.mjs"
2
-
3
- export default async function start(appName, destFile) {
4
-
5
- // Start server
6
- console.log(`[${appName}][prod][start] Starting server from ${destFile}...`)
7
-
8
- const srv_module = await import(destFile)
9
- const server = srv_module.default
10
-
11
- const pid = pidFileCreate(appName)
12
- console.log(`[${appName}][prod][start] Starting server. PID is ${pid}...`)
13
-
14
- await server()
15
- }
@@ -1,20 +0,0 @@
1
- import { pidFileRead } from "./pid.mjs"
2
-
3
- export default async function stop(appName) {
4
- // stop server by killin gprocess
5
- console.log(`[${appName}][prod][stop] Stopping server...`)
6
-
7
- try {
8
- const pid = pidFileRead(appName)
9
- console.log(`[${appName}][prod][stop] Killing current process with PID ${pid}`)
10
-
11
- process.kill(pid, 'SIGKILL')
12
-
13
- return 1
14
- } catch(_) {
15
- console.log(`[${appName}][prod][stop] No current process to kill`)
16
- console.error(_)
17
-
18
- return 0
19
- }
20
- }
@@ -1,22 +0,0 @@
1
- import {make_logger} from './index.mjs'
2
-
3
-
4
- function verify_logger(config) {
5
- const logger= make_logger(config)
6
- try {
7
- console.info('[miolo][Verify][LOGGER] Verifying...')
8
-
9
- logger.error('Error message')
10
- logger.warn('Warn message')
11
- logger.info('Info message')
12
- logger.verbose('Verbose message')
13
- logger.debug('Debug message')
14
- logger.silly('Silly message')
15
-
16
- } catch(e) {
17
- console.error('[miolo][Verify][LOGGER] ERROR: ')
18
- console.error(e)
19
- }
20
- }
21
-
22
- export {verify_logger}
@@ -1,151 +0,0 @@
1
- /* eslint-disable no-unused-vars*/
2
- import passport from 'koa-passport'
3
- import LocalStrategy from 'passport-local'
4
- import Router from '@koa/router'
5
- import { init_session_middleware } from './session/index.mjs'
6
-
7
- // passport: {
8
- // get_user_id: (user, done) => done(null, user.id), // default
9
- // find_user_by_id: (id, done) => done(null, {id: 1}), // ok=> done(null, user) err=> done(error, null)
10
- // local_auth_user: (username, password, done) => done(null, {id: 1})
11
- // // auth=> done(null, user) noauth=> done(null, false, {message: ''}) err=> done(error, null)
12
- // }
13
-
14
-
15
- const def_get_user_id = (user, done, miolo) => done(null, user.id)
16
-
17
- const def_find_user_by_id = (id, done, miolo) => {
18
- const err = Error('You need to define auth.passport.find_user_by_id')
19
- done(err, null)
20
- }
21
-
22
- const def_local_auth_user = (username, password, done, miolo) => {
23
- const err = Error('You need to define auth.passport.local_auth_user')
24
- done(err, null)
25
- }
26
-
27
-
28
- const init_credentials_auth_middleware = ( app, options, sessionConfig, cacheConfig) => {
29
- const {get_user_id, find_user_by_id, local_auth_user,
30
- url_login, url_logout, url_login_redirect, url_logout_redirect} = options
31
-
32
- //const local_options = {}
33
-
34
- // fallback funcs
35
- const get_user_id_f = get_user_id || def_get_user_id
36
- const find_user_by_id_f = find_user_by_id || def_find_user_by_id
37
- const local_auth_user_f = local_auth_user || def_local_auth_user
38
- const url_login_f = url_login || '/login'
39
- const url_logout_f = url_logout || '/logout'
40
-
41
- // init passport
42
- const serialize_user = (user, done) => {
43
- process.nextTick(function() {
44
- get_user_id_f(user, done, app.context.miolo)
45
- })
46
- }
47
-
48
- const deserialize_user = (id, done) => {
49
- process.nextTick(function() {
50
- find_user_by_id_f(id, done, app.context.miolo)
51
- })
52
- }
53
-
54
- const local_strategy= new LocalStrategy.Strategy (
55
- (username, password, done) => {
56
- local_auth_user_f(username, password, done, app.context.miolo)
57
- })
58
-
59
- init_session_middleware(app, sessionConfig, cacheConfig)
60
-
61
- passport.serializeUser(serialize_user)
62
- passport.deserializeUser(deserialize_user)
63
- passport.use(local_strategy)
64
-
65
- app.use(passport.initialize())
66
- app.use(passport.session())
67
-
68
- async function _ensure_ctx_user (ctx, next) {
69
- try{
70
- if (ctx.session.authenticated) {
71
- ctx.session.user = ctx.state.user
72
- }
73
- } catch(_) {}
74
- await next()
75
- }
76
- app.use(_ensure_ctx_user)
77
-
78
- // handle auth routes
79
- const handleLogIn = (ctx, next) => {
80
- return passport.authenticate('local', async function(err, user, info, _status) {
81
- if (user === false) {
82
- ctx.session.user = undefined
83
- ctx.session.authenticated = false
84
-
85
- ctx.body = {
86
- user: undefined,
87
- authenticated: false,
88
- info: info,
89
- error: err
90
- }
91
-
92
- // This will show error logs on the catcher middleware
93
- // ctx.throw(401)
94
-
95
- ctx.response.status= 401
96
- } else {
97
-
98
- ctx.session.user = ctx.state.user
99
- ctx.session.authenticated = true
100
-
101
- ctx.body = {
102
- user : user,
103
- authenticated: true
104
- }
105
- if (url_login_redirect!=undefined) {
106
- ctx.redirect(url_login_redirect)
107
- }
108
-
109
- const res= await ctx.login(user)
110
-
111
- return res
112
- }
113
- })(ctx)
114
- }
115
-
116
- const handleLogOut = async (ctx, next) => {
117
- if (ctx.session.authenticated) {
118
- ctx.session.user = undefined
119
- ctx.session.authenticated = false
120
-
121
- await ctx.logout()
122
- ctx.body = {
123
- user: undefined,
124
- authenticated: false
125
- }
126
- if (url_logout_redirect!=undefined) {
127
- ctx.redirect(url_logout_redirect)
128
- }
129
- } else {
130
-
131
- ctx.body = {
132
- user: undefined,
133
- authenticated: false
134
- }
135
- // This will show error logs on the catcher middleware
136
- // ctx.throw(401)
137
-
138
- ctx.response.status= 401
139
- }
140
- }
141
-
142
- // Init the router
143
- const login_router = new Router()
144
- login_router.post(url_login_f, handleLogIn)
145
- login_router.get (url_logout_f, handleLogOut)
146
- login_router.post(url_logout_f, handleLogOut)
147
-
148
- app.use(login_router.routes())
149
- }
150
-
151
- export {init_credentials_auth_middleware}
@@ -1,24 +0,0 @@
1
- import { createSession } from 'koa-session'
2
- // import store_koa_redis from './store_koa_redis.mjs'
3
- import {init_session_cache_store} from './store.mjs'
4
-
5
- /**
6
- * Middleware for session
7
- * @param ctx
8
- * @param next
9
- */
10
- function init_session_middleware(app, sessionConfig, cacheConfig) {
11
- const store = init_session_cache_store(cacheConfig, app.context.miolo.logger)
12
-
13
- app.keys = [sessionConfig.secret || '*secret*']
14
-
15
- const options= {
16
- // store: store_koa_redis,
17
- store,
18
- ...sessionConfig.options || {}
19
- }
20
-
21
- app.use(createSession(options, app))
22
- }
23
-
24
- export {init_session_middleware}
@@ -1,3 +0,0 @@
1
- import RedisStore from 'koa-redis'
2
-
3
- export default new RedisStore()