{"id":18597848,"url":"https://github.com/liascript/liascript-devserver","last_synced_at":"2026-02-18T12:01:22.920Z","repository":{"id":41091715,"uuid":"337460359","full_name":"LiaScript/LiaScript-DevServer","owner":"LiaScript","description":"Run a LiaScript development server locally","archived":false,"fork":false,"pushed_at":"2026-01-20T21:21:45.000Z","size":2241,"stargazers_count":4,"open_issues_count":1,"forks_count":3,"subscribers_count":3,"default_branch":"main","last_synced_at":"2026-01-21T06:58:51.269Z","etag":null,"topics":["development","liascript","server"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LiaScript.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2021-02-09T16:06:54.000Z","updated_at":"2026-01-20T21:21:45.000Z","dependencies_parsed_at":"2023-09-22T16:55:58.850Z","dependency_job_id":"81d5fddd-7de0-430e-b141-ab656947f2bb","html_url":"https://github.com/LiaScript/LiaScript-DevServer","commit_stats":null,"previous_names":[],"tags_count":61,"template":false,"template_full_name":null,"purl":"pkg:github/LiaScript/LiaScript-DevServer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiaScript%2FLiaScript-DevServer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiaScript%2FLiaScript-DevServer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiaScript%2FLiaScript-DevServer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiaScript%2FLiaScript-DevServer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LiaScript","download_url":"https://codeload.github.com/LiaScript/LiaScript-DevServer/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LiaScript%2FLiaScript-DevServer/sbom","scorecard":{"id":83993,"data":{"date":"2025-08-11","repo":{"name":"github.com/LiaScript/LiaScript-DevServer","commit":"7d88f3f2ef184d0ae5046dd3b629deb85f7a4ef5"},"scorecard":{"version":"v5.2.1-40-gf6ed084d","commit":"f6ed084d17c9236477efd66e5b258b9d4cc7b389"},"score":2.8,"checks":[{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#binary-artifacts"}},{"name":"Code-Review","score":0,"reason":"Found 0/30 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#code-review"}},{"name":"Maintained","score":2,"reason":"3 commit(s) and 0 issue activity found in the last 90 days -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#maintained"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#packaging"}},{"name":"SAST","score":0,"reason":"no SAST tool detected","details":["Warn: no pull requests merged into dev branch"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#sast"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/create-release.yml:1","Warn: no topLevel permission defined: .github/workflows/npm-publish.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#token-permissions"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#dangerous-workflow"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/create-release.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/LiaScript/LiaScript-DevServer/create-release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/create-release.yml:15: update your workflow using https://app.stepsecurity.io/secureworkflow/LiaScript/LiaScript-DevServer/create-release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/create-release.yml:27: update your workflow using https://app.stepsecurity.io/secureworkflow/LiaScript/LiaScript-DevServer/create-release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/create-release.yml:38: update your workflow using https://app.stepsecurity.io/secureworkflow/LiaScript/LiaScript-DevServer/create-release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/create-release.yml:47: update your workflow using https://app.stepsecurity.io/secureworkflow/LiaScript/LiaScript-DevServer/create-release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/create-release.yml:56: update your workflow using https://app.stepsecurity.io/secureworkflow/LiaScript/LiaScript-DevServer/create-release.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/LiaScript/LiaScript-DevServer/npm-publish.yml/main?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/npm-publish.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/LiaScript/LiaScript-DevServer/npm-publish.yml/main?enable=pin","Warn: npmCommand not pinned by hash: .github/workflows/create-release.yml:20","Warn: npmCommand not pinned by hash: .github/workflows/create-release.yml:22","Info:   0 out of   8 GitHub-owned GitHubAction dependencies pinned","Info:   1 out of   3 npmCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#pinned-dependencies"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#cii-best-practices"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#security-policy"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#license"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":0,"reason":"Project has not signed or included provenance with any releases.","details":["Warn: release artifact 1.1.44 not signed: https://api.github.com/repos/LiaScript/LiaScript-DevServer/releases/227066815","Warn: release artifact 1.1.43 not signed: https://api.github.com/repos/LiaScript/LiaScript-DevServer/releases/223202773","Warn: release artifact 1.1.42 not signed: https://api.github.com/repos/LiaScript/LiaScript-DevServer/releases/219481061","Warn: release artifact 1.1.41 not signed: https://api.github.com/repos/LiaScript/LiaScript-DevServer/releases/218226109","Warn: release artifact 1.1.40 not signed: https://api.github.com/repos/LiaScript/LiaScript-DevServer/releases/217918671","Warn: release artifact 1.1.44 does not have provenance: https://api.github.com/repos/LiaScript/LiaScript-DevServer/releases/227066815","Warn: release artifact 1.1.43 does not have provenance: https://api.github.com/repos/LiaScript/LiaScript-DevServer/releases/223202773","Warn: release artifact 1.1.42 does not have provenance: https://api.github.com/repos/LiaScript/LiaScript-DevServer/releases/219481061","Warn: release artifact 1.1.41 does not have provenance: https://api.github.com/repos/LiaScript/LiaScript-DevServer/releases/218226109","Warn: release artifact 1.1.40 does not have provenance: https://api.github.com/repos/LiaScript/LiaScript-DevServer/releases/217918671"],"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":0,"reason":"branch protection not enabled on development/release branches","details":["Warn: branch protection not enabled for branch 'main'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#branch-protection"}},{"name":"Vulnerabilities","score":4,"reason":"6 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-xq7p-g2vc-g82p","Warn: Project is vulnerable to: GHSA-v6h2-p8h4-qcjw","Warn: Project is vulnerable to: GHSA-pxg6-pf52-xh8x","Warn: Project is vulnerable to: GHSA-gxpj-cx7g-858c","Warn: Project is vulnerable to: GHSA-2p57-rm9w-gvfp","Warn: Project is vulnerable to: GHSA-6fx8-h7jm-663j"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/f6ed084d17c9236477efd66e5b258b9d4cc7b389/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-15T06:32:04.660Z","repository_id":41091715,"created_at":"2025-08-15T06:32:04.660Z","updated_at":"2025-08-15T06:32:04.660Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29578143,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-18T08:38:15.585Z","status":"ssl_error","status_checked_at":"2026-02-18T08:38:14.917Z","response_time":162,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["development","liascript","server"],"created_at":"2024-11-07T01:29:37.857Z","updated_at":"2026-02-18T12:01:22.914Z","avatar_url":"https://github.com/LiaScript.png","language":"TypeScript","readme":"# LiaScript-DevServer\n\nThis project is intended to support the development of interactive courses with\n[LiaScript](https://LiaScript.github.io). This projects implements a development\nserver that can be used locally to preview courses within the browser.\n\n## Install\n\nYou can directly download the latest version for your system from the assets:\n\nhttps://github.com/LiaScript/LiaScript-DevServer/releases/\n\nor install it via the NodeJS package manager `npm` ...\n\n### NodeJS\n\nIf you haven't installed it yet, you will have to install NodeJS for your\nsystem. This is the actual runtime environment for your local server and also\ncontains the package manager that we will need for installing the\n[LiaScript-DevServer](https://www.npmjs.com/package/@liascript/devserver).\n\nhttps://nodejs.org/en/download/\n\n### LiaScript-DevServer\n\nOpen the terminal on your system and type the following command.\n\n```bash\nnpm install -g @liascript/devserver\n```\n\nThis will automatically install all dependencies and the devServer as well ...\n\n\u003e **Note:** On Windows you open a terminal by typing `cmd` into the program\n\u003e search or you can also use the Powershell.\n\n## Usage\n\nYou can run the devServer by typing `liascript-devserver` or the short-cut\n`liadev` into your terminal. The following command will print out some help\ninformation on command-line parameters that you can use:\n\n```bash\nliascript-devserver --help\n```\n\n```text\n _     _       ____            _       _\n| |   (_) __ _/ ___|  ___ _ __(_)_ __ | |_\n| |   | |/ _` \\___ \\ / __| '__| | '_ \\| __|\n| |___| | (_| |___) | (__| |  | | |_) | |_\n|_____|_|\\__,_|____/ \\___|_|  |_| .__/ \\__|\n                                |_|\n\n-h  --help       show this help\n-v  --version    show version information\n-i  --input      input README.md file or folder (default: .)\n-p  --port       used port number (default: 3000)\n-l  --live       do live reload on file change\n-o  --open       open in default browser\n-t  --test       test online on https://LiaScript.github.io\n\n-r  --responsiveVoice  add optional responsiveVoice support,\n                       or pass your own responsiveVoice key.\n                       Adding this feature might slow down\n                       the reloading speed.\n                       For more information visit:\n```\n\n\u003e **Note:** `-h` or `--help` will only print out the help, all other parameters\n\u003e are ignored.\n\n### `--version`\n\nUse this to identify the current version, but you can alternatively also use the\nshortcut `-v`:\n\n```bash\nliascript-devserver --version\n```\n\nAt the moment this should give the following results. Since LiaScript gets\nupdated separately, we use two different version, one for the devServer and one\nfor LiaScript.\n\n```text\nDevServer: 1.2.0\nLiaScript: 1.0.2\n```\n\n### `--input`\n\nIf you run the command `liascript-devserver` without any commands, the server\nwill run from your current directory and give you the following output.\n\n```text\n$ liascript-devserver\n\n _     _       ____            _       _\n| |   (_) __ _/ ___|  ___ _ __(_)_ __ | |_\n| |   | |/ _  \\___ \\ / __| '__| | '_ \\| __|\n| |___| | (_| |___) | (__| |  | | |_) | |_\n|_____|_|\\__,_|____/ \\___|_|  |_| .__/ \\__|\n                                |_|\n\n📡 starting server\n   - local:           http://localhost:3000\n   - on your network: http://192.168.2.114:3000\n✨ hit Ctrl-c to close the server\n```\n\nThe server starts locally on port 3000, thus, if you open your browser and type\nin the URL http://localhost:3000 you should see a similar image\n\n![navigation-preview](pics/navigation.gif)\n\nHowever, if you add the `--input` parameter (shortcut `-i`) and pass it another\nfolder, this will be used as the root folder for the subsequent navigation.\n\n```bash\nliascript-devserver --input ../LiaBooks\n```\n\nBut you can also refer to a specific Markdown file, in this case, the course\nwill be rendered immediately by the LiaScript interpreter, if you open the\nfollowing link in your browser.\n\n```bash\nliascript-devserver --input ../LiaBooks/docs/README.md\n\n...\n📡 starting server\n   - local:           http://localhost:3000/liascript/index.html?http://localhost:3000/README.md\n   - on your network: http://192.168.2.114:3000/liascript/index.html?http://192.168.2.114:3000/README.md\n✨ hit Ctrl-c to close the server\n```\n\n![preview](pics/preview.gif)\n\n### `--open`\n\n**If you want to open the preview immediately, then use this parameter.** It\nwill open your default browser with the displayed URL automatically.\n\n```bash\nliascript-devserver --open -i ../LiaBooks\n```\n\n### `--live`\n\nUse this parameter if you want to have live updates. The server will monitor\nfile changes within the defined folder. When you type and save your document, a\nreload will be automatically triggered. If you prefer to reload your changes\nmanually via pressing `F5` do not use this option.\n\n```bash\nliascript-devserver --live -o -i ../LiaBooks/docs/README.md\n```\n\n![live-update](pics/live-update.gif)\n\n### `--port`\n\nIt is only possible to run on devServer at a given port-number, thereby 3000 is\nused as the default value. If you want to start multiple servers on different\nfolders or the port-number is already occupied by another process or server,\nthis will will be shown by the following error message:\n\n```bash\nliascript-devserver -o -i ../LiaBooks\n\n...\n📡 starting server\n   - local:           http://localhost:3000/liascript/index.html?http://localhost:3000/README.md\n   - on your network: http://192.168.2.114:3000/liascript/index.html?http://192.168.2.114:3000/README.md\n✨ hit Ctrl-c to close the server\n🚨 error =\u003e listen EADDRINUSE: address already in use :::3000\n```\n\nHowever, by using `--port 3001` or `-p 3001` you can redefine this number and\nrun different servers separately:\n\n```bash\nliascript-devserver --port 3001 -o -i ../LiaBooks\n\n...\n📡 starting server\n   - local:           http://localhost:3001/liascript/index.html?http://localhost:3001/README.md\n   - on your network: http://192.168.2.114:3001/liascript/index.html?http://192.168.2.114:3001/README.md\n✨ hit Ctrl-c to close the server\n```\n\n### `--test`\n\nSince we are using a local devServer, it is also possible to test your courses\nonline on the LiaScript project website: https://LiaScript.github.io\n\nSee how the URL changes by setting the parameter `--test`:\n\n```bash\nliascript-devserver --test -o -i ../LiaBooks/docs/README.md\n\n...\n📡 starting server\n   - local:           https://LiaScript.github.io/course/?http://localhost:3000/README.md\n   - on your network: https://LiaScript.github.io/course/?http://192.168.2.114:3000/README.md\n✨ hit Ctrl-c to close the server\n```\n\n\u003e **Note:** Live reload with `--live` will not work in this mode, since the\n\u003e server is only used to serve local data and not the LiaScript website.\n\u003e Additionally you will have to remove the courses manually from the index.\n\n### `--responsiveVoice`\n\nAutomated Text2Speech is **Not** enabled by default, since it reduces the reload\nspeed. But you can add this support by add this parameter, in this case the\nLiaScript project key is automatically injected. However, you can also pass your\nown key from your own project/website like this:\n\n```bash\n$ liascript-devserver --responsiveVoice YOURKEY -i ../LiaBooks\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliascript%2Fliascript-devserver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fliascript%2Fliascript-devserver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fliascript%2Fliascript-devserver/lists"}