{"_id":"@anephenix/systems","_rev":"16-2b0381ca62a43866f1970763aabae165","name":"@anephenix/systems","dist-tags":{"latest":"0.0.20"},"versions":{"0.0.2":{"name":"@anephenix/systems","version":"0.0.2","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.2","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"dist":{"shasum":"00c50a3420ae697141cceacfe4507b118f941853","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.2.tgz","fileCount":33,"integrity":"sha512-nsgQCXyh8PBo4u0D+Xn5UNxGQ26b/Po/CcJ6gucAzcePs2Z0LiKaOq7ElqjARuhVB7p8iqz3Xh9bR6slcYOQ1w==","signatures":[{"sig":"MEUCIGhNIZOYgGlWKqU+C4NRcUayXX4QicmXJldvKpTutTyIAiEAl9DmizLF8gSqqv517leLcZMaBB+SzDdGYERfvelo2TM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":37158},"main":"dist/index.js","husky":{"hooks":{"pre-commit":"npm run build && git add dist/ && npm t"}},"engines":{"node":">=10"},"gitHead":"cfd1b7ac1b3e499050410bc4b80158673c8a15cc","scripts":{"lint":"npx eslint .","size":"size-limit","test":"NODE_ENV=test npx mocha --require ts-node/register --extensions ts test/**/* ","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","update-changelog":"npx ts-node scripts/update-changelog.ts","prepare-patch-release":"npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"paulbjensen","email":"paulbjensen@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/index.js","limit":"10 kB"}],"_npmVersion":"11.0.0","description":"Systems","directories":{},"_nodeVersion":"22.12.0","dependencies":{"uuid":"^8.3.2"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","husky":"^9.1.7","mocha":"^11.1.0","eslint":"^9.20.0","tslint":"^6.1.3","globals":"^15.14.0","ts-node":"^10.9.2","prettier":"^2.5.1","@eslint/js":"^9.20.0","size-limit":"^10.0.3","typescript":"^5.7.3","@types/uuid":"^8.3.4","@types/mocha":"^10.0.10","typescript-eslint":"^8.23.0","size-limit-preset-node-lib":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.2_1739096431688_0.6798445293076931","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@anephenix/systems","version":"0.0.3","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.3","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"dist":{"shasum":"3d52b5b6955bced0343714a01b2c9008cd0168d4","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.3.tgz","fileCount":26,"integrity":"sha512-qHLgWFSrDuMQfvZwyZLX4pufhvQblAC3E4Nd1Pa2ZycKUxEILKzIjf0Latc9KqAvYYK90t7TNYn6HBkeZ1w8yQ==","signatures":[{"sig":"MEYCIQDG64AI4xR67GQy2LpcBNm6fq7XG4drUJl+7EqvNO2BcwIhAL9D0LXjMzc/BJGoNntZ1B+jid4WnccRD6XRxppiGEoK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":35396},"main":"dist/index.js","husky":{"hooks":{"pre-commit":"npm run build && git add dist/ && npm t"}},"engines":{"node":">=10"},"gitHead":"6aa4a7738715bed81f2b9a360748ba02441524c8","scripts":{"lint":"npx eslint .","size":"size-limit","test":"NODE_ENV=test npx mocha --require ts-node/register --extensions ts test/**/* ","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","update-changelog":"npx ts-node scripts/update-changelog.ts","prepare-patch-release":"npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"paulbjensen","email":"paulbjensen@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/index.js","limit":"10 kB"}],"_npmVersion":"10.9.2","description":"Systems","directories":{},"_nodeVersion":"22.13.1","dependencies":{"uuid":"^11.0.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","husky":"^9.1.7","mocha":"^11.1.0","eslint":"^9.20.0","tslint":"^6.1.3","globals":"^15.14.0","ts-node":"^10.9.2","prettier":"^3.4.2","@eslint/js":"^9.20.0","size-limit":"^11.1.6","typescript":"^5.7.3","@types/uuid":"^8.3.4","@types/mocha":"^10.0.10","typescript-eslint":"^8.23.0","size-limit-preset-node-lib":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.3_1739102419709_0.006511590360227748","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@anephenix/systems","version":"0.0.4","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.4","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"dist":{"shasum":"cabc16f04a90f05a9f90b2c789315b218d1794ee","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.4.tgz","fileCount":21,"integrity":"sha512-XDW9ZbDWP5VjkvQF55XqzsDfpurTrplnHejcHJbA4IcOfstNj8k0KeLjBQBH2kNXwMmrw3X94YAdyQt3hGMAoA==","signatures":[{"sig":"MEUCIF1r8ykRMsU/sBTgVFamtbswXI8bdDUugHz1FGyWntGhAiEAm8SXBSuB6ucuBWnfOyLY/beDG4ZUVU+7SlPYlIaB9yU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":48739},"main":"dist/lib/index.js","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"engines":{"node":">=10"},"gitHead":"154435662c6466ea51daccc5e5c45fbacd03beb0","scripts":{"lint":"npx eslint .","size":"size-limit","test":"NODE_ENV=test npx mocha --require ts-node/register --extensions ts test/**/* ","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","update-changelog":"npx ts-node scripts/update-changelog.ts","prepare-patch-release":"npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"paulbjensen","email":"paulbjensen@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"10.9.2","description":"Systems","directories":{},"_nodeVersion":"22.14.0","dependencies":{"uuid":"^11.0.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","husky":"^9.1.7","mocha":"^11.1.0","eslint":"^9.20.0","tslint":"^6.1.3","globals":"^16.0.0","ts-node":"^10.9.2","prettier":"^3.4.2","@eslint/js":"^9.20.0","size-limit":"^11.1.6","typescript":"^5.7.3","@types/uuid":"^10.0.0","@types/mocha":"^10.0.10","typescript-eslint":"^8.23.0","size-limit-preset-node-lib":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.4_1742114247274_0.9540062222407941","host":"s3://npm-registry-packages-npm-production"}},"0.0.5":{"name":"@anephenix/systems","version":"0.0.5","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.5","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"dist":{"shasum":"d0729676d5fd3bd51560fe3ad6d640076a5395da","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.5.tgz","fileCount":21,"integrity":"sha512-xM2OOnDRuz3gAlCf9cxC0/BwFzcS0cgL19hShlu/Ju6HUJC90RA3pWiBEUuHtS/yioGum0UzAPV1SkhiX+Sa2A==","signatures":[{"sig":"MEUCIQCiZ6uGKnhNUDTezj9gHnTBh2ZadwO1W6rpMvdfffZOfgIgHaVo6dj4ylcVT2e6LJLmbCQ9/7gvfguc1WQOsS5mR/s=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":61486},"main":"dist/lib/index.js","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"engines":{"node":">=10"},"gitHead":"6e16a8fda7641882ca7d8a4534ecc436c95aa0b7","scripts":{"lint":"npx eslint .","size":"size-limit","test":"NODE_ENV=test npx mocha --require ts-node/register --extensions ts test/**/* ","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","update-changelog":"npx ts-node scripts/update-changelog.ts","prepare-patch-release":"npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"paulbjensen","email":"paulbjensen@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"10.9.2","description":"Systems","directories":{},"_nodeVersion":"22.14.0","dependencies":{"uuid":"^11.0.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","husky":"^9.1.7","mocha":"^11.1.0","eslint":"^9.20.0","tslint":"^6.1.3","globals":"^16.0.0","ts-node":"^10.9.2","prettier":"^3.4.2","@eslint/js":"^9.20.0","size-limit":"^11.1.6","typescript":"^5.7.3","@types/uuid":"^10.0.0","@types/mocha":"^10.0.10","typescript-eslint":"^8.23.0","size-limit-preset-node-lib":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.5_1742768524548_0.7162023811623341","host":"s3://npm-registry-packages-npm-production"}},"0.0.6":{"name":"@anephenix/systems","version":"0.0.6","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.6","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"dist":{"shasum":"a4c19dcc6d53b2bbf0d5c65f95a1a3eba93dbaf9","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.6.tgz","fileCount":21,"integrity":"sha512-FQlf7TJnjoOkJGM6hbWO2eWoo/EpLkd8ZXJftTzTv0YCLEmlWZjBFpJ2mX5RWOYAgPQg1KO7RGfep8p8EkPUuw==","signatures":[{"sig":"MEQCIQDbINVRMRCvae/UODYfDYpAH64ej3ygcH0iueWm3wCOOgIfKLhC+6/taTp5ywdMrlcf5pePoEwnIam6NeLFxL31Gw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66841},"main":"dist/lib/index.js","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"engines":{"node":">=10"},"gitHead":"ccda01e4f9f5a0c66e00b98dea28953682336770","scripts":{"lint":"npx eslint .","size":"size-limit","test":"NODE_ENV=test npx mocha --require ts-node/register --extensions ts test/**/* ","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","update-changelog":"npx ts-node scripts/update-changelog.ts","prepare-patch-release":"npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"paulbjensen","email":"paulbjensen@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"10.9.2","description":"Systems","directories":{},"_nodeVersion":"22.14.0","dependencies":{"uuid":"^11.0.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","husky":"^9.1.7","mocha":"^11.1.0","eslint":"^9.20.0","tslint":"^6.1.3","globals":"^16.0.0","ts-node":"^10.9.2","prettier":"^3.4.2","@eslint/js":"^9.20.0","size-limit":"^11.1.6","typescript":"^5.7.3","@types/uuid":"^10.0.0","@types/mocha":"^10.0.10","typescript-eslint":"^8.23.0","size-limit-preset-node-lib":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.6_1742802985259_0.9708929526218908","host":"s3://npm-registry-packages-npm-production"}},"0.0.7":{"name":"@anephenix/systems","version":"0.0.7","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.7","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"dist":{"shasum":"8a1583ee614df1f9e6e740cc5dc402af04bbf6e1","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.7.tgz","fileCount":21,"integrity":"sha512-fe80EpRlmgvIAlqnI9emdmdteeJVVC6Gu3+faGR3MhQU04AGNy3oTRvV9rxIc9ZDbkZnTX04Wg1SPsmKor8dHw==","signatures":[{"sig":"MEYCIQCWE8EUcRQegLJ5zV+U8Nz4UPai/jQhMV/gHXsCnwTozQIhAKC4kmUAUw87tKTprmPmqMr2Tqnzdu1R6KZtc88nIF16","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":74741},"main":"dist/lib/index.js","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"engines":{"node":">=10"},"gitHead":"62f79d30fb52547b2f0ea38bc0acabd8f096ce09","scripts":{"lint":"npx eslint .","size":"size-limit","test":"NODE_ENV=test npx mocha --require ts-node/register --extensions ts test/**/* ","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","update-changelog":"npx ts-node scripts/update-changelog.ts","prepare-patch-release":"npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"paulbjensen","email":"paulbjensen@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"10.9.2","description":"Systems","directories":{},"_nodeVersion":"22.14.0","dependencies":{"uuid":"^11.0.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","husky":"^9.1.7","mocha":"^11.1.0","eslint":"^9.20.0","tslint":"^6.1.3","globals":"^16.0.0","ts-node":"^10.9.2","prettier":"^3.4.2","@eslint/js":"^9.20.0","size-limit":"^11.1.6","typescript":"^5.7.3","@types/uuid":"^10.0.0","@types/mocha":"^10.0.10","typescript-eslint":"^8.23.0","size-limit-preset-node-lib":"^0.3.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.7_1744117325511_0.2770131097381985","host":"s3://npm-registry-packages-npm-production"}},"0.0.8":{"name":"@anephenix/systems","version":"0.0.8","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.8","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"dist":{"shasum":"a946e039a64b88e5aeda68b5796636409e7370ee","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.8.tgz","fileCount":21,"integrity":"sha512-KVdguzFjLk1TkG+dykDMbjKTKHIY+c3fP0J+1cJFR5IkKx1UiPHwD4/8V/oPlup7iKOqRtChxIyQZoqmiumRjA==","signatures":[{"sig":"MEYCIQCDFoBr6TRaUER1BBIMtWKaEEHzE5nKooLD9pRzp//KewIhAIDI7ccZsB8fp+vMvu9CQuH0N6ShooBkmr7xkv+LQbg+","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":76849},"main":"dist/lib/index.js","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"engines":{"node":">=10"},"gitHead":"25b2928993a44c5f109aa81a82e0626a815c2462","scripts":{"lint":"npx eslint .","size":"size-limit","test":"NODE_ENV=test npx mocha --require ts-node/register --extensions ts test/**/* ","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","update-changelog":"npx ts-node scripts/update-changelog.ts","prepare-patch-release":"npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"paulbjensen","email":"paulbjensen@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"10.9.2","description":"Systems","directories":{},"_nodeVersion":"22.15.0","dependencies":{"uuid":"^11.0.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","husky":"^9.1.7","mocha":"^11.1.0","eslint":"^9.20.0","tslint":"^6.1.3","globals":"^16.0.0","ts-node":"^10.9.2","prettier":"^3.4.2","@eslint/js":"^9.20.0","size-limit":"^11.1.6","typescript":"^5.7.3","@types/uuid":"^10.0.0","@types/mocha":"^10.0.10","typescript-eslint":"^8.23.0","size-limit-preset-node-lib":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.8_1748269731702_0.31059531395498263","host":"s3://npm-registry-packages-npm-production"}},"0.0.9":{"name":"@anephenix/systems","version":"0.0.9","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.9","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"dist":{"shasum":"a443e53937ac8ac8b846274065fe4b51524eecbe","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.9.tgz","fileCount":21,"integrity":"sha512-ngRUb7+zNmN8lxBG90wA2mL6h4kmQZWCMmKu8W95C5ymq9VJlx1R6zee1SpDRQz2UMiryvJEkjXGV+n0Ly+ViA==","signatures":[{"sig":"MEUCIQDxmaxoSl4D13okjsGRXG8sLRRhJJCC+cid/uhb+KYq1AIgfQlM/qdhni5LY+hhPf4UWcm9vQZ4Z892xdF2rVoweFI=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":77750},"main":"dist/lib/index.js","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"engines":{"node":">=10"},"gitHead":"808a4e77ab3c519c3968b5b941fe1d63dc74c96d","scripts":{"lint":"npx eslint .","size":"size-limit","test":"NODE_ENV=test npx mocha --require ts-node/register --extensions ts test/**/* ","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","update-changelog":"npx ts-node scripts/update-changelog.ts","prepare-patch-release":"npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"paulbjensen","email":"paulbjensen@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"10.9.2","description":"Systems","directories":{},"_nodeVersion":"22.16.0","dependencies":{"uuid":"^11.0.5"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","husky":"^9.1.7","mocha":"^11.1.0","eslint":"^9.20.0","tslint":"^6.1.3","globals":"^16.0.0","ts-node":"^10.9.2","prettier":"^3.4.2","@eslint/js":"^9.20.0","size-limit":"^11.1.6","typescript":"^5.7.3","@types/uuid":"^10.0.0","@types/mocha":"^10.0.10","typescript-eslint":"^8.23.0","size-limit-preset-node-lib":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.9_1749541703339_0.6838054713512818","host":"s3://npm-registry-packages-npm-production"}},"0.0.10":{"name":"@anephenix/systems","version":"0.0.10","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.10","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"dist":{"shasum":"b75b9d1557e3f6b9cca60270ca2757a7f5093080","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.10.tgz","fileCount":21,"integrity":"sha512-lqrLoJmQsaWjPoSaQedlEc7sU9jZWF1DsbXKH0WTx/AJuhyZsuIRtmQbc0Q1JslkKPABQtqJtxE9eVvW0IKsIQ==","signatures":[{"sig":"MEUCIQC1BmjyWHxmf58hqjhR1dhiD3oDLtWHcKk2b0JukLO50AIgWJH5MZkAik+6wXhXEasJnnSYrUr7j/ijq924ExvrG3A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":81634},"main":"dist/lib/index.js","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"engines":{"node":">=10"},"gitHead":"c7a05bc79313c33715673b7faa5e22d69cb5bde4","scripts":{"lint":"npx eslint .","size":"size-limit","test":"NODE_ENV=test npx mocha --require ts-node/register --extensions ts test/**/* ","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","update-changelog":"npx ts-node scripts/update-changelog.ts","prepare-patch-release":"npm t && npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"paulbjensen","email":"paulbjensen@gmail.com"},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"10.9.3","description":"Systems","directories":{},"_nodeVersion":"22.20.0","dependencies":{"uuid":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","husky":"^9.1.7","mocha":"^11.1.0","eslint":"^9.20.0","tslint":"^6.1.3","globals":"^16.0.0","ts-node":"^10.9.2","prettier":"^3.4.2","@eslint/js":"^9.20.0","size-limit":"^11.1.6","typescript":"^5.7.3","@types/uuid":"^11.0.0","@types/mocha":"^10.0.10","typescript-eslint":"^8.23.0","size-limit-preset-node-lib":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.10_1759738640767_0.7856646581363709","host":"s3://npm-registry-packages-npm-production"}},"0.0.14":{"name":"@anephenix/systems","version":"0.0.14","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.14","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"homepage":"https://github.com/anephenix/systems","bugs":{"url":"https://github.com/anephenix/systems/issues"},"dist":{"shasum":"6b4978930dad1d4d66b5ffa00be4abed344d34bb","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.14.tgz","fileCount":20,"integrity":"sha512-Pro7HjDuCThsMyp/+4PuFJcs7d2nXfKDjG8/hBX+RhxdSCdNqrrwO2A2wbLVjarnUQcsazWt0vjQy5y6gy0zZg==","signatures":[{"sig":"MEUCIQDkZfGFx8ISqfx9UfBce0wFSIMFuGpZ3toXILkulfGq4QIgD4yguxHhw8spVMm0P4l3VPsAODQjuGGSf1pNsETFWzE=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anephenix%2fsystems@0.0.14","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30847},"main":"dist/lib/index.js","type":"module","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"types":"dist/lib/index.d.ts","engines":{"node":">=10"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/lib/index.js"}},"gitHead":"65a83b68058df7f91360564cef0967342f5dc4e2","scripts":{"lint":"npx eslint .","size":"size-limit","test":"NODE_ENV=test npx vitest --run","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","prepare":"husky","lint:package":"npx publint","update-changelog":"node --experimental-strip-types scripts/update-changelog.ts","prepare-patch-release":"npm t && npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:972960ad-0dba-4b4d-9b37-efabd4750f02"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"repository":{"url":"git+https://github.com/anephenix/systems.git","type":"git"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"11.6.2","description":"Systems","directories":{},"_nodeVersion":"24.12.0","dependencies":{"uuid":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","husky":"^9.1.7","eslint":"^9.20.0","tslint":"^6.1.3","vitest":"^4.0.3","globals":"^16.0.0","publint":"^0.3.14","prettier":"^3.4.2","@eslint/js":"^9.20.0","size-limit":"^12.0.0","typescript":"^5.7.3","@types/node":"^25.0.2","@types/uuid":"^11.0.0","@types/mocha":"^10.0.10","@size-limit/file":"^12.0.0","typescript-eslint":"^8.23.0","size-limit-node-esbuild":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.14_1767558062321_0.5624122195531187","host":"s3://npm-registry-packages-npm-production"}},"0.0.15":{"name":"@anephenix/systems","version":"0.0.15","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.15","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"homepage":"https://github.com/anephenix/systems","bugs":{"url":"https://github.com/anephenix/systems/issues"},"dist":{"shasum":"26f8b23737aba60b263d7fa51592e78cbc89c4f7","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.15.tgz","fileCount":20,"integrity":"sha512-+k1qg7IHWBL9Ab2mQCl4x9mJkbl7ALWYWDx26hGm8ZxevwWeQsW6EZIIps8h9YmjaMsrXvlME/l7QzAoBxuGSg==","signatures":[{"sig":"MEUCIQCqW4pX70Mp5HpkSUu55dDsVXiGJhfy2xFzG3K3XtDcrQIgF0PbjfTwixgLavPX5zaX7rOXqJdbwL+Bs4TldxkTiwo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anephenix%2fsystems@0.0.15","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30807},"main":"dist/lib/index.js","type":"module","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"types":"dist/lib/index.d.ts","engines":{"node":">=10"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/lib/index.js"}},"gitHead":"40dd81b2611c905d0f307ec1d2c87ff7310c32d1","scripts":{"lint":"npx @biomejs/biome check .","size":"size-limit","test":"NODE_ENV=test npx vitest --run","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","prepare":"husky","lint:package":"npx publint","update-changelog":"node --experimental-strip-types scripts/update-changelog.ts","prepare-patch-release":"npm t && npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:972960ad-0dba-4b4d-9b37-efabd4750f02"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"repository":{"url":"git+https://github.com/anephenix/systems.git","type":"git"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"11.6.2","description":"Systems","directories":{},"_nodeVersion":"24.13.0","dependencies":{"uuid":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^17.1.0","husky":"^9.1.7","tslint":"^6.1.3","vitest":"^4.0.3","globals":"^17.0.0","publint":"^0.3.14","prettier":"^3.4.2","size-limit":"^12.0.0","typescript":"^5.7.3","@types/node":"^25.0.2","@types/uuid":"^11.0.0","@types/mocha":"^10.0.10","@biomejs/biome":"2.3.15","@size-limit/file":"^12.0.0","size-limit-node-esbuild":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.15_1770926622810_0.4038274483238824","host":"s3://npm-registry-packages-npm-production"}},"0.0.16":{"name":"@anephenix/systems","version":"0.0.16","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.16","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"homepage":"https://github.com/anephenix/systems","bugs":{"url":"https://github.com/anephenix/systems/issues"},"dist":{"shasum":"1bec9d56240499c092bfb926f0fdef75e7690127","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.16.tgz","fileCount":20,"integrity":"sha512-Uk9cbkq98V9Wln6rE9t/3ZMQtNw/0c1SdCPi/MYH3fukSOXzYzxxLTGUJrfa7W5lfQK6Y+5phN8zRDDfRhy+7g==","signatures":[{"sig":"MEYCIQDepSq0phWRIA4Pd7Mv+2W/yvAk1xYuhJjCZq3JQ+FzRgIhAJWYby1gmA9TGd+76ZxLuf3kKAdN7LyBESOa1B/t48j7","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anephenix%2fsystems@0.0.16","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30857},"main":"dist/lib/index.js","type":"module","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"types":"dist/lib/index.d.ts","engines":{"node":">=10"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/lib/index.js"}},"gitHead":"f8a32537f7beeb1a1cf0b700a210a90ef5d6f594","scripts":{"lint":"npx @biomejs/biome check .","size":"size-limit","test":"NODE_ENV=test npx vitest --run","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","format":"npx @biomejs/biome check . --write","prepare":"husky","lint:package":"npx publint","update-changelog":"node --experimental-strip-types scripts/update-changelog.ts","prepare-patch-release":"npm t && npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:972960ad-0dba-4b4d-9b37-efabd4750f02"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"repository":{"url":"git+https://github.com/anephenix/systems.git","type":"git"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"11.9.0","description":"Systems","directories":{},"_nodeVersion":"24.14.0","dependencies":{"uuid":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^18.0.0","husky":"^9.1.7","tslint":"^6.1.3","vitest":"^4.0.3","globals":"^17.0.0","publint":"^0.3.14","prettier":"^3.4.2","size-limit":"^12.0.0","typescript":"^5.7.3","@types/node":"^25.0.2","@types/uuid":"^11.0.0","@types/mocha":"^10.0.10","@biomejs/biome":"^2.4.4","@size-limit/file":"^12.0.0","size-limit-node-esbuild":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.16_1773776824527_0.013906314986787516","host":"s3://npm-registry-packages-npm-production"}},"0.0.17":{"name":"@anephenix/systems","version":"0.0.17","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.17","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"homepage":"https://github.com/anephenix/systems","bugs":{"url":"https://github.com/anephenix/systems/issues"},"dist":{"shasum":"f36811a8369c6f6a532054f967f1cc92b81ae375","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.17.tgz","fileCount":20,"integrity":"sha512-xKe11YMb02kK7a56v90U4pL8Zx+wEFqpUs09ZAsnfjTZU1/iEmLJVw7N9AJm7ac/Xswfpuv0GDpCT0m4KqWmtA==","signatures":[{"sig":"MEQCIHzJsTJUBLFYm25qCKj4ZjJGsesGAmRb/3vgWaHqazfqAiBk6GNIfcwx2pyCLLnyUfyDx7i9MLKL1UB6qGWCs9EfpQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anephenix%2fsystems@0.0.17","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":30857},"main":"dist/lib/index.js","type":"module","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"types":"dist/lib/index.d.ts","engines":{"node":">=10"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/lib/index.js"}},"gitHead":"6742bd9e8ce77eac97f318bc403bf2b704a4085e","scripts":{"lint":"npx @biomejs/biome check .","size":"size-limit","test":"NODE_ENV=test npx vitest --run","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx nyc --reporter=lcov npm t","format":"npx @biomejs/biome check . --write","prepare":"husky","lint:package":"npx publint","update-changelog":"node --experimental-strip-types scripts/update-changelog.ts","prepare-patch-release":"npm t && npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:972960ad-0dba-4b4d-9b37-efabd4750f02"}},"prettier":{"semi":true,"printWidth":80,"singleQuote":true,"trailingComma":"es5"},"repository":{"url":"git+https://github.com/anephenix/systems.git","type":"git"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"11.11.0","description":"Systems","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^13.0.0"},"_hasShrinkwrap":false,"devDependencies":{"nyc":"^18.0.0","husky":"^9.1.7","tslint":"^6.1.3","vitest":"^4.0.3","globals":"^17.0.0","publint":"^0.3.14","prettier":"^3.4.2","size-limit":"^12.0.0","typescript":"^6.0.2","@types/node":"^25.0.2","@types/uuid":"^11.0.0","@types/mocha":"^10.0.10","@biomejs/biome":"^2.4.4","@size-limit/file":"^12.0.0","size-limit-node-esbuild":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.17_1775619439340_0.20816819000886744","host":"s3://npm-registry-packages-npm-production"}},"0.0.18":{"name":"@anephenix/systems","version":"0.0.18","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.18","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"homepage":"https://github.com/anephenix/systems","bugs":{"url":"https://github.com/anephenix/systems/issues"},"dist":{"shasum":"d7726160a32772acf790fcb6e8d7862a415b50c0","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.18.tgz","fileCount":23,"integrity":"sha512-7u7ihu8/SNJmatR8JSYQk9jn8w4gcDrHU9LMBtZc8ASJaMe/99WxKCPbMiJF5SYkdMKeLTGdzdQTJIa+0YNGxw==","signatures":[{"sig":"MEUCIQCTtV+rdJnxGZXYSdWHCBtxHE69QwXZWAvRsVIGdxdcugIgQUUD7e7siVnhQTTSYUH9fChLTEsNNVmyaQGqEo7czqo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anephenix%2fsystems@0.0.18","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41543},"main":"dist/lib/index.js","type":"module","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"types":"dist/lib/index.d.ts","engines":{"node":">=10"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/lib/index.js"}},"gitHead":"7434faaf469359a1d1794b991e3942cf46a78001","scripts":{"lint":"npx @biomejs/biome check .","size":"size-limit","test":"NODE_ENV=test npx vitest --run","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx vitest --run --coverage","format":"npx @biomejs/biome check . --write","prepare":"husky","lint:package":"npx publint","update-changelog":"node --experimental-strip-types scripts/update-changelog.ts","prepare-patch-release":"npm t && npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:972960ad-0dba-4b4d-9b37-efabd4750f02"}},"repository":{"url":"git+https://github.com/anephenix/systems.git","type":"git"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"11.11.0","description":"Systems","directories":{},"_nodeVersion":"24.14.1","dependencies":{"uuid":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","tslint":"^6.1.3","vitest":"^4.0.3","globals":"^17.0.0","publint":"^0.3.14","size-limit":"^12.0.0","typescript":"^6.0.2","@types/node":"^25.0.2","@types/uuid":"^11.0.0","@biomejs/biome":"^2.4.4","@size-limit/file":"^12.0.0","@vitest/coverage-v8":"^4.1.5","size-limit-node-esbuild":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.18_1777134059691_0.25478922930142334","host":"s3://npm-registry-packages-npm-production"}},"0.0.19":{"name":"@anephenix/systems","version":"0.0.19","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","_id":"@anephenix/systems@0.0.19","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"homepage":"https://github.com/anephenix/systems","bugs":{"url":"https://github.com/anephenix/systems/issues"},"dist":{"shasum":"90f01770c328ff311e05481eee2ad409c056fc85","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.19.tgz","fileCount":23,"integrity":"sha512-HJiUrkOME9qOhn/E50Ek8tWdv5HHeAyEuXCYl0E8WCcQCSoGGQcl1cUUdEzIsHtAR3i18DKQtRIXkqnbvu0uPw==","signatures":[{"sig":"MEYCIQC8ydCLNg5pIcpKMrSBH6YcedsI4mFOnJFCK5hVWOmpjgIhAPVVnfcwqsnbk1P9QUghyddqAw2pNZa21EkPGTudfk9S","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anephenix%2fsystems@0.0.19","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41543},"main":"dist/lib/index.js","type":"module","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"types":"dist/lib/index.d.ts","engines":{"node":">=10"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/lib/index.js"}},"gitHead":"cbf63015f7a9654d0aa93b16dd0e45616caf41d4","scripts":{"lint":"npx @biomejs/biome check .","size":"size-limit","test":"NODE_ENV=test npx vitest --run","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx vitest --run --coverage","format":"npx @biomejs/biome check . --write","prepare":"husky","lint:package":"npx publint","update-changelog":"node --experimental-strip-types scripts/update-changelog.ts","prepare-patch-release":"npm t && npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:972960ad-0dba-4b4d-9b37-efabd4750f02"}},"repository":{"url":"git+https://github.com/anephenix/systems.git","type":"git"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"11.16.0","description":"Systems","directories":{},"_nodeVersion":"24.18.0","dependencies":{"uuid":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","tslint":"^6.1.3","vitest":"^4.0.3","globals":"^17.0.0","publint":"^0.3.14","size-limit":"^12.0.0","typescript":"^7.0.2","@types/node":"^26.0.0","@types/uuid":"^11.0.0","@biomejs/biome":"^2.4.4","@size-limit/file":"^12.0.0","@vitest/coverage-v8":"^4.1.5","size-limit-node-esbuild":"^0.4.0"},"_npmOperationalInternal":{"tmp":"tmp/systems_0.0.19_1784269018236_0.7332727239963415","host":"s3://npm-registry-packages-npm-production"}},"0.0.20":{"_id":"@anephenix/systems@0.0.20","bugs":{"url":"https://github.com/anephenix/systems/issues"},"dist":{"shasum":"c345839c7a9a199c88351830d201623e8ef64d53","tarball":"https://registry.npmjs.org/@anephenix/systems/-/systems-0.0.20.tgz","fileCount":23,"integrity":"sha512-QZW0FBYxw42EJuqAHDC0cXedcX2vhpp+Yws4eodDS2aRVlwikQ4n+osNGqnju4598kwbd+AObnKq564SFGh62g==","signatures":[{"sig":"MEUCIEuFeAOhyRUemFqP8TXISy+3gzVwZB8y9W3IZ1/bblwaAiEAxlQM3lknHlywJJY9BtXfo/wPK3IWsCr/keX3ZWbocOY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQDs5iyAqUcDyzMKDq/qjQfN2ypL+0tEpvIAYq7LRtBRkAIgdIJW5cBox4vdbFCghBjyIuUd4sjkjtfyn3W2Xs+we6g="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@anephenix%2fsystems@0.0.20","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":41543},"main":"dist/lib/index.js","name":"@anephenix/systems","type":"module","husky":{"hooks":{"pre-commit":"npm run lint && npm t"}},"types":"dist/lib/index.d.ts","author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"engines":{"node":">=10"},"exports":{".":{"types":"./dist/lib/index.d.ts","import":"./dist/lib/index.js"}},"gitHead":"b82ed5be4c21621a95b0a7470d4255c29f4ac29d","license":"MIT","scripts":{"lint":"npx @biomejs/biome check .","size":"size-limit","test":"NODE_ENV=test npx vitest --run","build":"tsc --project tsconfig.json","cover":"NODE_ENV=test npx vitest --run --coverage","format":"npx @biomejs/biome check . --write","prepare":"husky","lint:package":"npx publint","update-changelog":"node --experimental-strip-types scripts/update-changelog.ts","prepare-patch-release":"npm t && npm run build && npm run size && npm run update-changelog && git add CHANGELOG.md && git commit -m \"Updated changelog\" && npm version patch","publish-patch-release":"npm run prepare-patch-release && git push origin main && git push --tags"},"version":"0.0.20","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:972960ad-0dba-4b4d-9b37-efabd4750f02"}},"homepage":"https://github.com/anephenix/systems","repository":{"url":"git+https://github.com/anephenix/systems.git","type":"git"},"size-limit":[{"path":"dist/lib/*.js","limit":"10 kB"}],"_npmVersion":"11.19.0","description":"Systems","directories":{},"maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"_nodeVersion":"24.21.0","dependencies":{"uuid":"^14.0.0"},"_hasShrinkwrap":false,"devDependencies":{"husky":"^9.1.7","tslint":"^6.1.3","vitest":"^5.0.0","globals":"^17.0.0","publint":"^0.3.14","size-limit":"^14.0.0","typescript":"^7.0.2","@types/node":"^26.0.0","@types/uuid":"^11.0.0","@biomejs/biome":"^2.4.4","@size-limit/file":"^14.0.0","@vitest/coverage-v8":"^5.0.0","size-limit-node-esbuild":"^0.4.0"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/systems_0.0.20_1790498234856_0.6906927706562"}}},"time":{"created":"2025-02-09T10:20:31.594Z","modified":"2026-09-27T08:37:15.298Z","0.0.2":"2025-02-09T10:20:31.943Z","0.0.3":"2025-02-09T12:00:19.932Z","0.0.4":"2025-03-16T08:37:27.454Z","0.0.5":"2025-03-23T22:22:04.731Z","0.0.6":"2025-03-24T07:56:25.530Z","0.0.7":"2025-04-08T13:02:05.676Z","0.0.8":"2025-05-26T14:28:51.878Z","0.0.9":"2025-06-10T07:48:23.539Z","0.0.10":"2025-10-06T08:17:20.953Z","0.0.14":"2026-01-04T20:21:02.475Z","0.0.15":"2026-02-12T20:03:42.971Z","0.0.16":"2026-03-17T19:47:04.667Z","0.0.17":"2026-04-08T03:37:19.483Z","0.0.18":"2026-04-25T16:20:59.827Z","0.0.19":"2026-07-17T06:16:58.374Z","0.0.20":"2026-09-27T08:37:14.933Z"},"bugs":{"url":"https://github.com/anephenix/systems/issues"},"author":{"name":"Paul Jensen","email":"paul@anephenix.com"},"license":"MIT","homepage":"https://github.com/anephenix/systems","repository":{"url":"git+https://github.com/anephenix/systems.git","type":"git"},"description":"Systems","maintainers":[{"name":"paulbjensen","email":"paulbjensen@gmail.com"}],"readme":"# Systems\n\nA Node.js library for the logic used in Systems Thinking diagrams (also known as [Causal Loop Diagrams](https://en.wikipedia.org/wiki/Causal_loop_diagram)).\n\n[![npm version](https://badge.fury.io/js/%40anephenix%2Fsystems.svg)](https://badge.fury.io/js/%40anephenix%2Fsystems) [![Node.js CI](https://github.com/anephenix/systems/actions/workflows/node.js.yml/badge.svg)](https://github.com/anephenix/systems/actions/workflows/node.js.yml) [![Socket Badge](https://socket.dev/api/badge/npm/package/@anephenix/systems)](https://socket.dev/npm/package/@anephenix/systems)\n\n### Install\n\n```shell\nnpm i @anephenix/systems\n```\n\n### Usage\n\nTo begin with, you need to create a System that can contain all of the entities, relations and loops that exist within it. For example, you could map out an ecological system like the populations of a predator and prey pair.\n\n#### System\n\n```typescript\nimport { System } from '@anephenix/systems';\n\nconst system = new System({ name: 'Ecological system' });\n```\n\nOnce you have created a system, you can begin to add entities to it.\n\n#### Entities\n\nEntities are things that you want to measure or that have an impact within the system. A good example in the context of the ecological system is the number of predators and the number of prey. In the case of Yellowstone national park in the United States, wolves are a predator and elk are one of their prey.\n\n```typescript\nimport { Entity } from '@anephenix/systems';\n\nconst wolves = new Entity({ name: 'Number of Wolves', type: 'quantifiable' });\nconst elk = new Entity({ name: 'Number of Elk', type: 'quantifiable' });\n```\n\nThe `type` property indicates whether the entity can be measured numerically. We can count wolves, so the type is `'quantifiable'`.\n\nThe other type is `'non-quantifiable'`, for things that cannot be measured numerically — for example, emotional state or public confidence.\n\n#### Relations\n\nRelations are the directed links between entities. Each relation goes from one entity to another and has either a positive or negative polarity.\n\n**Negative relation** — an increase in the source causes a decrease in the target (and vice versa). Wolves preying on elk is a negative link: more wolves means fewer elk.\n\n```typescript\nimport { Entity, Relation } from '@anephenix/systems';\n\nconst wolves = new Entity({ name: 'Number of Wolves', type: 'quantifiable' });\nconst elk = new Entity({ name: 'Number of Elk', type: 'quantifiable' });\n\nconst wolvesEatElk = new Relation({\n    name: 'Wolves eating Elk',\n    type: 'negative',\n    from: wolves.id,\n    to: elk.id,\n});\n```\n\n**Positive relation** — an increase in the source causes an increase in the target. Elk as a food source for wolves is a positive link: more elk eventually means more wolves.\n\n```typescript\nconst elkAsFoodForWolves = new Relation({\n    name: 'Elk as a food source for Wolves',\n    type: 'positive',\n    from: elk.id,\n    to: wolves.id,\n});\n```\n\n#### Adding entities and relations to the system\n\nUse `addEntity` and `addRelation` on the system instance to register everything.\n\n```typescript\nimport { System, Entity, Relation } from '@anephenix/systems';\n\nconst system = new System({ name: 'Ecological system' });\n\nconst wolves = new Entity({ name: 'Number of Wolves', type: 'quantifiable' });\nconst elk = new Entity({ name: 'Number of Elk', type: 'quantifiable' });\n\nconst wolvesEatElk = new Relation({\n    name: 'Wolves eating Elk',\n    type: 'negative',\n    from: wolves.id,\n    to: elk.id,\n});\n\nconst elkAsFoodForWolves = new Relation({\n    name: 'Elk as a food source for Wolves',\n    type: 'positive',\n    from: elk.id,\n    to: wolves.id,\n});\n\nsystem.addEntity(wolves);\nsystem.addEntity(elk);\n\nsystem.addRelation(wolvesEatElk);\nsystem.addRelation(elkAsFoodForWolves);\n```\n\n#### Detecting feedback loops\n\nFeedback loops are cyclical patterns that emerge from the relationships between entities. Once all entities and relations have been added, call `detectLoops()` to find and classify every loop automatically.\n\n```typescript\nsystem.detectLoops();\nconsole.log(system.loops);\n```\n\nEach loop in `system.loops` has an `id`, a `type` (`'balancing'` or `'reinforcing'`), and arrays of the entity and relation IDs that make it up.\n\nLoops are re-detected automatically whenever you update or remove an entity or relation.\n\n##### Balancing loops\n\nA balancing loop is self-regulating — entities oscillate around an equilibrium. The wolves-and-elk system is a classic example: more wolves reduces elk, which eventually reduces wolves, which allows elk to recover, and so on.\n\n##### Reinforcing loops\n\nA reinforcing loop amplifies change in one direction. A savings account is a good example: a higher balance earns more interest, which further increases the balance.\n\n#### Simulations\n\nA `Simulation` takes a system with assigned initial values and runs it forward step by step, recording the value of every entity at each step.\n\n##### Basic setup\n\n```typescript\nimport { System, Entity, Relation, Simulation } from '@anephenix/systems';\n\nconst system = new System({ name: 'Ecological system' });\n\nconst wolves = new Entity({ name: 'Number of Wolves', type: 'quantifiable' });\nconst elk = new Entity({ name: 'Number of Elk', type: 'quantifiable' });\n\nsystem.addEntity(wolves);\nsystem.addEntity(elk);\n\nconst wolvesEatElk = new Relation({\n    name: 'Wolves eating Elk',\n    type: 'negative',\n    from: wolves.id,\n    to: elk.id,\n});\n\nconst elkAsFoodForWolves = new Relation({\n    name: 'Elk as a food source for Wolves',\n    type: 'positive',\n    from: elk.id,\n    to: wolves.id,\n});\n\nsystem.addRelation(wolvesEatElk);\nsystem.addRelation(elkAsFoodForWolves);\n\nconst simulation = new Simulation({\n    system,\n    initialValues: {\n        [wolves.id]: 10,\n        [elk.id]: 200,\n    },\n    steps: 50,  // number of time steps to run\n    dt: 1,      // time delta per step (e.g. 1 = one season)\n});\n```\n\n##### Running the simulation\n\nCall `run()` to execute all steps at once. It returns the full history — an array of `{ step, time, values }` objects, one per step starting at step 0 (the initial state).\n\n```typescript\nconst history = simulation.run();\n\nfor (const step of history) {\n    console.log(step.step, step.time, step.values);\n}\n```\n\nAt each step, every entity's new value is computed from the previous step's values using the formula:\n\n```\nnew_value = old_value + (sum of incoming relation deltas) × dt\n```\n\nFor a positive relation the delta adds to the target; for a negative relation it subtracts. All entities update simultaneously, so no ordering bias is introduced.\n\n##### Relation weights\n\nBy default each relation has a weight of `1.0`. You can override this per relation to control how strongly one entity influences another.\n\n```typescript\nconst simulation = new Simulation({\n    system,\n    initialValues: {\n        [wolves.id]: 10,\n        [elk.id]: 200,\n    },\n    relationWeights: {\n        [wolvesEatElk.id]: 0.05,       // each wolf removes 0.05 elk per step\n        [elkAsFoodForWolves.id]: 0.008, // each elk adds 0.008 wolves per step\n    },\n    steps: 50,\n});\n```\n\n##### Transfer functions\n\nFor relationships that are multiplicative rather than linear — for example, compound interest, or predator-prey dynamics where the interaction rate scales with both populations — you can supply a transfer function for any relation. The function receives `(sourceValue, targetValue)` and returns the delta magnitude; the relation's polarity is still applied on top.\n\n```typescript\nimport { System, Entity, Relation, Simulation } from '@anephenix/systems';\n\nconst system = new System({ name: 'Bank account' });\n\nconst interestRate = new Entity({ name: 'Annual interest rate', type: 'quantifiable' });\nconst balance = new Entity({ name: 'Balance', type: 'quantifiable' });\n\nsystem.addEntity(interestRate);\nsystem.addEntity(balance);\n\nconst rateGrowsBalance = new Relation({\n    name: 'Interest rate compounds balance',\n    type: 'positive',\n    from: interestRate.id,\n    to: balance.id,\n});\n\nsystem.addRelation(rateGrowsBalance);\n\nconst simulation = new Simulation({\n    system,\n    initialValues: {\n        [interestRate.id]: 0.0325, // 3.25% AER\n        [balance.id]: 1000,\n    },\n    relationTransferFns: {\n        // delta = rate × currentBalance gives exact compound growth\n        [rateGrowsBalance.id]: (rate, currentBalance) => rate * currentBalance,\n    },\n    steps: 10,\n    dt: 1, // 1 year per step\n});\n\nconst history = simulation.run();\n// balance after 10 years: £1,376.89 (= 1000 × 1.0325^10)\n```\n\nWhen a transfer function is provided for a relation, it takes precedence over any `relationWeights` entry for that same relation.\n\n##### Stepping manually\n\nInstead of `run()`, you can advance the simulation one step at a time using `advance()`. This is useful when you want to inspect or react to values between steps.\n\n```typescript\nconst step1 = simulation.advance(); // returns { step: 1, time: 1, values: { ... } }\nconst step2 = simulation.advance(); // returns { step: 2, time: 2, values: { ... } }\n```\n\nIf `advance()` is called before `run()`, the initial state (step 0) is recorded automatically.\n\n##### Accessing history\n\n`getValuesAt(n)` returns the entity values at a specific step number.\n\n```typescript\nsimulation.run();\n\nconst initialState = simulation.getValuesAt(0);\nconst afterFiveSteps = simulation.getValuesAt(5);\n```\n\n##### Resetting\n\n`reset()` clears the history so the simulation can be run again from the initial values, for example with different parameters.\n\n```typescript\nsimulation.reset();\n```\n\n### Licence and Credits\n\n&copy;2026; Anephenix Ltd.\n","readmeFilename":"README.md"}