{"id":"griffin-dalby/carrot","name":"carrot","scope":"griffin-dalby","platform":"roblox","description":"Mirrored from the Wally registry.","version":"0.2.3","latest":"0.2.3","versions":["0.1.0","0.2.1","0.2.2","0.2.3"],"license":"MIT","licenseRating":"safe","licenseCaveats":["License identified from the packaged LICENSE file; the manifest declared none."],"licenseVerified":true,"dependencies":{},"integrity":"134e62eadf3629b3873d9a4097d636deb3a02f284219ad74026e06d566e67e2b","likes":0,"downloads":0,"install":"forest install griffin-dalby/carrot","url":"https://forest.dev/p/roblox/griffin-dalby/carrot","files":"https://api.forest.dev/ai/package/roblox/griffin-dalby/carrot/files","readme":"# carrot 🥕\r\n\r\nLightweight & efficient semver parsing & range matching for LuaU.\r\nAll syntax and comparison ideology is derived from NPM semver syntax. Specifics are listed in [the cheatsheet](#cheatsheet).\r\n\r\n## API\r\n\r\n\r\n## Cheatsheet\r\n\r\n### Range parsing syntax\r\n\r\n| Range | Comparison | Notes |\r\n| :---: | :---: | --- |\r\n| `~1.2.3` | is `>=1.2.3` `<1.3.0` | |\r\n| `^1.2.3` | is `>=1.2.3` `<2.0.0` | |\r\n| `^0.2.3` | is `>=0.2.3` `<0.3.0` | |\r\n| `^0.0.1` | is `==0.0.1` | |\r\n| `^1.2` | is `>=1.2.0` `<2.0.0` | (like ^1.2.0) |\r\n| `~1.2` | is `>=1.2.0` `<1.3.0` | (like ~1.2.0) |\r\n| `^1` | is `>1.0.0` `<2.0.0` | |\r\n| `1.x` | same | |\r\n| `1` | same | |\r\n| `*` | any version | |\r\n| `x` | same | |\r\n\r\n### Wildcard Explanation\r\n\r\nWildcards act as placeholders in version strings, any place that has a wildcard will be replaced with a zero.\r\n\r\n| Wildcard | Example | Final |\r\n| --- | --- | --- |\r\n| `x` | 1.x.x | 1.0.0 |\r\n| `X` | 3.2.X | 3.2.0 |\r\n| `*` | 2.* | 2.0.0 |\r\n\r\n### Partial Explanation\r\n\r\nWhen a version is \"partial\", is does not have all three places. The missing places will be replaced with zeros.\r\n\r\n| Partial | Final |\r\n| --- | --- |\r\n| 1.2 | 1.2.0 |\r\n| 2.5 | 2.5.0 |\r\n\r\n### Operator Explanation\r\n\r\nOperators are used specifically when defining what ranges are needed. It acts as a shorthand for defining a specific range.\r\n\r\n| Operator | Description |\r\n| --- | --- |\r\n| `^` | means \"compatible with\" |\r\n| `~` | means \"reasonably close to\" |\r\n\r\n## License\r\n\r\nThis framework (carrot) is licensed under [MIT](https://opensource.org/license/mit), meaning you can implement this into your project in any way that you see fit, but attributions to me within any files must be kept.\r\n","readmeBorrowedFrom":{"version":"0.1.0","source":"wally"},"readmeTruncated":false}