{"_id":"@effected/semver","_rev":"15-7ec97090c5ed939551a3da3c550d230a","name":"@effected/semver","dist-tags":{"latest":"0.9.0"},"versions":{"0.1.0":{"name":"@effected/semver","version":"0.1.0","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.1.0","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"ba68c6ba2a1c34e13bbcc866bf6691968cfe4975","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.1.0.tgz","fileCount":15,"integrity":"sha512-rtQq5OL6M4VDoQVWywGkLuVEij+nbDu4RieFfmNeus4G/sY4w9x5K2YxkDqg0XJxN3lRlvAYIGubSHf1zk0G8w==","signatures":[{"sig":"MEUCIGLmGOW7vp69LSnxTQDZzt4houSwOMy3S3146kjCvg3vAiEA7sjxFm2vbQEprWTohVWfBGsmOmv3DHOXam/EJGg0uWc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.1.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":93790},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.1.0.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"spencerbeggs","email":"spencer@beg.gs"},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.1.0.tgz","_integrity":"sha512-rtQq5OL6M4VDoQVWywGkLuVEij+nbDu4RieFfmNeus4G/sY4w9x5K2YxkDqg0XJxN3lRlvAYIGubSHf1zk0G8w==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.18.0","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-beta.98"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.1.0_1784223053430_0.5810074595267696","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@effected/semver","version":"0.1.1","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.1.1","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"582dd902e8c5c8c72b9b54ac097bdb0ca4b7896e","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.1.1.tgz","fileCount":15,"integrity":"sha512-9VPl1umK5/qh1zc4DpEn+4WN+iIRZCVJ/I/+mDTJldqiINTovU9tHF3o3XvrSXPCZhkm4QPlKjMRx+P/3VTw0Q==","signatures":[{"sig":"MEYCIQCrSXn0wJd+qj+1VEva09XtmeY9lF7twxZlA7ai+STb3gIhAN4uh8GTNuyWpUhGBguaA5NqS6Rq7JaVWSckxjAb1FUb","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.1.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":94105},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.1.1.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.1.1.tgz","_integrity":"sha512-9VPl1umK5/qh1zc4DpEn+4WN+iIRZCVJ/I/+mDTJldqiINTovU9tHF3o3XvrSXPCZhkm4QPlKjMRx+P/3VTw0Q==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.18.0","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-beta.99"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.1.1_1784489724854_0.22467148331109188","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@effected/semver","version":"0.2.0","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.2.0","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"aa97782afb2b30465e493b73fdca94fba763e149","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.2.0.tgz","fileCount":15,"integrity":"sha512-bjpJSyqSn+Arw2y3SWZUL+H/3Xfw/hbtPW8gi614eEznCUaUGt/ztkqZFfnN4+qbNvdWUWNLYuodzQr2u7ZwcQ==","signatures":[{"sig":"MEQCIFmvV8s6yAy0G3fcxgMGVvXqLVK9PDr/1+uxVWxczGTWAiA+kAhk71H+1UpGtOW8yj++Y+FtJi/33JjrMRb7XQEwmw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.2.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103867},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.2.0.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.2.0.tgz","_integrity":"sha512-bjpJSyqSn+Arw2y3SWZUL+H/3Xfw/hbtPW8gi614eEznCUaUGt/ztkqZFfnN4+qbNvdWUWNLYuodzQr2u7ZwcQ==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.18.0","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-beta.99"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.2.0_1784582169006_0.8658118707913103","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@effected/semver","version":"0.2.1","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.2.1","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"af1bd95c8a89479c12b8f004154d972f49283f2b","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.2.1.tgz","fileCount":15,"integrity":"sha512-TimUh0CyHy2ZAK48izEUDibi7gt4JaJQy0eZ3nuM4yoC23mdtgRJpbVYL4/fTUEgr0tOBuYzbnZYF036VMqKQg==","signatures":[{"sig":"MEUCIHvyC1QhGj5ksjoouJZdg+ehgByaBGUs91iNJ2bJGS8TAiEA4YKK2GtfyL9Zb2L+6llZU8QUUzbxgIZpdD41iC1Xp10=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.2.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":103868},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.2.1.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.2.1.tgz","_integrity":"sha512-TimUh0CyHy2ZAK48izEUDibi7gt4JaJQy0eZ3nuM4yoC23mdtgRJpbVYL4/fTUEgr0tOBuYzbnZYF036VMqKQg==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.18.0","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-beta.101"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.2.1_1784925468522_0.24104018646878167","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@effected/semver","version":"0.3.0","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.3.0","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"bcb6b1cc175e409df8828fb17d13f8bb36048557","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.3.0.tgz","fileCount":15,"integrity":"sha512-ZoIsmnaXqFWzePIIvsd8citb5HdYPjcourTcT0MD0HCAX38Q9wWoe04rjNZTmO1V9u/6S+j/acJSD3iMP8RfpQ==","signatures":[{"sig":"MEUCIQCIK1omKe8nbTq6/RzoBH05bAhrgQKY5QKTHpc2LV1tOQIgbkEwxWCRJjoGiw7Mq5oNFMsjrPlhy82EilXdTRGWN38=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.3.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111438},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.3.0.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.3.0.tgz","_integrity":"sha512-ZoIsmnaXqFWzePIIvsd8citb5HdYPjcourTcT0MD0HCAX38Q9wWoe04rjNZTmO1V9u/6S+j/acJSD3iMP8RfpQ==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.19.0","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.0","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-beta.101"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.3.0_1785715258758_0.15914004653760583","host":"s3://npm-registry-packages-npm-production"}},"0.3.1":{"name":"@effected/semver","version":"0.3.1","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.3.1","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"f769bcabf24c2679c5fadaab499e05e91c528231","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.3.1.tgz","fileCount":15,"integrity":"sha512-oRPf85T/D+b9kc/ABKE5VUlWsTSdFsVPeWSCID9fbWnP/AJssoFltAnQ49VbbOBh8xz6mgNWXKvxri1uomjciw==","signatures":[{"sig":"MEQCIGuyNrOlxnWp0qMUjZiNeA+qzmcyVVB2GNLmVhsH8k72AiAqdQftYkmd74dj/PJemkPGsB5reVCTy7pgFM4sBCoXWw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.3.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":111438},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.3.1.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.3.1.tgz","_integrity":"sha512-oRPf85T/D+b9kc/ABKE5VUlWsTSdFsVPeWSCID9fbWnP/AJssoFltAnQ49VbbOBh8xz6mgNWXKvxri1uomjciw==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.19.0","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-beta.101"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.3.1_1785795600426_0.6967040553952331","host":"s3://npm-registry-packages-npm-production"}},"0.3.2":{"name":"@effected/semver","version":"0.3.2","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.3.2","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"2f1ef3a349055754dacbf4c66c681e9fd0b8caba","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.3.2.tgz","fileCount":15,"integrity":"sha512-NJOJapKinywhNQcLSwAJ2iJPSl2WokAVDxgB/eGdCeFDh6YIAFJHEcm1jnnMywYKyZzhc2+T5Y7vNg/XJDYYXA==","signatures":[{"sig":"MEQCIC5/nHV90BExPzBaty6KLiEcE4iBzbUlIFPNO55qyr5AAiBc0meODoAGrlavX4sprpMEuIbvANikq8rnUKBOcXcQNw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.3.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114352},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.3.2.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.3.2.tgz","_integrity":"sha512-NJOJapKinywhNQcLSwAJ2iJPSl2WokAVDxgB/eGdCeFDh6YIAFJHEcm1jnnMywYKyZzhc2+T5Y7vNg/XJDYYXA==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.19.0","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.5.1","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-beta.101"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.3.2_1785895744004_0.969247958600278","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@effected/semver","version":"0.4.0","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.4.0","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"24a865d5bede62df95c53beabe89d7f35ad925bd","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.4.0.tgz","fileCount":15,"integrity":"sha512-tLD/G7WgSeG3nGZ+WQQTUap9zkx2Q4O8VVNYP1LUNQhdurRWi+CblpuqBH9R/z7yXUPr8hF0TGuZzZHb8IqwMQ==","signatures":[{"sig":"MEYCIQCS6yiWQqfGhyRoAahrKCV1yjdaHzd4SN4rXJ57a7Us/wIhAOfW28LyrLqMa+BWE/m2q1yf+CY4p1DEp9ZGPqokabUF","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.4.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114270},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.4.0.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.4.0.tgz","_integrity":"sha512-tLD/G7WgSeG3nGZ+WQQTUap9zkx2Q4O8VVNYP1LUNQhdurRWi+CblpuqBH9R/z7yXUPr8hF0TGuZzZHb8IqwMQ==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.19.0","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.6.0","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-beta.107"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.4.0_1786470512830_0.1173832326952593","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@effected/semver","version":"0.5.0","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.5.0","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"a24f805b7622f1291d8b81a0ee74fada591c912c","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.5.0.tgz","fileCount":15,"integrity":"sha512-Ch/lt/FZOyKy7Mt8qnxyPd7wmvvcD7/7Y4G13cq+OuRUEJQQM6hcZLomvbq9eOZCOH6Bms4KvwvWZnof/JBG1A==","signatures":[{"sig":"MEYCIQCxSzX7aUzNZoT6RKqXIw+WceR5r2gzXjCkX03jFMTC2wIhAM8GzYLTf/y5EPXC5sYpI4OaoclSudNkUDgASGO6oa8Q","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.5.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":114274},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.5.0.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.5.0.tgz","_integrity":"sha512-Ch/lt/FZOyKy7Mt8qnxyPd7wmvvcD7/7Y4G13cq+OuRUEJQQM6hcZLomvbq9eOZCOH6Bms4KvwvWZnof/JBG1A==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.19.0","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.7.0","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-rc.109"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.5.0_1786936848612_0.16310210782004564","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@effected/semver","version":"0.5.1","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.5.1","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"9a25dbe49699f3a400347f26a586d301782e22f7","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.5.1.tgz","fileCount":15,"integrity":"sha512-iZM8YqhO1AAwpLuM/6+r0NDVZNNr+8hRMr9klTF4K/tTGh4sAkn6eZy4sAU+IZtS/FYU9NTYQmmNVQ04N2BTcA==","signatures":[{"sig":"MEYCIQCAKwKFLFoFAQkoBzMGXVxGBxkWRFd6uy5LLUDoWZXNbAIhAPJ9jRSxyhenCsZKL1FoLtmqJQTOBrlg2q5SMU/5+n1Y","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.5.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116546},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.5.1.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.5.1.tgz","_integrity":"sha512-iZM8YqhO1AAwpLuM/6+r0NDVZNNr+8hRMr9klTF4K/tTGh4sAkn6eZy4sAU+IZtS/FYU9NTYQmmNVQ04N2BTcA==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.19.1","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.8.1","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-rc.109"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.5.1_1788582040465_0.03866164666646732","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"name":"@effected/semver","version":"0.6.0","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.6.0","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"0e83251a5aa09d8faccb7eca876718f70236e490","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.6.0.tgz","fileCount":15,"integrity":"sha512-L/4ryvNjHSL6L9VvyIypv4aRdla2nii13v5M2AScgSIN4DOmIYD7aK+cD8+DbZbUA9gl+mbimWp9d9dNkazEPQ==","signatures":[{"sig":"MEYCIQC2EX+H2nvfbeKfJccM7SY9FJZIg4upo3Lt1zO0xL03uwIhALtsOxTjlHGHbq+ezCYr4dNeutt3GVgOCSKGiErZOezL","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.6.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116410},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.6.0.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.6.0.tgz","_integrity":"sha512-L/4ryvNjHSL6L9VvyIypv4aRdla2nii13v5M2AScgSIN4DOmIYD7aK+cD8+DbZbUA9gl+mbimWp9d9dNkazEPQ==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.19.1","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.8.1","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-rc.112"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.6.0_1788629155986_0.9010747965261972","host":"s3://npm-registry-packages-npm-production"}},"0.7.0":{"name":"@effected/semver","version":"0.7.0","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.7.0","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"06687f1655a7891022989671e6dbd160ab9cd274","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.7.0.tgz","fileCount":15,"integrity":"sha512-vZ205/Ii8KRowTHH2XtydcInbLmPSuaPxzVALI45sPmrodV41jpipP7yL6Z/LnCndnTn07b6AAidBnpJoC6k2Q==","signatures":[{"sig":"MEUCIApWBqiZ0T81GyKaZLk5dQPvDghBLoN+cbgorGVd8/sMAiEAp+gFXkBAXoJjjoHGJ8KrmdaMx3OBkNiPYHHr8UjCMiY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCjKNgWu84ieQHzOCqMJtWFAkfBmTufpsT6iPm38OjbuwIhAIMFtdGpqLW/Dl9NIt42n6DEfWoCDLubOGD/320mY8mK","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.7.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116410},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.7.0.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.7.0.tgz","_integrity":"sha512-vZ205/Ii8KRowTHH2XtydcInbLmPSuaPxzVALI45sPmrodV41jpipP7yL6Z/LnCndnTn07b6AAidBnpJoC6k2Q==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.19.1","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.8.2","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-rc.115"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.7.0_1789233798440_0.5885124479843475","host":"s3://npm-registry-packages-npm-production"}},"0.7.1":{"name":"@effected/semver","version":"0.7.1","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.7.1","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"329ad967b38e8f0b5dabef8fb2347a7163134558","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.7.1.tgz","fileCount":15,"integrity":"sha512-grwQ+oixc9S7h2UDw3LCMafXRhAHXcfbMl7YiHjo8iEEmdzNgjQkdl3GfQLcll8MDS0gXSN8Sifrq3pww4vcaA==","signatures":[{"sig":"MEQCIGxG1W14YlNf9lffNsRLbeRcLsUZgXiwqQEt7UEBqmYYAiBCciYcBVWAsphBKxyeJAPCn1i8UNOSKK1Fu9WDOgbPdA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDh9nCYakvT+YlQ45Krrg9iNICHwxPzkC51EjktXLg6wQIgYeDQouIYWfm21BTAvz4+uOfFYFf3ijsSbUb1ZBf/jYc=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.7.1","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116410},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.7.1.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.7.1.tgz","_integrity":"sha512-grwQ+oixc9S7h2UDw3LCMafXRhAHXcfbMl7YiHjo8iEEmdzNgjQkdl3GfQLcll8MDS0gXSN8Sifrq3pww4vcaA==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"11.19.1","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.9.0","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-rc.115"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.7.1_1789751086964_0.05606808684900133","host":"s3://npm-registry-packages-npm-production"}},"0.8.0":{"name":"@effected/semver","version":"0.8.0","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","_id":"@effected/semver@0.8.0","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"bc98e085a90a4923d6bab4f59ce6e088a89c65bb","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.8.0.tgz","fileCount":15,"integrity":"sha512-WnlpPMPHz2hsOTiXjDCMev/ieFFuD5RhDKtcYvVAuMfrTSWzXekBQJ5mfqGuJc3WMWjC1myGfq8laJqZCq+sHA==","signatures":[{"sig":"MEYCIQCM9j4ArjqiiOZbEXUd0Ovkdu63GIj4w/y7AniMXwCJMQIhAOG+wIYEdqbrNlvWduDRP5qvLZpL15AbtBYOFUx3ABoV","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQCmWzfqtKUeWlvZ58PDYuXkbnmyHNRq2OZbm7tmPFFxBQIhAKyipGWPSdjae4r0mf92ntXVX5hyqlwJeqLLmPlakuJl","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.8.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116410},"type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.8.0.tgz","types":"./index.d.ts","engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"private":false,"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.8.0.tgz","_integrity":"sha512-WnlpPMPHz2hsOTiXjDCMev/ieFFuD5RhDKtcYvVAuMfrTSWzXekBQJ5mfqGuJc3WMWjC1myGfq8laJqZCq+sHA==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"12.0.2","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"sideEffects":false,"_nodeVersion":"26.9.0","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-rc.116"},"_npmOperationalInternal":{"tmp":"tmp/semver_0.8.0_1789860578839_0.6439389697037967","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"_id":"@effected/semver@0.9.0","bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"dist":{"shasum":"192060854e86ce049e01b62cff25faa00134dbee","tarball":"https://registry.npmjs.org/@effected/semver/-/semver-0.9.0.tgz","fileCount":15,"integrity":"sha512-plEPNs4LRUbKZg7v2B0w/ebaaYPQI53l38mzIqS3576yWji/pApgbi+nreg9KaDdSOF5vNlVspyk4AeipEwjdg==","signatures":[{"sig":"MEYCIQCHKNKlXpakBBN13UGKPQKuT5U9/zan52uxsZptdyQrvQIhAP94YHPnf3tle469rCF6wH5v79le/SGmTRZi/wNTI/e1","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIEAX0kIiwfTPSMP4hLp8RACE3qmZXjM7bnMsdvcyKADEAiANYEJ+EkQK0tc7ezMDQXVe9td/cIeAGyc3lJ+J7gVZxQ=="}],"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@effected%2fsemver@0.9.0","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"unpackedSize":116410},"name":"@effected/semver","type":"module","_from":"file:/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.9.0.tgz","types":"./index.d.ts","author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"engines":{"node":">=24.11.0"},"exports":{".":{"types":"./index.d.ts","import":"./index.js","default":"./index.js"},"./package.json":"./package.json"},"license":"MIT","private":false,"version":"0.9.0","_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:d5ae0098-432e-45ee-b6a0-9718a94f2c96"}},"homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"_resolved":"/home/runner/work/effected/effected/packages/semver/dist/prod/npm/pkg/effected-semver-0.9.0.tgz","_integrity":"sha512-plEPNs4LRUbKZg7v2B0w/ebaaYPQI53l38mzIqS3576yWji/pApgbi+nreg9KaDdSOF5vNlVspyk4AeipEwjdg==","repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"_npmVersion":"12.0.2","description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","directories":{},"maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"sideEffects":false,"_nodeVersion":"26.9.0","_hasShrinkwrap":false,"peerDependencies":{"effect":"4.0.0-rc.117"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/semver_0.9.0_1790110527849_0.08640980321310843"}}},"time":{"created":"2026-07-16T17:30:53.280Z","modified":"2026-09-22T20:55:28.278Z","0.1.0":"2026-07-16T17:30:53.583Z","0.1.1":"2026-07-19T19:35:24.991Z","0.2.0":"2026-07-20T21:16:09.200Z","0.2.1":"2026-07-24T20:37:48.679Z","0.3.0":"2026-08-03T00:00:58.905Z","0.3.1":"2026-08-03T22:20:00.562Z","0.3.2":"2026-08-05T02:09:04.153Z","0.4.0":"2026-08-11T17:48:33.022Z","0.5.0":"2026-08-17T03:20:48.782Z","0.5.1":"2026-09-05T04:20:40.633Z","0.6.0":"2026-09-05T17:25:56.107Z","0.7.0":"2026-09-12T17:23:18.525Z","0.7.1":"2026-09-18T17:04:47.056Z","0.8.0":"2026-09-19T23:29:38.922Z","0.9.0":"2026-09-22T20:55:27.945Z"},"bugs":{"url":"https://github.com/spencerbeggs/effected/issues"},"author":{"url":"https://spencerbeg.gs","name":"C. Spencer Beggs","email":"spencer@beggs.codes"},"license":"MIT","homepage":"https://github.com/spencerbeggs/effected/tree/main/packages/semver#readme","keywords":["semver","semantic-versioning","effect","schema","range","version","effected"],"repository":{"url":"git+https://github.com/spencerbeggs/effected.git","type":"git","directory":"packages/semver"},"description":"Strict SemVer 2.0.0 versions, ranges and comparators as Effect schemas.","maintainers":[{"name":"spencerbeggs","email":"spencer@beg.gs"}],"readme":"# @effected/semver\n\n[![npm](https://img.shields.io/npm/v/@effected%2Fsemver?label=npm&color=cb3837)](https://www.npmjs.com/package/@effected/semver)\n[![License: MIT](https://img.shields.io/badge/License-MIT-4caf50.svg)](https://opensource.org/licenses/MIT)\n[![Node.js %3E%3D24.11.0](https://img.shields.io/badge/Node.js-%3E%3D24.11.0-5fa04e.svg)](https://nodejs.org/)\n[![TypeScript 7.0](https://img.shields.io/badge/TypeScript-7.0-3178c6.svg)](https://www.typescriptlang.org/)\n\nStrict SemVer 2.0.0 versions, ranges and comparators as Effect schemas. `SemVer`, `Comparator` and `Range` are `Schema.Class`es, so a version is a validated value with methods on it rather than a string you re-parse at every call site, and each one carries a `FromString` codec that decodes the canonical form and encodes back to it. Parsing is strict: no `v` prefix, no `=` prefix, no leading zeros on numeric identifiers, no partially consumed input. Every failure is a tagged error carrying the offending string and the character position where the grammar gave up. Zero runtime dependencies, no IO.\n\n> **Pre-release.** This package is part of the `@effected/*` kit, in pre-`1.0.0`\n> development against a single pinned Effect v4 prerelease. Packages graduate to\n> `1.0.0` once Effect `4.0.0` ships. To hold your own `effect` versions at\n> exactly the ones the kit is built and tested against, install\n> [`@effected/pnpm-plugin-effect`](https://www.npmjs.com/package/@effected/pnpm-plugin-effect).\n>\n> **Stability: unstable.** This package's API surface is not yet considered\n> complete and may change across `0.x` releases. Pin an exact version — even a\n> package marked *stable* before `1.0.0` can introduce a breaking change by\n> accident, and an exact pin turns that into a type-check error rather than a\n> runtime surprise. Full policy: [release strategy](https://github.com/spencerbeggs/effected#release-strategy).\n\n## Why @effected/semver\n\nThe version parsers most projects reach for are lenient by default. They coerce `v1.2.3` and `=1.2.3` into a version, then hand back `null` — or throw — when they finally decide something is wrong, leaving you to reconstruct what failed and where. Once parsed, the result is a bag of numbers you stringify to store and re-parse to compare. This package inverts that. The class *is* the schema, so a version field anywhere in your own schemas decodes to a real `SemVer` and re-encodes to its canonical string with no glue code, and the operations you want live on the value you already have.\n\nFailures are `Schema.TaggedError` values you route with `Effect.catchTag`, each one structured rather than stringly: `InvalidVersionError` carries `input` and `position`, `UnsatisfiedRangeError` carries the range *and* every version that was available to match against it. The strictness is deliberate. Coercion is a decision about your data taken inside a library you did not write, and it is where version bugs hide. `Range.intersect` holds the same line: intersecting `^1.0.0` with `^2.0.0` does not quietly hand back a range that matches nothing, it fails with `UnsatisfiableConstraintError` carrying both constraints. Nothing here repairs your input behind your back.\n\n## Install\n\n```bash\nnpm install @effected/semver effect\n```\n\n```bash\npnpm add @effected/semver effect\n```\n\nRequires Node.js >=24.11.0.\n\nAll `@effected/*` packages are ESM-only: the exports maps publish only `import` conditions, so `require()` — including tools that resolve in CJS mode — fails with Node's `ERR_PACKAGE_PATH_NOT_EXPORTED` rather than loading a CJS build that does not exist. Import from an ES module.\n\n`effect` v4 is the only peer dependency, and it is the only dependency of any kind — no parser, no polyfill, no platform package rides in behind it. There is no IO here, so there is nothing to provide at the edge either: the whole surface runs under `Effect.runSync`, apart from `VersionCache`, which brings its own layer.\n\n## Quick start\n\nParse, bump, compare, and test a version against a range:\n\n```ts\nimport { Range, SemVer } from \"@effected/semver\";\nimport { Effect } from \"effect\";\n\nconst program = Effect.gen(function* () {\n  const version = yield* SemVer.parse(\"1.2.3\");\n  const next = version.bump.minor();\n  const range = yield* Range.parse(\"^1.0.0\");\n  return [next.toString(), range.test(version), version.gt(next)] as const;\n});\n\nconsole.log(Effect.runSync(program));\n// => [\"1.3.0\", true, false]\n```\n\nInstance methods are the canonical API. Cross-cutting operations are dual statics on the owning class, so `SemVer.gt(a, b)` and `a.pipe(SemVer.gt(b))` both typecheck and mean the same thing.\n\n## Versions\n\n`SemVer`'s fields are validated in the schema — non-negative safe integers for the components, well-formed prerelease and build identifiers — so `SemVer.make` cannot produce an invalid version. Use `SemVer.parse` for a string and `SemVer.of(1, 2, 3)` for the positional form.\n\n```ts\nimport { SemVer } from \"@effected/semver\";\nimport { Effect } from \"effect\";\n\nconst program = Effect.gen(function* () {\n  const stable = yield* SemVer.parse(\"1.0.0\");\n  const rc = yield* SemVer.parse(\"2.0.0-rc.1\");\n  return [\n    stable.bump.prerelease(\"beta\").toString(),\n    rc.bump.prerelease().toString(),\n    rc.isPrerelease,\n    rc.truncate(\"prerelease\").toString(),\n  ] as const;\n});\n\nconsole.log(Effect.runSync(program));\n// => [\"1.0.1-beta.0\", \"2.0.0-rc.2\", true, \"2.0.0\"]\n```\n\nBumping is node-semver compatible: a stable version starts a prerelease of the *next* patch, switching identifiers resets the counter, and a trailing numeric identifier increments. Build metadata never survives a bump.\n\nEquality follows the spec rather than the string. `Equal.equals` ignores build metadata (§10) and includes prerelease identifiers (§11), and `SemVer` overrides `[Hash.symbol]` to agree with that, so two versions differing only in build metadata are one value in a `HashSet` and one slot in `VersionCache`. `SemVer.Order` sorts by precedence; `SemVer.OrderWithBuild` adds a lexical tiebreak on build metadata when you need a total order over distinct version strings.\n\nCollection operations are statics: `sort`, `rsort`, `max`, `min`, `groupBy` (by major, minor or patch), `latestByMajor` and `latestByMinor`.\n\n## Ranges and comparators\n\nA `Range` is a union (OR) of comparator sets (AND). Parsing accepts the node-semver dialect — hyphen ranges, X-ranges, tilde, caret and `||` — desugars it into primitive comparators and normalizes the result. A `Comparator` is one operator applied to one complete version, with no wildcards and no sugar; that vocabulary belongs to `Range`.\n\n```ts\nimport { Range, SemVer } from \"@effected/semver\";\nimport { Effect } from \"effect\";\n\nconst program = Effect.gen(function* () {\n  const caret = yield* Range.parse(\"^1.0.0\");\n  const floor = yield* Range.parse(\">=1.5.0\");\n  const both = yield* Range.intersect(caret, floor);\n  const versions = [SemVer.of(1, 2, 0), SemVer.of(1, 6, 0), SemVer.of(2, 0, 0)];\n  return [both.test(SemVer.of(1, 6, 0)), Range.filter(versions, caret).map((v) => v.toString())] as const;\n});\n\nconsole.log(Effect.runSync(program));\n// => [true, [\"1.2.0\", \"1.6.0\"]]\n```\n\nMatching implements node-semver's prerelease restriction: a prerelease version satisfies a set only when some comparator in that set carries a prerelease on the same `major.minor.patch` tuple. That is what keeps `^1.2.3` from unexpectedly matching `1.2.4-alpha`.\n\nThe range algebra is `union`, `intersect`, `isSubset`, `equivalent` and `simplify`. `isSubset` is a deliberate conservative approximation: it can report `false` for a range that is technically a subset, when the sub-range straddles comparator-set boundaries in the sup-range. False negatives are safe, because all they do is decline a simplification.\n\n## Comparing two versions\n\n`VersionDiff.between(a, b)` classifies a change and carries the signed component deltas. It is a `Schema.TaggedClass`, so a diff serializes as cleanly as it computes.\n\n```ts\nimport { SemVer, VersionDiff } from \"@effected/semver\";\nimport { Effect } from \"effect\";\n\nconst program = Effect.gen(function* () {\n  const from = yield* SemVer.parse(\"1.2.3\");\n  const to = yield* SemVer.parse(\"2.0.0\");\n  const diff = VersionDiff.between(from, to);\n  return [diff.type, diff.major, diff.toString()] as const;\n});\n\nconsole.log(Effect.runSync(program));\n// => [\"major\", 1, \"major (1.2.3 → 2.0.0)\"]\n```\n\n`type` names the highest-precedence field that differs: `\"major\"`, `\"minor\"`, `\"patch\"`, `\"prerelease\"`, `\"build\"` or `\"none\"`.\n\n## Version cache\n\n`VersionCache` is a `Context.Service` over a sorted, deduplicated set of versions — pure state in a `Ref`, no IO. Reach for it when you hold a list of published versions and a range to resolve against them.\n\n```ts\nimport { SemVer, VersionCache } from \"@effected/semver\";\nimport { Effect } from \"effect\";\n\nconst program = Effect.gen(function* () {\n  const cache = yield* VersionCache;\n  yield* cache.load([SemVer.of(1, 0, 0), SemVer.of(1, 4, 2), SemVer.of(2, 0, 0)]);\n  const latest = yield* cache.latest();\n  const resolved = yield* cache.resolveString(\"^1.0.0\");\n  return [latest.toString(), resolved.toString()] as const;\n}).pipe(Effect.provide(VersionCache.layer));\n\nconsole.log(Effect.runSync(program));\n// => [\"2.0.0\", \"1.4.2\"]\n```\n\nThe two kinds of absence stay apart. `next` and `prev` fail with `VersionNotFoundError` when the pivot version is not in the cache, and succeed with `Option.none()` when the pivot sits at a boundary. Queries over the whole cache (`versions`, `filter`) never fail and return `[]`.\n\n## Errors\n\nEvery failure is a `Schema.TaggedError` routed with `Effect.catchTag`, carrying structured fields. The `message` getter is derived from those fields, never stored.\n\n| Tag | Raised by | Carries |\n| --- | --------- | ------- |\n| `InvalidVersionError` | `SemVer.parse` | `input`, and the `position` where the grammar failed |\n| `InvalidComparatorError` | `Comparator.parse` | `input`, `position` |\n| `InvalidRangeError` | `Range.parse`, `VersionCache.resolveString` | `input`, `position` |\n| `UnsatisfiableConstraintError` | `Range.intersect` | `constraints`, the ranges whose intersection is empty |\n| `EmptyCacheError` | `VersionCache.latest`, `VersionCache.oldest` | nothing; the cache is empty |\n| `VersionNotFoundError` | `VersionCache.diff`, `next`, `prev` | `version`, the pivot that is not cached |\n| `UnsatisfiedRangeError` | `VersionCache.resolve`, `resolveString` | `range`, plus `available`, the versions that were there to match |\n\nThe `FromString` codecs report the same failures through a generic `Schema` parse error carrying the same message, so schema decoding and the `parse` statics never disagree about what is valid.\n\n```ts\nimport { SemVer } from \"@effected/semver\";\nimport { Effect } from \"effect\";\n\n// A leading `v` is not a version, and nothing here coerces it into one.\nconst program = SemVer.parse(\"v1.2.3\").pipe(Effect.catch((error) => Effect.succeed(`${error._tag}: ${error.input}`)));\n\nconsole.log(Effect.runSync(program));\n// => \"InvalidVersionError: v1.2.3\"\n```\n\n## Features\n\n- `SemVer` — the version model: schema-validated fields, `parse` / `of` / `make` construction, bumping through `version.bump`, comparison as instance methods and dual statics, spec-correct `Equal` and `Hash`, and the collection statics (`sort`, `max`, `groupBy`, `latestByMajor`, …).\n- `Comparator` — a single operator-plus-version constraint, and the primitive that range sugar desugars into.\n- `Range` — the node-semver range dialect parsed into normalized comparator sets, with matching (`test`, `filter`, `maxSatisfying`, `minSatisfying`) and algebra (`union`, `intersect`, `isSubset`, `equivalent`, `simplify`).\n- `VersionDiff` — the classified difference between two versions with signed component deltas, serializable as a tagged class.\n- `VersionCache` — a sorted in-memory version set with range resolution and neighbor navigation, provided by `VersionCache.layer`.\n- `SemVer.FromString`, `Comparator.FromString`, `Range.FromString` — codecs between the canonical strings and the models, usable as fields inside your own schemas.\n- Seven tagged errors, each carrying the structured payload a caller needs to report what actually went wrong.\n\n## License\n\n[MIT](LICENSE)\n","readmeFilename":"README.md"}