{"adoption": {"forks": 364, "observed_at": "2026-08-28T04:06:23.663356+00:00", "stars": 2185}, "canonical_url": "https://ross.abutalabs.com/products/js-interpreter", "card": {"archived": false, "artifact_type": "library", "description": "A sandboxed JavaScript interpreter in JavaScript.", "domain": ["programming-languages", "security", "developer-tools", "web-development"], "enriched": true, "function": ["interpreter", "security", "parser"], "health_score": 73, "homepage": null, "language": "JavaScript", "license": "Apache-2.0", "license_family": "permissive", "maturity": "active", "member_repos": ["NeilFraser/JS-Interpreter"], "name": "NeilFraser/JS-Interpreter", "platform": ["browser"], "pushed_at": "2026-06-17T09:28:01+00:00", "repo": "NeilFraser/JS-Interpreter", "stars": 2185, "tags": ["javascript-interpreter", "sandbox", "es5", "arbitrary-code-execution", "step-execution", "sandboxing", "nodejs", "javascript"], "topics": ["javascript", "js-interpreter", "sandbox"], "urls": [], "use_cases": ["safely execute untrusted user JavaScript in the browser", "run user-submitted scripts in a sandboxed environment", "step through JavaScript code line by line for debugging or education", "embed a scripting engine in a web application without eval", "build a code playground with restricted execution", "run plugins or extensions written by users safely"], "what_it_is": "A sandboxed JavaScript interpreter written in JavaScript that executes arbitrary ES5 code in isolation and safety. It supports line-by-line stepping, making it suitable for safely running untrusted user-supplied scripts.", "when_to_avoid": ["you need modern ES6+ JavaScript features, since the interpreter targets ES5", "you need maximum performance for trusted code, since interpretation is far slower than native execution", "you just need JSON parsing or templating rather than full script execution"], "when_to_choose": ["you need to run arbitrary, untrusted JavaScript safely in a browser or Node.js", "you need fine-grained control over execution, such as stepping line by line or limiting APIs", "you want to expose a restricted API surface to user scripts"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/js-interpreter", "repo": "NeilFraser/JS-Interpreter", "role": "main", "score": 72}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:48:10.658538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdf8574c054bf26bb42337f3eff40b2ab1995092db8420c9c36106c291e4ea50", "fetched_at": "2026-08-28T04:06:23.663356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NeilFraser/JS-Interpreter"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:48:10.658538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdf8574c054bf26bb42337f3eff40b2ab1995092db8420c9c36106c291e4ea50", "fetched_at": "2026-08-28T04:06:23.663356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NeilFraser/JS-Interpreter"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:48:10.658538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdf8574c054bf26bb42337f3eff40b2ab1995092db8420c9c36106c291e4ea50", "fetched_at": "2026-08-28T04:06:23.663356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NeilFraser/JS-Interpreter"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:48:10.658538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdf8574c054bf26bb42337f3eff40b2ab1995092db8420c9c36106c291e4ea50", "fetched_at": "2026-08-28T04:06:23.663356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NeilFraser/JS-Interpreter"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:48:10.658538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdf8574c054bf26bb42337f3eff40b2ab1995092db8420c9c36106c291e4ea50", "fetched_at": "2026-08-28T04:06:23.663356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NeilFraser/JS-Interpreter"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:48:10.658538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdf8574c054bf26bb42337f3eff40b2ab1995092db8420c9c36106c291e4ea50", "fetched_at": "2026-08-28T04:06:23.663356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NeilFraser/JS-Interpreter"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:06:23.663356+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:48:10.658538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdf8574c054bf26bb42337f3eff40b2ab1995092db8420c9c36106c291e4ea50", "fetched_at": "2026-08-28T04:06:23.663356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NeilFraser/JS-Interpreter"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:48:10.658538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdf8574c054bf26bb42337f3eff40b2ab1995092db8420c9c36106c291e4ea50", "fetched_at": "2026-08-28T04:06:23.663356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NeilFraser/JS-Interpreter"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:48:10.658538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdf8574c054bf26bb42337f3eff40b2ab1995092db8420c9c36106c291e4ea50", "fetched_at": "2026-08-28T04:06:23.663356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NeilFraser/JS-Interpreter"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:48:10.658538+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "bdf8574c054bf26bb42337f3eff40b2ab1995092db8420c9c36106c291e4ea50", "fetched_at": "2026-08-28T04:06:23.663356+00:00", "kind": "readme", "missing": false, "url": "https://github.com/NeilFraser/JS-Interpreter"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 88, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4691, "days_push": 77, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 72, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}