{"_id":"@marshallofsound/ipc","_rev":"44-a62b954edb33e6144e5d079688d4b0c3","name":"@marshallofsound/ipc","dist-tags":{"latest":"2.7.1"},"versions":{"0.0.1":{"name":"@marshallofsound/ipc","version":"0.0.1","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.1","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"c5af25220186bd3d925430077b3949a1af1cbc64","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.1.tgz","fileCount":72,"integrity":"sha512-8pV8cxCN41xTINBcyDRMS8wZFEF/h4l/dRmM167+irUightiaxd2OrBiZC+B0xLFEGrpGNDxj3XaYETcjQ5vyQ==","signatures":[{"sig":"MEUCIGhYpBowktZgYEBJnwkUP598AXKxtO0rJKiRAk9YLhjuAiEAlAYInHjFRAoqc7BjeV4Q/YjSGXiWQcraMAGitwI42G0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":220326},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"c5cff5530d16c803bc5ad7d07e979b58a94286d5","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","actor":{"name":"marshallofsound","type":"user","email":"samuel.r.attard@gmail.com"},"email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"10.9.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"22.17.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":"^18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.1_1751433673293_0.49076266996308937","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@marshallofsound/ipc","version":"0.0.2","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.2","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"12bbd9024f6d303383cf71cb8898de10280cd9f4","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.2.tgz","fileCount":72,"integrity":"sha512-fDX8SzC40LO6KP1YP+DneokhflUk/Wr5yaZ87V0ZeefTXPnfGN5DZeYOxvy2AL1GVZGMXXZZswxuOFfhzzPJ+Q==","signatures":[{"sig":"MEYCIQC0rOkroOGbzEKOxii1k+QS3/AtHaghm7nqNEP/+4xevAIhALXpY/jxXawntVgvSKWYs0BlsF8fq53BhYnOQ/yorE30","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":218182},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"0d596a414402afca5ce96c37dd1a6523c632d06d","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","actor":{"name":"marshallofsound","type":"user","email":"samuel.r.attard@gmail.com"},"email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"11.4.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"24.3.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":"^18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.2_1751439544774_0.6046114260242361","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@marshallofsound/ipc","version":"0.0.3","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.3","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"099283efe1e54c3eede307cb6946b5d812f65d2e","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.3.tgz","fileCount":72,"integrity":"sha512-SSkAbzHiZu81wwogvuaw8uL1I3Smxkxtb7ssCNpZ3n/hA25K+q+g8BAzochFqRZFjVGN2ZbkqgYiYB4pJqboYA==","signatures":[{"sig":"MEQCIECwpaNHu78FRlWiUYdOxXIXQ0OWgCxTy302HnUD0OXfAiBVQtYxS0PDHwaMbOQR6mYXjnJkzjXpkOhfhYbGqkfuoA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219465},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"54c92587691d31649dd17674643bc6d1568b4d2f","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","actor":{"name":"marshallofsound","type":"user","email":"samuel.r.attard@gmail.com"},"email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"11.4.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"24.3.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":"^18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.3_1751479337155_0.026947895548589784","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@marshallofsound/ipc","version":"0.0.4","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.4","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"fecd04535ab682f852c94e10d898ab314199fcc2","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.4.tgz","fileCount":72,"integrity":"sha512-9x+nsZZz8r5PAqROkphgG7UNduYIv9NrOPY0f201tPpysA7UMS8jnrTqRB3Q8TOdOu26FKIyT5LEsNL3HKYdcQ==","signatures":[{"sig":"MEUCIDGEFXvTbcRhGyaQ1E13F8wRw6xj/fkVifAYjohBvtkiAiEA2JHsYe6svmDx6AX+k9HOjpWRLhkDb9/lsEflKH96dyc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":219833},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"0b3a67156209f5e109841be35d8dfedcad0c707e","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","actor":{"name":"marshallofsound","type":"user","email":"samuel.r.attard@gmail.com"},"email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"10.9.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"22.17.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":"^18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.4_1751480588843_0.9725488955562782","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@marshallofsound/ipc","version":"0.0.5","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.5","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"41b73e60c75eb8b3e6cde3c273cd6c3abcd4fbfb","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.5.tgz","fileCount":72,"integrity":"sha512-6XX3SKGvN487gTSmK7Eam0Q2dyFaDkbzpSS2LQj5IpmneRD8UWMsvfhglKiRR+qnmk3/n4geJk4aWsozpBHl4g==","signatures":[{"sig":"MEUCIHbPjD0oWWjM5tiu7GUJEKSY0vFkhkbI1SvW+CwA5upRAiEArDLaE5m0bX3liNcjatU8KbQgAgjTmOOE8TDocKCldl0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230292},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"db9e863f773569bd810dbb8384a717a09a693669","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","actor":{"name":"marshallofsound","type":"user","email":"samuel.r.attard@gmail.com"},"email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"10.9.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"22.17.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":"^18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.5_1751486226248_0.800688602960117","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@marshallofsound/ipc","version":"0.0.6","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.6","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"fd91ba685f8e97c54484aa922e14aca4257d5d11","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.6.tgz","fileCount":72,"integrity":"sha512-71FjzKgbDVrf6uEvjU/GGAikG/aXHouEMcDZ6m9QCO5pSXICnklaUOi/wlZfrEri0wRUwC6WCQ1AT7feCg1N+g==","signatures":[{"sig":"MEUCIQCxdZCIyGQXvtArMkG9wPe1eJTcaoTrb/4CI7/TLWfg5AIgekY5p35dkeRDETSr3d8rI7/VC7mqq7djS7M5bzCooqE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":230364},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"c0dc08f229d6a9d6971eef80f5f5507a9c4b2a4c","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","actor":{"name":"marshallofsound","type":"user","email":"samuel.r.attard@gmail.com"},"email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"10.9.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"22.17.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":"^18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.6_1751486767334_0.7234796362734239","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@marshallofsound/ipc","version":"0.0.7","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.7","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"0d7aa95bbae3e06a8d710150b938967c37a19612","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.7.tgz","fileCount":84,"integrity":"sha512-tcUECf61NVD7vecPWYbyYWKlZrZtsVXXw9JDjRxzqK3grBLbqueqTvO7NZfoRgfBy7upFkGh1qHKtRmJiJes4g==","signatures":[{"sig":"MEYCIQC741vRGiQt6LBjsBwEAtFKnRZrS53boVGSl5Dv5y7rnQIhALBnQ8fNVAPVJ3yJnw9lDRydZTWqB4ZnPJF/pyblWHo5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":261877},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"d480bf51d7a380f2edbe254f51c0cf9309b33549","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","actor":{"name":"marshallofsound","type":"user","email":"samuel.r.attard@gmail.com"},"email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"10.9.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"22.17.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":"^18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.7_1751532792803_0.23665723004043504","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@marshallofsound/ipc","version":"0.0.8","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.8","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"8e65f64b65a48960a70b3ae03f6fba8a82967ad7","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.8.tgz","fileCount":84,"integrity":"sha512-gtS7ilZ6Ux9zU8wWxf7xRstTYQUA0wB6M6IHKBm0PJkUUbn9r/6TiKXdDKSE8q2p6iBSRRU1OEksdC/IQOtxSA==","signatures":[{"sig":"MEYCIQD2XwnCBKlp/qc4kzVXemD0eFcAwMBJEXsjjd3vEdjlVQIhAIQLLEkAGsSKqq8TZM8oYGzBROB52CTeSuggNzJj6Rj5","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263452},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"5b13682de6a122d430fcb30c101f66972f59f35b","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","actor":{"name":"marshallofsound","type":"user","email":"samuel.r.attard@gmail.com"},"email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"10.9.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"22.17.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":"^18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.8_1751731224760_0.4226527977006864","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@marshallofsound/ipc","version":"0.0.9","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.9","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"a85abf9267666870d93d551205c8bb94df66f64f","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.9.tgz","fileCount":84,"integrity":"sha512-LUXP2p8/ziUKPjCnn+QAIm/rOONSi5ZM88usyD0KIMpEbg0Uxo6C5bY1N8QpjTp2RcH09+CMm2THgnLwhuezbQ==","signatures":[{"sig":"MEQCIAlK4p0p+gpj2iz1o/84hMH/DjqAeksSdDAVynp8NFtXAiBP79hDSoirR/0BrXEdkmbKSTlwtvRS08Iy8mJYCU36IA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":263726},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"c1704cb175864ed8e22d0e1a901a6c977a7bb8eb","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","actor":{"name":"marshallofsound","type":"user","email":"samuel.r.attard@gmail.com"},"email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"10.9.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"22.17.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":"^18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.9_1751731432636_0.30623798778395384","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@marshallofsound/ipc","version":"0.0.10","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.10","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"cf26c11f184ea660dd2514f0b428921cb181fd05","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.10.tgz","fileCount":162,"integrity":"sha512-G/GSIr9d9Ff2llmOY4iGmgLW3QKdt1/j3MWQKg+Awm/BGbIzdq/Pm7rM8mH6ioBeXF2y5TjOSnFJKFYp8WA9/g==","signatures":[{"sig":"MEUCIHqpzhLthFQ3bRWxE37lRZTGkjh2pGgotXRCD2vyvxDyAiEAykbkDDp6hq6ilo6kicA0xy+IextgSGDA85jdr8/8X80=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":641989},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"5cfea3af03535b64288e7fa899be870c14d1b4dd","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"10.9.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"22.17.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.10_1752786845070_0.2600741675569971","host":"s3://npm-registry-packages-npm-production"}},"0.0.11":{"name":"@marshallofsound/ipc","version":"0.0.11","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.11","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"73d805f126142e8b8d147065134d154ab5f47772","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.11.tgz","fileCount":162,"integrity":"sha512-2mZJK/tez1n0p4X+mfWYcd/lS4GJWLHKtFL+HqTz08WO47KlhxZxcK0Q+LOuU5vgMjdYu8GZXzJM22eHJJnI+Q==","signatures":[{"sig":"MEUCIQDIlOPfvWurVBQ5IvFUIPXdOJof863VZTvig0/9l/67wgIgOcTuMiE/Wz94YyJ198yPXyfYw9e/mIDDqC4rGRuqpCA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":597146},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"049f2c9234351d5041b1e0fb238ae0159da00fdb","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"10.9.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"22.17.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.11_1752861883633_0.3893529873853703","host":"s3://npm-registry-packages-npm-production"}},"0.0.12":{"name":"@marshallofsound/ipc","version":"0.0.12","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.0.12","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"0d5306dc667d0e81da71a58e876356d0bc8f3eee","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.0.12.tgz","fileCount":84,"integrity":"sha512-bwSlfd2PzcyUmR7TomnHc6n8RwbdXu2PXgO7mIf3v6FNb+CjmGj9lQkBZTIkq5EP1D+wPJWyOGymAJWw0gLQog==","signatures":[{"sig":"MEUCIDhosuY54mLDFK4ClVVGM+54E0+YrAq03nquIF4+a84CAiEAhXLstl87PpCyDkrpzL5oFGtfTXXcMvtQliSXlaDfoNQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":268973},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"a1c061be83e6450d922786bef6ccdb0909235d28","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"11.5.1","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"24.6.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.0.12_1756511933487_0.7663782674481583","host":"s3://npm-registry-packages-npm-production"}},"0.1.0":{"name":"@marshallofsound/ipc","version":"0.1.0","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.1.0","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"cbe58846a263db4473f7e3f9b9e52db91ad78137","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.1.0.tgz","fileCount":84,"integrity":"sha512-Nq1HAd3An/+LXJ2pH923WFkXpbIjlJksNmLdeE6CreGXLNlTlUzP8RM+EQ3OyTFvZwM1zrNwhK4Xhpj0ekdVRA==","signatures":[{"sig":"MEUCIQDcKmNfZfDZhtTU+5xFACpG68k7OZTH7Xl6P0Un2CNKLwIgZASZMUt4u8j1Z5Zgz3tXzSJdUFd6qXU53ZKjZIyk0sM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270134},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"a1fc4deab78ec37155e5cec5412619532e72f7c6","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"11.6.0","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"24.8.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.1.0_1758818733910_0.6287441358372301","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@marshallofsound/ipc","version":"0.1.1","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.1.1","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"68fbfb891576ef4bf77b27c6c369f2f4d479a93f","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.1.1.tgz","fileCount":84,"integrity":"sha512-LTPv5Htj4Bjhvvu6yx1SMrTIz+VKkm2IY/mqFh4uViI8X5frlQ1aJWv44X+WXmIzUjg8TyLSGCeTMnRDQw97RA==","signatures":[{"sig":"MEUCIQCJytmssu1jwbj7Q8RloAAAM6CurYc9J2no4s3+0z3/6AIgREQDV5PwRT7gdi23wjsx41YdXZrTOOWhv5x6TNMFvNc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":270670},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"6b9a16cff51b59f31a019bc1b49a3df6a2bb80d9","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"11.6.0","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"24.8.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.1.1_1758836882672_0.8301355083218425","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@marshallofsound/ipc","version":"0.1.2","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@0.1.2","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/electron/ipc#readme","bugs":{"url":"https://github.com/electron/ipc/issues"},"dist":{"shasum":"53ff02916f1e5ea2612682e92d84b76c8f02aaf2","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-0.1.2.tgz","fileCount":84,"integrity":"sha512-H+ghxWH32Iv/zsFDhn/bRUoRW8X+xmkKtAJPca9P/jI1X8LBxjnjHGyZ2K+zdgnciJDDetACpfCiD4AkpIyDYw==","signatures":[{"sig":"MEYCIQC96CHnd6JdsXVeSKG336xMM8gH6AceqbDsGtD9suYoCgIhAIPCLglm2e8Wgb3FUwhb0YeHx/dgXd3JpeupIH/d4hhP","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":272576},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"8cb9692feb00e59d9ff0d96a93053e16368f3682","scripts":{"build":"tsc && tsc -p tsconfig.esm.json","prettier":"prettier --check \"src/**/*.ts\"","prettier:write":"prettier --write \"src/**/*.ts\""},"_npmUser":{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"},"repository":{"url":"git+https://github.com/electron/ipc.git","type":"git"},"_npmVersion":"10.9.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"_nodeVersion":"22.17.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"packageManager":"yarn@1.22.22","devDependencies":{"electron":"^36.4.0","prettier":"^3.5.3","typescript":"^5.8.3","@types/node":"^22.0.0"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_0.1.2_1762461029817_0.25681646991727036","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@marshallofsound/ipc","version":"1.0.0","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@1.0.0","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"dist":{"shasum":"33e3ccb05fdf41209ac83416bca2387123a2c303","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-1.0.0.tgz","fileCount":84,"integrity":"sha512-XeaVUYfQIRi7uZPEV8szUpESfEY8xm4UUfDEO7HvUYM+6gaSCZDteUaew6PaCbk2dXqWdW4ek/DbG7aIUPnQcA==","signatures":[{"sig":"MEYCIQCyLR1XwXtbEUVXz299LJcY/+XRflUZBnzm1Hph+AMTuAIhAMVJBLvXanQp0VqrnCO0yLdYHOkatHzt7jzN0jD5BxMb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":327631},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"9b0272f50a93f46e4621c5c4d332319e1479542e","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"tsc && tsc -p tsconfig.esm.json","prepare":"husky","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","test:watch":"vitest","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_1.0.0_1766223965259_0.2410597568306747","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@marshallofsound/ipc","version":"1.0.1","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@1.0.1","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"dist":{"shasum":"237332f422f6796cea920e0a55393953995de34d","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-1.0.1.tgz","fileCount":84,"integrity":"sha512-rgRRxYxM1Wvi0nZYzoRFr2RQOJNl6YMB+wqXmP5qCpILmz3AtMdtzjSyLOedwLP65qK8aeKR0aOmvdaGTgCZGw==","signatures":[{"sig":"MEUCIQC6OTg8rc1IhLdRhsSgEPvaGd1n5Ri6pRoYYtNUVMaQjAIgSANDbCmQqmX15PjsRIuXCWadJvSBCv6CwMs0ym8VDX0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":328937},"main":"dist/cjs/index.js","types":"./dist/cjs/index.d.ts","module":"dist/esm/index.js","gitHead":"5a688903d172392e1ea94a153515c5df5c205bbd","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"tsc && tsc -p tsconfig.esm.json","prepare":"husky","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","test:watch":"vitest","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"peggy":"^1.2.0"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_1.0.1_1766225199222_0.5305482329870936","host":"s3://npm-registry-packages-npm-production"}},"2.0.0":{"name":"@marshallofsound/ipc","version":"2.0.0","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.0.0","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"dist":{"shasum":"718576917a300f413fb4978c2887ce3bb6106d78","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.0.0.tgz","fileCount":51,"integrity":"sha512-s0QUulQntZ2D7Di71A5bUNaw6gHbjdlj8sDDurYe7r5+RRzUra3HD6e6sV/KLEfCQJGJo+VojXQrEiLRAv4QsA==","signatures":[{"sig":"MEUCICPAENQEQ/URpYHTkc/LKKZqmJ5JmfJubXz66DdElygfAiEAsI2miuLYbqoEnxC8G1uPUq14kwGTzzTs5+V6xfkEfIk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243144},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"5b5dcf1f17fba3ea6b64bb863d649f071fd14d88","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","test:watch":"vitest","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.0.0_1766282104138_0.8482287027168571","host":"s3://npm-registry-packages-npm-production"}},"2.1.0":{"name":"@marshallofsound/ipc","version":"2.1.0","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.1.0","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"dist":{"shasum":"67bdcde350bc7095ad5a1ebf890d82df835408ee","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.1.0.tgz","fileCount":51,"integrity":"sha512-2cQrQx6iIRjmGH9yDTB8qDMgB1CvKW47W2jChaJMbKt/iQWYssJ0/sHQjV5uC+nH6HIuK42vg5srU/vYHreAfA==","signatures":[{"sig":"MEYCIQDQPrIGBWrVyoCV9LeFgDwycy+ZcrMWB0epO3WLYVP/mAIhAML9j7VstwSgxk3daaq1msHJ9xmVq/kN+/tIzjnle7Fc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243248},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"104cdc323baf54763f4490fd278709fad3b41d7a","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.1.0_1766289105059_0.5218022821413928","host":"s3://npm-registry-packages-npm-production"}},"2.1.1":{"name":"@marshallofsound/ipc","version":"2.1.1","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.1.1","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"dist":{"shasum":"c6b16924c89376e53f9b01982f93d450306e7c7d","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.1.1.tgz","fileCount":51,"integrity":"sha512-UHCE5DHIZjSB85EtNHYJsSU99UP7wPUhUsxQeObxfP7lAPIskvPEKvFD0bPOM9SGtFa0ZOK/mrMR9aqi/abd9w==","signatures":[{"sig":"MEYCIQDb+n8FAaALXwF5quxA/Oplf5OiPVbpsCWowUp3IWFKZwIhAKe5X3zPz2G3lMng0nKw8/idvCFFsxRsJ5tdbrPlEtVn","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243248},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"1d9be7184c3721b4b8186655122f7741e1d37855","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.1.1_1766289357323_0.4318594407187899","host":"s3://npm-registry-packages-npm-production"}},"2.1.2":{"name":"@marshallofsound/ipc","version":"2.1.2","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.1.2","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"dist":{"shasum":"4a5861f867ff37d5ef97bfd6c466f53953f07584","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.1.2.tgz","fileCount":51,"integrity":"sha512-C/5VI1q41ky3KpUyK8O2zUHeRB4ukC2KqoqP/Id6PHIZPfVuHT+CRjmvasw1xlp/8H9R0Pi1qOR4PiDNmgYL8A==","signatures":[{"sig":"MEUCID3ctZKFRiIlJJ43tdTpefhHxCmcEBjLFP6jM437jH6hAiEA9XTmq4CGikq8XD/YX6a1sp9WpOu6w7ARd6y73gG/auo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243248},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"be1c01ac864e5133b9a2551522e52fd8b0ab63ae","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.1.2_1766289775970_0.8352600493948565","host":"s3://npm-registry-packages-npm-production"}},"2.1.3":{"name":"@marshallofsound/ipc","version":"2.1.3","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.1.3","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"dist":{"shasum":"3f2854b2f4c541b7e6a480501ce46f8a6c5cf9fa","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.1.3.tgz","fileCount":51,"integrity":"sha512-Pmb7M/BLgXOGTv02vnUU6lVXNqitpjIejgirnUGlGA3PXV1Gc0qREFL9JVPO3U/YvJG9eCaAIVi2a/kMshodjQ==","signatures":[{"sig":"MEUCIQDCn5haymXVq5xTTcCpmVF+NnKrwlUHbxkyXSba+dxoZAIgYwT7VZC/P4USISYdM8ZM7yGbxECK1peo7z+FKfjWEok=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.1.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243248},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"7f4d8ba73e071571451208db19161cae5ac7b257","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.1.3_1766293645744_0.6464269571288899","host":"s3://npm-registry-packages-npm-production"}},"2.1.4":{"name":"@marshallofsound/ipc","version":"2.1.4","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.1.4","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"dist":{"shasum":"561dff15b7ce4df1af141f0a24fd769f7db693ea","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.1.4.tgz","fileCount":51,"integrity":"sha512-lj6iKfoeaAB4SaNrbemnnv9z12gGtLREAqXmmVO8Gf+Z5VCywSXsCysgJEa482vWz/ar66DiuQ1h5xqTN/1FAA==","signatures":[{"sig":"MEQCIB7c6AuhBC7JQHpkQCMPB32f2cmrDgr0qDvJCiFsLxzUAiBbmFjLHpnRw/BAaC6OJRQkmF3FIYnv2JC3p2CebWmG5Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.1.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243248},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"4e019be6abe6367447b162aaf06d73e5a89670d0","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.1.4_1766293948967_0.9508703345711025","host":"s3://npm-registry-packages-npm-production"}},"2.1.5":{"name":"@marshallofsound/ipc","version":"2.1.5","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.1.5","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"dist":{"shasum":"7750eb450498012d796f7f4477b50ba8715f836f","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.1.5.tgz","fileCount":51,"integrity":"sha512-Oro7aSuQilYP8yM2o2uzwyu7C54JLN/IpxQ0yLHmhM8PLKIFf52qxchrmdLqQST8OVAtirFyZqnFKUbiCCHwlA==","signatures":[{"sig":"MEQCIGBEbtqp2FONSI3Zz8okwYXWqkchuiM4Khy1lR/V3L73AiBNBGkQiyqAvVCo6DVT7zPE5l/6DpS0Q155ZVAoAycV+Q==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.1.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243360},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"d0c4189231071b9e49b599940950e1c2467baf8d","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.1.5_1766307652837_0.588376163444571","host":"s3://npm-registry-packages-npm-production"}},"2.1.6":{"name":"@marshallofsound/ipc","version":"2.1.6","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.1.6","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"dist":{"shasum":"9a7ad7aa750f901cb7edc61c6d36d7b1cf048477","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.1.6.tgz","fileCount":51,"integrity":"sha512-39xngXDd4kzhz1X+NkHZ/NER13PSYvAsnV+22+v/2qFuH3UgRzh7AoteGaYd6T7T0cHgby95r9p1Q3l5jfV4EQ==","signatures":[{"sig":"MEYCIQCMLL2ClUo7ntAjmicF4V9U9mgfYTs8GPH2XE52ECgIMQIhAJEXr2AJRVv/ihQBpxWwOy7j4R9bldMr5u1VqFkiK/Iq","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.1.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":243360},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"6f4e42d72571189d5c944ce622a7bf2cd28eece9","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.1.6_1766308657107_0.9635409057999242","host":"s3://npm-registry-packages-npm-production"}},"2.2.0":{"name":"@marshallofsound/ipc","version":"2.2.0","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.2.0","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"a0efafe15868495926379ac0d9a38094a4a126c3","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.2.0.tgz","fileCount":54,"integrity":"sha512-hP7F/xY4s3yX/9Liw/OP1aY9VkKnz7CB1lTyjSQI9H+Woe5W9eHiyq1jdTle7lMr20oYezgKZiOpPdGYT8WQqw==","signatures":[{"sig":"MEYCIQCtedUCVsA6+xPGwL6cPn5VrBj3TjQW2fTk7gGVCv729gIhALm5U7kvh4cONZsxIZa6Bfxb3aUyd20XmcFkykq4sIMx","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244917},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"23d321549c0a84ae73f576a885cac7a37cd024ab","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.2.0_1766311109066_0.8076391924719544","host":"s3://npm-registry-packages-npm-production"}},"2.2.1":{"name":"@marshallofsound/ipc","version":"2.2.1","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.2.1","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"8fc554808afeb1b7a254296071e59d272200f838","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.2.1.tgz","fileCount":54,"integrity":"sha512-N7f4BruZfob7h0J18OOSy5tGq6Qw7pfR7P/q1d4WAG9NQO4vmxATIj/R7F6hQdrS2wvg1L2Mr48IIkv/eUIMIQ==","signatures":[{"sig":"MEYCIQDUZS0sNHTNH8rhLgqBiALYr5/w6Gqd1sUcVO/3a+0I9AIhAIvbItvdzh3kbI5xAi6c1aMLt96keJIVTDU33xJkhJG4","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244917},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"32339755a16964c3c5abe7fd6dc0b4813167e81f","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.2.1_1766311497599_0.6064618196986455","host":"s3://npm-registry-packages-npm-production"}},"2.2.2":{"name":"@marshallofsound/ipc","version":"2.2.2","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.2.2","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"474409733bdcd88abfb02fc076b76be263483956","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.2.2.tgz","fileCount":54,"integrity":"sha512-g+iaEcxbULY4gpcaFojB37i8bmex3CpZzBIhyOCL0xsdKHDnsPZk5FGYA8JMsn0dzYEhVXwSgKwrOreKr5+pHg==","signatures":[{"sig":"MEUCIQDJ3jzGEXRBirwhNk4Pc6tSjsRQYN5e2fx9JKgRKZSPOQIgDOWQWy31tZ+N+EwXkLJBfoZmAZd+CCU0uenom86CYds=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.2.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":244917},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"a19f1ecd99677add5e16b8a3d0feb285c22594d0","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.2.2_1766312371380_0.978097572054123","host":"s3://npm-registry-packages-npm-production"}},"2.3.0":{"name":"@marshallofsound/ipc","version":"2.3.0","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.3.0","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"456f58bfa70187a0d7931054ac5faf077792a895","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.3.0.tgz","fileCount":54,"integrity":"sha512-QGnGzIMAGOy5G13ngUy9861i7KZsuEIESLdB8qPAPaI0KU+giTlD+27P+ccJgq06EHzaDlVqzuh1nZ9QfYifLQ==","signatures":[{"sig":"MEQCICYOmlAn2TbY01DXNcq3gWKnrfa1HxR1BXmahZ5xoL8PAiA2E8F6d//+yawAx08PD7/2kBlPI6h9ag76N9LG75W8lg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":256508},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"b2a6aae2035311dd3e78b00d6aecf64686df3e9f","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.3.0_1766359363640_0.17054198704795853","host":"s3://npm-registry-packages-npm-production"}},"2.4.0":{"name":"@marshallofsound/ipc","version":"2.4.0","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.4.0","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"79e5c0f5594fc9a300e3b0fa31a8a69ff4cbd050","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.4.0.tgz","fileCount":54,"integrity":"sha512-5RKF0vvF6pb/MllSji7N1zZZmqODAva7GPXyqIFxiy/aMzHI5FK3fSIRY0IRnUxIhajAAgKxvY3E1euhfHxB6A==","signatures":[{"sig":"MEUCIQCPquOLFCa4MC0Lavp6QtP6SrDUyM3+RWJBX4yigMSywAIgKB+oFEs3Ts9DSnKGb13ArY0h90tjmu7WaGNOl2XhWjc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":270122},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"dfe556c3b948d708a2db838ccc9c6e820faafa44","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.4.0_1766366115842_0.4378578821679735","host":"s3://npm-registry-packages-npm-production"}},"2.4.1":{"name":"@marshallofsound/ipc","version":"2.4.1","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.4.1","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"ac75d9874e612827a96ff8350d95af6cde22378e","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.4.1.tgz","fileCount":54,"integrity":"sha512-14wDE2Z607awLGFtZInnQoDU4cu8hCersKVHps2XAtegtMXXeNhKd9AYjvBgmRfR/aTfiR1lxN79IirdzHiKwg==","signatures":[{"sig":"MEYCIQDzQCfLo39AY4D2TWh4+4cYMRp0veecuoEioI2E5L4iQAIhAJn5OvbadqQudasCspT72F/IkdDPZ0z43Th+iZF0Y4Ik","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.4.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":270122},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"ddb20c35a053b6a67252bedcf4e188fb1ba3d363","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.4.1_1766952873733_0.5301472406530716","host":"s3://npm-registry-packages-npm-production"}},"2.4.2":{"name":"@marshallofsound/ipc","version":"2.4.2","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.4.2","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"9f30c0f7117232a13bf7143485fc938e74c3f78c","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.4.2.tgz","fileCount":54,"integrity":"sha512-8Ap/k/w509tvl1AnFlw8R50ILx0zoETLi74CBhIxsl97AFK31M9EzmfW7SigbGBMp8BQ3yKlBlf4U80FPiJFVA==","signatures":[{"sig":"MEUCIBdfxLMp+ejhKOSECWWO3/OS2TrZ1MGVCsg9mlgSip5OAiEAzlwza84ZxJnjLN3q9ZFAaEoFG5XNPqYBgaOlK6nkNaM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.4.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":270249},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"666b30a25532bb568801d166f45cde72832842f9","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.4.2_1767056206652_0.6412149437370673","host":"s3://npm-registry-packages-npm-production"}},"2.4.3":{"name":"@marshallofsound/ipc","version":"2.4.3","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.4.3","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"f001ebaa804efe1ce903b9308c7124bc308bab62","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.4.3.tgz","fileCount":54,"integrity":"sha512-+9sY0qlr8I6DADnESuitxCfYntIBmS46KtjbYfvLd9xOfLMQ3r719e72JZex5/m39SJz9tsWQc/ZUagWZA/8YQ==","signatures":[{"sig":"MEYCIQCb5f8BzMCi00fmx9vTae71YaMGHzK/xRUQ+MuFjdxpQwIhANLfKqZieOyajEE8czlYSJDQdamiXyUzXgPreZIwrr7b","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.4.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":270387},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"b1f84d3aed048af61d17606faa01140a96a78bf5","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.4.3_1768277957146_0.5402480024383514","host":"s3://npm-registry-packages-npm-production"}},"2.4.4":{"name":"@marshallofsound/ipc","version":"2.4.4","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.4.4","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"0bc9c940062565dd5c0c064532d411f35739cd75","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.4.4.tgz","fileCount":54,"integrity":"sha512-lHs94L21s3oOV7ntYaH/ETsREw2T7GbBLVt4crfr/hMoKKKNrgKnRrm+EynVZMaEBV4tkgNBCmxSW0vkK+hjbg==","signatures":[{"sig":"MEUCIQCFf3CrqC3xV84swqGhSPyciyOt5wCI7G691l4A+Bh6BwIgasFB5BSMIpXXl1rrud88rAoLoNpwWoCYmxkDUw4c9Gs=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.4.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":270376},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"c5e39aebacb69a05b7142c4147a5fc2f6a9a875a","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.4.4_1768326482254_0.8324276361834215","host":"s3://npm-registry-packages-npm-production"}},"2.4.5":{"name":"@marshallofsound/ipc","version":"2.4.5","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.4.5","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"780e11615d94d72ca50b85fb2c6a5ec1ccf045bd","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.4.5.tgz","fileCount":54,"integrity":"sha512-RogCGeRHNoJ2ZcfEK84l+jNZLQRjDzPz45NY4L5WELAXFaRVIN5xpg6rT8PAxQUYI1KfSZEPUtfuRj/4/3bDow==","signatures":[{"sig":"MEUCIQDPu9ISn2o1FnvpAm5p50eH6BpGR7ogAlO8M2dmJcPsFAIgb25PgbUtSQDDShZz6ajPcjFknwrDOQGJrEKT09f4P6s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.4.5","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":271110},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"06fd99e5411f0080aed8abed78036dd3e506c862","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.4.5_1768328243407_0.23808740696814779","host":"s3://npm-registry-packages-npm-production"}},"2.4.6":{"name":"@marshallofsound/ipc","version":"2.4.6","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.4.6","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"87dec9b32826266b8a96da87531b29b06921f1a1","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.4.6.tgz","fileCount":54,"integrity":"sha512-kcNNKGqRN+ON/oLH9UuZqfjwwRYwSwMCSD2tpMXI6TL2195eToAh6kguWNGrQAZYibYGHz0hspTYjbCzNQFXQA==","signatures":[{"sig":"MEUCIAydz6+P8dIwrbrLRqaUxMpXfY23qLnWV/B1b5QPf9QrAiEAu/qWiJrA1NfZ4UpLpUzkjy36WZEnKjjTPkSkNNnA9Fw=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.4.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":272060},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"064c411c47c9f43aeeb6aa2a97034e24bdaace57","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.4.6_1768344063798_0.8168922224546824","host":"s3://npm-registry-packages-npm-production"}},"2.5.0":{"name":"@marshallofsound/ipc","version":"2.5.0","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.5.0","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"a307cda975f1665aa24e1ce0da29b58b15399594","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.5.0.tgz","fileCount":54,"integrity":"sha512-EvZrN4jUCaGFkRvRIhBdxicGkcI1fqxL+FlX82K1e+3TszXjD1i5GRI2PrDiSo+AHx9zXhVrEVmOuSOv7AYfdA==","signatures":[{"sig":"MEYCIQD9+LiSeEgEASp4BgNmveoGLWPIAS9sGPWZAq1V9Zd+HAIhAJaP68DSX+GER1FDLpMXW/8gHeOTVmtMdlKd7hVcQrBc","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":275566},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"af95d48e08ab521c6ec8495af1d3bc319e8b8cbd","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.5.0_1769031110288_0.5586778747502483","host":"s3://npm-registry-packages-npm-production"}},"2.6.0":{"name":"@marshallofsound/ipc","version":"2.6.0","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.6.0","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"7f57bcecdf71cad99752c4fcc2b7225aadf445bb","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.6.0.tgz","fileCount":54,"integrity":"sha512-hINI/uu4HaZycWooEXijCBTwrRSR2CPKXuXV3z5nIaIaAxnDY9rli/IIR77oF+3OnJGxQqoPngvEUmpNDiggPQ==","signatures":[{"sig":"MEUCIDW6OP0fv/fcVUuel4qdw0yHGd9GOBcWA25lq3FMMZNIAiEA2ow7Qwz17EmJYuSX3kifDCByaDHKL3CFFT5Coj37Nek=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":276875},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"539c12c66d9272f473c8174d0cadee8dc11690ac","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.6.0_1769109798294_0.5103700914710323","host":"s3://npm-registry-packages-npm-production"}},"2.6.1":{"name":"@marshallofsound/ipc","version":"2.6.1","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.6.1","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"8b5624198e49d3bfac549ffa43441392acf3891c","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.6.1.tgz","fileCount":54,"integrity":"sha512-+Aqrz8OiXUKXreCXvyyycVzxy780G8kvEKHyf5x7jmHxPf8NsNGP9+/7cd7D+I9HENZ03SHlB/LCIOyM1utukg==","signatures":[{"sig":"MEQCIGiCUXi06Ndk0gXxzgJkehKCox1MUu66e0gJCPb6fktfAiBqHY1jZTUaKbl1HVPCYhPr5fY89plO7UqcYDnzVY3nFA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.6.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":277227},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"36dbdf7370e43a6c92eb7af557a27e518c075a3f","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.6.1_1769747211874_0.3985370529639638","host":"s3://npm-registry-packages-npm-production"}},"2.6.2":{"name":"@marshallofsound/ipc","version":"2.6.2","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.6.2","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"6674217f0804795d7244c1be7621c1ad1ef2ae20","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.6.2.tgz","fileCount":54,"integrity":"sha512-6cwvvoTS289AOy8NQFJb0y3y+jPRfsx8PiBE5M6/k8voVdfrAQrTQkbluF3tjgQLLHiAvC57T5R1L4edYablzQ==","signatures":[{"sig":"MEQCIGec71AvQujJNk2JIubUM8KQPakCSnjcwHnFkVuYD7/nAiAqd/D6RRfG7dRV1McWL2ZYVfA/h/uhW++Vh5SS/2Iltw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.6.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":277441},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"82a041714b1ece01798e8df7e4abd21172c3731d","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.6.2_1770836616596_0.5235034246949419","host":"s3://npm-registry-packages-npm-production"}},"2.6.3":{"name":"@marshallofsound/ipc","version":"2.6.3","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.6.3","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"ad58230ece1fee2e5b68bf15394355f6aff0ccca","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.6.3.tgz","fileCount":54,"integrity":"sha512-C9WNaoLSti1dNg0PYqb4R+UHg4Qyj9nvarQo7BO8bOc0Ic3YWnBW2EkVJZqhqHSY1Xvy9gs3bpX9r8XoKBGe6A==","signatures":[{"sig":"MEYCIQChUuDBBiG8uycA+3KBOV0A0/JKCdf0K4olWAFzMBdgCwIhAOtFnme9+fE7J4mzOG9YGX7yh6bNo237ykpwU4vYWTwN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.6.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":279526},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"babbe958bb6923b91b5ecdf1fae9e162014f7be9","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.1.3"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.1.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.6.3_1776276132082_0.08851794909358524","host":"s3://npm-registry-packages-npm-production"}},"2.6.4":{"name":"@marshallofsound/ipc","version":"2.6.4","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.6.4","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"3f1c433d8cc54ee3cf89934ab2714375143cac3f","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.6.4.tgz","fileCount":54,"integrity":"sha512-nzhE1m5Fee34KUF9rjb2B+a3QMJETLMI7He2aSZmEDfvCxcdWhJIO4OONnEqj4U/XXsu+bWct50XucTSZiwWfg==","signatures":[{"sig":"MEQCIBE2yLGUPwNpBtGZx7+YOiSGe+nX1cwOT5us+6WUPykvAiBmQchCnGBOtFPHiiblvN0DCh08DYw/MvZIcuKpTVrADg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.6.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":279526},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"df91f5f748caddafd31d065864561518e405640a","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.2.2"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^36.4.0","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.2.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.6.4_1776280935179_0.027234434190841927","host":"s3://npm-registry-packages-npm-production"}},"2.7.0":{"name":"@marshallofsound/ipc","version":"2.7.0","author":{"name":"Samuel Attard"},"license":"MIT","_id":"@marshallofsound/ipc@2.7.0","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"homepage":"https://github.com/MarshallOfSound/ipc#readme","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"bin":{"generate-ipc":"dist/cli.js"},"dist":{"shasum":"5c5118d976edf2d55cb2946d330d2075cd8677af","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.7.0.tgz","fileCount":54,"integrity":"sha512-KfkYUH6oi2+luXvC20bbX4cwoF1lkG0A8jE1FuspC03rexmh4eWDI//c+u0oTdGzQqz3QgYxqFqYC5gHUvNKrg==","signatures":[{"sig":"MEUCIQDlzcda+JjCcrhlZ2Tv7oeWiyTaIQlsSmrruzc9PPeQDgIgO6hqZLZuAXsjGW2WGktqZsfWBOdEW6u6WnxvsNTHx4E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":280484},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"81501a44c42b4e0cb761529aea2fe741565f4930","scripts":{"lint":"prettier --check \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","build":"yarn langium:generate && tsc","prepare":"husky","dev:docs":"yarn workspace eipc-docs dev","lint:fix":"prettier --write \"src/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test:e2e":"yarn test:e2e:build && playwright test","build:docs":"yarn workspace eipc-docs build","test:watch":"vitest","build:vscode":"yarn workspace eipc-language build","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","langium:generate":"langium generate"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"repository":{"url":"git+https://github.com/MarshallOfSound/ipc.git","type":"git"},"workspaces":["vscode-extension","docs"],"_npmVersion":"11.6.2","description":"Typesafe, usable and clever Electron IPC","directories":{},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"_nodeVersion":"24.10.0","dependencies":{"langium":"^4.2.2"},"_hasShrinkwrap":false,"packageManager":"yarn@4.10.3","devDependencies":{"zod":"^4.2.1","husky":"^9.1.7","react":"^19.2.3","vitest":"^4.0.16","esbuild":"^0.27.2","electron":"^39.8.5","prettier":"^3.5.3","react-dom":"^19.2.3","typescript":"^5.8.3","@types/node":"^22.0.0","langium-cli":"^4.2.0","lint-staged":"^16.2.7","@types/react":"^19.2.7","@playwright/test":"^1.57.0","@types/react-dom":"^19"},"peerDependencies":{"electron":">=18.0.3"},"_npmOperationalInternal":{"tmp":"tmp/ipc_2.7.0_1777405195944_0.41704755856582576","host":"s3://npm-registry-packages-npm-production"}},"2.7.1":{"name":"@marshallofsound/ipc","version":"2.7.1","description":"Typesafe, usable and clever Electron IPC","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"bin":{"generate-ipc":"dist/cli.js"},"repository":{"type":"git","url":"git+https://github.com/MarshallOfSound/ipc.git"},"author":{"name":"Samuel Attard"},"license":"MIT","scripts":{"langium:generate":"langium generate","build":"yarn langium:generate && tsc && tsc -p templates/tsconfig.json","build:vscode":"yarn workspace eipc-language build","build:docs":"yarn workspace eipc-docs build","dev:docs":"yarn workspace eipc-docs dev","lint":"prettier --check \"src/**/*.ts\" \"templates/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","lint:fix":"prettier --write \"src/**/*.ts\" \"templates/**/*.ts\" \"tests/**/*.ts\" \"tests/**/*.tsx\"","test":"vitest run","test:watch":"vitest","test:e2e":"yarn test:e2e:build && playwright test","test:e2e:build":"node tests/e2e/test-app/build.js && tsc -p tests/e2e/test-app/tsconfig.json","prepare":"husky"},"lint-staged":{"*.{ts,tsx}":"prettier --write"},"dependencies":{"langium":"^4.2.2"},"devDependencies":{"@playwright/test":"^1.57.0","@types/node":"^22.0.0","@types/react":"^19.2.7","@types/react-dom":"^19","electron":"^39.8.5","esbuild":"^0.27.2","husky":"^9.1.7","langium-cli":"^4.2.0","lint-staged":"^16.2.7","prettier":"^3.5.3","react":"^19.2.3","react-dom":"^19.2.3","typescript":"^5.8.3","vitest":"^4.0.16","zod":"^4.2.1"},"peerDependencies":{"electron":">=18.0.3"},"packageManager":"yarn@4.10.3","workspaces":["vscode-extension","docs"],"gitHead":"cf5488bc9d2deab4183de95351cf5d6065964be1","_id":"@marshallofsound/ipc@2.7.1","bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"homepage":"https://github.com/MarshallOfSound/ipc#readme","_nodeVersion":"24.10.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-ektsXRLGSx9/I+TblaDfZ/vBWoEPbYPRPUWp1Q2rNWZ8ewSJzq3W1baDqMsggo4arw6gAEkx+DAYVGg1GEXipg==","shasum":"026f1a59b75a9acd4707fcbb0c1c131e55534898","tarball":"https://registry.npmjs.org/@marshallofsound/ipc/-/ipc-2.7.1.tgz","fileCount":55,"unpackedSize":285819,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@marshallofsound%2fipc@2.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQD1R6BouruCxNOiJq95NGs+P5MP0AAiCoMuBfac8Ft2twIgFDcWubvBgf5E580xARx4UIfkTNtaSaH8RSXRbKHL7v4="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:f6124065-63bf-4eb0-ab64-dcc94b2798ae"}},"directories":{},"maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ipc_2.7.1_1786987725635_0.340898410671149"},"_hasShrinkwrap":false}},"time":{"created":"2025-07-02T05:21:12.913Z","modified":"2026-08-17T17:28:46.437Z","0.0.1":"2025-07-02T05:21:13.594Z","0.0.2":"2025-07-02T06:59:04.943Z","0.0.3":"2025-07-02T18:02:17.351Z","0.0.4":"2025-07-02T18:23:09.074Z","0.0.5":"2025-07-02T19:57:06.422Z","0.0.6":"2025-07-02T20:06:07.545Z","0.0.7":"2025-07-03T08:53:12.990Z","0.0.8":"2025-07-05T16:00:24.957Z","0.0.9":"2025-07-05T16:03:52.825Z","0.0.10":"2025-07-17T21:14:05.246Z","0.0.11":"2025-07-18T18:04:43.836Z","0.0.12":"2025-08-29T23:58:53.697Z","0.1.0":"2025-09-25T16:45:34.120Z","0.1.1":"2025-09-25T21:48:02.871Z","0.1.2":"2025-11-06T20:30:30.020Z","1.0.0":"2025-12-20T09:46:05.403Z","1.0.1":"2025-12-20T10:06:39.386Z","2.0.0":"2025-12-21T01:55:04.288Z","2.1.0":"2025-12-21T03:51:45.246Z","2.1.1":"2025-12-21T03:55:57.466Z","2.1.2":"2025-12-21T04:02:56.184Z","2.1.3":"2025-12-21T05:07:25.894Z","2.1.4":"2025-12-21T05:12:30.257Z","2.1.5":"2025-12-21T09:00:53.006Z","2.1.6":"2025-12-21T09:17:37.251Z","2.2.0":"2025-12-21T09:58:29.224Z","2.2.1":"2025-12-21T10:04:57.776Z","2.2.2":"2025-12-21T10:19:31.551Z","2.3.0":"2025-12-21T23:22:43.780Z","2.4.0":"2025-12-22T01:15:16.022Z","2.4.1":"2025-12-28T20:14:33.887Z","2.4.2":"2025-12-30T00:56:46.792Z","2.4.3":"2026-01-13T04:19:17.289Z","2.4.4":"2026-01-13T17:48:02.419Z","2.4.5":"2026-01-13T18:17:23.548Z","2.4.6":"2026-01-13T22:41:03.958Z","2.5.0":"2026-01-21T21:31:50.424Z","2.6.0":"2026-01-22T19:23:18.461Z","2.6.1":"2026-01-30T04:26:52.047Z","2.6.2":"2026-02-11T19:03:36.759Z","2.6.3":"2026-04-15T18:02:12.233Z","2.6.4":"2026-04-15T19:22:15.312Z","2.7.0":"2026-04-28T19:39:56.083Z","2.7.1":"2026-08-17T17:28:45.815Z"},"bugs":{"url":"https://github.com/MarshallOfSound/ipc/issues"},"author":{"name":"Samuel Attard"},"license":"MIT","homepage":"https://github.com/MarshallOfSound/ipc#readme","repository":{"type":"git","url":"git+https://github.com/MarshallOfSound/ipc.git"},"description":"Typesafe, usable and clever Electron IPC","maintainers":[{"name":"marshallofsound","email":"samuel.r.attard@gmail.com"}],"readme":"# @marshallofsound/ipc\n\n> Type-safe, validated, and secure Electron IPC with zero boilerplate\n\n## Why?\n\nElectron apps typically expose APIs from the main process to renderer processes using `ipcMain.handle` and `ipcRenderer.invoke`. This works, but leads to:\n\n- **Boilerplate explosion** - Each API requires handler registration, message channel naming, and contextBridge exposure\n- **No type safety** - TypeScript can't verify that renderer calls match main process handlers\n- **No validation** - Invalid messages aren't rejected, leading to runtime errors or security issues\n- **No origin checking** - Any webpage loaded in your app can call any exposed API\n\nThis module solves all of these problems with a schema-first approach that generates fully typed, validated, and secure IPC code.\n\n## Features\n\n- **Zero boilerplate** - Define your API in a schema, get all the wiring generated\n- **Type safe** - Generated TypeScript ensures renderer calls match main process implementations\n- **Secure by default** - Runtime validation of arguments/return values, origin checking, frame restrictions\n- **Events & Stores** - Main-to-renderer events and reactive state with React hooks\n- **Automatic contextBridge** - APIs are automatically exposed to renderer\n\n## Installation\n\n```bash\nnpm install @marshallofsound/ipc\n# or\nyarn add @marshallofsound/ipc\n```\n\nRequires Electron >= 18.0.3\n\n## Quick Start\n\n### 1. Create a schema file\n\nCreate `schemas/api.eipc`:\n\n```\nmodule myapp\n\nvalidator OnlyMyApp = AND(\n    origin is \"https://myapp.com\"\n    is_main_frame is true\n)\n\n[RendererAPI]\n[Validator=OnlyMyApp]\n[ContextBridge]\ninterface FileSystem {\n    ReadConfig() -> string\n    WriteConfig(content: string) -> boolean\n}\n```\n\n### 2. Generate the wiring\n\nAdd a script to your `package.json`:\n\n```json\n{\n  \"scripts\": {\n    \"generate:ipc\": \"generate-ipc schemas src/ipc\"\n  }\n}\n```\n\nThen run it:\n\n```bash\nnpm run generate:ipc\n```\n\nAdd `src/ipc/` to your `.gitignore`.\n\n### 3. Implement in main process\n\n```ts\n// main.ts\nimport { FileSystem } from './ipc/browser/myapp';\nimport fs from 'fs';\n\nFileSystem.for(mainWindow.webContents.mainFrame).setImplementation({\n    ReadConfig(path) {\n        // Ensure you\n        return fs.readFileSync(configPath, 'utf-8');\n    },\n    WriteConfig(content) {\n        fs.writeFileSync(configPath, content);\n        return true;\n    },\n});\n```\n\n### 4. Initialize in preload\n\n```ts\n// preload.ts\nimport './ipc/preload/myapp';\n```\n\n#### Bundling the Preload Script\n\nThe preload script **must be bundled** before use. This is required because:\n1. Electron's preload context has specific module format requirements\n2. The generated IPC files use ES modules which need bundling for preload compatibility\n\nUse [esbuild](https://esbuild.github.io/) or another bundler:\n\n```ts\nimport esbuild from 'esbuild';\n\n// For sandbox: false - use ESM format with .mjs extension\nawait esbuild.build({\n  entryPoints: ['preload.ts'],\n  bundle: true,\n  platform: 'node',\n  outfile: 'dist/preload.mjs',\n  external: ['electron', 'electron/renderer'],\n  format: 'esm',\n});\n\n// For sandbox: true - use CJS format with .cjs extension\nawait esbuild.build({\n  entryPoints: ['preload.ts'],\n  bundle: true,\n  platform: 'node',\n  outfile: 'dist/preload.cjs',\n  external: ['electron', 'electron/renderer'],\n  format: 'cjs',\n});\n```\n\nThen reference the correct preload in your BrowserWindow:\n\n```ts\nnew BrowserWindow({\n  webPreferences: {\n    sandbox: false,\n    preload: path.join(__dirname, 'preload.mjs'), // ESM for sandbox: false\n    // OR\n    sandbox: true,\n    preload: path.join(__dirname, 'preload.cjs'), // CJS for sandbox: true\n  },\n});\n```\n\n> **Note:** The `.cjs` extension also works with `sandbox: false`, so you can use a single CJS bundle for both modes if preferred.\n\n### 5. Call from renderer\n\n```ts\n// renderer.ts\nimport { FileSystem } from '../ipc/renderer/myapp';\n\nconst content = await FileSystem.ReadConfig();\n```\n\n## Schema Reference\n\n### Module Declaration\n\nEvery schema file must start with a module declaration:\n\n```\nmodule company.product\n```\n\nThe module name becomes the namespace on `window` (e.g., `window['company.product']`).\n\n### Validators\n\nValidators control when APIs are exposed and when calls are allowed. They run both at preload time (to decide whether to expose the API) and at call time (to verify each request).\n\n```\nvalidator MyValidator = AND(\n    condition1\n    condition2\n    OR(\n        condition3\n        condition4\n    )\n)\n```\n\n#### Available Conditions\n\n| Condition | Description |\n|-----------|-------------|\n| `is_packaged is true/false` | Check if app is packaged (production) or running from source |\n| `is_main_frame is true/false` | Check if request comes from main frame (not iframe) |\n| `origin is \"https://example.com\"` | Check the page origin (supports custom protocols like `app://`) |\n| `hostname is \"localhost\"` | Check the hostname |\n| `protocol is \"https:\"` | Check the protocol |\n| `dynamic_global(flagName)` | Check if `global.flagName` is truthy in main process |\n\n#### Environment-Specific Validators\n\nDefine different rules for different environments:\n\n```\nvalidator MyValidator = {\n    production: AND(\n        is_packaged is true\n        origin is \"https://myapp.com\"\n    )\n    development: AND(\n        is_packaged is false\n        hostname is \"localhost\"\n    )\n}\n```\n\nThe environment is determined by `EIPC_ENV` or `NODE_ENV` at build time. This is **not** a runtime flag.\n\n### Subtypes\n\nDefine validated string or number types:\n\n```\nsubtype Username = string(\n    minLength: 3\n    maxLength: 20\n)\n\nsubtype HttpsUrl = string(\n    startsWith: \"https://\"\n)\n\nsubtype Percentage = number(\n    minValue: 0\n    maxValue: 100\n)\n\nsubtype PositiveInt = number(\n    minValue: 0\n)\n```\n\nArguments using these subtypes are validated at runtime before reaching your implementation.\n\n### Zod References (Advanced)\n\nWhen subtypes aren't expressive enough, you can reference external [Zod](https://zod.dev) schemas for complex validation:\n\n```\nzod_reference Email {\n    import = \"./schemas\"\n    type = \"Email\"\n    schema = \"emailSchema\"\n}\n```\n\nThis requires a corresponding TypeScript file:\n\n```ts\n// schemas.ts\nimport { z } from 'zod';\n\nexport const emailSchema = z.string().email();\nexport type Email = z.infer<typeof emailSchema>;\n```\n\nThe generated code will:\n- Import and re-export the TypeScript type\n- Use `schema.safeParse()` for runtime validation\n\n> **Note:** Import paths are relative to the generated `ipc/_internal/` directory, not your schema file.\n\n### Enums\n\n```\nenum Platform {\n    MacOS = \"darwin\"\n    Windows = \"win32\"\n    Linux = \"linux\"\n}\n```\n\nValues are optional - if omitted, the enum name is used as the value.\n\n### Structures\n\n```\nstructure UserInfo {\n    id: number\n    name: string\n    email?: string           // Optional field\n    metadata: {              // Nested inline structure\n        createdAt: number\n        updatedAt: number\n    }\n}\n```\n\n### Interfaces\n\nInterfaces define the actual APIs exposed to renderers.\n\n```\n[RendererAPI]\n[Validator=MyValidator]\n[ContextBridge]\ninterface MyAPI {\n    // Async method (default)\n    GetData(id: number) -> string\n\n    // Sync method\n    [Sync]\n    GetDataSync(id: number) -> string\n\n    // Method with optional return\n    FindUser(name: string) -> UserInfo?\n\n    // Event (main -> renderer)\n    [Event]\n    OnDataChanged(newData: string)\n\n    // Store (reactive state with React hooks)\n    [Store]\n    currentUser() -> UserInfo\n\n    // Placeholder for future features\n    [NotImplemented]\n    FutureMethod() -> string\n}\n```\n\n#### Interface Attributes\n\n| Attribute | Description |\n|-----------|-------------|\n| `[RendererAPI]` | API called from renderer, implemented in main |\n| `[Validator=Name]` | Apply a validator to all methods |\n| `[ContextBridge]` | Auto-expose via contextBridge |\n\n#### Method Attributes\n\n| Attribute | Description |\n|-----------|-------------|\n| `[Sync]` | Synchronous IPC (blocks renderer) |\n| `[Event]` | Event dispatched from main to renderer |\n| `[Store]` | Reactive state with `getState()`, `getStateSync()`, `onStateChange()` |\n| `[NotImplemented]` | Placeholder - throws if called, used to generate types for old methods that are no longer implemented |\n\n### Types\n\n| Type | Description |\n|------|-------------|\n| `string` | String value |\n| `number` | Number value |\n| `boolean` | Boolean value |\n| `Type?` | Optional/nullable type |\n| `CustomType` | Reference to enum, structure, or subtype |\n\n## Generated Code Structure\n\n```\nsrc/ipc/\n├── browser/           # Main process - import from here\n│   └── myapp.ts\n├── preload/           # Preload scripts - import to initialize\n│   └── myapp.ts\n├── renderer/          # Renderer process - for type-safe access\n│   └── myapp.ts\n├── renderer-hooks/    # React hooks for stores\n│   └── myapp.ts\n├── common/            # Shared types - import from anywhere\n│   └── myapp.ts\n└── _internal/         # Generated internals - don't import directly\n```\n\n## Main Process API\n\n```ts\nimport { MyAPI } from '../ipc/browser/myapp';\n\n// Set up handlers for a specific frame\nconst dispatcher = MyAPI.for(mainWindow.webContents.mainFrame).setImplementation({\n    GetData(id) {\n        return `Data for ${id}`;\n    },\n    getInitialCurrentUserState() {\n        return { id: 1, name: 'Guest' };\n    },\n});\n\n// Dispatch events\ndispatcher.dispatchOnDataChanged('new data');\n\n// Update store state\ndispatcher.updateCurrentUserStore({ id: 2, name: 'User' });\n\n// Get existing dispatcher\nconst existing = MyAPI.getDispatcher(frame);\n```\n\n## React Hooks\n\nFor `[Store]` methods, React hooks are generated:\n\n```tsx\nimport { useCurrentUserStore } from '../ipc/renderer-hooks/myapp';\n\nfunction UserDisplay() {\n    const state = useCurrentUserStore();\n\n    if (state.state === 'loading') return <div>Loading...</div>;\n    if (state.state === 'error') return <div>Error: {state.error.message}</div>;\n\n    return <div>Hello, {state.result.name}!</div>;\n}\n```\n\nThe hook returns:\n- `{ state: 'loading' }` - Initial load in progress\n- `{ state: 'ready', result: T }` - Data available\n- `{ state: 'error', error: Error }` - Load failed\n\n## Testing\n\n```bash\n# Unit tests\nyarn test\n\n# E2E tests (Electron + Playwright)\nyarn test:e2e\n\n# E2E with visible windows (for debugging)\nDEBUG_E2E_TEST=1 yarn test:e2e\n```\n","readmeFilename":"README.md"}