diff --git a/.gitignore b/.gitignore index e6290b3..216728d 100644 --- a/.gitignore +++ b/.gitignore @@ -24,5 +24,6 @@ node_modules *.synctex.gz *.fdb_latexmk ._wordcount_selection.tex +/*.zip AppMarketing \ No newline at end of file diff --git a/package.json b/package.json index 0f40951..645eed0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "libreevent", - "version": "1.0.7", + "version": "1.1.0", "description": "A free and open source event management solution", "main": "/dist/app.js", "scripts": { diff --git a/package.sh b/package.sh index 8981e4b..d5b14dd 100755 --- a/package.sh +++ b/package.sh @@ -6,7 +6,7 @@ # # -v="V1.0.7" +v="V1.1.0" echo " _ _ _ _ @@ -154,8 +154,12 @@ zip -9r libreevent-$v-full-icu.zip src/server/package.json src/server/package-lo cd src/server npm uninstall full-icu -cd ../../ -rm -rf dist +cd ../../dist +cp ../README.md . + +ls + +# rm -rf dist echo " @@ -177,5 +181,7 @@ echo " Next steps: - Check that everything was packaged correctly - Create a release on GitHub + - Run 'cd dist && npm publish' + - Delete all newly spawned files " \ No newline at end of file diff --git a/simple/index.js b/simple/index.js new file mode 100644 index 0000000..484e0c6 --- /dev/null +++ b/simple/index.js @@ -0,0 +1,16 @@ +/* +* libreevent - index.js +* +* Created by Janis Hutz 08/26/2024, Licensed under the GPL V3 License +* https://janishutz.com, development@janishutz.com +* +* +*/ + +/* + This file is a wrapper for the npm package +*/ + +const libreevent = require( 'libreevent' ); + +libreevent.run(); \ No newline at end of file diff --git a/simple/package.json b/simple/package.json new file mode 100644 index 0000000..99a3984 --- /dev/null +++ b/simple/package.json @@ -0,0 +1,23 @@ +{ + "name": "libreevent-simple", + "version": "1.0.0", + "description": "Simplify libreevent's install using the npm package", + "main": "index.js", + "scripts": { + "test": "echo \"Error: no test specified\" && exit 1" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/janishutz/libreevent.git" + }, + "keywords": [ + "libreevent", + "simple" + ], + "author": "Janis Hutz", + "license": "GPL-3.0-or-later", + "bugs": { + "url": "https://github.com/janishutz/libreevent/issues" + }, + "homepage": "https://libreevent.janishutz.com" +} diff --git a/src/server/app.js b/src/server/app.js deleted file mode 100644 index 8b75a17..0000000 --- a/src/server/app.js +++ /dev/null @@ -1,114 +0,0 @@ -/* -* libreevent - app.js -* -* Created by Janis Hutz 02/26/2023, Licensed under the GPL V3 License -* https://janishutz.com, development@janishutz.com -* -* -*/ - -const express = require( 'express' ); -let app = express(); -const path = require( 'path' ); -const expressSession = require( 'express-session' ); -const cookieParser = require( 'cookie-parser' ); -const http = require( 'http' ); -const fs = require( 'fs' ); -const token = require( './backend/token.js' ); - -console.log( ` - - _ _ _ _ -| (_) | | | -| |_| |__ _ __ ___ _____ _____ _ __ | |_ -| | | '_ \\| '__/ _ \\/ _ \\ \\ / / _ \\ '_ \\| __| -| | | |_) | | | __/ __/\\ V / __/ | | | |_ -|_|_|_.__/|_| \\___|\\___| \\_/ \\___|_| |_|\\__| - - - - - ------------------------------- - - ==> Welcome to libreevent! - - - ==> You are running Version V1.0.0 - -Below you can see all important things that happen during operation. -libreevent logs all errors in the console such that they appear in the -log files when running it with an output pipe (which you should definitely do) - -To do this run the following command when starting libreevent: -'node app.js > libreevent_log.txt' - -` ); - -console.log( '[ Server ] loading settings' ); -const settings = JSON.parse( fs.readFileSync( path.join( __dirname + '/config/settings.config.json' ) ) ); - - -// Route for static html file for start page (page is compiled using -// Vue SSR and gets its support files (e.g. CSS and JS files) from -// the /home/supportFiles/:file route plus its assets from the /otherAssets/:file -// route). -if ( settings.setupDone ) { - app.get( '/', ( req, res ) => { - res.sendFile( path.join( __dirname + '/ui/home/active/en/index.html' ) ); - } ); -} - - -// Set up static routes for static file serving (performance wise not -// that good, but way easier to set up) -console.log( '[ Server ] Setting up static routes' ); -if ( settings.setupDone ) { - app.use( express.static( 'webapp/main/dist' ) ); -} else { - app.use( express.static( 'webapp/setup/dist' ) ); -} - -// initialise express with middlewares -console.log( '[ Server ] loading and initializing middlewares' ); -app.use( expressSession( { - secret: token.generateToken( 60 ), - resave: false, - saveUninitialized: true, - cookie: { - sameSite: 'none', - httpOnly: true, - secure: false, - } -} ) ); - -app.use( cookieParser() ); - -let file = path.join( __dirname + '/webapp/main/dist/index.html' ); - -if ( settings.setupDone ) { - console.log( '[ Server ] loading backend components' ); - require( './backend/helperRoutes.js' )( app, settings ); // Helper routes - require( './admin/adminRoutes.js' )( app, settings ); // admin routes - require( './admin/adminAPIRoutes.js' )( app, settings ); // admin api routes - require( './admin/appApiRoutes.js' )( app, settings ); // app api routes - require( './backend/userAPIRoutes.js' )( app, settings ); // user api routes - require( './backend/userRoutes.js' )( app, settings ); // user routes - require( './backend/payments/paymentRoutes.js' )( app, settings ); // payment routes - require( './backend/plugins/pluginLoader.js' )( app, settings ); // plugin loader -} else { - console.log( '[ Setup ] Loading setup routes' ); - require( './setup/setupRoutes.js' )( app, settings ); // setup routes - file = path.join( __dirname + '/webapp/setup/dist/index.html' ); -} - -// handling of any unknown route. Returns the SPA index.html file which -// initiates loading of the SPA -app.use( ( request, response ) => { - response.sendFile( file ); -} ); - -console.log( '\n\n[ Server ] loading complete!\n\n' ); - -const PORT = process.env.PORT || 8080; -console.log( '[ Server ] listening on port ' + PORT ); -http.createServer( app ).listen( PORT ); \ No newline at end of file diff --git a/src/server/index.js b/src/server/index.js new file mode 100644 index 0000000..e4e81fd --- /dev/null +++ b/src/server/index.js @@ -0,0 +1,116 @@ +/* +* libreevent - app.js +* +* Created by Janis Hutz 02/26/2023, Licensed under the GPL V3 License +* https://janishutz.com, development@janishutz.com +* +* +*/ + +const express = require( 'express' ); +let app = express(); +const path = require( 'path' ); +const expressSession = require( 'express-session' ); +const cookieParser = require( 'cookie-parser' ); +const http = require( 'http' ); +const fs = require( 'fs' ); +const token = require( './backend/token.js' ); + +module.exports.run = () => { + console.log( ` + + _ _ _ _ + | (_) | | | + | |_| |__ _ __ ___ _____ _____ _ __ | |_ + | | | '_ \\| '__/ _ \\/ _ \\ \\ / / _ \\ '_ \\| __| + | | | |_) | | | __/ __/\\ V / __/ | | | |_ + |_|_|_.__/|_| \\___|\\___| \\_/ \\___|_| |_|\\__| + + + + + ------------------------------- + + ==> Welcome to libreevent! + + + ==> You are running Version V1.0.0 + + Below you can see all important things that happen during operation. + libreevent logs all errors in the console such that they appear in the + log files when running it with an output pipe (which you should definitely do) + + To do this run the following command when starting libreevent: + 'node app.js > libreevent_log.txt' + + ` ); + + console.log( '[ Server ] loading settings' ); + const settings = JSON.parse( fs.readFileSync( path.join( __dirname + '/config/settings.config.json' ) ) ); + + + // Route for static html file for start page (page is compiled using + // Vue SSR and gets its support files (e.g. CSS and JS files) from + // the /home/supportFiles/:file route plus its assets from the /otherAssets/:file + // route). + if ( settings.setupDone ) { + app.get( '/', ( req, res ) => { + res.sendFile( path.join( __dirname + '/ui/home/active/en/index.html' ) ); + } ); + } + + + // Set up static routes for static file serving (performance wise not + // that good, but way easier to set up) + console.log( '[ Server ] Setting up static routes' ); + if ( settings.setupDone ) { + app.use( express.static( 'webapp/main/dist' ) ); + } else { + app.use( express.static( 'webapp/setup/dist' ) ); + } + + // initialise express with middlewares + console.log( '[ Server ] loading and initializing middlewares' ); + app.use( expressSession( { + secret: token.generateToken( 60 ), + resave: false, + saveUninitialized: true, + cookie: { + sameSite: 'none', + httpOnly: true, + secure: false, + } + } ) ); + + app.use( cookieParser() ); + + let file = path.join( __dirname + '/webapp/main/dist/index.html' ); + + if ( settings.setupDone ) { + console.log( '[ Server ] loading backend components' ); + require( './backend/helperRoutes.js' )( app, settings ); // Helper routes + require( './admin/adminRoutes.js' )( app, settings ); // admin routes + require( './admin/adminAPIRoutes.js' )( app, settings ); // admin api routes + require( './admin/appApiRoutes.js' )( app, settings ); // app api routes + require( './backend/userAPIRoutes.js' )( app, settings ); // user api routes + require( './backend/userRoutes.js' )( app, settings ); // user routes + require( './backend/payments/paymentRoutes.js' )( app, settings ); // payment routes + require( './backend/plugins/pluginLoader.js' )( app, settings ); // plugin loader + } else { + console.log( '[ Setup ] Loading setup routes' ); + require( './setup/setupRoutes.js' )( app, settings ); // setup routes + file = path.join( __dirname + '/webapp/setup/dist/index.html' ); + } + + // handling of any unknown route. Returns the SPA index.html file which + // initiates loading of the SPA + app.use( ( request, response ) => { + response.sendFile( file ); + } ); + + console.log( '\n\n[ Server ] loading complete!\n\n' ); + + const PORT = process.env.PORT || 8080; + console.log( '[ Server ] listening on port ' + PORT ); + http.createServer( app ).listen( PORT ); +} \ No newline at end of file diff --git a/src/server/package-lock.json b/src/server/package-lock.json index 45fe24f..1c485f0 100644 --- a/src/server/package-lock.json +++ b/src/server/package-lock.json @@ -1,12 +1,12 @@ { "name": "libreevent", - "version": "1.0.7", + "version": "1.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "libreevent", - "version": "1.0.7", + "version": "1.1.0", "license": "GPL-3.0-or-later", "dependencies": { "@pdfme/generator": "^1.2.6", diff --git a/src/server/package.json b/src/server/package.json index 90ea98e..3bc80a9 100644 --- a/src/server/package.json +++ b/src/server/package.json @@ -1,8 +1,8 @@ { "name": "libreevent", - "version": "1.0.7", + "version": "1.1.0", "description": "Free & Open source event management solution", - "main": "app.js", + "main": "index.js", "directories": { "doc": "docs" }, diff --git a/src/webapp/main/package-lock.json b/src/webapp/main/package-lock.json index 20e0807..4d04220 100644 --- a/src/webapp/main/package-lock.json +++ b/src/webapp/main/package-lock.json @@ -1,12 +1,12 @@ { "name": "libreevent", - "version": "1.0.7", + "version": "1.1.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "libreevent", - "version": "1.0.7", + "version": "1.1.0", "dependencies": { "@pdfme/generator": "^1.2.3", "@pdfme/ui": "^3.2.1", diff --git a/src/webapp/main/package.json b/src/webapp/main/package.json index b16e4f4..fe43a11 100644 --- a/src/webapp/main/package.json +++ b/src/webapp/main/package.json @@ -1,6 +1,6 @@ { "name": "libreevent", - "version": "1.0.7", + "version": "1.1.0", "private": false, "scripts": { "dev": "vite --host", diff --git a/src/webapp/setup/package-lock.json b/src/webapp/setup/package-lock.json index c79bfb1..d2667f0 100644 --- a/src/webapp/setup/package-lock.json +++ b/src/webapp/setup/package-lock.json @@ -1,12 +1,12 @@ { "name": "libreevent-setup", - "version": "1.0.7", + "version": "1.1.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "libreevent-setup", - "version": "1.0.7", + "version": "1.1.0", "dependencies": { "pinia": "^2.1.3", "vue": "^3.3.4", diff --git a/src/webapp/setup/package.json b/src/webapp/setup/package.json index 664f4e3..fdbe01c 100644 --- a/src/webapp/setup/package.json +++ b/src/webapp/setup/package.json @@ -1,6 +1,6 @@ { "name": "libreevent-setup", - "version": "1.0.7", + "version": "1.1.0", "private": true, "scripts": { "dev": "vite",