{"_id":"@acausal/distributions","name":"@acausal/distributions","dist-tags":{"alpha":"3.0.0-alpha.3","latest":"3.0.0-alpha.3"},"versions":{"3.0.0-alpha.3":{"name":"@acausal/distributions","version":"3.0.0-alpha.3","description":"Weighted random selection from discrete distributions — type-safe, serializable, with immutable and mutable APIs","author":{"name":"David Robinson"},"license":"Apache-2.0","homepage":"https://github.com/abrisene/acausal/tree/main/packages/distributions","repository":{"type":"git","url":"git+https://github.com/abrisene/acausal.git","directory":"packages/distributions"},"bugs":{"url":"https://github.com/abrisene/acausal/issues"},"keywords":["distribution","weighted-random","probability","immutable","serializable","procedural-generation"],"type":"module","main":"./dist/index.cjs","module":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"import":{"types":"./dist/index.d.ts","default":"./dist/index.js"},"require":{"types":"./dist/index.d.cts","default":"./dist/index.cjs"}}},"dependencies":{"@acausal/random":"3.0.0-alpha.3","@acausal/scalr":"3.0.0-alpha.3"},"devDependencies":{"tsup":"^8.2.4","typescript":"^5.6.3"},"scripts":{"build":"tsup","dev":"tsup --watch","typecheck":"tsc --noEmit","test":"vitest run"},"_id":"@acausal/distributions@3.0.0-alpha.3","_integrity":"sha512-DG5k1wLZo0RDqqg9dVD//OehrCeJE+5lOYrfmrSOFenpWabuAACU+79B3Svk0KLoRhFtaFbVRrxDwkH2zISB+Q==","_resolved":"/tmp/acausal-alpha3-pnpm-test/acausal-distributions-3.0.0-alpha.3.tgz","_from":"file:/tmp/acausal-alpha3-pnpm-test/acausal-distributions-3.0.0-alpha.3.tgz","_nodeVersion":"24.14.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-DG5k1wLZo0RDqqg9dVD//OehrCeJE+5lOYrfmrSOFenpWabuAACU+79B3Svk0KLoRhFtaFbVRrxDwkH2zISB+Q==","shasum":"2ad2169fc0470afe56827bac7d96a989f02b424f","tarball":"https://registry.npmjs.org/@acausal/distributions/-/distributions-3.0.0-alpha.3.tgz","fileCount":9,"unpackedSize":99283,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQDfLOO80u0NXlNPXGBcO1K67ILtFAI2Wf2OnShBqOb1DQIhAKxO176lsy+v9YcLsHtj9cnFF5kN4RFqyTLYVlkJ9gDz"}]},"_npmUser":{"name":"monetise","email":"dr@monetise.io"},"directories":{},"maintainers":[{"name":"monetise","email":"dr@monetise.io"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/distributions_3.0.0-alpha.3_1784578685046_0.9433219273666862"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-20T20:18:04.936Z","3.0.0-alpha.3":"2026-07-20T20:18:05.191Z","modified":"2026-07-20T20:18:05.396Z"},"maintainers":[{"name":"monetise","email":"dr@monetise.io"}],"description":"Weighted random selection from discrete distributions — type-safe, serializable, with immutable and mutable APIs","homepage":"https://github.com/abrisene/acausal/tree/main/packages/distributions","keywords":["distribution","weighted-random","probability","immutable","serializable","procedural-generation"],"repository":{"type":"git","url":"git+https://github.com/abrisene/acausal.git","directory":"packages/distributions"},"author":{"name":"David Robinson"},"bugs":{"url":"https://github.com/abrisene/acausal/issues"},"license":"Apache-2.0","readme":"# @acausal/distributions\n\nWeighted random selection from discrete distributions — type-safe, serializable, with immutable and mutable APIs.\n\n## Install\n\n```bash\nnpm install @acausal/distributions\n```\n\n## Usage\n\n```typescript\nimport { Distribution } from '@acausal/distributions';\n\n// Create from source weights\nconst loot = Distribution.new({ gold: 60, silver: 30, diamond: 10 });\n\n// Pick one\nDistribution.pickOne(loot);  // 'gold' (60% chance)\n\n// Pick with mask (exclude items)\nDistribution.pickOne(loot, ['gold']);  // 'silver' or 'diamond'\n\n// Modify immutably\nconst boosted = Distribution.addNormalValues(loot, { diamond: 0.1 });\n\n// Immutable class variant\nconst dist = new Distribution({ source: { a: 3, b: 1 }, seed: 42 });\nconst frozen = dist.clone(true);  // strip source, keep normalized\n```\n\nSupports blending, masking, source/normal weight separation, and full serialization. Built on [@acausal/random](https://github.com/abrisene/acausal/tree/main/packages/random).\n\nPart of the [acausal](https://github.com/abrisene/acausal) procedural generation toolkit.\n","readmeFilename":"README.md","_rev":"1-af7a41df4f58ab3723fd2a161c849b3e"}