{"id":43795,"name":"numbas","description":"A completely browser-based e-assessment/e-learning system, with an emphasis on mathematics","url":"https://github.com/numbas/numbas","last_synced_at":"2025-09-05T09:59:23.095Z","repository":{"id":1436531,"uuid":"1659192","full_name":"numbas/Numbas","owner":"numbas","description":"A completely browser-based e-assessment/e-learning system, with an emphasis on mathematics","archived":false,"fork":false,"pushed_at":"2025-08-21T15:15:52.000Z","size":43398,"stargazers_count":214,"open_issues_count":100,"forks_count":125,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-08-21T15:42:16.486Z","etag":null,"topics":["algebra","assessment","computer-algebra","e-assessment","education","javascript","mathematics","newcastle-university","numbas","quiz","scorm","up-for-grabs"],"latest_commit_sha":null,"homepage":"http://www.numbas.org.uk","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/numbas.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2011-04-25T08:08:44.000Z","updated_at":"2025-08-21T15:15:56.000Z","dependencies_parsed_at":"2023-11-07T10:28:38.343Z","dependency_job_id":"aa96e962-caab-46e9-9e6b-164aa5eb86ae","html_url":"https://github.com/numbas/Numbas","commit_stats":{"total_commits":2953,"total_committers":38,"mean_commits":77.71052631578948,"dds":0.04503894344734172,"last_synced_commit":"62541f213c2c4df4f0b7c105bc2acc54205331ee"},"previous_names":[],"tags_count":29,"template":false,"template_full_name":null,"purl":"pkg:github/numbas/Numbas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbas%2FNumbas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbas%2FNumbas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbas%2FNumbas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbas%2FNumbas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numbas","download_url":"https://codeload.github.com/numbas/Numbas/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbas%2FNumbas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273740851,"owners_count":25159434,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-05T02:00:09.113Z","response_time":402,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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"}},"owner":{"login":"numbas","name":"Numbas","uuid":"644390","kind":"organization","description":"Numbas is an easy way to create online tests. This organisation contains code for all the open-source Numbas software, including the runtime and editor.","email":null,"website":"https://www.numbas.org.uk","location":"Newcastle upon Tyne, UK","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/644390?v=4","repositories_count":44,"last_synced_at":"2024-04-24T05:59:38.905Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/numbas","funding_links":[],"total_stars":282,"followers":17,"following":0,"created_at":"2022-11-03T01:19:57.347Z","updated_at":"2024-04-24T05:59:57.722Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numbas","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/numbas/repositories"},"packages":[],"commits":{"id":279568,"full_name":"numbas/Numbas","default_branch":"master","committers":[{"name":"Christian Perfect","email":"christianperfect@gmail.com","count":2820},{"name":"Anthony Youd","email":"Anthony.Youd@newcastle.ac.uk","count":32},{"name":"Baleksas","email":"alexasbag17@gmail.com","count":10},{"name":"Will McNestry","email":"c0076020@newcastle.ac.uk","count":8},{"name":"Jesse Hoobergs","email":"jesse@codebergs.com","count":8},{"name":"artemdou","email":"44100345+artemdou@users.noreply.github.com","count":8},{"name":"janga","email":"janga1997@gmail.com","count":8},{"name":"Thomas Pilewicz","email":"thomas.pwcz@gmail.com","count":4},{"name":"James Maringa","email":"james.maringa@gro-intelligence.com","count":4},{"name":"roldans","email":"roldis2@hotmail.com","count":3},{"name":"chrisarap","email":"carteaga460@gmail.com","count":3},{"name":"George Stagg","email":"george.stagg@newcastle.ac.uk","count":3},{"name":"Bill Foster","email":"Bill.Foster@ncl.ac.uk","count":3},{"name":"George Stagg","email":"george.stagg@ncl.ac.uk","count":3},{"name":"Yitao Huang","email":"yitao@umich.edu","count":3},{"name":"alisahq","email":"alisahq@umich.edu","count":2},{"name":"Stacey Aston","email":"stacey.aston1@ncl.ac.uk","count":2},{"name":"Lorcan","email":"lorcan.james@yahoo.com","count":2},{"name":"Evi Vratsanou","email":"evratsanou@gmail.com","count":2},{"name":"David Hadas","email":"david.hadas@gmail.com","count":2},{"name":"Danil Polikarik","email":"dpolikarik@innervate.ru","count":2},{"name":"Christopher Graham","email":"christopher.graham@newcastle.ac.uk","count":2},{"name":"Christian Lawson-Perfect","email":"christian.perfect@ncl.ac.uk","count":2},{"name":"kalpitfulwariya","email":"kalpitf2@illinois.edu","count":2},{"name":"Chris Graham","email":"christopher.graham@ncl.ac.uk","count":2},{"name":"Eze Rodriguez","email":"ezerwx@gmail.com","count":1},{"name":"George Stagg","email":"georgestagg@gmail.com","count":1},{"name":"Grant Gollier","email":"gragollier@gmail.com","count":1},{"name":"Jesse Hoobergs","email":"jhoobergs@users.noreply.github.com","count":1},{"name":"Christian","email":"christian@ubuntu.(none)","count":1},{"name":"Huy","email":"huydragon23@gmail.com","count":1},{"name":"odavarci","email":"o.davarci@etu.edu.tr","count":1},{"name":"johanforslund","email":"johanforslund95@gmail.com","count":1},{"name":"Kaustubh Mallik","email":"kaustubh.mallik@flipkart.com","count":1},{"name":"RingoKid","email":"rifat.naimul@gmail.com","count":1},{"name":"julianmack","email":"32888280+julianmack@users.noreply.github.com","count":1},{"name":"mjguru","email":"mjgurumukhani@gmail.com","count":1},{"name":"Anbarasi U","email":"zw28@global.tesco.org","count":1}],"total_commits":2953,"total_committers":38,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":77.71052631578948,"dds":0.04503894344734172,"past_year_committers":null,"past_year_total_commits":null,"past_year_total_committers":null,"past_year_total_bot_commits":null,"past_year_total_bot_committers":null,"past_year_mean_commits":null,"past_year_dds":null,"last_synced_at":"2023-03-16T01:46:49.814Z","last_synced_commit":"62541f213c2c4df4f0b7c105bc2acc54205331ee","created_at":"2023-03-08T14:51:55.491Z","updated_at":"2023-09-19T16:24:45.811Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbas%2FNumbas/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-05T00:00:10.343Z","repositories_count":5480019,"commits_count":853389012,"contributors_count":31098138,"owners_count":906558,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"numbas/Numbas","html_url":"https://github.com/numbas/Numbas","last_synced_at":"2025-09-02T23:17:40.969Z","status":null,"issues_count":62,"pull_requests_count":8,"avg_time_to_close_issue":16426038.675675675,"avg_time_to_close_pull_request":13490568.285714285,"issues_closed_count":37,"pull_requests_closed_count":7,"pull_request_authors_count":7,"issue_authors_count":10,"avg_comments_per_issue":0.7741935483870968,"avg_comments_per_pull_request":2.125,"merged_pull_requests_count":4,"bot_issues_count":0,"bot_pull_requests_count":1,"past_year_issues_count":21,"past_year_pull_requests_count":4,"past_year_avg_time_to_close_issue":1019191.4545454546,"past_year_avg_time_to_close_pull_request":852560.75,"past_year_issues_closed_count":11,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":6,"past_year_avg_comments_per_issue":0.5238095238095238,"past_year_avg_comments_per_pull_request":0.5,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":4,"created_at":"2025-08-29T19:09:23.226Z","updated_at":"2025-09-03T04:15:09.024Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbas%2FNumbas","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/numbas%2FNumbas/issues","issue_labels_count":{"Interface":13,"Confirmed Bug":9,"Needs thinking about":6,"Wishlist":5,"Accessibility":4,"Difficult!":4,"good first issue":3},"pull_request_labels_count":{"dependencies":1},"issue_author_associations_count":{"MEMBER":42,"NONE":13,"CONTRIBUTOR":11},"pull_request_author_associations_count":{"NONE":4,"CONTRIBUTOR":4,"COLLABORATOR":1},"issue_authors":{"christianp":42,"chrismgraham":7,"Lycanic":3,"wrushworth":3,"ugoertz":3,"Spruce8913":2,"somanshurath":2,"msgj603":2,"Xcatolin":1,"benbrawn":1},"pull_request_authors":{"zpotthoff":2,"Baleksas":1,"G-Rowell":1,"nikitha10":1,"stuwilmur":1,"dependabot[bot]":1,"Maheshwaran17":1,"mthakurt":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-05T00:00:10.444Z","repositories_count":10097364,"issues_count":31428117,"pull_requests_count":97242359,"authors_count":10701128,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"Interface":3,"Wishlist":2,"Needs thinking about":1,"Accessibility":1,"Confirmed Bug":1},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"MEMBER":14,"CONTRIBUTOR":6,"NONE":5},"past_year_pull_request_author_associations_count":{"NONE":3,"CONTRIBUTOR":2},"past_year_issue_authors":{"christianp":14,"chrismgraham":4,"ugoertz":3,"somanshurath":2,"benbrawn":1,"Lycanic":1},"past_year_pull_request_authors":{"zpotthoff":2,"G-Rowell":1,"mthakurt":1,"nikitha10":1},"maintainers":[{"login":"christianp","count":42,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/christianp"},{"login":"Baleksas","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/Baleksas"}],"active_maintainers":[{"login":"christianp","count":14,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/christianp"}]},"events":{"total":{"CreateEvent":6,"ReleaseEvent":1,"IssuesEvent":37,"WatchEvent":8,"IssueCommentEvent":36,"PushEvent":139,"PullRequestEvent":6,"ForkEvent":5},"last_year":{"CreateEvent":6,"ReleaseEvent":1,"IssuesEvent":37,"WatchEvent":8,"IssueCommentEvent":36,"PushEvent":139,"PullRequestEvent":6,"ForkEvent":5}},"keywords":["algebra","assessment","computer-algebra","e-assessment","education","javascript","mathematics","newcastle-university","numbas","quiz","scorm","up-for-grabs"],"dependencies":[{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2022-07-12T14:55:24.625Z","updated_at":"2022-07-12T14:55:24.625Z","repository_link":"https://github.com/numbas/Numbas/blob/master/requirements.txt","dependencies":[{"id":159310361,"package_name":"Jinja2","ecosystem":"pypi","requirements":"\u003e=2.10.1","direct":true,"kind":"runtime","optional":false},{"id":159310362,"package_name":"html5lib","ecosystem":"pypi","requirements":"==1.1","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/tests.yml","sha":null,"kind":"manifest","created_at":"2023-01-13T11:45:18.463Z","updated_at":"2023-01-13T11:45:18.463Z","repository_link":"https://github.com/numbas/Numbas/blob/master/.github/workflows/tests.yml","dependencies":[{"id":6875664876,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":6875664877,"package_name":"actions/setup-node","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"npm","filepath":"tests/package-lock.json","sha":null,"kind":"lockfile","created_at":"2023-01-13T11:45:18.549Z","updated_at":"2023-01-13T11:45:18.549Z","repository_link":"https://github.com/numbas/Numbas/blob/master/tests/package-lock.json","dependencies":[{"id":6875665008,"package_name":"@tootallnate/once","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665009,"package_name":"abab","ecosystem":"npm","requirements":"2.0.6","direct":false,"kind":"runtime","optional":false},{"id":6875665010,"package_name":"acorn","ecosystem":"npm","requirements":"8.8.0","direct":false,"kind":"runtime","optional":false},{"id":6875665011,"package_name":"acorn-globals","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665012,"package_name":"acorn","ecosystem":"npm","requirements":"7.4.1","direct":false,"kind":"runtime","optional":false},{"id":6875665013,"package_name":"acorn-walk","ecosystem":"npm","requirements":"7.2.0","direct":false,"kind":"runtime","optional":false},{"id":6875665014,"package_name":"agent-base","ecosystem":"npm","requirements":"6.0.2","direct":false,"kind":"runtime","optional":false},{"id":6875665015,"package_name":"asynckit","ecosystem":"npm","requirements":"0.4.0","direct":false,"kind":"runtime","optional":false},{"id":6875665016,"package_name":"browser-process-hrtime","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665017,"package_name":"combined-stream","ecosystem":"npm","requirements":"1.0.8","direct":false,"kind":"runtime","optional":false},{"id":6875665018,"package_name":"commander","ecosystem":"npm","requirements":"7.2.0","direct":false,"kind":"development","optional":false},{"id":6875665019,"package_name":"cssom","ecosystem":"npm","requirements":"0.5.0","direct":false,"kind":"runtime","optional":false},{"id":6875665020,"package_name":"cssstyle","ecosystem":"npm","requirements":"2.3.0","direct":false,"kind":"runtime","optional":false},{"id":6875665021,"package_name":"cssom","ecosystem":"npm","requirements":"0.3.8","direct":false,"kind":"runtime","optional":false},{"id":6875665022,"package_name":"data-urls","ecosystem":"npm","requirements":"3.0.2","direct":false,"kind":"runtime","optional":false},{"id":6875665023,"package_name":"debug","ecosystem":"npm","requirements":"4.3.4","direct":false,"kind":"runtime","optional":false},{"id":6875665024,"package_name":"decimal.js","ecosystem":"npm","requirements":"10.3.1","direct":false,"kind":"runtime","optional":false},{"id":6875665025,"package_name":"deep-is","ecosystem":"npm","requirements":"0.1.4","direct":false,"kind":"runtime","optional":false},{"id":6875665026,"package_name":"delayed-stream","ecosystem":"npm","requirements":"1.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665027,"package_name":"domexception","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665028,"package_name":"entities","ecosystem":"npm","requirements":"4.3.1","direct":false,"kind":"runtime","optional":false},{"id":6875665029,"package_name":"escodegen","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665030,"package_name":"esprima","ecosystem":"npm","requirements":"4.0.1","direct":false,"kind":"runtime","optional":false},{"id":6875665031,"package_name":"estraverse","ecosystem":"npm","requirements":"5.3.0","direct":false,"kind":"runtime","optional":false},{"id":6875665032,"package_name":"esutils","ecosystem":"npm","requirements":"2.0.3","direct":false,"kind":"runtime","optional":false},{"id":6875665033,"package_name":"fast-levenshtein","ecosystem":"npm","requirements":"2.0.6","direct":false,"kind":"runtime","optional":false},{"id":6875665034,"package_name":"form-data","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665035,"package_name":"globalyzer","ecosystem":"npm","requirements":"0.1.0","direct":false,"kind":"development","optional":false},{"id":6875665036,"package_name":"globrex","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"development","optional":false},{"id":6875665037,"package_name":"html-encoding-sniffer","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665038,"package_name":"http-proxy-agent","ecosystem":"npm","requirements":"5.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665039,"package_name":"https-proxy-agent","ecosystem":"npm","requirements":"5.0.1","direct":false,"kind":"runtime","optional":false},{"id":6875665040,"package_name":"iconv-lite","ecosystem":"npm","requirements":"0.6.3","direct":false,"kind":"runtime","optional":false},{"id":6875665041,"package_name":"is-potential-custom-element-name","ecosystem":"npm","requirements":"1.0.1","direct":false,"kind":"runtime","optional":false},{"id":6875665042,"package_name":"jsdom","ecosystem":"npm","requirements":"20.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665043,"package_name":"levn","ecosystem":"npm","requirements":"0.3.0","direct":false,"kind":"runtime","optional":false},{"id":6875665044,"package_name":"mime-db","ecosystem":"npm","requirements":"1.52.0","direct":false,"kind":"runtime","optional":false},{"id":6875665045,"package_name":"mime-types","ecosystem":"npm","requirements":"2.1.35","direct":false,"kind":"runtime","optional":false},{"id":6875665046,"package_name":"ms","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"runtime","optional":false},{"id":6875665047,"package_name":"node-watch","ecosystem":"npm","requirements":"0.7.3","direct":false,"kind":"development","optional":false},{"id":6875665048,"package_name":"nwsapi","ecosystem":"npm","requirements":"2.2.1","direct":false,"kind":"runtime","optional":false},{"id":6875665049,"package_name":"optionator","ecosystem":"npm","requirements":"0.8.3","direct":false,"kind":"runtime","optional":false},{"id":6875665050,"package_name":"parse5","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665051,"package_name":"prelude-ls","ecosystem":"npm","requirements":"1.1.2","direct":false,"kind":"runtime","optional":false},{"id":6875665052,"package_name":"psl","ecosystem":"npm","requirements":"1.9.0","direct":false,"kind":"runtime","optional":false},{"id":6875665053,"package_name":"punycode","ecosystem":"npm","requirements":"2.1.1","direct":false,"kind":"runtime","optional":false},{"id":6875665054,"package_name":"qunit","ecosystem":"npm","requirements":"2.19.1","direct":false,"kind":"development","optional":false},{"id":6875665055,"package_name":"safer-buffer","ecosystem":"npm","requirements":"2.1.2","direct":false,"kind":"runtime","optional":false},{"id":6875665056,"package_name":"saxes","ecosystem":"npm","requirements":"6.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665057,"package_name":"source-map","ecosystem":"npm","requirements":"0.6.1","direct":false,"kind":"runtime","optional":false},{"id":6875665058,"package_name":"symbol-tree","ecosystem":"npm","requirements":"3.2.4","direct":false,"kind":"runtime","optional":false},{"id":6875665059,"package_name":"tiny-glob","ecosystem":"npm","requirements":"0.2.9","direct":false,"kind":"development","optional":false},{"id":6875665060,"package_name":"tough-cookie","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665061,"package_name":"tr46","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665062,"package_name":"type-check","ecosystem":"npm","requirements":"0.3.2","direct":false,"kind":"runtime","optional":false},{"id":6875665063,"package_name":"universalify","ecosystem":"npm","requirements":"0.1.2","direct":false,"kind":"runtime","optional":false},{"id":6875665064,"package_name":"w3c-hr-time","ecosystem":"npm","requirements":"1.0.2","direct":false,"kind":"runtime","optional":false},{"id":6875665065,"package_name":"w3c-xmlserializer","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665066,"package_name":"webidl-conversions","ecosystem":"npm","requirements":"7.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665067,"package_name":"whatwg-encoding","ecosystem":"npm","requirements":"2.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665068,"package_name":"whatwg-mimetype","ecosystem":"npm","requirements":"3.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665069,"package_name":"whatwg-url","ecosystem":"npm","requirements":"11.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665070,"package_name":"word-wrap","ecosystem":"npm","requirements":"1.2.3","direct":false,"kind":"runtime","optional":false},{"id":6875665071,"package_name":"ws","ecosystem":"npm","requirements":"8.8.1","direct":false,"kind":"runtime","optional":false},{"id":6875665072,"package_name":"xml-name-validator","ecosystem":"npm","requirements":"4.0.0","direct":false,"kind":"runtime","optional":false},{"id":6875665073,"package_name":"xmlchars","ecosystem":"npm","requirements":"2.2.0","direct":false,"kind":"runtime","optional":false}]},{"ecosystem":"npm","filepath":"tests/package.json","sha":null,"kind":"manifest","created_at":"2023-01-13T11:45:18.664Z","updated_at":"2023-01-13T11:45:18.664Z","repository_link":"https://github.com/numbas/Numbas/blob/master/tests/package.json","dependencies":[{"id":6875665079,"package_name":"jsdom","ecosystem":"npm","requirements":"^20.0.0","direct":true,"kind":"runtime","optional":false},{"id":6875665080,"package_name":"qunit","ecosystem":"npm","requirements":"^2.19.1","direct":true,"kind":"development","optional":false}]}],"score":9.386979145634639,"created_at":"2025-09-04T15:51:18.940Z","updated_at":"2025-10-07T08:17:42.930Z","avatar_url":"https://github.com/numbas.png","language":"JavaScript","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://science.ecosyste.ms/api/v1/projects/43795","html_url":"https://science.ecosyste.ms/projects/43795","bibtex_url":"https://science.ecosyste.ms/projects/43795/export.bibtex","apalike_url":"https://science.ecosyste.ms/projects/43795/export.apalike"}