@liascript/devserver 1.1.45--0.17.4 → 1.1.46--0.17.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/README.md CHANGED
@@ -84,8 +84,8 @@ updated separately, we use two different version, one for the devServer and one
84
84
  for LiaScript.
85
85
 
86
86
  ```text
87
- DevServer: 1.1.44
88
- LiaScript: 0.17.3
87
+ DevServer: 1.1.46
88
+ LiaScript: 0.17.5
89
89
  ```
90
90
 
91
91
  ### `--input`
package/dist/index.js CHANGED
@@ -43,5 +43,5 @@ events.onmessage = (event) => {
43
43
 
44
44
  `))}function $f14dee9e17222834$var$eventsHandler(e,a,r){a.writeHead(200,{"Content-Type":"text/event-stream",Connection:"keep-alive","Cache-Control":"no-cache"});let o=`data:
45
45
 
46
- `;a.write(o);let $=Date.now();$f14dee9e17222834$var$clients.push({id:$,response:a}),e.on("close",()=>{console.log(`${$} Connection closed`),$f14dee9e17222834$var$clients=$f14dee9e17222834$var$clients.filter(e=>e.id!==$)})}$f14dee9e17222834$export$2cd8252107eb640b($f14dee9e17222834$var$$parcel$__dirname);let $71fcc9ea54afc905$var$argv=$aRKkE$minimist(process.argv.slice(2));function $71fcc9ea54afc905$var$liascript(){console.log(" _ _ ____ _ _"),console.log("| | (_) __ _/ ___| ___ _ __(_)_ __ | |_"),console.log("| | | |/ _` \\___ \\ / __| '__| | '_ \\| __|"),console.log("| |___| | (_| |___) | (__| | | | |_) | |_ "),console.log("|_____|_|\\__,_|____/ \\___|_| |_| .__/ \\__|"),console.log(" |_|"),console.log()}($71fcc9ea54afc905$var$argv.v||$71fcc9ea54afc905$var$argv.version)&&(console.log("DevServer: 1.1.44"),console.log("LiaScript: 0.17.3"),process.exit()),($71fcc9ea54afc905$var$argv.h||$71fcc9ea54afc905$var$argv.help)&&($71fcc9ea54afc905$var$liascript(),console.log("-h --help show this help"),console.log("-v --version show version information"),console.log("-i --input input README.md file or folder (default: .)"),console.log("-n --hostname hostname of your server (default: localhost)"),console.log("-p --port used port number (default: 3000)"),console.log("-l --live do live reload on file change"),console.log("-o --open open in default browser"),console.log("-t --test test online on https://LiaScript.github.io"),console.log(),console.log("-r --responsiveVoice add optional responsiveVoice support,"),console.log(" or pass your own responsiveVoice key."),console.log(" Adding this feature might slow down"),console.log(" the reloading speed."),console.log(" For more information visit:"),console.log(" https://responsivevoice.org"),process.exit()),$71fcc9ea54afc905$var$liascript(),$f14dee9e17222834$export$2cd8252107eb640b($71fcc9ea54afc905$var$argv.node_modules);try{$f14dee9e17222834$export$b3571188c770cc5a($71fcc9ea54afc905$var$argv.p||$71fcc9ea54afc905$var$argv.port,$71fcc9ea54afc905$var$argv.n||$71fcc9ea54afc905$var$argv.hostname,$71fcc9ea54afc905$var$argv.i||$71fcc9ea54afc905$var$argv.input,$71fcc9ea54afc905$var$argv.r||$71fcc9ea54afc905$var$argv.responsiveVoice||process.env.RESPONSIVE_VOICE_KEY,$71fcc9ea54afc905$var$argv.l||$71fcc9ea54afc905$var$argv.live,$71fcc9ea54afc905$var$argv.o||$71fcc9ea54afc905$var$argv.open,$71fcc9ea54afc905$var$argv.t||$71fcc9ea54afc905$var$argv.test)}catch(e){console.error("Error: ",e.message),process.exit()}console.log("✨ hit Ctrl-c to close the server");
46
+ `;a.write(o);let $=Date.now();$f14dee9e17222834$var$clients.push({id:$,response:a}),e.on("close",()=>{console.log(`${$} Connection closed`),$f14dee9e17222834$var$clients=$f14dee9e17222834$var$clients.filter(e=>e.id!==$)})}$f14dee9e17222834$export$2cd8252107eb640b($f14dee9e17222834$var$$parcel$__dirname);let $71fcc9ea54afc905$var$argv=$aRKkE$minimist(process.argv.slice(2));function $71fcc9ea54afc905$var$liascript(){console.log(" _ _ ____ _ _"),console.log("| | (_) __ _/ ___| ___ _ __(_)_ __ | |_"),console.log("| | | |/ _` \\___ \\ / __| '__| | '_ \\| __|"),console.log("| |___| | (_| |___) | (__| | | | |_) | |_ "),console.log("|_____|_|\\__,_|____/ \\___|_| |_| .__/ \\__|"),console.log(" |_|"),console.log()}($71fcc9ea54afc905$var$argv.v||$71fcc9ea54afc905$var$argv.version)&&(console.log("DevServer: 1.1.46"),console.log("LiaScript: 0.17.5"),process.exit()),($71fcc9ea54afc905$var$argv.h||$71fcc9ea54afc905$var$argv.help)&&($71fcc9ea54afc905$var$liascript(),console.log("-h --help show this help"),console.log("-v --version show version information"),console.log("-i --input input README.md file or folder (default: .)"),console.log("-n --hostname hostname of your server (default: localhost)"),console.log("-p --port used port number (default: 3000)"),console.log("-l --live do live reload on file change"),console.log("-o --open open in default browser"),console.log("-t --test test online on https://LiaScript.github.io"),console.log(),console.log("-r --responsiveVoice add optional responsiveVoice support,"),console.log(" or pass your own responsiveVoice key."),console.log(" Adding this feature might slow down"),console.log(" the reloading speed."),console.log(" For more information visit:"),console.log(" https://responsivevoice.org"),process.exit()),$71fcc9ea54afc905$var$liascript(),$f14dee9e17222834$export$2cd8252107eb640b($71fcc9ea54afc905$var$argv.node_modules);try{$f14dee9e17222834$export$b3571188c770cc5a($71fcc9ea54afc905$var$argv.p||$71fcc9ea54afc905$var$argv.port,$71fcc9ea54afc905$var$argv.n||$71fcc9ea54afc905$var$argv.hostname,$71fcc9ea54afc905$var$argv.i||$71fcc9ea54afc905$var$argv.input,$71fcc9ea54afc905$var$argv.r||$71fcc9ea54afc905$var$argv.responsiveVoice||process.env.RESPONSIVE_VOICE_KEY,$71fcc9ea54afc905$var$argv.l||$71fcc9ea54afc905$var$argv.live,$71fcc9ea54afc905$var$argv.o||$71fcc9ea54afc905$var$argv.open,$71fcc9ea54afc905$var$argv.t||$71fcc9ea54afc905$var$argv.test)}catch(e){console.error("Error: ",e.message),process.exit()}console.log("✨ hit Ctrl-c to close the server");
47
47
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["<anon>","src/index.ts","src/lib.ts"],"sourcesContent":["var $aRKkE$minimist = require(\"minimist\");\nvar $aRKkE$path = require(\"path\");\nvar $aRKkE$dotenv = require(\"dotenv\");\nvar $aRKkE$express = require(\"express\");\nvar $aRKkE$fs = require(\"fs\");\nvar $aRKkE$cors = require(\"cors\");\nvar $aRKkE$expresshandlebars = require(\"express-handlebars\");\nvar $aRKkE$ip = require(\"ip\");\nvar $aRKkE$open = require(\"open\");\nvar $aRKkE$bodyparser = require(\"body-parser\");\nvar $aRKkE$reloadshjs = require(\"reloadsh.js\");\n\n\n\n\n\nvar $f14dee9e17222834$var$$parcel$__dirname = $aRKkE$path.resolve(__dirname, \"../src\");\n\n$aRKkE$dotenv.config();\n\n\n\n\n\nconst $f14dee9e17222834$var$app = $aRKkE$express();\n$f14dee9e17222834$var$app.use($aRKkE$bodyparser.json());\nvar $f14dee9e17222834$var$dirname = '';\nvar $f14dee9e17222834$var$node_modules;\nvar $f14dee9e17222834$var$reloadPath = '';\nvar $f14dee9e17222834$var$liascriptPath = '';\nvar $f14dee9e17222834$var$clients = [];\nconst $f14dee9e17222834$var$gotoScript = `<script>\nif (!window.LIA) {\n window.LIA = {}\n}\n\nvar filename__ = document.location.search.replace(\"?\"+document.location.origin, \"\")\n\nwindow.LIA.lineGoto = function(linenumber) {\n fetch(\"/lineGoto\", {\n method: \"POST\",\n headers: {'Content-Type': 'application/json'}, \n body: JSON.stringify({\n \"linenumber\": linenumber,\n \"filename\": filename__\n })\n }).then(res => {\n console.log(\"Goto line\", linenumber);\n });\n}\n\nconst events = new EventSource('/gotoLine');\nevents.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data);\n if (data.filename == filename__) {\n console.log(\"goto line:\", data.linenumber);\n window.LIA.gotoLine(data.linenumber)\n }\n } catch (e) {\n console.warn(\"gotoLine failed\")\n }\n};\n</script>`;\nvar $f14dee9e17222834$var$serverPointer;\n$f14dee9e17222834$export$2cd8252107eb640b($f14dee9e17222834$var$$parcel$__dirname);\nfunction $f14dee9e17222834$export$2cd8252107eb640b(serverPath, nodeModulesPath) {\n $f14dee9e17222834$var$dirname = serverPath || $aRKkE$path.join($f14dee9e17222834$var$$parcel$__dirname, '..');\n $f14dee9e17222834$var$node_modules = nodeModulesPath || $aRKkE$path.join($f14dee9e17222834$var$dirname, 'node_modules');\n $f14dee9e17222834$var$reloadPath = $aRKkE$path.resolve($aRKkE$path.join($f14dee9e17222834$var$node_modules, 'reloadsh.js/reloader.browser.js'));\n $f14dee9e17222834$var$liascriptPath = $aRKkE$path.resolve($aRKkE$path.join($f14dee9e17222834$var$node_modules, '@liascript/editor/dist'));\n}\n\nfunction $f14dee9e17222834$export$b3571188c770cc5a(port, hostname, input, responsiveVoice, liveReload, openInBrowser, testOnline, gotoCallback) {\n port = port || 3000;\n hostname = hostname || 'localhost';\n openInBrowser = openInBrowser || false;\n input = input || '.';\n liveReload = liveReload || false;\n testOnline = testOnline || false;\n var project = {\n path: input,\n readme: undefined\n };\n if (input) {\n const stats = $aRKkE$fs.lstatSync(input);\n // Is it a directory?\n if (stats.isDirectory()) project.path = input;\n else if (stats.isFile()) {\n project.path = $aRKkE$path.dirname(input);\n project.readme = $aRKkE$path.basename(input);\n }\n }\n $f14dee9e17222834$var$app.set('view engine', 'hbs');\n $f14dee9e17222834$var$app.engine('hbs', $aRKkE$expresshandlebars({\n layoutsDir: $aRKkE$path.resolve($aRKkE$path.join($f14dee9e17222834$var$dirname, 'views/layouts')),\n defaultLayout: 'main',\n extname: 'hbs'\n }));\n $f14dee9e17222834$var$app.set('views', $aRKkE$path.resolve($aRKkE$path.join($f14dee9e17222834$var$dirname, 'views')));\n $f14dee9e17222834$var$app.get('/', function(req, res) {\n res.redirect('/home');\n });\n $f14dee9e17222834$var$app.get('/gotoLine', $f14dee9e17222834$var$eventsHandler);\n $f14dee9e17222834$var$app.get('/home*', function(req, res) {\n const currentPath = project.path + '/' + req.params[0];\n const stats = $aRKkE$fs.lstatSync(currentPath);\n // Is it a directory?\n if (stats.isDirectory()) {\n const files = $aRKkE$fs.readdirSync(currentPath).filter((e)=>{\n return e[0] !== '.';\n });\n let basePath = '/home';\n let pathNames = req.params[0].split('/').filter((e)=>{\n return e !== '';\n });\n let paths = [];\n for(let i = 0; i < pathNames.length; i++){\n basePath += '/' + pathNames[i];\n paths.push({\n name: pathNames[i],\n href: basePath\n });\n }\n res.render('main', {\n layout: 'index',\n path: paths,\n file: files.map((file)=>{\n return {\n name: file,\n href: `http://${hostname}:${port}/home${req.params[0]}/${file}`,\n isDirectory: $aRKkE$fs.lstatSync(currentPath + '/' + file).isDirectory()\n };\n }).sort((a, b)=>{\n if (a.isDirectory && !b.isDirectory) return -1;\n else if (!a.isDirectory && b.isDirectory) return 1;\n else {\n if (a.name.toLocaleLowerCase() < b.name.toLocaleLowerCase()) return -1;\n else return 1;\n }\n return 0;\n })\n });\n } else if (stats.isFile()) {\n if (req.params[0].toLocaleLowerCase().endsWith('.md')) {\n if (testOnline) res.redirect(`https://LiaScript.github.io/course/?http://${hostname}:${port}/${req.params[0]}`);\n else res.redirect(`/liascript/index.html?http://${hostname}:${port}/${req.params[0]}`);\n } else res.sendFile(req.params[0], {\n root: project.path\n });\n } else res.send('ups, something went wrong');\n });\n $f14dee9e17222834$var$app.get('/liascript/', function(req, res) {\n res.redirect('/liascript/index.html');\n });\n $f14dee9e17222834$var$app.get('/liascript/index.html', function(req, res) {\n // ------------------------------------\n if (liveReload && responsiveVoice) $aRKkE$fs.readFile($f14dee9e17222834$var$liascriptPath + '/index.html', 'utf8', function(err, data) {\n res.send(data.replace('</head>', `<script type='text/javascript' src='/reloader/reloader.js'></script>\n <script type='text/javascript' src='https://code.responsivevoice.org/responsivevoice.js?key=${responsiveVoice}'></script>\n ${$f14dee9e17222834$var$gotoScript}\n </head>`));\n });\n else if (liveReload) $aRKkE$fs.readFile($f14dee9e17222834$var$liascriptPath + '/index.html', 'utf8', function(err, data) {\n res.send(data.replace('</head>', `<script type='text/javascript' src='/reloader/reloader.js'></script>\n ${$f14dee9e17222834$var$gotoScript}\n </head>`));\n });\n else if (responsiveVoice) $aRKkE$fs.readFile($f14dee9e17222834$var$liascriptPath + '/index.html', 'utf8', function(err, data) {\n res.send(data.replace('</head>', `<script type='text/javascript' src='https://code.responsivevoice.org/responsivevoice.js?key=${responsiveVoice}'></script>\n ${$f14dee9e17222834$var$gotoScript}\n </head>`));\n });\n else $aRKkE$fs.readFile($f14dee9e17222834$var$liascriptPath + '/index.html', 'utf8', function(err, data) {\n res.send(data.replace('</head>', `${$f14dee9e17222834$var$gotoScript}</head>`));\n });\n });\n // load everything from the liascript folder\n $f14dee9e17222834$var$app.get('/liascript/*', function(req, res) {\n res.sendFile(req.params[0], {\n root: $f14dee9e17222834$var$liascriptPath\n }, (err)=>{\n if (err) {\n // Extract the file path by removing the '/liascript/' prefix\n const projectPath = req.params[0];\n console.log(`File not found in liascriptPath, trying project.path: ${projectPath}`, project.path);\n res.sendFile(projectPath, {\n root: project.path\n });\n }\n });\n });\n // ignore this one\n $f14dee9e17222834$var$app.get('/sw.js', function(req, res) {});\n $f14dee9e17222834$var$app.get('/favicon.ico', function(req, res) {});\n // pass the reloader, to be used for live updates\n $f14dee9e17222834$var$app.get('/reloader/reloader.js', function(req, res) {\n res.sendFile($f14dee9e17222834$var$reloadPath);\n });\n // react to click-events\n $f14dee9e17222834$var$app.post('/lineGoto', function(req, res) {\n if (gotoCallback) try {\n const linenumber = req.body.linenumber;\n const filename = req.body.filename;\n gotoCallback(linenumber, filename);\n } catch (e) {\n console.warn(\"lineGoto event with wrong datatype, you have to provide {'linenumber': int, 'filename': string}\");\n }\n return res.json({});\n });\n // everything else comes from the current project folder\n $f14dee9e17222834$var$app.get('/*', $aRKkE$cors(), function(req, res) {\n res.sendFile(req.originalUrl, {\n root: project.path\n });\n });\n let localURL = 'http://' + hostname + ':' + port;\n if (project.path && project.readme) localURL += '/liascript/index.html?http://' + hostname + ':' + port + '/' + project.readme;\n if (testOnline && project.readme) localURL = 'https://LiaScript.github.io/course/?http://' + hostname + ':' + port + '/' + project.readme;\n const server = $aRKkE$reloadshjs($f14dee9e17222834$var$app, liveReload ? [\n $aRKkE$path.join(project.path, project.readme || '')\n ] : []);\n if (liveReload) console.log(`\\u{2728} watching for changes on: \"${$aRKkE$path.join(project.path || '', project.readme || '')}\"`);\n server.on('error', (e)=>{\n throw e;\n });\n server.listen(port);\n if (openInBrowser) $aRKkE$open(localURL);\n console.log(\"\\uD83D\\uDCE1 starting server\");\n console.log(` - local: ${localURL}`);\n console.log(` - on your network: ${localURL.replace(hostname, $aRKkE$ip.address())}`);\n $f14dee9e17222834$var$serverPointer = server;\n}\nfunction $f14dee9e17222834$export$fa6813432f753b0d() {\n if ($f14dee9e17222834$var$serverPointer) $f14dee9e17222834$var$serverPointer.close();\n}\nfunction $f14dee9e17222834$export$5d5b784f9a618ec3(linenumber, filename) {\n $f14dee9e17222834$var$clients.forEach((client)=>client.response.write(`data: ${JSON.stringify({\n linenumber: linenumber,\n filename: filename\n })}\\n\\n`));\n}\nfunction $f14dee9e17222834$var$eventsHandler(request, response, next) {\n const headers = {\n 'Content-Type': 'text/event-stream',\n Connection: 'keep-alive',\n 'Cache-Control': 'no-cache'\n };\n response.writeHead(200, headers);\n const data = `data: \\n\\n`;\n response.write(data);\n const clientId = Date.now();\n const newClient = {\n id: clientId,\n response: response\n };\n $f14dee9e17222834$var$clients.push(newClient);\n request.on('close', ()=>{\n console.log(`${clientId} Connection closed`);\n $f14dee9e17222834$var$clients = $f14dee9e17222834$var$clients.filter((client)=>client.id !== clientId);\n });\n}\n\n\n\nconst $71fcc9ea54afc905$var$argv = $aRKkE$minimist(process.argv.slice(2));\nfunction $71fcc9ea54afc905$var$liascript() {\n console.log(' _ _ ____ _ _');\n console.log('| | (_) __ _/ ___| ___ _ __(_)_ __ | |_');\n console.log(\"| | | |/ _` \\\\___ \\\\ / __| '__| | '_ \\\\| __|\");\n console.log('| |___| | (_| |___) | (__| | | | |_) | |_ ');\n console.log('|_____|_|\\\\__,_|____/ \\\\___|_| |_| .__/ \\\\__|');\n console.log(' |_|');\n console.log();\n}\nif ($71fcc9ea54afc905$var$argv.v || $71fcc9ea54afc905$var$argv.version) {\n console.log('DevServer: 1.1.44');\n console.log('LiaScript: 0.17.3');\n process.exit();\n}\nif ($71fcc9ea54afc905$var$argv.h || $71fcc9ea54afc905$var$argv.help) {\n $71fcc9ea54afc905$var$liascript();\n console.log('-h --help show this help');\n console.log('-v --version show version information');\n console.log('-i --input input README.md file or folder (default: .)');\n console.log('-n --hostname hostname of your server (default: localhost)');\n console.log('-p --port used port number (default: 3000)');\n console.log('-l --live do live reload on file change');\n console.log('-o --open open in default browser');\n console.log('-t --test test online on https://LiaScript.github.io');\n console.log();\n console.log('-r --responsiveVoice add optional responsiveVoice support,');\n console.log(' or pass your own responsiveVoice key.');\n console.log(' Adding this feature might slow down');\n console.log(' the reloading speed.');\n console.log(' For more information visit:');\n console.log(' https://responsivevoice.org');\n process.exit();\n}\n$71fcc9ea54afc905$var$liascript();\n$f14dee9e17222834$export$2cd8252107eb640b($71fcc9ea54afc905$var$argv.node_modules);\ntry {\n $f14dee9e17222834$export$b3571188c770cc5a($71fcc9ea54afc905$var$argv.p || $71fcc9ea54afc905$var$argv.port, $71fcc9ea54afc905$var$argv.n || $71fcc9ea54afc905$var$argv.hostname, $71fcc9ea54afc905$var$argv.i || $71fcc9ea54afc905$var$argv.input, $71fcc9ea54afc905$var$argv.r || $71fcc9ea54afc905$var$argv.responsiveVoice || process.env.RESPONSIVE_VOICE_KEY, $71fcc9ea54afc905$var$argv.l || $71fcc9ea54afc905$var$argv.live, $71fcc9ea54afc905$var$argv.o || $71fcc9ea54afc905$var$argv.open, $71fcc9ea54afc905$var$argv.t || $71fcc9ea54afc905$var$argv.test);\n} catch (e) {\n console.error('Error: ', e.message);\n process.exit();\n}\nconsole.log(\"\\u2728 hit Ctrl-c to close the server\");\n\n\n//# sourceMappingURL=index.js.map\n","const argv = require('minimist')(process.argv.slice(2))\n\nimport * as server from './lib'\n\nfunction liascript() {\n console.log(' _ _ ____ _ _')\n console.log('| | (_) __ _/ ___| ___ _ __(_)_ __ | |_')\n console.log(\"| | | |/ _` \\\\___ \\\\ / __| '__| | '_ \\\\| __|\")\n console.log('| |___| | (_| |___) | (__| | | | |_) | |_ ')\n console.log('|_____|_|\\\\__,_|____/ \\\\___|_| |_| .__/ \\\\__|')\n console.log(' |_|')\n console.log()\n}\n\nif (argv.v || argv.version) {\n console.log('DevServer: 1.1.44')\n console.log('LiaScript: 0.17.3')\n process.exit()\n}\n\nif (argv.h || argv.help) {\n liascript()\n\n console.log('-h --help show this help')\n console.log('-v --version show version information')\n console.log('-i --input input README.md file or folder (default: .)')\n console.log('-n --hostname hostname of your server (default: localhost)')\n console.log('-p --port used port number (default: 3000)')\n console.log('-l --live do live reload on file change')\n console.log('-o --open open in default browser')\n console.log('-t --test test online on https://LiaScript.github.io')\n console.log()\n console.log('-r --responsiveVoice add optional responsiveVoice support,')\n console.log(' or pass your own responsiveVoice key.')\n console.log(' Adding this feature might slow down')\n console.log(' the reloading speed.')\n console.log(' For more information visit:')\n console.log(' https://responsivevoice.org')\n\n process.exit()\n}\n\nliascript()\n\nserver.init(argv.node_modules)\n\ntry {\n server.start(\n argv.p || argv.port,\n argv.n || argv.hostname,\n argv.i || argv.input,\n argv.r || argv.responsiveVoice || process.env.RESPONSIVE_VOICE_KEY,\n argv.l || argv.live,\n argv.o || argv.open,\n argv.t || argv.test\n )\n} catch (e) {\n console.error('Error: ', e.message)\n process.exit()\n}\n\nconsole.log('✨ hit Ctrl-c to close the server')\n","require('dotenv').config()\nimport * as express from 'express'\n\nimport * as fs from 'fs'\nimport * as path from 'path'\n\nconst cors = require('cors')\nconst handlebars = require('express-handlebars')\nconst ip = require('ip')\nconst open = require('open')\nconst bodyParser = require('body-parser')\n\nconst app: express.Application = express()\napp.use(bodyParser.json())\n\nvar dirname = ''\nvar node_modules\nvar reloadPath = ''\nvar liascriptPath = ''\n\nvar clients: any[] = []\n\nconst gotoScript = `<script>\nif (!window.LIA) {\n window.LIA = {}\n}\n\nvar filename__ = document.location.search.replace(\"?\"+document.location.origin, \"\")\n\nwindow.LIA.lineGoto = function(linenumber) {\n fetch(\"/lineGoto\", {\n method: \"POST\",\n headers: {'Content-Type': 'application/json'}, \n body: JSON.stringify({\n \"linenumber\": linenumber,\n \"filename\": filename__\n })\n }).then(res => {\n console.log(\"Goto line\", linenumber);\n });\n}\n\nconst events = new EventSource('/gotoLine');\nevents.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data);\n if (data.filename == filename__) {\n console.log(\"goto line:\", data.linenumber);\n window.LIA.gotoLine(data.linenumber)\n }\n } catch (e) {\n console.warn(\"gotoLine failed\")\n }\n};\n</script>`\n\nvar serverPointer: any\n\ninit(__dirname)\n\nexport function init(serverPath?: string, nodeModulesPath?: string) {\n dirname = serverPath || path.join(__dirname, '..')\n\n node_modules = nodeModulesPath || path.join(dirname, 'node_modules')\n\n reloadPath = path.resolve(\n path.join(node_modules, 'reloadsh.js/reloader.browser.js')\n )\n\n liascriptPath = path.resolve(\n path.join(node_modules, '@liascript/editor/dist')\n )\n}\n\nexport function start(\n port?: number,\n hostname?: string,\n input?: string,\n responsiveVoice?: string,\n liveReload?: boolean,\n openInBrowser?: boolean,\n testOnline?: boolean,\n gotoCallback?: (linenumber: number, filename: string) => void\n) {\n port = port || 3000\n hostname = hostname || 'localhost'\n openInBrowser = openInBrowser || false\n input = input || '.'\n liveReload = liveReload || false\n testOnline = testOnline || false\n\n var project: {\n path: string\n readme?: string\n } = {\n path: input,\n readme: undefined,\n }\n\n if (input) {\n const stats = fs.lstatSync(input)\n\n // Is it a directory?\n if (stats.isDirectory()) {\n project.path = input\n } else if (stats.isFile()) {\n project.path = path.dirname(input)\n project.readme = path.basename(input)\n }\n }\n\n app.set('view engine', 'hbs')\n app.engine(\n 'hbs',\n handlebars({\n layoutsDir: path.resolve(path.join(dirname, 'views/layouts')),\n defaultLayout: 'main',\n extname: 'hbs',\n })\n )\n app.set('views', path.resolve(path.join(dirname, 'views')))\n\n app.get('/', function (req: express.Request, res: express.Response) {\n res.redirect('/home')\n })\n\n app.get('/gotoLine', eventsHandler)\n\n app.get('/home*', function (req: express.Request, res: express.Response) {\n const currentPath = project.path + '/' + req.params[0]\n\n const stats = fs.lstatSync(currentPath)\n\n // Is it a directory?\n if (stats.isDirectory()) {\n const files = fs.readdirSync(currentPath).filter((e: string) => {\n return e[0] !== '.'\n })\n\n let basePath = '/home'\n let pathNames = req.params[0].split('/').filter((e: string) => {\n return e !== ''\n })\n\n let paths: { name: string; href: string }[] = []\n for (let i = 0; i < pathNames.length; i++) {\n basePath += '/' + pathNames[i]\n paths.push({ name: pathNames[i], href: basePath })\n }\n\n res.render('main', {\n layout: 'index',\n path: paths,\n file: files\n .map((file: string) => {\n return {\n name: file,\n href: `http://${hostname}:${port}/home${req.params[0]}/${file}`,\n isDirectory: fs.lstatSync(currentPath + '/' + file).isDirectory(),\n }\n })\n .sort(\n (\n a: {\n name: string\n href: string\n isDirectory: boolean\n },\n b: {\n name: string\n href: string\n isDirectory: boolean\n }\n ) => {\n if (a.isDirectory && !b.isDirectory) {\n return -1\n } else if (!a.isDirectory && b.isDirectory) {\n return 1\n } else {\n if (a.name.toLocaleLowerCase() < b.name.toLocaleLowerCase()) {\n return -1\n } else {\n return 1\n }\n }\n return 0\n }\n ),\n })\n } else if (stats.isFile()) {\n if (req.params[0].toLocaleLowerCase().endsWith('.md')) {\n if (testOnline) {\n res.redirect(\n `https://LiaScript.github.io/course/?http://${hostname}:${port}/${req.params[0]}`\n )\n } else {\n res.redirect(\n `/liascript/index.html?http://${hostname}:${port}/${req.params[0]}`\n )\n }\n } else {\n res.sendFile(req.params[0], { root: project.path })\n }\n } else {\n res.send('ups, something went wrong')\n }\n })\n\n app.get(\n '/liascript/',\n function (req: express.Request, res: express.Response) {\n res.redirect('/liascript/index.html')\n }\n )\n\n app.get(\n '/liascript/index.html',\n function (req: express.Request, res: express.Response) {\n // ------------------------------------\n if (liveReload && responsiveVoice) {\n fs.readFile(\n liascriptPath + '/index.html',\n 'utf8',\n function (err: any, data: string) {\n res.send(\n data.replace(\n '</head>',\n `<script type='text/javascript' src='/reloader/reloader.js'></script>\n <script type='text/javascript' src='https://code.responsivevoice.org/responsivevoice.js?key=${responsiveVoice}'></script>\n ${gotoScript}\n </head>`\n )\n )\n }\n )\n }\n // ------------------------------------\n else if (liveReload) {\n fs.readFile(\n liascriptPath + '/index.html',\n 'utf8',\n function (err: any, data: string) {\n res.send(\n data.replace(\n '</head>',\n `<script type='text/javascript' src='/reloader/reloader.js'></script>\n ${gotoScript}\n </head>`\n )\n )\n }\n )\n }\n // ------------------------------------\n else if (responsiveVoice) {\n fs.readFile(\n liascriptPath + '/index.html',\n 'utf8',\n function (err: any, data: string) {\n res.send(\n data.replace(\n '</head>',\n `<script type='text/javascript' src='https://code.responsivevoice.org/responsivevoice.js?key=${responsiveVoice}'></script>\n ${gotoScript}\n </head>`\n )\n )\n }\n )\n }\n // ------------------------------------\n else {\n fs.readFile(\n liascriptPath + '/index.html',\n 'utf8',\n function (err: any, data: string) {\n res.send(data.replace('</head>', `${gotoScript}</head>`))\n }\n )\n }\n }\n )\n\n // load everything from the liascript folder\n app.get(\n '/liascript/*',\n function (req: express.Request, res: express.Response) {\n res.sendFile(req.params[0], { root: liascriptPath }, (err) => {\n if (err) {\n // Extract the file path by removing the '/liascript/' prefix\n const projectPath = req.params[0]\n console.log(\n `File not found in liascriptPath, trying project.path: ${projectPath}`,\n project.path\n )\n res.sendFile(projectPath, { root: project.path })\n }\n })\n }\n )\n // ignore this one\n app.get('/sw.js', function (req: express.Request, res: express.Response) {})\n app.get(\n '/favicon.ico',\n function (req: express.Request, res: express.Response) {}\n )\n\n // pass the reloader, to be used for live updates\n app.get(\n '/reloader/reloader.js',\n function (req: express.Request, res: express.Response) {\n res.sendFile(reloadPath)\n }\n )\n\n // react to click-events\n app.post('/lineGoto', function (req: express.Request, res: express.Response) {\n if (gotoCallback) {\n try {\n const linenumber = req.body.linenumber\n const filename = req.body.filename\n gotoCallback(linenumber, filename)\n } catch (e) {\n console.warn(\n \"lineGoto event with wrong datatype, you have to provide {'linenumber': int, 'filename': string}\"\n )\n }\n }\n return res.json({})\n })\n\n // everything else comes from the current project folder\n app.get('/*', cors(), function (req: express.Request, res: express.Response) {\n res.sendFile(req.originalUrl, { root: project.path })\n })\n\n let localURL = 'http://' + hostname + ':' + port\n\n if (project.path && project.readme) {\n localURL +=\n '/liascript/index.html?http://' +\n hostname +\n ':' +\n port +\n '/' +\n project.readme\n }\n\n if (testOnline && project.readme) {\n localURL =\n 'https://LiaScript.github.io/course/?http://' +\n hostname +\n ':' +\n port +\n '/' +\n project.readme\n }\n\n const server = require('reloadsh.js')(\n app,\n liveReload ? [path.join(project.path, project.readme || '')] : []\n )\n\n if (liveReload) {\n console.log(\n `✨ watching for changes on: \"${path.join(\n project.path || '',\n project.readme || ''\n )}\"`\n )\n }\n\n server.on('error', (e: any) => {\n throw e\n })\n\n server.listen(port)\n\n if (openInBrowser) {\n open(localURL)\n }\n\n console.log('📡 starting server')\n console.log(` - local: ${localURL}`)\n console.log(\n ` - on your network: ${localURL.replace(hostname, ip.address())}`\n )\n\n serverPointer = server\n}\n\nexport function stop() {\n if (serverPointer) {\n serverPointer.close()\n }\n}\n\nexport function gotoLine(linenumber: number, filename: string) {\n clients.forEach((client) =>\n client.response.write(\n `data: ${JSON.stringify({\n linenumber: linenumber,\n filename: filename,\n })}\\n\\n`\n )\n )\n}\n\nfunction eventsHandler(\n request: express.Request,\n response: express.Response,\n next: any\n) {\n const headers = {\n 'Content-Type': 'text/event-stream',\n Connection: 'keep-alive',\n 'Cache-Control': 'no-cache',\n }\n response.writeHead(200, headers)\n\n const data = `data: \\n\\n`\n\n response.write(data)\n\n const clientId = Date.now()\n\n const newClient = {\n id: clientId,\n response,\n }\n\n clients.push(newClient)\n\n request.on('close', () => {\n console.log(`${clientId} Connection closed`)\n clients = clients.filter((client) => client.id !== clientId)\n })\n}\n"],"names":["$f14dee9e17222834$var$node_modules","$f14dee9e17222834$var$serverPointer","$aRKkE$minimist","require","$aRKkE$path","$aRKkE$dotenv","$aRKkE$express","$aRKkE$fs","$aRKkE$cors","$aRKkE$expresshandlebars","$aRKkE$ip","$aRKkE$open","$aRKkE$bodyparser","$aRKkE$reloadshjs","$f14dee9e17222834$var$$parcel$__dirname","resolve","__dirname","config","$f14dee9e17222834$var$app","use","json","$f14dee9e17222834$var$dirname","$f14dee9e17222834$var$reloadPath","$f14dee9e17222834$var$liascriptPath","$f14dee9e17222834$var$clients","$f14dee9e17222834$var$gotoScript","$f14dee9e17222834$export$2cd8252107eb640b","serverPath","nodeModulesPath","join","$f14dee9e17222834$export$b3571188c770cc5a","port","hostname","input","responsiveVoice","liveReload","openInBrowser","testOnline","gotoCallback","project","path","readme","undefined","stats","lstatSync","isDirectory","isFile","dirname","basename","set","engine","layoutsDir","defaultLayout","extname","get","req","res","redirect","$f14dee9e17222834$var$eventsHandler","currentPath","params","files","readdirSync","filter","e","basePath","pathNames","split","paths","i","length","push","name","href","render","layout","file","map","sort","a","b","toLocaleLowerCase","endsWith","sendFile","root","send","readFile","err","data","replace","projectPath","console","log","post","linenumber","body","filename","warn","originalUrl","localURL","server","on","listen","address","$f14dee9e17222834$export$fa6813432f753b0d","close","$f14dee9e17222834$export$5d5b784f9a618ec3","forEach","client","response","write","JSON","stringify","request","next","writeHead","Connection","clientId","Date","now","id","$71fcc9ea54afc905$var$argv","process","argv","slice","$71fcc9ea54afc905$var$liascript","v","version","exit","h","help","node_modules","p","n","r","env","RESPONSIVE_VOICE_KEY","l","live","o","open","t","test","error","message"],"version":3,"file":"index.js.map","sourceRoot":"../"}
1
+ {"mappings":"A,IEgBI,mCAwCA,oC,gB,Q,Y,Y,Q,Q,c,Q,U,e,Q,W,U,Q,M,Y,Q,Q,yB,Q,sB,U,Q,M,Y,Q,Q,kB,Q,e,kB,Q,e,wC,Y,O,C,U,UAxDJ,cAAA,MAAA,GAYA,IAAM,0BAA2B,iBACjC,0BAAI,GAAG,CAAC,kBAAR,IAAA,IAEA,IAAI,8BAAU,GAEV,iCAAa,GACb,oCAAgB,GAEhB,8BAAiB,EAAE,CAEvB,IAAM,iCAAa,CAAC;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;A;AAgCX,SAAA,CAAC,CAMH,SAAS,0CAAK,CAAmB,CAAE,CAAwB,EAChE,8BAAU,GAAc,YAAA,IAAA,CAAU,wCAAW,MAE7C,mCAAe,GAAmB,YAAA,IAAA,CAAU,8BAAS,gBAErD,iCAAa,YAAA,OAAA,CACX,YAAA,IAAA,CAAU,mCAAc,oCAG1B,oCAAgB,YAAA,OAAA,CACd,YAAA,IAAA,CAAU,mCAAc,0BAE5B,CAEO,SAAS,0CACd,CAAa,CACb,CAAiB,CACjB,CAAc,CACd,CAAwB,CACxB,CAAoB,CACpB,CAAuB,CACvB,CAAoB,CACpB,CAA6D,EAE7D,EAAO,GAAQ,IACf,EAAW,GAAY,YACvB,EAAgB,GAAiB,CAAA,EAEjC,EAAa,GAAc,CAAA,EAC3B,EAAa,GAAc,CAAA,EAE3B,IAAI,EAGA,CACF,KARF,EAAQ,GAAS,IASf,OAAQ,KAAA,CACV,EAEA,GAAI,EAAO,CACT,IAAM,EAAQ,UAAA,SAAA,CAAa,GAGvB,EAAM,WAAW,GACnB,EAAQ,IAAI,CAAG,EACN,EAAM,MAAM,KACrB,EAAQ,IAAI,CAAG,YAAA,OAAA,CAAa,GAC5B,EAAQ,MAAM,CAAG,YAAA,QAAA,CAAc,GAEnC,CAEA,0BAAI,GAAG,CAAC,cAAe,OACvB,0BAAI,MAAM,CACR,MACA,yBAAW,CACT,WAAY,YAAA,OAAA,CAAa,YAAA,IAAA,CAAU,8BAAS,kBAC5C,cAAe,OACf,QAAS,KACX,IAEF,0BAAI,GAAG,CAAC,QAAS,YAAA,OAAA,CAAa,YAAA,IAAA,CAAU,8BAAS,WAEjD,0BAAI,GAAG,CAAC,IAAK,SAAU,CAAoB,CAAE,CAAqB,EAChE,EAAI,QAAQ,CAAC,QACf,GAEA,0BAAI,GAAG,CAAC,YAAa,qCAErB,0BAAI,GAAG,CAAC,SAAU,SAAU,CAAoB,CAAE,CAAqB,EACrE,IAAM,EAAc,EAAQ,IAAI,CAAG,IAAM,EAAI,MAAM,CAAC,EAAE,CAEhD,EAAQ,UAAA,SAAA,CAAa,GAG3B,GAAI,EAAM,WAAW,GAAI,CACvB,IAAM,EAAQ,UAAA,WAAA,CAAe,GAAa,MAAM,CAAC,AAAC,GACzC,AAAS,MAAT,CAAC,CAAC,EAAE,EAGT,EAAW,QACX,EAAY,EAAI,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC,AAAC,GACxC,AAAM,KAAN,GAGL,EAA0C,EAAE,CAChD,IAAK,IAAI,EAAI,EAAG,EAAI,EAAU,MAAM,CAAE,IACpC,GAAY,IAAM,CAAS,CAAC,EAAE,CAC9B,EAAM,IAAI,CAAC,CAAE,KAAM,CAAS,CAAC,EAAE,CAAE,KAAM,CAAS,GAGlD,EAAI,MAAM,CAAC,OAAQ,CACjB,OAAQ,QACR,KAAM,EACN,KAAM,EACH,GAAG,CAAC,AAAC,GACG,CAAA,CACL,KAAM,EACN,KAAM,CAAC,OAAO,EAAE,EAAS,CAAC,EAAE,EAAK,KAAK,EAAE,EAAI,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAA,CAAM,CAC/D,YAAa,UAAA,SAAA,CAAa,EAAc,IAAM,GAAM,WAAW,EACjE,CAAA,GAED,IAAI,CACH,CACE,EAKA,IAMA,AAAI,EAAE,WAAW,EAAI,CAAC,EAAE,WAAW,CAC1B,GACE,CAAC,EAAE,WAAW,EAAI,EAAE,WAAW,CACjC,EAEH,EAAE,IAAI,CAAC,iBAAiB,GAAK,EAAE,IAAI,CAAC,iBAAiB,GAChD,GAEA,EAMnB,EACF,MAAW,EAAM,MAAM,GACjB,EAAI,MAAM,CAAC,EAAE,CAAC,iBAAiB,GAAG,QAAQ,CAAC,OACzC,EACF,EAAI,QAAQ,CACV,CAAC,2CAA2C,EAAE,EAAS,CAAC,EAAE,EAAK,CAAC,EAAE,EAAI,MAAM,CAAC,EAAE,CAAA,CAAE,EAGnF,EAAI,QAAQ,CACV,CAAC,6BAA6B,EAAE,EAAS,CAAC,EAAE,EAAK,CAAC,EAAE,EAAI,MAAM,CAAC,EAAE,CAAA,CAAE,EAIvE,EAAI,QAAQ,CAAC,EAAI,MAAM,CAAC,EAAE,CAAE,CAAE,KAAM,EAAQ,IAAI,AAAC,GAGnD,EAAI,IAAI,CAAC,4BAEb,GAEA,0BAAI,GAAG,CACL,cACA,SAAU,CAAoB,CAAE,CAAqB,EACnD,EAAI,QAAQ,CAAC,wBACf,GAGF,0BAAI,GAAG,CACL,wBACA,SAAU,CAAoB,CAAE,CAAqB,EAE/C,GAAc,EAChB,UAAA,QAAA,CACE,oCAAgB,cAChB,OACA,SAAU,CAAQ,CAAE,CAAY,EAC9B,EAAI,IAAI,CACN,EAAK,OAAO,CACV,UACA,CAAC;AACwF,yGAAA,EAAE,EAAgB;AAC9G,aAAA,EAAE;AACK,oBAAA,CAAC,EAGX,GAIK,EACP,UAAA,QAAA,CACE,oCAAgB,cAChB,OACA,SAAU,CAAQ,CAAE,CAAY,EAC9B,EAAI,IAAI,CACN,EAAK,OAAO,CACV,UACA,CAAC;AACD,gBAAA,EAAE;AACK,uBAAA,CAAC,EAGd,GAIK,EACP,UAAA,QAAA,CACE,oCAAgB,cAChB,OACA,SAAU,CAAQ,CAAE,CAAY,EAC9B,EAAI,IAAI,CACN,EAAK,OAAO,CACV,UACA,CAAC,4FAA4F,EAAE,EAAgB;AAC/G,gBAAA,EAAE;AACK,uBAAA,CAAC,EAGd,GAKF,UAAA,QAAA,CACE,oCAAgB,cAChB,OACA,SAAU,CAAQ,CAAE,CAAY,EAC9B,EAAI,IAAI,CAAC,EAAK,OAAO,CAAC,UAAW,CAAA,EAAG,iCAAW,OAAO,CAAC,EACzD,EAGN,GAIF,0BAAI,GAAG,CACL,eACA,SAAU,CAAoB,CAAE,CAAqB,EACnD,EAAI,QAAQ,CAAC,EAAI,MAAM,CAAC,EAAE,CAAE,CAAE,KAAM,mCAAc,EAAG,AAAC,IACpD,GAAI,EAAK,CAEP,IAAM,EAAc,EAAI,MAAM,CAAC,EAAE,CACjC,QAAQ,GAAG,CACT,CAAC,sDAAsD,EAAE,EAAA,CAAa,CACtE,EAAQ,IAAI,EAEd,EAAI,QAAQ,CAAC,EAAa,CAAE,KAAM,EAAQ,IAAI,AAAC,EACjD,CACF,EACF,GAGF,0BAAI,GAAG,CAAC,SAAU,SAAU,CAAoB,CAAE,CAAqB,EAAG,GAC1E,0BAAI,GAAG,CACL,eACA,SAAU,CAAoB,CAAE,CAAqB,EAAG,GAI1D,0BAAI,GAAG,CACL,wBACA,SAAU,CAAoB,CAAE,CAAqB,EACnD,EAAI,QAAQ,CAAC,iCACf,GAIF,0BAAI,IAAI,CAAC,YAAa,SAAU,CAAoB,CAAE,CAAqB,EACzE,GAAI,EACF,GAAI,CACF,IAAM,EAAa,EAAI,IAAI,CAAC,UAAU,CAChC,EAAW,EAAI,IAAI,CAAC,QAAQ,CAClC,EAAa,EAAY,EAC3B,CAAE,MAAO,EAAG,CACV,QAAQ,IAAI,CACV,kGAEJ,CAEF,OAAO,EAAI,IAAI,CAAC,CAAC,EACnB,GAGA,0BAAI,GAAG,CAAC,KAAM,cAAQ,SAAU,CAAoB,CAAE,CAAqB,EACzE,EAAI,QAAQ,CAAC,EAAI,WAAW,CAAE,CAAE,KAAM,EAAQ,IAAI,AAAC,EACrD,GAEA,IAAI,EAAW,UAAY,EAAW,IAAM,CAExC,CAAA,EAAQ,IAAI,EAAI,EAAQ,MAAM,EAChC,CAAA,GACE,gCACA,EACA,IACA,EACA,IACA,EAAQ,MAAM,AAAN,EAGR,GAAc,EAAQ,MAAM,EAC9B,CAAA,EACE,8CACA,EACA,IACA,EACA,IACA,EAAQ,MAAM,AAAN,EAGZ,IAAM,EAAS,kBACb,0BACA,EAAa,CAAC,YAAA,IAAA,CAAU,EAAQ,IAAI,CAAE,EAAQ,MAAM,EAAI,IAAI,CAAG,EAAE,CAG/D,CAAA,GACF,QAAQ,GAAG,CACT,CAAC,mCAA4B,EAAE,YAAA,IAAA,CAC7B,EAAQ,IAAI,EAAI,GAChB,EAAQ,MAAM,EAAI,IAClB,CAAC,CAAC,EAIR,EAAO,EAAE,CAAC,QAAS,AAAC,IAClB,MAAM,CACR,GAEA,EAAO,MAAM,CAAC,GAEV,GACF,YAAK,GAGP,QAAQ,GAAG,CAAC,gCACZ,QAAQ,GAAG,CAAC,CAAC,sBAAsB,EAAE,EAAA,CAAU,EAC/C,QAAQ,GAAG,CACT,CAAC,sBAAsB,EAAE,EAAS,OAAO,CAAC,EAAU,UAAA,OAAA,IAAA,CAAe,EAGrE,oCAAgB,CAClB,CAEO,SAAS,4CACV,qCACF,oCAAc,KAAK,EAEvB,CAEO,SAAS,0CAAS,CAAkB,CAAE,CAAgB,EAC3D,8BAAQ,OAAO,CAAC,AAAC,GACf,EAAO,QAAQ,CAAC,KAAK,CACnB,CAAC,MAAM,EAAE,KAAK,SAAS,CAAC,CACtB,WAAY,EACZ,SAAU,CACZ;AAAG;AAAI,CAAC,EAGd,CAEA,SAAS,oCACP,CAAwB,CACxB,CAA0B,CAC1B,CAAS,EAOT,EAAS,SAAS,CAAC,IALH,CACd,eAAgB,oBAChB,WAAY,aACZ,gBAAiB,UACnB,GAGA,IAAM,EAAO,CAAC;AAAA;AAAU,CAAC,CAEzB,EAAS,KAAK,CAAC,GAEf,IAAM,EAAW,KAAK,GAAG,GAOzB,8BAAQ,IAAI,CALM,CAChB,GAAI,EACJ,SAAA,CACF,GAIA,EAAQ,EAAE,CAAC,QAAS,KAClB,QAAQ,GAAG,CAAC,CAAA,EAAG,EAAS,kBAAkB,CAAC,EAC3C,8BAAU,8BAAQ,MAAM,CAAC,AAAC,GAAW,EAAO,EAAE,GAAK,EACrD,EACF,CA3XA,0CAAK,yCD1DL,IAAM,2BAAO,gBAAoB,QAAQ,IAAI,CAAC,KAAK,CAAC,IAIpD,SAAS,kCACP,QAAQ,GAAG,CAAC,4CACZ,QAAQ,GAAG,CAAC,8CACZ,QAAQ,GAAG,CAAC,kDACZ,QAAQ,GAAG,CAAC,+CACZ,QAAQ,GAAG,CAAC,kDACZ,QAAQ,GAAG,CAAC,uCACZ,QAAQ,GAAG,EACb,CAEI,CAAA,2BAAK,CAAC,EAAI,2BAAK,OAAO,AAAP,IACjB,QAAQ,GAAG,CAAC,qBACZ,QAAQ,GAAG,CAAC,qBACZ,QAAQ,IAAI,IAGV,CAAA,2BAAK,CAAC,EAAI,2BAAK,IAAI,AAAJ,IACjB,kCAEA,QAAQ,GAAG,CAAC,mCACZ,QAAQ,GAAG,CAAC,6CACZ,QAAQ,GAAG,CAAC,gEACZ,QAAQ,GAAG,CAAC,iEACZ,QAAQ,GAAG,CAAC,qDACZ,QAAQ,GAAG,CAAC,kDACZ,QAAQ,GAAG,CAAC,4CACZ,QAAQ,GAAG,CAAC,+DACZ,QAAQ,GAAG,GACX,QAAQ,GAAG,CAAC,gEACZ,QAAQ,GAAG,CAAC,gEACZ,QAAQ,GAAG,CAAC,8DACZ,QAAQ,GAAG,CAAC,+CACZ,QAAQ,GAAG,CAAC,sDACZ,QAAQ,GAAG,CAAC,sDAEZ,QAAQ,IAAI,IAGd,kCAEA,0CAAY,2BAAK,YAAY,EAE7B,GAAI,CACF,0CACE,2BAAK,CAAC,EAAI,2BAAK,IAAI,CACnB,2BAAK,CAAC,EAAI,2BAAK,QAAQ,CACvB,2BAAK,CAAC,EAAI,2BAAK,KAAK,CACpB,2BAAK,CAAC,EAAI,2BAAK,eAAe,EAAI,QAAQ,GAAG,CAAC,oBAAoB,CAClE,2BAAK,CAAC,EAAI,2BAAK,IAAI,CACnB,2BAAK,CAAC,EAAI,2BAAK,IAAI,CACnB,2BAAK,CAAC,EAAI,2BAAK,IAAI,CAEvB,CAAE,MAAO,EAAG,CACV,QAAQ,KAAK,CAAC,UAAW,EAAE,OAAO,EAClC,QAAQ,IAAI,EACd,CAEA,QAAQ,GAAG,CAAC","sources":["<anon>","src/index.ts","src/lib.ts"],"sourcesContent":["var $aRKkE$minimist = require(\"minimist\");\nvar $aRKkE$path = require(\"path\");\nvar $aRKkE$dotenv = require(\"dotenv\");\nvar $aRKkE$express = require(\"express\");\nvar $aRKkE$fs = require(\"fs\");\nvar $aRKkE$cors = require(\"cors\");\nvar $aRKkE$expresshandlebars = require(\"express-handlebars\");\nvar $aRKkE$ip = require(\"ip\");\nvar $aRKkE$open = require(\"open\");\nvar $aRKkE$bodyparser = require(\"body-parser\");\nvar $aRKkE$reloadshjs = require(\"reloadsh.js\");\n\n\n\n\n\nvar $f14dee9e17222834$var$$parcel$__dirname = $aRKkE$path.resolve(__dirname, \"../src\");\n\n$aRKkE$dotenv.config();\n\n\n\n\n\nconst $f14dee9e17222834$var$app = $aRKkE$express();\n$f14dee9e17222834$var$app.use($aRKkE$bodyparser.json());\nvar $f14dee9e17222834$var$dirname = '';\nvar $f14dee9e17222834$var$node_modules;\nvar $f14dee9e17222834$var$reloadPath = '';\nvar $f14dee9e17222834$var$liascriptPath = '';\nvar $f14dee9e17222834$var$clients = [];\nconst $f14dee9e17222834$var$gotoScript = `<script>\nif (!window.LIA) {\n window.LIA = {}\n}\n\nvar filename__ = document.location.search.replace(\"?\"+document.location.origin, \"\")\n\nwindow.LIA.lineGoto = function(linenumber) {\n fetch(\"/lineGoto\", {\n method: \"POST\",\n headers: {'Content-Type': 'application/json'}, \n body: JSON.stringify({\n \"linenumber\": linenumber,\n \"filename\": filename__\n })\n }).then(res => {\n console.log(\"Goto line\", linenumber);\n });\n}\n\nconst events = new EventSource('/gotoLine');\nevents.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data);\n if (data.filename == filename__) {\n console.log(\"goto line:\", data.linenumber);\n window.LIA.gotoLine(data.linenumber)\n }\n } catch (e) {\n console.warn(\"gotoLine failed\")\n }\n};\n</script>`;\nvar $f14dee9e17222834$var$serverPointer;\n$f14dee9e17222834$export$2cd8252107eb640b($f14dee9e17222834$var$$parcel$__dirname);\nfunction $f14dee9e17222834$export$2cd8252107eb640b(serverPath, nodeModulesPath) {\n $f14dee9e17222834$var$dirname = serverPath || $aRKkE$path.join($f14dee9e17222834$var$$parcel$__dirname, '..');\n $f14dee9e17222834$var$node_modules = nodeModulesPath || $aRKkE$path.join($f14dee9e17222834$var$dirname, 'node_modules');\n $f14dee9e17222834$var$reloadPath = $aRKkE$path.resolve($aRKkE$path.join($f14dee9e17222834$var$node_modules, 'reloadsh.js/reloader.browser.js'));\n $f14dee9e17222834$var$liascriptPath = $aRKkE$path.resolve($aRKkE$path.join($f14dee9e17222834$var$node_modules, '@liascript/editor/dist'));\n}\n\nfunction $f14dee9e17222834$export$b3571188c770cc5a(port, hostname, input, responsiveVoice, liveReload, openInBrowser, testOnline, gotoCallback) {\n port = port || 3000;\n hostname = hostname || 'localhost';\n openInBrowser = openInBrowser || false;\n input = input || '.';\n liveReload = liveReload || false;\n testOnline = testOnline || false;\n var project = {\n path: input,\n readme: undefined\n };\n if (input) {\n const stats = $aRKkE$fs.lstatSync(input);\n // Is it a directory?\n if (stats.isDirectory()) project.path = input;\n else if (stats.isFile()) {\n project.path = $aRKkE$path.dirname(input);\n project.readme = $aRKkE$path.basename(input);\n }\n }\n $f14dee9e17222834$var$app.set('view engine', 'hbs');\n $f14dee9e17222834$var$app.engine('hbs', $aRKkE$expresshandlebars({\n layoutsDir: $aRKkE$path.resolve($aRKkE$path.join($f14dee9e17222834$var$dirname, 'views/layouts')),\n defaultLayout: 'main',\n extname: 'hbs'\n }));\n $f14dee9e17222834$var$app.set('views', $aRKkE$path.resolve($aRKkE$path.join($f14dee9e17222834$var$dirname, 'views')));\n $f14dee9e17222834$var$app.get('/', function(req, res) {\n res.redirect('/home');\n });\n $f14dee9e17222834$var$app.get('/gotoLine', $f14dee9e17222834$var$eventsHandler);\n $f14dee9e17222834$var$app.get('/home*', function(req, res) {\n const currentPath = project.path + '/' + req.params[0];\n const stats = $aRKkE$fs.lstatSync(currentPath);\n // Is it a directory?\n if (stats.isDirectory()) {\n const files = $aRKkE$fs.readdirSync(currentPath).filter((e)=>{\n return e[0] !== '.';\n });\n let basePath = '/home';\n let pathNames = req.params[0].split('/').filter((e)=>{\n return e !== '';\n });\n let paths = [];\n for(let i = 0; i < pathNames.length; i++){\n basePath += '/' + pathNames[i];\n paths.push({\n name: pathNames[i],\n href: basePath\n });\n }\n res.render('main', {\n layout: 'index',\n path: paths,\n file: files.map((file)=>{\n return {\n name: file,\n href: `http://${hostname}:${port}/home${req.params[0]}/${file}`,\n isDirectory: $aRKkE$fs.lstatSync(currentPath + '/' + file).isDirectory()\n };\n }).sort((a, b)=>{\n if (a.isDirectory && !b.isDirectory) return -1;\n else if (!a.isDirectory && b.isDirectory) return 1;\n else {\n if (a.name.toLocaleLowerCase() < b.name.toLocaleLowerCase()) return -1;\n else return 1;\n }\n return 0;\n })\n });\n } else if (stats.isFile()) {\n if (req.params[0].toLocaleLowerCase().endsWith('.md')) {\n if (testOnline) res.redirect(`https://LiaScript.github.io/course/?http://${hostname}:${port}/${req.params[0]}`);\n else res.redirect(`/liascript/index.html?http://${hostname}:${port}/${req.params[0]}`);\n } else res.sendFile(req.params[0], {\n root: project.path\n });\n } else res.send('ups, something went wrong');\n });\n $f14dee9e17222834$var$app.get('/liascript/', function(req, res) {\n res.redirect('/liascript/index.html');\n });\n $f14dee9e17222834$var$app.get('/liascript/index.html', function(req, res) {\n // ------------------------------------\n if (liveReload && responsiveVoice) $aRKkE$fs.readFile($f14dee9e17222834$var$liascriptPath + '/index.html', 'utf8', function(err, data) {\n res.send(data.replace('</head>', `<script type='text/javascript' src='/reloader/reloader.js'></script>\n <script type='text/javascript' src='https://code.responsivevoice.org/responsivevoice.js?key=${responsiveVoice}'></script>\n ${$f14dee9e17222834$var$gotoScript}\n </head>`));\n });\n else if (liveReload) $aRKkE$fs.readFile($f14dee9e17222834$var$liascriptPath + '/index.html', 'utf8', function(err, data) {\n res.send(data.replace('</head>', `<script type='text/javascript' src='/reloader/reloader.js'></script>\n ${$f14dee9e17222834$var$gotoScript}\n </head>`));\n });\n else if (responsiveVoice) $aRKkE$fs.readFile($f14dee9e17222834$var$liascriptPath + '/index.html', 'utf8', function(err, data) {\n res.send(data.replace('</head>', `<script type='text/javascript' src='https://code.responsivevoice.org/responsivevoice.js?key=${responsiveVoice}'></script>\n ${$f14dee9e17222834$var$gotoScript}\n </head>`));\n });\n else $aRKkE$fs.readFile($f14dee9e17222834$var$liascriptPath + '/index.html', 'utf8', function(err, data) {\n res.send(data.replace('</head>', `${$f14dee9e17222834$var$gotoScript}</head>`));\n });\n });\n // load everything from the liascript folder\n $f14dee9e17222834$var$app.get('/liascript/*', function(req, res) {\n res.sendFile(req.params[0], {\n root: $f14dee9e17222834$var$liascriptPath\n }, (err)=>{\n if (err) {\n // Extract the file path by removing the '/liascript/' prefix\n const projectPath = req.params[0];\n console.log(`File not found in liascriptPath, trying project.path: ${projectPath}`, project.path);\n res.sendFile(projectPath, {\n root: project.path\n });\n }\n });\n });\n // ignore this one\n $f14dee9e17222834$var$app.get('/sw.js', function(req, res) {});\n $f14dee9e17222834$var$app.get('/favicon.ico', function(req, res) {});\n // pass the reloader, to be used for live updates\n $f14dee9e17222834$var$app.get('/reloader/reloader.js', function(req, res) {\n res.sendFile($f14dee9e17222834$var$reloadPath);\n });\n // react to click-events\n $f14dee9e17222834$var$app.post('/lineGoto', function(req, res) {\n if (gotoCallback) try {\n const linenumber = req.body.linenumber;\n const filename = req.body.filename;\n gotoCallback(linenumber, filename);\n } catch (e) {\n console.warn(\"lineGoto event with wrong datatype, you have to provide {'linenumber': int, 'filename': string}\");\n }\n return res.json({});\n });\n // everything else comes from the current project folder\n $f14dee9e17222834$var$app.get('/*', $aRKkE$cors(), function(req, res) {\n res.sendFile(req.originalUrl, {\n root: project.path\n });\n });\n let localURL = 'http://' + hostname + ':' + port;\n if (project.path && project.readme) localURL += '/liascript/index.html?http://' + hostname + ':' + port + '/' + project.readme;\n if (testOnline && project.readme) localURL = 'https://LiaScript.github.io/course/?http://' + hostname + ':' + port + '/' + project.readme;\n const server = $aRKkE$reloadshjs($f14dee9e17222834$var$app, liveReload ? [\n $aRKkE$path.join(project.path, project.readme || '')\n ] : []);\n if (liveReload) console.log(`\\u{2728} watching for changes on: \"${$aRKkE$path.join(project.path || '', project.readme || '')}\"`);\n server.on('error', (e)=>{\n throw e;\n });\n server.listen(port);\n if (openInBrowser) $aRKkE$open(localURL);\n console.log(\"\\uD83D\\uDCE1 starting server\");\n console.log(` - local: ${localURL}`);\n console.log(` - on your network: ${localURL.replace(hostname, $aRKkE$ip.address())}`);\n $f14dee9e17222834$var$serverPointer = server;\n}\nfunction $f14dee9e17222834$export$fa6813432f753b0d() {\n if ($f14dee9e17222834$var$serverPointer) $f14dee9e17222834$var$serverPointer.close();\n}\nfunction $f14dee9e17222834$export$5d5b784f9a618ec3(linenumber, filename) {\n $f14dee9e17222834$var$clients.forEach((client)=>client.response.write(`data: ${JSON.stringify({\n linenumber: linenumber,\n filename: filename\n })}\\n\\n`));\n}\nfunction $f14dee9e17222834$var$eventsHandler(request, response, next) {\n const headers = {\n 'Content-Type': 'text/event-stream',\n Connection: 'keep-alive',\n 'Cache-Control': 'no-cache'\n };\n response.writeHead(200, headers);\n const data = `data: \\n\\n`;\n response.write(data);\n const clientId = Date.now();\n const newClient = {\n id: clientId,\n response: response\n };\n $f14dee9e17222834$var$clients.push(newClient);\n request.on('close', ()=>{\n console.log(`${clientId} Connection closed`);\n $f14dee9e17222834$var$clients = $f14dee9e17222834$var$clients.filter((client)=>client.id !== clientId);\n });\n}\n\n\n\nconst $71fcc9ea54afc905$var$argv = $aRKkE$minimist(process.argv.slice(2));\nfunction $71fcc9ea54afc905$var$liascript() {\n console.log(' _ _ ____ _ _');\n console.log('| | (_) __ _/ ___| ___ _ __(_)_ __ | |_');\n console.log(\"| | | |/ _` \\\\___ \\\\ / __| '__| | '_ \\\\| __|\");\n console.log('| |___| | (_| |___) | (__| | | | |_) | |_ ');\n console.log('|_____|_|\\\\__,_|____/ \\\\___|_| |_| .__/ \\\\__|');\n console.log(' |_|');\n console.log();\n}\nif ($71fcc9ea54afc905$var$argv.v || $71fcc9ea54afc905$var$argv.version) {\n console.log('DevServer: 1.1.46');\n console.log('LiaScript: 0.17.5');\n process.exit();\n}\nif ($71fcc9ea54afc905$var$argv.h || $71fcc9ea54afc905$var$argv.help) {\n $71fcc9ea54afc905$var$liascript();\n console.log('-h --help show this help');\n console.log('-v --version show version information');\n console.log('-i --input input README.md file or folder (default: .)');\n console.log('-n --hostname hostname of your server (default: localhost)');\n console.log('-p --port used port number (default: 3000)');\n console.log('-l --live do live reload on file change');\n console.log('-o --open open in default browser');\n console.log('-t --test test online on https://LiaScript.github.io');\n console.log();\n console.log('-r --responsiveVoice add optional responsiveVoice support,');\n console.log(' or pass your own responsiveVoice key.');\n console.log(' Adding this feature might slow down');\n console.log(' the reloading speed.');\n console.log(' For more information visit:');\n console.log(' https://responsivevoice.org');\n process.exit();\n}\n$71fcc9ea54afc905$var$liascript();\n$f14dee9e17222834$export$2cd8252107eb640b($71fcc9ea54afc905$var$argv.node_modules);\ntry {\n $f14dee9e17222834$export$b3571188c770cc5a($71fcc9ea54afc905$var$argv.p || $71fcc9ea54afc905$var$argv.port, $71fcc9ea54afc905$var$argv.n || $71fcc9ea54afc905$var$argv.hostname, $71fcc9ea54afc905$var$argv.i || $71fcc9ea54afc905$var$argv.input, $71fcc9ea54afc905$var$argv.r || $71fcc9ea54afc905$var$argv.responsiveVoice || process.env.RESPONSIVE_VOICE_KEY, $71fcc9ea54afc905$var$argv.l || $71fcc9ea54afc905$var$argv.live, $71fcc9ea54afc905$var$argv.o || $71fcc9ea54afc905$var$argv.open, $71fcc9ea54afc905$var$argv.t || $71fcc9ea54afc905$var$argv.test);\n} catch (e) {\n console.error('Error: ', e.message);\n process.exit();\n}\nconsole.log(\"\\u2728 hit Ctrl-c to close the server\");\n\n\n//# sourceMappingURL=index.js.map\n","const argv = require('minimist')(process.argv.slice(2))\n\nimport * as server from './lib'\n\nfunction liascript() {\n console.log(' _ _ ____ _ _')\n console.log('| | (_) __ _/ ___| ___ _ __(_)_ __ | |_')\n console.log(\"| | | |/ _` \\\\___ \\\\ / __| '__| | '_ \\\\| __|\")\n console.log('| |___| | (_| |___) | (__| | | | |_) | |_ ')\n console.log('|_____|_|\\\\__,_|____/ \\\\___|_| |_| .__/ \\\\__|')\n console.log(' |_|')\n console.log()\n}\n\nif (argv.v || argv.version) {\n console.log('DevServer: 1.1.46')\n console.log('LiaScript: 0.17.5')\n process.exit()\n}\n\nif (argv.h || argv.help) {\n liascript()\n\n console.log('-h --help show this help')\n console.log('-v --version show version information')\n console.log('-i --input input README.md file or folder (default: .)')\n console.log('-n --hostname hostname of your server (default: localhost)')\n console.log('-p --port used port number (default: 3000)')\n console.log('-l --live do live reload on file change')\n console.log('-o --open open in default browser')\n console.log('-t --test test online on https://LiaScript.github.io')\n console.log()\n console.log('-r --responsiveVoice add optional responsiveVoice support,')\n console.log(' or pass your own responsiveVoice key.')\n console.log(' Adding this feature might slow down')\n console.log(' the reloading speed.')\n console.log(' For more information visit:')\n console.log(' https://responsivevoice.org')\n\n process.exit()\n}\n\nliascript()\n\nserver.init(argv.node_modules)\n\ntry {\n server.start(\n argv.p || argv.port,\n argv.n || argv.hostname,\n argv.i || argv.input,\n argv.r || argv.responsiveVoice || process.env.RESPONSIVE_VOICE_KEY,\n argv.l || argv.live,\n argv.o || argv.open,\n argv.t || argv.test\n )\n} catch (e) {\n console.error('Error: ', e.message)\n process.exit()\n}\n\nconsole.log('✨ hit Ctrl-c to close the server')\n","require('dotenv').config()\nimport * as express from 'express'\n\nimport * as fs from 'fs'\nimport * as path from 'path'\n\nconst cors = require('cors')\nconst handlebars = require('express-handlebars')\nconst ip = require('ip')\nconst open = require('open')\nconst bodyParser = require('body-parser')\n\nconst app: express.Application = express()\napp.use(bodyParser.json())\n\nvar dirname = ''\nvar node_modules\nvar reloadPath = ''\nvar liascriptPath = ''\n\nvar clients: any[] = []\n\nconst gotoScript = `<script>\nif (!window.LIA) {\n window.LIA = {}\n}\n\nvar filename__ = document.location.search.replace(\"?\"+document.location.origin, \"\")\n\nwindow.LIA.lineGoto = function(linenumber) {\n fetch(\"/lineGoto\", {\n method: \"POST\",\n headers: {'Content-Type': 'application/json'}, \n body: JSON.stringify({\n \"linenumber\": linenumber,\n \"filename\": filename__\n })\n }).then(res => {\n console.log(\"Goto line\", linenumber);\n });\n}\n\nconst events = new EventSource('/gotoLine');\nevents.onmessage = (event) => {\n try {\n const data = JSON.parse(event.data);\n if (data.filename == filename__) {\n console.log(\"goto line:\", data.linenumber);\n window.LIA.gotoLine(data.linenumber)\n }\n } catch (e) {\n console.warn(\"gotoLine failed\")\n }\n};\n</script>`\n\nvar serverPointer: any\n\ninit(__dirname)\n\nexport function init(serverPath?: string, nodeModulesPath?: string) {\n dirname = serverPath || path.join(__dirname, '..')\n\n node_modules = nodeModulesPath || path.join(dirname, 'node_modules')\n\n reloadPath = path.resolve(\n path.join(node_modules, 'reloadsh.js/reloader.browser.js')\n )\n\n liascriptPath = path.resolve(\n path.join(node_modules, '@liascript/editor/dist')\n )\n}\n\nexport function start(\n port?: number,\n hostname?: string,\n input?: string,\n responsiveVoice?: string,\n liveReload?: boolean,\n openInBrowser?: boolean,\n testOnline?: boolean,\n gotoCallback?: (linenumber: number, filename: string) => void\n) {\n port = port || 3000\n hostname = hostname || 'localhost'\n openInBrowser = openInBrowser || false\n input = input || '.'\n liveReload = liveReload || false\n testOnline = testOnline || false\n\n var project: {\n path: string\n readme?: string\n } = {\n path: input,\n readme: undefined,\n }\n\n if (input) {\n const stats = fs.lstatSync(input)\n\n // Is it a directory?\n if (stats.isDirectory()) {\n project.path = input\n } else if (stats.isFile()) {\n project.path = path.dirname(input)\n project.readme = path.basename(input)\n }\n }\n\n app.set('view engine', 'hbs')\n app.engine(\n 'hbs',\n handlebars({\n layoutsDir: path.resolve(path.join(dirname, 'views/layouts')),\n defaultLayout: 'main',\n extname: 'hbs',\n })\n )\n app.set('views', path.resolve(path.join(dirname, 'views')))\n\n app.get('/', function (req: express.Request, res: express.Response) {\n res.redirect('/home')\n })\n\n app.get('/gotoLine', eventsHandler)\n\n app.get('/home*', function (req: express.Request, res: express.Response) {\n const currentPath = project.path + '/' + req.params[0]\n\n const stats = fs.lstatSync(currentPath)\n\n // Is it a directory?\n if (stats.isDirectory()) {\n const files = fs.readdirSync(currentPath).filter((e: string) => {\n return e[0] !== '.'\n })\n\n let basePath = '/home'\n let pathNames = req.params[0].split('/').filter((e: string) => {\n return e !== ''\n })\n\n let paths: { name: string; href: string }[] = []\n for (let i = 0; i < pathNames.length; i++) {\n basePath += '/' + pathNames[i]\n paths.push({ name: pathNames[i], href: basePath })\n }\n\n res.render('main', {\n layout: 'index',\n path: paths,\n file: files\n .map((file: string) => {\n return {\n name: file,\n href: `http://${hostname}:${port}/home${req.params[0]}/${file}`,\n isDirectory: fs.lstatSync(currentPath + '/' + file).isDirectory(),\n }\n })\n .sort(\n (\n a: {\n name: string\n href: string\n isDirectory: boolean\n },\n b: {\n name: string\n href: string\n isDirectory: boolean\n }\n ) => {\n if (a.isDirectory && !b.isDirectory) {\n return -1\n } else if (!a.isDirectory && b.isDirectory) {\n return 1\n } else {\n if (a.name.toLocaleLowerCase() < b.name.toLocaleLowerCase()) {\n return -1\n } else {\n return 1\n }\n }\n return 0\n }\n ),\n })\n } else if (stats.isFile()) {\n if (req.params[0].toLocaleLowerCase().endsWith('.md')) {\n if (testOnline) {\n res.redirect(\n `https://LiaScript.github.io/course/?http://${hostname}:${port}/${req.params[0]}`\n )\n } else {\n res.redirect(\n `/liascript/index.html?http://${hostname}:${port}/${req.params[0]}`\n )\n }\n } else {\n res.sendFile(req.params[0], { root: project.path })\n }\n } else {\n res.send('ups, something went wrong')\n }\n })\n\n app.get(\n '/liascript/',\n function (req: express.Request, res: express.Response) {\n res.redirect('/liascript/index.html')\n }\n )\n\n app.get(\n '/liascript/index.html',\n function (req: express.Request, res: express.Response) {\n // ------------------------------------\n if (liveReload && responsiveVoice) {\n fs.readFile(\n liascriptPath + '/index.html',\n 'utf8',\n function (err: any, data: string) {\n res.send(\n data.replace(\n '</head>',\n `<script type='text/javascript' src='/reloader/reloader.js'></script>\n <script type='text/javascript' src='https://code.responsivevoice.org/responsivevoice.js?key=${responsiveVoice}'></script>\n ${gotoScript}\n </head>`\n )\n )\n }\n )\n }\n // ------------------------------------\n else if (liveReload) {\n fs.readFile(\n liascriptPath + '/index.html',\n 'utf8',\n function (err: any, data: string) {\n res.send(\n data.replace(\n '</head>',\n `<script type='text/javascript' src='/reloader/reloader.js'></script>\n ${gotoScript}\n </head>`\n )\n )\n }\n )\n }\n // ------------------------------------\n else if (responsiveVoice) {\n fs.readFile(\n liascriptPath + '/index.html',\n 'utf8',\n function (err: any, data: string) {\n res.send(\n data.replace(\n '</head>',\n `<script type='text/javascript' src='https://code.responsivevoice.org/responsivevoice.js?key=${responsiveVoice}'></script>\n ${gotoScript}\n </head>`\n )\n )\n }\n )\n }\n // ------------------------------------\n else {\n fs.readFile(\n liascriptPath + '/index.html',\n 'utf8',\n function (err: any, data: string) {\n res.send(data.replace('</head>', `${gotoScript}</head>`))\n }\n )\n }\n }\n )\n\n // load everything from the liascript folder\n app.get(\n '/liascript/*',\n function (req: express.Request, res: express.Response) {\n res.sendFile(req.params[0], { root: liascriptPath }, (err) => {\n if (err) {\n // Extract the file path by removing the '/liascript/' prefix\n const projectPath = req.params[0]\n console.log(\n `File not found in liascriptPath, trying project.path: ${projectPath}`,\n project.path\n )\n res.sendFile(projectPath, { root: project.path })\n }\n })\n }\n )\n // ignore this one\n app.get('/sw.js', function (req: express.Request, res: express.Response) {})\n app.get(\n '/favicon.ico',\n function (req: express.Request, res: express.Response) {}\n )\n\n // pass the reloader, to be used for live updates\n app.get(\n '/reloader/reloader.js',\n function (req: express.Request, res: express.Response) {\n res.sendFile(reloadPath)\n }\n )\n\n // react to click-events\n app.post('/lineGoto', function (req: express.Request, res: express.Response) {\n if (gotoCallback) {\n try {\n const linenumber = req.body.linenumber\n const filename = req.body.filename\n gotoCallback(linenumber, filename)\n } catch (e) {\n console.warn(\n \"lineGoto event with wrong datatype, you have to provide {'linenumber': int, 'filename': string}\"\n )\n }\n }\n return res.json({})\n })\n\n // everything else comes from the current project folder\n app.get('/*', cors(), function (req: express.Request, res: express.Response) {\n res.sendFile(req.originalUrl, { root: project.path })\n })\n\n let localURL = 'http://' + hostname + ':' + port\n\n if (project.path && project.readme) {\n localURL +=\n '/liascript/index.html?http://' +\n hostname +\n ':' +\n port +\n '/' +\n project.readme\n }\n\n if (testOnline && project.readme) {\n localURL =\n 'https://LiaScript.github.io/course/?http://' +\n hostname +\n ':' +\n port +\n '/' +\n project.readme\n }\n\n const server = require('reloadsh.js')(\n app,\n liveReload ? [path.join(project.path, project.readme || '')] : []\n )\n\n if (liveReload) {\n console.log(\n `✨ watching for changes on: \"${path.join(\n project.path || '',\n project.readme || ''\n )}\"`\n )\n }\n\n server.on('error', (e: any) => {\n throw e\n })\n\n server.listen(port)\n\n if (openInBrowser) {\n open(localURL)\n }\n\n console.log('📡 starting server')\n console.log(` - local: ${localURL}`)\n console.log(\n ` - on your network: ${localURL.replace(hostname, ip.address())}`\n )\n\n serverPointer = server\n}\n\nexport function stop() {\n if (serverPointer) {\n serverPointer.close()\n }\n}\n\nexport function gotoLine(linenumber: number, filename: string) {\n clients.forEach((client) =>\n client.response.write(\n `data: ${JSON.stringify({\n linenumber: linenumber,\n filename: filename,\n })}\\n\\n`\n )\n )\n}\n\nfunction eventsHandler(\n request: express.Request,\n response: express.Response,\n next: any\n) {\n const headers = {\n 'Content-Type': 'text/event-stream',\n Connection: 'keep-alive',\n 'Cache-Control': 'no-cache',\n }\n response.writeHead(200, headers)\n\n const data = `data: \\n\\n`\n\n response.write(data)\n\n const clientId = Date.now()\n\n const newClient = {\n id: clientId,\n response,\n }\n\n clients.push(newClient)\n\n request.on('close', () => {\n console.log(`${clientId} Connection closed`)\n clients = clients.filter((client) => client.id !== clientId)\n })\n}\n"],"names":["$f14dee9e17222834$var$node_modules","$f14dee9e17222834$var$serverPointer","$aRKkE$minimist","require","$aRKkE$path","$aRKkE$dotenv","$aRKkE$express","$aRKkE$fs","$aRKkE$cors","$aRKkE$expresshandlebars","$aRKkE$ip","$aRKkE$open","$aRKkE$bodyparser","$aRKkE$reloadshjs","$f14dee9e17222834$var$$parcel$__dirname","resolve","__dirname","config","$f14dee9e17222834$var$app","use","json","$f14dee9e17222834$var$dirname","$f14dee9e17222834$var$reloadPath","$f14dee9e17222834$var$liascriptPath","$f14dee9e17222834$var$clients","$f14dee9e17222834$var$gotoScript","$f14dee9e17222834$export$2cd8252107eb640b","serverPath","nodeModulesPath","join","$f14dee9e17222834$export$b3571188c770cc5a","port","hostname","input","responsiveVoice","liveReload","openInBrowser","testOnline","gotoCallback","project","path","readme","undefined","stats","lstatSync","isDirectory","isFile","dirname","basename","set","engine","layoutsDir","defaultLayout","extname","get","req","res","redirect","$f14dee9e17222834$var$eventsHandler","currentPath","params","files","readdirSync","filter","e","basePath","pathNames","split","paths","i","length","push","name","href","render","layout","file","map","sort","a","b","toLocaleLowerCase","endsWith","sendFile","root","send","readFile","err","data","replace","projectPath","console","log","post","linenumber","body","filename","warn","originalUrl","localURL","server","on","listen","address","$f14dee9e17222834$export$fa6813432f753b0d","close","$f14dee9e17222834$export$5d5b784f9a618ec3","forEach","client","response","write","JSON","stringify","request","next","writeHead","Connection","clientId","Date","now","id","$71fcc9ea54afc905$var$argv","process","argv","slice","$71fcc9ea54afc905$var$liascript","v","version","exit","h","help","node_modules","p","n","r","env","RESPONSIVE_VOICE_KEY","l","live","o","open","t","test","error","message"],"version":3,"file":"index.js.map","sourceRoot":"../"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@liascript/devserver",
3
- "version": "1.1.45--0.17.4",
3
+ "version": "1.1.46--0.17.5",
4
4
  "description": "Run a development server for LiaScript locally",
5
5
  "main": "dist/index.js",
6
6
  "scripts": {
@@ -35,7 +35,7 @@
35
35
  "author": "André Dietrich",
36
36
  "license": "MIT",
37
37
  "dependencies": {
38
- "@liascript/editor": "^1.1.34--0.17.4",
38
+ "@liascript/editor": "^1.1.34--0.17.5",
39
39
  "body-parser": "^1.20.2",
40
40
  "cors": "^2.8.5",
41
41
  "dotenv": "^5.0.1",
package/views/main.hbs CHANGED
@@ -7,7 +7,7 @@
7
7
  | |___| | (_| |___) | (__| | | | |_) | |_
8
8
  |_____|_|\__,_|____/ \___|_| |_| .__/ \__|
9
9
  |_|
10
- [ DevServer: 1.1.44--0.17.3 ]
10
+ [ DevServer: 1.1.46--0.17.5 ]
11
11
  </pre>
12
12
  </code>
13
13
  </h4>