[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"verticals":3,"package-vue-idle-guard":32,"code:md:false:tg0x0z":61},[4,20],{"id":5,"slug":6,"name":7,"tagline":8,"description":9,"accentFrom":10,"accentTo":11,"icon":12,"defaultLocale":13,"locales":14,"features":16,"position":19},"019fe637-3d33-714b-b57f-23e163ffca0c","dev","Web Development","Build. Learn. Ship.","Practical courses, engineering-grade articles and open-source tools for people who ship.","violet-500","cyan-400","◇","en",[13,15],"fa",{"courses":17,"paths":17,"articles":17,"exams":18,"flashcards":18,"packages":17,"community":17,"certificates":17,"teams":17,"commerce":17},true,false,0,{"id":21,"slug":22,"name":23,"tagline":24,"description":25,"accentFrom":26,"accentTo":10,"icon":27,"defaultLocale":13,"locales":28,"features":30,"position":31},"019fe637-3dc2-754c-8657-0f175bfee7c6","lang","Languages","Learn a language the way you learn a codebase.","Structured paths, listening drills and spaced repetition that actually sticks.","amber-400","⌘",[13,15,29],"es",{"courses":17,"paths":17,"articles":18,"exams":18,"flashcards":18,"packages":18,"community":17,"certificates":18,"teams":18,"commerce":17},2,{"id":33,"slug":34,"name":34,"scope":35,"registry":36,"tagline":37,"ecosystem":38,"repoUrl":39,"docsUrl":40,"registryUrl":41,"license":42,"isOfficial":17,"weekOf":43,"latestVersion":44,"stars":45,"weeklyDownloads":46,"voteCount":19,"publishedAt":43,"submittedBy":47,"vertical":51,"tags":52,"homepageUrl":35,"doc":55,"releases":58,"thread":59,"hasVoted":18},"019fe637-5e1e-775f-a4ae-913af3cd821a","vue-idle-guard",null,"NPM","Session timeout for Vue 3 — idle detection, logout countdown, multi-tab activity sync.","vue","https:\u002F\u002Fgithub.com\u002Fparsajiravand\u002Fvue-idle-guard","https:\u002F\u002Fparsajiravand.github.io\u002Fvue-idle-guard\u002F","https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fvue-idle-guard","MIT","2026-08-10T00:00:00.000Z","0.1.0",368,1230,{"id":48,"name":49,"username":50,"avatarUrl":35},"019fe637-3c25-7088-9034-39c9f15dc3c8","Parsa Jiravand","parsa",{"slug":6,"name":7},[53],{"slug":38,"name":54},"Vue",{"id":56,"bodyMd":57,"body":35},"019fe637-5dd8-77a5-9caf-5783a6915836","# vue-idle-guard\n\nSession timeout for Vue 3 — idle detection, logout countdown, multi-tab activity sync.\n\n## Install\n\n```bash\nnpm i vue-idle-guard\n```\n\n## Usage\n\n```ts\nimport { createVueIdleGuard } from \"vue-idle-guard\";\n\nconst instance = createVueIdleGuard({\n  timeout: 15 * 60 * 1000,\n  onIdle: () => console.warn(\"session expiring\"),\n});\n```\n\n## Why\n\nMost projects reimplement this badly, once per codebase. This does it in one\nplace, with tests, and stays out of your way.\n\n- Zero dependencies\n- Fully typed\n- MIT licensed\n",[],{"id":60},"019fe637-5e68-735c-a277-a11e800ed650","\u003Cdiv class=\"shj shj-lang-md shj-multiline\" data-lang=\"md\">\u003Cdiv class=\"shj-scroll\">\u003Cdiv class=\"shj-code\">\u003Cspan class=\"shj-section\"># vue-idle-guard\u003C\u002Fspan>\n\nSession timeout for Vue 3 — idle detection, logout countdown, multi-tab activity sync.\n\n\u003Cspan class=\"shj-section\">## Install\u003C\u002Fspan>\n\n\u003Cspan class=\"shj-kwd\">```bash\u003C\u002Fspan>\n\u003Cspan class=\"shj-func\">npm\u003C\u002Fspan> i vue-idle-guard\n\u003Cspan class=\"shj-kwd\">```\u003C\u002Fspan>\n\n\u003Cspan class=\"shj-section\">## Usage\u003C\u002Fspan>\n\n\u003Cspan class=\"shj-kwd\">```ts\u003C\u002Fspan>\n\u003Cspan class=\"shj-kwd\">import\u003C\u002Fspan> \u003Cspan class=\"shj-bracket\">{\u003C\u002Fspan> createVueIdleGuard \u003Cspan class=\"shj-bracket\">}\u003C\u002Fspan> \u003Cspan class=\"shj-kwd\">from\u003C\u002Fspan> \u003Cspan class=\"shj-str\">\"vue-idle-guard\"\u003C\u002Fspan>;\n\n\u003Cspan class=\"shj-kwd\">const\u003C\u002Fspan> instance \u003Cspan class=\"shj-oper\">=\u003C\u002Fspan> \u003Cspan class=\"shj-func\">createVueIdleGuard\u003C\u002Fspan>\u003Cspan class=\"shj-bracket\">(\u003C\u002Fspan>\u003Cspan class=\"shj-bracket\">{\u003C\u002Fspan>\n  timeout\u003Cspan class=\"shj-oper\">:\u003C\u002Fspan> \u003Cspan class=\"shj-num\">15\u003C\u002Fspan> \u003Cspan class=\"shj-oper\">*\u003C\u002Fspan> \u003Cspan class=\"shj-num\">60\u003C\u002Fspan> \u003Cspan class=\"shj-oper\">*\u003C\u002Fspan> \u003Cspan class=\"shj-num\">1000\u003C\u002Fspan>\u003Cspan class=\"shj-oper\">,\u003C\u002Fspan>\n  onIdle\u003Cspan class=\"shj-oper\">:\u003C\u002Fspan> \u003Cspan class=\"shj-bracket\">(\u003C\u002Fspan>\u003Cspan class=\"shj-bracket\">)\u003C\u002Fspan> \u003Cspan class=\"shj-kwd\">=&gt;\u003C\u002Fspan> console\u003Cspan class=\"shj-oper\">.\u003C\u002Fspan>\u003Cspan class=\"shj-func\">warn\u003C\u002Fspan>\u003Cspan class=\"shj-bracket\">(\u003C\u002Fspan>\u003Cspan class=\"shj-str\">\"session expiring\"\u003C\u002Fspan>\u003Cspan class=\"shj-bracket\">)\u003C\u002Fspan>\u003Cspan class=\"shj-oper\">,\u003C\u002Fspan>\n\u003Cspan class=\"shj-bracket\">}\u003C\u002Fspan>\u003Cspan class=\"shj-bracket\">)\u003C\u002Fspan>;\n\u003Cspan class=\"shj-kwd\">```\u003C\u002Fspan>\n\n\u003Cspan class=\"shj-section\">## Why\u003C\u002Fspan>\n\nMost projects reimplement this badly, once per codebase. This does it in one\nplace, with tests, and stays out of your way.\n\n- Zero dependencies\n- Fully typed\n- MIT licensed\n\u003C\u002Fdiv>\u003C\u002Fdiv>\u003C\u002Fdiv>"]