{"_id":"@buildtovalue/registry","_rev":"2-169ff18c21af02a5bf262d1f9986ba85","name":"@buildtovalue/registry","dist-tags":{"latest":"1.0.2-next.0"},"versions":{"1.0.1":{"name":"@buildtovalue/registry","version":"1.0.1","keywords":["bpmn","versioning","governance","audit","changelog","rollout"],"license":"Apache-2.0","_id":"@buildtovalue/registry@1.0.1","maintainers":[{"name":"danzeroum","email":"danzeroum@gmail.com"}],"homepage":"https://github.com/danzeroum/bpmn#readme","bugs":{"url":"https://github.com/danzeroum/bpmn/issues"},"dist":{"shasum":"8c94880a9194ced99c7881873def976009db2a0c","tarball":"https://registry.npmjs.org/@buildtovalue/registry/-/registry-1.0.1.tgz","fileCount":40,"integrity":"sha512-kTSXnfRBWl8g7/GImrfmdxzIRjz44nwY8B2sXMHBgU0XXKXRbPLCA/c+Lb63WnubaYHexNXPMW+EATKi1EpwdQ==","signatures":[{"sig":"MEUCIQDzlqy1GGL2WcQ6R/KfC5f8qTCTFxiAXVrvQXW7iwu9CwIgFcgoksERsVu+iU5g4wtrBv1Ed+eWuCiIJt6xrx4F0ts=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":90898},"main":"./dist/cjs/index.js","type":"module","_from":"file:buildtovalue-registry-1.0.1.tgz","types":"./dist/esm/index.d.ts","module":"./dist/esm/index.js","engines":{"node":">=20"},"exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"scripts":{"build":"tsc -p tsconfig.build.json && tsc -p tsconfig.cjs.json && node ../../scripts/write-cjs-package.mjs dist/cjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_npmUser":{"name":"danzeroum","email":"danzeroum@gmail.com"},"_resolved":"C:\\Users\\danni\\AppData\\Local\\Temp\\2da49dff7a61d530cb412e487b9e0340\\buildtovalue-registry-1.0.1.tgz","_integrity":"sha512-kTSXnfRBWl8g7/GImrfmdxzIRjz44nwY8B2sXMHBgU0XXKXRbPLCA/c+Lb63WnubaYHexNXPMW+EATKi1EpwdQ==","repository":{"url":"git+https://github.com/danzeroum/bpmn.git","type":"git","directory":"packages/registry"},"_npmVersion":"10.9.3","description":"Headless version governance for bpmn-react: a queryable registry of diagram versions with temporal validity, publication channels/environments, dual changelog and execution pinning (run-binding). Zero runtime dependencies.","directories":{},"sideEffects":false,"_nodeVersion":"22.20.0","dependencies":{"@buildtovalue/core":"1.1.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/registry_1.0.1_1784345285515_0.3296802964726928","host":"s3://npm-registry-packages-npm-production"}},"1.0.2-next.0":{"name":"@buildtovalue/registry","version":"1.0.2-next.0","description":"Headless version governance for bpmn-react: a queryable registry of diagram versions with temporal validity, publication channels/environments, dual changelog and execution pinning (run-binding). Zero runtime dependencies.","license":"Apache-2.0","type":"module","sideEffects":false,"engines":{"node":">=20"},"main":"./dist/cjs/index.js","module":"./dist/esm/index.js","types":"./dist/esm/index.d.ts","exports":{".":{"types":"./dist/esm/index.d.ts","import":"./dist/esm/index.js","require":"./dist/cjs/index.js"}},"dependencies":{"@buildtovalue/core":"1.2.0-next.0"},"keywords":["bpmn","versioning","governance","audit","changelog","rollout"],"repository":{"type":"git","url":"git+https://github.com/danzeroum/bpmn.git","directory":"packages/registry"},"publishConfig":{"access":"public"},"scripts":{"build":"tsc -p tsconfig.build.json && tsc -p tsconfig.cjs.json && node ../../scripts/write-cjs-package.mjs dist/cjs","typecheck":"tsc -p tsconfig.json --noEmit"},"_id":"@buildtovalue/registry@1.0.2-next.0","bugs":{"url":"https://github.com/danzeroum/bpmn/issues"},"homepage":"https://github.com/danzeroum/bpmn#readme","_integrity":"sha512-fbYIAWCR5yS2dMgSvydzUCw3qQvodFPZgjhg/H0iOaJ3yh8Adzes087AeCxB9GK51oxJNOo4RZ417BjuAWL/kA==","_resolved":"/tmp/e4b55c820f0f5dc93d9c9133c7039d86/buildtovalue-registry-1.0.2-next.0.tgz","_from":"file:buildtovalue-registry-1.0.2-next.0.tgz","_nodeVersion":"22.23.1","_npmVersion":"10.9.8","dist":{"integrity":"sha512-fbYIAWCR5yS2dMgSvydzUCw3qQvodFPZgjhg/H0iOaJ3yh8Adzes087AeCxB9GK51oxJNOo4RZ417BjuAWL/kA==","shasum":"234256f8c80a98587e5888cc488e870e6fe5c652","tarball":"https://registry.npmjs.org/@buildtovalue/registry/-/registry-1.0.2-next.0.tgz","fileCount":40,"unpackedSize":90665,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCjUhjOZc0a3GmkyZ2DhLIWytLBPxNTaikuIgdS85+PygIhALyBgUyPToxzjFctesTRCQfMz5u7cJr2WUlxIb+xhhTV"}]},"_npmUser":{"name":"danzeroum","email":"danzeroum@gmail.com"},"directories":{},"maintainers":[{"name":"danzeroum","email":"danzeroum@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/registry_1.0.2-next.0_1784725565234_0.5032922388651011"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-18T03:28:05.335Z","modified":"2026-07-22T13:06:05.568Z","1.0.1":"2026-07-18T03:28:05.659Z","1.0.2-next.0":"2026-07-22T13:06:05.376Z"},"bugs":{"url":"https://github.com/danzeroum/bpmn/issues"},"license":"Apache-2.0","homepage":"https://github.com/danzeroum/bpmn#readme","keywords":["bpmn","versioning","governance","audit","changelog","rollout"],"repository":{"type":"git","url":"git+https://github.com/danzeroum/bpmn.git","directory":"packages/registry"},"description":"Headless version governance for bpmn-react: a queryable registry of diagram versions with temporal validity, publication channels/environments, dual changelog and execution pinning (run-binding). Zero runtime dependencies.","maintainers":[{"name":"danzeroum","email":"danzeroum@gmail.com"}],"readme":"# @buildtovalue/registry\n\nHeadless **version governance** for bpmn-react — the queryable layer over the core lifecycle.\nZero runtime dependencies (depends only on `@buildtovalue/core`).\n\nThe core `LifecycleEngine` governs *how* a version moves through\n`draft → test → candidate → active → deprecated → retired`. This package records the resulting\nimmutable versions and answers the audit questions the lifecycle alone can't:\n\n- **\"Which version was in effect on day X?\"** — temporal validity via `activeAt(date)`.\n- **\"What changed between v1 and v2?\"** — `diffBetween(v1, v2)` over stored snapshots.\n- **\"What's live on the pilot channel right now?\"** — publication channels/environments.\n- **\"Which exact version produced this delivery?\"** — execution pinning (`bindRun`).\n\n```ts\nimport { VersionRegistry, bindRun } from '@buildtovalue/registry';\n\nconst registry = new VersionRegistry({ sink: myDatabaseSink }); // sink optional\n\n// Record a promoted version (snapshot + content hash captured automatically)\nawait registry.register(diagram, { technicalNotes: 'Reworked the approval gate' });\n\n// Roll out gradually — a version can be active on pilot while another is on general\nawait registry.publish(diagram.version.id, { channel: 'pilot', status: 'active' });\n\n// Query\nregistry.activeAt('2026-06-01', { channel: 'pilot' }); // entry in effect then\nregistry.diffBetween('v1', 'v2');                       // structured diff\nregistry.lineageOf('v3');                               // ancestor chain, oldest → newest\n\n// Pin an execution to the exact version that produced it\nconst run = bindRun(registry.get(diagram.version.id)!, { channel: 'pilot' });\n// run = { runId, versionId, semanticVersion, snapshotHash, channel, boundAt } — frozen\n```\n\n## Guarantees\n\n- **Snapshots are content-hashed.** `register` stores a deep copy plus its SHA-256; `export`/\n  `import` round-trip through external storage and `import` refuses a tampered snapshot.\n- **Lanes have one live version.** Publishing to a lane (channel + optional environment) closes the\n  previous open publication, so `activeAt` is unambiguous.\n- **Runs are born pinned.** A `RunBinding` is a frozen value derived from the snapshot hash —\n  promoting or superseding the version later never mutates a run already in flight.\n\nSee [docs/registry.md](../../docs/registry.md) for the full guide. License: Apache-2.0.\n","readmeFilename":"README.md"}