[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"workflow-asset-e7160e2f":3,"seo:featured-workflow:e7160e2f-4ee6-11f1-9bc6-00163e2b0d79:fr":84,"workflow-related-asset-e7160e2f-e7160e2f-4ee6-11f1-9bc6-00163e2b0d79":85},{"id":4,"uuid":5,"slug":6,"title":7,"description":8,"author_id":9,"author_name":10,"author_avatar":11,"token_estimate":12,"time_saved":12,"model_used":13,"fork_count":12,"vote_count":12,"view_count":12,"parent_id":12,"parent_uuid":13,"lang_type":14,"steps":15,"tags":22,"has_voted":28,"visibility":18,"share_token":13,"is_featured":12,"content_hash":29,"asset_kind":30,"target_tools":31,"install_mode":35,"entrypoint":19,"risk_profile":36,"dependencies":38,"verification":44,"agent_metadata":47,"agent_fit":60,"trust":72,"provenance":81,"created_at":83,"updated_at":83},3644,"e7160e2f-4ee6-11f1-9bc6-00163e2b0d79","asset-e7160e2f","jsdom — JavaScript DOM Implementation for Node.js","A pure-JavaScript implementation of web standards that lets you run browser-like DOM operations in Node.js without a real browser.","8a910e34-3180-11f1-9bc6-00163e2b0d79","Script Depot","https:\u002F\u002Ftokrepo.com\u002Fapple-touch-icon.png",0,"","en",[16],{"id":17,"step_order":18,"title":19,"description":13,"prompt_template":20,"variables":13,"depends_on":21,"expected_output":13},4217,1,"jsdom Overview","# jsdom — JavaScript DOM Implementation for Node.js\n\n## Quick Use\n```bash\nnpm install jsdom\n```\n```js\nconst { JSDOM } = require(\"jsdom\");\nconst dom = new JSDOM('\u003C!DOCTYPE html>\u003Cp>Hello\u003C\u002Fp>');\nconsole.log(dom.window.document.querySelector(\"p\").textContent);\n```\n\n## Introduction\njsdom is a pure-JavaScript implementation of many web standards, notably the WHATWG DOM and HTML Standards. It allows you to create and manipulate a browser-like DOM environment entirely in Node.js, which is essential for server-side rendering, testing, and scraping.\n\n## What jsdom Does\n- Parses HTML and produces a full DOM tree accessible via standard APIs\n- Implements core web standards including DOM, HTML, URL, and Fetch\n- Executes inline and external JavaScript within the simulated document\n- Supports custom user agents, referrers, cookies, and content types\n- Provides WHATWG URL and Encoding APIs for standards-compliant parsing\n\n## Architecture Overview\njsdom uses parse5 as its HTML parser to construct a DOM tree that conforms to the WHATWG DOM specification. The tree is wrapped in a Window object that exposes standard APIs like document, navigator, and console. Script execution runs through the Node.js VM module with configurable resource loading. Each JSDOM instance is isolated with its own window scope, making parallel test runs safe.\n\n## Self-Hosting & Configuration\n- Install via npm or yarn into any Node.js project (no native deps required)\n- Set `url`, `referrer`, and `contentType` options when creating a new JSDOM instance\n- Configure `runScripts: \"dangerously\"` to execute scripts inside the DOM\n- Use `pretendToBeVisual: true` to enable requestAnimationFrame and cancel timers\n- Control external resource loading with the `resources` option and custom loaders\n\n## Key Features\n- Full WHATWG DOM Level 4 implementation in pure JavaScript\n- No headless browser binary needed, keeping CI environments lightweight\n- Supports cookies, session history, and navigation within the virtual DOM\n- Works with popular testing frameworks like Jest, Mocha, and Vitest out of the box\n- Processes CSS selectors via querySelector and querySelectorAll for DOM traversal\n\n## Comparison with Similar Tools\n- **Cheerio** — faster for static HTML scraping but does not execute JavaScript or emulate a live DOM\n- **happy-dom** — lighter alternative focused on speed, but implements fewer web standards\n- **Puppeteer** — controls a real Chromium browser for full rendering fidelity, at the cost of heavier resource usage\n- **linkedom** — memory-efficient DOM implementation but lacks script execution support\n\n## FAQ\n**Q: Does jsdom support modern CSS features?**\nA: jsdom does not implement a full CSS engine or layout. It parses stylesheets but does not compute styles or render visually.\n\n**Q: Can I use jsdom with Jest?**\nA: Yes. Set `testEnvironment: \"jsdom\"` in your Jest config and Jest will use jsdom as the default DOM environment for all tests.\n\n**Q: How does jsdom handle fetch and XMLHttpRequest?**\nA: jsdom provides built-in implementations of both when resource loading is enabled, routing requests through Node.js HTTP modules.\n\n**Q: Is jsdom suitable for web scraping?**\nA: It works well for scraping pages that require JavaScript execution. For static HTML parsing, Cheerio is typically faster.\n\n## Sources\n- https:\u002F\u002Fgithub.com\u002Fjsdom\u002Fjsdom\n- https:\u002F\u002Fgithub.com\u002Fjsdom\u002Fjsdom\u002Fwiki","0",[23],{"id":24,"name":25,"slug":26,"icon":27},11,"Scripts","script","📜",false,"22ffac88cad68de05d7332d330e7d62fb11c6f7fafe8915aead89e92cc5c145e","skill",[32,33,34],"claude_code","codex","gemini_cli","single",{"executes_code":28,"modifies_global_config":28,"requires_secrets":37,"uses_absolute_paths":28,"network_access":28},[],{"npm":39,"pip":41,"brew":42,"system":43},[40],"jsdom",[],[],[],{"commands":45,"expected_files":46},[],[19],{"asset_kind":30,"target_tools":48,"install_mode":35,"entrypoint":19,"risk_profile":49,"dependencies":51,"content_hash":29,"verification":56,"inferred":59},[32,33,34],{"executes_code":28,"modifies_global_config":28,"requires_secrets":50,"uses_absolute_paths":28,"network_access":28},[],{"npm":52,"pip":53,"brew":54,"system":55},[40],[],[],[],{"commands":57,"expected_files":58},[],[19],true,{"target":33,"score":61,"status":62,"policy":63,"why":64,"asset_kind":30,"install_mode":35},98,"native","allow",[65,66,67,68,69,70,71],"target_tools includes codex","asset_kind skill","install_mode single","markdown-only","policy allow","safe markdown-only Codex install","trust established",{"author_trust_level":73,"verified_publisher":28,"asset_signed_hash":29,"signature_status":74,"install_count":12,"report_count":12,"dangerous_capability_badges":75,"review_status":76,"signals":77},"established","hash_only",[],"unreviewed",[78,79,80],"author has published assets","content hash available","no dangerous capability badges",{"owner_uuid":9,"owner_name":10,"source_url":82,"content_hash":29,"visibility":18,"created_at":83,"updated_at":83},"https:\u002F\u002Ftokrepo.com\u002Fen\u002Fworkflows\u002Fasset-e7160e2f","2026-05-14 00:15:05",null,[86,144,190,237],{"id":87,"uuid":88,"slug":89,"title":90,"description":91,"author_id":9,"author_name":10,"author_avatar":11,"token_estimate":12,"time_saved":12,"model_used":13,"fork_count":12,"vote_count":12,"view_count":92,"parent_id":12,"parent_uuid":13,"lang_type":14,"steps":93,"tags":94,"has_voted":28,"visibility":18,"share_token":13,"is_featured":12,"content_hash":96,"asset_kind":30,"target_tools":97,"install_mode":35,"entrypoint":98,"risk_profile":99,"dependencies":101,"verification":106,"agent_metadata":109,"agent_fit":121,"trust":128,"provenance":132,"created_at":134,"updated_at":135,"__relatedScore":136,"__relatedReasons":137,"__sharedTags":142},1173,"f83bce6e-3712-11f1-9bc6-00163e2b0d79","node-js-javascript-runtime-built-v8-f83bce6e","Node.js — The JavaScript Runtime Built on V8","Node.js is the open-source JavaScript runtime that enables server-side JavaScript execution. Built on Chrome V8, it uses an event-driven, non-blocking I\u002FO model that makes it lightweight and efficient for building scalable network applications.",72,[],[95],{"id":24,"name":25,"slug":26,"icon":27},"5b36bc539e36c091e30116028f32061e2b8ed1d4bd3e182695c8e6f6ad7d0407",[32,33,34],"SKILL.md",{"executes_code":28,"modifies_global_config":28,"requires_secrets":100,"uses_absolute_paths":28,"network_access":59},[],{"npm":102,"pip":103,"brew":104,"system":105},[],[],[],[],{"commands":107,"expected_files":108},[],[13],{"asset_kind":30,"target_tools":110,"install_mode":35,"entrypoint":98,"risk_profile":111,"dependencies":113,"content_hash":96,"verification":118},[32,33,34],{"executes_code":28,"modifies_global_config":28,"requires_secrets":112,"uses_absolute_paths":28,"network_access":59},[],{"npm":114,"pip":115,"brew":116,"system":117},[],[],[],[],{"commands":119,"expected_files":120},[],[13],{"target":33,"score":122,"status":123,"policy":124,"why":125,"asset_kind":30,"install_mode":35},64,"needs_confirmation","confirm",[65,66,67,126,127,71],"policy confirm","risk_profile.network_access is true",{"author_trust_level":73,"verified_publisher":28,"asset_signed_hash":96,"signature_status":74,"install_count":12,"report_count":12,"dangerous_capability_badges":129,"review_status":76,"signals":131},[130],"network_access",[78,79],{"owner_uuid":9,"owner_name":10,"source_url":133,"content_hash":96,"visibility":18,"created_at":134,"updated_at":135},"https:\u002F\u002Ftokrepo.com\u002Fen\u002Fworkflows\u002Fnode-js-javascript-runtime-built-v8-f83bce6e","2026-04-13 16:30:03","2026-05-13 19:39:24",122.79498429018068,[138,139,140,141],"topic-match","same-kind","same-target","same-author",[26,143],"scripts",{"id":145,"uuid":146,"slug":147,"title":148,"description":149,"author_id":9,"author_name":10,"author_avatar":11,"token_estimate":12,"time_saved":12,"model_used":13,"fork_count":12,"vote_count":12,"view_count":150,"parent_id":12,"parent_uuid":13,"lang_type":14,"steps":151,"tags":152,"has_voted":28,"visibility":18,"share_token":13,"is_featured":12,"content_hash":154,"asset_kind":30,"target_tools":155,"install_mode":35,"entrypoint":98,"risk_profile":156,"dependencies":158,"verification":163,"agent_metadata":166,"agent_fit":178,"trust":180,"provenance":183,"created_at":185,"updated_at":186,"__relatedScore":187,"__relatedReasons":188,"__sharedTags":189},2855,"34608aef-4b3c-11f1-9bc6-00163e2b0d79","asset-34608aef","NW.js — Build Desktop Apps with Web Technologies","NW.js lets you call Node.js modules directly from the DOM, enabling desktop application development using HTML, CSS, and JavaScript without a separate backend process.",38,[],[153],{"id":24,"name":25,"slug":26,"icon":27},"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",[32,33,34],{"executes_code":28,"modifies_global_config":28,"requires_secrets":157,"uses_absolute_paths":28,"network_access":28},[],{"npm":159,"pip":160,"brew":161,"system":162},[],[],[],[],{"commands":164,"expected_files":165},[],[],{"asset_kind":30,"target_tools":167,"install_mode":35,"entrypoint":98,"risk_profile":168,"dependencies":170,"content_hash":154,"verification":175,"inferred":59},[32,33,34],{"executes_code":28,"modifies_global_config":28,"requires_secrets":169,"uses_absolute_paths":28,"network_access":28},[],{"npm":171,"pip":172,"brew":173,"system":174},[],[],[],[],{"commands":176,"expected_files":177},[],[],{"target":33,"score":61,"status":62,"policy":63,"why":179,"asset_kind":30,"install_mode":35},[65,66,67,68,69,70,71],{"author_trust_level":73,"verified_publisher":28,"asset_signed_hash":154,"signature_status":74,"install_count":12,"report_count":12,"dangerous_capability_badges":181,"review_status":76,"signals":182},[],[78,79,80],{"owner_uuid":9,"owner_name":10,"source_url":184,"content_hash":154,"visibility":18,"created_at":185,"updated_at":186},"https:\u002F\u002Ftokrepo.com\u002Fen\u002Fworkflows\u002Fasset-34608aef","2026-05-09 08:15:37","2026-05-13 20:03:06",121.38659691053975,[138,139,140,141],[26,143],{"id":191,"uuid":192,"slug":193,"title":194,"description":195,"author_id":9,"author_name":10,"author_avatar":11,"token_estimate":12,"time_saved":12,"model_used":13,"fork_count":12,"vote_count":12,"view_count":196,"parent_id":12,"parent_uuid":13,"lang_type":14,"steps":197,"tags":198,"has_voted":28,"visibility":18,"share_token":13,"is_featured":12,"content_hash":200,"asset_kind":30,"target_tools":201,"install_mode":35,"entrypoint":202,"risk_profile":203,"dependencies":205,"verification":210,"agent_metadata":213,"agent_fit":225,"trust":227,"provenance":230,"created_at":232,"updated_at":233,"__relatedScore":234,"__relatedReasons":235,"__sharedTags":236},2074,"1c0917a8-3ffb-11f1-9bc6-00163e2b0d79","cheerio-fast-html-parsing-jquery-syntax-node-js-1c0917a8","Cheerio — Fast HTML Parsing with jQuery Syntax for Node.js","A fast, flexible implementation of jQuery core for server-side HTML parsing, traversal, and manipulation in Node.js.",85,[],[199],{"id":24,"name":25,"slug":26,"icon":27},"ab2934efcd895241d85d5b78d40bc3bf43780be7adfd246814869078ee4addae",[32,33,34],"Cheerio Overview",{"executes_code":28,"modifies_global_config":28,"requires_secrets":204,"uses_absolute_paths":28,"network_access":28},[],{"npm":206,"pip":207,"brew":208,"system":209},[],[],[],[],{"commands":211,"expected_files":212},[],[202],{"asset_kind":30,"target_tools":214,"install_mode":35,"entrypoint":202,"risk_profile":215,"dependencies":217,"content_hash":200,"verification":222},[32,33,34],{"executes_code":28,"modifies_global_config":28,"requires_secrets":216,"uses_absolute_paths":28,"network_access":28},[],{"npm":218,"pip":219,"brew":220,"system":221},[],[],[],[],{"commands":223,"expected_files":224},[],[202],{"target":33,"score":61,"status":62,"policy":63,"why":226,"asset_kind":30,"install_mode":35},[65,66,67,68,69,70,71],{"author_trust_level":73,"verified_publisher":28,"asset_signed_hash":200,"signature_status":74,"install_count":12,"report_count":12,"dangerous_capability_badges":228,"review_status":76,"signals":229},[],[78,79,80],{"owner_uuid":9,"owner_name":10,"source_url":231,"content_hash":200,"visibility":18,"created_at":232,"updated_at":233},"https:\u002F\u002Ftokrepo.com\u002Fen\u002Fworkflows\u002Fcheerio-fast-html-parsing-jquery-syntax-node-js-1c0917a8","2026-04-25 00:31:56","2026-05-13 18:25:45",111.90174767686536,[138,139,140,141],[26,143],{"id":238,"uuid":239,"slug":240,"title":241,"description":242,"author_id":9,"author_name":10,"author_avatar":11,"token_estimate":12,"time_saved":12,"model_used":13,"fork_count":12,"vote_count":12,"view_count":243,"parent_id":12,"parent_uuid":13,"lang_type":14,"steps":244,"tags":245,"has_voted":28,"visibility":18,"share_token":13,"is_featured":12,"content_hash":247,"asset_kind":30,"target_tools":248,"install_mode":35,"entrypoint":249,"risk_profile":250,"dependencies":252,"verification":257,"agent_metadata":260,"agent_fit":272,"trust":274,"provenance":277,"created_at":279,"updated_at":280,"__relatedScore":281,"__relatedReasons":282,"__sharedTags":283},2068,"5519965a-3ffa-11f1-9bc6-00163e2b0d79","anime-js-lightweight-javascript-animation-engine-5519965a","Anime.js — Lightweight JavaScript Animation Engine","A lightweight JavaScript animation library with a simple yet powerful API for CSS properties, SVG, DOM attributes, and JavaScript objects.",69,[],[246],{"id":24,"name":25,"slug":26,"icon":27},"c8a9e09b785e49f6ef3a34ddaa98550335720cc2cbc17dc5f87ac0b49145a85d",[32,33,34],"Anime.js Overview",{"executes_code":28,"modifies_global_config":28,"requires_secrets":251,"uses_absolute_paths":28,"network_access":28},[],{"npm":253,"pip":254,"brew":255,"system":256},[],[],[],[],{"commands":258,"expected_files":259},[],[249],{"asset_kind":30,"target_tools":261,"install_mode":35,"entrypoint":249,"risk_profile":262,"dependencies":264,"content_hash":247,"verification":269},[32,33,34],{"executes_code":28,"modifies_global_config":28,"requires_secrets":263,"uses_absolute_paths":28,"network_access":28},[],{"npm":265,"pip":266,"brew":267,"system":268},[],[],[],[],{"commands":270,"expected_files":271},[],[249],{"target":33,"score":61,"status":62,"policy":63,"why":273,"asset_kind":30,"install_mode":35},[65,66,67,68,69,70,71],{"author_trust_level":73,"verified_publisher":28,"asset_signed_hash":247,"signature_status":74,"install_count":12,"report_count":12,"dangerous_capability_badges":275,"review_status":76,"signals":276},[],[78,79,80],{"owner_uuid":9,"owner_name":10,"source_url":278,"content_hash":247,"visibility":18,"created_at":279,"updated_at":280},"https:\u002F\u002Ftokrepo.com\u002Fen\u002Fworkflows\u002Fanime-js-lightweight-javascript-animation-engine-5519965a","2026-04-25 00:26:22","2026-05-13 21:47:07",105.76764706002139,[138,139,140,141],[26,143]]