{"_id":"@edv4h/spire-plugin-policy-quorum","name":"@edv4h/spire-plugin-policy-quorum","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@edv4h/spire-plugin-policy-quorum","version":"0.1.0","type":"module","description":"Quorum progression policy for Spire","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"source":"./src/index.ts","types":"./dist/index.d.ts","import":"./dist/index.js"}},"dependencies":{"zod":"4.4.3","@edv4h/spire-core":"0.1.0"},"devDependencies":{"typescript":"7.0.2","vitest":"4.1.11"},"publishConfig":{"access":"public"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/EdV4H/spire.git","directory":"plugins/policy-quorum"},"homepage":"https://github.com/EdV4H/spire#readme","bugs":{"url":"https://github.com/EdV4H/spire/issues"},"scripts":{"build":"tsc -p tsconfig.build.json","typecheck":"tsc -p tsconfig.json --noEmit","test":"vitest run --passWithNoTests","clean":"node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\""},"_id":"@edv4h/spire-plugin-policy-quorum@0.1.0","_integrity":"sha512-PeLwKrln9lqSG67U3BHrXuSDjlpSrfnmKNLkZBixQvriiciZgRLge9DlcwMUQ/VcHSudQFW30TrJDTvaF7+nfg==","_resolved":"/private/var/folders/kk/49kmw6n10s3f_vj3y1_rjd2h0000gn/T/c5f27ad1eee3a98d7b18f6fe71da0418/edv4h-spire-plugin-policy-quorum-0.1.0.tgz","_from":"file:edv4h-spire-plugin-policy-quorum-0.1.0.tgz","_nodeVersion":"26.3.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-PeLwKrln9lqSG67U3BHrXuSDjlpSrfnmKNLkZBixQvriiciZgRLge9DlcwMUQ/VcHSudQFW30TrJDTvaF7+nfg==","shasum":"d86109dd174c14534601b7d966b72994760f9c27","tarball":"https://registry.npmjs.org/@edv4h/spire-plugin-policy-quorum/-/spire-plugin-policy-quorum-0.1.0.tgz","fileCount":7,"unpackedSize":9506,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDNh8mtd4YF8cupPEWdxs4+WhrJdr7j/yBzm+6QAwfWQQIgCkqwc0W4ywgXDq/RvsVfg7Hw2CAR9Vr41EH87TXl/wY="}]},"_npmUser":{"name":"myuske","email":"circlemountain.ym@gmail.com"},"directories":{},"maintainers":[{"name":"myuske","email":"circlemountain.ym@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/spire-plugin-policy-quorum_0.1.0_1788760691434_0.7004372368759093"},"_hasShrinkwrap":false}},"time":{"created":"2026-09-07T05:58:11.261Z","0.1.0":"2026-09-07T05:58:11.566Z","modified":"2026-09-07T05:58:11.839Z"},"maintainers":[{"name":"myuske","email":"circlemountain.ym@gmail.com"}],"description":"Quorum progression policy for Spire","homepage":"https://github.com/EdV4H/spire#readme","repository":{"type":"git","url":"git+https://github.com/EdV4H/spire.git","directory":"plugins/policy-quorum"},"bugs":{"url":"https://github.com/EdV4H/spire/issues"},"license":"MIT","readme":"# @edv4h/spire-plugin-policy-quorum\n\n「N 本の経路が合流したら開く」進行ポリシー。組み込みの `strict` は完了した先行ノードが1つあれば開くが、これは `threshold` 個を要求する。\n\n```ts\nconst spire = await createSpire({\n\tplugins: [createQuorumPolicyPlugin({ threshold: 2 })],\n});\n\ncomplete(map, state, nodeId, { policy: \"quorum\", spire: spire.value });\n```\n\nポリシーが ID で引かれることの意味はここにある。ホストは自分の設定 JSON に `{ \"policy\": \"quorum\" }` と書くだけでよく、ルールが変わってもアプリケーションのコードパスは変わらない。\n\n`allowUnderfilled`（既定 true）は、先行ノードが `threshold` より少ないノードを threshold で締め上げないためのもの。これが無いと、1本道でしか到達できないノードは threshold 2 で永久に開かない。\n","readmeFilename":"README.md","_rev":"1-11a4ff85b5972e333b8fbd835ed074a4"}