{"adoption": {"forks": 184, "observed_at": "2026-08-28T04:07:16.254825+00:00", "stars": 2734}, "canonical_url": "https://ross.abutalabs.com/products/shouldjs", "card": {"archived": false, "artifact_type": "library", "description": "BDD style assertions for node.js -- test framework agnostic", "domain": ["testing", "developer-tools"], "enriched": true, "function": ["testing", "e2e-testing"], "health_score": 20, "homepage": null, "language": "JavaScript", "license": "MIT", "license_family": "permissive", "maturity": "maintenance", "member_repos": ["tj/should.js"], "name": "tj/should.js", "platform": ["browser"], "pushed_at": "2015-12-19T17:53:56+00:00", "repo": "tj/should.js", "stars": 2734, "tags": ["bdd-assertions", "assertion-library", "test-framework-agnostic", "nodejs", "javascript"], "topics": [], "urls": [], "use_cases": ["write bdd style assertions in node.js tests", "assert object properties and array lengths in tests", "use an assertion library with any test framework", "replace the node assert module with readable assertions", "run assertions in the browser"], "what_it_is": "should.js is an expressive, readable, BDD-style assertion library for Node.js and browsers that is test framework agnostic. It extends Object.prototype with a non-enumerable 'should' getter so assertions read like natural language, with helpful error messages.", "when_to_avoid": ["you need an actively maintained library - the latest release is from 2015 and the repo moved to shouldjs/should.js", "you dislike Object.prototype extension, which can conflict with null-prototype objects and strict environments", "you need IE <= 8 support, which is not supported"], "when_to_choose": ["you want expressive, chainable assertions that read like sentences", "you use a test runner without built-in assertions or want framework-agnostic assertions", "you prefer BDD-style should syntax over plain assert"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/shouldjs", "repo": "tj/should.js", "role": "main", "score": 32}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.254825+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T02:14:28.912467+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc0a33a8409c0c91031c08c123de77532d8fab5a494dffbf056cabdc0830a387", "fetched_at": "2026-08-28T04:07:16.254825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/should.js"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.254825+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T02:14:28.912467+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc0a33a8409c0c91031c08c123de77532d8fab5a494dffbf056cabdc0830a387", "fetched_at": "2026-08-28T04:07:16.254825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/should.js"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T02:14:28.912467+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc0a33a8409c0c91031c08c123de77532d8fab5a494dffbf056cabdc0830a387", "fetched_at": "2026-08-28T04:07:16.254825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/should.js"}], "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:07:16.254825+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.254825+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.254825+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T02:14:28.912467+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc0a33a8409c0c91031c08c123de77532d8fab5a494dffbf056cabdc0830a387", "fetched_at": "2026-08-28T04:07:16.254825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/should.js"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.254825+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.254825+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T02:14:28.912467+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc0a33a8409c0c91031c08c123de77532d8fab5a494dffbf056cabdc0830a387", "fetched_at": "2026-08-28T04:07:16.254825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/should.js"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.254825+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.254825+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.254825+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T02:14:28.912467+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc0a33a8409c0c91031c08c123de77532d8fab5a494dffbf056cabdc0830a387", "fetched_at": "2026-08-28T04:07:16.254825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/should.js"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.254825+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:16.254825+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T02:14:28.912467+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc0a33a8409c0c91031c08c123de77532d8fab5a494dffbf056cabdc0830a387", "fetched_at": "2026-08-28T04:07:16.254825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/should.js"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T02:14:28.912467+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc0a33a8409c0c91031c08c123de77532d8fab5a494dffbf056cabdc0830a387", "fetched_at": "2026-08-28T04:07:16.254825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/should.js"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T02:14:28.912467+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc0a33a8409c0c91031c08c123de77532d8fab5a494dffbf056cabdc0830a387", "fetched_at": "2026-08-28T04:07:16.254825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/should.js"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T02:14:28.912467+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "dc0a33a8409c0c91031c08c123de77532d8fab5a494dffbf056cabdc0830a387", "fetched_at": "2026-08-28T04:07:16.254825+00:00", "kind": "readme", "missing": false, "url": "https://github.com/tj/should.js"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 0, "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": 5768, "days_push": 3910, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 32, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}