@batijs/features 0.0.255 → 0.0.258

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -143,7 +143,7 @@ var features = [
143
143
  category: "UI Component Libraries",
144
144
  label: "Mantine",
145
145
  flag: "mantine",
146
- image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA2MjMgMTYzIj48cGF0aCBmaWxsPSIjMzM5QUYwIiBkPSJNMTYyLjE2MiA4MS41YzAtNDUuMDExLTM2LjMwMS04MS41LTgxLjA4LTgxLjVDMzYuMzAxIDAgMCAzNi40ODkgMCA4MS41IDAgMTI2LjUxIDM2LjMwMSAxNjMgODEuMDgxIDE2M3M4MS4wODEtMzYuNDkgODEuMDgxLTgxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNNjUuOTgzIDQzLjA0OWE2LjIzIDYuMjMgMCAwIDAtLjMzNiA2Ljg4NCA2LjEgNi4xIDAgMCAwIDEuNjE4IDEuNzg2YzkuNDQ0IDcuMDM2IDE0Ljg2NiAxNy43OTQgMTQuODY2IDI5LjUycy01LjQyMiAyMi40ODQtMTQuODY2IDI5LjUyYTYuMiA2LjIgMCAwIDAtMS42MTYgMS43ODYgNi4yIDYuMiAwIDAgMC0uNjk0IDQuNjkzIDYuMiA2LjIgMCAwIDAgMS4wMjggMi4xODYgNi4xNSA2LjE1IDAgMCAwIDYuNDU3IDIuMzE5IDYuMiA2LjIgMCAwIDAgMi4xNzctMS4wMzUgNTAgNTAgMCAwIDAgNy45NDctNy4zOWgxNy40OTNjMy40MDYgMCA2LjE3NC0yLjc3MiA2LjE3NC02LjE5NHMtMi43NjItNi4xOTQtNi4xNzQtNi4xOTRoLTkuNjU1YTQ5LjIgNDkuMiAwIDAgMCA0LjA3MS0xOS42OSA0OS4yIDQ5LjIgMCAwIDAtNC4wNy0xOS42OTJoOS42NmMzLjQwNiAwIDYuMTczLTIuNzcxIDYuMTczLTYuMTk0cy0yLjc2Mi02LjE5My02LjE3My02LjE5M0g4Mi41NzRhNTAgNTAgMCAwIDAtNy45NTItNy4zOTcgNi4xNSA2LjE1IDAgMCAwLTQuNTc4LTEuMTUzIDYuMiA2LjIgMCAwIDAtNC4wNTUgMi40Mzh6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNTYuMjM2IDc5LjM5MWE5LjMgOS4zIDAgMCAxIC42MzItMy42MDggOS4zIDkuMyAwIDAgMSAxLjk2Ny0zLjA3NyA5LjEgOS4xIDAgMCAxIDIuOTk0LTIuMDYzIDkuMDYgOS4wNiAwIDAgMSA3LjEwMyAwIDkuMTUgOS4xNSAwIDAgMSAyLjk5NSAyLjA2MyA5LjMgOS4zIDAgMCAxIDEuOTY3IDMuMDc3IDkuMzQgOS4zNCAwIDAgMS0yLjEyNSAxMC4wMDMgOS4xIDkuMSAwIDAgMS02LjM4OCAyLjYzIDkuMSA5LjEgMCAwIDEtNi4zOS0yLjYzIDkuMyA5LjMgMCAwIDEtMi43NTUtNi4zOTUiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0yOTEuNzM2IDEyNi42NDRxMi45NzYgMCA1LjUxOC0xLjMwMnQyLjU0Mi0zLjc4MnYtNzcuNXEwLTQuNDY0LTIuNDgtNi4yNjJUMjkxLjczNiAzNnEtMi44NTIgMC00Ljk2LjYydC0zLjc4MiAyLjQ4Yy0xLjY3NCAxLjg2LTIuNDE4IDMuMDU5LTMuOTA2IDUuNDU2bC0xNS4yNTIgMjcuNzc2LTE1LjEyOC0yNy43NzZxLTEuOTg0LTMuNTk2LTMuNzgyLTUuNDU2dC0zLjg0NC0yLjQ4LTUuMDIyLS42Mi01LjUxOCAxLjc5OFQyMjggNDQuMDZ2NzcuNXEwIDIuNDggMi41NDIgMy43ODJ0NS41MTggMS4zMDJxMy4xIDAgNS41OC0xLjMwMnQyLjQ4LTMuNzgyVjY3LjI0OGwxNC4yNiAyNi43ODRxMS4xMTYgMS44NiAyLjU0MiAyLjU0MnQyLjc5LjY4MnExLjQ4OCAwIDIuOTc2LS43NDRjMS40ODgtLjc0NCAxLjg2LTEuMzIzIDIuNjA0LTIuNDhsMTQuMzg0LTI1Ljc5MnY1My4zMnEwIDIuNDggMi41NDIgMy43ODJ0NS41MTggMS4zMDJtMzQuMzc1IDEuMTE2cTYuNDQ3IDAgMTAuOTc0LTIuOTc2IDQuNTI2LTIuOTc2IDcuODc0LTYuODJ2My41OTZxMCAyLjEwOCAyLjA0NiAzLjU5NnQ1LjE0NiAxLjQ4OHEzLjM0OCAwIDUuNTgtMS40ODh0Mi4yMzItMy41OTZWOTEuMThxMC02LjMyNC0yLjY2Ni0xMS43OHQtOC40OTQtOC45MjgtMTUuNS0zLjQ3MnEtNC4zNDEgMC04LjkyOCAxLjExNnQtNy43NSAzLjE2MnEtMy4xNjIgMi4wNDYtMy4xNjIgNC42NSAwIDIuNzI4IDEuNDI2IDUuMzMydDQuMDMgMi42MDRxMS42MTEgMCAyLjk3Ni0uOTkydDMuOTA2LTEuOTIyIDcuMjU0LS45M3E0LjIxNSAwIDYuNTEgMS43MzZ0My4zNDggNC4zNGExNC4xIDE0LjEgMCAwIDEgMS4wNTQgNS4zMzJ2MS42MTJoLTUuMDg0cS04LjU1NiAwLTE1LjA2NiAxLjYxMnQtMTAuMTY4IDUuNTgtMy42NTggMTEuMDM2cTAgOC40MzIgNC43NzQgMTIuNDYyIDQuNzczIDQuMDMgMTEuMzQ2IDQuMDNtNi40NDgtMTEuOTA0cS0yLjcyOSAwLTQuNjUtMS42MTItMS45MjMtMS42MTMtMS45MjItNS4wODQgMC0zLjQ3MiAyLjI5NC01LjE0NnQ2LjAxNC0yLjE3YTU5IDU5IDAgMCAxIDcuODEyLS40OTZoMS44NnYyLjYwNHEwIDIuOTc2LTEuNzk4IDUuNzA0dC00LjQwMiA0LjQ2NC01LjIwOCAxLjczNm04NC4xNjkgMTAuNzg4cTMuMSAwIDUuNTgtMS4zMDJ0Mi40OC0zLjc4MlY5Mi4xNzJxMC02Ljk0NC0yLjkxNC0xMi42NDh0LTcuNzUtOS4xMTRUNDAzLjQ2IDY3cS02LjIgMC0xMC40NzggMi45MTR0LTYuMTM4IDYuNTF2LTMuNzJxMC0yLjIzMi0yLjA0Ni0zLjU5NnQtNS4wMjItMS4zNjRxLTMuNDcyIDAtNS43MDQgMS4zNjR0LTIuMjMyIDMuNTk2djQ4Ljg1NnEwIDEuODYgMi4yMzIgMy40NzJ0NS43MDQgMS42MTJxMy4zNDggMCA1LjcwNC0xLjYxMnQyLjM1Ni0zLjQ3MlY5Mi4xNzJxMC0zLjQ3MiAxLjQ4OC01Ljk1MnQzLjg0NC0zLjg0NCA0LjgzNi0xLjM2NHEyLjk3NiAwIDUuNDU2IDEuNjc0dDMuOTA2IDQuMTU0YTEwLjUgMTAuNSAwIDAgMSAxLjQyNiA1LjMzMnYyOS4zODhxMCAyLjQ4IDIuNjA0IDMuNzgydDUuMzMyIDEuMzAybTQ3LjQzMiAwcTMuNDcyIDAgNS4xNDYtMi4xMDh0MS42NzQtNC43MTJxMC0yLjQ4LTEuNjc0LTQuNTg4dC01LjE0Ni0yLjEwOGgtNC44MzZxLTMuODQ0IDAtNS4zOTQtMS40ODh0LTEuNTUtNS4wODRWNzkuNGgxNC42MzJxMS45ODQgMCAzLjAzOC0xLjc5OHQxLjA1NC00LjAzLTEuMDU0LTQuMDMtMy4wMzgtMS43OThINDUyLjM4VjQ2LjQxNnEwLTIuMjMyLTIuNTQyLTMuNTk2dC01LjUxOC0xLjM2NHEtMi43MjggMC01LjMzMiAxLjM2NHQtMi42MDQgMy41OTZ2NjAuMTRxMCAxMC40MTYgNS44OSAxNS4yNTJ0MTcuMDUgNC44MzZ6TTQ4Ny4yMzIgNTQuNnEzLjU5NiAwIDYuMTM4LTIuNDE4dDIuNTQyLTUuMzk0cTAtMy4yMjUtMi41NDItNS41MTgtMi41NDItMi4yOTQtNi4xMzgtMi4yOTR0LTYuMiAyLjI5NHEtMi42MDQgMi4yOTUtMi42MDQgNS41MTggMCAyLjk3NiAyLjYwNCA1LjM5NHQ2LjIgMi40MThtMCA3Mi4wNDRxMy4zNDggMCA1LjcwNC0xLjYxMnQyLjM1Ni0zLjQ3MlY3Mi43MDRxMC0yLjIzMi0yLjM1Ni0zLjU5NnQtNS43MDQtMS4zNjRxLTMuNDcyIDAtNS43MDQgMS4zNjR0LTIuMjMyIDMuNTk2djQ4Ljg1NnEwIDEuODYgMi4yMzIgMy40NzJ0NS43MDQgMS42MTJtNjUuMjQ3IDBxMy4wOTkgMCA1LjU4LTEuMzAydDIuNDgtMy43ODJWOTIuMTcycTAtNi45NDQtMi45MTQtMTIuNjQ4dC03Ljc1LTkuMTE0VDUzOS4yMTEgNjdxLTYuMiAwLTEwLjQ3OCAyLjkxNHQtNi4xMzggNi41MXYtMy43MnEwLTIuMjMyLTIuMDQ2LTMuNTk2dC01LjAyMi0xLjM2NHEtMy40NzIgMC01LjcwNCAxLjM2NHQtMi4yMzIgMy41OTZ2NDguODU2cTAgMS44NiAyLjIzMiAzLjQ3MnQ1LjcwNCAxLjYxMnEzLjM0OCAwIDUuNzA0LTEuNjEydDIuMzU2LTMuNDcyVjkyLjE3MnEwLTMuNDcyIDEuNDg4LTUuOTUydDMuODQ0LTMuODQ0IDQuODM2LTEuMzY0cTIuOTc2IDAgNS40NTYgMS42NzR0My45MDYgNC4xNTRhMTAuNSAxMC41IDAgMCAxIDEuNDI2IDUuMzMydjI5LjM4OHEwIDIuNDggMi42MDQgMy43ODJ0NS4zMzIgMS4zMDJtNDcuNjggMS4xMTZxNi42OTUgMCAxMS41OTQtMS42NzQgNC44OTctMS42NzQgNy41NjQtNC4wOTJ0Mi42NjYtNC41MjZxMC0xLjI0LS43NDQtMi45MTRhOC42NSA4LjY1IDAgMCAwLTIuMTA4LTIuOTE0cS0xLjM2NC0xLjI0LTMuMjI0LTEuMjQtMS43MzcgMC0zLjcyIDEuMTE2LTEuOTg1IDEuMTE3LTQuNzEyIDIuMzU2LTIuNzI4IDEuMjQtNi44MiAxLjI0LTYuNDQ5IDAtMTAuNDc4LTMuMjg2LTQuMDMtMy4yODUtNC4wMy04LjYxOHYtMS44NmgyNS4xNzJxMi44NTEgMCA1LjUxOC0uNTU4IDIuNjY1LS41NTggNC40MDItMi44NTIgMS43MzYtMi4yOTQgMS43MzYtNy42MjYgMC02Ljk0NC0zLjU5Ni0xMi4xNTJ0LTkuMzYyLTguMTg0VDU5Ny4zMDcgNjdxLTcuNTY0IDAtMTMuNzAyIDMuNDEtNi4xMzkgMy40MS05Ljc5NiA5LjA1Mi0zLjY1OCA1LjY0Mi0zLjY1OCAxMi4zMzh2MTAuNTRxMCA3LjU2NCAzLjg0NCAxMy4zM3QxMC42MDIgOC45MjggMTUuNTYyIDMuMTYybTQuMDkyLTM1LjgzNmgtMTguMTA0di0zLjQ3MnEwLTIuOTc3IDEuNTUtNS4xNDZ0NC4wMy0zLjM0OHEyLjQ4LTEuMTc4IDUuMzMyLTEuMTc4IDIuOTc2IDAgNS40NTYgMS4yNHQzLjk2OCAzLjQ3MmMxLjQ4OCAyLjIzMiAxLjQ4OCAzLjE4MyAxLjQ4OCA1LjA4NHEwIDEuOTg0LS44MDYgMi42NjYtLjgwNy42ODItMi45MTQuNjgyIi8+PC9zdmc+",
146
+ image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAxNjMgMTYzIj48cGF0aCBmaWxsPSIjMzM5QUYwIiBkPSJNMTYyLjE2MiA4MS41YzAtNDUuMDExLTM2LjMwMS04MS41LTgxLjA4LTgxLjVDMzYuMzAxIDAgMCAzNi40ODkgMCA4MS41IDAgMTI2LjUxIDM2LjMwMSAxNjMgODEuMDgxIDE2M3M4MS4wODEtMzYuNDkgODEuMDgxLTgxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNNjUuOTgzIDQzLjA0OWE2LjIzIDYuMjMgMCAwIDAtLjMzNiA2Ljg4NCA2LjEgNi4xIDAgMCAwIDEuNjE4IDEuNzg2YzkuNDQ0IDcuMDM2IDE0Ljg2NiAxNy43OTQgMTQuODY2IDI5LjUycy01LjQyMiAyMi40ODQtMTQuODY2IDI5LjUyYTYuMiA2LjIgMCAwIDAtMS42MTYgMS43ODYgNi4yIDYuMiAwIDAgMC0uNjk0IDQuNjkzIDYuMiA2LjIgMCAwIDAgMS4wMjggMi4xODYgNi4xNSA2LjE1IDAgMCAwIDYuNDU3IDIuMzE5IDYuMiA2LjIgMCAwIDAgMi4xNzctMS4wMzUgNTAgNTAgMCAwIDAgNy45NDctNy4zOWgxNy40OTNjMy40MDYgMCA2LjE3NC0yLjc3MiA2LjE3NC02LjE5NHMtMi43NjItNi4xOTQtNi4xNzQtNi4xOTRoLTkuNjU1YTQ5LjIgNDkuMiAwIDAgMCA0LjA3MS0xOS42OSA0OS4yIDQ5LjIgMCAwIDAtNC4wNy0xOS42OTJoOS42NmMzLjQwNiAwIDYuMTczLTIuNzcxIDYuMTczLTYuMTk0cy0yLjc2Mi02LjE5My02LjE3My02LjE5M0g4Mi41NzRhNTAgNTAgMCAwIDAtNy45NTItNy4zOTcgNi4xNSA2LjE1IDAgMCAwLTQuNTc4LTEuMTUzIDYuMiA2LjIgMCAwIDAtNC4wNTUgMi40Mzh6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNTYuMjM2IDc5LjM5MWE5LjMgOS4zIDAgMCAxIC42MzItMy42MDggOS4zIDkuMyAwIDAgMSAxLjk2Ny0zLjA3NyA5LjEgOS4xIDAgMCAxIDIuOTk0LTIuMDYzIDkuMDYgOS4wNiAwIDAgMSA3LjEwMyAwIDkuMTUgOS4xNSAwIDAgMSAyLjk5NSAyLjA2MyA5LjMgOS4zIDAgMCAxIDEuOTY3IDMuMDc3IDkuMzQgOS4zNCAwIDAgMS0yLjEyNSAxMC4wMDMgOS4xIDkuMSAwIDAgMS02LjM4OCAyLjYzIDkuMSA5LjEgMCAwIDEtNi4zOS0yLjYzIDkuMyA5LjMgMCAwIDEtMi43NTUtNi4zOTUiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==",
147
147
  url: "https://mantine.dev",
148
148
  tagline: "A fully featured React components library.",
149
149
  repo: "mantinedev/mantine",
@@ -413,6 +413,25 @@ var features = [
413
413
  }
414
414
  ]
415
415
  },
416
+ {
417
+ category: "Database",
418
+ label: "SQLite",
419
+ flag: "sqlite",
420
+ image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+Cgk8ZGVmcz4KCQk8bGluZWFyR3JhZGllbnQgaWQ9ImRldmljb25TcWxpdGUwIiB4MT0iLTE1LjYxNSIgeDI9Ii02Ljc0MSIgeTE9Ii05LjEwOCIgeTI9Ii05LjEwOCIgZ3JhZGllbnRUcmFuc2Zvcm09InJvdGF0ZSg5MCAtOTAuNDg2IDY0LjYzNClzY2FsZSg5LjI3MTIpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CgkJCTxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzk1ZDdmNCIgLz4KCQkJPHN0b3Agb2Zmc2V0PSIuOTIiIHN0b3AtY29sb3I9IiMwZjdmY2MiIC8+CgkJCTxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzBmN2ZjYyIgLz4KCQk8L2xpbmVhckdyYWRpZW50PgoJPC9kZWZzPgoJPHBhdGggZmlsbD0iIzBiN2ZjYyIgZD0iTTY5LjUgOTkuMTc2Yy0uMDU5LS43My0uMDk0LTEuMi0uMDk0LTEuMlM2Ny4yIDgzLjA4NyA2NC41NyA3OC42NDJjLS40MTQtLjcwNy4wNDMtMy41OTQgMS4yMDctNy44OGMuNjggMS4xNjkgMy41NCA2LjE5MiA0LjExOCA3LjgxYy42NDggMS44MjQuNzggMi4zNDcuNzggMi4zNDdzLTEuNTctOC4wODItNC4xNDQtMTIuNzk3YTE2MiAxNjIgMCAwIDEgMi4wMDQtNi4yNjVjLjk3MyAxLjcxIDMuMzEzIDUuODU5IDMuODI4IDcuM2MuMTAyLjI5My4xOTIuNTQzLjI3Ljc3NGwuMDc0LS40MTRjLS41OS0yLjUwNC0xLjc1LTYuODYtMy4zMzYtMTAuMDgyYzMuNTItMTguMzI4IDE1LjUzMS00Mi44MjQgMjcuODQtNTMuNzU0SDE2LjljLTUuMzg3IDAtOS43ODkgNC40MDYtOS43ODkgOS43ODl2ODguNTdjMCA1LjM4MyA0LjQwNiA5Ljc4OSA5Ljc5IDkuNzg5aDUyLjg5N2ExMTkgMTE5IDAgMCAxLS4yOTctMTQuNjUyIiAvPgoJPHBhdGggZmlsbD0idXJsKCNkZXZpY29uU3FsaXRlMCkiIGQ9Ik02NS43NzcgNzAuNzYyYy42OCAxLjE2OCAzLjU0IDYuMTg4IDQuMTE3IDcuODA5Yy42NDkgMS44MjQuNzgxIDIuMzQ3Ljc4MSAyLjM0N3MtMS41Ny04LjA4Mi00LjE0NC0xMi43OTdhMTY1IDE2NSAwIDAgMSAyLjAwNC02LjI3Yy44ODcgMS41NjcgMi45MjIgNS4xNjkgMy42NTIgNi44NzJsLjA4Mi0uOTYxYy0uNjQ4LTIuNDk2LTEuNjMzLTUuNzY2LTIuODk4LTguMzI4YzMuMjQyLTE2Ljg3MSAxMy42OC0zOC45NyAyNC45MjYtNTAuODk4SDE2Ljg5OWE2Ljk0IDYuOTQgMCAwIDAtNi45MzQgNi45MzN2ODIuMTFjMTcuNTI3LTYuNzMxIDM4LjY2NC0xMi44OCA1Ni44NTUtMTIuNjE0Yy0uNjcyLTIuNjA1LTEuNDQxLTQuOTYtMi4yNS02LjMyNGMtLjQxNC0uNzA3LjA0My0zLjU5NyAxLjIwNy03Ljg3OSIgLz4KCTxwYXRoIGZpbGw9IiMwMDM5NTYiIGQ9Ik0xMTUuOTUgMi43ODFjLTUuNS00LjkwNi0xMi4xNjQtMi45MzMtMTguNzM0IDIuODk5YTQ0IDQ0IDAgMCAwLTIuOTE0IDIuODU5Yy0xMS4yNSAxMS45MjYtMjEuNjg0IDM0LjAyMy0yNC45MjYgNTAuODk1YzEuMjYyIDIuNTYzIDIuMjUgNS44MzIgMi44OTQgOC4zMjhjLjE2OC42NC4zMiAxLjI0Mi40NDIgMS43NTRjLjI4NSAxLjIwNy40MzcgMS45OTYuNDM3IDEuOTk2cy0uMTAxLS4zODMtLjUxNS0xLjU4MmMtLjA3OC0uMjMtLjE2OC0uNDg0LS4yNy0uNzczYTggOCAwIDAgMC0uMTcyLS40MzRjLS43MzQtMS43MDMtMi43NjUtNS4zMDUtMy42NTYtNi44NjdjLS43NjIgMi4yNS0xLjQzNyA0LjM2LTIuMDA0IDYuMjY1YzIuNTc4IDQuNzE1IDQuMTQ5IDEyLjc5NyA0LjE0OSAxMi43OTdzLS4xMzctLjUyMy0uNzgyLTIuMzQ3Yy0uNTc4LTEuNjIxLTMuNDQxLTYuNjQtNC4xMTctNy44MDljLTEuMTY0IDQuMjgxLTEuNjI1IDcuMTcyLTEuMjA3IDcuODhjLjgwOSAxLjM2MiAxLjU3NCAzLjcyMiAyLjI1IDYuMzIzYzEuNTI0IDUuODY3IDIuNTg2IDEzLjAxMiAyLjU4NiAxMy4wMTJzLjAzMS40NjkuMDk0IDEuMmExMTkgMTE5IDAgMCAwIC4yOTcgMTQuNjUxYy41MDQgNi4xMSAxLjQ1MyAxMS4zNjMgMi42NjQgMTQuMTcybC44MjgtLjQ0OWMtMS43ODEtNS41MzUtMi41MDQtMTIuNzkzLTIuMTg4LTIxLjE1NmMuNDgtMTIuNzkzIDMuNDIyLTI4LjIxNSA4Ljg1Ni00NC4yODljOS4xOTEtMjQuMjcgMjEuOTM4LTQzLjczOCAzMy42MDItNTMuMDM1Yy0xMC42MzMgOS42MDItMjUuMDIzIDQwLjY4NC0yOS4zMzIgNTIuMTk1Yy00LjgyIDEyLjg5MS04LjIzOCAyNC45ODQtMTAuMzAxIDM2LjU3NGMzLjU1LTEwLjg2MyAxNS4wNDctMTUuNTMgMTUuMDQ3LTE1LjUzczUuNjM3LTYuOTU4IDEyLjIyNy0xNi44ODhjLTMuOTUuOTAzLTEwLjQzIDIuNDQyLTEyLjU5OCAzLjM1MmMtMy4yIDEuMzQ0LTQuMDY3IDEuOC00LjA2NyAxLjhzMTAuMzcxLTYuMzEyIDE5LjI3LTkuMTcxYzEyLjIzNC0xOS4yNyAyNS41NjItNDYuNjQ4IDEyLjE0MS01OC42MjEiIC8+Cjwvc3ZnPg==",
421
+ url: "https://www.sqlite.org/",
422
+ tagline: "SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine",
423
+ repo: "sqlite/sqlite",
424
+ links: [
425
+ {
426
+ label: "better-sqlite3: API",
427
+ href: "https://github.com/WiseLibs/better-sqlite3/blob/master/docs/api.md"
428
+ },
429
+ {
430
+ label: "D1: Getting started",
431
+ href: "https://developers.cloudflare.com/d1/get-started/"
432
+ }
433
+ ]
434
+ },
416
435
  // Analytics
417
436
  {
418
437
  category: "Analytics",
@@ -169,7 +169,7 @@ declare const features: readonly [{
169
169
  readonly category: "UI Component Libraries";
170
170
  readonly label: "Mantine";
171
171
  readonly flag: "mantine";
172
- readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCA2MjMgMTYzIj48cGF0aCBmaWxsPSIjMzM5QUYwIiBkPSJNMTYyLjE2MiA4MS41YzAtNDUuMDExLTM2LjMwMS04MS41LTgxLjA4LTgxLjVDMzYuMzAxIDAgMCAzNi40ODkgMCA4MS41IDAgMTI2LjUxIDM2LjMwMSAxNjMgODEuMDgxIDE2M3M4MS4wODEtMzYuNDkgODEuMDgxLTgxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNNjUuOTgzIDQzLjA0OWE2LjIzIDYuMjMgMCAwIDAtLjMzNiA2Ljg4NCA2LjEgNi4xIDAgMCAwIDEuNjE4IDEuNzg2YzkuNDQ0IDcuMDM2IDE0Ljg2NiAxNy43OTQgMTQuODY2IDI5LjUycy01LjQyMiAyMi40ODQtMTQuODY2IDI5LjUyYTYuMiA2LjIgMCAwIDAtMS42MTYgMS43ODYgNi4yIDYuMiAwIDAgMC0uNjk0IDQuNjkzIDYuMiA2LjIgMCAwIDAgMS4wMjggMi4xODYgNi4xNSA2LjE1IDAgMCAwIDYuNDU3IDIuMzE5IDYuMiA2LjIgMCAwIDAgMi4xNzctMS4wMzUgNTAgNTAgMCAwIDAgNy45NDctNy4zOWgxNy40OTNjMy40MDYgMCA2LjE3NC0yLjc3MiA2LjE3NC02LjE5NHMtMi43NjItNi4xOTQtNi4xNzQtNi4xOTRoLTkuNjU1YTQ5LjIgNDkuMiAwIDAgMCA0LjA3MS0xOS42OSA0OS4yIDQ5LjIgMCAwIDAtNC4wNy0xOS42OTJoOS42NmMzLjQwNiAwIDYuMTczLTIuNzcxIDYuMTczLTYuMTk0cy0yLjc2Mi02LjE5My02LjE3My02LjE5M0g4Mi41NzRhNTAgNTAgMCAwIDAtNy45NTItNy4zOTcgNi4xNSA2LjE1IDAgMCAwLTQuNTc4LTEuMTUzIDYuMiA2LjIgMCAwIDAtNC4wNTUgMi40Mzh6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNTYuMjM2IDc5LjM5MWE5LjMgOS4zIDAgMCAxIC42MzItMy42MDggOS4zIDkuMyAwIDAgMSAxLjk2Ny0zLjA3NyA5LjEgOS4xIDAgMCAxIDIuOTk0LTIuMDYzIDkuMDYgOS4wNiAwIDAgMSA3LjEwMyAwIDkuMTUgOS4xNSAwIDAgMSAyLjk5NSAyLjA2MyA5LjMgOS4zIDAgMCAxIDEuOTY3IDMuMDc3IDkuMzQgOS4zNCAwIDAgMS0yLjEyNSAxMC4wMDMgOS4xIDkuMSAwIDAgMS02LjM4OCAyLjYzIDkuMSA5LjEgMCAwIDEtNi4zOS0yLjYzIDkuMyA5LjMgMCAwIDEtMi43NTUtNi4zOTUiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjxwYXRoIGZpbGw9IiMwMDAiIGQ9Ik0yOTEuNzM2IDEyNi42NDRxMi45NzYgMCA1LjUxOC0xLjMwMnQyLjU0Mi0zLjc4MnYtNzcuNXEwLTQuNDY0LTIuNDgtNi4yNjJUMjkxLjczNiAzNnEtMi44NTIgMC00Ljk2LjYydC0zLjc4MiAyLjQ4Yy0xLjY3NCAxLjg2LTIuNDE4IDMuMDU5LTMuOTA2IDUuNDU2bC0xNS4yNTIgMjcuNzc2LTE1LjEyOC0yNy43NzZxLTEuOTg0LTMuNTk2LTMuNzgyLTUuNDU2dC0zLjg0NC0yLjQ4LTUuMDIyLS42Mi01LjUxOCAxLjc5OFQyMjggNDQuMDZ2NzcuNXEwIDIuNDggMi41NDIgMy43ODJ0NS41MTggMS4zMDJxMy4xIDAgNS41OC0xLjMwMnQyLjQ4LTMuNzgyVjY3LjI0OGwxNC4yNiAyNi43ODRxMS4xMTYgMS44NiAyLjU0MiAyLjU0MnQyLjc5LjY4MnExLjQ4OCAwIDIuOTc2LS43NDRjMS40ODgtLjc0NCAxLjg2LTEuMzIzIDIuNjA0LTIuNDhsMTQuMzg0LTI1Ljc5MnY1My4zMnEwIDIuNDggMi41NDIgMy43ODJ0NS41MTggMS4zMDJtMzQuMzc1IDEuMTE2cTYuNDQ3IDAgMTAuOTc0LTIuOTc2IDQuNTI2LTIuOTc2IDcuODc0LTYuODJ2My41OTZxMCAyLjEwOCAyLjA0NiAzLjU5NnQ1LjE0NiAxLjQ4OHEzLjM0OCAwIDUuNTgtMS40ODh0Mi4yMzItMy41OTZWOTEuMThxMC02LjMyNC0yLjY2Ni0xMS43OHQtOC40OTQtOC45MjgtMTUuNS0zLjQ3MnEtNC4zNDEgMC04LjkyOCAxLjExNnQtNy43NSAzLjE2MnEtMy4xNjIgMi4wNDYtMy4xNjIgNC42NSAwIDIuNzI4IDEuNDI2IDUuMzMydDQuMDMgMi42MDRxMS42MTEgMCAyLjk3Ni0uOTkydDMuOTA2LTEuOTIyIDcuMjU0LS45M3E0LjIxNSAwIDYuNTEgMS43MzZ0My4zNDggNC4zNGExNC4xIDE0LjEgMCAwIDEgMS4wNTQgNS4zMzJ2MS42MTJoLTUuMDg0cS04LjU1NiAwLTE1LjA2NiAxLjYxMnQtMTAuMTY4IDUuNTgtMy42NTggMTEuMDM2cTAgOC40MzIgNC43NzQgMTIuNDYyIDQuNzczIDQuMDMgMTEuMzQ2IDQuMDNtNi40NDgtMTEuOTA0cS0yLjcyOSAwLTQuNjUtMS42MTItMS45MjMtMS42MTMtMS45MjItNS4wODQgMC0zLjQ3MiAyLjI5NC01LjE0NnQ2LjAxNC0yLjE3YTU5IDU5IDAgMCAxIDcuODEyLS40OTZoMS44NnYyLjYwNHEwIDIuOTc2LTEuNzk4IDUuNzA0dC00LjQwMiA0LjQ2NC01LjIwOCAxLjczNm04NC4xNjkgMTAuNzg4cTMuMSAwIDUuNTgtMS4zMDJ0Mi40OC0zLjc4MlY5Mi4xNzJxMC02Ljk0NC0yLjkxNC0xMi42NDh0LTcuNzUtOS4xMTRUNDAzLjQ2IDY3cS02LjIgMC0xMC40NzggMi45MTR0LTYuMTM4IDYuNTF2LTMuNzJxMC0yLjIzMi0yLjA0Ni0zLjU5NnQtNS4wMjItMS4zNjRxLTMuNDcyIDAtNS43MDQgMS4zNjR0LTIuMjMyIDMuNTk2djQ4Ljg1NnEwIDEuODYgMi4yMzIgMy40NzJ0NS43MDQgMS42MTJxMy4zNDggMCA1LjcwNC0xLjYxMnQyLjM1Ni0zLjQ3MlY5Mi4xNzJxMC0zLjQ3MiAxLjQ4OC01Ljk1MnQzLjg0NC0zLjg0NCA0LjgzNi0xLjM2NHEyLjk3NiAwIDUuNDU2IDEuNjc0dDMuOTA2IDQuMTU0YTEwLjUgMTAuNSAwIDAgMSAxLjQyNiA1LjMzMnYyOS4zODhxMCAyLjQ4IDIuNjA0IDMuNzgydDUuMzMyIDEuMzAybTQ3LjQzMiAwcTMuNDcyIDAgNS4xNDYtMi4xMDh0MS42NzQtNC43MTJxMC0yLjQ4LTEuNjc0LTQuNTg4dC01LjE0Ni0yLjEwOGgtNC44MzZxLTMuODQ0IDAtNS4zOTQtMS40ODh0LTEuNTUtNS4wODRWNzkuNGgxNC42MzJxMS45ODQgMCAzLjAzOC0xLjc5OHQxLjA1NC00LjAzLTEuMDU0LTQuMDMtMy4wMzgtMS43OThINDUyLjM4VjQ2LjQxNnEwLTIuMjMyLTIuNTQyLTMuNTk2dC01LjUxOC0xLjM2NHEtMi43MjggMC01LjMzMiAxLjM2NHQtMi42MDQgMy41OTZ2NjAuMTRxMCAxMC40MTYgNS44OSAxNS4yNTJ0MTcuMDUgNC44MzZ6TTQ4Ny4yMzIgNTQuNnEzLjU5NiAwIDYuMTM4LTIuNDE4dDIuNTQyLTUuMzk0cTAtMy4yMjUtMi41NDItNS41MTgtMi41NDItMi4yOTQtNi4xMzgtMi4yOTR0LTYuMiAyLjI5NHEtMi42MDQgMi4yOTUtMi42MDQgNS41MTggMCAyLjk3NiAyLjYwNCA1LjM5NHQ2LjIgMi40MThtMCA3Mi4wNDRxMy4zNDggMCA1LjcwNC0xLjYxMnQyLjM1Ni0zLjQ3MlY3Mi43MDRxMC0yLjIzMi0yLjM1Ni0zLjU5NnQtNS43MDQtMS4zNjRxLTMuNDcyIDAtNS43MDQgMS4zNjR0LTIuMjMyIDMuNTk2djQ4Ljg1NnEwIDEuODYgMi4yMzIgMy40NzJ0NS43MDQgMS42MTJtNjUuMjQ3IDBxMy4wOTkgMCA1LjU4LTEuMzAydDIuNDgtMy43ODJWOTIuMTcycTAtNi45NDQtMi45MTQtMTIuNjQ4dC03Ljc1LTkuMTE0VDUzOS4yMTEgNjdxLTYuMiAwLTEwLjQ3OCAyLjkxNHQtNi4xMzggNi41MXYtMy43MnEwLTIuMjMyLTIuMDQ2LTMuNTk2dC01LjAyMi0xLjM2NHEtMy40NzIgMC01LjcwNCAxLjM2NHQtMi4yMzIgMy41OTZ2NDguODU2cTAgMS44NiAyLjIzMiAzLjQ3MnQ1LjcwNCAxLjYxMnEzLjM0OCAwIDUuNzA0LTEuNjEydDIuMzU2LTMuNDcyVjkyLjE3MnEwLTMuNDcyIDEuNDg4LTUuOTUydDMuODQ0LTMuODQ0IDQuODM2LTEuMzY0cTIuOTc2IDAgNS40NTYgMS42NzR0My45MDYgNC4xNTRhMTAuNSAxMC41IDAgMCAxIDEuNDI2IDUuMzMydjI5LjM4OHEwIDIuNDggMi42MDQgMy43ODJ0NS4zMzIgMS4zMDJtNDcuNjggMS4xMTZxNi42OTUgMCAxMS41OTQtMS42NzQgNC44OTctMS42NzQgNy41NjQtNC4wOTJ0Mi42NjYtNC41MjZxMC0xLjI0LS43NDQtMi45MTRhOC42NSA4LjY1IDAgMCAwLTIuMTA4LTIuOTE0cS0xLjM2NC0xLjI0LTMuMjI0LTEuMjQtMS43MzcgMC0zLjcyIDEuMTE2LTEuOTg1IDEuMTE3LTQuNzEyIDIuMzU2LTIuNzI4IDEuMjQtNi44MiAxLjI0LTYuNDQ5IDAtMTAuNDc4LTMuMjg2LTQuMDMtMy4yODUtNC4wMy04LjYxOHYtMS44NmgyNS4xNzJxMi44NTEgMCA1LjUxOC0uNTU4IDIuNjY1LS41NTggNC40MDItMi44NTIgMS43MzYtMi4yOTQgMS43MzYtNy42MjYgMC02Ljk0NC0zLjU5Ni0xMi4xNTJ0LTkuMzYyLTguMTg0VDU5Ny4zMDcgNjdxLTcuNTY0IDAtMTMuNzAyIDMuNDEtNi4xMzkgMy40MS05Ljc5NiA5LjA1Mi0zLjY1OCA1LjY0Mi0zLjY1OCAxMi4zMzh2MTAuNTRxMCA3LjU2NCAzLjg0NCAxMy4zM3QxMC42MDIgOC45MjggMTUuNTYyIDMuMTYybTQuMDkyLTM1LjgzNmgtMTguMTA0di0zLjQ3MnEwLTIuOTc3IDEuNTUtNS4xNDZ0NC4wMy0zLjM0OHEyLjQ4LTEuMTc4IDUuMzMyLTEuMTc4IDIuOTc2IDAgNS40NTYgMS4yNHQzLjk2OCAzLjQ3MmMxLjQ4OCAyLjIzMiAxLjQ4OCAzLjE4MyAxLjQ4OCA1LjA4NHEwIDEuOTg0LS44MDYgMi42NjYtLjgwNy42ODItMi45MTQuNjgyIi8+PC9zdmc+";
172
+ readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGZpbGw9Im5vbmUiIHZpZXdCb3g9IjAgMCAxNjMgMTYzIj48cGF0aCBmaWxsPSIjMzM5QUYwIiBkPSJNMTYyLjE2MiA4MS41YzAtNDUuMDExLTM2LjMwMS04MS41LTgxLjA4LTgxLjVDMzYuMzAxIDAgMCAzNi40ODkgMCA4MS41IDAgMTI2LjUxIDM2LjMwMSAxNjMgODEuMDgxIDE2M3M4MS4wODEtMzYuNDkgODEuMDgxLTgxLjUiLz48cGF0aCBmaWxsPSIjZmZmIiBkPSJNNjUuOTgzIDQzLjA0OWE2LjIzIDYuMjMgMCAwIDAtLjMzNiA2Ljg4NCA2LjEgNi4xIDAgMCAwIDEuNjE4IDEuNzg2YzkuNDQ0IDcuMDM2IDE0Ljg2NiAxNy43OTQgMTQuODY2IDI5LjUycy01LjQyMiAyMi40ODQtMTQuODY2IDI5LjUyYTYuMiA2LjIgMCAwIDAtMS42MTYgMS43ODYgNi4yIDYuMiAwIDAgMC0uNjk0IDQuNjkzIDYuMiA2LjIgMCAwIDAgMS4wMjggMi4xODYgNi4xNSA2LjE1IDAgMCAwIDYuNDU3IDIuMzE5IDYuMiA2LjIgMCAwIDAgMi4xNzctMS4wMzUgNTAgNTAgMCAwIDAgNy45NDctNy4zOWgxNy40OTNjMy40MDYgMCA2LjE3NC0yLjc3MiA2LjE3NC02LjE5NHMtMi43NjItNi4xOTQtNi4xNzQtNi4xOTRoLTkuNjU1YTQ5LjIgNDkuMiAwIDAgMCA0LjA3MS0xOS42OSA0OS4yIDQ5LjIgMCAwIDAtNC4wNy0xOS42OTJoOS42NmMzLjQwNiAwIDYuMTczLTIuNzcxIDYuMTczLTYuMTk0cy0yLjc2Mi02LjE5My02LjE3My02LjE5M0g4Mi41NzRhNTAgNTAgMCAwIDAtNy45NTItNy4zOTcgNi4xNSA2LjE1IDAgMCAwLTQuNTc4LTEuMTUzIDYuMiA2LjIgMCAwIDAtNC4wNTUgMi40Mzh6Ii8+PHBhdGggZmlsbD0iI2ZmZiIgZmlsbC1ydWxlPSJldmVub2RkIiBkPSJNNTYuMjM2IDc5LjM5MWE5LjMgOS4zIDAgMCAxIC42MzItMy42MDggOS4zIDkuMyAwIDAgMSAxLjk2Ny0zLjA3NyA5LjEgOS4xIDAgMCAxIDIuOTk0LTIuMDYzIDkuMDYgOS4wNiAwIDAgMSA3LjEwMyAwIDkuMTUgOS4xNSAwIDAgMSAyLjk5NSAyLjA2MyA5LjMgOS4zIDAgMCAxIDEuOTY3IDMuMDc3IDkuMzQgOS4zNCAwIDAgMS0yLjEyNSAxMC4wMDMgOS4xIDkuMSAwIDAgMS02LjM4OCAyLjYzIDkuMSA5LjEgMCAwIDEtNi4zOS0yLjYzIDkuMyA5LjMgMCAwIDEtMi43NTUtNi4zOTUiIGNsaXAtcnVsZT0iZXZlbm9kZCIvPjwvc3ZnPg==";
173
173
  readonly url: "https://mantine.dev";
174
174
  readonly tagline: "A fully featured React components library.";
175
175
  readonly repo: "mantinedev/mantine";
@@ -382,6 +382,21 @@ declare const features: readonly [{
382
382
  readonly label: "Docs & Getting started";
383
383
  readonly href: "https://orm.drizzle.team/docs/overview";
384
384
  }];
385
+ }, {
386
+ readonly category: "Database";
387
+ readonly label: "SQLite";
388
+ readonly flag: "sqlite";
389
+ readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+Cgk8ZGVmcz4KCQk8bGluZWFyR3JhZGllbnQgaWQ9ImRldmljb25TcWxpdGUwIiB4MT0iLTE1LjYxNSIgeDI9Ii02Ljc0MSIgeTE9Ii05LjEwOCIgeTI9Ii05LjEwOCIgZ3JhZGllbnRUcmFuc2Zvcm09InJvdGF0ZSg5MCAtOTAuNDg2IDY0LjYzNClzY2FsZSg5LjI3MTIpIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+CgkJCTxzdG9wIG9mZnNldD0iMCIgc3RvcC1jb2xvcj0iIzk1ZDdmNCIgLz4KCQkJPHN0b3Agb2Zmc2V0PSIuOTIiIHN0b3AtY29sb3I9IiMwZjdmY2MiIC8+CgkJCTxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0iIzBmN2ZjYyIgLz4KCQk8L2xpbmVhckdyYWRpZW50PgoJPC9kZWZzPgoJPHBhdGggZmlsbD0iIzBiN2ZjYyIgZD0iTTY5LjUgOTkuMTc2Yy0uMDU5LS43My0uMDk0LTEuMi0uMDk0LTEuMlM2Ny4yIDgzLjA4NyA2NC41NyA3OC42NDJjLS40MTQtLjcwNy4wNDMtMy41OTQgMS4yMDctNy44OGMuNjggMS4xNjkgMy41NCA2LjE5MiA0LjExOCA3LjgxYy42NDggMS44MjQuNzggMi4zNDcuNzggMi4zNDdzLTEuNTctOC4wODItNC4xNDQtMTIuNzk3YTE2MiAxNjIgMCAwIDEgMi4wMDQtNi4yNjVjLjk3MyAxLjcxIDMuMzEzIDUuODU5IDMuODI4IDcuM2MuMTAyLjI5My4xOTIuNTQzLjI3Ljc3NGwuMDc0LS40MTRjLS41OS0yLjUwNC0xLjc1LTYuODYtMy4zMzYtMTAuMDgyYzMuNTItMTguMzI4IDE1LjUzMS00Mi44MjQgMjcuODQtNTMuNzU0SDE2LjljLTUuMzg3IDAtOS43ODkgNC40MDYtOS43ODkgOS43ODl2ODguNTdjMCA1LjM4MyA0LjQwNiA5Ljc4OSA5Ljc5IDkuNzg5aDUyLjg5N2ExMTkgMTE5IDAgMCAxLS4yOTctMTQuNjUyIiAvPgoJPHBhdGggZmlsbD0idXJsKCNkZXZpY29uU3FsaXRlMCkiIGQ9Ik02NS43NzcgNzAuNzYyYy42OCAxLjE2OCAzLjU0IDYuMTg4IDQuMTE3IDcuODA5Yy42NDkgMS44MjQuNzgxIDIuMzQ3Ljc4MSAyLjM0N3MtMS41Ny04LjA4Mi00LjE0NC0xMi43OTdhMTY1IDE2NSAwIDAgMSAyLjAwNC02LjI3Yy44ODcgMS41NjcgMi45MjIgNS4xNjkgMy42NTIgNi44NzJsLjA4Mi0uOTYxYy0uNjQ4LTIuNDk2LTEuNjMzLTUuNzY2LTIuODk4LTguMzI4YzMuMjQyLTE2Ljg3MSAxMy42OC0zOC45NyAyNC45MjYtNTAuODk4SDE2Ljg5OWE2Ljk0IDYuOTQgMCAwIDAtNi45MzQgNi45MzN2ODIuMTFjMTcuNTI3LTYuNzMxIDM4LjY2NC0xMi44OCA1Ni44NTUtMTIuNjE0Yy0uNjcyLTIuNjA1LTEuNDQxLTQuOTYtMi4yNS02LjMyNGMtLjQxNC0uNzA3LjA0My0zLjU5NyAxLjIwNy03Ljg3OSIgLz4KCTxwYXRoIGZpbGw9IiMwMDM5NTYiIGQ9Ik0xMTUuOTUgMi43ODFjLTUuNS00LjkwNi0xMi4xNjQtMi45MzMtMTguNzM0IDIuODk5YTQ0IDQ0IDAgMCAwLTIuOTE0IDIuODU5Yy0xMS4yNSAxMS45MjYtMjEuNjg0IDM0LjAyMy0yNC45MjYgNTAuODk1YzEuMjYyIDIuNTYzIDIuMjUgNS44MzIgMi44OTQgOC4zMjhjLjE2OC42NC4zMiAxLjI0Mi40NDIgMS43NTRjLjI4NSAxLjIwNy40MzcgMS45OTYuNDM3IDEuOTk2cy0uMTAxLS4zODMtLjUxNS0xLjU4MmMtLjA3OC0uMjMtLjE2OC0uNDg0LS4yNy0uNzczYTggOCAwIDAgMC0uMTcyLS40MzRjLS43MzQtMS43MDMtMi43NjUtNS4zMDUtMy42NTYtNi44NjdjLS43NjIgMi4yNS0xLjQzNyA0LjM2LTIuMDA0IDYuMjY1YzIuNTc4IDQuNzE1IDQuMTQ5IDEyLjc5NyA0LjE0OSAxMi43OTdzLS4xMzctLjUyMy0uNzgyLTIuMzQ3Yy0uNTc4LTEuNjIxLTMuNDQxLTYuNjQtNC4xMTctNy44MDljLTEuMTY0IDQuMjgxLTEuNjI1IDcuMTcyLTEuMjA3IDcuODhjLjgwOSAxLjM2MiAxLjU3NCAzLjcyMiAyLjI1IDYuMzIzYzEuNTI0IDUuODY3IDIuNTg2IDEzLjAxMiAyLjU4NiAxMy4wMTJzLjAzMS40NjkuMDk0IDEuMmExMTkgMTE5IDAgMCAwIC4yOTcgMTQuNjUxYy41MDQgNi4xMSAxLjQ1MyAxMS4zNjMgMi42NjQgMTQuMTcybC44MjgtLjQ0OWMtMS43ODEtNS41MzUtMi41MDQtMTIuNzkzLTIuMTg4LTIxLjE1NmMuNDgtMTIuNzkzIDMuNDIyLTI4LjIxNSA4Ljg1Ni00NC4yODljOS4xOTEtMjQuMjcgMjEuOTM4LTQzLjczOCAzMy42MDItNTMuMDM1Yy0xMC42MzMgOS42MDItMjUuMDIzIDQwLjY4NC0yOS4zMzIgNTIuMTk1Yy00LjgyIDEyLjg5MS04LjIzOCAyNC45ODQtMTAuMzAxIDM2LjU3NGMzLjU1LTEwLjg2MyAxNS4wNDctMTUuNTMgMTUuMDQ3LTE1LjUzczUuNjM3LTYuOTU4IDEyLjIyNy0xNi44ODhjLTMuOTUuOTAzLTEwLjQzIDIuNDQyLTEyLjU5OCAzLjM1MmMtMy4yIDEuMzQ0LTQuMDY3IDEuOC00LjA2NyAxLjhzMTAuMzcxLTYuMzEyIDE5LjI3LTkuMTcxYzEyLjIzNC0xOS4yNyAyNS41NjItNDYuNjQ4IDEyLjE0MS01OC42MjEiIC8+Cjwvc3ZnPg==";
390
+ readonly url: "https://www.sqlite.org/";
391
+ readonly tagline: "SQLite is a C-language library that implements a small, fast, self-contained, high-reliability, full-featured, SQL database engine";
392
+ readonly repo: "sqlite/sqlite";
393
+ readonly links: [{
394
+ readonly label: "better-sqlite3: API";
395
+ readonly href: "https://github.com/WiseLibs/better-sqlite3/blob/master/docs/api.md";
396
+ }, {
397
+ readonly label: "D1: Getting started";
398
+ readonly href: "https://developers.cloudflare.com/d1/get-started/";
399
+ }];
385
400
  }, {
386
401
  readonly category: "Analytics";
387
402
  readonly label: "Plausible.io";
@@ -489,8 +504,8 @@ declare const features: readonly [{
489
504
  readonly url: "https://logrocket.com";
490
505
  readonly disabled: true;
491
506
  }];
492
- declare const flags: ("vike" | "react" | "vue" | "solid" | "tailwindcss" | "daisyui" | "compiled-css" | "mantine" | "authjs" | "auth0" | "firebase-auth" | "lucia-auth" | "telefunc" | "trpc" | "ts-rest" | "hono" | "h3" | "express" | "fastify" | "hattip" | "prisma" | "edgedb" | "drizzle" | "plausible.io" | "google-analytics" | "segment" | "cloudflare" | "vercel" | "netlify" | "eslint" | "prettier" | "biome" | "sentry" | "logrocket")[];
493
- declare const cliFlags: ("vike" | "react" | "vue" | "solid" | "tailwindcss" | "daisyui" | "compiled-css" | "mantine" | "authjs" | "auth0" | "firebase-auth" | "lucia-auth" | "telefunc" | "trpc" | "ts-rest" | "hono" | "h3" | "express" | "fastify" | "hattip" | "prisma" | "edgedb" | "drizzle" | "plausible.io" | "google-analytics" | "segment" | "cloudflare" | "vercel" | "netlify" | "eslint" | "prettier" | "biome" | "sentry" | "logrocket")[];
507
+ declare const flags: ("vike" | "react" | "vue" | "solid" | "tailwindcss" | "daisyui" | "compiled-css" | "mantine" | "authjs" | "auth0" | "firebase-auth" | "lucia-auth" | "telefunc" | "trpc" | "ts-rest" | "hono" | "h3" | "express" | "fastify" | "hattip" | "prisma" | "edgedb" | "drizzle" | "sqlite" | "plausible.io" | "google-analytics" | "segment" | "cloudflare" | "vercel" | "netlify" | "eslint" | "prettier" | "biome" | "sentry" | "logrocket")[];
508
+ declare const cliFlags: ("vike" | "react" | "vue" | "solid" | "tailwindcss" | "daisyui" | "compiled-css" | "mantine" | "authjs" | "auth0" | "firebase-auth" | "lucia-auth" | "telefunc" | "trpc" | "ts-rest" | "hono" | "h3" | "express" | "fastify" | "hattip" | "prisma" | "edgedb" | "drizzle" | "sqlite" | "plausible.io" | "google-analytics" | "segment" | "cloudflare" | "vercel" | "netlify" | "eslint" | "prettier" | "biome" | "sentry" | "logrocket")[];
494
509
  type Flags = (typeof flags)[number];
495
510
 
496
511
  export { type CategoryLabels as C, type Flags as F, categories as a, flags as b, categoriesGroups as c, cliFlags as d, features as f };
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- import { c as categoriesGroups } from './features-BdcbXC10.js';
2
- export { C as CategoryLabels, F as Flags, a as categories, d as cliFlags, f as features, b as flags } from './features-BdcbXC10.js';
1
+ import { c as categoriesGroups, F as Flags } from './features--7HDnptH.js';
2
+ export { C as CategoryLabels, a as categories, d as cliFlags, f as features, b as flags } from './features--7HDnptH.js';
3
3
 
4
4
  interface Feature<C = string> {
5
5
  label: string;
@@ -28,4 +28,12 @@ interface Category {
28
28
  description?: string;
29
29
  }
30
30
 
31
- export { type Category, type Feature, type FeatureLink, categoriesGroups };
31
+ declare class BatiSet extends Set<Flags> {
32
+ #private;
33
+ constructor(flags: Flags[], allFeatures: ReadonlyArray<Feature>);
34
+ private hasOneOf;
35
+ get hasServer(): boolean;
36
+ get hasDatabase(): boolean;
37
+ }
38
+
39
+ export { BatiSet, type Category, type Feature, type FeatureLink, Flags, categoriesGroups };
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  cliFlags,
3
3
  features,
4
4
  flags
5
- } from "./chunk-ZSQCULP5.js";
5
+ } from "./chunk-7O4XDQ3N.js";
6
6
 
7
7
  // src/groups.ts
8
8
  var categoriesGroups = /* @__PURE__ */ ((categoriesGroups2) => {
@@ -85,7 +85,29 @@ tailored for Vike.`
85
85
  description: `Coming soon: Error Tracking solution for frontend and backend`
86
86
  }
87
87
  ];
88
+
89
+ // src/helpers.ts
90
+ var BatiSet = class extends Set {
91
+ #servers;
92
+ #databases;
93
+ constructor(flags2, allFeatures) {
94
+ super(flags2);
95
+ this.#servers = new Set(allFeatures.filter((f) => f.category === "Server").map((f) => f.flag));
96
+ this.#databases = new Set(allFeatures.filter((f) => f.category === "Database").map((f) => f.flag));
97
+ }
98
+ hasOneOf(a) {
99
+ for (const x of this) if (a.has(x)) return true;
100
+ return false;
101
+ }
102
+ get hasServer() {
103
+ return this.hasOneOf(this.#servers);
104
+ }
105
+ get hasDatabase() {
106
+ return this.hasOneOf(this.#databases);
107
+ }
108
+ };
88
109
  export {
110
+ BatiSet,
89
111
  categories,
90
112
  categoriesGroups,
91
113
  cliFlags,
package/dist/rules.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { F as Flags, C as CategoryLabels } from './features-BdcbXC10.js';
1
+ import { F as Flags, C as CategoryLabels } from './features--7HDnptH.js';
2
2
 
3
3
  declare enum RulesMessage {
4
4
  ERROR_AUTH_R_SERVER = 0,
@@ -6,9 +6,10 @@ declare enum RulesMessage {
6
6
  ERROR_MANTINE_R_REACT = 2,
7
7
  ERROR_DRIZZLE_R_SERVER = 3,
8
8
  ERROR_DATA_R_SERVER = 4,
9
- ERROR_CLOUDFLARE_R_COMPAT_SERVER = 5,
10
- INFO_HATTIP = 6,
11
- INFO_DRIZZLE_STACKBLITZ = 7
9
+ ERROR_LUCIA_R_COMPAT_DATABASE = 5,
10
+ ERROR_CLOUDFLARE_R_COMPAT_SERVER = 6,
11
+ INFO_HATTIP = 7,
12
+ INFO_DRIZZLE_STACKBLITZ = 8
12
13
  }
13
14
 
14
15
  type FeatureOrCategory = Flags | CategoryLabels;
package/dist/rules.js CHANGED
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  features,
3
3
  flags
4
- } from "./chunk-ZSQCULP5.js";
4
+ } from "./chunk-7O4XDQ3N.js";
5
5
 
6
6
  // src/rules/enum.ts
7
7
  var RulesMessage = /* @__PURE__ */ ((RulesMessage2) => {
@@ -10,9 +10,10 @@ var RulesMessage = /* @__PURE__ */ ((RulesMessage2) => {
10
10
  RulesMessage2[RulesMessage2["ERROR_MANTINE_R_REACT"] = 2] = "ERROR_MANTINE_R_REACT";
11
11
  RulesMessage2[RulesMessage2["ERROR_DRIZZLE_R_SERVER"] = 3] = "ERROR_DRIZZLE_R_SERVER";
12
12
  RulesMessage2[RulesMessage2["ERROR_DATA_R_SERVER"] = 4] = "ERROR_DATA_R_SERVER";
13
- RulesMessage2[RulesMessage2["ERROR_CLOUDFLARE_R_COMPAT_SERVER"] = 5] = "ERROR_CLOUDFLARE_R_COMPAT_SERVER";
14
- RulesMessage2[RulesMessage2["INFO_HATTIP"] = 6] = "INFO_HATTIP";
15
- RulesMessage2[RulesMessage2["INFO_DRIZZLE_STACKBLITZ"] = 7] = "INFO_DRIZZLE_STACKBLITZ";
13
+ RulesMessage2[RulesMessage2["ERROR_LUCIA_R_COMPAT_DATABASE"] = 5] = "ERROR_LUCIA_R_COMPAT_DATABASE";
14
+ RulesMessage2[RulesMessage2["ERROR_CLOUDFLARE_R_COMPAT_SERVER"] = 6] = "ERROR_CLOUDFLARE_R_COMPAT_SERVER";
15
+ RulesMessage2[RulesMessage2["INFO_HATTIP"] = 7] = "INFO_HATTIP";
16
+ RulesMessage2[RulesMessage2["INFO_DRIZZLE_STACKBLITZ"] = 8] = "INFO_DRIZZLE_STACKBLITZ";
16
17
  return RulesMessage2;
17
18
  })(RulesMessage || {});
18
19
 
@@ -43,10 +44,10 @@ var rules_default = [
43
44
  requires(0 /* ERROR_AUTH_R_SERVER */, "Auth", ["Server"]),
44
45
  requires(1 /* ERROR_COMPILED_R_REACT */, "compiled-css", ["react"]),
45
46
  requires(2 /* ERROR_MANTINE_R_REACT */, "mantine", ["react"]),
46
- includes(6 /* INFO_HATTIP */, "hattip"),
47
+ includes(7 /* INFO_HATTIP */, "hattip"),
47
48
  requires(3 /* ERROR_DRIZZLE_R_SERVER */, "drizzle", ["Server"]),
48
49
  requires(4 /* ERROR_DATA_R_SERVER */, "Data fetching", ["Server"]),
49
- filter(5 /* ERROR_CLOUDFLARE_R_COMPAT_SERVER */, (fts) => {
50
+ filter(6 /* ERROR_CLOUDFLARE_R_COMPAT_SERVER */, (fts) => {
50
51
  if (fts.has("cloudflare")) {
51
52
  if (fts.has("hono") || fts.has("hattip")) {
52
53
  return false;
@@ -55,7 +56,13 @@ var rules_default = [
55
56
  }
56
57
  return false;
57
58
  }),
58
- includes(7 /* INFO_DRIZZLE_STACKBLITZ */, "drizzle")
59
+ filter(5 /* ERROR_LUCIA_R_COMPAT_DATABASE */, (fts) => {
60
+ if (fts.has("lucia-auth")) {
61
+ return !(fts.has("sqlite") || fts.has("drizzle"));
62
+ }
63
+ return false;
64
+ }),
65
+ includes(8 /* INFO_DRIZZLE_STACKBLITZ */, "drizzle")
59
66
  ];
60
67
 
61
68
  // src/rules/index.ts
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@batijs/features",
3
- "version": "0.0.255",
3
+ "version": "0.0.258",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "keywords": [],