{"adoption": {"forks": 258, "observed_at": "2026-08-28T04:07:46.027588+00:00", "stars": 3147}, "canonical_url": "https://ross.abutalabs.com/products/xdomain", "card": {"archived": false, "artifact_type": "library", "description": "A pure JavaScript CORS alternative", "domain": ["web-development", "frontend", "apis"], "enriched": true, "function": ["http-client", "middleware"], "health_score": 45, "homepage": "https://jpillora.com/xdomain/", "language": "JavaScript", "license": null, "license_family": "other", "maturity": "maintenance", "member_repos": ["jpillora/xdomain"], "name": "jpillora/xdomain", "platform": ["browser"], "pushed_at": "2025-09-15T17:12:18+00:00", "repo": "jpillora/xdomain", "stars": 3147, "tags": ["cors-alternative", "xhr", "cross-domain", "proxy-html", "ie8-polyfill", "javascript"], "topics": ["cross-domain", "cors", "javascript", "xhr"], "urls": [], "use_cases": ["make cross-domain ajax requests without server CORS headers", "access S3 or Dropbox file APIs directly from the browser", "support cross-origin XHR in old browsers like IE8/9", "avoid modifying server code for cross-domain API calls", "white-list specific domains and paths for cross-domain access"], "what_it_is": "XDomain is a pure JavaScript CORS alternative that enables cross-domain XHR by routing requests through a hidden iframe and a small proxy.html on the remote domain. It hooks window.XMLHttpRequest via XHook so it works transparently with libraries like jQuery and Angular.", "when_to_avoid": ["you can simply configure CORS headers on the server", "you need modern fetch API support", "you require a actively developed solution with strong security guarantees"], "when_to_choose": ["you cannot add CORS headers to the remote server", "you need to support legacy browsers lacking full CORS support", "you want drop-in cross-domain XHR with jQuery, Angular, or raw XHR"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/xdomain", "repo": "jpillora/xdomain", "role": "main", "score": 51}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.027588+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:25:56.564632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e915698107d25ccfd4452f65071aeba9b9c0c7eadc297e8826552f1375959bb5", "fetched_at": "2026-08-28T04:07:46.027588+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jpillora/xdomain"}, {"content_hash": "b82c5b507f25d06d8850b4c5a5400a5223c0088b66e66452a41a5c02ae84f3fd", "fetched_at": "2026-08-29T09:40:53.385678+00:00", "kind": "homepage", "missing": false, "url": "https://jpillora.com/xdomain/"}, {"content_hash": "c87d95c807b18f166d85dbdbec5945dca4f778f98dc6b5bad33803498d4e846d", "fetched_at": "2026-08-29T09:40:53.388217+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/xdomain"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.027588+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:25:56.564632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e915698107d25ccfd4452f65071aeba9b9c0c7eadc297e8826552f1375959bb5", "fetched_at": "2026-08-28T04:07:46.027588+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jpillora/xdomain"}, {"content_hash": "b82c5b507f25d06d8850b4c5a5400a5223c0088b66e66452a41a5c02ae84f3fd", "fetched_at": "2026-08-29T09:40:53.385678+00:00", "kind": "homepage", "missing": false, "url": "https://jpillora.com/xdomain/"}, {"content_hash": "c87d95c807b18f166d85dbdbec5945dca4f778f98dc6b5bad33803498d4e846d", "fetched_at": "2026-08-29T09:40:53.388217+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/xdomain"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:25:56.564632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e915698107d25ccfd4452f65071aeba9b9c0c7eadc297e8826552f1375959bb5", "fetched_at": "2026-08-28T04:07:46.027588+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jpillora/xdomain"}, {"content_hash": "b82c5b507f25d06d8850b4c5a5400a5223c0088b66e66452a41a5c02ae84f3fd", "fetched_at": "2026-08-29T09:40:53.385678+00:00", "kind": "homepage", "missing": false, "url": "https://jpillora.com/xdomain/"}, {"content_hash": "c87d95c807b18f166d85dbdbec5945dca4f778f98dc6b5bad33803498d4e846d", "fetched_at": "2026-08-29T09:40:53.388217+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/xdomain"}], "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:46.027588+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.027588+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.027588+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:25:56.564632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e915698107d25ccfd4452f65071aeba9b9c0c7eadc297e8826552f1375959bb5", "fetched_at": "2026-08-28T04:07:46.027588+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jpillora/xdomain"}, {"content_hash": "b82c5b507f25d06d8850b4c5a5400a5223c0088b66e66452a41a5c02ae84f3fd", "fetched_at": "2026-08-29T09:40:53.385678+00:00", "kind": "homepage", "missing": false, "url": "https://jpillora.com/xdomain/"}, {"content_hash": "c87d95c807b18f166d85dbdbec5945dca4f778f98dc6b5bad33803498d4e846d", "fetched_at": "2026-08-29T09:40:53.388217+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/xdomain"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.027588+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.027588+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:25:56.564632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e915698107d25ccfd4452f65071aeba9b9c0c7eadc297e8826552f1375959bb5", "fetched_at": "2026-08-28T04:07:46.027588+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jpillora/xdomain"}, {"content_hash": "b82c5b507f25d06d8850b4c5a5400a5223c0088b66e66452a41a5c02ae84f3fd", "fetched_at": "2026-08-29T09:40:53.385678+00:00", "kind": "homepage", "missing": false, "url": "https://jpillora.com/xdomain/"}, {"content_hash": "c87d95c807b18f166d85dbdbec5945dca4f778f98dc6b5bad33803498d4e846d", "fetched_at": "2026-08-29T09:40:53.388217+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/xdomain"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.027588+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.027588+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.027588+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:25:56.564632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e915698107d25ccfd4452f65071aeba9b9c0c7eadc297e8826552f1375959bb5", "fetched_at": "2026-08-28T04:07:46.027588+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jpillora/xdomain"}, {"content_hash": "b82c5b507f25d06d8850b4c5a5400a5223c0088b66e66452a41a5c02ae84f3fd", "fetched_at": "2026-08-29T09:40:53.385678+00:00", "kind": "homepage", "missing": false, "url": "https://jpillora.com/xdomain/"}, {"content_hash": "c87d95c807b18f166d85dbdbec5945dca4f778f98dc6b5bad33803498d4e846d", "fetched_at": "2026-08-29T09:40:53.388217+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/xdomain"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.027588+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:46.027588+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:25:56.564632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e915698107d25ccfd4452f65071aeba9b9c0c7eadc297e8826552f1375959bb5", "fetched_at": "2026-08-28T04:07:46.027588+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jpillora/xdomain"}, {"content_hash": "b82c5b507f25d06d8850b4c5a5400a5223c0088b66e66452a41a5c02ae84f3fd", "fetched_at": "2026-08-29T09:40:53.385678+00:00", "kind": "homepage", "missing": false, "url": "https://jpillora.com/xdomain/"}, {"content_hash": "c87d95c807b18f166d85dbdbec5945dca4f778f98dc6b5bad33803498d4e846d", "fetched_at": "2026-08-29T09:40:53.388217+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/xdomain"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:25:56.564632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e915698107d25ccfd4452f65071aeba9b9c0c7eadc297e8826552f1375959bb5", "fetched_at": "2026-08-28T04:07:46.027588+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jpillora/xdomain"}, {"content_hash": "b82c5b507f25d06d8850b4c5a5400a5223c0088b66e66452a41a5c02ae84f3fd", "fetched_at": "2026-08-29T09:40:53.385678+00:00", "kind": "homepage", "missing": false, "url": "https://jpillora.com/xdomain/"}, {"content_hash": "c87d95c807b18f166d85dbdbec5945dca4f778f98dc6b5bad33803498d4e846d", "fetched_at": "2026-08-29T09:40:53.388217+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/xdomain"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:25:56.564632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e915698107d25ccfd4452f65071aeba9b9c0c7eadc297e8826552f1375959bb5", "fetched_at": "2026-08-28T04:07:46.027588+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jpillora/xdomain"}, {"content_hash": "b82c5b507f25d06d8850b4c5a5400a5223c0088b66e66452a41a5c02ae84f3fd", "fetched_at": "2026-08-29T09:40:53.385678+00:00", "kind": "homepage", "missing": false, "url": "https://jpillora.com/xdomain/"}, {"content_hash": "c87d95c807b18f166d85dbdbec5945dca4f778f98dc6b5bad33803498d4e846d", "fetched_at": "2026-08-29T09:40:53.388217+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/xdomain"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:25:56.564632+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "e915698107d25ccfd4452f65071aeba9b9c0c7eadc297e8826552f1375959bb5", "fetched_at": "2026-08-28T04:07:46.027588+00:00", "kind": "readme", "missing": false, "url": "https://github.com/jpillora/xdomain"}, {"content_hash": "b82c5b507f25d06d8850b4c5a5400a5223c0088b66e66452a41a5c02ae84f3fd", "fetched_at": "2026-08-29T09:40:53.385678+00:00", "kind": "homepage", "missing": false, "url": "https://jpillora.com/xdomain/"}, {"content_hash": "c87d95c807b18f166d85dbdbec5945dca4f778f98dc6b5bad33803498d4e846d", "fetched_at": "2026-08-29T09:40:53.388217+00:00", "kind": "registry_npm", "missing": false, "url": "https://registry.npmjs.org/xdomain"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 42, "longevity": 100, "rhythm": 35}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": ["no_releases", "no_license"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 4895, "days_push": 352, "days_rel": null, "gap_med": null, "n_releases_24m": 0}, "score": 51, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}