{"_id":"@earendil-works/chord","_rev":"19-57d49fab63de92f2aa796034ea8b4bfc","name":"@earendil-works/chord","dist-tags":{"initial":"0.0.0","latest":"1.4.0"},"versions":{"0.0.0":{"name":"@earendil-works/chord","version":"0.0.0","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@0.0.0","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"7da72183acb6ce1717699d65159cc9763289fd22","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-0.0.0.tgz","fileCount":98,"integrity":"sha512-4Y1EV57hVTdriChFAoBPbFUsUQTxkYzKVh6CbakjgyqqAMkWvsw27M/simEMN1ya+GEUQhNndL8KHvgWFsG1vg==","signatures":[{"sig":"MEUCIF6Om4zjheX7R1H8pT2q1urwMiWNc3fr3i4bL4CLE5aiAiEApBS4GFT2Qqxia20rPtEw34EcJGk31gQR2JYN+uj0Vq0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":906545},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"scripts":{"test":"vitest --run","build":"tsgo -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.15.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"25.8.1","dependencies":{"esbuild":"0.28.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/chord_0.0.0_1788515326980_0.10198611285139991","host":"s3://npm-registry-packages-npm-production"}},"0.85.0":{"name":"@earendil-works/chord","version":"0.85.0","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@0.85.0","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"19b99c64bda7b7fae3507d119a0b70199e6dd6dd","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-0.85.0.tgz","fileCount":99,"integrity":"sha512-m/eFMaUg2gFUqEqzffgt/d3xPNKEvD++NZrYDBqpCEc2/dqMoS13Pdx/tofe8t5/DHgnzHxlRQFD5bLPUdPmvw==","signatures":[{"sig":"MEUCIFIvaEvQflLXyZDldi5yvHz5fxz6FqG/+Oa1Ix+3nUyHAiEA5lJqTGyRKNR68nB2+ebqyXcaqizWc8nny08vKCyUYX8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@0.85.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":917443},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"107d79f11072bbc8a3a757ed7fd69596bee7d68c","scripts":{"test":"vitest --run","build":"tsgo -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"esbuild":"0.28.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/chord_0.85.0_1788516581092_0.9413756966254525","host":"s3://npm-registry-packages-npm-production"}},"0.85.1":{"name":"@earendil-works/chord","version":"0.85.1","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@0.85.1","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"acc677176bee8b7c1fbed96483317f694398aded","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-0.85.1.tgz","fileCount":99,"integrity":"sha512-VDlkEC3dhCzQ5fcyH1OhG19dq+6jCn+rqc/iXFivwDYGR5anwo2RCiXij9PpHhqNR5GuhhE+Er69Zi1Sn4eY6w==","signatures":[{"sig":"MEQCID8jPFJoqZdnf964hAN0+mrGqrnXFifSjEYKIelJ9w2MAiAunTZ8q1u+b3QUn9ErhXlFjK2cQgMfrz8J3Kiw7el3qA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@0.85.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":917443},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"d981de1229ef899957bbe968bc8dcda02a21f477","scripts":{"test":"vitest --run","build":"tsgo -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"esbuild":"0.28.1"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/chord_0.85.1_1788609827658_0.5551715156908841","host":"s3://npm-registry-packages-npm-production"}},"0.86.0":{"name":"@earendil-works/chord","version":"0.86.0","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@0.86.0","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"8672d44d896cc90ba29130d3d4b44347661e60e4","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-0.86.0.tgz","fileCount":99,"integrity":"sha512-7EQVCDLLw9GcUpenFZp2zqgkUEmqex/g20ujmgtrkKu//mYhdwHLVM68HCSR4kXPTaP+fiPQp2o/Y3uju6vQ1A==","signatures":[{"sig":"MEYCIQDZj3gKnPcsQutkYpdCsWW2RYyOBFfiTSxI66JXbVRN+AIhAJYHq4C0v8Y6LS3Xggg+Q5QiivYnYvGGSqihXXC2rhA1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIB7tpoc6xPDA5U/mWsWMqsE7uRZfCuGx1Ul5GpvyaUE3AiEAjJy/9aQEcvSSOLcMKbqvlc/CmgODD72EmNUQ60um1sg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@0.86.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1025447},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"ecac0a9c4edad3dac5d9f8b40e0c7db7a56471fc","scripts":{"test":"vitest --run","build":"tsgo -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/chord_0.86.0_1789859390705_0.2326052401688674","host":"s3://npm-registry-packages-npm-production"}},"0.86.1":{"name":"@earendil-works/chord","version":"0.86.1","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@0.86.1","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"0b232759d83d41ec91adeb9bcac373b93da4cb02","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-0.86.1.tgz","fileCount":99,"integrity":"sha512-GzUr5n4tFBHUYxN9CjcRHK8QWo9tbxNrZu6iWPQ+PFiFrLASvSZOKeAVAgh3gHv/t0X5OvUpFlrMQ/nEFfCYpg==","signatures":[{"sig":"MEYCIQDP6zNiSEZETNAwI2vJjTEUsOtPfzWtfEuOsTU0owl0vgIhAKmJNxn+DNai5kFjde0ZPW2kfbta2omH2tWIlRLmEK6r","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCID/XJTw9NqIjNoCr1ENzuydG89qzs96CCveq/D5zJE/BAiAO8OEEotvgqvVKf5x/rjqVgJ6ipQzQDYc6HTCMDANPvA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@0.86.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1025447},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"13cbf77df2396303013a41646bcfa77b4271ae56","scripts":{"test":"vitest --run","build":"tsgo -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/chord_0.86.1_1789902835823_0.49312511121626135","host":"s3://npm-registry-packages-npm-production"}},"0.87.0":{"name":"@earendil-works/chord","version":"0.87.0","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@0.87.0","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"b033dc0d576114e2b36e95d3cb50f8301ddf7bfd","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-0.87.0.tgz","fileCount":111,"integrity":"sha512-t8QOTf0GTHrsDSfcdtXuA9RCkh6mnR4l25N0SM/sgH7Ih25jH4tGXNbkGs9MWpV5xTu9MRPj4A7Zn1UEwQm9+g==","signatures":[{"sig":"MEQCIEplTnFO+V3KFKRi86lxcxameq8W0aI+qmic570TX0XjAiB7UPtAPo6A5/SXdTzG+3R7BZAOmBYtNlvE2OQRCbT2pw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDjywS2ShbUgFskSM8rGNzql+AK6RDTmApNxlSPv6iKkgIhAIIh72RZ7Iyk5y9ITXBLtwaaxgEDw1/qfXRClPFIYTVN","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@0.87.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1207259},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"16787ad5b2dc748047f314ca1bfe7708f30f54f3","scripts":{"test":"vitest --run","build":"tsgo -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/chord_0.87.0_1790008890630_0.210888089384909","host":"s3://npm-registry-packages-npm-production"}},"0.87.1":{"name":"@earendil-works/chord","version":"0.87.1","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@0.87.1","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"f983a4eae3e22c8204c53ea13070bf491330a31a","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-0.87.1.tgz","fileCount":111,"integrity":"sha512-bg7IkJGFcEaMqqYgOGUiq5Ky9RghpRfrlZ8I/v/1b4bBZ02A7t3E+6uhPRbadwWb/kWsnVFbZsqOKRN4a3LLCg==","signatures":[{"sig":"MEYCIQDhV1ud9RwUo+E0+mLSXH6qhvaFWYEzLqfad8ssaGPp4wIhAOiKjXklMZPV2EcZAPUAu2gOS6gcqkE9dMq3fsXF+d8N","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCC8hpUc9RppiRz+Ev+0N+ZGkBVpEgoJPzP8AGXj4/Z4wIgIiPjMjqsadjZuE7vCSKJfUoOsH+PQGxYxrSBH4/aHpE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@0.87.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1207259},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"f07218c4d4bbc12bef056a7058c3dd49dfe41abe","scripts":{"test":"vitest --run","build":"tsgo -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.9"},"_npmOperationalInternal":{"tmp":"tmp/chord_0.87.1_1790105880489_0.25952401423634597","host":"s3://npm-registry-packages-npm-production"}},"0.99.0":{"name":"@earendil-works/chord","version":"0.99.0","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@0.99.0","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"6e1eb8cf1afb8336f586045441586a16cbd6e1b6","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-0.99.0.tgz","fileCount":119,"integrity":"sha512-xGMjZqlbYOIs9hrKvTaW/rcwbjbrogBK2VU+z+YSR0v7G6WHMy6AivC4Sk0lMJjNaMsELFxG47X3BCkd6EqG4g==","signatures":[{"sig":"MEUCIFJG5IJ15+1EYE4/S2YAjUpSheg4dEx5BgssZ9Q6aTavAiEA+ohYjb+HHJvlCYDQ4jxyldnrS2HgjqNuuLhi9PceX3s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIGdNE/JOaXJWAJM9J/NwqheJcsuXL5Te5oqPOGzMqF7hAiEArlLqFyJ3a6QKa9WTDfLsry4837lf7GvxJGL97uZ1hQQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@0.99.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1024462},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"4b060d3a98618019adb9985d517516c8e99a2bbe","scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.11"},"_npmOperationalInternal":{"tmp":"tmp/chord_0.99.0_1790702173639_0.7159204576197395","host":"s3://npm-registry-packages-npm-production"}},"0.99.1":{"name":"@earendil-works/chord","version":"0.99.1","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@0.99.1","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"7f6ba945b705a5ab48d25dbed39b253afcec68df","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-0.99.1.tgz","fileCount":119,"integrity":"sha512-4xyn0IBzJ+Xu/iOGi2hjXJGAR61QEhEWZsIqTDqr+GmItdquYwBO5jYFnqGiBaTqlY12/EpM7QHoEKSHbyvOug==","signatures":[{"sig":"MEUCIQDpmWqak7Mc90NEjz7a2q9UaWl9igdxiUep+CvVCIPQoQIgY/TdQ9NezMmvVHLppOqvgiaia/HamiF0ohxBfRrPPGY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDRqNTC+vE5Nq3w/cdGfj76/7mTV7/oSb8yqNUDFdQcWAIgaoAuADLO0AbvnzbZUPvHRzYhn/1l3g1MLvFltt52Qoo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@0.99.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1024462},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"d86654abb8862e201933517d6f1fce9f88dd117f","scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.11"},"_npmOperationalInternal":{"tmp":"tmp/chord_0.99.1_1790705893594_0.8249292618885076","host":"s3://npm-registry-packages-npm-production"}},"0.99.2":{"name":"@earendil-works/chord","version":"0.99.2","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@0.99.2","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"fe7f280a0eac6f6b63025d3af1387dbd0a986fbc","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-0.99.2.tgz","fileCount":119,"integrity":"sha512-2dJWiNsOJm/ioBl1fhpJmw0hIjFUhM0CAteEnVkiVG0Kg4LimR7Asq8PfjclEvrbCPsDntzy7rGKhTZObI9TZw==","signatures":[{"sig":"MEUCIEGknHVz8ZeMxFKLZQkZxiCrvbjCZmtUjs5jt3qAAJ8KAiEA+Miv0TZqDhyq8bH3Veu+7pAYIFo/rsVGVkOJNHyH3Us=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAXvULa5QXi+1F57qs9kNpcVkZhtk15Wjwko+7qA/A0EAiB92U1xBouANGpSvf1P9rkHazt3eO3BeT+KTsY2QNfpEA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@0.99.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1024462},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"005af57d88ee23b33778f343a9595b32e67ff788","scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.2","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.11"},"_npmOperationalInternal":{"tmp":"tmp/chord_0.99.2_1790796300119_0.7892993123108651","host":"s3://npm-registry-packages-npm-production"}},"1.0.0":{"name":"@earendil-works/chord","version":"1.0.0","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@1.0.0","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"8807eee9a24f6ba4d40165c01ee0d71fe18aeb28","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-1.0.0.tgz","fileCount":119,"integrity":"sha512-BIfWfrByM0pKq6tfKYXuwx0ed2CvaqIM3EDA7Dps+fP+d3CiPWdlHi1cDsJC05llqKJoRz5//G0hz0yQwwjISQ==","signatures":[{"sig":"MEMCH3NeGAOqRM/y5r+8Rz//9ypD85TQhzQ/feMAZWJlMBkCIEpBwOZ4guOA+buttf8Kfsd4rHVyZW68PwS2UWTuaunJ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCICcOA0C925ooZ6drMcPVWOzzlv8DykuYgvl1kOEd1xNkAiEAt7OQS90gj6pjsj3TryztVGxwH2Aox+4SCxC0dQvqVXY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@1.0.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1025077},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"a13d35a742c6ef8462812a28fbe1d8c8b7431c32","scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.11"},"_npmOperationalInternal":{"tmp":"tmp/chord_1.0.0_1790881941231_0.3000258483711533","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@earendil-works/chord","version":"1.0.1","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@1.0.1","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"13487f8c9ec01e9716527276c3123f15b9b1c122","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-1.0.1.tgz","fileCount":119,"integrity":"sha512-woq15kjUZ38fUIMqFrFzTeT0fYYM0CfGS2ELCUE5Ufni32tdxfs0Av2+zz8PXFNxyiC3SB1EnyGPp63CLtp8Fg==","signatures":[{"sig":"MEUCIQDNniO4GEyIIZ+KBPCKDIJK4F1eGy5T919kbf15vrNLzQIgZdtPZWETUh68U5puLUrqXR9JPAeM/YtTvQtUIxuIXE0=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDm2Q7hl/cn6GeeqVDQ5fOLvbNjO/MCS7XTdHt4prOd/gIhAN1apczv+VGOIq6ZdvVjBpflw6w9di+OzM/oO5sUgf2g","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@1.0.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1025077},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"a7229ddc21810d6245105978033b7df645ecc2f7","scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.11"},"_npmOperationalInternal":{"tmp":"tmp/chord_1.0.1_1791030602582_0.6776686815180568","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@earendil-works/chord","version":"1.0.2","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@1.0.2","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"481516ce8b3c32c3d3f2175a4e61c46bc91f7f23","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-1.0.2.tgz","fileCount":119,"integrity":"sha512-eUXGZjigyEQsFiT/oBJUOaCrzYZRmqf8AgLrlbyuS4u02hjSVhLYRi3xqk1o4UERCgRfjRegqwj/oucawIR7YQ==","signatures":[{"sig":"MEQCICcgY8okROywzowiq9eMsrGrJk/gow1mrj/HMcKUebTmAiBPm8og7oxe6WyPVPmntj2E343Oci6C3l2/Z6fKFb6rjg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIDdsKnz+VL5CSs86BB/DjTEUSOwne6IEd3J5IImkqYJrAiEAzOQBXlKe/NMwJhie6EVzVh5lca4wsZR0g6kJnle/JIo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@1.0.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1025077},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"cd32f7725fdbddbaecdff5b1e68491563394e0ca","scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.11"},"_npmOperationalInternal":{"tmp":"tmp/chord_1.0.2_1791075212961_0.5012695551399333","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@earendil-works/chord","version":"1.0.3","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@1.0.3","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"8e9e2a9b52729db7383d421084f9e6d92526a3ad","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-1.0.3.tgz","fileCount":119,"integrity":"sha512-H5pKMs3S1z2q4V7NkDGKDFzOMW+OkzdsnGxxj5wNJUANG03VKj29UVmc1xnnnf0FAc03COHYNxwgNApO0nt0fg==","signatures":[{"sig":"MEYCIQDFYNPNH1SEWEFgA1FjQDNhq4P7prtDMH/McJS0Wcuc2QIhAOsKRn99H2XZZQ50h0sCkpXriX4+CtERKgX1Nurxxmeb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDw2ahj37rR7qhfpul18aNs19gWuEYgqfmD6jkRZASINQIge78IkrB0cD9atjM5sr9tYCO8/YQ8O9Zv/tUBBM7Coro=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@1.0.3","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1025077},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"d78dc83d633229d12f8b79631384c4c2717c399f","scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.11"},"_npmOperationalInternal":{"tmp":"tmp/chord_1.0.3_1791189095398_0.8513878181698136","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@earendil-works/chord","version":"1.0.4","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@1.0.4","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"6b5b0ee6c5fa5933813b27c263cce37bfa4d2985","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-1.0.4.tgz","fileCount":119,"integrity":"sha512-d2JZw2utoa/reoSmL07O71wsXiMDhIlnnxTb4LCNV+Oq8Evj2rGLvjVuYrlXZGbXUr0IDNfvd1RT/utCY1UhkQ==","signatures":[{"sig":"MEUCIQCYnI8WYUNRTArzmNee1GnucgvmRQTwz2EAfHnMuZmOMgIgMUxWDUhnH/rw3+iehiTjw+sYtYVXQ2YOTs708E7lfBk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCf3BPH06twJZ5nVzMq7dKfsfDjwKhn8fjcvEo9nkPAYgIhAKjflNWUquLPSg91YsEQvLuS9RdHY+xIbPphdQyqsngS","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@1.0.4","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1025077},"main":"./dist/index.js","type":"module","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"gitHead":"7c10bd4337495ee613f2224843ecdf349b80d1df","scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.4.0","vitest":"4.1.11"},"_npmOperationalInternal":{"tmp":"tmp/chord_1.0.4_1791236686268_0.8199880037409129","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@earendil-works/chord","version":"1.1.0","keywords":["application","plugins","rpc","services","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@1.1.0","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"6fe9b791af9c5e6e3ded41e4add84c0cf1341baa","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-1.1.0.tgz","fileCount":119,"integrity":"sha512-gsHzKfyQ3t0ZIQ3cLBjJ5Vqy1TYnFyruHIV3g3BwmulCDYe5BW4yT9vaJk9QzN6YANILIO75uzuq+Gdxtzz1og==","signatures":[{"sig":"MEQCIE9xu0cWqTJvRexYn/Hwj6Jeuz9XgIOciGo6ZNmvjCScAiAMCuuR4iQB2yFVpe0D/aVVPW38XtuDF2TB30fmpp2uqg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDaSG+bNBCr7RhE+bRtMWvq17V11221efgUFIaWYVmLVAIhANOVomet23c4fITOFbLPk7Z/WaanfkRDTY5FLRXgVRy1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@1.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1025077},"main":"./dist/index.js","type":"module","_from":"file:/tmp/pi-package-artifacts-gBWTz8/tarballs/earendil-works-chord-1.1.0-82c1f329fc90.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./bundler":{"types":"./dist/bundler.d.ts","import":"./dist/bundler.js","source":"./src/bundler.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"_resolved":"/tmp/pi-package-artifacts-gBWTz8/tarballs/earendil-works-chord-1.1.0-82c1f329fc90.tgz","_integrity":"sha512-gsHzKfyQ3t0ZIQ3cLBjJ5Vqy1TYnFyruHIV3g3BwmulCDYe5BW4yT9vaJk9QzN6YANILIO75uzuq+Gdxtzz1og==","repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Application composition runtime for services, replicated state, RPC, and plugins","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"esbuild":"0.28.2"},"_hasShrinkwrap":false,"devDependencies":{"shx":"0.3.4","vitest":"4.1.11"},"_npmOperationalInternal":{"tmp":"tmp/chord_1.1.0_1791411003144_0.35386872190171803","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@earendil-works/chord","version":"1.2.0","keywords":["application","plugins","rpc","contracts","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@1.2.0","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"787efbfa6ea3f68699d667933059cbb828280d47","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-1.2.0.tgz","fileCount":127,"integrity":"sha512-Xh3M5B4D9YotOyBXyVbZ/5WfoUwP6Kt+TheCIDLxLCUx72UExuxZF//hNmIQGD13EkAHf2svKpXr/rCCT1gXTg==","signatures":[{"sig":"MEUCIGzRC4P7Q1uU0Z3Gg/NiOUolDlRmGzrjMh5y6V3C3vgUAiEAgisV7FAixLETsxGDMpqvu0ZrAkJcm8lqVn9QdNOjsoY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIAwOi/SJfoNaJ3IO/bgRN/4Bxkb1VzTR/tluC3SvHMC8AiEA7Wd77J75O6J8h88Y+qJEvQfdNkgRL1hGuIRTNGWDveg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@1.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1494002},"main":"./dist/index.js","type":"module","_from":"file:/tmp/pi-package-artifacts-Jw8Saj/tarballs/earendil-works-chord-1.2.0-5e1dcce41e03.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"_resolved":"/tmp/pi-package-artifacts-Jw8Saj/tarballs/earendil-works-chord-1.2.0-5e1dcce41e03.tgz","_integrity":"sha512-Xh3M5B4D9YotOyBXyVbZ/5WfoUwP6Kt+TheCIDLxLCUx72UExuxZF//hNmIQGD13EkAHf2svKpXr/rCCT1gXTg==","repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Typed host runtime for plugins, contracts, replicated state, and RPC over JSON links","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"typebox":"1.3.27"},"_hasShrinkwrap":false,"devDependencies":{"ws":"8.21.0","shx":"0.3.4","vitest":"4.1.11","@types/ws":"8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/chord_1.2.0_1791846006526_0.8512630345616805","host":"s3://npm-registry-packages-npm-production"}},"1.3.0":{"name":"@earendil-works/chord","version":"1.3.0","keywords":["application","plugins","rpc","contracts","state"],"author":{"name":"Earendil Works"},"license":"MIT","_id":"@earendil-works/chord@1.3.0","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"homepage":"https://github.com/earendil-works/pi#readme","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"845bb52ed65ffcdfa28f115dbec4862e90170dd3","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-1.3.0.tgz","fileCount":131,"integrity":"sha512-qqYhjALZ193atpBzmmS+M5pHQoiI4Aynetc1jXpv+5O2crXH3Y8wbFEy33orU2nmFrlw1U36rsdgUjaW4b3m/w==","signatures":[{"sig":"MEQCIEK4q9KTBusI7fyqXXsNJ6qFcN6z3puldIUKx/ed2Sq1AiAfbNwHxgR0tsJsqCT6wyTA0GBxP6ws9NRspg1cVocnxg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCEjbB1qo5YaC1Mcd6SJkZz+3ob7L1Y1rMDCgI3yoWtZQIgBtKrvTkdId2uVHcx2MNZctYlIJfU+3eK7uF9U5UqeNg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@1.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1868195},"main":"./dist/index.js","type":"module","_from":"file:/tmp/pi-package-artifacts-O3jHRV/tarballs/earendil-works-chord-1.3.0-aaa6218c02d9.tgz","types":"./dist/index.d.ts","engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./output":{"types":"./dist/output.d.ts","import":"./dist/output.js","source":"./src/output.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./package.json":"./package.json"},"scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"_resolved":"/tmp/pi-package-artifacts-O3jHRV/tarballs/earendil-works-chord-1.3.0-aaa6218c02d9.tgz","_integrity":"sha512-qqYhjALZ193atpBzmmS+M5pHQoiI4Aynetc1jXpv+5O2crXH3Y8wbFEy33orU2nmFrlw1U36rsdgUjaW4b3m/w==","repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Typed host runtime for plugins, contracts, replicated state, and RPC over JSON links","directories":{},"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"typebox":"1.3.27"},"_hasShrinkwrap":false,"devDependencies":{"ws":"8.21.0","shx":"0.3.4","vitest":"4.1.11","@types/ws":"8.18.2"},"_npmOperationalInternal":{"tmp":"tmp/chord_1.3.0_1792091455595_0.27007275577209566","host":"s3://npm-registry-packages-npm-production"}},"1.4.0":{"_id":"@earendil-works/chord@1.4.0","bugs":{"url":"https://github.com/earendil-works/pi/issues"},"dist":{"shasum":"f642815e8066488cf750cea4091e39a77b771353","tarball":"https://registry.npmjs.org/@earendil-works/chord/-/chord-1.4.0.tgz","fileCount":163,"integrity":"sha512-dTbgyz4xgDS5KAUFx1bFENqj0Cr1N3tYxJJOYStc6g6HS78FSBZydyoCwLoddiQRF+VgRS0fpgAi+iKxjZ3BQA==","signatures":[{"sig":"MEUCIDo2x/A2Rqh67/2ibE8l9wLp6rZ/ojz7KDXmEqC0cD06AiEAm+h0mgc9YDmFIjNnDD3qyT3eEzOX4z7UXs+VuY1w6Ko=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEVzYc/I14DZtZtzpEWT/5WLlm2Yy3c5F/5d9i+Cn8aHAiEApVxnXC4y7lntvk/W8gLi0Kp/bb6ANJjcfA8D3Ejvsgk="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@earendil-works%2fchord@1.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":1990548},"main":"./dist/index.js","name":"@earendil-works/chord","type":"module","_from":"file:/tmp/pi-package-artifacts-e5Jxrf/tarballs/earendil-works-chord-1.4.0-7536e0cb3e31.tgz","types":"./dist/index.d.ts","author":{"name":"Earendil Works"},"engines":{"node":">=22.19.0"},"exports":{".":{"types":"./dist/index.d.ts","import":"./dist/index.js","source":"./src/index.ts"},"./node":{"types":"./dist/node.d.ts","import":"./dist/node.js","source":"./src/node.ts"},"./delta":{"types":"./dist/delta/index.d.ts","import":"./dist/delta/index.js","source":"./src/delta/index.ts"},"./output":{"types":"./dist/output.d.ts","import":"./dist/output.js","source":"./src/output.ts"},"./sqlite":{"types":"./dist/sqlite/index.d.ts","import":"./dist/sqlite/index.js","source":"./src/sqlite/index.ts"},"./context":{"types":"./dist/context/index.d.ts","import":"./dist/context/index.js","source":"./src/context/index.ts"},"./sqlite/node":{"types":"./dist/sqlite/node.d.ts","import":"./dist/sqlite/node.js","source":"./src/sqlite/node.ts"},"./package.json":"./package.json","./telemetry-sqlite":{"types":"./dist/telemetry-sqlite/index.d.ts","import":"./dist/telemetry-sqlite/index.js","source":"./src/telemetry-sqlite/index.ts"},"./sqlite/cloudflare":{"types":"./dist/sqlite/cloudflare.d.ts","import":"./dist/sqlite/cloudflare.js","source":"./src/sqlite/cloudflare.ts"}},"license":"MIT","scripts":{"test":"vitest --run","build":"tsc -p tsconfig.build.json","clean":"shx rm -rf dist","prepublishOnly":"npm run clean && npm run build"},"version":"1.4.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"9bb344c7-1b64-4b2b-a054-25c1ef29c6d7"}},"homepage":"https://github.com/earendil-works/pi#readme","keywords":["application","plugins","rpc","contracts","state"],"_resolved":"/tmp/pi-package-artifacts-e5Jxrf/tarballs/earendil-works-chord-1.4.0-7536e0cb3e31.tgz","_integrity":"sha512-dTbgyz4xgDS5KAUFx1bFENqj0Cr1N3tYxJJOYStc6g6HS78FSBZydyoCwLoddiQRF+VgRS0fpgAi+iKxjZ3BQA==","repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"_npmVersion":"11.16.0","description":"Typed host runtime for plugins, contracts, replicated state, and RPC over JSON links","directories":{},"maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"sideEffects":false,"_nodeVersion":"22.23.3","dependencies":{"typebox":"1.3.27","@earendil-works/pi-telemetry":"1.4.0"},"_hasShrinkwrap":false,"devDependencies":{"ws":"8.21.0","shx":"0.3.4","vitest":"4.1.11","@types/ws":"8.18.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/chord_1.4.0_1792622665065_0.7360723653443673"}}},"time":{"created":"2026-09-04T09:48:46.870Z","modified":"2026-10-21T22:44:25.550Z","0.0.0":"2026-09-04T09:48:47.140Z","0.85.0":"2026-09-04T10:09:41.259Z","0.85.1":"2026-09-05T12:03:47.835Z","0.86.0":"2026-09-19T23:09:50.793Z","0.86.1":"2026-09-20T11:13:55.905Z","0.87.0":"2026-09-21T16:41:30.718Z","0.87.1":"2026-09-22T19:38:00.606Z","0.99.0":"2026-09-29T17:16:13.811Z","0.99.1":"2026-09-29T18:18:13.715Z","0.99.2":"2026-09-30T19:25:00.213Z","1.0.0":"2026-10-01T19:12:21.381Z","1.0.1":"2026-10-03T12:30:02.893Z","1.0.2":"2026-10-04T00:53:33.066Z","1.0.3":"2026-10-05T08:31:35.521Z","1.0.4":"2026-10-05T21:44:46.390Z","1.1.0":"2026-10-07T22:10:03.258Z","1.2.0":"2026-10-12T23:00:06.685Z","1.3.0":"2026-10-15T19:10:55.725Z","1.4.0":"2026-10-21T22:44:25.197Z"},"bugs":{"url":"https://github.com/earendil-works/pi/issues"},"author":{"name":"Earendil Works"},"license":"MIT","homepage":"https://github.com/earendil-works/pi#readme","keywords":["application","plugins","rpc","contracts","state"],"repository":{"url":"git+https://github.com/earendil-works/pi.git","type":"git","directory":"packages/chord"},"description":"Typed host runtime for plugins, contracts, replicated state, and RPC over JSON links","maintainers":[{"name":"mitsuhiko","email":"armin.ronacher@active-4.com"},{"name":"badlogic","email":"mario@badlogicgames.com"},{"name":"rwachtler","email":"r.wachtler@outlook.com"}],"readme":"# @earendil-works/chord\n\nChord builds applications out of **objects** that live in several processes (a server, workers, browser tabs) and can be **hot reloaded** while they run.\n\n- An **object** is state plus code at an address. It is created on demand and lives while someone references it.\n- Everyone gets a **reference**, never the object. References work the same locally and across processes, and survive reloads.\n- Every object knows its **principal**: an owner and a guest get different objects, with different methods.\n- **State** is observable JSON. Remote viewers get a snapshot followed by deltas.\n- **Hot reload** swaps code while it runs. Work in flight finishes on the code it started with, state is kept, and incompatible changes migrate at a safe point.\n\nContracts are runtime values described with [TypeBox](https://github.com/sinclairzx81/typebox) schemas. Hosts exchange JSON frames over links: in memory, a Node IPC channel, or a WebSocket.\n\n## Entry points\n\n| Import | Contents | Runs in |\n|--------|----------|---------|\n| `@earendil-works/chord` | Contracts (`local`, `remote`, `method`, `opaque`), declarations (through the factory's `self`: `state`, `derive`, `resource`, `on`, `task`), hosts (`createHost`, `defineFacet`, `defineRegistry`), links (`memoryLinkPair`, `ipcLink`, `webSocketLink`, `acceptWebSockets`), errors (`ChordError`, `isChordError`, `forbidden`, `invalid`). Also the shared base: `Context`, `JsonValue`, `JsonRepresentation`, `Draft`, `copyJson`, `isJsonValue`, and `replicatedState` with its types. | Node and browsers |\n| `@earendil-works/chord/node` | Child host processes: `createHostManager`, `forkDriver`, `childControl`, `processLock`; the facet module loader `nodeLoader`. | Node |\n| `@earendil-works/chord/context` | Explicit cancellation, telemetry, and invocation values: `BACKGROUND_CONTEXT`, `withCancel`, `withAbortSignal`, `withoutAbortSignal`, `withTelemetry`, `traceIn`, `withContextValue`, `awaitWithContext`. | Node and browsers |\n| `@earendil-works/chord/delta` | The transactional JSON tracker, structural diff, immutable apply, and the wire encoder/decoder for operation batches. | Node and browsers |\n| `@earendil-works/chord/output` | Bounded output streams and paced progress: `OutputBuffer` (head or tail window of a stream, `OutputLimits`, `OutputSkip`), `boundOutput`, `sanitizeOutput`, `utf8ByteLength`, and `Progress` (adaptive commits of a changing value). | Node and browsers |\n| `@earendil-works/chord/telemetry-sqlite` | `createSqliteTelemetry(db, { retentionMs?, maxQueuedSpans? })`: buffered recording and backend-independent `TelemetryStore` queries. | Any SQLite adapter |\n| `@earendil-works/chord/sqlite` | Portable `SqliteDatabase`, `SqliteExecutor`, and `SqliteValue`, atomic `applySqliteMigrations(database, migrations, { table })`, and `validateSqliteSchemaPrefix`. The metadata table must be a valid, non-reserved SQLite identifier; migration versions start at 1 and are contiguous. | Any SQLite adapter |\n| `@earendil-works/chord/sqlite/node` | `NodeSqliteDatabase`, `openNodeSqliteDatabase`, and `NodeSqliteDatabaseOptions`. | Node |\n| `@earendil-works/chord/sqlite/cloudflare` | `DurableObjectSqliteDatabase` and the structural `DurableObjectSqliteStorage` binding type. | Cloudflare Durable Objects |\n\n## Quick start\n\n```ts\nimport { Type } from \"typebox\";\nimport { createHost, hostNamed, method, remote } from \"@earendil-works/chord\";\n\n// contract.ts: shared by provider and consumers\nexport const Counter = remote(\"demo.counter\", {\n\tversion: 1,\n\tinput: Type.Object({ name: Type.String() }),\n\thost: hostNamed(\"server\"), // where its objects live; callers never name a host\n\tvariants: {\n\t\tdefault: {\n\t\t\tstate: { count: Type.Number() },\n\t\t\tmethods: { increment: method(Type.Object({ by: Type.Number() })) },\n\t\t},\n\t},\n});\n\nconst host = createHost({ name: \"server\", self: { kind: \"server\" } });\n\nhost.serve(Counter, ({ name }, _principal, self) => {\n\tconst count = self.state(\"count\", Type.Number(), 0);\n\treturn {\n\t\tvariant: \"default\",\n\t\tcount,\n\t\tincrement: async ({ by }, ctx) => {\n\t\t\tcount.change(ctx, (n) => n + by);\n\t\t},\n\t};\n});\n\nawait host.root(async (ctx) => {\n\tconst clicks = await ctx.get(Counter, { name: \"clicks\" }); // ready, with its state; released when this root ends\n\tclicks.count.subscribe((n) => console.log(\"count\", n));\n\tawait clicks.increment({ by: 2 }, ctx); // logs 0, then 2\n});\n```\n\n## Documentation\n\n- [Tutorial](docs/tutorial.md): a shared todo list, built up section by section. Every example runs as `test/tutorial.test.ts`.\n- [Usage guide](docs/guide.md): API reference for contracts, objects, state, roots, lifetime, plugins, hot reload, hosts, and links.\n- [Specification](docs/spec.md): compatibility, lifetime, and reload semantics, plus known limitations and implementation decisions.\n- [Delta guide](src/delta/README.md): ownership, lifecycle, operation, and replica contracts of `@earendil-works/chord/delta`.\n\n## Explicit Context telemetry\n\n`Context` always carries a `telemetry: TelemetrySpan`, alongside `abortSignal`. `BACKGROUND_CONTEXT` and `TODO_CONTEXT` use the shared no-op span `NOOP_TELEMETRY_CONTEXT`. Adapters (`TelemetryContext`) belong to hosts and start root spans; adapters are never placed in a `Context`.\n\n```ts\nimport { BACKGROUND_CONTEXT, traceIn, withTelemetry } from '@earendil-works/chord/context';\nimport { InMemoryTelemetryContext } from '@earendil-works/pi-telemetry';\n\nconst telemetry = new InMemoryTelemetryContext();\nawait telemetry.startSpan({ name: 'app.request' }, async (span) => {\n  const context = withTelemetry(span, BACKGROUND_CONTEXT);\n  await traceIn(context, { name: 'app.load' }, async (child) => {\n    child.telemetry.addEvent('cache.miss');\n    return traceIn(child, { name: 'app.read' }, (nested) => readAccount(nested));\n  });\n});\n```\n\n`withTelemetry(span, context)` derives a new context; it never changes its parent, cancellation, or typed values. `traceIn(context, options, fn)` creates a callback-managed child span, and `fn` receives its derived context. Every context already supports `telemetry.addEvent()` and `telemetry.addLink()`. Values, cancellation, callback results, and rejection identities are preserved. Concurrent calls keep independent parents; there is no ambient current span. `value()`, `ContextKey`, and `withContextValue()` remain supported.\n\nThese helpers operate on the standalone `Context` API. They do not yet instrument Chord hosts, methods, or network frames.\n\n## SQLite telemetry\n\n```ts\nimport { createSqliteTelemetry } from '@earendil-works/chord/telemetry-sqlite';\nimport { openNodeSqliteDatabase } from '@earendil-works/chord/sqlite/node';\nimport { renderTrace } from '@earendil-works/pi-telemetry/render';\n\nconst db = await openNodeSqliteDatabase('telemetry.db');\nconst telemetry = await createSqliteTelemetry(db);\ntry {\n  await telemetry.startSpan({ name: 'app.request' }, async (span) => {\n    span.addEvent('request.accepted');\n    await span.startSpan({ name: 'app.read' }, () => readAccount());\n  });\n  await telemetry.flush();\n  const { traces } = await telemetry.findTraces({ name: 'app.request', limit: 10 });\n  for (const trace of traces) console.log(renderTrace(trace.spans));\n} finally {\n  try { await telemetry.close(); } finally { await db.close(); }\n}\n```\n\nThe adapter is portable over `SqliteDatabase` and owns no connection. Recording performs no SQL. A one-second timer flushes settled spans and completed ten-second metric intervals in one transaction, including retention cleanup. Metrics retain count, sum, minimum, and maximum per name/kind/unit/attribute series, not raw samples, buckets, or exemplars. `close()` stops recording and drains partial metric intervals without waiting for business callbacks or closing the database. Late span completions are ignored.\n\nRetention defaults to seven days. `maxQueuedSpans` defaults to 10,000 and counts settled spans awaiting commit, including an in-flight batch. The same limit independently bounds pending metric interval/series pairs. Overflow increments `droppedSpans` or `droppedMeasurements`; the limits bound counts, not bytes or active spans. A write failure stops recording permanently: `flush()` and `close()` reject with the original error without retrying.\n\nThe adapter implements `TelemetryStore`: `findTraces()`, `getTrace()`, and `findMetrics()` read committed rows, including after adapter close while the database remains open. See [stored telemetry](../telemetry/README.md#stored-telemetry) for filters, pagination, and cross-process trace assembly. Schema tables are `telemetry_spans`, `telemetry_metrics`, and `telemetry_schema`.\n\n## Tracking JSON deltas\n\nImport the standalone transactional tracker from `@earendil-works/chord/delta`:\n\n```ts\nimport { applyImmutable, track } from \"@earendil-works/chord/delta\";\n\nconst tracker = track({ output: \"\", count: 0 });\nconst change = tracker.beginChange();\nchange.state.output += \"done\\n\";\nchange.state.count += 1;\nconst prepared = change.prepare();\n\ntracker.adopt(prepared);\nconst replica = applyImmutable(prepared.base, prepared.ops);\n```\n\n`tracker.value` is always the latest adopted immutable revision. Preparation does\nnot change authority; adoption validates the preparation and swaps the root pointer.\nAssigned containers are copied by value and unchanged subtrees may be shared between\nrevisions.\n\nThe tracker uses trusted immutable ownership rather than defensive copying or\nfreezing. `track(initial)`, `prepareReplace(value)`, `replicatedState(initial)`, and\n`replace(context, value)` take ownership of alias-free strict-JSON roots without\nwalking them. Callers must not mutate transferred or published data. Values placed\nthrough drafts are already copied, so that walk also rejects non-strict JSON before\nthe draft changes. Published values are not frozen. In-process consumers may share\ntheir containers with the provider; mutating a consumed value violates the contract\nand can corrupt authority. Clone or serialize at any mutable trust boundary.\n\nReplicated state provides the same model through a callback. `replicatedState` is a\nstandalone observable value, independent of hosts; Durable uses it for document,\nview, and task-graph states:\n\n```ts\nimport { replicatedState } from \"@earendil-works/chord\";\n\nconst initial = { output: \"\", count: 0 };\nconst status = replicatedState(initial); // transfers ownership of initial\nstatus.change(context, (draft) => {\n\tdraft.output += \"done\\n\";\n\tdraft.count += 1;\n});\n```\n\nA successful `change()` publishes exactly one atomic revision. If its callback\nthrows, the original value and sequence remain unchanged. Draft references become\nunusable when the callback returns. The tracker emits string append and\nfront-truncate operations, array splices and permutations, sets, and deletes; large\nedit sets may fold into a complete replacement.\n\n`replicatedState(source, { onError })` instead attaches a publication-only state to\nan authoritative revision source (`ReplicatedStateSource`): it captures a snapshot,\nthen publishes every committed frame in cursor order.\n\n### Public state subscriptions\n\n`state.subscribe(async (value, context, delivery) => { ... })` serializes callbacks\nindependently for each subscription. Hydration starts immediately when a value is\navailable, and its returned promise must settle before updates start. Synchronous\ncallbacks still run synchronously. Read the captured `value` inside an asynchronous\ncallback: `state.value` may already refer to a later revision.\n\nEach subscription retains at most 100 pending complete-value deliveries, excluding\nthe running callback. On overflow, only the newest pending value, context, and\ndelivery metadata are retained; a not-yet-started initial hydration is preserved.\nThus public delivery sequences may skip. This is a frame-count policy, not a byte\nlimit.\n\nThe returned unsubscribe function immediately discards pending work and prevents\nnew callbacks. It neither aborts nor waits for the running callback. Synchronous\nthrows and promise rejections are observed, reported, and do not stop other\nsubscriptions or subsequent callbacks. Attached sources use their `onError`\nhandler; mutable states (and attached sources without a handler) report failures\nby throwing in a microtask. Unsubscribing does not hide a later rejection from the\nrunning callback.\n\nCells of Chord objects and their remote readables have their own subscription\nmodel; see [State](docs/guide.md#state) in the usage guide.\n","readmeFilename":"README.md"}