{"_id":"@blujosi/rivetkit-svelte","_rev":"24-5c47fc3b36af62fea81a91e9c5d962b0","name":"@blujosi/rivetkit-svelte","dist-tags":{"latest":"2.3.13"},"versions":{"0.0.1":{"name":"@blujosi/rivetkit-svelte","version":"0.0.1","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@0.0.1","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"5753d7b22408412727d6866723d64465e785e815","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-0.0.1.tgz","fileCount":6,"integrity":"sha512-KxSz89ZPH9jg2sgq2azESWdqLnBvjgZnuektWtqgF2RcuvMGlTkH9muId9rXrhd48Pml0liXoMe5/25hUGdUVA==","signatures":[{"sig":"MEQCIAug3DLB8JrwDcKVFtrRYuK5hx8dm6pQ+zITuRjo0CRAAiAFbtb3mMCsdXbAvxCYTpl1ko5bAvMWrdO+pi3rC3ieeg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15214},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"469d5df0d89dfe769cb2d86b35c643d719bb1d50","scripts":{"dev":"vite dev","build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"10.9.2","description":"A Svelte 5 integration for [RivetKit](https://rivetkit.com) that provides reactive actor connections using Svelte's new runes system.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.17.0","dependencies":{"esm-env":"^1.2.2","@rivetkit/core":"^0.9.9","@rivetkit/actor":"^0.9.9","@rivetkit/framework-base":"^0.9.9"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","svelte":"^5.38.1","publint":"^0.3.2","typescript":"^5.0.0","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@sveltejs/package":"^2.0.0","@sveltejs/adapter-auto":"^6.0.0","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_0.0.1_1755617843859_0.4230807788909756","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@blujosi/rivetkit-svelte","version":"0.0.2","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@0.0.2","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"7f5a6b53357e673ebc489e20c98248cce8c88d4a","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-0.0.2.tgz","fileCount":6,"integrity":"sha512-05SdGkqYgSCpgGv/757XfZacrPhJCMg+Wcw4u7+sGX83Ld/NRNsp6C6HfVocTSLjhdywlbdhCj7AuMEcGPLJcQ==","signatures":[{"sig":"MEYCIQDDTMpTJ7XbCtvrDMX4wqiiebG0FZjbAktiRFjhRRFS7AIhAJUQjUvMh8vqAD+a87sPzguaU/7V3ZlMwK82YjSn7Eui","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15072},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"cafa0820e74595d8be29761c1928a32ff4ec2944","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"10.9.2","description":"A Svelte 5 integration for [RivetKit](https://rivetkit.com) that provides reactive actor connections using Svelte's new runes system.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.17.0","dependencies":{"esm-env":"^1.2.2","@rivetkit/core":"^0.9.9","@rivetkit/actor":"^0.9.9","@tanstack/svelte-store":"^0.7.4","@rivetkit/framework-base":"^0.9.9"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","svelte":"^5.38.1","publint":"^0.3.2","typescript":"^5.0.0","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@sveltejs/package":"^2.0.0","@sveltejs/adapter-auto":"^6.0.0","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_0.0.2_1756638372555_0.45450709258341426","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@blujosi/rivetkit-svelte","version":"0.0.3","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@0.0.3","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"c603f78a586c5e521212d1a122b6cb8420dc2ba7","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-0.0.3.tgz","fileCount":6,"integrity":"sha512-B2cKtUWQt+7/l6AIka/Ppg6/SNzl2ayVrlMJ2AakUMjzH48ZpTx6QvrRclN52Laf6Pb1o4QOOTo1Hu0L3i9Vfg==","signatures":[{"sig":"MEUCIAfWdUz4AK363ofw6xSZaIsbxUAFM1emqrNKs51PmchOAiEAsJO4NoSTwEALEOlhKTMzCxBY3dvDh1+tSSBpJ8Ra3jU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15855},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"cafa0820e74595d8be29761c1928a32ff4ec2944","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"10.9.2","description":"A Svelte 5 integration for [RivetKit](https://rivetkit.com) that provides reactive actor connections using Svelte's new runes system.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.17.0","dependencies":{"esm-env":"^1.2.2","@rivetkit/core":"^0.9.9","@rivetkit/actor":"^0.9.9","@tanstack/svelte-store":"^0.7.4","@rivetkit/framework-base":"^0.9.9"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.0.4","svelte":"^5.38.1","publint":"^0.3.2","typescript":"^5.0.0","svelte-check":"^4.0.0","@sveltejs/kit":"^2.22.0","@sveltejs/package":"^2.0.0","@sveltejs/adapter-auto":"^6.0.0","@sveltejs/vite-plugin-svelte":"^6.0.0"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_0.0.3_1756638985068_0.6445799365934299","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@blujosi/rivetkit-svelte","version":"0.0.5","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@0.0.5","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"2ffe6a6990bdf7517522cd72a3b2e3fa08de488c","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-0.0.5.tgz","fileCount":6,"integrity":"sha512-N2clXJCtfBZHvUBz3PnEgG1AJWsN64YEP5izKibD4qr+peIiv4m5dJ0wsxE0iexfDuVLMqtXWBdT4Ls/+Qd5gA==","signatures":[{"sig":"MEUCIQDBU0uUyq3KgPA807sJaSKb4vpwNaT35mXHNyI4HsXSYwIgA7xQt2uU2n974zgJ5U+oHF3qvBPeVwT1D9BPmdEfXgo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15857},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"cafa0820e74595d8be29761c1928a32ff4ec2944","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"10.9.2","description":"A Svelte 5 integration for [RivetKit](https://rivetkit.com) that provides reactive actor connections using Svelte's new runes system.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.17.0","dependencies":{"esm-env":"^1.2.2","@rivetkit/core":"^2.0.1","@rivetkit/actor":"^2.0.1","@tanstack/svelte-store":"^0.7.4","@rivetkit/framework-base":"^2.0.1"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.4","svelte":"^5.38.6","publint":"^0.3.12","typescript":"^5.9.2","svelte-check":"^4.3.1","@sveltejs/kit":"^2.37.0","@sveltejs/package":"^2.5.0","@sveltejs/adapter-auto":"^6.1.0","@sveltejs/vite-plugin-svelte":"^6.1.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_0.0.5_1756887383146_0.7920179976322206","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@blujosi/rivetkit-svelte","version":"0.0.6","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@0.0.6","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"e9a87af7cfa49ea7fc4008b3a5043bcaee8b0db9","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-0.0.6.tgz","fileCount":6,"integrity":"sha512-CEtMK2N7+lsliGQK6FI2/aN+2NBWiAgcGI744aNiLYW/HIEgjWsqFdno6s0HYZMr0sirEYzPH8gYCr71lNzMpw==","signatures":[{"sig":"MEUCIQDKyGySN67PQ66x/7AlsSMEYrCJrQvo9eiHHkyqMZ14+AIgXTnW7aVuLAStD+X5TRnjwPjtpZWNOJ7qjg2j0yTMfRE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15857},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"885a09d082f4b36d51c1cea17c81d2e4b05a8d60","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"10.9.2","description":"A Svelte 5 integration for [RivetKit](https://rivetkit.com) that provides reactive actor connections using Svelte's new runes system.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.17.0","dependencies":{"esm-env":"^1.2.2","@rivetkit/core":"^2.0.2","@rivetkit/actor":"^2.0.2","@tanstack/svelte-store":"^0.7.4","@rivetkit/framework-base":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.4","svelte":"^5.38.7","publint":"^0.3.12","typescript":"^5.9.2","svelte-check":"^4.3.1","@sveltejs/kit":"^2.37.0","@sveltejs/package":"^2.5.0","@sveltejs/adapter-auto":"^6.1.0","@sveltejs/vite-plugin-svelte":"^6.1.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_0.0.6_1757136261726_0.8493565302429082","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@blujosi/rivetkit-svelte","version":"0.0.7","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@0.0.7","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"2814ae0ef1c0ac94e4bf7a2a436d18e1fcc7983f","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-0.0.7.tgz","fileCount":6,"integrity":"sha512-YpAc4s/U9WtfS1gjdrzPjD4X8crou8Z9J3MrxzO7bie/ognljueTsSeNMOl8YEhTzg7s5WF9QRcZSlWeK6VXFg==","signatures":[{"sig":"MEQCIFWUmAjcW3Y4/GnOVjNTGWRh5wuAq+MNyT4WEAM0T9/dAiAjBZSQ3964fowbAEyygQdmKIBe8GhaDKRIm/shfq8piQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15857},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"a6a57289daf5376003f4075a87233f3ed2acb324","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"10.9.2","description":"A Svelte 5 integration for [RivetKit](https://rivetkit.com) that provides reactive actor connections using Svelte's new runes system.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.17.0","dependencies":{"esm-env":"^1.2.2","@rivetkit/core":"^2.0.2","@rivetkit/actor":"^2.0.2","@tanstack/svelte-store":"^0.7.4","@rivetkit/framework-base":"^2.0.2"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.4","svelte":"^5.38.7","publint":"^0.3.12","typescript":"^5.9.2","svelte-check":"^4.3.1","@sveltejs/kit":"^2.37.0","@sveltejs/package":"^2.5.0","@sveltejs/adapter-auto":"^6.1.0","@sveltejs/vite-plugin-svelte":"^6.1.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_0.0.7_1757136413875_0.05085722878007215","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@blujosi/rivetkit-svelte","version":"0.0.8","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@0.0.8","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"1f9473ac29634beb2b21df5eead22808d900d290","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-0.0.8.tgz","fileCount":6,"integrity":"sha512-tU3lbc0CDrp7P7s1EXIcpj6VYSOaABypiat4+PQ3Km226SJGgxewErsVdXwrjHqsBpXl4Jy+iZ+/cmzKQOjcAg==","signatures":[{"sig":"MEUCIQCnMlcwvly9YqPBdY1e6ZounhZvfFHmgDZ1ofUh41vkGAIgXqhJ04C7T+E3dA6LCoRrjDa+dgaVPvmq/rpKojwJB+k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":15802},"type":"module","types":"./dist/index.d.ts","svelte":"./dist/index.js","exports":{".":{"types":"./dist/index.d.ts","svelte":"./dist/index.js"}},"gitHead":"a6a57289daf5376003f4075a87233f3ed2acb324","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"10.9.2","description":"A Svelte 5 integration for [RivetKit](https://rivetkit.com) that provides reactive actor connections using Svelte's new runes system.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"22.17.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.0.3","@tanstack/svelte-store":"^0.7.4"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.1.4","svelte":"^5.38.7","publint":"^0.3.12","typescript":"^5.9.2","svelte-check":"^4.3.1","@sveltejs/kit":"^2.37.0","@sveltejs/package":"^2.5.0","@sveltejs/adapter-auto":"^6.1.0","@rivetkit/framework-base":"^2.0.3","@sveltejs/vite-plugin-svelte":"^6.1.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_0.0.8_1757960916808_0.19256719428387825","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@blujosi/rivetkit-svelte","version":"2.1.0","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.1.0","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"a0839cf621fe29722639e2ca45de9ed53c5f634b","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.1.0.tgz","fileCount":12,"integrity":"sha512-H4U4MUGb2dRUyz2UOk2F3e9ZDfHvt8XzVG9AvYDzzYqWG1C8vqjvaw1E9uXLfVIJXP3uh9oeOQD+jwGQWh4NPg==","signatures":[{"sig":"MEUCIBgtfgCKiTRD/vrHrGgISB6CgxpCtFiz6mRcK8CbT0CMAiEAtgcFHWFwd+McXKYrx+NRoT1p11drk/x/H3aIkavRNzo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":20512},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"9b0577ceb8ff29db879bcafef3b1b8e78c11f096","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.1.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","svelte":"^5.53.6","publint":"^0.3.18","typescript":"^5.9.3","svelte-check":"^4.4.4","@sveltejs/kit":"^2.53.4","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.1.3","@sveltejs/vite-plugin-svelte":"^6.2.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.1.0_1772549055043_0.4828780037088216","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@blujosi/rivetkit-svelte","version":"2.1.1","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.1.1","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"c1bec0040589440b025e248016dd4e688a025c7a","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.1.1.tgz","fileCount":12,"integrity":"sha512-sEpyqoaQwzmgodLoVNUWSnpEIc4VXjiui/ddHD1zNkYlLQzmFEPn/2Igr/r4ZVPlq0+Gf6eZiXWHvtUSli5qnQ==","signatures":[{"sig":"MEUCIQCFUxv5kZq6O+GZnAUTQIKph7u8Qf4XtBwypaOfzNBZjAIgYmQIkASMOC6F+kU5opj4HE/i+qJBf0t8cxs0fqL9FqA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":25915},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"9b0577ceb8ff29db879bcafef3b1b8e78c11f096","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.1.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","svelte":"^5.53.6","publint":"^0.3.18","typescript":"^5.9.3","svelte-check":"^4.4.4","@sveltejs/kit":"^2.53.4","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.1.3","@sveltejs/vite-plugin-svelte":"^6.2.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.1.1_1772604469930_0.09461888786135475","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@blujosi/rivetkit-svelte","version":"2.1.2","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.1.2","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"9713a8c518bf0e98be2c1309173a9e3d37228438","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.1.2.tgz","fileCount":12,"integrity":"sha512-/bHH8I51Kde0yVvEPRGR/V9NS16j4ZToJNm+s0tFeSqopbZUjvfAG6p0UuFEtLuX+YwPZkho4klCges8KDOIlw==","signatures":[{"sig":"MEYCIQC4vok1U34uALlfnoPu9qevPOzzvaznVYSwc5WUTYAkVgIhAOCnectlxwqHGGMckMzFKinXxmwIUzK24NwXLIU9IAdC","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":28403},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"ae64b376ea9b6745147ab9874e95b6784ea580d1","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.1.3"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","svelte":"^5.53.6","publint":"^0.3.18","typescript":"^5.9.3","svelte-check":"^4.4.4","@sveltejs/kit":"^2.53.4","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.1.3","@sveltejs/vite-plugin-svelte":"^6.2.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.1.2_1772620437631_0.8569050479483822","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@blujosi/rivetkit-svelte","version":"2.1.3","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.1.3","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"4804d6836b16fbb4caebc1e2f1cc37f0256b003c","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.1.3.tgz","fileCount":12,"integrity":"sha512-FXlzs8duvTfOw5/7fZ6HB58YiFc0IkhOPW42aQRYIi19Uo0V7SI5BnXG1Cyh2A3h4sR18xrK6MPpzAC1qhrGKA==","signatures":[{"sig":"MEUCIQDcWtjnoXGHYZj9WHt0EW3QqhnFrRgU3C34jaFrmRyfFgIgdB2A4Qyv06JohW/ZXicbtMhc8YmNHp/80piiAc/drmg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35749},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"ae64b376ea9b6745147ab9874e95b6784ea580d1","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.1.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","svelte":"^5.53.6","publint":"^0.3.18","typescript":"^5.9.3","svelte-check":"^4.4.4","@sveltejs/kit":"^2.53.4","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.1.3","@sveltejs/vite-plugin-svelte":"^6.2.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.1.3_1772624933550_0.35577315061588277","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@blujosi/rivetkit-svelte","version":"2.2.0","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.2.0","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"b404a7a4b8e7d91a48bcadf020a7cd7bb6f91630","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.2.0.tgz","fileCount":14,"integrity":"sha512-2LB5cE30rJNzsGXNQEpbVpj2ax2wfsWdzSAnW5jJDbeba9PAE1sNAbvj+HeOw4z5wiTLCtGv9z6B8BwYUDuzCw==","signatures":[{"sig":"MEYCIQDCnc+ErEpwsvbOQL1q4laV61IaLAMbD7Ql9IflwI8C3wIhAM69zaPV5MRSaV3YFf6LfSw2XvqS1F99NtSvW/2Ss9Wc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":55907},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"0e45a51ec5a43ee65aa140beb16e098d76fbbbd5","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.1.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","svelte":"^5.53.6","publint":"^0.3.18","typescript":"^5.9.3","svelte-check":"^4.4.4","@sveltejs/kit":"^2.53.4","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.1.3","@sveltejs/vite-plugin-svelte":"^6.2.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.2.0_1772811292722_0.613553686489851","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@blujosi/rivetkit-svelte","version":"2.2.1","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.2.1","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"81548c964f2b8c5b57a2dd1d917607180721d9d6","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.2.1.tgz","fileCount":16,"integrity":"sha512-S5p44WXKSsYLygkKjZBVcN0qV4l4n7cHpfPV3i6P7MQQLCICiT/4k0P0/i9kjPXPgFgZAOabRTj8CNfRU9Ua3A==","signatures":[{"sig":"MEUCIQDG/DwbKi5wfD8HjPd0sUZ9+/ZR+7dWGz+ZorFsr6g0iQIgUJ8Z64rO9cEwVaHBI7Cw7id/XKQRPuL8qLEXMrLnrpY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76186},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"0e45a51ec5a43ee65aa140beb16e098d76fbbbd5","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.1.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","svelte":"^5.53.6","publint":"^0.3.18","typescript":"^5.9.3","svelte-check":"^4.4.4","@sveltejs/kit":"^2.53.4","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.1.3","@sveltejs/vite-plugin-svelte":"^6.2.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.2.1_1772886009463_0.27090730717832257","host":"s3://npm-registry-packages-npm-production"}},"2.3.2":{"name":"@blujosi/rivetkit-svelte","version":"2.3.2","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.3.2","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"20632094c0e810b2e23394dbdb998569f540f0c2","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.3.2.tgz","fileCount":18,"integrity":"sha512-/6BRjjmwbm32dhvvtcumVQAUUJoEV0X/w5agCouWa+iyjNKRFcPbzvACXFX2Z6aHWXc43vdRZ1f006XLgkQNlw==","signatures":[{"sig":"MEUCIFp5HcLOKYqOs9Bj+yMTXvz/9u3CWjzO5EiF4dvaO4o4AiEAygFjgQmaiRe7lBt/rIZl80BR4BwAktetTOxJqCljlqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86682},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"3afca5631b34ebeb1c3425e39d189900dfe5a3a0","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.1.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","svelte":"^5.53.6","publint":"^0.3.18","typescript":"^5.9.3","svelte-check":"^4.4.4","@sveltejs/kit":"^2.53.4","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.1.3","@sveltejs/vite-plugin-svelte":"^6.2.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.3.2_1774087377579_0.3281856642004062","host":"s3://npm-registry-packages-npm-production"}},"2.3.4":{"name":"@blujosi/rivetkit-svelte","version":"2.3.4","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.3.4","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"4289b9d49faa223ef2f057277119dff1cc022560","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.3.4.tgz","fileCount":18,"integrity":"sha512-s/y7pu4v9oBqH39PguPQnJrWjwLN8aTT5ZvWPqxnth+yIActAtQYflTLFCdNIrEgu5BtMy0n+vAsEVm8wntEuw==","signatures":[{"sig":"MEUCIBjcgyi68cm2cEfYyqSNfv71RckXeHoYu1QCUf7Edk8aAiEAoCgxsv3/OEE7uRFbq1WRmRrJpEdsFqr5E31crZH0vEs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":86682},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"dc8fea90b7a42535bb900bdb761585b3d32e631a","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.1.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","svelte":"^5.53.6","publint":"^0.3.18","typescript":"^5.9.3","svelte-check":"^4.4.4","@sveltejs/kit":"^2.53.4","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.1.3","@sveltejs/vite-plugin-svelte":"^6.2.4"},"peerDependencies":{"svelte":"^5.0.0"},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.3.4_1774094273610_0.5606792309050654","host":"s3://npm-registry-packages-npm-production"}},"2.3.5":{"name":"@blujosi/rivetkit-svelte","version":"2.3.5","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.3.5","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"8c53d5a3c37afa1f84239641e492f54749cb4c84","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.3.5.tgz","fileCount":19,"integrity":"sha512-7O2fhQmVpveld3xYD6DVx3PSzwZcIC2vHKpPEmRchI58M61x6C1Ut73hRaKRs1zzSUIXhJYOYdpT8dfIhMiGaQ==","signatures":[{"sig":"MEUCIEKDushqIKPcsbOHLxmKxCLJnOrgq72WT7j5pBWVJLMbAiEAgH2kkYbCl4ej1RPz/OPdepgT1vpiXOVv2omDHZqUdzc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90694},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"dc8fea90b7a42535bb900bdb761585b3d32e631a","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.1.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","svelte":"^5.53.6","publint":"^0.3.18","typescript":"^5.9.3","svelte-check":"^4.4.4","@sveltejs/kit":"^2.53.4","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.1.3","@sveltejs/vite-plugin-svelte":"^6.2.4"},"peerDependencies":{"svelte":"^5.0.0","@rivetkit/cloudflare-workers":"^2.0.0"},"peerDependenciesMeta":{"@rivetkit/cloudflare-workers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.3.5_1774797584544_0.6752340600244067","host":"s3://npm-registry-packages-npm-production"}},"2.3.6":{"name":"@blujosi/rivetkit-svelte","version":"2.3.6","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.3.6","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"ecc4d05a139b86c90e30503a6da05d86540028f3","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.3.6.tgz","fileCount":19,"integrity":"sha512-7KyIiZ6Z/tHM7XctbhXaz/RHx+Z31qK63PKjhXK5URG0JyPBvemWyKj6D1NusBn+EIV9fignjn2vwfwnMqUvaw==","signatures":[{"sig":"MEUCIBN4TtdC2NeW0aaGDnvq70PykzIfl342+Z+q9IxFXLCXAiEAhs8n+ZF3K0iCfCfjpBkdudmcX8NcIwXVhoIaGmKwYsM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90690},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"dc8fea90b7a42535bb900bdb761585b3d32e631a","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.1.6"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^7.3.1","svelte":"^5.53.6","publint":"^0.3.18","typescript":"^5.9.3","svelte-check":"^4.4.4","@sveltejs/kit":"^2.53.4","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.1.3","@sveltejs/vite-plugin-svelte":"^6.2.4"},"peerDependencies":{"svelte":"^5.0.0","@rivetkit/cloudflare-workers":"^2.0.0"},"peerDependenciesMeta":{"@rivetkit/cloudflare-workers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.3.6_1774823733506_0.6438642134854116","host":"s3://npm-registry-packages-npm-production"}},"2.3.7":{"name":"@blujosi/rivetkit-svelte","version":"2.3.7","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.3.7","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"d2afddf2c89cc8e273931c03496dc3c5812d6f8a","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.3.7.tgz","fileCount":19,"integrity":"sha512-uzCGq03tIemiMfXYiqsg8SwzJEgleU2n2J8Jh4odmiWobSDJfehBVEn1Z3CdBbssjhnW2xAE/Xa6HzICc2VmPg==","signatures":[{"sig":"MEQCIAzR65/eeuNfhQUu+WXkKIbv8a/YHo+Mg4lh760JKpJ+AiAlji/tfb7QrKrw7mOc0e9du6g8hkU901uGqLj/2a0WFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90690},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"dc8fea90b7a42535bb900bdb761585b3d32e631a","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.3","svelte":"^5.55.1","publint":"^0.3.18","typescript":"^6.0.2","svelte-check":"^4.4.6","@sveltejs/kit":"^2.55.0","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.2.0","@sveltejs/vite-plugin-svelte":"^7.0.0"},"peerDependencies":{"svelte":"^5.0.0","@rivetkit/cloudflare-workers":"^2.0.0"},"peerDependenciesMeta":{"@rivetkit/cloudflare-workers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.3.7_1775033328611_0.13036870563123681","host":"s3://npm-registry-packages-npm-production"}},"2.3.8":{"name":"@blujosi/rivetkit-svelte","version":"2.3.8","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.3.8","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"5ae0b30e3c397c13ecdf7f0474599d76b51bb764","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.3.8.tgz","fileCount":19,"integrity":"sha512-uyBHn5RVpebDL6Jn9LjoM481OM7im7mat9r3TkqqV+G2lDlgCwmI1NnvgGkLJ7iTDc0eeLfbclJSYF9lO2DgVQ==","signatures":[{"sig":"MEUCIQDIjfjUfJZsWhmtzB+6oZJGTi3W/rCoX5cf30qmkFkmowIgCodGA9P5dt2RTUkCOABZEUfCBRIYv0VRtL1de6UUsOE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90686},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"a2a054bee60b1148585eb714f474609acd912f22","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.3","svelte":"^5.55.1","publint":"^0.3.18","typescript":"^6.0.2","svelte-check":"^4.4.6","@sveltejs/kit":"^2.55.0","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.2.0","@sveltejs/vite-plugin-svelte":"^7.0.0"},"peerDependencies":{"svelte":"^5.0.0","@rivetkit/cloudflare-workers":"^2.0.0"},"peerDependenciesMeta":{"@rivetkit/cloudflare-workers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.3.8_1775123588785_0.12286921569998532","host":"s3://npm-registry-packages-npm-production"}},"2.3.9":{"name":"@blujosi/rivetkit-svelte","version":"2.3.9","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.3.9","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"1071d46b82a7e8838998044906c836ad5154babb","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.3.9.tgz","fileCount":19,"integrity":"sha512-1bW/G0yVo5DOhrCaW13ECuewi7E6S8xaw0gdKOPT1IclSIzigIiyTIqNdMTyjGD0BJeIOmNaIfnV3vJUes3b4A==","signatures":[{"sig":"MEYCIQCEUTDz/pXFaqz4mgDlxSmbY/v5WciU8TJnc4zCrmdvggIhAPCFJopoxSgotw5ZYwWZxsuRAhDoA1MI/nYZqKKtfmnL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90716},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"a2a054bee60b1148585eb714f474609acd912f22","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.3","svelte":"^5.55.1","publint":"^0.3.18","typescript":"^6.0.2","svelte-check":"^4.4.6","@sveltejs/kit":"^2.55.0","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.2.0","@sveltejs/vite-plugin-svelte":"^7.0.0"},"peerDependencies":{"svelte":"^5.0.0","@rivetkit/cloudflare-workers":"^2.0.0"},"peerDependenciesMeta":{"@rivetkit/cloudflare-workers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.3.9_1775124701082_0.5875747018371775","host":"s3://npm-registry-packages-npm-production"}},"2.3.10":{"name":"@blujosi/rivetkit-svelte","version":"2.3.10","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.3.10","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"183b03621c8d6dbb35925defabfdd3b4a68f4a16","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.3.10.tgz","fileCount":19,"integrity":"sha512-YrBgEqABPhapTbR48ixYcijP871bklq4drmdHtE8NCKjKlThpJSGEmCfl0cztYlrTUWFXV4fKefJyQQ7MkQQTQ==","signatures":[{"sig":"MEUCIQDHsqccd8OHiPM75s+HIlnmMVDwqE0HffF3ERc8LWf0+QIgWfVXG7Iqhw/UMXyqtPnEq5CM+5fDCq1YREK9wMAnp7w=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90883},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"a2a054bee60b1148585eb714f474609acd912f22","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.3","svelte":"^5.55.1","publint":"^0.3.18","typescript":"^6.0.2","svelte-check":"^4.4.6","@sveltejs/kit":"^2.55.0","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.2.0","@sveltejs/vite-plugin-svelte":"^7.0.0"},"peerDependencies":{"svelte":"^5.0.0","@rivetkit/cloudflare-workers":"^2.0.0"},"peerDependenciesMeta":{"@rivetkit/cloudflare-workers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.3.10_1775124964664_0.1025462822385057","host":"s3://npm-registry-packages-npm-production"}},"2.3.11":{"name":"@blujosi/rivetkit-svelte","version":"2.3.11","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.3.11","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"5e23be6edefff00eee8657dc2287b82047710f7f","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.3.11.tgz","fileCount":19,"integrity":"sha512-y8oRYGEORHQjvZnUYoAeIzdPvdMjF7z9c42hLDxoaWWFLjbuKdAuCOdAn5ijj3SuE/YyZJuIxC+XFkfF+JKuHA==","signatures":[{"sig":"MEUCIAhqbEIS8qywM+ZJcuhvn54TECjhMf/4OGlU8wuP6dwMAiEAg5RMytZEIIS8y8NbmRTmseE+dEOJo1lRxEJLfTn+PJo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90883},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"a2a054bee60b1148585eb714f474609acd912f22","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.3","svelte":"^5.55.1","publint":"^0.3.18","typescript":"^6.0.2","svelte-check":"^4.4.6","@sveltejs/kit":"^2.55.0","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.2.0","@sveltejs/vite-plugin-svelte":"^7.0.0"},"peerDependencies":{"svelte":"^5.0.0","@rivetkit/cloudflare-workers":"^2.0.0"},"peerDependenciesMeta":{"@rivetkit/cloudflare-workers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.3.11_1775125576764_0.4656402225372822","host":"s3://npm-registry-packages-npm-production"}},"2.3.12":{"name":"@blujosi/rivetkit-svelte","version":"2.3.12","keywords":["svelte"],"_id":"@blujosi/rivetkit-svelte@2.3.12","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"dist":{"shasum":"a5fa1096491cff121f2bf21d2529399e59e18f9d","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.3.12.tgz","fileCount":19,"integrity":"sha512-LKlsztMXmDwgQdpgCYBlPlSKSvWx5NevVPqogNHHhVOOd9SRmOY/iD+JBrdJgbeehY6M6tZOHjGNInYxYni7RQ==","signatures":[{"sig":"MEUCIQClbBDDqtvV6zPyz3ZTj2zDkbVdWYrp0VV962z4UyPP3gIgas8krsHE1Md5mrZylY/mnxIMn5HS5en9TAkUAglpU1c=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":91613},"type":"module","types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"gitHead":"2eb665fe60a44b72f9e65a5c327d7d7dbf6a316a","scripts":{"build":"vite build && npm run prepack","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","prepare":"svelte-kit sync || echo ''","preview":"vite preview","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"_npmVersion":"11.6.1","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","directories":{},"sideEffects":["**/*.css"],"_nodeVersion":"24.10.0","dependencies":{"esm-env":"^1.2.2","rivetkit":"^2.2.0"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^8.0.3","svelte":"^5.55.1","publint":"^0.3.18","typescript":"^6.0.2","svelte-check":"^4.4.6","@sveltejs/kit":"^2.55.0","@sveltejs/package":"^2.5.7","@sveltejs/adapter-auto":"^7.0.1","@rivetkit/framework-base":"^2.2.0","@sveltejs/vite-plugin-svelte":"^7.0.0"},"peerDependencies":{"svelte":"^5.0.0","@rivetkit/cloudflare-workers":"^2.0.0"},"peerDependenciesMeta":{"@rivetkit/cloudflare-workers":{"optional":true}},"_npmOperationalInternal":{"tmp":"tmp/rivetkit-svelte_2.3.12_1775144530924_0.507129744142645","host":"s3://npm-registry-packages-npm-production"}},"2.3.13":{"name":"@blujosi/rivetkit-svelte","version":"2.3.13","scripts":{"build":"vite build && npm run prepack","preview":"vite preview","prepare":"svelte-kit sync || echo ''","prepack":"svelte-kit sync && svelte-package && cp SKILL.md dist/SKILL.md && publint","check":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json","check:watch":"svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch"},"sideEffects":["**/*.css"],"svelte":"./dist/svelte/index.js","types":"./dist/svelte/index.d.ts","type":"module","exports":{".":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./svelte":{"types":"./dist/svelte/index.d.ts","svelte":"./dist/svelte/index.js","default":"./dist/svelte/index.js"},"./sveltekit":{"types":"./dist/sveltekit/index.d.ts","svelte":"./dist/sveltekit/index.js"}},"peerDependencies":{"svelte":"^5.0.0","rivetkit":"^2.2.0","@rivetkit/cloudflare-workers":"^2.0.0"},"peerDependenciesMeta":{"@rivetkit/cloudflare-workers":{"optional":true}},"devDependencies":{"@rivetkit/framework-base":"^2.2.0","@sveltejs/adapter-auto":"^7.0.1","@sveltejs/kit":"^2.55.0","@sveltejs/package":"^2.5.7","@sveltejs/vite-plugin-svelte":"^7.0.0","publint":"^0.3.18","svelte":"^5.55.1","svelte-check":"^4.4.6","typescript":"^6.0.2","vite":"^8.0.3"},"keywords":["svelte"],"dependencies":{"esm-env":"^1.2.2"},"gitHead":"2eb665fe60a44b72f9e65a5c327d7d7dbf6a316a","_id":"@blujosi/rivetkit-svelte@2.3.13","description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","_nodeVersion":"24.10.0","_npmVersion":"11.6.1","dist":{"integrity":"sha512-A81/9d3Np4ZHGG8n30dbQoCnB/8u7cph4lDkLC1kZV0/twe3+rJFIgq9q6D/fm8/mHKzRZZIF8GxfMOpIMITbw==","shasum":"e5f4792091a4df4197f6fa0ce6f5f0a4a1a7c707","tarball":"https://registry.npmjs.org/@blujosi/rivetkit-svelte/-/rivetkit-svelte-2.3.13.tgz","fileCount":19,"unpackedSize":91613,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCGctcbXhHbTf0Stf1ZGy+zNWgw797VYgLxjq9NgQ4XmAIgV15IM/SELw5D/RxHWn3Thi2SGk6Wo3lL2XRnTUt2R9A="}]},"_npmUser":{"name":"blujosi","email":"joshua.oguche@outlook.com"},"directories":{},"maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/rivetkit-svelte_2.3.13_1775485220400_0.9846042902295702"},"_hasShrinkwrap":false}},"time":{"created":"2025-08-19T15:37:23.774Z","modified":"2026-04-06T14:20:20.684Z","0.0.1":"2025-08-19T15:37:24.059Z","0.0.2":"2025-08-31T11:06:12.737Z","0.0.3":"2025-08-31T11:16:25.287Z","0.0.5":"2025-09-03T08:16:23.368Z","0.0.6":"2025-09-06T05:24:21.926Z","0.0.7":"2025-09-06T05:26:54.074Z","0.0.8":"2025-09-15T18:28:37.025Z","2.1.0":"2026-03-03T14:44:15.241Z","2.1.1":"2026-03-04T06:07:50.062Z","2.1.2":"2026-03-04T10:33:57.809Z","2.1.3":"2026-03-04T11:48:53.676Z","2.2.0":"2026-03-06T15:34:52.917Z","2.2.1":"2026-03-07T12:20:09.615Z","2.3.2":"2026-03-21T10:02:57.753Z","2.3.4":"2026-03-21T11:57:53.730Z","2.3.5":"2026-03-29T15:19:44.677Z","2.3.6":"2026-03-29T22:35:33.704Z","2.3.7":"2026-04-01T08:48:48.761Z","2.3.8":"2026-04-02T09:53:08.930Z","2.3.9":"2026-04-02T10:11:41.226Z","2.3.10":"2026-04-02T10:16:04.823Z","2.3.11":"2026-04-02T10:26:16.928Z","2.3.12":"2026-04-02T15:42:11.097Z","2.3.13":"2026-04-06T14:20:20.550Z"},"keywords":["svelte"],"description":"A Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.","maintainers":[{"name":"blujosi","email":"joshua.oguche@outlook.com"}],"readme":"# @blujosi/rivetkit-svelte\n\nA Svelte 5 integration for [RivetKit](https://rivet.dev) that provides reactive actor connections using Svelte 5's runes system, plus a built-in SvelteKit handler for serverless deployment.\n\n## Installation\n\n```sh\npnpm add @blujosi/rivetkit-svelte rivetkit\n\n# or\n\nnpm i @blujosi/rivetkit-svelte rivetkit\n```\n\n## Overview\n\n`@blujosi/rivetkit-svelte` provides two main pieces:\n\n1. **Svelte 5 client** (`@blujosi/rivetkit-svelte`) — `useActor` hook for reactive actor connections with real-time events\n2. **SvelteKit handler** (`@blujosi/rivetkit-svelte/sveltekit`) — `createRivetKitHandler` to serve RivetKit as a SvelteKit API route\n\n## Features\n\n- **Svelte 5 Runes** — Built for `$state`, `$effect`, and `$derived`\n- **Real-time Actor Connections** — Connect to RivetKit actors with automatic state sync\n- **Event Handling** — `useEvent` with automatic cleanup\n- **CRUD Transforms** — Pre-built transform factories for managing lists via create/update/delete events\n- **Type Safety** — Full TypeScript support with registry type inference\n- **SSR Compatible** — Browser guard for SvelteKit SSR\n- **SvelteKit Handler** — Run RivetKit serverless inside your SvelteKit app\n\n---\n\n## Quick Start\n\n### 1. Define Your Actors & Registry\n\n```typescript\n// backend/registry.ts\nimport { actor, setup } from \"rivetkit\";\n\nexport const counter = actor({\n  state: { count: 0, countDouble: 0 },\n  actions: {\n    increment: (c, x: number) => {\n      c.state.count += x;\n      c.broadcast(\"newCount\", c.state.count);\n      return c.state.count;\n    },\n    getCount: (c) => c.state.count,\n    getCountDouble: (c) => c.state.countDouble,\n    doubleIncrement: (c, y: number) => {\n      c.state.countDouble += y;\n      c.broadcast(\"newDoubleCount\", c.state.countDouble);\n      return c.state.countDouble;\n    },\n    reset: (c) => {\n      c.state.count = 0;\n      c.state.countDouble = 0;\n      c.broadcast(\"newCount\", c.state.count);\n      c.broadcast(\"newDoubleCount\", c.state.countDouble);\n      return c.state.count;\n    },\n  },\n});\n\nexport const registry = setup({\n  use: { counter },\n});\n\nexport type Registry = typeof registry;\n```\n\n### 2. Set Up the SvelteKit Handler\n\nCreate a catch-all API route to proxy RivetKit requests through SvelteKit:\n\n```typescript\n// src/routes/api/rivet/[...rest]/+server.ts\nimport { createRivetKitHandler } from \"@blujosi/rivetkit-svelte/sveltekit\";\nimport { dev } from \"$app/environment\";\nimport { registry } from \"$backend/registry\";\n\nexport const { GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS } =\n  createRivetKitHandler({\n    isDev: !!dev,\n    registry,\n    rivetSiteUrl: \"http://localhost:5173\",\n  });\n```\n\nThe handler automatically:\n- Spawns the RivetKit engine in dev mode\n- Configures the serverless runner pool\n- Proxies requests to the registry's built-in handler\n\n#### Handler Options\n\n| Option | Type | Description |\n|---|---|---|\n| `registry` | `Registry` | Your RivetKit registry instance |\n| `isDev` | `boolean` | Enables auto-engine spawn and runner pool config |\n| `rivetSiteUrl` | `string?` | Base URL for the site. Falls back to `PUBLIC_RIVET_ENDPOINT` env var |\n| `headers` | `Record<string, string>?` | Static headers added to every request |\n| `getHeaders` | `(event: RequestEvent) => Record<string, string>?` | Dynamic per-request headers |\n| `runtime` | `\"default\" \\| \"cloudflare\"?` | Runtime to use. `\"default\"` uses the built-in registry handler; `\"cloudflare\"` delegates to `@rivetkit/cloudflare-workers`. Defaults to `\"default\"` |\n\n#### Cloudflare Workers Runtime\n\nTo deploy your SvelteKit app on Cloudflare Workers, set `runtime: \"cloudflare\"` and install the Cloudflare Workers adapter:\n\n```bash\nnpm install @rivetkit/cloudflare-workers\n```\n\nThen update your handler:\n\n```typescript\n// src/routes/api/rivet/[...rest]/+server.ts\nimport { createRivetKitHandler } from \"@blujosi/rivetkit-svelte/sveltekit\";\nimport { dev } from \"$app/environment\";\nimport { registry } from \"$backend/registry\";\n\nexport const { GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS } =\n  createRivetKitHandler({\n    isDev: !!dev,\n    registry,\n    rivetSiteUrl: \"http://localhost:5173\",\n    runtime: \"cloudflare\",\n  });\n```\n\nWhen `runtime: \"cloudflare\"` is set, the handler dynamically imports `@rivetkit/cloudflare-workers` and uses its `createHandler` to process requests via Cloudflare's Durable Objects. The SvelteKit adapter automatically passes `event.platform.env` and `event.platform.ctx` from the Cloudflare Workers environment. The `@rivetkit/cloudflare-workers` package is an optional peer dependency — it only needs to be installed when using the Cloudflare runtime.\n\n### 3. Create the Client\n\n```typescript\n// src/lib/actor.client.ts\nimport { createClient, createRivetKitWithClient } from \"@blujosi/rivetkit-svelte\";\nimport type { Client } from \"rivetkit/client\";\nimport { browser } from \"$app/environment\";\nimport type { Registry } from \"$backend/registry\";\n\nlet rivetClient: Client<Registry> | undefined;\n\nexport const getRivetClient = () => {\n  if (!browser) return { useActor: () => {} };\n\n  const origin = `${location.origin}/api/rivet`;\n  rivetClient = createClient<Registry>(origin);\n  const { useActor } = createRivetKitWithClient(rivetClient);\n\n  return { rivetClient, useActor };\n};\n```\n\n> **Important:** The client must only be created in the browser. The `browser` guard ensures SSR doesn't attempt a connection.\n\n### 4. Use Actors in Svelte Components\n\nThe simplest approach is `useActionQuery` — it fetches the value by calling an action, then re-fetches whenever an event fires:\n\n```svelte\n<!-- src/routes/+page.svelte -->\n<script lang=\"ts\">\n  import { getRivetClient } from \"../lib/actor.client\";\n  import { browser } from \"$app/environment\";\n\n  const { useActor } = getRivetClient();\n  const counterActor = browser\n    ? useActor({ name: \"counter\", key: [\"test-counter\"] })\n    : undefined;\n\n  // useActionQuery: fetches value, re-fetches on event\n  const count = counterActor?.useActionQuery({\n    action: \"getCount\",\n    event: \"newCount\",\n    initialValue: 0,\n  });\n\n  const countDouble = counterActor?.useActionQuery({\n    action: \"getCountDouble\",\n    event: \"newDoubleCount\",\n    initialValue: 0,\n  });\n\n  // Call actions through the connection\n  const increment = async () => {\n    await counterActor?.current?.connection?.increment(1);\n  };\n  const reset = async () => {\n    await counterActor?.current?.connection?.reset();\n  };\n  const doubleCountClick = async () => {\n    await counterActor?.current?.connection?.doubleIncrement(2);\n  };\n</script>\n\n<div>\n  <h1>Counter: {count?.value ?? 0}</h1>\n  <button onclick={increment}>Increment</button>\n  <button onclick={reset}>Reset</button>\n\n  <h1>Counter 2: {countDouble?.value ?? 0}</h1>\n  <button onclick={doubleCountClick}>Double Count</button>\n</div>\n```\n\nAlternatively, you can use `useEvent` directly for manual control:\n\n```svelte\n<script lang=\"ts\">\n  let count = $state(0);\n\n  // Listen for events (call at top-level, NOT inside $effect)\n  counterActor?.useEvent(\"newCount\", (x: number) => {\n    count = x;\n  });\n</script>\n```\n\n---\n\n## API Reference\n\n### Client Exports (`@blujosi/rivetkit-svelte`)\n\n#### `createClient<Registry>(url)`\n\nCreates a RivetKit client connection.\n\n```typescript\nimport { createClient } from \"@blujosi/rivetkit-svelte\";\nconst client = createClient<Registry>(\"http://localhost:5173/api/rivet\");\n```\n\n#### `createRivetKit<Registry>(url, opts?)`\n\nShorthand that creates both the client and the `useActor` hook.\n\n```typescript\nimport { createRivetKit } from \"@blujosi/rivetkit-svelte\";\nexport const { useActor } = createRivetKit<Registry>(\"http://localhost:5173/api/rivet\");\n```\n\n#### `createRivetKitWithClient<Registry>(client, opts?)`\n\nCreates the `useActor` hook from an existing client instance. Use this when you need access to the client elsewhere.\n\n```typescript\nimport { createClient, createRivetKitWithClient } from \"@blujosi/rivetkit-svelte\";\nconst client = createClient<Registry>(url);\nexport const { useActor } = createRivetKitWithClient(client);\n```\n\n### `useActor(options)`\n\nConnects to a RivetKit actor and returns reactive state. **Must be called at the top level of a component script** (not inside `onMount` or other callbacks) so runes attach correctly.\n\n```typescript\nconst actor = useActor({\n  name: \"counter\",             // Actor name from your registry\n  key: [\"test-counter\"],       // Unique key for this instance\n  params: { /* ... */ },       // Optional parameters\n  createInRegion: \"us-east-1\", // Optional region\n  createWithInput: { /* */ },  // Optional input data\n  enabled: true,               // Optional, defaults to true\n});\n```\n\n**Returns:**\n\n| Property | Type | Description |\n|---|---|---|\n| `current.connection` | `ActorConn` | Call actions on the actor |\n| `current.handle` | `ActorHandle` | Advanced actor operations |\n| `current.isConnected` | `boolean` | Whether the actor is connected |\n| `current.isConnecting` | `boolean` | Whether a connection is in progress |\n| `current.isError` | `boolean` | Whether there's an error |\n| `current.error` | `Error \\| null` | The error object, if any |\n| `useEvent(name, handler)` | `function` | Listen for actor events |\n| `useQuery(opts)` | `object` | Reactive query with transform — see below |\n| `useActionQuery(opts)` | `object` | Re-fetch query (event = invalidation signal) — see below |\n\n### `useEvent(eventName, handler)`\n\nRegisters an event listener with automatic cleanup. **Call at the top level of the component script, not inside `$effect`.**\n\n```typescript\ncounterActor?.useEvent(\"newCount\", (value: number) => {\n  count = value;\n});\n```\n\n### `useQuery(options)`\n\nCreates a reactive query that fetches an initial value by calling an actor action, then subscribes to an event to keep the value updated in real-time. This combines `useEvent` + an initial action call into a single API.\n\n**Call at the top level of the component script, not inside `$effect` or `onMount`.**\n\n```typescript\nconst count = counterActor?.useQuery({\n  action: \"getCount\",        // Action to call for the initial value\n  event: \"newCount\",         // Event to subscribe to for updates\n  initialValue: 0,           // Value before the action resolves\n  args: [],                  // Optional arguments to pass to the action\n});\n```\n\n**Options:**\n\n| Option | Type | Description |\n|---|---|---|\n| `action` | `string` | The action name to call for the initial value |\n| `args` | `any[]?` | Optional arguments passed to the action |\n| `event` | `string` | The event name to subscribe to for real-time updates |\n| `initialValue` | `T` | The value to use before the action resolves |\n| `transform` | `(current: T, incoming: any) => T?` | Optional function to merge incoming event data with the current value. For CRUD lists, use `crudTransform<T>()` |\n\n**Default transform behavior:**\n- **Plain objects** — shallow merge: `{ ...current, ...incoming }`\n- **Primitives & arrays** — full replacement\n\n**Returns:**\n\n| Property | Type | Description |\n|---|---|---|\n| `value` | `T` | The current reactive value |\n| `isLoading` | `boolean` | `true` until the initial action resolves |\n| `error` | `Error \\| null` | Error from the action call, if any |\n\n**Example with action arguments:**\n\n```typescript\n// If your getter action takes parameters:\nconst filteredItems = counterActor?.useQuery({\n  action: \"getItems\",\n  args: [\"active\", 10],     // passed as getItems(\"active\", 10)\n  event: \"itemsUpdated\",\n  initialValue: [],\n});\n```\n\n**Object state without custom transform (default shallow merge):**\n\n```svelte\n<script lang=\"ts\">\n  // Default: objects are shallow-merged, primitives are replaced\n  const gameState = gameActor?.useQuery({\n    action: \"getState\",\n    event: \"stateUpdated\",\n    initialValue: { players: [], score: 0, phase: \"lobby\" },\n  });\n\n  // If the actor broadcasts { score: 5 }, the value becomes:\n  // { players: [], score: 5, phase: \"lobby\" }  ← players & phase preserved\n</script>\n\n<p>Score: {gameState?.value.score}</p>\n<p>Phase: {gameState?.value.phase}</p>\n```\n\n**Object state with custom transform (e.g. deep merge for nested arrays):**\n\n```svelte\n<script lang=\"ts\">\n  const gameState = gameActor?.useQuery({\n    action: \"getState\",\n    event: \"stateUpdated\",\n    initialValue: { players: [], score: 0, phase: \"lobby\" },\n    transform: (current, incoming) => ({\n      ...current,\n      ...incoming,\n      // Append new players instead of replacing the array\n      players: incoming.players\n        ? [...current.players, ...incoming.players]\n        : current.players,\n    }),\n  });\n\n  // If the actor broadcasts { players: [{ name: \"Alice\" }] }, the value becomes:\n  // { players: [...existing, { name: \"Alice\" }], score: 0, phase: \"lobby\" }\n</script>\n```\n\n**Full replacement transform (override the default merge):**\n\n```typescript\nconst gameState = gameActor?.useQuery({\n  action: \"getState\",\n  event: \"stateUpdated\",\n  initialValue: { players: [], score: 0, phase: \"lobby\" },\n  // Always replace entirely\n  transform: (_current, incoming) => incoming,\n});\n```\n\n### `useActionQuery(options)`\n\nCreates a reactive query that calls an actor action to fetch data, then **re-calls the same action** whenever one of the specified events fires or the args change. Unlike `useQuery`, event data is ignored — the event is purely an invalidation signal.\n\nThis is the recommended approach for most use-cases: simpler, always consistent with server state, and no transform logic to maintain.\n\n**Call at the top level of the component script, not inside `$effect` or `onMount`.**\n\n```typescript\nconst count = counterActor?.useActionQuery({\n  action: \"getCount\",        // Action to call (and re-call)\n  event: \"newCount\",         // Event(s) that trigger a refetch\n  initialValue: 0,           // Value before the first action resolves\n});\n```\n\n**Options:**\n\n| Option | Type | Description |\n|---|---|---|\n| `action` | `string` | The action name to call |\n| `args` | `() => any[]?` | **Reactive** getter returning arguments. When the return value changes, the action is re-called |\n| `event` | `string \\| string[]` | Event name(s) that trigger a refetch |\n| `initialValue` | `T` | The value to use before the first action resolves |\n\n**Returns:**\n\n| Property | Type | Description |\n|---|---|---|\n| `value` | `T` | The current reactive value |\n| `isLoading` | `boolean` | `true` while an action call is in flight |\n| `error` | `Error \\| null` | Error from the action call, if any |\n| `refetch()` | `function` | Manually trigger a re-fetch |\n\n**Basic usage:**\n\n```svelte\n<script lang=\"ts\">\n  const count = counterActor?.useActionQuery({\n    action: \"getCount\",\n    event: \"newCount\",\n    initialValue: 0,\n  });\n</script>\n\n<p>Count: {count?.value}</p>\n```\n\n**Multiple invalidation events:**\n\n```typescript\n// Re-fetch whenever *any* of these events fire\nconst count = counterActor?.useActionQuery({\n  action: \"getCount\",\n  event: [\"newCount\", \"countReset\", \"countBatchUpdate\"],\n  initialValue: 0,\n});\n```\n\n**Reactive args — re-fetches when args change:**\n\n```svelte\n<script lang=\"ts\">\n  let filter = $state(\"active\");\n  let limit = $state(10);\n\n  const items = counterActor?.useActionQuery({\n    action: \"getItems\",\n    args: () => [filter, limit],   // re-fetches when filter or limit changes\n    event: \"itemsUpdated\",\n    initialValue: [],\n  });\n</script>\n\n<select bind:value={filter}>\n  <option value=\"active\">Active</option>\n  <option value=\"archived\">Archived</option>\n</select>\n\n<p>{items?.value.length} items</p>\n```\n\n**Manual refetch:**\n\n```typescript\nconst count = counterActor?.useActionQuery({\n  action: \"getCount\",\n  event: \"newCount\",\n  initialValue: 0,\n});\n\n// Programmatically re-fetch at any time\ncount?.refetch();\n```\n\n**`useActionQuery` vs `useQuery` — when to use which:**\n\n| | `useActionQuery` | `useQuery` |\n|---|---|---|\n| **Event data** | Ignored (just a signal) | Used directly via transform |\n| **On event** | Re-calls the action | Merges event payload into value |\n| **Args** | Reactive (re-fetches on change) | Static |\n| **Transform** | Not needed | Optional (default: shallow merge) |\n| **Best for** | Most use-cases | High-frequency events where refetch would be wasteful |\n| **Refetch** | `.refetch()` available | Not available |\n\n---\n\n### CRUD Transforms (`@blujosi/rivetkit-svelte`)\n\nPre-built `transform` factories for managing lists of items via create/update/delete events. Use with `useQuery` or `rivetLoad`.\n\n```typescript\nimport {\n  crudTransform,\n  createTransform,\n  updateTransform,\n  deleteTransform,\n} from \"@blujosi/rivetkit-svelte\";\n```\n\n#### `crudTransform<T>(opts?)`\n\nA unified transform that handles all three CRUD operations in a single function. The actor broadcasts events wrapped in a `CrudEvent<T>`:\n\n```typescript\n// In the actor:\nc.broadcast(\"taskChanged\", { type: \"created\", data: newTask });\nc.broadcast(\"taskChanged\", { type: \"updated\", data: updatedTask });\nc.broadcast(\"taskChanged\", { type: \"deleted\", data: deletedTask });\n```\n\n```svelte\n<script lang=\"ts\">\n  import { crudTransform } from \"@blujosi/rivetkit-svelte\";\n\n  interface Task { id: string; title: string; done: boolean }\n\n  // With useQuery (client-side) — T is the full state type (Task[])\n  const tasks = actor?.useQuery<Task[]>({\n    action: \"getTasks\",\n    event: \"taskChanged\",\n    initialValue: [] as Task[],\n    transform: crudTransform<Task>({ key: \"id\" }),\n  });\n</script>\n```\n\n```typescript\n// With rivetLoad (SSR + live) — T is the item type, data returns Task[]\nconst tasks = await rivetLoad<Registry, Task>(client, {\n  actor: \"taskList\",\n  key: [\"my-list\"],\n  action: \"getTasks\",\n  event: \"taskChanged\",\n  transform: crudTransform<Task>({ key: \"id\" }),\n});\n```\n\nIf the incoming payload is **not** wrapped in `{ type, data }`, `crudTransform` falls back to an **upsert** — it updates the item if it exists, or appends it otherwise.\n\n**Options (`CrudTransformOptions<T>`):**\n\n| Option | Type | Default | Description |\n|---|---|---|---|\n| `key` | `keyof T \\| (item: T) => unknown` | `\"id\"` | Property name or accessor used to uniquely identify items |\n\n**`CrudEvent<T>` shape:**\n\n| Field | Type | Description |\n|---|---|---|\n| `type` | `\"created\" \\| \"updated\" \\| \"deleted\"` | The operation type |\n| `data` | `T` | The item (or key value for deletes) |\n\n#### Individual Transforms\n\nUse these when you have **separate events** for each operation:\n\n##### `createTransform<T>(opts?)`\n\nAppends the incoming item to the list. Duplicates (same key) are ignored.\n\n```typescript\nconst tasks = actor?.useQuery({\n  action: \"getTasks\",\n  event: \"taskCreated\",\n  initialValue: [],\n  transform: createTransform<Task>({ key: \"id\" }),\n});\n```\n\n##### `updateTransform<T>(opts?)`\n\nReplaces the matching item in-place. If no match is found, the list is returned unchanged.\n\n```typescript\nconst tasks = actor?.useQuery({\n  action: \"getTasks\",\n  event: \"taskUpdated\",\n  initialValue: [],\n  transform: updateTransform<Task>({ key: \"id\" }),\n});\n```\n\n##### `deleteTransform<T>(opts?)`\n\nRemoves the matching item. Accepts either a full object or a raw key value.\n\n```typescript\nconst tasks = actor?.useQuery({\n  action: \"getTasks\",\n  event: \"taskDeleted\",\n  initialValue: [],\n  transform: deleteTransform<Task>({ key: \"id\" }),\n});\n\n// The actor can broadcast just the key:\nc.broadcast(\"taskDeleted\", taskId);\n// Or the full object:\nc.broadcast(\"taskDeleted\", task);\n```\n\n#### Custom Key Functions\n\nFor items keyed by something other than a single property:\n\n```typescript\nconst items = actor?.useQuery<Item[]>({\n  action: \"getItems\",\n  event: \"itemChanged\",\n  initialValue: [],\n  transform: crudTransform<Item>({\n    key: (item) => `${item.type}:${item.slug}`,\n  }),\n});\n```\n\n---\n\n### SvelteKit Exports (`@blujosi/rivetkit-svelte/sveltekit`)\n\n#### `createRivetKitHandler(opts)`\n\nCreates SvelteKit request handlers for all HTTP methods. Every incoming request to the catch-all route is forwarded to the RivetKit registry handler.\n\n```typescript\nimport { createRivetKitHandler } from \"@blujosi/rivetkit-svelte/sveltekit\";\n\nexport const { GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS } =\n  createRivetKitHandler({ isDev: true, registry, rivetSiteUrl: \"http://localhost:5173\" });\n```\n\n**Options:**\n\n| Option | Type | Description |\n|---|---|---|\n| `registry` | `Registry` | Your RivetKit registry instance |\n| `isDev` | `boolean` | Enables auto-engine spawn and runner pool config |\n| `rivetSiteUrl` | `string?` | Base URL for the site. Falls back to `PUBLIC_RIVET_ENDPOINT` env var |\n| `headers` | `Record<string, string>?` | Static headers added to **every** request sent to the registry handler |\n| `getHeaders` | `(event: RequestEvent) => Record<string, string>?` | Dynamic per-request headers. Receives the full SvelteKit `RequestEvent` |\n\n#### Passing Custom Headers (Authentication, JWT Tokens, etc.)\n\nThe `headers` and `getHeaders` options let you inject headers into every request forwarded to your RivetKit actors. This is essential for passing JWT tokens, session IDs, or any other authentication data from your SvelteKit application to your actors so they can verify and authorize requests.\n\nSince `getHeaders` receives the full SvelteKit `RequestEvent`, you have access to `locals`, `cookies`, `url`, `params`, and anything else set by your hooks or middleware — making it the ideal place to forward auth context.\n\n**Pass a JWT token from `locals` (set by your auth hook):**\n\n```typescript\n// src/routes/api/rivet/[...rest]/+server.ts\nimport { createRivetKitHandler } from \"@blujosi/rivetkit-svelte/sveltekit\";\nimport { dev } from \"$app/environment\";\nimport { registry } from \"$backend/registry\";\n\nexport const { GET, POST, PUT, DELETE, PATCH, HEAD, OPTIONS } =\n  createRivetKitHandler({\n    isDev: !!dev,\n    registry,\n    rivetSiteUrl: \"http://localhost:5173\",\n    // Forward auth token from locals (populated in hooks.server.ts)\n    getHeaders: (event) => ({\n      \"x-app-token\": event.locals.token ?? \"\",\n    }),\n  });\n```\n\nYour actors can then read `x-app-token` from the incoming request headers to authenticate and authorize the caller.\n\n**Combine static and dynamic headers:**\n\n```typescript\ncreateRivetKitHandler({\n  isDev: !!dev,\n  registry,\n  rivetSiteUrl: \"http://localhost:5173\",\n  // Static headers — same on every request\n  headers: {\n    \"x-api-version\": \"2\",\n    \"x-app-name\": \"my-app\",\n  },\n  // Dynamic headers — per-request, from SvelteKit locals/cookies\n  getHeaders: (event) => ({\n    \"x-app-token\": event.locals.token ?? \"\",\n    \"x-user-id\": event.locals.user?.id ?? \"\",\n    \"x-session-id\": event.cookies.get(\"session_id\") ?? \"\",\n  }),\n});\n```\n\nStatic `headers` are applied first, then `getHeaders` — so dynamic headers can override static ones if they share the same key. Both are set on **every** request that passes through the handler.\n\n---\n\n## SSR → Live Query Transport\n\n`@blujosi/rivetkit-svelte` supports server-side rendering of actor data that seamlessly upgrades to live WebSocket subscriptions on the client — **zero loading flash, instant first paint, then real-time forever.**\n\nThis uses SvelteKit's built-in [`transport` hook](https://svelte.dev/docs/kit/hooks#Universal-hooks-transport) to serialize actor query results across the SSR boundary.\n\n### How it works\n\n1. **`rivetLoad()`** in your `+page.ts` load function calls an actor action via stateless HTTP on the server\n2. SvelteKit's `transport` hook serializes the result across the SSR boundary\n3. On the client, `transport.decode` creates a live WebSocket subscription with the SSR data as initial state\n4. On client-side navigation, `rivetLoad()` detects the browser and creates the subscription directly\n5. Events from the actor push updates to the reactive query — no manual refresh needed\n\n### Setup\n\n#### 1. Add the transport hook\n\n```typescript\n// src/hooks.ts\nimport { encodeRivetLoad, decodeRivetLoad } from \"@blujosi/rivetkit-svelte/sveltekit\"\nimport { rivetClient } from \"$lib/actor.client\"\n\nexport const transport = {\n  RivetLoadResult: {\n    encode: (value) => encodeRivetLoad(value),\n    decode: (encoded) => decodeRivetLoad(encoded, rivetClient),\n  },\n}\n```\n\n#### 2. Use `rivetLoad()` in your load function\n\n`rivetLoad<T>` is designed for **collections** — `T` is the item type and `data` returns `T[]`. The default transform is `crudTransform<T>()`, so standard CRUD events work out of the box.\n\n```typescript\n// src/routes/todos/+page.ts\nimport { rivetLoad } from \"@blujosi/rivetkit-svelte/sveltekit\"\nimport { rivetClient } from \"$lib/actor.client\"\nimport type { Registry } from \"$backend/registry\"\n\ninterface Todo { id: string; text: string; done: boolean }\n\nexport const load = async () => ({\n  todos: await rivetLoad<Registry, Todo>(rivetClient, {\n    actor: 'todoList',\n    key: ['my-list'],\n    action: 'getTodos',\n    event: 'todoChanged',\n  })\n})\n```\n\n#### 3. Use the data in your component\n\n```svelte\n<!-- src/routes/todos/+page.svelte -->\n<script lang=\"ts\">\n  let { data } = $props()\n\n  // data.todos is already a reactive RivetQueryResult\n  // It has SSR data immediately, then upgrades to live updates\n  const todos = $derived(data.todos.data)\n</script>\n\n{#if data.todos.isLoading}\n  <p>Loading...</p>\n{:else}\n  <ul>\n    {#each todos ?? [] as todo}\n      <li>{todo.text}</li>\n    {/each}\n  </ul>\n{/if}\n```\n\nThat's it. The page renders with SSR data on first paint, SvelteKit preloads on link hover, and then the actor connection keeps data live in real-time.\n\n### `rivetLoad(client, options)`\n\nFetch actor data for use in SvelteKit load functions. Dual-mode:\n\n- **Server (SSR):** calls the action via stateless HTTP, wraps result for transport\n- **Client (navigation):** calls action for initial data, then creates a live subscription immediately\n\n`rivetLoad<T>` is designed for **collections** — `T` is the item type and `data` returns `T[]`. The default transform is `crudTransform<T>()`, so standard CRUD events work without specifying a transform.\n\n```typescript\ninterface Todo { id: string; text: string; done: boolean }\n\nconst result = await rivetLoad<Registry, Todo>(rivetClient, {\n  actor: 'todoList',\n  key: ['my-list'],\n  action: 'getTodos',\n  event: 'todoChanged',\n  args: [],                         // optional action arguments\n  params: { authToken: 'jwt-...' }, // optional connection params\n  // transform defaults to crudTransform<T>() — override if needed:\n  // transform: (current, incoming) => [...current, incoming.data],\n})\n```\n\n**Options:**\n\n| Option | Type | Description |\n|---|---|---|\n| `actor` | `string` | Actor name from your registry |\n| `key` | `string \\| string[]` | Unique key for the actor instance |\n| `action` | `string` | Action name to call for the initial value |\n| `event` | `string \\| string[]` | Event name(s) to subscribe to for live updates |\n| `args` | `unknown[]?` | Optional arguments passed to the action |\n| `params` | `Record<string, string>?` | Optional connection parameters |\n| `createInRegion` | `string?` | Region to create the actor in |\n| `createWithInput` | `unknown?` | Input data for actor creation |\n| `transform` | `(current: T[], incoming: CrudEvent<T>) => T[]?` | Transform incoming event data. Default: `crudTransform<T>()` |\n\n**Returns:** `RivetQueryResult<T>` — a reactive object with:\n\n| Property | Type | Description |\n|---|---|---|\n| `data` | `T[] \\| undefined` | The current value (collection of items) |\n| `isLoading` | `boolean` | `true` while loading |\n| `error` | `Error \\| undefined` | Error, if any |\n| `isConnected` | `boolean` | Whether the live connection is active |\n\n### `encodeRivetLoad(value)` / `decodeRivetLoad(encoded, client, transform?)`\n\nTransport encode/decode functions for `src/hooks.ts`. Wire them into SvelteKit's `transport` hook to enable SSR → live query upgrade.\n\n```typescript\n// src/hooks.ts\nimport { encodeRivetLoad, decodeRivetLoad } from \"@blujosi/rivetkit-svelte/sveltekit\"\nimport { rivetClient } from \"$lib/actor.client\"\n\nexport const transport = {\n  RivetLoadResult: {\n    encode: (value) => encodeRivetLoad(value),\n    decode: (encoded) => decodeRivetLoad(encoded, rivetClient),\n  },\n}\n```\n\n> **Note:** `decodeRivetLoad` accepts an optional third argument `transform` if you need to customize how event data is applied. By default, the transform is `crudTransform<T>()`, which handles `CrudEvent<T>` payloads (`{ type: \"created\" | \"updated\" | \"deleted\", data: T }`).\n\n### Multiple queries in one load\n\n```typescript\n// src/routes/+page.ts\nimport type { Registry } from \"$backend/registry\"\n\ninterface Todo { id: string; text: string; done: boolean }\ninterface Comment { id: string; todoId: string; body: string }\n\nexport const load = async () => ({\n  todos: await rivetLoad<Registry, Todo>(rivetClient, {\n    actor: 'todoList',\n    key: ['my-list'],\n    action: 'getTodos',\n    event: 'todoChanged',\n  }),\n  comments: await rivetLoad<Registry, Comment>(rivetClient, {\n    actor: 'todoList',\n    key: ['my-list'],\n    action: 'getComments',\n    event: 'commentChanged',\n  }),\n})\n```\n\n### Using with `useActor` for mutations\n\nSSR data gives you read access. For mutations (calling actions that change state), combine with `useActor`:\n\n```svelte\n<script lang=\"ts\">\n  import { useActor } from \"$lib\";\n\n  let { data } = $props();\n\n  // Read: SSR data with live updates (T[] collection)\n  const todos = $derived(data.todos.data);\n\n  // Write: useActor for action calls\n  const todoActor = useActor?.({\n    name: \"todoList\",\n    key: [\"my-list\"],\n  });\n\n  const addTodo = async () => {\n    await todoActor?.current?.connection?.addTodo({ text: \"New task\" });\n  };\n</script>\n\n<ul>\n  {#each todos ?? [] as todo}\n    <li>{todo.text}</li>\n  {/each}\n</ul>\n<button onclick={addTodo}>Add Todo</button>\n```typescript\n// BAD\nonMount(() => {\n  const actor = useActor({ name: \"counter\", key: [\"test\"] });\n});\n\n// GOOD\nconst actor = browser\n  ? useActor({ name: \"counter\", key: [\"test\"] })\n  : undefined;\n```\n\n### Don't call `useEvent` inside `$effect`\n\n`useEvent` manages its own internal effects. Wrapping it in another `$effect` causes duplicate listeners and broken state.\n\n```typescript\n// BAD\n$effect(() => {\n  actor?.useEvent(\"newCount\", (x) => { count = x; });\n});\n\n// GOOD\nactor?.useEvent(\"newCount\", (x) => { count = x; });\n```\n\n### Don't call `.connect()` on the connection\n\nThe connection is automatically managed by `useActor`. Calling `.connect()` sends an RPC action named \"connect\" to your actor, which doesn't exist.\n\n```typescript\n// BAD\nawait actor?.current?.connection?.connect();\n\n// GOOD — just call actions directly\nawait actor?.current?.connection?.increment(1);\n```\n\n---\n\n## License\n\nMIT\n\n---\n\nInspired by the Rivet core implementation for React and Next.js.\n","readmeFilename":"README.md"}