@batijs/features 0.0.633 → 0.0.635

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.
@@ -1,4 +1,15 @@
1
1
  //#region src/features.ts
2
+ /**
3
+ * In forder to have an icon that has different colors based on dark/light mode:
4
+ *
5
+ * <style>
6
+ * path { fill: black; }
7
+ *
8
+ * @media (prefers-color-scheme: dark) {
9
+ * path { fill: white; }
10
+ * }
11
+ * </style>
12
+ */
2
13
  const features = [
3
14
  {
4
15
  category: "Frontend Framework",
@@ -130,7 +141,7 @@ const features = [
130
141
  label: "shadcn/ui",
131
142
  flag: "shadcn-ui",
132
143
  dependsOn: ["tailwindcss", "react"],
133
- image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBjbGFzcz0iaC02IHctNiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNTZ2MjU2SDB6Ii8+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxNiIgZD0ibTIwOCAxMjgtODAgODBtNjQtMTY4TDQwIDE5MiIvPjwvc3ZnPg==",
144
+ image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+IHBhdGh7ZmlsbDpibGFjazt9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtwYXRoe2ZpbGw6d2hpdGU7fX08L3N0eWxlPjxwYXRoIGQ9Ik0yMi4yMTkgMTEuNzg0IDExLjc4NCAyMi4yMTljLS40MDcuNDA3LS40MDcgMS4wNjggMCAxLjQ3Ni40MDcuNDA3IDEuMDY4LjQwNyAxLjQ3NiAwTDIzLjY5NSAxMy4yNmMuNDA3LS40MDguNDA3LTEuMDY5IDAtMS40NzYtLjQwOC0uNDA3LTEuMDY5LS40MDctMS40NzYgMFpNMjAuMTMyLjMwNS4zMDUgMjAuMTMyYy0uNDA3LjQwNy0uNDA3IDEuMDY4IDAgMS40NzYuNDA4LjQwNyAxLjA2OS40MDcgMS40NzYgMEwyMS42MDggMS43ODFjLjQwNy0uNDA3LjQwNy0xLjA2OCAwLTEuNDc2LS40MDgtLjQwNy0xLjA2OS0uNDA3LTEuNDc2IDBaIi8+PC9zdmc+",
134
145
  url: "https://ui.shadcn.com",
135
146
  tagline: "Beautifully designed components that you can copy and paste into your apps.",
136
147
  repo: "shadcn-ui/ui",
@@ -157,7 +168,7 @@ const features = [
157
168
  category: "Auth",
158
169
  label: "Auth.js",
159
170
  flag: "authjs",
160
- image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0iIzg4ODg4OCIgZD0ibTUwLjAyNyAxMC40NTlsLS4wMTgtLjAzMmwtMzMuNjA2IDE5LjQwNGwuMDc2LjEzMnYyMi44OTNoLjAxNGMuMjg2IDE5LjExMSAxNC44NTkgMzQuNzU1IDMzLjUxOSAzNi43MThjMTguNjYtMS45NjIgMzMuMjM0LTE3LjYwNiAzMy41MTktMzYuNzE4VjI5Ljk1M2wuMDY2LS4xMTRsLTMzLjU3LTE5LjM4em0tLjAxNSA2OS4wOTdWNTEuNjc3SDI2LjQzNVYzNS42NTFMNTAuMDEyIDIyLjA0djI5LjYzN2gyMy41NjN2MS4xNzloLjAxN2MtLjI3OCAxMy41OTMtMTAuNDM5IDI0Ljc5OC0yMy41OCAyNi43eiIvPjwvc3ZnPg==",
171
+ image: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjMyIiBoZWlnaHQ9IjIzMiIgdmlld0JveD0iMCAwIDIzMiAyMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMDguNjg3IDMxLjg1OUwzMC4wOTQ3IDE2Ny43M0M4LjE2Mzg4IDEyNy45NjYgMC41Njc1NTkgNzkuOTk3NSAwIDUxLjIyNzVWMzMuNjE4MUMwIDMxLjA1NjcgMi43Nzg4IDI5LjU2MjggNC4xNjg1MSAyOS4xMzU2QzMzLjU2MTcgMjAuMjc3OCA5My4yNDY1IDIuMzA1MjQgOTYuODM3OCAxLjI4MDY5QzEwMC40MjkgMC4yNTYxMzggMTAzLjQ2NCAwIDEwNC41MzQgMEgxMDQuNjMxQzEwNS43IDAgMTA4LjczNSAwLjI1NjEzOCAxMTIuMzI3IDEuMjgwNjlDMTE1LjkxOCAyLjMwNTI0IDE3NS42MDMgMjAuMjc3OCAyMDQuOTk2IDI5LjEzNTZDMjA2LjAzIDI5LjQ1MzMgMjA3LjgzMiAzMC4zNjEzIDIwOC42ODcgMzEuODU5WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzEyOF82MSkiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMwLjA5MzggMTY3Ljk1MkwyMDguNjg2IDMyLjA4MTVDMjA4Ljk4MSAzMi41OTgzIDIwOS4xNjQgMzMuMTg0MiAyMDkuMTY0IDMzLjg0MDZWNTEuNDVDMjA4LjIwMiAxMDAuMjIzIDE4Ny4wMzggMjA0LjE3MiAxMTAuMDgxIDIyOS43ODZDMTA5LjAxMyAyMzAuMjEzIDEwNi40OSAyMzEuMDY3IDEwNC45NTEgMjMxLjA2N0gxMDQuMjEyQzEwMi42NzMgMjMxLjA2NyAxMDAuMTUgMjMwLjIxMyA5OS4wODE0IDIyOS43ODZDNjcuNTE5MyAyMTkuMjgxIDQ1LjM0MTUgMTk1LjYgMzAuMDkzOCAxNjcuOTUyWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzEyOF82MSkiLz48cGF0aCBkPSJNMTExLjc0IDEuMjgzMjVDMTA4LjE0NyAwLjI1NjY1IDEwNS4xMSAwIDEwNC4wNCAwTDEwMy43MTkgMjMxLjMwNUgxMDQuMzYxQzEwNS45MDEgMjMxLjMwNSAxMDguNDI1IDIzMC40NSAxMDkuNDk0IDIzMC4wMjJDMTg2LjQ4OSAyMDQuMzU3IDIwNy42NjMgMTAwLjIgMjA4LjYyNSA1MS4zMjk5VjMzLjY4NTNDMjA4LjYyNSAzMS4xMTg4IDIwNS44NDUgMjkuNjIxNiAyMDQuNDU0IDI5LjE5MzlDMTc1LjA0NyAyMC4zMTgxIDExNS4zMzMgMi4zMDk4NSAxMTEuNzQgMS4yODMyNVoiIGZpbGw9InVybCgjcGFpbnQyX2xpbmVhcl8xMjhfNjEpIiBmaWxsLW9wYWNpdHk9IjAuMjEiLz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMTI4XzYxIiB4MT0iMTkuNTY5NSIgeTE9Ijk2LjU2NDQiIHgyPSI5Ny41MjY5IiB5Mj0iMTUuMDc4MiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiM0NUZGQzgiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxREJCRjEiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xMjhfNjEiIHgxPSI3My43ODU2IiB5MT0iMTQzLjcyNCIgeDI9IjE3MC42NzEiIHkyPSIxOTAuODg0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI0QxNEFFOCIvPjxzdG9wIG9mZnNldD0iMC41NTIyMjgiIHN0b3AtY29sb3I9IiNCNjI4RTMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4MzE1RkQiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQyX2xpbmVhcl8xMjhfNjEiIHgxPSIxNTUuOTE0IiB5MT0iMjEuODE1MiIgeDI9IjE1NS45MTQiIHkyPSIxODIuNTQyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzIwQUJGNSIvPjxzdG9wIG9mZnNldD0iMC4zOTgwOTMiIHN0b3AtY29sb3I9IiMyQThDQzMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNBMTA0REMiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=",
161
172
  url: "https://authjs.dev",
162
173
  spectrum: "bleeding_edge",
163
174
  tagline: "Authentication for the Web",
@@ -174,7 +185,7 @@ const features = [
174
185
  category: "Auth",
175
186
  label: "Auth0",
176
187
  flag: "auth0",
177
- image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIwLjllbSIgaGVpZ2h0PSIxZW0iIHZpZXdCb3g9IjAgMCAyNTYgMjg1Ij48cGF0aCBkPSJNMjIwLjQxMiAwaC05Mi40MTVsMjguNTYyIDg5LjAwNmg5Mi40MTZsLTc0Ljc3IDUzLjA3N2wyOC41NyA4OS41MTFjNDguMTI4LTM1LjA2IDYzLjg1NC04OC4xMiA0Ni4yMDgtMTQyLjU4OEwyMjAuNDEzIDBaTTcuMDE4IDg5LjAwNmg5Mi40MTZMMTI3Ljk5NyAwSDM1LjU4OUw3LjAxOSA4OS4wMDZjLTE3LjY1NSA1NC40NjgtMS45MiAxMDcuNTI5IDQ2LjIwNyAxNDIuNTg4bDI4LjU2My04OS41MWwtNzQuNzctNTMuMDc4Wm00Ni4yMDggMTQyLjU4OGw3NC43NyA1Mi45N2w3NC43Ny01Mi45N2wtNzQuNzctNTMuODQ3bC03NC43NyA1My44NDdaIi8+PC9zdmc+",
188
+ image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWluIG1lZXQiIHZpZXdCb3g9IjAgMCAyNTYgMjg3Ij48cGF0aCBmaWxsPSIjRUI1NDI0IiBkPSJtMjAzLjIgMjMxLjUtMjguNy04OC40IDc1LjItNTQuNmgtOTNMMTI4IDBoOTNsMjguNyA4OC40YTEyOCAxMjggMCAwIDEtNDYuNSAxNDMuMXptLTE1MC40IDAgNzUuMiA1NC43IDc1LjItNTQuN0wxMjggMTc3bC03NS4yIDU0LjZ6TTYuMyA4OC41YTEyOCAxMjggMCAwIDAgNDYuNSAxNDNsMjguNy04OC40TDYuMyA4OC41aDkzTDEyOCAwSDM1TDYuMyA4OC40eiIvPjwvc3ZnPg==",
178
189
  url: "https://auth0.com",
179
190
  tagline: "Secure access for everyone. But not just anyone.",
180
191
  repo: "nextauthjs/next-auth",
@@ -258,6 +269,7 @@ const features = [
258
269
  category: "Server",
259
270
  label: "Express",
260
271
  flag: "express",
272
+ image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+PHN0eWxlPiBwYXRoe2ZpbGw6YmxhY2s7fUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7cGF0aHtmaWxsOndoaXRlO319PC9zdHlsZT48cGF0aCBkPSJNMTI2LjY3IDk4LjQ0Yy00LjU2IDEuMTYtNy4zOC4wNS05LjkxLTMuNzUtNS42OC04LjUxLTExLjk1LTE2LjYzLTE4LTI0LjktLjc4LTEuMDctMS41OS0yLjEyLTIuNi0zLjQ1Qzg5IDc2IDgxLjg1IDg1LjIgNzUuMTQgOTQuNzdjLTIuNCAzLjQyLTQuOTIgNC45MS05LjQgMy43bDI2LjkyLTM2LjEzTDY3LjYgMjkuNzFjNC4zMS0uODQgNy4yOS0uNDEgOS45MyAzLjQ1IDUuODMgOC41MiAxMi4yNiAxNi42MyAxOC42NyAyNS4yMSA2LjQ1LTguNTUgMTIuOC0xNi42NyAxOC44LTI1LjExIDIuNDEtMy40MiA1LTQuNzIgOS4zMy0zLjQ2LTMuMjggNC4zNS02LjQ5IDguNjMtOS43MiAxMi44OC00LjM2IDUuNzMtOC42NCAxMS41My0xMy4xNiAxNy4xNC0xLjYxIDItMS4zNSAzLjMuMDkgNS4xOUMxMDkuOSA3NiAxMTguMTYgODcuMSAxMjYuNjcgOTguNDR6TTEuMzMgNjEuNzRjLjcyLTMuNjEgMS4yLTcuMjkgMi4yLTEwLjgzIDYtMjEuNDMgMzAuNi0zMC4zNCA0Ny41LTE3LjA2QzYwLjkzIDQxLjY0IDYzLjM5IDUyLjYyIDYyLjkgNjVINy4xYy0uODQgMjIuMjEgMTUuMTUgMzUuNjIgMzUuNTMgMjguNzggNy4xNS0yLjQgMTEuMzYtOCAxMy40Ny0xNSAxLjA3LTMuNTEgMi44NC00LjA2IDYuMTQtMy4wNi0xLjY5IDguNzYtNS41MiAxNi4wOC0xMy41MiAyMC42Ni0xMiA2Ljg2LTI5LjEzIDQuNjQtMzguMTQtNC44OUM1LjI2IDg1Ljg5IDMgNzguOTIgMiA3MS4zOWMtLjE1LTEuMi0uNDYtMi4zOC0uNy0zLjU3cS4wMy0zLjA0LjAzLTYuMDh6bTUuODctMS40OWg1MC40M2MtLjMzLTE2LjA2LTEwLjMzLTI3LjQ3LTI0LTI3LjU3LTE1LS4xMi0yNS43OCAxMS4wMi0yNi40MyAyNy41N3oiIC8+PC9zdmc+",
261
273
  url: "https://expressjs.com",
262
274
  spectrum: "beaten_path",
263
275
  tagline: "Fast, unopinionated, minimalist web framework for Node.js",
@@ -286,19 +298,6 @@ const features = [
286
298
  href: "https://fastify.dev/docs/latest/Reference/"
287
299
  }]
288
300
  },
289
- {
290
- category: "Database",
291
- label: "Drizzle",
292
- flag: "drizzle",
293
- image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjI4MHB4IiBoZWlnaHQ9IjI4MHB4IiBzdHlsZT0ic2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgdGV4dC1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uOyBpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5OyBmaWxsLXJ1bGU6ZXZlbm9kZDsgY2xpcC1ydWxlOmV2ZW5vZGQiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iIzAwMDAwMCIgZD0iTSAtMC41LC0wLjUgQyA5Mi44MzMzLC0wLjUgMTg2LjE2NywtMC41IDI3OS41LC0wLjVDIDI3OS41LDkyLjgzMzMgMjc5LjUsMTg2LjE2NyAyNzkuNSwyNzkuNUMgMTg2LjE2NywyNzkuNSA5Mi44MzMzLDI3OS41IC0wLjUsMjc5LjVDIC0wLjUsMTg2LjE2NyAtMC41LDkyLjgzMzMgLTAuNSwtMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTMzLjUsODQuNSBDIDE0Mi44MTQsODIuNzI2OSAxNDYuNjQ3LDg2LjM5MzUgMTQ1LDk1LjVDIDEzNS45MDYsMTEyLjAyOCAxMjYuNTcyLDEyOC4zNjIgMTE3LDE0NC41QyAxMTEuMjQ5LDE0OS45ODQgMTA2LjI0OSwxNDkuMzE3IDEwMiwxNDIuNUMgMTAxLjMzMywxNDAuODMzIDEwMS4zMzMsMTM5LjE2NyAxMDIsMTM3LjVDIDExMS41NDcsMTE5LjA0MSAxMjIuMDQ3LDEwMS4zNzUgMTMzLjUsODQuNSBaIi8+PC9nPgo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eToxIiBmaWxsPSIjYzBmMTRkIiBkPSJNIDIyMy41LDg0LjUgQyAyMzMuNTM5LDgzLjY5NzIgMjM3LjAzOSw4OC4wMzA1IDIzNCw5Ny41QyAyMjUuMzQ3LDExMi44MDEgMjE2LjY4MSwxMjguMTM1IDIwOCwxNDMuNUMgMjAzLjM4NywxNDkuNzM3IDE5OC4zODcsMTUwLjA3MSAxOTMsMTQ0LjVDIDE5MS41NzgsMTQxLjk3IDE5MS4yNDUsMTM5LjMwMyAxOTIsMTM2LjVDIDIwMC41MiwxMjIuNzk0IDIwOC41MiwxMDguNzk0IDIxNiw5NC41QyAyMTguMjg5LDkwLjg4MTIgMjIwLjc4OSw4Ny41NDc5IDIyMy41LDg0LjUgWiIvPjwvZz4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iI2MwZjE0ZCIgZD0iTSA3NS41LDEyMC41IEMgODMuOTg4NSwxMTkuNjE4IDg3LjgyMTgsMTIzLjI4NSA4NywxMzEuNUMgNzcuOTA1NywxNDguMDI4IDY4LjU3MjQsMTY0LjM2MiA1OSwxODAuNUMgNTYuMDQ1MywxODQuMjc3IDUyLjIxMiwxODUuNDQzIDQ3LjUsMTg0QyA0My44Njk3LDE4MC45NSA0Mi43MDMsMTc3LjExNyA0NCwxNzIuNUMgNTMsMTU2LjUgNjIsMTQwLjUgNzEsMTI0LjVDIDcyLjM5NjgsMTIyLjkzIDczLjg5NjgsMTIxLjU5NiA3NS41LDEyMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTY1LjUsMTIwLjUgQyAxNzQuMTY0LDExOS4zMzIgMTc3Ljk5NywxMjIuOTk5IDE3NywxMzEuNUMgMTY3LjQxNCwxNDcuNjcxIDE1OC4wOCwxNjQuMDA0IDE0OSwxODAuNUMgMTQ2LjM5OCwxODQuMjEyIDE0Mi44OTgsMTg1LjM3OCAxMzguNSwxODRDIDEzMy45MzEsMTgxLjQ1OSAxMzIuNDMxLDE3Ny42MjUgMTM0LDE3Mi41QyAxNDMuNTcyLDE1Ni4zNjIgMTUyLjkwNiwxNDAuMDI4IDE2MiwxMjMuNUMgMTYzLjE0NSwxMjIuMzY0IDE2NC4zMTIsMTIxLjM2NCAxNjUuNSwxMjAuNSBaIi8+PC9nPgo8L3N2Zz4K",
294
- url: "https://orm.drizzle.team/",
295
- tagline: "Headless TypeScript ORM that feels like SPA with SSR",
296
- repo: "drizzle-team/drizzle-orm",
297
- links: [{
298
- label: "Docs & Getting started",
299
- href: "https://orm.drizzle.team/docs/overview"
300
- }]
301
- },
302
301
  {
303
302
  category: "Database",
304
303
  label: "SQLite",
@@ -317,6 +316,35 @@ const features = [
317
316
  },
318
317
  {
319
318
  category: "Database",
319
+ label: "PostgreSQL",
320
+ flag: "postgres",
321
+ image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cGF0aCBkPSJNOTMuODA5IDkyLjExMmMuNzg1LTYuNTMzLjU1LTcuNDkyIDUuNDE2LTYuNDMzbDEuMjM1LjEwOGMzLjc0Mi4xNyA4LjYzNy0uNjAyIDExLjUxMy0xLjkzOCA2LjE5MS0yLjg3MyA5Ljg2MS03LjY2OCAzLjc1OC02LjQwOS0xMy45MjQgMi44NzMtMTQuODgxLTEuODQyLTE0Ljg4MS0xLjg0MiAxNC43MDMtMjEuODE1IDIwLjg0OS00OS41MDggMTUuNTQzLTU2LjI4Ny0xNC40Ny0xOC40ODktMzkuNTE3LTkuNzQ2LTM5LjkzNi05LjUybC0uMTM0LjAyNWMtMi43NTEtLjU3MS01LjgzLS45MTItOS4yODktLjk2OC02LjMwMS0uMTA0LTExLjA4MiAxLjY1Mi0xNC43MDkgNC40MDIgMCAwLTQ0LjY4My0xOC40MDktNDIuNjA0IDIzLjE1MS40NDIgOC44NDEgMTIuNjcyIDY2Ljg5OCAyNy4yNiA0OS4zNjIgNS4zMzItNi40MTIgMTAuNDg0LTExLjgzNCAxMC40ODQtMTEuODM0IDIuNTU4IDEuNjk5IDUuNjIyIDIuNTY3IDguODM0IDIuMjU1bC4yNDktLjIxMmMtLjA3OC43OTYtLjA0NCAxLjU3NS4wOTkgMi40OTctMy43NTcgNC4xOTktMi42NTMgNC45MzYtMTAuMTY2IDYuNDgyLTcuNjAyIDEuNTY2LTMuMTM2IDQuMzU1LS4yMjEgNS4wODQgMy41MzUuODg0IDExLjcxMiAyLjEzNiAxNy4yMzgtNS41OThsLS4yMi44ODJjMS40NzQgMS4xOCAxLjM3NSA4LjQ3NyAxLjU4MyAxMy42OS4yMDkgNS4yMTQuNTU4IDEwLjA3OSAxLjYyMSAxMi45NDggMS4wNjMgMi44NjggMi4zMTcgMTAuMjU2IDEyLjE5MSA4LjE0IDguMjUyLTEuNzY0IDE0LjU2MS00LjMwOSAxNS4xMzYtMjcuOTg1Ij48L3BhdGg+PHBhdGggZD0iTTc1LjQ1OCAxMjUuMjU2Yy00LjM2NyAwLTcuMjExLTEuNjg5LTguOTM4LTMuMzItMi42MDctMi40Ni0zLjY0MS01LjYyOS00LjI1OS03LjUyMmwtLjI2Ny0uNzljLTEuMjQ0LTMuMzU4LTEuNjY2LTguMTkzLTEuOTE2LTE0LjQxOS0uMDM4LS45MzUtLjA2NC0xLjg5OC0uMDkzLTIuOTE5LS4wMjEtLjc0Ny0uMDQ3LTEuNjg0LS4wODUtMi42NjRhMTguOCAxOC44IDAgMDEtNC45NjIgMS41NjhjLTMuMDc5LjUyNi02LjM4OS4zNTYtOS44NC0uNTA3LTIuNDM1LS42MDktNC45NjUtMS44NzEtNi40MDctMy44Mi00LjIwMyAzLjY4MS04LjIxMiAzLjE4Mi0xMC4zOTYgMi40NTMtMy44NTMtMS4yODUtNy4zMDEtNC44OTYtMTAuNTQyLTExLjAzNy0yLjMwOS00LjM3NS00LjU0Mi0xMC4wNzUtNi42MzgtMTYuOTQzLTMuNjUtMTEuOTYtNS45NjktMjQuNTU3LTYuMTc1LTI4LjY5M0M0LjI5MiAyMy42OTggNy43NzcgMTQuNDQgMTUuMjk2IDkuMTI5IDI3LjE1Ny43NTEgNDUuMTI4IDUuNjc4IDUxLjY4IDcuOTE1YzQuNDAyLTIuNjUzIDkuNTgxLTMuOTQ0IDE1LjQzMy0zLjg1MSAzLjE0My4wNTEgNi4xMzYuMzI3IDguOTE2LjgyMyAyLjktLjkxMiA4LjYyOC0yLjIyMSAxNS4xODUtMi4xMzkgMTIuMDgxLjE0NCAyMi4wOTIgNC44NTIgMjguOTQ5IDEzLjYxNSA0Ljg5NCA2LjI1MiAyLjQ3NCAxOS4zODEuNTk3IDI2LjY1MS0yLjY0MiAxMC4yMjYtNy4yNzEgMjEuMTAyLTEyLjk1NyAzMC41NyAxLjU0NC4wMTEgMy43ODEtLjE3NCA2Ljk2MS0uODMxIDYuMjc0LTEuMjk1IDguMTA5IDIuMDY5IDguNjA3IDMuNTc1IDEuOTk1IDYuMDQyLTYuNjc3IDEwLjYwOC05LjM4MiAxMS44NjQtMy40NjYgMS42MDktOS4xMTcgMi41ODktMTMuNzQ1IDIuMzc3bC0uMjAyLS4wMTMtMS4yMTYtLjEwNy0uMTIgMS4wMTQtLjExNi45OTFjLS4zMTEgMTEuOTk5LTIuMDI1IDE5LjU5OC01LjU1MiAyNC42MTktMy42OTcgNS4yNjQtOC44MzUgNi43MzktMTMuMzYxIDcuNzA5LTEuNTQ0LjMzLTIuOTQ3LjQ3NC00LjIxOS40NzR6bS05LjE5LTQzLjY3MWMyLjgxOSAyLjI1NiAzLjA2NiA2LjUwMSAzLjI4NyAxNC40MzQuMDI4Ljk5LjA1NCAxLjkyNy4wODkgMi44MDIuMTA2IDIuNjUuMzU1IDguODU1IDEuMzI3IDExLjQ3Ny4xMzcuMzcxLjI2Ljc0Ny4zOSAxLjE0NiAxLjA4MyAzLjMxNiAxLjYyNiA0Ljk3OSA2LjMwOSAzLjk3OCAzLjkzMS0uODQzIDUuOTUyLTEuNTk5IDcuNTM0LTMuODUxIDIuMjk5LTMuMjc0IDMuNTg1LTkuODYgMy44MjEtMTkuNTc1bDQuNzgzLjExNi00Ljc1LS41Ny4xNC0xLjE4NmMuNDU1LTMuOTEuNzgzLTYuNzM0IDMuMzk2LTguNjAyIDIuMDk3LTEuNDk4IDQuNDg2LTEuMzUzIDYuMzg5LTEuMDEtMi4wOTEtMS41OC0yLjY2OS0zLjQzMy0yLjgyMy00LjE5M2wtLjM5OS0xLjk2NSAxLjEyMS0xLjY2M2M2LjQ1Ny05LjU4IDExLjc4MS0yMS4zNTQgMTQuNjA5LTMyLjMwNCAyLjkwNi0xMS4yNTEgMi4wMi0xNy4yMjYgMS4xMzQtMTguMzU2LTExLjcyOS0xNC45ODctMzIuMDY4LTguNzk5LTM0LjE5Mi04LjA5N2wtLjM1OS4xOTQtMS44LjMzNS0uOTIyLS4xOTFjLTIuNTQyLS41MjgtNS4zNjYtLjgyLTguMzkzLS44NjktNC43NTYtLjA4LTguNTkzIDEuMDQ0LTExLjczOSAzLjQzMWwtMi4xODMgMS42NTUtMi41MzMtMS4wNDNjLTUuNDEyLTIuMjEzLTIxLjMwOC02LjY2Mi0yOS42OTYtLjcyMS00LjY1NiAzLjI5OC02Ljc3NyA5Ljc2LTYuMzA1IDE5LjIwNy4xNTYgMy4xMTkgMi4yNzUgMTQuOTI2IDUuNzcxIDI2LjM3NyA0LjgzMSAxNS44MjUgOS4yMjEgMjEuMDgyIDExLjA1NCAyMS42OTMuMzIuMTA4IDEuMTUtLjUzNyAxLjk3Ni0xLjUyOWEyNzAuNzA4IDI3MC43MDggMCAwMTEwLjY5NC0xMi4wN2wyLjc3LTIuOTE1IDMuMzQ5IDIuMjI1YzEuMzUuODk3IDIuODM5IDEuNDA2IDQuMzY4IDEuNTAybDcuOTg3LTYuODEyLTEuMTU3IDExLjgwOGMtLjAyNi4yNjUtLjAzOS42MjYuMDY1IDEuMjk2bC4zNDggMi4yMzgtMS41MSAxLjY4OC0uMTc0LjE5NiA0LjM4OCAyLjAyNSAxLjgzNi0yLjMwMXoiPjwvcGF0aD48cGF0aCBmaWxsPSIjMzM2NzkxIiBkPSJNMTE1LjczMSA3Ny40NGMtMTMuOTI1IDIuODczLTE0Ljg4Mi0xLjg0Mi0xNC44ODItMS44NDIgMTQuNzAzLTIxLjgxNiAyMC44NDktNDkuNTEgMTUuNTQ1LTU2LjI4N0MxMDEuOTI0LjgyMyA3Ni44NzUgOS41NjYgNzYuNDU3IDkuNzkzbC0uMTM1LjAyNGMtMi43NTEtLjU3MS01LjgzLS45MTEtOS4yOTEtLjk2Ny02LjMwMS0uMTAzLTExLjA4IDEuNjUyLTE0LjcwNyA0LjQwMiAwIDAtNDQuNjg0LTE4LjQwOC00Mi42MDYgMjMuMTUxLjQ0MiA4Ljg0MiAxMi42NzIgNjYuODk5IDI3LjI2IDQ5LjM2MyA1LjMzMi02LjQxMiAxMC40ODMtMTEuODM0IDEwLjQ4My0xMS44MzQgMi41NTkgMS42OTkgNS42MjIgMi41NjcgOC44MzMgMi4yNTVsLjI1LS4yMTJjLS4wNzguNzk2LS4wNDIgMS41NzUuMSAyLjQ5Ny0zLjc1OCA0LjE5OS0yLjY1NCA0LjkzNi0xMC4xNjcgNi40ODItNy42MDIgMS41NjYtMy4xMzYgNC4zNTUtLjIyIDUuMDg0IDMuNTM0Ljg4NCAxMS43MTIgMi4xMzYgMTcuMjM3LTUuNTk4bC0uMjIxLjg4MmMxLjQ3MyAxLjE4IDIuNTA3IDcuNjcyIDIuMzM0IDEzLjU1Ny0uMTc0IDUuODg1LS4yOSA5LjkyNi44NzEgMTMuMDgyIDEuMTYgMy4xNTYgMi4zMTYgMTAuMjU2IDEyLjE5MiA4LjE0IDguMjUyLTEuNzY4IDEyLjUyOC02LjM1MSAxMy4xMjQtMTMuOTk1LjQyMi01LjQzNSAxLjM3Ny00LjYzMSAxLjQzOC05LjQ5bC43NjctMi4zYy44ODQtNy4zNjcuMTQtOS43NDMgNS4yMjUtOC42MzhsMS4yMzUuMTA4YzMuNzQyLjE3IDguNjM5LS42MDIgMTEuNTE0LTEuOTM4IDYuMTktMi44NzEgOS44NjEtNy42NjcgMy43NTgtNi40MDh6Ij48L3BhdGg+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTc1Ljk1NyAxMjIuMzA3Yy04LjIzMiAwLTEwLjg0LTYuNTE5LTExLjkwNy05LjE4NS0xLjU2Mi0zLjkwNy0xLjg5OS0xOS4wNjktMS41NTEtMzEuNTAzYTEuNTkgMS41OSAwIDAxMS42NC0xLjU1IDEuNTk0IDEuNTk0IDAgMDExLjU1IDEuNjM5Yy0uNDAxIDE0LjM0MS4xNjggMjcuMzM3IDEuMzI0IDMwLjIyOSAxLjgwNCA0LjUwOSA0LjU0IDguNDUzIDEyLjI3NSA2Ljc5NiA3LjM0My0xLjU3NSAxMC4wOTMtNC4zNTkgMTEuMzE4LTExLjQ2Ljk0LTUuNDQ5IDIuNzk5LTIwLjk1MSAzLjAyOC0yNC4wMWExLjU5MyAxLjU5MyAwIDAxMS43MS0xLjQ3MiAxLjU5NyAxLjU5NyAwIDAxMS40NzIgMS43MWMtLjIzOSAzLjE4NS0yLjA4OSAxOC42NTctMy4wNjUgMjQuMzE1LTEuNDQ2IDguMzg3LTUuMTg1IDEyLjE5MS0xMy43OTQgMTQuMDM3LTEuNDYzLjMxMy0yLjc5Mi40NTMtNCAuNDU0ek0zMS4zMjEgOTAuNDY2YTYuNzEgNi43MSAwIDAxLTIuMTE2LS4zNWMtNS4zNDctMS43ODQtMTAuNDQtMTAuNDkyLTE1LjEzOC0yNS44ODUtMy41NzYtMTEuNzE3LTUuODQyLTIzLjk0Ny02LjA0MS0yNy45MjItLjU4OS0xMS43ODQgMi40NDUtMjAuMTIxIDkuMDItMjQuNzc4IDEzLjAwNy05LjIxNiAzNC44ODgtLjQ0IDM1LjgxMy0uMDYyYTEuNTk2IDEuNTk2IDAgMDEtMS4yMDcgMi45NTVjLS4yMTEtLjA4Ni0yMS4xOTMtOC40OTItMzIuNzY4LS4yODUtNS42MjIgMy45ODYtOC4yMDMgMTEuMzkyLTcuNjcyIDIyLjAxMS4xNjcgMy4zNDkgMi4yODQgMTUuMjg1IDUuOTA2IDI3LjE0OSA0LjE5NCAxMy43NDIgOC45NjcgMjIuNDEzIDEzLjA5NiAyMy43OS42NDguMjE2IDIuNjIuODczIDUuNDM5LTIuNTE3QTI0NS4yNzIgMjQ1LjI3MiAwIDAxNDUuODggNzMuMDQ2YTEuNTk2IDEuNTk2IDAgMDEyLjMwNCAyLjIwOGMtLjA0OC4wNS00Ljg0NyA1LjA2Ny0xMC4wNzcgMTEuMzU5LTIuNDc3IDIuOTc5LTQuODUxIDMuODUzLTYuNzg2IDMuODUzem02OS40MjktMTMuNDQ1YTEuNTk2IDEuNTk2IDAgMDEtMS4zMjItMi40ODdjMTQuODYzLTIyLjA1NSAyMC4wOC00OC43MDQgMTUuNjEyLTU0LjQxNC01LjYyNC03LjE4Ni0xMy41NjUtMTAuOTM5LTIzLjYwNC0xMS4xNTYtNy40MzMtLjE2LTEzLjM0MSAxLjczOC0xNC4zMDcgMi4wNjlsLS4yNDMuMDk5Yy0uOTcxLjMwNS0xLjcxNi0uMjI3LTEuOTk3LS44NDlhMS42IDEuNiAwIDAxLjYzMS0yLjAyNWMuMDQ2LS4wMjcuMTkyLS4wODkuNDI5LS4xNzZsLS4wMjEuMDA2LjAyMS0uMDA3YzEuNjQxLS42MDEgNy42MzktMi40IDE1LjA2OC0yLjMxNSAxMS4xMDguMTE4IDIwLjI4NCA0LjQwMSAyNi41MzQgMTIuMzg4IDIuOTU3IDMuNzc5IDIuOTY0IDEyLjQ4NS4wMTkgMjMuODg3LTMuMDAyIDExLjYyNS04LjY1MSAyNC4xMTgtMTUuNDk3IDM0LjI3Ny0uMzA2LjQ1Ny0uODEuNzAzLTEuMzIzLjcwM3ptLjc2IDEwLjIxYy0yLjUzOCAwLTQuODEzLS4zNTgtNi4xNzUtMS4xNzQtMS40LS44MzktMS42NjctMS45NzktMS43MDItMi41ODQtLjM4Mi02LjcxIDMuMzItNy44NzggNS4yMDgtOC40MTEtLjI2My0uMzk4LS42MzctLjg2Ni0xLjAyNC0xLjM0OS0xLjEwMS0xLjM3Ni0yLjYwOS0zLjI2LTMuNzcxLTYuMDc4LS4xODItLjQ0LS43NTItMS40NjMtMS40MTItMi42NDgtMy41NzktNi40MTgtMTEuMDI2LTE5Ljc3My02LjI0Mi0yNi42MTIgMi4yMTQtMy4xNjUgNi42MjMtNC40MTEgMTMuMTE5LTMuNzE2Qzk3LjYgMjguODM3IDg4LjUgMTAuNjI1IDY2LjkwNyAxMC4yNzFjLTYuNDk0LS4xMDgtMTEuODIgMS44ODktMTUuODIyIDUuOTMtOC45NiA5LjA0OS04LjYzNiAyNS40MjItOC42MzEgMjUuNTg2YTEuNTk1IDEuNTk1IDAgMTEtMy4xOS4wODRjLS4wMi0uNzI3LS4zNTQtMTcuOTA5IDkuNTU0LTI3LjkxNkM1My40NTUgOS4yNzIgNTkuNTU5IDYuOTYgNjYuOTYgNy4wODFjMTMuODE0LjIyNyAyMi43MDYgNy4yNSAyNy43MzIgMTMuMTAxIDUuNDc5IDYuMzc3IDguMTY1IDEzLjQxMSA4LjM4NiAxNS43NTkuMTY1IDEuNzQ2LTEuMDg4IDIuMDk1LTEuMzQxIDIuMTQ3bC0uNTc2LjAxM2MtNi4zNzUtMS4wMjEtMTAuNDY1LS4zMTItMTIuMTU2IDIuMTA0LTMuNjM5IDUuMjAxIDMuNDA2IDE3LjgzNCA2LjQxNCAyMy4yMjkuNzY4IDEuMzc2IDEuMzIyIDIuMzcxIDEuNTc2IDIuOTg1Ljk4OCAyLjM5NiAyLjI3NyA0LjAwNiAzLjMxMiA1LjMuOTExIDEuMTM4IDEuNyAyLjEyNSAxLjk4MiAzLjI4My4xMzEuMjMgMS45OSAyLjk4IDEzLjAyMS43MDMgMi43NjUtLjU3IDQuNDIzLS4wODMgNC45MyAxLjQ1Ljk5NyAzLjAxNS00LjU5NyA2LjUzMi03LjY5NCA3Ljk3LTIuNzc1IDEuMjktNy4yMDQgMi4xMDYtMTEuMDM2IDIuMTA2em0tNC42OTYtNC4wMjFjLjM1LjM1MyAyLjEwMS45NjIgNS43MjcuODA2IDMuMjI0LS4xMzggNi42MjQtLjgzOSA4LjY2NC0xLjc4NiAyLjYwOS0xLjIxMiA0LjM1MS0yLjU2NyA1LjI1My0zLjQ5MmwtLjUuMDkyYy03LjA1MyAxLjQ1Ni0xMi4wNDIgMS4yNjItMTQuODI4LS41NzdhNi4xNjIgNi4xNjIgMCAwMS0uNTQtLjQwMWMtLjMwMi4xMTktLjU4MS4xOTctLjc4LjI1My0xLjU4LjQ0My0zLjIxNC45MDItMi45OTYgNS4xMDV6bS00NS41NjIgOC45MTVjLTEuNzUyIDAtMy41OTYtLjIzOS01LjQ3OS0uNzEtMS45NTEtLjQ4OC01LjI0LTEuOTU3LTUuMTktNC4zNy4wNTctMi43MDcgMy45OTQtMy41MTkgNS40NzYtMy44MjQgNS4zNTQtMS4xMDMgNS43MDMtMS41NDUgNy4zNzYtMy42Ny40ODgtLjYxOSAxLjA5NS0xLjM5IDEuOTIzLTIuMzE0IDEuMjI5LTEuMzc2IDIuNTcyLTIuMDczIDMuOTkyLTIuMDczLjk4OSAwIDEuOC4zMzUgMi4zMzYuNTU4IDEuNzA4LjcwOCAzLjEzMyAyLjQyIDMuNzE5IDQuNDY3LjUyOSAxLjg0Ny4yNzYgMy42MjUtLjcxIDUuMDA2LTMuMjM3IDQuNTMzLTcuODg2IDYuOTMtMTMuNDQzIDYuOTN6bS03LjIyMi00Ljk0M2MuNDgxLjM3MiAxLjQ0NS44NjkgMi41MTggMS4xMzcgMS42MzEuNDA4IDMuMjEzLjYxNSA0LjcwNS42MTUgNC41NDYgMCA4LjE5Ni0xLjg4MiAxMC44NDctNS41OTQuNTUzLS43NzQuMzg3LTEuNzU3LjIzOS0yLjI3NC0uMzEtMS4wODMtMS4wOC0yLjA2OC0xLjg3My0yLjM5Ny0uNDMtLjE3OC0uNzg3LS4zMTQtMS4xMTUtLjMxNC0uMTc2IDAtLjcxMiAwLTEuNjE0IDEuMDA5YTQxLjE0NiA0MS4xNDYgMCAwMC0xLjc5NCAyLjE2MmMtMi4wODQgMi42NDYtMy4wMzkgMy41NDQtOS4yMzkgNC44MjEtMS41MTMuMzEtMi4yODkuNjI2LTIuNjc0LjgzNXptMTIuMjY5LTcuMzZhMS41OTYgMS41OTYgMCAwMS0xLjU3NS0xLjM1NCA4LjIxOCA4LjIxOCAwIDAxLS4wOC0uNzk5Yy00LjA2NC0uMDc2LTcuOTg1LTEuODItMTAuOTYyLTQuOTI2LTMuNzY0LTMuOTI3LTUuNDc3LTkuMzY4LTQuNjk5LTE0LjkyNy44NDUtNi4wMzcuNTI5LTExLjM2Ni4zNTktMTQuMjI5LS4wNDctLjc5Ni0uMDgxLTEuMzcxLS4wNzktMS43NjkuMDAzLS41MDUuMDEzLTEuODQ0IDQuNDg5LTQuMTEzIDEuNTkyLS44MDcgNC43ODQtMi4yMTUgOC4yNzEtMi41NzYgNS43NzctLjU5NyA5LjU4NSAxLjk3NiAxMC43MjUgNy4yNDYgMy4wNzcgMTQuMjI4LjI0NCAyMC41MjEtMS44MjUgMjUuMTE3LS4zODUuODU2LS43NDkgMS42NjQtMS4wNCAyLjQ0N2wtLjI1Ny42OWMtMS4wOTMgMi45MzEtMi4wMzggNS40NjMtMS43NDggNy4zNTRhMS41OTUgMS41OTUgMCAwMS0xLjMzNSAxLjgxOWwtLjI0NC4wMnpNNDIuNDY0IDQyLjI2bC4wNjIgMS4xMzljLjE3NiAyLjk3NC41MDQgOC41MDgtLjM4NCAxNC44Ni0uNjQxIDQuNTg1Ljc1OSA5LjA2IDMuODQzIDEyLjI3NiAyLjQzNyAyLjU0MiA1LjY0NCAzLjk0NSA4Ljk0IDMuOTQ1aC4wNjhjLjM2OS0xLjU1NS45ODItMy4xOTcgMS42NDItNC45NjZsLjI1NS0uNjg2Yy4zMjktLjg4NC43MTQtMS43NCAxLjEyMi0yLjY0NiAxLjk5MS00LjQyNCA0LjQ3LTkuOTMxIDEuNjE1LTIzLjEzMi0uNTY1LTIuNjE1LTEuOTM2LTQuMTI4LTQuMTg5LTQuNjI3LTQuNjI4LTEuMDIyLTExLjUyNSAyLjQ1OS0xMi45NzQgMy44Mzd6bTkuNjMtLjY3N2MtLjA4LjU2NCAxLjAzMyAyLjA3IDIuNDg1IDIuMjcxIDEuNDQ5LjIwMyAyLjY4OS0uOTc1IDIuNzY4LTEuNTM5LjA3OS0uNTY0LTEuMDMzLTEuMTg2LTIuNDg1LTEuMzg4LTEuNDUxLS4yMDItMi42OTEuMDkyLTIuNzY4LjY1NnptMi44MTggMi44MjZsLS40MDctLjAyOGMtLjktLjEyNS0xLjgxLS42OTItMi40MzMtMS41MTgtLjIxOS0uMjktLjU3Ni0uODUyLS41MDUtMS4zNTQuMTAxLS43MzYuOTk5LTEuMTc3IDIuNC0xLjE3Ny4zMTMgMCAuNjM5LjAyMy45NjcuMDY5Ljc2Ni4xMDYgMS40NzcuMzI3IDIuMDAyLjYyLjkxLjUwOC45NzcgMS4wNzUuOTM2IDEuMzY4LS4xMTIuODEzLTEuNDA1IDIuMDItMi45NiAyLjAyem0tMi4yODktMi43MzJjLjA0NS4zNDguOTA3IDEuNDk2IDIuMDI5IDEuNjUxbC4yNjEuMDE4YzEuMDM2IDAgMS44MS0uODE1IDEuOTAxLTEuMDgyLS4wOTYtLjE4Mi0uNzYyLS42MzQtMi4wMjUtLjgxYTUuODIzIDUuODIzIDAgMDAtLjgyMS0uMDU5Yy0uODEyIDAtMS4yNDMuMTgzLTEuMzQ1LjI4MnptNDMuNjA1LTEuMjQ1Yy4wNzkuNTY0LTEuMDMzIDIuMDctMi40ODQgMi4yNzItMS40NS4yMDItMi42OTEtLjk3NS0yLjc3MS0xLjUzOS0uMDc2LS41NjQgMS4wMzYtMS4xODcgMi40ODYtMS4zODggMS40NS0uMjAzIDIuNjg5LjA5MiAyLjc2OS42NTV6bS0yLjgxOSAyLjU2Yy0xLjM5NiAwLTIuNjAxLTEuMDg2LTIuNy0xLjc5MS0uMTE1LS44NDYgMS4yNzgtMS40ODkgMi43MTItMS42ODguMzE2LS4wNDQuNjI5LS4wNjYuOTMtLjA2NiAxLjIzOCAwIDIuMDU4LjM2MyAyLjE0Ljk0OS4wNTMuMzc5LS4yMzguOTY0LS43MzkgMS40OTItLjMzMS4zNDctMS4wMjYuOTQ4LTEuOTczIDEuMDc5bC0uMzcuMDI1em0uOTQzLTMuMDEzYy0uMjc2IDAtLjU2NC4wMjEtLjg1Ni4wNjEtMS40NDEuMjAxLTIuMzAxLjc3OS0yLjI1OSAxLjA4OS4wNDguMzQxLjk2OCAxLjMzMiAyLjE3MyAxLjMzMmwuMjk3LS4wMjFjLjc4Ny0uMTA5IDEuMzc4LS42MjMgMS42Ni0uOTE5LjQ0My0uNDY1LjYxOS0uOTAzLjU5OC0xLjA1Mi0uMDI4LS4xOTgtLjU2LS40OS0xLjYxMy0uNDl6bTMuOTY1IDMyLjg0M2ExLjU5NCAxLjU5NCAwIDAxLTEuMzI0LTIuNDgzYzMuMzk4LTUuMDc1IDIuNzc2LTEwLjI1IDIuMTc1LTE1LjI1NS0uMjU3LTIuMTMyLS41MjEtNC4zMzctLjQ1My02LjQ1My4wNy0yLjE3Ny4zNDctMy45NzMuNjE0LTUuNzEuMzE3LTIuMDU4LjYxNy00LjAwMi40OTMtNi4zMWExLjU5NSAxLjU5NSAwIDExMy4xODYtLjE3MmMuMTQyIDIuNjM4LS4xOTcgNC44MzgtLjUyNSA2Ljk2Ny0uMjUzIDEuNjQzLS41MTUgMy4zNDItLjU3OCA1LjMyNy0uMDYxIDEuODc0LjE3OCAzLjg2NC40MzEgNS45Ny42NCA1LjMyMiAxLjM2NSAxMS4zNTQtMi42OTEgMTcuNDExYTEuNTk2IDEuNTk2IDAgMDEtMS4zMjguNzA4eiI+PC9wYXRoPjwvc3ZnPg==",
322
+ url: "https://www.postgresql.org/",
323
+ tagline: "The world's most advanced open source relational database",
324
+ repo: "postgres/postgres",
325
+ links: [{
326
+ label: "Docs",
327
+ href: "https://www.postgresql.org/docs/"
328
+ }, {
329
+ label: "postgres.js (client)",
330
+ href: "https://github.com/porsager/postgres"
331
+ }]
332
+ },
333
+ {
334
+ category: "ORM / Query builder",
335
+ label: "Drizzle",
336
+ flag: "drizzle",
337
+ image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjI4MHB4IiBoZWlnaHQ9IjI4MHB4IiBzdHlsZT0ic2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgdGV4dC1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uOyBpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5OyBmaWxsLXJ1bGU6ZXZlbm9kZDsgY2xpcC1ydWxlOmV2ZW5vZGQiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iIzAwMDAwMCIgZD0iTSAtMC41LC0wLjUgQyA5Mi44MzMzLC0wLjUgMTg2LjE2NywtMC41IDI3OS41LC0wLjVDIDI3OS41LDkyLjgzMzMgMjc5LjUsMTg2LjE2NyAyNzkuNSwyNzkuNUMgMTg2LjE2NywyNzkuNSA5Mi44MzMzLDI3OS41IC0wLjUsMjc5LjVDIC0wLjUsMTg2LjE2NyAtMC41LDkyLjgzMzMgLTAuNSwtMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTMzLjUsODQuNSBDIDE0Mi44MTQsODIuNzI2OSAxNDYuNjQ3LDg2LjM5MzUgMTQ1LDk1LjVDIDEzNS45MDYsMTEyLjAyOCAxMjYuNTcyLDEyOC4zNjIgMTE3LDE0NC41QyAxMTEuMjQ5LDE0OS45ODQgMTA2LjI0OSwxNDkuMzE3IDEwMiwxNDIuNUMgMTAxLjMzMywxNDAuODMzIDEwMS4zMzMsMTM5LjE2NyAxMDIsMTM3LjVDIDExMS41NDcsMTE5LjA0MSAxMjIuMDQ3LDEwMS4zNzUgMTMzLjUsODQuNSBaIi8+PC9nPgo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eToxIiBmaWxsPSIjYzBmMTRkIiBkPSJNIDIyMy41LDg0LjUgQyAyMzMuNTM5LDgzLjY5NzIgMjM3LjAzOSw4OC4wMzA1IDIzNCw5Ny41QyAyMjUuMzQ3LDExMi44MDEgMjE2LjY4MSwxMjguMTM1IDIwOCwxNDMuNUMgMjAzLjM4NywxNDkuNzM3IDE5OC4zODcsMTUwLjA3MSAxOTMsMTQ0LjVDIDE5MS41NzgsMTQxLjk3IDE5MS4yNDUsMTM5LjMwMyAxOTIsMTM2LjVDIDIwMC41MiwxMjIuNzk0IDIwOC41MiwxMDguNzk0IDIxNiw5NC41QyAyMTguMjg5LDkwLjg4MTIgMjIwLjc4OSw4Ny41NDc5IDIyMy41LDg0LjUgWiIvPjwvZz4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iI2MwZjE0ZCIgZD0iTSA3NS41LDEyMC41IEMgODMuOTg4NSwxMTkuNjE4IDg3LjgyMTgsMTIzLjI4NSA4NywxMzEuNUMgNzcuOTA1NywxNDguMDI4IDY4LjU3MjQsMTY0LjM2MiA1OSwxODAuNUMgNTYuMDQ1MywxODQuMjc3IDUyLjIxMiwxODUuNDQzIDQ3LjUsMTg0QyA0My44Njk3LDE4MC45NSA0Mi43MDMsMTc3LjExNyA0NCwxNzIuNUMgNTMsMTU2LjUgNjIsMTQwLjUgNzEsMTI0LjVDIDcyLjM5NjgsMTIyLjkzIDczLjg5NjgsMTIxLjU5NiA3NS41LDEyMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTY1LjUsMTIwLjUgQyAxNzQuMTY0LDExOS4zMzIgMTc3Ljk5NywxMjIuOTk5IDE3NywxMzEuNUMgMTY3LjQxNCwxNDcuNjcxIDE1OC4wOCwxNjQuMDA0IDE0OSwxODAuNUMgMTQ2LjM5OCwxODQuMjEyIDE0Mi44OTgsMTg1LjM3OCAxMzguNSwxODRDIDEzMy45MzEsMTgxLjQ1OSAxMzIuNDMxLDE3Ny42MjUgMTM0LDE3Mi41QyAxNDMuNTcyLDE1Ni4zNjIgMTUyLjkwNiwxNDAuMDI4IDE2MiwxMjMuNUMgMTYzLjE0NSwxMjIuMzY0IDE2NC4zMTIsMTIxLjM2NCAxNjUuNSwxMjAuNSBaIi8+PC9nPgo8L3N2Zz4K",
338
+ url: "https://orm.drizzle.team/",
339
+ tagline: "Headless TypeScript ORM that feels like SPA with SSR",
340
+ repo: "drizzle-team/drizzle-orm",
341
+ links: [{
342
+ label: "Docs & Getting started",
343
+ href: "https://orm.drizzle.team/docs/overview"
344
+ }]
345
+ },
346
+ {
347
+ category: "ORM / Query builder",
320
348
  label: "Kysely",
321
349
  flag: "kysely",
322
350
  image: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMTMyJyBoZWlnaHQ9JzEzMicgdmlld0JveD0nMCAwIDEzMiAxMzInIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGcgY2xpcC1wYXRoPSd1cmwoI2NsaXAwXzhfMyknPjxyZWN0IHg9JzInIHk9JzInIHdpZHRoPScxMjgnIGhlaWdodD0nMTI4JyByeD0nMTYnIGZpbGw9J3doaXRlJy8+PHBhdGggZD0nTTQxLjI5ODMgMTA5VjIzLjkwOTFINDYuNDkxOFY3My4zMUg0Ny4wNzM1TDkxLjk0NTcgMjMuOTA5MUg5OC44NDI3TDYxLjkwNjIgNjQuMTY5NEw5OC41MTAzIDEwOUg5Mi4wMjg4TDU4LjU4MjQgNjcuOTA4N0w0Ni40OTE4IDgxLjI4NzNWMTA5SDQxLjI5ODNaJyBmaWxsPSdibGFjaycvPjwvZz48cmVjdCB4PScyJyB5PScyJyB3aWR0aD0nMTI4JyBoZWlnaHQ9JzEyOCcgcng9JzE2JyBzdHJva2U9JyMxMjEyMTInIHN0cm9rZS13aWR0aD0nNCcvPjxkZWZzPjxjbGlwUGF0aCBpZD0nY2xpcDBfOF8zJz48cmVjdCB4PScyJyB5PScyJyB3aWR0aD0nMTI4JyBoZWlnaHQ9JzEyOCcgcng9JzE2JyBmaWxsPSd3aGl0ZScvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPgo=",
@@ -329,10 +357,10 @@ const features = [
329
357
  }]
330
358
  },
331
359
  {
332
- category: "Database",
360
+ category: "ORM / Query builder",
333
361
  label: "Prisma",
334
362
  flag: "prisma",
335
- image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIwLjgzZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDMxMCI+PHBhdGggZD0iTTI1NC4zMTMgMjM1LjUxOUwxNDggOS43NDlBMTcuMDYzIDE3LjA2MyAwIDAgMCAxMzMuNDczLjAzN2ExNi44NyAxNi44NyAwIDAgMC0xNS41MzMgOC4wNTJMMi42MzMgMTk0Ljg0OGExNy40NjUgMTcuNDY1IDAgMCAwIC4xOTMgMTguNzQ3TDU5LjIgMzAwLjg5NmExOC4xMyAxOC4xMyAwIDAgMCAyMC4zNjMgNy40ODlsMTYzLjU5OS00OC4zOTJhMTcuOTI5IDE3LjkyOSAwIDAgMCAxMS4yNi05LjcyMmExNy41NDIgMTcuNTQyIDAgMCAwLS4xMDEtMTQuNzZsLS4wMDguMDA4Wm0tMjMuODAyIDkuNjgzbC0xMzguODIzIDQxLjA1Yy00LjIzNSAxLjI2LTguMy0yLjQxMS03LjQxOS02LjY4NWw0OS41OTgtMjM3LjQ4NGMuOTI3LTQuNDQzIDcuMDYzLTUuMTQ3IDkuMDAzLTEuMDM1bDkxLjgxNCAxOTQuOTczYTYuNjMgNi42MyAwIDAgMS00LjE4IDkuMThoLjAwN1oiLz48L3N2Zz4=",
363
+ image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+IHBhdGh7ZmlsbDpibGFjazt9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtwYXRoe2ZpbGw6d2hpdGU7fX08L3N0eWxlPjxwYXRoIGQ9Ik0yMS44MDY4IDE4LjI4NDhMMTMuNTUyOC43NTY1Yy0uMjA3LS40MzgyLS42MzktLjcyNzMtMS4xMjg2LS43NTQxLS41MDIzLS4wMjkzLS45NTIzLjIxMy0xLjIwNjIuNjI1M0wyLjI2NiAxNS4xMjcxYy0uMjc3My40NTE4LS4yNzE4IDEuMDA5MS4wMTU4IDEuNDU1NWw0LjM3NTkgNi43Nzg2Yy4yNjA4LjQwNDYuNzEyNy42Mzg4IDEuMTgyMy42Mzg4LjEzMzIgMCAuMjY3LS4wMTg4LjM5ODctLjA1NzdsMTIuNzAxOS0zLjc1NjhjLjM4OTEtLjExNTEuNzA3Mi0uMzkwNC44NzM3LS43NTUzcy4xNjMzLS43ODI4LS4wMDc1LTEuMTQ1NHptLTEuODQ4MS43NTE5TDkuMTgxNCAyMi4yMjQyYy0uMzI5Mi4wOTc1LS42NDQ4LS4xODczLS41NzU2LS41MTk0bDMuODUwMS0xOC40Mzg2Yy4wNzItLjM0NDguNTQ4Ni0uMzk5Ni42OTktLjA4MDNsNy4xMjg4IDE1LjEzOGMuMTM0NC4yODU2LS4wMTkuNjIyNC0uMzI1LjcxMjh6Ii8+PC9zdmc+",
336
364
  url: "https://www.prisma.io",
337
365
  spectrum: "beaten_path",
338
366
  tagline: "Next-generation Node.js and TypeScript ORM",
@@ -373,7 +401,7 @@ const features = [
373
401
  category: "Hosting",
374
402
  label: "DIY",
375
403
  flag: "hosting-diy",
376
- image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pg0KDQo8IURPQ1RZUEUgc3ZnICBQVUJMSUMgJy0vL1czQy8vRFREIFNWRyAxLjEvL0VOJyAgJ2h0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCc+DQoNCjwhLS0gVXBsb2FkZWQgdG86IFNWRyBSZXBvLCB3d3cuc3ZncmVwby5jb20sIEdlbmVyYXRvcjogU1ZHIFJlcG8gTWl4ZXIgVG9vbHMgLS0+DQo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwNjkgMTA2OSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyIgdmVyc2lvbj0iMS4xIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCg0KPHJlY3QgaGVpZ2h0PSIxMDY2LjY3IiBpZD0iU3RvcmFnZS1ob3N0aW5nIiBzdHlsZT0iZmlsbDpub25lOyIgd2lkdGg9IjEwNjYuNjciIHg9IjEuMTY3IiB5PSIwLjU5MiIvPg0KDQo8Zz4NCg0KPHBhdGggZD0iTTcxMS41ODQsNjE3LjI1OGwtMCw4My4zMzRjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTgzLjMzNGMtMCwtMTcuMjQ3IC0xNC4wMDMsLTMxLjI1IC0zMS4yNSwtMzEuMjVjLTE3LjI0OCwwIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0tMCwtMzMzLjMzM2wtMCw4My4zMzNjLTAsMTcuMjQ4IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsMCAzMS4yNSwtMTQuMDAyIDMxLjI1LC0zMS4yNWwtMCwtODMuMzMzYy0wLC0xNy4yNDcgLTE0LjAwMywtMzEuMjUgLTMxLjI1LC0zMS4yNWMtMTcuMjQ4LC0wIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0xLjE2NSwtMTM4LjAyNGwtMCwtMjguNjQzYy0wLC0xNy4yNTkgLTEzLjk5MSwtMzEuMjUgLTMxLjI1LC0zMS4yNWwtMjkyLjgzMiwwYy0xNy4yNTksMCAtMzEuMjUsMTMuOTkxIC0zMS4yNSwzMS4yNWwwLDI4LjY0M2MwLDI5Ljg2OSAxMC42Niw1OC40MjkgMjkuMjE1LDc5LjU1YzE5LjkxLDIyLjY2NSA0Ny4wODUsMzUuMDM0IDc1LjI0MywzNS4wMzRsMTQ2LjQxNiwtMGMyOC4xNTgsLTAgNTUuMzMzLC0xMi4zNjkgNzUuMjQzLC0zNS4wMzRjMTguNTU1LC0yMS4xMjEgMjkuMjE1LC00OS42ODEgMjkuMjE1LC03OS41NWwtMCwtMFptLTYyLjU1NCwyLjYwN2MtMC41NDEsMTMuMzk1IC01LjI1MywyNi4xNzUgLTEzLjYxNSwzNS42OTRjLTcuNTQ5LDguNTkyIC0xNy42MTIsMTMuNzgyIC0yOC4yODcsMTMuNzgzYy0wLjAwMiwtMCAtMTQ2LjQxOCwtMCAtMTQ2LjQxOCwtMGMtMTAuNjc3LC0wLjAwMSAtMjAuNzQsLTUuMTkxIC0yOC4yODksLTEzLjc4M2MtOC4zNjIsLTkuNTE5IC0xMy4wNzQsLTIyLjI5OSAtMTMuNjE1LC0zNS42OTRsMjMwLjIyNCwwWiIgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjU7Ii8+DQoNCjxwYXRoIGQ9Ik0xMDEuNjg5LDQ5Mi4yNThjLTIyLjEzMSwyMC44OTcgLTM1LjkzOSw1MC41MDMgLTM1LjkzOSw4My4zMzRjMCw2Mi4wMiAwLDE0Ni4zMTMgMCwyMDguMzMzYzAsNTIuNDQ4IDM1LjIzOSw5Ni42NjYgODMuMzM0LDExMC4yN2wtMCw1Ni4zOTdjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTUyLjA4NGw2NDUuODMzLDBsMCw1Mi4wODRjMCwxNy4yNDcgMTQuMDAzLDMxLjI1IDMxLjI1LDMxLjI1YzE3LjI0OCwtMCAzMS4yNSwtMTQuMDAzIDMxLjI1LC0zMS4yNWwwLC01Ni4zOTdjNDguMDk1LC0xMy42MDQgODMuMzM0LC01Ny44MjIgODMuMzMzLC0xMTAuMjdsMCwtMjA4LjMzM2MwLjAwMSwtMzIuODMxIC0xMy44MDcsLTYyLjQzNyAtMzUuOTM4LC04My4zMzRjMjIuMTMxLC0yMC44OTYgMzUuOTM5LC01MC41MDIgMzUuOTM4LC04My4zMzNsMCwtMjA4LjMzM2MwLjAwMSwtNjMuMjgzIC01MS4zLC0xMTQuNTgzIC0xMTQuNTgyLC0xMTQuNTg0bC03MDguMzM1LDBjLTYzLjI4MiwwLjAwMSAtMTE0LjU4Myw1MS4zMDEgLTExNC41ODMsMTE0LjU4NGMwLDYyLjAyIDAsMTQ2LjMxMyAwLDIwOC4zMzNjMCwzMi44MzEgMTMuODA4LDYyLjQzNyAzNS45MzksODMuMzMzWm04MzkuMDYxLDgzLjMzNGwwLDIwOC4zMzNjMC4wMDEsMjguNzY0IC0yMy4zMTcsNTIuMDgyIC01Mi4wODEsNTIuMDgzYy0wLjAwMywwIC03MDguMzM1LDAgLTcwOC4zMzUsMGMtMjguNzY2LC0wLjAwMSAtNTIuMDg0LC0yMy4zMTkgLTUyLjA4NCwtNTIuMDgzYzAsLTYyLjAyIDAsLTE0Ni4zMTMgMCwtMjA4LjMzM2MwLC0yOC43NjQgMjMuMzE4LC01Mi4wODMgNTIuMDgyLC01Mi4wODRjMC4wMDMsMCA3MDguMzM1LDAgNzA4LjMzNSwwYzI4Ljc2NiwwLjAwMSA1Mi4wODQsMjMuMzIgNTIuMDgzLDUyLjA4NFptLTY1Ni4yNSwtMzEuMjVjLTYzLjI0LC0wIC0xMTQuNTgzLDUxLjM0MyAtMTE0LjU4MywxMTQuNTgzYzAsNjMuMjQgNTEuMzQzLDExNC41ODMgMTE0LjU4MywxMTQuNTgzYzYzLjI0MSwwIDExNC41ODQsLTUxLjM0MyAxMTQuNTg0LC0xMTQuNTgzYy0wLC02My4yNCAtNTEuMzQzLC0xMTQuNTgzIC0xMTQuNTg0LC0xMTQuNTgzWm01NTIuMDg0LDcyLjkxNmwtMCw4My4zMzRjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTgzLjMzNGMtMCwtMTcuMjQ3IC0xNC4wMDMsLTMxLjI1IC0zMS4yNSwtMzEuMjVjLTE3LjI0OCwwIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0tNTUyLjA4NCwtMTAuNDE2YzI4Ljc0NiwtMCA1Mi4wODQsMjMuMzM3IDUyLjA4NCw1Mi4wODNjLTAsMjguNzQ2IC0yMy4zMzgsNTIuMDgzIC01Mi4wODQsNTIuMDgzYy0yOC43NDUsMCAtNTIuMDgzLC0yMy4zMzcgLTUyLjA4MywtNTIuMDgzYzAsLTI4Ljc0NiAyMy4zMzgsLTUyLjA4MyA1Mi4wODMsLTUyLjA4M1ptNjU2LjI1LC00MDYuMjVsMCwyMDguMzMzYzAuMDAxLDI4Ljc2NCAtMjMuMzE3LDUyLjA4MiAtNTIuMDgxLDUyLjA4M2MtMC4wMDMsMCAtNzA4LjMzNSwwIC03MDguMzM1LDBjLTI4Ljc2NiwtMC4wMDEgLTUyLjA4NCwtMjMuMzE5IC01Mi4wODQsLTUyLjA4M2MwLC02Mi4wMiAwLC0xNDYuMzEzIDAsLTIwOC4zMzNjMCwtMjguNzY0IDIzLjMxOCwtNTIuMDgzIDUyLjA4MiwtNTIuMDg0YzAuMDAzLDAgNzA4LjMzNSwwIDcwOC4zMzUsMGMyOC43NjYsMC4wMDEgNTIuMDg0LDIzLjMyIDUyLjA4Myw1Mi4wODRabS02NTYuMjUsMTAuNDE2Yy02My4yNCwwIC0xMTQuNTgzLDUxLjM0MyAtMTE0LjU4MywxMTQuNTg0YzAsNjMuMjQgNTEuMzQzLDExNC41ODMgMTE0LjU4MywxMTQuNTgzYzYzLjI0MSwtMCAxMTQuNTg0LC01MS4zNDMgMTE0LjU4NCwtMTE0LjU4M2MtMCwtNjMuMjQxIC01MS4zNDMsLTExNC41ODQgLTExNC41ODQsLTExNC41ODRabTU1Mi4wODQsNzIuOTE3bC0wLDgzLjMzM2MtMCwxNy4yNDggMTQuMDAyLDMxLjI1IDMxLjI1LDMxLjI1YzE3LjI0NywwIDMxLjI1LC0xNC4wMDIgMzEuMjUsLTMxLjI1bC0wLC04My4zMzNjLTAsLTE3LjI0NyAtMTQuMDAzLC0zMS4yNSAtMzEuMjUsLTMxLjI1Yy0xNy4yNDgsLTAgLTMxLjI1LDE0LjAwMyAtMzEuMjUsMzEuMjVabS01NTIuMDg0LC0xMC40MTdjMjguNzQ2LDAgNTIuMDg0LDIzLjMzOCA1Mi4wODQsNTIuMDg0Yy0wLDI4Ljc0NSAtMjMuMzM4LDUyLjA4MyAtNTIuMDg0LDUyLjA4M2MtMjguNzQ1LC0wIC01Mi4wODMsLTIzLjMzOCAtNTIuMDgzLC01Mi4wODNjMCwtMjguNzQ2IDIzLjMzOCwtNTIuMDg0IDUyLjA4MywtNTIuMDg0WiIvPg0KDQo8L2c+DQoNCjwvc3ZnPg==",
404
+ image: "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjgwMHB4IiB3aWR0aD0iODAwcHgiIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCAzOTIuNTk4IDM5Mi41OTgiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMzI3LjMwNSwxMDQuNTAxYy02LjAxMiwwLTEwLjkyNS00Ljg0OC0xMC45MjUtMTAuOTI1VjUxLjg3OWMwLTYuMDEyLDQuODQ4LTEwLjkyNSwxMC45MjUtMTAuOTI1IHMxMC45MjUsNC44NDgsMTAuOTI1LDEwLjkyNXY0MS42OTdDMzM4LjIzLDk5LjY1MywzMzMuMzE3LDEwNC41MDEsMzI3LjMwNSwxMDQuNTAxeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMjYyLjg1MywxMDQuNTAxYy02LjAxMiwwLTEwLjkyNS00Ljg0OC0xMC45MjUtMTAuOTI1VjUxLjg3OWMwLTYuMDEyLDQuODQ4LTEwLjkyNSwxMC45MjUtMTAuOTI1IGM2LjAxMiwwLDEwLjkyNSw0Ljg0OCwxMC45MjUsMTAuOTI1djQxLjY5N0MyNzMuNzc4LDk5LjY1MywyNjguOTI5LDEwNC41MDEsMjYyLjg1MywxMDQuNTAxeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMTM1LjE3Niw4My42Mkg2NS4yMjhjLTYuMDEyLDAtMTAuOTI1LTQuODQ4LTEwLjkyNS0xMC45MjVjMC02LjAxMiw0Ljg0OC0xMC45MjUsMTAuOTI1LTEwLjkyNSBoNjkuOTQ3YzYuMDEyLDAsMTAuOTI1LDQuODQ4LDEwLjkyNSwxMC45MjVDMTQ2LjAzNiw3OC43NzIsMTQxLjE4OCw4My42MiwxMzUuMTc2LDgzLjYyeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMzI3LjMwNSwyMjguMDRjLTYuMDEyLDAtMTAuOTI1LTQuODQ4LTEwLjkyNS0xMC45MjV2LTQxLjY5N2MwLTYuMDEyLDQuODQ4LTEwLjkyNSwxMC45MjUtMTAuOTI1IHMxMC45MjUsNC44NDgsMTAuOTI1LDEwLjkyNXY0MS42OTdDMzM4LjIzLDIyMy4xOTIsMzMzLjMxNywyMjguMDQsMzI3LjMwNSwyMjguMDR6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0yNjIuODUzLDIyOC4wNGMtNi4wMTIsMC0xMC45MjUtNC44NDgtMTAuOTI1LTEwLjkyNXYtNDEuNjk3YzAtNi4wMTIsNC44NDgtMTAuOTI1LDEwLjkyNS0xMC45MjUgYzYuMDEyLDAsMTAuOTI1LDQuODQ4LDEwLjkyNSwxMC45MjV2NDEuNjk3QzI3My43NzgsMjIzLjE5MiwyNjguOTI5LDIyOC4wNCwyNjIuODUzLDIyOC4wNHoiLz48cGF0aCBzdHlsZT0iZmlsbDojMTk0RjgyOyIgZD0iTTEzNS4xNzYsMjA3LjIyNEg2NS4yMjhjLTYuMDEyLDAtMTAuOTI1LTQuODQ4LTEwLjkyNS0xMC45MjVzNC44NDgtMTAuOTI1LDEwLjkyNS0xMC45MjVoNjkuOTQ3IGM2LjAxMiwwLDEwLjkyNSw0Ljg0OCwxMC45MjUsMTAuOTI1QzE0Ni4wMzYsMjAyLjMxMSwxNDEuMTg4LDIwNy4yMjQsMTM1LjE3NiwyMDcuMjI0eiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMzI3LjMwNSwzNTEuNjQ0Yy02LjAxMiwwLTEwLjkyNS00Ljg0OS0xMC45MjUtMTAuOTI1di00MS42OTdjMC02LjAxMiw0Ljg0OC0xMC45MjUsMTAuOTI1LTEwLjkyNSBzMTAuOTI1LDQuODQ4LDEwLjkyNSwxMC45MjV2NDEuNjk3QzMzOC4yMywzNDYuNzMxLDMzMy4zMTcsMzUxLjY0NCwzMjcuMzA1LDM1MS42NDR6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0yNjIuODUzLDM1MS42NDRjLTYuMDEyLDAtMTAuOTI1LTQuODQ5LTEwLjkyNS0xMC45MjV2LTQxLjY5N2MwLTYuMDEyLDQuODQ4LTEwLjkyNSwxMC45MjUtMTAuOTI1IGM2LjAxMiwwLDEwLjkyNSw0Ljg0OCwxMC45MjUsMTAuOTI1djQxLjY5N0MyNzMuNzc4LDM0Ni43MzEsMjY4LjkyOSwzNTEuNjQ0LDI2Mi44NTMsMzUxLjY0NHoiLz48cGF0aCBzdHlsZT0iZmlsbDojMTk0RjgyOyIgZD0iTTEzNS4xNzYsMzMwLjc2NEg2NS4yMjhjLTYuMDEyLDAtMTAuOTI1LTQuODQ5LTEwLjkyNS0xMC45MjVjMC02LjAxMiw0Ljg0OC0xMC45MjUsMTAuOTI1LTEwLjkyNSBoNjkuOTQ3YzYuMDEyLDAsMTAuOTI1LDQuODQ4LDEwLjkyNSwxMC45MjVDMTQ2LjAzNiwzMjUuOTE1LDE0MS4xODgsMzMwLjc2NCwxMzUuMTc2LDMzMC43NjR6Ii8+PC9nPjxwYXRoIHN0eWxlPSJmaWxsOiM1NkFDRTA7IiBkPSJNMzU5LjgyMiwyNjkuMDI2SDMyLjcxMWMtNi4wMTIsMC0xMC45MjUsNC44NDgtMTAuOTI1LDEwLjkyNXY3OS45MDMgYzAsNi4wMTIsNC44NDgsMTAuOTI1LDEwLjkyNSwxMC45MjVoMzI3LjExMWM2LjAxMiwwLDEwLjkyNS00Ljg0OSwxMC45MjUtMTAuOTI1di03OS45NjggQzM3MC43NDcsMjczLjg3NSwzNjUuODM0LDI2OS4wMjYsMzU5LjgyMiwyNjkuMDI2eiIvPjxwYXRoIHN0eWxlPSJmaWxsOiNGRkMxMEQ7IiBkPSJNMzU5LjgyMiwxNDUuMzU4SDMyLjcxMWMtNi4wMTIsMC0xMC45MjUsNC44NDgtMTAuOTI1LDEwLjkyNXY3OS45NjggYzAsNi4wMTIsNC44NDgsMTAuOTI1LDEwLjkyNSwxMC45MjVoMzI3LjExMWM2LjAxMiwwLDEwLjkyNS00Ljg0OCwxMC45MjUtMTAuOTI1di03OS45MDMgQzM3MC43NDcsMTUwLjMzNSwzNjUuODM0LDE0NS4zNTgsMzU5LjgyMiwxNDUuMzU4eiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NkFDRTA7IiBkPSJNMzIuNzExLDEyMy41NzJoMzI3LjExMWM2LjAxMiwwLDEwLjkyNS00Ljg0OCwxMC45MjUtMTAuOTI1VjMyLjc0MyBjMC02LjAxMi00Ljg0OC0xMC45MjUtMTAuOTI1LTEwLjkyNUgzMi43MTFjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjV2NzkuOTY4IEMyMS43ODYsMTE4LjcyMywyNi42OTksMTIzLjU3MiwzMi43MTEsMTIzLjU3MnoiLz48Zz48cGF0aCBzdHlsZT0iZmlsbDojMTk0RjgyOyIgZD0iTTM1OS44MjIsMC4wMzJIMzIuNzExQzE0LjY3NSwwLjAzMiwwLDE0LjcwNywwLDMyLjc0M3Y3OS45NjhjMCw4LjMzOSwzLjE2OCwxNS45NjgsOC40MDQsMjEuNzg2IEMzLjE2OCwxNDAuMzE1LDAsMTQ3Ljk0MywwLDE1Ni4zNDd2NzkuOTY4YzAsOC4zMzksMy4xNjgsMTUuOTY4LDguNDA0LDIxLjc4NkMzLjE2OCwyNjMuOTE5LDAsMjcxLjQ4MywwLDI3OS44ODd2NzkuOTY4IGMwLDE4LjAzNiwxNC42NzUsMzIuNzExLDMyLjcxMSwzMi43MTFoMzI3LjExMWMxOC4wMzYsMCwzMi43MTEtMTQuNjc1LDMyLjcxMS0zMi43MTF2LTc5Ljk2OGMwLTguMzM5LTMuMTY4LTE1Ljk2OC04LjQwNC0yMS43ODYgYzUuMTcyLTUuODE4LDguNDA0LTEzLjQ0Niw4LjQwNC0yMS43ODZ2LTc5Ljk2OGMwLTguMzM5LTMuMTY4LTE1Ljk2OC04LjQwNC0yMS43ODZjNS4xNzItNS44MTgsOC40MDQtMTMuNDQ2LDguNDA0LTIxLjc4NlYzMi43NDMgaDAuMDY1QzM5Mi41MzMsMTQuNzA3LDM3Ny44NTksMC4wMzIsMzU5LjgyMiwwLjAzMnogTTIxLjc4NiwzMi43NDNjMC02LjAxMiw0Ljg0OC0xMC45MjUsMTAuOTI1LTEwLjkyNWgzMjcuMTExIGM2LjAxMiwwLDEwLjkyNSw0Ljg0OCwxMC45MjUsMTAuOTI1djc5Ljk2OGMwLDYuMDEyLTQuODQ4LDEwLjkyNS0xMC45MjUsMTAuOTI1SDMyLjcxMWMtNi4wMTIsMC0xMC45MjUtNC44NDgtMTAuOTI1LTEwLjkyNSBWMzIuNzQzeiBNMzU5LjgyMiwzNzAuNzhIMzIuNzExYy02LjAxMiwwLTEwLjkyNS00Ljg0OS0xMC45MjUtMTAuOTI1di03OS45NjhjMC02LjAxMiw0Ljg0OC0xMC45MjUsMTAuOTI1LTEwLjkyNWgzMjcuMTExIGM2LjAxMiwwLDEwLjkyNSw0Ljg0OSwxMC45MjUsMTAuOTI1djc5Ljk2OGgwLjA2NUMzNzAuNzQ3LDM2NS45MzEsMzY1Ljg5OSwzNzAuNzgsMzU5LjgyMiwzNzAuNzh6IE0zNTkuODIyLDI0Ny4xNzZIMzIuNzExIGMtNi4wMTIsMC0xMC45MjUtNC44NDgtMTAuOTI1LTEwLjkyNXYtNzkuOTAzYzAtNi4wMTIsNC44NDgtMTAuOTI1LDEwLjkyNS0xMC45MjVoMzI3LjExMWM2LjAxMiwwLDEwLjkyNSw0Ljg0OCwxMC45MjUsMTAuOTI1IHY3OS45MDNoMC4wNjVDMzcwLjc0NywyNDIuMjYzLDM2NS44OTksMjQ3LjE3NiwzNTkuODIyLDI0Ny4xNzZ6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0zMjcuMzA1LDEwNC41MDFjNi4wMTIsMCwxMC45MjUtNC44NDgsMTAuOTI1LTEwLjkyNVY1MS44NzljMC02LjAxMi00Ljg0OC0xMC45MjUtMTAuOTI1LTEwLjkyNSBjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjV2NDEuNjk3QzMxNi40NDQsOTkuNjUzLDMyMS4yOTMsMTA0LjUwMSwzMjcuMzA1LDEwNC41MDF6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0yNjIuODUzLDEwNC41MDFjNi4wMTIsMCwxMC45MjUtNC44NDgsMTAuOTI1LTEwLjkyNVY1MS44NzljMC02LjAxMi00Ljg0OC0xMC45MjUtMTAuOTI1LTEwLjkyNSBjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjV2NDEuNjk3QzI1MS45OTIsOTkuNjUzLDI1Ni44NCwxMDQuNTAxLDI2Mi44NTMsMTA0LjUwMXoiLz48cGF0aCBzdHlsZT0iZmlsbDojMTk0RjgyOyIgZD0iTTY1LjIyOCw4My42Mmg3MC4wMTJjNi4wMTIsMCwxMC45MjUtNC44NDgsMTAuOTI1LTEwLjkyNWMwLTYuMDc3LTQuOTc4LTEwLjkyNS0xMC45OS0xMC45MjVINjUuMjI4IGMtNi4wMTIsMC0xMC45MjUsNC44NDgtMTAuOTI1LDEwLjkyNUM1NC4zMDMsNzguNzcyLDU5LjIxNiw4My42Miw2NS4yMjgsODMuNjJ6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0zMjcuMzA1LDE2NC41NThjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjV2NDEuNjk3YzAsNi4wMTIsNC44NDgsMTAuOTI1LDEwLjkyNSwxMC45MjUgYzYuMDEyLDAsMTAuOTI1LTQuODQ4LDEwLjkyNS0xMC45MjV2LTQxLjY5N0MzMzguMjMsMTY5LjQwNiwzMzMuMzE3LDE2NC41NTgsMzI3LjMwNSwxNjQuNTU4eiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMjYyLjg1MywxNjQuNTU4Yy02LjAxMiwwLTEwLjkyNSw0Ljg0OC0xMC45MjUsMTAuOTI1djQxLjY5N2MwLDYuMDEyLDQuODQ4LDEwLjkyNSwxMC45MjUsMTAuOTI1IGM2LjAxMiwwLDEwLjkyNS00Ljg0OCwxMC45MjUtMTAuOTI1di00MS42OTdDMjczLjc3OCwxNjkuNDA2LDI2OC45MjksMTY0LjU1OCwyNjIuODUzLDE2NC41NTh6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0xMzUuMjQsMTg1LjM3NEg2NS4yMjhjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjVzNC44NDgsMTAuOTI1LDEwLjkyNSwxMC45MjVoNzAuMDEyIGM2LjAxMiwwLDEwLjkyNS00Ljg0OCwxMC45MjUtMTAuOTI1QzE0Ni4xMDEsMTkwLjI4NywxNDEuMjUzLDE4NS4zNzQsMTM1LjI0LDE4NS4zNzR6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0zMjcuMzA1LDI4OC4wOTdjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjV2NDEuNjk3YzAsNi4wMTIsNC44NDgsMTAuOTI1LDEwLjkyNSwxMC45MjUgYzYuMDEyLDAsMTAuOTI1LTQuODQ4LDEwLjkyNS0xMC45MjV2LTQxLjY5N0MzMzguMjMsMjkyLjk0NSwzMzMuMzE3LDI4OC4wOTcsMzI3LjMwNSwyODguMDk3eiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMjYyLjg1MywyODguMDk3Yy02LjAxMiwwLTEwLjkyNSw0Ljg0OC0xMC45MjUsMTAuOTI1djQxLjY5N2MwLDYuMDEyLDQuODQ4LDEwLjkyNSwxMC45MjUsMTAuOTI1IGM2LjAxMiwwLDEwLjkyNS00Ljg0OCwxMC45MjUtMTAuOTI1di00MS42OTdDMjczLjc3OCwyOTIuOTQ1LDI2OC45MjksMjg4LjA5NywyNjIuODUzLDI4OC4wOTd6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0xMzUuMTc2LDMwOC45NzhINjUuMjI4Yy02LjAxMiwwLTEwLjkyNSw0Ljg0OC0xMC45MjUsMTAuOTI1czQuOTEzLDEwLjg2MSwxMC45MjUsMTAuODYxaDcwLjAxMiBjNi4wMTIsMCwxMC45MjUtNC44NDksMTAuOTI1LTEwLjkyNUMxNDYuMDM2LDMxMy44MjYsMTQxLjE4OCwzMDguOTc4LDEzNS4xNzYsMzA4Ljk3OHoiLz48L2c+PC9zdmc+",
377
405
  invisibleCli: true,
378
406
  selected: true,
379
407
  tooltip: "Set up deployment yourself"
@@ -413,7 +441,7 @@ const features = [
413
441
  category: "Hosting",
414
442
  label: "Vercel",
415
443
  flag: "vercel",
416
- image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjE2ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDIyMiI+PHBhdGggZD0ibTEyOCAwbDEyOCAyMjEuNzA1SDB6Ii8+PC9zdmc+",
444
+ image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+IHBhdGh7ZmlsbDpibGFjazt9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtwYXRoe2ZpbGw6d2hpdGU7fX08L3N0eWxlPjxwYXRoIGQ9Im0xMiAxLjYwOCAxMiAyMC43ODRIMFoiLz48L3N2Zz4=",
417
445
  url: "https://vercel.com",
418
446
  tagline: "Develop with your favorite tools. Launch globally, instantly. Keep pushing",
419
447
  repo: "vercel/vercel",
@@ -455,7 +483,7 @@ const features = [
455
483
  category: "Hosting",
456
484
  label: "Docker",
457
485
  flag: "docker",
458
- image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKYXJpYS1sYWJlbD0iRG9ja2VyIiByb2xlPSJpbWciCnZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cmVjdAp3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIKcng9IjE1JSIKZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIHN0cm9rZT0iIzA2NmRhNSIgc3Ryb2tlLXdpZHRoPSIzOCIgZD0iTTI5NiAyMjZoNDJtLTkyIDBoNDJtLTkxIDBoNDJtLTkxIDBoNDFtLTkxIDBoNDJtOC00Nmg0MW04IDBoNDJtNyAwaDQybS00Mi00Nmg0MiIvPjxwYXRoIGZpbGw9IiMwNjZkYTUiIGQ9Im00NzIgMjI4cy0xOC0xNy01NS0xMWMtNC0yOS0zNS00Ni0zNS00NnMtMjkgMzUtOCA3NGMtNiAzLTE2IDctMzEgN0g2OGMtNSAxOS01IDE0NSAxMzMgMTQ1IDk5IDAgMTczLTQ2IDIwOC0xMzAgNTIgNCA2My0zOSA2My0zOSIvPjwvc3ZnPg==",
486
+ image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cGF0aCBkPSJNMTI0LjggNTIuMWMtNC4zLTIuNS0xMC0yLjgtMTQuOC0xLjQtLjYtNS4yLTQtOS43LTgtMTIuOWwtMS42LTEuMy0xLjQgMS42Yy0yLjcgMy4xLTMuNSA4LjMtMy4xIDEyLjMuMyAyLjkgMS4yIDUuOSAzIDguMy0xLjQuOC0yLjkgMS45LTQuMyAyLjQtMi44IDEtNS45IDItOC45IDJINzlWNDlINjZWMjRINTF2MTJIMjZ2MTNIMTN2MTRIMS44bC0uMiAxLjVjLS41IDYuNC4zIDEyLjYgMyAxOC41bDEuMSAyLjIuMS4yYzcuOSAxMy40IDIxLjcgMTkgMzYuOCAxOSAyOS4yIDAgNTMuMy0xMy4xIDY0LjMtNDAuNiA3LjQuNCAxNS0xLjggMTguNi04LjlsLjktMS44LTEuNi0xek0yOCAzOWgxMHYxMUgyOFYzOXptMTMuMSA0NC4yYzAgMS43LTEuNCAzLjEtMy4xIDMuMS0xLjcgMC0zLjEtMS40LTMuMS0zLjEgMC0xLjcgMS40LTMuMSAzLjEtMy4xIDEuNy4xIDMuMSAxLjQgMy4xIDMuMXpNMjggNTJoMTB2MTFIMjhWNTJ6bS0xMyAwaDExdjExSDE1VjUyem0yNy43IDUwLjJjLTE1LjgtLjEtMjQuMy01LjQtMzEuMy0xMi40IDIuMS4xIDQuMS4yIDUuOS4yIDEuNiAwIDMuMiAwIDQuNy0uMSAzLjktLjIgNy4zLS43IDEwLjEtMS41IDIuMyA1LjMgNi41IDEwLjIgMTQgMTMuOGgtMy40ek01MSA2M0g0MFY1MmgxMXYxMXptMC0xM0g0MFYzOWgxMXYxMXptMTMgMTNINTNWNTJoMTF2MTF6bTAtMTNINTNWMzloMTF2MTF6bTAtMTNINTNWMjZoMTF2MTF6bTEzIDI2SDY2VjUyaDExdjExek0zOC44IDgxLjJjLS4yLS4xLS41LS4yLS44LS4yLTEuMiAwLTIuMiAxLTIuMiAyLjIgMCAxLjIgMSAyLjIgMi4yIDIuMnMyLjItMSAyLjItMi4yYzAtLjMtLjEtLjYtLjItLjgtLjIuMy0uNC41LS44LjUtLjUgMC0uOS0uNC0uOS0uOS4xLS40LjMtLjcuNS0uOHoiIGZpbGw9IiMwMTlCQzYiPjwvcGF0aD48L3N2Zz4=",
459
487
  url: "https://www.docker.com/",
460
488
  tagline: "A safer container ecosystem, for everyone",
461
489
  links: [{
@@ -468,7 +496,7 @@ const features = [
468
496
  label: "Dokploy",
469
497
  flag: "dokploy",
470
498
  dependsOn: ["docker"],
471
- image: "data:image/svg+xml;base64,PHN2ZwogICB2aWV3Qm94PSIwIDAgNTk5Ljk5OTk5IDU5OS45OTk5OSIKICAgY2xhc3M9ImgtMTAgdy1hdXRvIgogICB3aWR0aD0iNjAwIgogICBoZWlnaHQ9IjYwMCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aAogICAgIGlkPSJwYXRoNCIKICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLXdpZHRoOjEuMDUxMjE7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1kYXNob2Zmc2V0OjEwNS44Mjc7cGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGwgbWFya2VycyIKICAgICBkPSJtIDQxNS42NDY5NCwxMzUuMTMwNTggYyAtNC4xMzAyNSwwLjg4NzE2IC00LjcwODgyLDQuOTgzMTUgLTQuMTMwMTUsMTUuODg3OTUgMC42MTU2LDExLjYwMDQgNS4zOTg1MywyOC4xMTAxMiAyNi45NTM2MSw0My42ODAzMiA5LjM3NTc5LDcuMDA3MyAyMC4yODU3NSw1LjE0NTUyIDE2Ljg0Mzk2LDExLjQ4MzM1IC05LjQxNzExLDE0LjQ3OTI1IC0xMy44NDk5NywxNy4wNzIxMyAtMzMuMTMzODMsMjMuMDI3NDMgLTguOTUyNzMsMi43NjQ4MSAtMjQuMDU2NDIsMS41NDQ0IC00MS42MDkwNSwtMy4zNDg2OCAtMTcuNTUyNjIsLTQuODkzMDcgLTM3LjQ2OTcxLC0xMy4wMzI2NCAtNTYuOTk3MzYsLTIxLjgyNjk4IC0xOS41Mjc2LC04Ljc5NDM1IC0zOC42ODEwMiwtMTguMjI1MzIgLTU1LjIxNTIzLC0yNS43MzAwMiAtMTYuNTM0MTYsLTcuNTA0NjggLTI5LjUzNjUsLTEzLjM0MzU4IC00MS4yODQ2MywtMTQuMjk2MDUgLTYuMTE2MjIsLTAuNDk1ODUgLTEyLjM0OTU2LC0wLjcyMjQgLTE4LjgzOTY3LC0wLjc4NDI5IC0xOS40NzAzMiwtMC4xODU2OCAtNDEuMjQ4NjksMS4xMTY5MSAtNjkuMDk2NTQsMS4xMTY5MSAtMTguODcwNjcsMCAtMzIuOTE0NjMsNi4zMTU3OCAtMzkuNzE4MDg4LDE3LjgyMzM1IC02LjgwMzQ1OCwxMS41MDc1NiAtNi44NDI2MTksMjQuNTI3ODkgLTcuMjEyNjk5LDM4LjU5MDkxIC0wLjM2MTUzNCwxMy43MzgyOSAtMS4wMjQyLDIzLjk2MzMgLTAuMzQ0OTI4LDMzLjIxMTY4IDAuNjc5MjczLDkuMjQ4MzYgMy4xOTMyODUsMTguMDQ2NDUgOS4wMDA5ODUsMjUuNDQyNTcgMi42MjE0MywzLjMzODQgNS4zMTAxNyw1LjI5NzAxIDkuMzA4OTYsOC4yMjY5NiAzLjk5ODc5LDIuOTI5OTIgOS4wNjM4OCw2LjI5MDYxIDE1LjEwNSw5Ljk3MDA2IDEyLjA4MjIyLDcuMzU4ODkgMjguMDQwMjMsMTUuOTY3MTYgNDYuNDMxODcsMjQuMjM1MzMgMzYuNzgzMjcsMTYuNTM2MzQgODMuMTY4MjksMzEuODQ0MjggMTI3LjY5OTQ1LDMxLjg0NDI4IDEwMy4xNzAxMywwIDIwMi42MzMxMSwtNzkuODI2MjggMjAyLjYzMzExLC03OS44MjYyOCA0LjU2MTc2LC0zLjU5MTEyIDUuMzQ4NjIsLTEwLjIwMDM1IDEuNzU3NDksLTE0Ljc2MjEyIC0zLjU5MTEyLC00LjU2MTc2IC0xMC4yMDAzNSwtNS4zNDg2MiAtMTQuNzYyMTEsLTEuNzU3NDggMCwwIC05Ny41OTg2Myw3NS4zMjE2NyAtMTg5LjYyODQ5LDc1LjMyMTY3IC0zOS42MTQyNiwwIC04My45NjIxOSwtMTQuMjA5NjEgLTExOS4wNzgzLC0yOS45OTY0NSAtMTcuNTU4MDUsLTcuODkzNDEgLTMyLjg0MzE5LC0xNi4xNDk4OSAtNDQuMTE1OTMsLTIzLjAxNTc2IC01LjYzNjM3LC0zLjQzMjkyIC0xMC4yNzgxLC02LjUyNjIyIC0xMy42MTY0NSwtOC45NzIyMyAtMy4zMzgzNSwtMi40NDYwMyAtNS42MTc1OSwtNC43ODU3MiAtNS4xOTg1NywtNC4yNTIwNyAtMS4yODA5OCwtMS42MzEzNyAtMi4xNTM3NSwtMy4xOTg2MSAtMi44MzUzOSwtNC45NTAxMyBoIDUzLjg0NTc4IGMgMTkuMTA2NzksMCAzMi44MzI1OCw3Ljc0Njc1IDUyLjMyNDQsMTYuNzIwODIgMTkuNDkxODIsOC45NzQwNSA0NC4xNDQwOCwxOC4zNTQwMSA4MS4wNjQzMywxNy42NzM0NyA1Mi44NDgxNywtMC45NzQxNyA4NC41OTQ1OCwtMTEuNDI0OSAxMTQuODI4MywtMjguODQ2NyAxNy40ODAyOSwtMTAuMDcyOCAzMC40NjM0NSwtMTguNTg5OSA0MS43NTQ3MiwtMzEuMDk4NTcgNy4zMTgyNSwtOC41NjAyNCAxMS43NDM5MiwtMTQuNTEyIDE3LjQwNDI4LC0yNC4yNTc3MyAzLjQ2MjExLC02LjA4NzU0IDkuOTc4ODcsLTYuNzc0NCAxOC4wNjA1OCwtNi43MTcxMiAxNS4zOTk1LDAuMTA5MTUgMzUuMTM5NjEsLTE5LjIwMjg4IDQxLjcxNzY4LC0zMC4zMzQwNSA2LjU3ODA5LC0xMS4xMzExOCA5Ljk5NjgsLTIyLjIxODc2IDAuNDA5MzIsLTIyLjI2NjYxIC05LjU4NzQ3LC0wLjA0NzggLTkuMTg0NjksOS42NjY5NiAtMjMuMjI2NywxMC45MDE5NCAtMTMuOTk2MjksMC40NTczOCAtMzEuODQ0ODEsMi4zNjIwNyAtMzkuNTI5MDUsMTcuMjczMTUgLTEuMzcyMTksLTUuNDg4NzQgLTguMTA5OTIsLTIxLjQwNDU4IC0zMC4yNTEwMywtMjcuMDY4NjcgLTIyLjE0MTEyLC01LjY2NDA4IC0xMy41MjU4OSwtMjEuMjg2OTcgLTI3LjMxOTYzLC0xOC4zMjQxNiB6IG0gLTIwNy42MTk3MSw0OS4xNDgwNCBjIDE4LjU1OTM3LC0xLjMxODc3IDM0Ljk4NDMzLDUuNzU0NzYgNTEuNjQyNzYsMTMuMTcwOTEgMTYuMDU0NjIsNy4yODcwMiAzNS4zMDkxNCwxNi43NjQ5MSA1NS4yNzA2NiwyNS43NTQ2NSAxOS45NjE1Miw4Ljk4OTc1IDQwLjYxNywxNy41MDk5NSA1OS45ODQ2OSwyMi45MDkgOS4xNTc3MywyLjU1Mjg2IDE4LjAxNjM0LDQuNDE4NzkgMjYuNTI2NjMsNS4yNDU3OCAtMjYuMzY2MzgsMTQuNDkyOTQgLTUyLjQ5MTYxLDIyLjYxMzU0IC0xMDAuMDQxNTUsMjMuNDkwMDQgLTMzLjMyNjQsMC42MTQzIC01My4zMTY5MywtNy4yMDQwNCAtNzEuODgyNjYsLTE1Ljc1MTc0IC0xOC41NjU3MywtOC41NDc2OSAtMzYuMzE0OTEsLTE4LjY0NjY1IC02MS4xMTgwMiwtMTguNjQ2NjUgaCAtNTUuNzAxODMgYyAwLjEwNjc3LC01LjM4Mjk0IDAuMzE3MTMsLTExLjYxMTI2IDAuNTE1MzUsLTE5LjE0MzU0IDAuMzYxNzUsLTEzLjc0NjU3IDEuNTU4MTMsLTIzLjgxNDc1IDQuMjk1MTgsLTI4LjQ0NDI3IDIuNzM3MDMsLTQuNjI5NTEgNi41NDA4NiwtNy40OTgwOCAyMS42MTk2MSwtNy40OTgwOCAyOC40NzU3NSwwIDUwLjQ2MjMyLC0xLjIyMjUgNjguODg5MTgsLTEuMDg2MSB6IG0gLTI1LjcxMTU1LDIwLjIxMzIgYyAtNS45NjE1NSwtNWUtNCAtMTAuNzk0OCw0LjgzMTgyIC0xMC43OTU0MywxMC43OTMzOSAtNWUtNCw1Ljk2MjM1IDQuODMzMDgsMTAuNzk1OTQgMTAuNzk1NDMsMTAuNzk1NDMgNS45NjE1NywtNi4zZS00IDEwLjc5MzksLTQuODMzODggMTAuNzkzNCwtMTAuNzk1NDMgLTYuM2UtNCwtNS45NjA3NyAtNC44MzI2MywtMTAuNzkyNzYgLTEwLjc5MzQsLTEwLjc5MzM5IHogbSAtNzIuMTcwMDksMTAxLjc0MzYgYyAtMC42NzU3OSwtMC4wMTggLTEuMzU2MDQsMC4wMDIgLTIuMDM2NzIsMC4wNjE3IC00Ljc0NDEsMC40MTcwNCAtOS4yNDU1NDYsMy4wOTcxNiAtMTEuODY1MTI0LDYuNjQ4MDkgLTIuNjE5NTc3LDMuNTUwOTMgLTMuNjU4NzA0LDcuNjgxNzEgLTMuNjU4NzA0LDExLjczNzgzIC00LjgxZS00LDEwNy43OTU1NiA5Mi44MzU5MTgsMTg4Ljc1OTg2IDIwNy40MTQ4NjgsMTg4Ljc2IDExNC41Nzg5NCwtMS40ZS00IDIwNy40MTUzNiwtODAuOTY0NDQgMjA3LjQxNDg3LC0xODguNzYgMCwtNC4wNTYxMiAtMS4wMzkxMiwtOC4xODY5IC0zLjY1ODY5LC0xMS43Mzc4MyAtMi42MTk1OSwtMy41NTA5MyAtNy4xMjEwMywtNi4yMzEwNSAtMTEuODY1MTMsLTYuNjQ4MDkgLTEuMzYxMzYsLTAuMTE5NzMgLTIuNzE4OTQsLTAuMDc2NiAtNC4wNDg4LDAuMTAwNiAtMy41NTc0MywwLjQ3MzYgLTYuODk1MywxLjg3NTc1IC0xMC4wODcxLDMuOTIxNTEgLTMyLjYzMzc3LDIwLjkxNjQ1IC05NS41MDU3OSw3My41NTE4MiAtMTc3Ljc1NTE1LDczLjU1MTgyIC04Mi4yNDkzNSwwIC0xNDUuMTIxMzgsLTUyLjYzNTM3IC0xNzcuNzU1MTMsLTczLjU1MTg2IC0zLjE5MTgsLTIuMDQ1NzYgLTYuNTI5NjgsLTMuNDQ3OSAtMTAuMDg3MSwtMy45MjE1MSAtMC42NjQ5MywtMC4wODg1IC0xLjMzNjI5LC0wLjE0NDIyIC0yLjAxMjA5LC0wLjE2MjIgeiBtIDEuNTY2NTUsMTkuOTk5NjkgYyAwLjEzNzksMC4wODA3IDAuMTAzMTMsMC4wMTk5IDAuMjU0NiwwLjExNzAzIDI5LjQxMjQ4LDE4Ljg1MTgzIDk3LjU0MTU4LDc2LjU2MTc4IDE4OC4wMzMxNyw3Ni41NjE3OCA5MC40OTE1OSwwIDE1OC42MjA3MSwtNTcuNzA5OTUgMTg4LjAzMzE5LC03Ni41NjE3OCAwLjE1MTQ3LC0wLjA5NyAwLjExNjcsLTAuMDM2MiAwLjI1NDU5LC0wLjExNzAzIC0wLjA2ODEsNy4zNTMxMyAtMC4yMDg5OCwxMC40Mjg2MSAtMS4yMDMxNCwxNy40Nzg0MyAtNy4zNTgwNyw5LjkxODUyIC04Ny40MjM3MSw5Ni45NDEyOSAtMTg3LjA4NDY0LDk2Ljk0MTI5IC05OS42NjA5NCwwIC0xNzkuNzI2NTYsLTg3LjAyMjc3IC0xODcuMDg0NjMsLTk2Ljk0MTI5IC0wLjk5NDE2LC03LjA0OTgyIC0xLjEzNTA1LC0xMC4xMjUzIC0xLjIwMzE0LC0xNy40Nzg0MyB6IG0gMTEuNDkxNDYsNTguNjkzMjYgYyAzNC4wNzAzNSwzMS4zMTkxNSAxMDAuNjAwOTksNzcuMDYyNzUgMTc2Ljc5NjMxLDc3LjA2Mjc1IDc2LjE5NTMxLDAgMTQyLjcyNTk4LC00NS43NDM2IDE3Ni43OTYzMywtNzcuMDYyNzUgLTI2LjE5NDM4LDY1LjMwNTMgLTk0LjQ3NTA2LDEwOS40NzE1MSAtMTc2Ljc5NjMzLDEwOS40NzE2NSAtODIuMzIxMjgsLTEuMWUtNCAtMTUwLjYwMTk0LC00NC4xNjYzNSAtMTc2Ljc5NjMxLC0xMDkuNDcxNjUgeiIKICAgICAvPgo8L3N2Zz4K",
499
+ image: "data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAwLDYwMCIgd2lkdGg9IjYwMCIgaGVpZ2h0PSI2MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHN0eWxlPiBwYXRoe2ZpbGw6YmxhY2s7fUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7cGF0aHtmaWxsOndoaXRlO319PC9zdHlsZT48cGF0aCBkPSJtIDQxNS42NDY5NCwxMzUuMTMwNTggYyAtNC4xMzAyNSwwLjg4NzE2IC00LjcwODgyLDQuOTgzMTUgLTQuMTMwMTUsMTUuODg3OTUgMC42MTU2LDExLjYwMDQgNS4zOTg1MywyOC4xMTAxMiAyNi45NTM2MSw0My42ODAzMiA5LjM3NTc5LDcuMDA3MyAyMC4yODU3NSw1LjE0NTUyIDE2Ljg0Mzk2LDExLjQ4MzM1IC05LjQxNzExLDE0LjQ3OTI1IC0xMy44NDk5NywxNy4wNzIxMyAtMzMuMTMzODMsMjMuMDI3NDMgLTguOTUyNzMsMi43NjQ4MSAtMjQuMDU2NDIsMS41NDQ0IC00MS42MDkwNSwtMy4zNDg2OCAtMTcuNTUyNjIsLTQuODkzMDcgLTM3LjQ2OTcxLC0xMy4wMzI2NCAtNTYuOTk3MzYsLTIxLjgyNjk4IC0xOS41Mjc2LC04Ljc5NDM1IC0zOC42ODEwMiwtMTguMjI1MzIgLTU1LjIxNTIzLC0yNS43MzAwMiAtMTYuNTM0MTYsLTcuNTA0NjggLTI5LjUzNjUsLTEzLjM0MzU4IC00MS4yODQ2MywtMTQuMjk2MDUgLTYuMTE2MjIsLTAuNDk1ODUgLTEyLjM0OTU2LC0wLjcyMjQgLTE4LjgzOTY3LC0wLjc4NDI5IC0xOS40NzAzMiwtMC4xODU2OCAtNDEuMjQ4NjksMS4xMTY5MSAtNjkuMDk2NTQsMS4xMTY5MSAtMTguODcwNjcsMCAtMzIuOTE0NjMsNi4zMTU3OCAtMzkuNzE4MDg4LDE3LjgyMzM1IC02LjgwMzQ1OCwxMS41MDc1NiAtNi44NDI2MTksMjQuNTI3ODkgLTcuMjEyNjk5LDM4LjU5MDkxIC0wLjM2MTUzNCwxMy43MzgyOSAtMS4wMjQyLDIzLjk2MzMgLTAuMzQ0OTI4LDMzLjIxMTY4IDAuNjc5MjczLDkuMjQ4MzYgMy4xOTMyODUsMTguMDQ2NDUgOS4wMDA5ODUsMjUuNDQyNTcgMi42MjE0MywzLjMzODQgNS4zMTAxNyw1LjI5NzAxIDkuMzA4OTYsOC4yMjY5NiAzLjk5ODc5LDIuOTI5OTIgOS4wNjM4OCw2LjI5MDYxIDE1LjEwNSw5Ljk3MDA2IDEyLjA4MjIyLDcuMzU4ODkgMjguMDQwMjMsMTUuOTY3MTYgNDYuNDMxODcsMjQuMjM1MzMgMzYuNzgzMjcsMTYuNTM2MzQgODMuMTY4MjksMzEuODQ0MjggMTI3LjY5OTQ1LDMxLjg0NDI4IDEwMy4xNzAxMywwIDIwMi42MzMxMSwtNzkuODI2MjggMjAyLjYzMzExLC03OS44MjYyOCA0LjU2MTc2LC0zLjU5MTEyIDUuMzQ4NjIsLTEwLjIwMDM1IDEuNzU3NDksLTE0Ljc2MjEyIC0zLjU5MTEyLC00LjU2MTc2IC0xMC4yMDAzNSwtNS4zNDg2MiAtMTQuNzYyMTEsLTEuNzU3NDggMCwwIC05Ny41OTg2Myw3NS4zMjE2NyAtMTg5LjYyODQ5LDc1LjMyMTY3IC0zOS42MTQyNiwwIC04My45NjIxOSwtMTQuMjA5NjEgLTExOS4wNzgzLC0yOS45OTY0NSAtMTcuNTU4MDUsLTcuODkzNDEgLTMyLjg0MzE5LC0xNi4xNDk4OSAtNDQuMTE1OTMsLTIzLjAxNTc2IC01LjYzNjM3LC0zLjQzMjkyIC0xMC4yNzgxLC02LjUyNjIyIC0xMy42MTY0NSwtOC45NzIyMyAtMy4zMzgzNSwtMi40NDYwMyAtNS42MTc1OSwtNC43ODU3MiAtNS4xOTg1NywtNC4yNTIwNyAtMS4yODA5OCwtMS42MzEzNyAtMi4xNTM3NSwtMy4xOTg2MSAtMi44MzUzOSwtNC45NTAxMyBoIDUzLjg0NTc4IGMgMTkuMTA2NzksMCAzMi44MzI1OCw3Ljc0Njc1IDUyLjMyNDQsMTYuNzIwODIgMTkuNDkxODIsOC45NzQwNSA0NC4xNDQwOCwxOC4zNTQwMSA4MS4wNjQzMywxNy42NzM0NyA1Mi44NDgxNywtMC45NzQxNyA4NC41OTQ1OCwtMTEuNDI0OSAxMTQuODI4MywtMjguODQ2NyAxNy40ODAyOSwtMTAuMDcyOCAzMC40NjM0NSwtMTguNTg5OSA0MS43NTQ3MiwtMzEuMDk4NTcgNy4zMTgyNSwtOC41NjAyNCAxMS43NDM5MiwtMTQuNTEyIDE3LjQwNDI4LC0yNC4yNTc3MyAzLjQ2MjExLC02LjA4NzU0IDkuOTc4ODcsLTYuNzc0NCAxOC4wNjA1OCwtNi43MTcxMiAxNS4zOTk1LDAuMTA5MTUgMzUuMTM5NjEsLTE5LjIwMjg4IDQxLjcxNzY4LC0zMC4zMzQwNSA2LjU3ODA5LC0xMS4xMzExOCA5Ljk5NjgsLTIyLjIxODc2IDAuNDA5MzIsLTIyLjI2NjYxIC05LjU4NzQ3LC0wLjA0NzggLTkuMTg0NjksOS42NjY5NiAtMjMuMjI2NywxMC45MDE5NCAtMTMuOTk2MjksMC40NTczOCAtMzEuODQ0ODEsMi4zNjIwNyAtMzkuNTI5MDUsMTcuMjczMTUgLTEuMzcyMTksLTUuNDg4NzQgLTguMTA5OTIsLTIxLjQwNDU4IC0zMC4yNTEwMywtMjcuMDY4NjcgLTIyLjE0MTEyLC01LjY2NDA4IC0xMy41MjU4OSwtMjEuMjg2OTcgLTI3LjMxOTYzLC0xOC4zMjQxNiB6IG0gLTIwNy42MTk3MSw0OS4xNDgwNCBjIDE4LjU1OTM3LC0xLjMxODc3IDM0Ljk4NDMzLDUuNzU0NzYgNTEuNjQyNzYsMTMuMTcwOTEgMTYuMDU0NjIsNy4yODcwMiAzNS4zMDkxNCwxNi43NjQ5MSA1NS4yNzA2NiwyNS43NTQ2NSAxOS45NjE1Miw4Ljk4OTc1IDQwLjYxNywxNy41MDk5NSA1OS45ODQ2OSwyMi45MDkgOS4xNTc3MywyLjU1Mjg2IDE4LjAxNjM0LDQuNDE4NzkgMjYuNTI2NjMsNS4yNDU3OCAtMjYuMzY2MzgsMTQuNDkyOTQgLTUyLjQ5MTYxLDIyLjYxMzU0IC0xMDAuMDQxNTUsMjMuNDkwMDQgLTMzLjMyNjQsMC42MTQzIC01My4zMTY5MywtNy4yMDQwNCAtNzEuODgyNjYsLTE1Ljc1MTc0IC0xOC41NjU3MywtOC41NDc2OSAtMzYuMzE0OTEsLTE4LjY0NjY1IC02MS4xMTgwMiwtMTguNjQ2NjUgaCAtNTUuNzAxODMgYyAwLjEwNjc3LC01LjM4Mjk0IDAuMzE3MTMsLTExLjYxMTI2IDAuNTE1MzUsLTE5LjE0MzU0IDAuMzYxNzUsLTEzLjc0NjU3IDEuNTU4MTMsLTIzLjgxNDc1IDQuMjk1MTgsLTI4LjQ0NDI3IDIuNzM3MDMsLTQuNjI5NTEgNi41NDA4NiwtNy40OTgwOCAyMS42MTk2MSwtNy40OTgwOCAyOC40NzU3NSwwIDUwLjQ2MjMyLC0xLjIyMjUgNjguODg5MTgsLTEuMDg2MSB6IG0gLTI1LjcxMTU1LDIwLjIxMzIgYyAtNS45NjE1NSwtNWUtNCAtMTAuNzk0OCw0LjgzMTgyIC0xMC43OTU0MywxMC43OTMzOSAtNWUtNCw1Ljk2MjM1IDQuODMzMDgsMTAuNzk1OTQgMTAuNzk1NDMsMTAuNzk1NDMgNS45NjE1NywtNi4zZS00IDEwLjc5MzksLTQuODMzODggMTAuNzkzNCwtMTAuNzk1NDMgLTYuM2UtNCwtNS45NjA3NyAtNC44MzI2MywtMTAuNzkyNzYgLTEwLjc5MzQsLTEwLjc5MzM5IHogbSAtNzIuMTcwMDksMTAxLjc0MzYgYyAtMC42NzU3OSwtMC4wMTggLTEuMzU2MDQsMC4wMDIgLTIuMDM2NzIsMC4wNjE3IC00Ljc0NDEsMC40MTcwNCAtOS4yNDU1NDYsMy4wOTcxNiAtMTEuODY1MTI0LDYuNjQ4MDkgLTIuNjE5NTc3LDMuNTUwOTMgLTMuNjU4NzA0LDcuNjgxNzEgLTMuNjU4NzA0LDExLjczNzgzIC00LjgxZS00LDEwNy43OTU1NiA5Mi44MzU5MTgsMTg4Ljc1OTg2IDIwNy40MTQ4NjgsMTg4Ljc2IDExNC41Nzg5NCwtMS40ZS00IDIwNy40MTUzNiwtODAuOTY0NDQgMjA3LjQxNDg3LC0xODguNzYgMCwtNC4wNTYxMiAtMS4wMzkxMiwtOC4xODY5IC0zLjY1ODY5LC0xMS43Mzc4MyAtMi42MTk1OSwtMy41NTA5MyAtNy4xMjEwMywtNi4yMzEwNSAtMTEuODY1MTMsLTYuNjQ4MDkgLTEuMzYxMzYsLTAuMTE5NzMgLTIuNzE4OTQsLTAuMDc2NiAtNC4wNDg4LDAuMTAwNiAtMy41NTc0MywwLjQ3MzYgLTYuODk1MywxLjg3NTc1IC0xMC4wODcxLDMuOTIxNTEgLTMyLjYzMzc3LDIwLjkxNjQ1IC05NS41MDU3OSw3My41NTE4MiAtMTc3Ljc1NTE1LDczLjU1MTgyIC04Mi4yNDkzNSwwIC0xNDUuMTIxMzgsLTUyLjYzNTM3IC0xNzcuNzU1MTMsLTczLjU1MTg2IC0zLjE5MTgsLTIuMDQ1NzYgLTYuNTI5NjgsLTMuNDQ3OSAtMTAuMDg3MSwtMy45MjE1MSAtMC42NjQ5MywtMC4wODg1IC0xLjMzNjI5LC0wLjE0NDIyIC0yLjAxMjA5LC0wLjE2MjIgeiBtIDEuNTY2NTUsMTkuOTk5NjkgYyAwLjEzNzksMC4wODA3IDAuMTAzMTMsMC4wMTk5IDAuMjU0NiwwLjExNzAzIDI5LjQxMjQ4LDE4Ljg1MTgzIDk3LjU0MTU4LDc2LjU2MTc4IDE4OC4wMzMxNyw3Ni41NjE3OCA5MC40OTE1OSwwIDE1OC42MjA3MSwtNTcuNzA5OTUgMTg4LjAzMzE5LC03Ni41NjE3OCAwLjE1MTQ3LC0wLjA5NyAwLjExNjcsLTAuMDM2MiAwLjI1NDU5LC0wLjExNzAzIC0wLjA2ODEsNy4zNTMxMyAtMC4yMDg5OCwxMC40Mjg2MSAtMS4yMDMxNCwxNy40Nzg0MyAtNy4zNTgwNyw5LjkxODUyIC04Ny40MjM3MSw5Ni45NDEyOSAtMTg3LjA4NDY0LDk2Ljk0MTI5IC05OS42NjA5NCwwIC0xNzkuNzI2NTYsLTg3LjAyMjc3IC0xODcuMDg0NjMsLTk2Ljk0MTI5IC0wLjk5NDE2LC03LjA0OTgyIC0xLjEzNTA1LC0xMC4xMjUzIC0xLjIwMzE0LC0xNy40Nzg0MyB6IG0gMTEuNDkxNDYsNTguNjkzMjYgYyAzNC4wNzAzNSwzMS4zMTkxNSAxMDAuNjAwOTksNzcuMDYyNzUgMTc2Ljc5NjMxLDc3LjA2Mjc1IDc2LjE5NTMxLDAgMTQyLjcyNTk4LC00NS43NDM2IDE3Ni43OTYzMywtNzcuMDYyNzUgLTI2LjE5NDM4LDY1LjMwNTMgLTk0LjQ3NTA2LDEwOS40NzE1MSAtMTc2Ljc5NjMzLDEwOS40NzE2NSAtODIuMzIxMjgsLTEuMWUtNCAtMTUwLjYwMTk0LC00NC4xNjYzNSAtMTc2Ljc5NjMxLC0xMDkuNDcxNjUgeiIgLz48L3N2Zz4=",
472
500
  url: "https://dokploy.com",
473
501
  tagline: "Open source alternative to Heroku, Vercel, and Netlify. Self-host on any VPS",
474
502
  repo: "Dokploy/dokploy",
@@ -40,11 +40,16 @@ declare const categories: readonly [{
40
40
  }, {
41
41
  readonly label: "Database";
42
42
  readonly group: categoriesGroups.Data;
43
- readonly description: "Helping you get started with a database solution.";
43
+ readonly description: "The database your app talks to. SQLite runs embedded (and powers Cloudflare D1);\nPostgreSQL targets a Postgres server. Selected on its own you get a thin client; pair it with an ORM or query builder below.";
44
+ }, {
45
+ readonly label: "ORM / Query builder";
46
+ readonly group: categoriesGroups.Data;
47
+ readonly description: "Type-safe data access on top of your database. Requires choosing a Database above.";
44
48
  }, {
45
49
  readonly label: "Hosting";
46
50
  readonly group: categoriesGroups.Deployment;
47
51
  readonly description: "Quickly host your Vike project with a Serverless or VPS (coming soon) solution.";
52
+ readonly required: true;
48
53
  }, {
49
54
  readonly label: "Linter";
50
55
  readonly multiple: true;
@@ -66,6 +71,17 @@ declare const categories: readonly [{
66
71
  type CategoryLabels = (typeof categories)[number]["label"];
67
72
  //#endregion
68
73
  //#region src/features.d.ts
74
+ /**
75
+ * In forder to have an icon that has different colors based on dark/light mode:
76
+ *
77
+ * <style>
78
+ * path { fill: black; }
79
+ *
80
+ * @media (prefers-color-scheme: dark) {
81
+ * path { fill: white; }
82
+ * }
83
+ * </style>
84
+ */
69
85
  declare const features: readonly [{
70
86
  readonly category: "Frontend Framework";
71
87
  readonly label: "Vike";
@@ -181,7 +197,7 @@ declare const features: readonly [{
181
197
  readonly label: "shadcn/ui";
182
198
  readonly flag: "shadcn-ui";
183
199
  readonly dependsOn: readonly ["tailwindcss", "react"];
184
- readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAyNTYgMjU2IiBjbGFzcz0iaC02IHctNiI+PHBhdGggZmlsbD0ibm9uZSIgZD0iTTAgMGgyNTZ2MjU2SDB6Ii8+PHBhdGggZmlsbD0ibm9uZSIgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIgc3Ryb2tlLXdpZHRoPSIxNiIgZD0ibTIwOCAxMjgtODAgODBtNjQtMTY4TDQwIDE5MiIvPjwvc3ZnPg==";
200
+ readonly image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+IHBhdGh7ZmlsbDpibGFjazt9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtwYXRoe2ZpbGw6d2hpdGU7fX08L3N0eWxlPjxwYXRoIGQ9Ik0yMi4yMTkgMTEuNzg0IDExLjc4NCAyMi4yMTljLS40MDcuNDA3LS40MDcgMS4wNjggMCAxLjQ3Ni40MDcuNDA3IDEuMDY4LjQwNyAxLjQ3NiAwTDIzLjY5NSAxMy4yNmMuNDA3LS40MDguNDA3LTEuMDY5IDAtMS40NzYtLjQwOC0uNDA3LTEuMDY5LS40MDctMS40NzYgMFpNMjAuMTMyLjMwNS4zMDUgMjAuMTMyYy0uNDA3LjQwNy0uNDA3IDEuMDY4IDAgMS40NzYuNDA4LjQwNyAxLjA2OS40MDcgMS40NzYgMEwyMS42MDggMS43ODFjLjQwNy0uNDA3LjQwNy0xLjA2OCAwLTEuNDc2LS40MDgtLjQwNy0xLjA2OS0uNDA3LTEuNDc2IDBaIi8+PC9zdmc+";
185
201
  readonly url: "https://ui.shadcn.com";
186
202
  readonly tagline: "Beautifully designed components that you can copy and paste into your apps.";
187
203
  readonly repo: "shadcn-ui/ui";
@@ -206,7 +222,7 @@ declare const features: readonly [{
206
222
  readonly category: "Auth";
207
223
  readonly label: "Auth.js";
208
224
  readonly flag: "authjs";
209
- readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMTAwIDEwMCI+PHBhdGggZmlsbD0iIzg4ODg4OCIgZD0ibTUwLjAyNyAxMC40NTlsLS4wMTgtLjAzMmwtMzMuNjA2IDE5LjQwNGwuMDc2LjEzMnYyMi44OTNoLjAxNGMuMjg2IDE5LjExMSAxNC44NTkgMzQuNzU1IDMzLjUxOSAzNi43MThjMTguNjYtMS45NjIgMzMuMjM0LTE3LjYwNiAzMy41MTktMzYuNzE4VjI5Ljk1M2wuMDY2LS4xMTRsLTMzLjU3LTE5LjM4em0tLjAxNSA2OS4wOTdWNTEuNjc3SDI2LjQzNVYzNS42NTFMNTAuMDEyIDIyLjA0djI5LjYzN2gyMy41NjN2MS4xNzloLjAxN2MtLjI3OCAxMy41OTMtMTAuNDM5IDI0Ljc5OC0yMy41OCAyNi43eiIvPjwvc3ZnPg==";
225
+ readonly image: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjMyIiBoZWlnaHQ9IjIzMiIgdmlld0JveD0iMCAwIDIzMiAyMzIiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yMDguNjg3IDMxLjg1OUwzMC4wOTQ3IDE2Ny43M0M4LjE2Mzg4IDEyNy45NjYgMC41Njc1NTkgNzkuOTk3NSAwIDUxLjIyNzVWMzMuNjE4MUMwIDMxLjA1NjcgMi43Nzg4IDI5LjU2MjggNC4xNjg1MSAyOS4xMzU2QzMzLjU2MTcgMjAuMjc3OCA5My4yNDY1IDIuMzA1MjQgOTYuODM3OCAxLjI4MDY5QzEwMC40MjkgMC4yNTYxMzggMTAzLjQ2NCAwIDEwNC41MzQgMEgxMDQuNjMxQzEwNS43IDAgMTA4LjczNSAwLjI1NjEzOCAxMTIuMzI3IDEuMjgwNjlDMTE1LjkxOCAyLjMwNTI0IDE3NS42MDMgMjAuMjc3OCAyMDQuOTk2IDI5LjEzNTZDMjA2LjAzIDI5LjQ1MzMgMjA3LjgzMiAzMC4zNjEzIDIwOC42ODcgMzEuODU5WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzEyOF82MSkiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTMwLjA5MzggMTY3Ljk1MkwyMDguNjg2IDMyLjA4MTVDMjA4Ljk4MSAzMi41OTgzIDIwOS4xNjQgMzMuMTg0MiAyMDkuMTY0IDMzLjg0MDZWNTEuNDVDMjA4LjIwMiAxMDAuMjIzIDE4Ny4wMzggMjA0LjE3MiAxMTAuMDgxIDIyOS43ODZDMTA5LjAxMyAyMzAuMjEzIDEwNi40OSAyMzEuMDY3IDEwNC45NTEgMjMxLjA2N0gxMDQuMjEyQzEwMi42NzMgMjMxLjA2NyAxMDAuMTUgMjMwLjIxMyA5OS4wODE0IDIyOS43ODZDNjcuNTE5MyAyMTkuMjgxIDQ1LjM0MTUgMTk1LjYgMzAuMDkzOCAxNjcuOTUyWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzEyOF82MSkiLz48cGF0aCBkPSJNMTExLjc0IDEuMjgzMjVDMTA4LjE0NyAwLjI1NjY1IDEwNS4xMSAwIDEwNC4wNCAwTDEwMy43MTkgMjMxLjMwNUgxMDQuMzYxQzEwNS45MDEgMjMxLjMwNSAxMDguNDI1IDIzMC40NSAxMDkuNDk0IDIzMC4wMjJDMTg2LjQ4OSAyMDQuMzU3IDIwNy42NjMgMTAwLjIgMjA4LjYyNSA1MS4zMjk5VjMzLjY4NTNDMjA4LjYyNSAzMS4xMTg4IDIwNS44NDUgMjkuNjIxNiAyMDQuNDU0IDI5LjE5MzlDMTc1LjA0NyAyMC4zMTgxIDExNS4zMzMgMi4zMDk4NSAxMTEuNzQgMS4yODMyNVoiIGZpbGw9InVybCgjcGFpbnQyX2xpbmVhcl8xMjhfNjEpIiBmaWxsLW9wYWNpdHk9IjAuMjEiLz48ZGVmcz48bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMTI4XzYxIiB4MT0iMTkuNTY5NSIgeTE9Ijk2LjU2NDQiIHgyPSI5Ny41MjY5IiB5Mj0iMTUuMDc4MiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPjxzdG9wIHN0b3AtY29sb3I9IiM0NUZGQzgiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiMxREJCRjEiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xMjhfNjEiIHgxPSI3My43ODU2IiB5MT0iMTQzLjcyNCIgeDI9IjE3MC42NzEiIHkyPSIxOTAuODg0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iI0QxNEFFOCIvPjxzdG9wIG9mZnNldD0iMC41NTIyMjgiIHN0b3AtY29sb3I9IiNCNjI4RTMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiM4MzE1RkQiLz48L2xpbmVhckdyYWRpZW50PjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQyX2xpbmVhcl8xMjhfNjEiIHgxPSIxNTUuOTE0IiB5MT0iMjEuODE1MiIgeDI9IjE1NS45MTQiIHkyPSIxODIuNTQyIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+PHN0b3Agc3RvcC1jb2xvcj0iIzIwQUJGNSIvPjxzdG9wIG9mZnNldD0iMC4zOTgwOTMiIHN0b3AtY29sb3I9IiMyQThDQzMiLz48c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IiNBMTA0REMiLz48L2xpbmVhckdyYWRpZW50PjwvZGVmcz48L3N2Zz4=";
210
226
  readonly url: "https://authjs.dev";
211
227
  readonly spectrum: "bleeding_edge";
212
228
  readonly tagline: "Authentication for the Web";
@@ -222,7 +238,7 @@ declare const features: readonly [{
222
238
  readonly category: "Auth";
223
239
  readonly label: "Auth0";
224
240
  readonly flag: "auth0";
225
- readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIwLjllbSIgaGVpZ2h0PSIxZW0iIHZpZXdCb3g9IjAgMCAyNTYgMjg1Ij48cGF0aCBkPSJNMjIwLjQxMiAwaC05Mi40MTVsMjguNTYyIDg5LjAwNmg5Mi40MTZsLTc0Ljc3IDUzLjA3N2wyOC41NyA4OS41MTFjNDguMTI4LTM1LjA2IDYzLjg1NC04OC4xMiA0Ni4yMDgtMTQyLjU4OEwyMjAuNDEzIDBaTTcuMDE4IDg5LjAwNmg5Mi40MTZMMTI3Ljk5NyAwSDM1LjU4OUw3LjAxOSA4OS4wMDZjLTE3LjY1NSA1NC40NjgtMS45MiAxMDcuNTI5IDQ2LjIwNyAxNDIuNTg4bDI4LjU2My04OS41MWwtNzQuNzctNTMuMDc4Wm00Ni4yMDggMTQyLjU4OGw3NC43NyA1Mi45N2w3NC43Ny01Mi45N2wtNzQuNzctNTMuODQ3bC03NC43NyA1My44NDdaIi8+PC9zdmc+";
241
+ readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHByZXNlcnZlQXNwZWN0UmF0aW89InhNaW5ZTWluIG1lZXQiIHZpZXdCb3g9IjAgMCAyNTYgMjg3Ij48cGF0aCBmaWxsPSIjRUI1NDI0IiBkPSJtMjAzLjIgMjMxLjUtMjguNy04OC40IDc1LjItNTQuNmgtOTNMMTI4IDBoOTNsMjguNyA4OC40YTEyOCAxMjggMCAwIDEtNDYuNSAxNDMuMXptLTE1MC40IDAgNzUuMiA1NC43IDc1LjItNTQuN0wxMjggMTc3bC03NS4yIDU0LjZ6TTYuMyA4OC41YTEyOCAxMjggMCAwIDAgNDYuNSAxNDNsMjguNy04OC40TDYuMyA4OC41aDkzTDEyOCAwSDM1TDYuMyA4OC40eiIvPjwvc3ZnPg==";
226
242
  readonly url: "https://auth0.com";
227
243
  readonly tagline: "Secure access for everyone. But not just anyone.";
228
244
  readonly repo: "nextauthjs/next-auth";
@@ -300,6 +316,7 @@ declare const features: readonly [{
300
316
  readonly category: "Server";
301
317
  readonly label: "Express";
302
318
  readonly flag: "express";
319
+ readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGNsYXNzPSJpY29uIiB2aWV3Qm94PSIwIDAgMTI4IDEyOCI+PHN0eWxlPiBwYXRoe2ZpbGw6YmxhY2s7fUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7cGF0aHtmaWxsOndoaXRlO319PC9zdHlsZT48cGF0aCBkPSJNMTI2LjY3IDk4LjQ0Yy00LjU2IDEuMTYtNy4zOC4wNS05LjkxLTMuNzUtNS42OC04LjUxLTExLjk1LTE2LjYzLTE4LTI0LjktLjc4LTEuMDctMS41OS0yLjEyLTIuNi0zLjQ1Qzg5IDc2IDgxLjg1IDg1LjIgNzUuMTQgOTQuNzdjLTIuNCAzLjQyLTQuOTIgNC45MS05LjQgMy43bDI2LjkyLTM2LjEzTDY3LjYgMjkuNzFjNC4zMS0uODQgNy4yOS0uNDEgOS45MyAzLjQ1IDUuODMgOC41MiAxMi4yNiAxNi42MyAxOC42NyAyNS4yMSA2LjQ1LTguNTUgMTIuOC0xNi42NyAxOC44LTI1LjExIDIuNDEtMy40MiA1LTQuNzIgOS4zMy0zLjQ2LTMuMjggNC4zNS02LjQ5IDguNjMtOS43MiAxMi44OC00LjM2IDUuNzMtOC42NCAxMS41My0xMy4xNiAxNy4xNC0xLjYxIDItMS4zNSAzLjMuMDkgNS4xOUMxMDkuOSA3NiAxMTguMTYgODcuMSAxMjYuNjcgOTguNDR6TTEuMzMgNjEuNzRjLjcyLTMuNjEgMS4yLTcuMjkgMi4yLTEwLjgzIDYtMjEuNDMgMzAuNi0zMC4zNCA0Ny41LTE3LjA2QzYwLjkzIDQxLjY0IDYzLjM5IDUyLjYyIDYyLjkgNjVINy4xYy0uODQgMjIuMjEgMTUuMTUgMzUuNjIgMzUuNTMgMjguNzggNy4xNS0yLjQgMTEuMzYtOCAxMy40Ny0xNSAxLjA3LTMuNTEgMi44NC00LjA2IDYuMTQtMy4wNi0xLjY5IDguNzYtNS41MiAxNi4wOC0xMy41MiAyMC42Ni0xMiA2Ljg2LTI5LjEzIDQuNjQtMzguMTQtNC44OUM1LjI2IDg1Ljg5IDMgNzguOTIgMiA3MS4zOWMtLjE1LTEuMi0uNDYtMi4zOC0uNy0zLjU3cS4wMy0zLjA0LjAzLTYuMDh6bTUuODctMS40OWg1MC40M2MtLjMzLTE2LjA2LTEwLjMzLTI3LjQ3LTI0LTI3LjU3LTE1LS4xMi0yNS43OCAxMS4wMi0yNi40MyAyNy41N3oiIC8+PC9zdmc+";
303
320
  readonly url: "https://expressjs.com";
304
321
  readonly spectrum: "beaten_path";
305
322
  readonly tagline: "Fast, unopinionated, minimalist web framework for Node.js";
@@ -326,18 +343,6 @@ declare const features: readonly [{
326
343
  readonly label: "API";
327
344
  readonly href: "https://fastify.dev/docs/latest/Reference/";
328
345
  }];
329
- }, {
330
- readonly category: "Database";
331
- readonly label: "Drizzle";
332
- readonly flag: "drizzle";
333
- readonly image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjI4MHB4IiBoZWlnaHQ9IjI4MHB4IiBzdHlsZT0ic2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgdGV4dC1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uOyBpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5OyBmaWxsLXJ1bGU6ZXZlbm9kZDsgY2xpcC1ydWxlOmV2ZW5vZGQiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iIzAwMDAwMCIgZD0iTSAtMC41LC0wLjUgQyA5Mi44MzMzLC0wLjUgMTg2LjE2NywtMC41IDI3OS41LC0wLjVDIDI3OS41LDkyLjgzMzMgMjc5LjUsMTg2LjE2NyAyNzkuNSwyNzkuNUMgMTg2LjE2NywyNzkuNSA5Mi44MzMzLDI3OS41IC0wLjUsMjc5LjVDIC0wLjUsMTg2LjE2NyAtMC41LDkyLjgzMzMgLTAuNSwtMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTMzLjUsODQuNSBDIDE0Mi44MTQsODIuNzI2OSAxNDYuNjQ3LDg2LjM5MzUgMTQ1LDk1LjVDIDEzNS45MDYsMTEyLjAyOCAxMjYuNTcyLDEyOC4zNjIgMTE3LDE0NC41QyAxMTEuMjQ5LDE0OS45ODQgMTA2LjI0OSwxNDkuMzE3IDEwMiwxNDIuNUMgMTAxLjMzMywxNDAuODMzIDEwMS4zMzMsMTM5LjE2NyAxMDIsMTM3LjVDIDExMS41NDcsMTE5LjA0MSAxMjIuMDQ3LDEwMS4zNzUgMTMzLjUsODQuNSBaIi8+PC9nPgo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eToxIiBmaWxsPSIjYzBmMTRkIiBkPSJNIDIyMy41LDg0LjUgQyAyMzMuNTM5LDgzLjY5NzIgMjM3LjAzOSw4OC4wMzA1IDIzNCw5Ny41QyAyMjUuMzQ3LDExMi44MDEgMjE2LjY4MSwxMjguMTM1IDIwOCwxNDMuNUMgMjAzLjM4NywxNDkuNzM3IDE5OC4zODcsMTUwLjA3MSAxOTMsMTQ0LjVDIDE5MS41NzgsMTQxLjk3IDE5MS4yNDUsMTM5LjMwMyAxOTIsMTM2LjVDIDIwMC41MiwxMjIuNzk0IDIwOC41MiwxMDguNzk0IDIxNiw5NC41QyAyMTguMjg5LDkwLjg4MTIgMjIwLjc4OSw4Ny41NDc5IDIyMy41LDg0LjUgWiIvPjwvZz4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iI2MwZjE0ZCIgZD0iTSA3NS41LDEyMC41IEMgODMuOTg4NSwxMTkuNjE4IDg3LjgyMTgsMTIzLjI4NSA4NywxMzEuNUMgNzcuOTA1NywxNDguMDI4IDY4LjU3MjQsMTY0LjM2MiA1OSwxODAuNUMgNTYuMDQ1MywxODQuMjc3IDUyLjIxMiwxODUuNDQzIDQ3LjUsMTg0QyA0My44Njk3LDE4MC45NSA0Mi43MDMsMTc3LjExNyA0NCwxNzIuNUMgNTMsMTU2LjUgNjIsMTQwLjUgNzEsMTI0LjVDIDcyLjM5NjgsMTIyLjkzIDczLjg5NjgsMTIxLjU5NiA3NS41LDEyMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTY1LjUsMTIwLjUgQyAxNzQuMTY0LDExOS4zMzIgMTc3Ljk5NywxMjIuOTk5IDE3NywxMzEuNUMgMTY3LjQxNCwxNDcuNjcxIDE1OC4wOCwxNjQuMDA0IDE0OSwxODAuNUMgMTQ2LjM5OCwxODQuMjEyIDE0Mi44OTgsMTg1LjM3OCAxMzguNSwxODRDIDEzMy45MzEsMTgxLjQ1OSAxMzIuNDMxLDE3Ny42MjUgMTM0LDE3Mi41QyAxNDMuNTcyLDE1Ni4zNjIgMTUyLjkwNiwxNDAuMDI4IDE2MiwxMjMuNUMgMTYzLjE0NSwxMjIuMzY0IDE2NC4zMTIsMTIxLjM2NCAxNjUuNSwxMjAuNSBaIi8+PC9nPgo8L3N2Zz4K";
334
- readonly url: "https://orm.drizzle.team/";
335
- readonly tagline: "Headless TypeScript ORM that feels like SPA with SSR";
336
- readonly repo: "drizzle-team/drizzle-orm";
337
- readonly links: [{
338
- readonly label: "Docs & Getting started";
339
- readonly href: "https://orm.drizzle.team/docs/overview";
340
- }];
341
346
  }, {
342
347
  readonly category: "Database";
343
348
  readonly label: "SQLite";
@@ -355,6 +360,33 @@ declare const features: readonly [{
355
360
  }];
356
361
  }, {
357
362
  readonly category: "Database";
363
+ readonly label: "PostgreSQL";
364
+ readonly flag: "postgres";
365
+ readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cGF0aCBkPSJNOTMuODA5IDkyLjExMmMuNzg1LTYuNTMzLjU1LTcuNDkyIDUuNDE2LTYuNDMzbDEuMjM1LjEwOGMzLjc0Mi4xNyA4LjYzNy0uNjAyIDExLjUxMy0xLjkzOCA2LjE5MS0yLjg3MyA5Ljg2MS03LjY2OCAzLjc1OC02LjQwOS0xMy45MjQgMi44NzMtMTQuODgxLTEuODQyLTE0Ljg4MS0xLjg0MiAxNC43MDMtMjEuODE1IDIwLjg0OS00OS41MDggMTUuNTQzLTU2LjI4Ny0xNC40Ny0xOC40ODktMzkuNTE3LTkuNzQ2LTM5LjkzNi05LjUybC0uMTM0LjAyNWMtMi43NTEtLjU3MS01LjgzLS45MTItOS4yODktLjk2OC02LjMwMS0uMTA0LTExLjA4MiAxLjY1Mi0xNC43MDkgNC40MDIgMCAwLTQ0LjY4My0xOC40MDktNDIuNjA0IDIzLjE1MS40NDIgOC44NDEgMTIuNjcyIDY2Ljg5OCAyNy4yNiA0OS4zNjIgNS4zMzItNi40MTIgMTAuNDg0LTExLjgzNCAxMC40ODQtMTEuODM0IDIuNTU4IDEuNjk5IDUuNjIyIDIuNTY3IDguODM0IDIuMjU1bC4yNDktLjIxMmMtLjA3OC43OTYtLjA0NCAxLjU3NS4wOTkgMi40OTctMy43NTcgNC4xOTktMi42NTMgNC45MzYtMTAuMTY2IDYuNDgyLTcuNjAyIDEuNTY2LTMuMTM2IDQuMzU1LS4yMjEgNS4wODQgMy41MzUuODg0IDExLjcxMiAyLjEzNiAxNy4yMzgtNS41OThsLS4yMi44ODJjMS40NzQgMS4xOCAxLjM3NSA4LjQ3NyAxLjU4MyAxMy42OS4yMDkgNS4yMTQuNTU4IDEwLjA3OSAxLjYyMSAxMi45NDggMS4wNjMgMi44NjggMi4zMTcgMTAuMjU2IDEyLjE5MSA4LjE0IDguMjUyLTEuNzY0IDE0LjU2MS00LjMwOSAxNS4xMzYtMjcuOTg1Ij48L3BhdGg+PHBhdGggZD0iTTc1LjQ1OCAxMjUuMjU2Yy00LjM2NyAwLTcuMjExLTEuNjg5LTguOTM4LTMuMzItMi42MDctMi40Ni0zLjY0MS01LjYyOS00LjI1OS03LjUyMmwtLjI2Ny0uNzljLTEuMjQ0LTMuMzU4LTEuNjY2LTguMTkzLTEuOTE2LTE0LjQxOS0uMDM4LS45MzUtLjA2NC0xLjg5OC0uMDkzLTIuOTE5LS4wMjEtLjc0Ny0uMDQ3LTEuNjg0LS4wODUtMi42NjRhMTguOCAxOC44IDAgMDEtNC45NjIgMS41NjhjLTMuMDc5LjUyNi02LjM4OS4zNTYtOS44NC0uNTA3LTIuNDM1LS42MDktNC45NjUtMS44NzEtNi40MDctMy44Mi00LjIwMyAzLjY4MS04LjIxMiAzLjE4Mi0xMC4zOTYgMi40NTMtMy44NTMtMS4yODUtNy4zMDEtNC44OTYtMTAuNTQyLTExLjAzNy0yLjMwOS00LjM3NS00LjU0Mi0xMC4wNzUtNi42MzgtMTYuOTQzLTMuNjUtMTEuOTYtNS45NjktMjQuNTU3LTYuMTc1LTI4LjY5M0M0LjI5MiAyMy42OTggNy43NzcgMTQuNDQgMTUuMjk2IDkuMTI5IDI3LjE1Ny43NTEgNDUuMTI4IDUuNjc4IDUxLjY4IDcuOTE1YzQuNDAyLTIuNjUzIDkuNTgxLTMuOTQ0IDE1LjQzMy0zLjg1MSAzLjE0My4wNTEgNi4xMzYuMzI3IDguOTE2LjgyMyAyLjktLjkxMiA4LjYyOC0yLjIyMSAxNS4xODUtMi4xMzkgMTIuMDgxLjE0NCAyMi4wOTIgNC44NTIgMjguOTQ5IDEzLjYxNSA0Ljg5NCA2LjI1MiAyLjQ3NCAxOS4zODEuNTk3IDI2LjY1MS0yLjY0MiAxMC4yMjYtNy4yNzEgMjEuMTAyLTEyLjk1NyAzMC41NyAxLjU0NC4wMTEgMy43ODEtLjE3NCA2Ljk2MS0uODMxIDYuMjc0LTEuMjk1IDguMTA5IDIuMDY5IDguNjA3IDMuNTc1IDEuOTk1IDYuMDQyLTYuNjc3IDEwLjYwOC05LjM4MiAxMS44NjQtMy40NjYgMS42MDktOS4xMTcgMi41ODktMTMuNzQ1IDIuMzc3bC0uMjAyLS4wMTMtMS4yMTYtLjEwNy0uMTIgMS4wMTQtLjExNi45OTFjLS4zMTEgMTEuOTk5LTIuMDI1IDE5LjU5OC01LjU1MiAyNC42MTktMy42OTcgNS4yNjQtOC44MzUgNi43MzktMTMuMzYxIDcuNzA5LTEuNTQ0LjMzLTIuOTQ3LjQ3NC00LjIxOS40NzR6bS05LjE5LTQzLjY3MWMyLjgxOSAyLjI1NiAzLjA2NiA2LjUwMSAzLjI4NyAxNC40MzQuMDI4Ljk5LjA1NCAxLjkyNy4wODkgMi44MDIuMTA2IDIuNjUuMzU1IDguODU1IDEuMzI3IDExLjQ3Ny4xMzcuMzcxLjI2Ljc0Ny4zOSAxLjE0NiAxLjA4MyAzLjMxNiAxLjYyNiA0Ljk3OSA2LjMwOSAzLjk3OCAzLjkzMS0uODQzIDUuOTUyLTEuNTk5IDcuNTM0LTMuODUxIDIuMjk5LTMuMjc0IDMuNTg1LTkuODYgMy44MjEtMTkuNTc1bDQuNzgzLjExNi00Ljc1LS41Ny4xNC0xLjE4NmMuNDU1LTMuOTEuNzgzLTYuNzM0IDMuMzk2LTguNjAyIDIuMDk3LTEuNDk4IDQuNDg2LTEuMzUzIDYuMzg5LTEuMDEtMi4wOTEtMS41OC0yLjY2OS0zLjQzMy0yLjgyMy00LjE5M2wtLjM5OS0xLjk2NSAxLjEyMS0xLjY2M2M2LjQ1Ny05LjU4IDExLjc4MS0yMS4zNTQgMTQuNjA5LTMyLjMwNCAyLjkwNi0xMS4yNTEgMi4wMi0xNy4yMjYgMS4xMzQtMTguMzU2LTExLjcyOS0xNC45ODctMzIuMDY4LTguNzk5LTM0LjE5Mi04LjA5N2wtLjM1OS4xOTQtMS44LjMzNS0uOTIyLS4xOTFjLTIuNTQyLS41MjgtNS4zNjYtLjgyLTguMzkzLS44NjktNC43NTYtLjA4LTguNTkzIDEuMDQ0LTExLjczOSAzLjQzMWwtMi4xODMgMS42NTUtMi41MzMtMS4wNDNjLTUuNDEyLTIuMjEzLTIxLjMwOC02LjY2Mi0yOS42OTYtLjcyMS00LjY1NiAzLjI5OC02Ljc3NyA5Ljc2LTYuMzA1IDE5LjIwNy4xNTYgMy4xMTkgMi4yNzUgMTQuOTI2IDUuNzcxIDI2LjM3NyA0LjgzMSAxNS44MjUgOS4yMjEgMjEuMDgyIDExLjA1NCAyMS42OTMuMzIuMTA4IDEuMTUtLjUzNyAxLjk3Ni0xLjUyOWEyNzAuNzA4IDI3MC43MDggMCAwMTEwLjY5NC0xMi4wN2wyLjc3LTIuOTE1IDMuMzQ5IDIuMjI1YzEuMzUuODk3IDIuODM5IDEuNDA2IDQuMzY4IDEuNTAybDcuOTg3LTYuODEyLTEuMTU3IDExLjgwOGMtLjAyNi4yNjUtLjAzOS42MjYuMDY1IDEuMjk2bC4zNDggMi4yMzgtMS41MSAxLjY4OC0uMTc0LjE5NiA0LjM4OCAyLjAyNSAxLjgzNi0yLjMwMXoiPjwvcGF0aD48cGF0aCBmaWxsPSIjMzM2NzkxIiBkPSJNMTE1LjczMSA3Ny40NGMtMTMuOTI1IDIuODczLTE0Ljg4Mi0xLjg0Mi0xNC44ODItMS44NDIgMTQuNzAzLTIxLjgxNiAyMC44NDktNDkuNTEgMTUuNTQ1LTU2LjI4N0MxMDEuOTI0LjgyMyA3Ni44NzUgOS41NjYgNzYuNDU3IDkuNzkzbC0uMTM1LjAyNGMtMi43NTEtLjU3MS01LjgzLS45MTEtOS4yOTEtLjk2Ny02LjMwMS0uMTAzLTExLjA4IDEuNjUyLTE0LjcwNyA0LjQwMiAwIDAtNDQuNjg0LTE4LjQwOC00Mi42MDYgMjMuMTUxLjQ0MiA4Ljg0MiAxMi42NzIgNjYuODk5IDI3LjI2IDQ5LjM2MyA1LjMzMi02LjQxMiAxMC40ODMtMTEuODM0IDEwLjQ4My0xMS44MzQgMi41NTkgMS42OTkgNS42MjIgMi41NjcgOC44MzMgMi4yNTVsLjI1LS4yMTJjLS4wNzguNzk2LS4wNDIgMS41NzUuMSAyLjQ5Ny0zLjc1OCA0LjE5OS0yLjY1NCA0LjkzNi0xMC4xNjcgNi40ODItNy42MDIgMS41NjYtMy4xMzYgNC4zNTUtLjIyIDUuMDg0IDMuNTM0Ljg4NCAxMS43MTIgMi4xMzYgMTcuMjM3LTUuNTk4bC0uMjIxLjg4MmMxLjQ3MyAxLjE4IDIuNTA3IDcuNjcyIDIuMzM0IDEzLjU1Ny0uMTc0IDUuODg1LS4yOSA5LjkyNi44NzEgMTMuMDgyIDEuMTYgMy4xNTYgMi4zMTYgMTAuMjU2IDEyLjE5MiA4LjE0IDguMjUyLTEuNzY4IDEyLjUyOC02LjM1MSAxMy4xMjQtMTMuOTk1LjQyMi01LjQzNSAxLjM3Ny00LjYzMSAxLjQzOC05LjQ5bC43NjctMi4zYy44ODQtNy4zNjcuMTQtOS43NDMgNS4yMjUtOC42MzhsMS4yMzUuMTA4YzMuNzQyLjE3IDguNjM5LS42MDIgMTEuNTE0LTEuOTM4IDYuMTktMi44NzEgOS44NjEtNy42NjcgMy43NTgtNi40MDh6Ij48L3BhdGg+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTc1Ljk1NyAxMjIuMzA3Yy04LjIzMiAwLTEwLjg0LTYuNTE5LTExLjkwNy05LjE4NS0xLjU2Mi0zLjkwNy0xLjg5OS0xOS4wNjktMS41NTEtMzEuNTAzYTEuNTkgMS41OSAwIDAxMS42NC0xLjU1IDEuNTk0IDEuNTk0IDAgMDExLjU1IDEuNjM5Yy0uNDAxIDE0LjM0MS4xNjggMjcuMzM3IDEuMzI0IDMwLjIyOSAxLjgwNCA0LjUwOSA0LjU0IDguNDUzIDEyLjI3NSA2Ljc5NiA3LjM0My0xLjU3NSAxMC4wOTMtNC4zNTkgMTEuMzE4LTExLjQ2Ljk0LTUuNDQ5IDIuNzk5LTIwLjk1MSAzLjAyOC0yNC4wMWExLjU5MyAxLjU5MyAwIDAxMS43MS0xLjQ3MiAxLjU5NyAxLjU5NyAwIDAxMS40NzIgMS43MWMtLjIzOSAzLjE4NS0yLjA4OSAxOC42NTctMy4wNjUgMjQuMzE1LTEuNDQ2IDguMzg3LTUuMTg1IDEyLjE5MS0xMy43OTQgMTQuMDM3LTEuNDYzLjMxMy0yLjc5Mi40NTMtNCAuNDU0ek0zMS4zMjEgOTAuNDY2YTYuNzEgNi43MSAwIDAxLTIuMTE2LS4zNWMtNS4zNDctMS43ODQtMTAuNDQtMTAuNDkyLTE1LjEzOC0yNS44ODUtMy41NzYtMTEuNzE3LTUuODQyLTIzLjk0Ny02LjA0MS0yNy45MjItLjU4OS0xMS43ODQgMi40NDUtMjAuMTIxIDkuMDItMjQuNzc4IDEzLjAwNy05LjIxNiAzNC44ODgtLjQ0IDM1LjgxMy0uMDYyYTEuNTk2IDEuNTk2IDAgMDEtMS4yMDcgMi45NTVjLS4yMTEtLjA4Ni0yMS4xOTMtOC40OTItMzIuNzY4LS4yODUtNS42MjIgMy45ODYtOC4yMDMgMTEuMzkyLTcuNjcyIDIyLjAxMS4xNjcgMy4zNDkgMi4yODQgMTUuMjg1IDUuOTA2IDI3LjE0OSA0LjE5NCAxMy43NDIgOC45NjcgMjIuNDEzIDEzLjA5NiAyMy43OS42NDguMjE2IDIuNjIuODczIDUuNDM5LTIuNTE3QTI0NS4yNzIgMjQ1LjI3MiAwIDAxNDUuODggNzMuMDQ2YTEuNTk2IDEuNTk2IDAgMDEyLjMwNCAyLjIwOGMtLjA0OC4wNS00Ljg0NyA1LjA2Ny0xMC4wNzcgMTEuMzU5LTIuNDc3IDIuOTc5LTQuODUxIDMuODUzLTYuNzg2IDMuODUzem02OS40MjktMTMuNDQ1YTEuNTk2IDEuNTk2IDAgMDEtMS4zMjItMi40ODdjMTQuODYzLTIyLjA1NSAyMC4wOC00OC43MDQgMTUuNjEyLTU0LjQxNC01LjYyNC03LjE4Ni0xMy41NjUtMTAuOTM5LTIzLjYwNC0xMS4xNTYtNy40MzMtLjE2LTEzLjM0MSAxLjczOC0xNC4zMDcgMi4wNjlsLS4yNDMuMDk5Yy0uOTcxLjMwNS0xLjcxNi0uMjI3LTEuOTk3LS44NDlhMS42IDEuNiAwIDAxLjYzMS0yLjAyNWMuMDQ2LS4wMjcuMTkyLS4wODkuNDI5LS4xNzZsLS4wMjEuMDA2LjAyMS0uMDA3YzEuNjQxLS42MDEgNy42MzktMi40IDE1LjA2OC0yLjMxNSAxMS4xMDguMTE4IDIwLjI4NCA0LjQwMSAyNi41MzQgMTIuMzg4IDIuOTU3IDMuNzc5IDIuOTY0IDEyLjQ4NS4wMTkgMjMuODg3LTMuMDAyIDExLjYyNS04LjY1MSAyNC4xMTgtMTUuNDk3IDM0LjI3Ny0uMzA2LjQ1Ny0uODEuNzAzLTEuMzIzLjcwM3ptLjc2IDEwLjIxYy0yLjUzOCAwLTQuODEzLS4zNTgtNi4xNzUtMS4xNzQtMS40LS44MzktMS42NjctMS45NzktMS43MDItMi41ODQtLjM4Mi02LjcxIDMuMzItNy44NzggNS4yMDgtOC40MTEtLjI2My0uMzk4LS42MzctLjg2Ni0xLjAyNC0xLjM0OS0xLjEwMS0xLjM3Ni0yLjYwOS0zLjI2LTMuNzcxLTYuMDc4LS4xODItLjQ0LS43NTItMS40NjMtMS40MTItMi42NDgtMy41NzktNi40MTgtMTEuMDI2LTE5Ljc3My02LjI0Mi0yNi42MTIgMi4yMTQtMy4xNjUgNi42MjMtNC40MTEgMTMuMTE5LTMuNzE2Qzk3LjYgMjguODM3IDg4LjUgMTAuNjI1IDY2LjkwNyAxMC4yNzFjLTYuNDk0LS4xMDgtMTEuODIgMS44ODktMTUuODIyIDUuOTMtOC45NiA5LjA0OS04LjYzNiAyNS40MjItOC42MzEgMjUuNTg2YTEuNTk1IDEuNTk1IDAgMTEtMy4xOS4wODRjLS4wMi0uNzI3LS4zNTQtMTcuOTA5IDkuNTU0LTI3LjkxNkM1My40NTUgOS4yNzIgNTkuNTU5IDYuOTYgNjYuOTYgNy4wODFjMTMuODE0LjIyNyAyMi43MDYgNy4yNSAyNy43MzIgMTMuMTAxIDUuNDc5IDYuMzc3IDguMTY1IDEzLjQxMSA4LjM4NiAxNS43NTkuMTY1IDEuNzQ2LTEuMDg4IDIuMDk1LTEuMzQxIDIuMTQ3bC0uNTc2LjAxM2MtNi4zNzUtMS4wMjEtMTAuNDY1LS4zMTItMTIuMTU2IDIuMTA0LTMuNjM5IDUuMjAxIDMuNDA2IDE3LjgzNCA2LjQxNCAyMy4yMjkuNzY4IDEuMzc2IDEuMzIyIDIuMzcxIDEuNTc2IDIuOTg1Ljk4OCAyLjM5NiAyLjI3NyA0LjAwNiAzLjMxMiA1LjMuOTExIDEuMTM4IDEuNyAyLjEyNSAxLjk4MiAzLjI4My4xMzEuMjMgMS45OSAyLjk4IDEzLjAyMS43MDMgMi43NjUtLjU3IDQuNDIzLS4wODMgNC45MyAxLjQ1Ljk5NyAzLjAxNS00LjU5NyA2LjUzMi03LjY5NCA3Ljk3LTIuNzc1IDEuMjktNy4yMDQgMi4xMDYtMTEuMDM2IDIuMTA2em0tNC42OTYtNC4wMjFjLjM1LjM1MyAyLjEwMS45NjIgNS43MjcuODA2IDMuMjI0LS4xMzggNi42MjQtLjgzOSA4LjY2NC0xLjc4NiAyLjYwOS0xLjIxMiA0LjM1MS0yLjU2NyA1LjI1My0zLjQ5MmwtLjUuMDkyYy03LjA1MyAxLjQ1Ni0xMi4wNDIgMS4yNjItMTQuODI4LS41NzdhNi4xNjIgNi4xNjIgMCAwMS0uNTQtLjQwMWMtLjMwMi4xMTktLjU4MS4xOTctLjc4LjI1My0xLjU4LjQ0My0zLjIxNC45MDItMi45OTYgNS4xMDV6bS00NS41NjIgOC45MTVjLTEuNzUyIDAtMy41OTYtLjIzOS01LjQ3OS0uNzEtMS45NTEtLjQ4OC01LjI0LTEuOTU3LTUuMTktNC4zNy4wNTctMi43MDcgMy45OTQtMy41MTkgNS40NzYtMy44MjQgNS4zNTQtMS4xMDMgNS43MDMtMS41NDUgNy4zNzYtMy42Ny40ODgtLjYxOSAxLjA5NS0xLjM5IDEuOTIzLTIuMzE0IDEuMjI5LTEuMzc2IDIuNTcyLTIuMDczIDMuOTkyLTIuMDczLjk4OSAwIDEuOC4zMzUgMi4zMzYuNTU4IDEuNzA4LjcwOCAzLjEzMyAyLjQyIDMuNzE5IDQuNDY3LjUyOSAxLjg0Ny4yNzYgMy42MjUtLjcxIDUuMDA2LTMuMjM3IDQuNTMzLTcuODg2IDYuOTMtMTMuNDQzIDYuOTN6bS03LjIyMi00Ljk0M2MuNDgxLjM3MiAxLjQ0NS44NjkgMi41MTggMS4xMzcgMS42MzEuNDA4IDMuMjEzLjYxNSA0LjcwNS42MTUgNC41NDYgMCA4LjE5Ni0xLjg4MiAxMC44NDctNS41OTQuNTUzLS43NzQuMzg3LTEuNzU3LjIzOS0yLjI3NC0uMzEtMS4wODMtMS4wOC0yLjA2OC0xLjg3My0yLjM5Ny0uNDMtLjE3OC0uNzg3LS4zMTQtMS4xMTUtLjMxNC0uMTc2IDAtLjcxMiAwLTEuNjE0IDEuMDA5YTQxLjE0NiA0MS4xNDYgMCAwMC0xLjc5NCAyLjE2MmMtMi4wODQgMi42NDYtMy4wMzkgMy41NDQtOS4yMzkgNC44MjEtMS41MTMuMzEtMi4yODkuNjI2LTIuNjc0LjgzNXptMTIuMjY5LTcuMzZhMS41OTYgMS41OTYgMCAwMS0xLjU3NS0xLjM1NCA4LjIxOCA4LjIxOCAwIDAxLS4wOC0uNzk5Yy00LjA2NC0uMDc2LTcuOTg1LTEuODItMTAuOTYyLTQuOTI2LTMuNzY0LTMuOTI3LTUuNDc3LTkuMzY4LTQuNjk5LTE0LjkyNy44NDUtNi4wMzcuNTI5LTExLjM2Ni4zNTktMTQuMjI5LS4wNDctLjc5Ni0uMDgxLTEuMzcxLS4wNzktMS43NjkuMDAzLS41MDUuMDEzLTEuODQ0IDQuNDg5LTQuMTEzIDEuNTkyLS44MDcgNC43ODQtMi4yMTUgOC4yNzEtMi41NzYgNS43NzctLjU5NyA5LjU4NSAxLjk3NiAxMC43MjUgNy4yNDYgMy4wNzcgMTQuMjI4LjI0NCAyMC41MjEtMS44MjUgMjUuMTE3LS4zODUuODU2LS43NDkgMS42NjQtMS4wNCAyLjQ0N2wtLjI1Ny42OWMtMS4wOTMgMi45MzEtMi4wMzggNS40NjMtMS43NDggNy4zNTRhMS41OTUgMS41OTUgMCAwMS0xLjMzNSAxLjgxOWwtLjI0NC4wMnpNNDIuNDY0IDQyLjI2bC4wNjIgMS4xMzljLjE3NiAyLjk3NC41MDQgOC41MDgtLjM4NCAxNC44Ni0uNjQxIDQuNTg1Ljc1OSA5LjA2IDMuODQzIDEyLjI3NiAyLjQzNyAyLjU0MiA1LjY0NCAzLjk0NSA4Ljk0IDMuOTQ1aC4wNjhjLjM2OS0xLjU1NS45ODItMy4xOTcgMS42NDItNC45NjZsLjI1NS0uNjg2Yy4zMjktLjg4NC43MTQtMS43NCAxLjEyMi0yLjY0NiAxLjk5MS00LjQyNCA0LjQ3LTkuOTMxIDEuNjE1LTIzLjEzMi0uNTY1LTIuNjE1LTEuOTM2LTQuMTI4LTQuMTg5LTQuNjI3LTQuNjI4LTEuMDIyLTExLjUyNSAyLjQ1OS0xMi45NzQgMy44Mzd6bTkuNjMtLjY3N2MtLjA4LjU2NCAxLjAzMyAyLjA3IDIuNDg1IDIuMjcxIDEuNDQ5LjIwMyAyLjY4OS0uOTc1IDIuNzY4LTEuNTM5LjA3OS0uNTY0LTEuMDMzLTEuMTg2LTIuNDg1LTEuMzg4LTEuNDUxLS4yMDItMi42OTEuMDkyLTIuNzY4LjY1NnptMi44MTggMi44MjZsLS40MDctLjAyOGMtLjktLjEyNS0xLjgxLS42OTItMi40MzMtMS41MTgtLjIxOS0uMjktLjU3Ni0uODUyLS41MDUtMS4zNTQuMTAxLS43MzYuOTk5LTEuMTc3IDIuNC0xLjE3Ny4zMTMgMCAuNjM5LjAyMy45NjcuMDY5Ljc2Ni4xMDYgMS40NzcuMzI3IDIuMDAyLjYyLjkxLjUwOC45NzcgMS4wNzUuOTM2IDEuMzY4LS4xMTIuODEzLTEuNDA1IDIuMDItMi45NiAyLjAyem0tMi4yODktMi43MzJjLjA0NS4zNDguOTA3IDEuNDk2IDIuMDI5IDEuNjUxbC4yNjEuMDE4YzEuMDM2IDAgMS44MS0uODE1IDEuOTAxLTEuMDgyLS4wOTYtLjE4Mi0uNzYyLS42MzQtMi4wMjUtLjgxYTUuODIzIDUuODIzIDAgMDAtLjgyMS0uMDU5Yy0uODEyIDAtMS4yNDMuMTgzLTEuMzQ1LjI4MnptNDMuNjA1LTEuMjQ1Yy4wNzkuNTY0LTEuMDMzIDIuMDctMi40ODQgMi4yNzItMS40NS4yMDItMi42OTEtLjk3NS0yLjc3MS0xLjUzOS0uMDc2LS41NjQgMS4wMzYtMS4xODcgMi40ODYtMS4zODggMS40NS0uMjAzIDIuNjg5LjA5MiAyLjc2OS42NTV6bS0yLjgxOSAyLjU2Yy0xLjM5NiAwLTIuNjAxLTEuMDg2LTIuNy0xLjc5MS0uMTE1LS44NDYgMS4yNzgtMS40ODkgMi43MTItMS42ODguMzE2LS4wNDQuNjI5LS4wNjYuOTMtLjA2NiAxLjIzOCAwIDIuMDU4LjM2MyAyLjE0Ljk0OS4wNTMuMzc5LS4yMzguOTY0LS43MzkgMS40OTItLjMzMS4zNDctMS4wMjYuOTQ4LTEuOTczIDEuMDc5bC0uMzcuMDI1em0uOTQzLTMuMDEzYy0uMjc2IDAtLjU2NC4wMjEtLjg1Ni4wNjEtMS40NDEuMjAxLTIuMzAxLjc3OS0yLjI1OSAxLjA4OS4wNDguMzQxLjk2OCAxLjMzMiAyLjE3MyAxLjMzMmwuMjk3LS4wMjFjLjc4Ny0uMTA5IDEuMzc4LS42MjMgMS42Ni0uOTE5LjQ0My0uNDY1LjYxOS0uOTAzLjU5OC0xLjA1Mi0uMDI4LS4xOTgtLjU2LS40OS0xLjYxMy0uNDl6bTMuOTY1IDMyLjg0M2ExLjU5NCAxLjU5NCAwIDAxLTEuMzI0LTIuNDgzYzMuMzk4LTUuMDc1IDIuNzc2LTEwLjI1IDIuMTc1LTE1LjI1NS0uMjU3LTIuMTMyLS41MjEtNC4zMzctLjQ1My02LjQ1My4wNy0yLjE3Ny4zNDctMy45NzMuNjE0LTUuNzEuMzE3LTIuMDU4LjYxNy00LjAwMi40OTMtNi4zMWExLjU5NSAxLjU5NSAwIDExMy4xODYtLjE3MmMuMTQyIDIuNjM4LS4xOTcgNC44MzgtLjUyNSA2Ljk2Ny0uMjUzIDEuNjQzLS41MTUgMy4zNDItLjU3OCA1LjMyNy0uMDYxIDEuODc0LjE3OCAzLjg2NC40MzEgNS45Ny42NCA1LjMyMiAxLjM2NSAxMS4zNTQtMi42OTEgMTcuNDExYTEuNTk2IDEuNTk2IDAgMDEtMS4zMjguNzA4eiI+PC9wYXRoPjwvc3ZnPg==";
366
+ readonly url: "https://www.postgresql.org/";
367
+ readonly tagline: "The world's most advanced open source relational database";
368
+ readonly repo: "postgres/postgres";
369
+ readonly links: [{
370
+ readonly label: "Docs";
371
+ readonly href: "https://www.postgresql.org/docs/";
372
+ }, {
373
+ readonly label: "postgres.js (client)";
374
+ readonly href: "https://github.com/porsager/postgres";
375
+ }];
376
+ }, {
377
+ readonly category: "ORM / Query builder";
378
+ readonly label: "Drizzle";
379
+ readonly flag: "drizzle";
380
+ readonly image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjI4MHB4IiBoZWlnaHQ9IjI4MHB4IiBzdHlsZT0ic2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgdGV4dC1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uOyBpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5OyBmaWxsLXJ1bGU6ZXZlbm9kZDsgY2xpcC1ydWxlOmV2ZW5vZGQiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iIzAwMDAwMCIgZD0iTSAtMC41LC0wLjUgQyA5Mi44MzMzLC0wLjUgMTg2LjE2NywtMC41IDI3OS41LC0wLjVDIDI3OS41LDkyLjgzMzMgMjc5LjUsMTg2LjE2NyAyNzkuNSwyNzkuNUMgMTg2LjE2NywyNzkuNSA5Mi44MzMzLDI3OS41IC0wLjUsMjc5LjVDIC0wLjUsMTg2LjE2NyAtMC41LDkyLjgzMzMgLTAuNSwtMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTMzLjUsODQuNSBDIDE0Mi44MTQsODIuNzI2OSAxNDYuNjQ3LDg2LjM5MzUgMTQ1LDk1LjVDIDEzNS45MDYsMTEyLjAyOCAxMjYuNTcyLDEyOC4zNjIgMTE3LDE0NC41QyAxMTEuMjQ5LDE0OS45ODQgMTA2LjI0OSwxNDkuMzE3IDEwMiwxNDIuNUMgMTAxLjMzMywxNDAuODMzIDEwMS4zMzMsMTM5LjE2NyAxMDIsMTM3LjVDIDExMS41NDcsMTE5LjA0MSAxMjIuMDQ3LDEwMS4zNzUgMTMzLjUsODQuNSBaIi8+PC9nPgo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eToxIiBmaWxsPSIjYzBmMTRkIiBkPSJNIDIyMy41LDg0LjUgQyAyMzMuNTM5LDgzLjY5NzIgMjM3LjAzOSw4OC4wMzA1IDIzNCw5Ny41QyAyMjUuMzQ3LDExMi44MDEgMjE2LjY4MSwxMjguMTM1IDIwOCwxNDMuNUMgMjAzLjM4NywxNDkuNzM3IDE5OC4zODcsMTUwLjA3MSAxOTMsMTQ0LjVDIDE5MS41NzgsMTQxLjk3IDE5MS4yNDUsMTM5LjMwMyAxOTIsMTM2LjVDIDIwMC41MiwxMjIuNzk0IDIwOC41MiwxMDguNzk0IDIxNiw5NC41QyAyMTguMjg5LDkwLjg4MTIgMjIwLjc4OSw4Ny41NDc5IDIyMy41LDg0LjUgWiIvPjwvZz4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iI2MwZjE0ZCIgZD0iTSA3NS41LDEyMC41IEMgODMuOTg4NSwxMTkuNjE4IDg3LjgyMTgsMTIzLjI4NSA4NywxMzEuNUMgNzcuOTA1NywxNDguMDI4IDY4LjU3MjQsMTY0LjM2MiA1OSwxODAuNUMgNTYuMDQ1MywxODQuMjc3IDUyLjIxMiwxODUuNDQzIDQ3LjUsMTg0QyA0My44Njk3LDE4MC45NSA0Mi43MDMsMTc3LjExNyA0NCwxNzIuNUMgNTMsMTU2LjUgNjIsMTQwLjUgNzEsMTI0LjVDIDcyLjM5NjgsMTIyLjkzIDczLjg5NjgsMTIxLjU5NiA3NS41LDEyMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTY1LjUsMTIwLjUgQyAxNzQuMTY0LDExOS4zMzIgMTc3Ljk5NywxMjIuOTk5IDE3NywxMzEuNUMgMTY3LjQxNCwxNDcuNjcxIDE1OC4wOCwxNjQuMDA0IDE0OSwxODAuNUMgMTQ2LjM5OCwxODQuMjEyIDE0Mi44OTgsMTg1LjM3OCAxMzguNSwxODRDIDEzMy45MzEsMTgxLjQ1OSAxMzIuNDMxLDE3Ny42MjUgMTM0LDE3Mi41QyAxNDMuNTcyLDE1Ni4zNjIgMTUyLjkwNiwxNDAuMDI4IDE2MiwxMjMuNUMgMTYzLjE0NSwxMjIuMzY0IDE2NC4zMTIsMTIxLjM2NCAxNjUuNSwxMjAuNSBaIi8+PC9nPgo8L3N2Zz4K";
381
+ readonly url: "https://orm.drizzle.team/";
382
+ readonly tagline: "Headless TypeScript ORM that feels like SPA with SSR";
383
+ readonly repo: "drizzle-team/drizzle-orm";
384
+ readonly links: [{
385
+ readonly label: "Docs & Getting started";
386
+ readonly href: "https://orm.drizzle.team/docs/overview";
387
+ }];
388
+ }, {
389
+ readonly category: "ORM / Query builder";
358
390
  readonly label: "Kysely";
359
391
  readonly flag: "kysely";
360
392
  readonly image: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMTMyJyBoZWlnaHQ9JzEzMicgdmlld0JveD0nMCAwIDEzMiAxMzInIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGcgY2xpcC1wYXRoPSd1cmwoI2NsaXAwXzhfMyknPjxyZWN0IHg9JzInIHk9JzInIHdpZHRoPScxMjgnIGhlaWdodD0nMTI4JyByeD0nMTYnIGZpbGw9J3doaXRlJy8+PHBhdGggZD0nTTQxLjI5ODMgMTA5VjIzLjkwOTFINDYuNDkxOFY3My4zMUg0Ny4wNzM1TDkxLjk0NTcgMjMuOTA5MUg5OC44NDI3TDYxLjkwNjIgNjQuMTY5NEw5OC41MTAzIDEwOUg5Mi4wMjg4TDU4LjU4MjQgNjcuOTA4N0w0Ni40OTE4IDgxLjI4NzNWMTA5SDQxLjI5ODNaJyBmaWxsPSdibGFjaycvPjwvZz48cmVjdCB4PScyJyB5PScyJyB3aWR0aD0nMTI4JyBoZWlnaHQ9JzEyOCcgcng9JzE2JyBzdHJva2U9JyMxMjEyMTInIHN0cm9rZS13aWR0aD0nNCcvPjxkZWZzPjxjbGlwUGF0aCBpZD0nY2xpcDBfOF8zJz48cmVjdCB4PScyJyB5PScyJyB3aWR0aD0nMTI4JyBoZWlnaHQ9JzEyOCcgcng9JzE2JyBmaWxsPSd3aGl0ZScvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPgo=";
@@ -366,10 +398,10 @@ declare const features: readonly [{
366
398
  readonly href: "https://kysely.dev/docs/getting-started";
367
399
  }];
368
400
  }, {
369
- readonly category: "Database";
401
+ readonly category: "ORM / Query builder";
370
402
  readonly label: "Prisma";
371
403
  readonly flag: "prisma";
372
- readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIwLjgzZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDMxMCI+PHBhdGggZD0iTTI1NC4zMTMgMjM1LjUxOUwxNDggOS43NDlBMTcuMDYzIDE3LjA2MyAwIDAgMCAxMzMuNDczLjAzN2ExNi44NyAxNi44NyAwIDAgMC0xNS41MzMgOC4wNTJMMi42MzMgMTk0Ljg0OGExNy40NjUgMTcuNDY1IDAgMCAwIC4xOTMgMTguNzQ3TDU5LjIgMzAwLjg5NmExOC4xMyAxOC4xMyAwIDAgMCAyMC4zNjMgNy40ODlsMTYzLjU5OS00OC4zOTJhMTcuOTI5IDE3LjkyOSAwIDAgMCAxMS4yNi05LjcyMmExNy41NDIgMTcuNTQyIDAgMCAwLS4xMDEtMTQuNzZsLS4wMDguMDA4Wm0tMjMuODAyIDkuNjgzbC0xMzguODIzIDQxLjA1Yy00LjIzNSAxLjI2LTguMy0yLjQxMS03LjQxOS02LjY4NWw0OS41OTgtMjM3LjQ4NGMuOTI3LTQuNDQzIDcuMDYzLTUuMTQ3IDkuMDAzLTEuMDM1bDkxLjgxNCAxOTQuOTczYTYuNjMgNi42MyAwIDAgMS00LjE4IDkuMThoLjAwN1oiLz48L3N2Zz4=";
404
+ readonly image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+IHBhdGh7ZmlsbDpibGFjazt9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtwYXRoe2ZpbGw6d2hpdGU7fX08L3N0eWxlPjxwYXRoIGQ9Ik0yMS44MDY4IDE4LjI4NDhMMTMuNTUyOC43NTY1Yy0uMjA3LS40MzgyLS42MzktLjcyNzMtMS4xMjg2LS43NTQxLS41MDIzLS4wMjkzLS45NTIzLjIxMy0xLjIwNjIuNjI1M0wyLjI2NiAxNS4xMjcxYy0uMjc3My40NTE4LS4yNzE4IDEuMDA5MS4wMTU4IDEuNDU1NWw0LjM3NTkgNi43Nzg2Yy4yNjA4LjQwNDYuNzEyNy42Mzg4IDEuMTgyMy42Mzg4LjEzMzIgMCAuMjY3LS4wMTg4LjM5ODctLjA1NzdsMTIuNzAxOS0zLjc1NjhjLjM4OTEtLjExNTEuNzA3Mi0uMzkwNC44NzM3LS43NTUzcy4xNjMzLS43ODI4LS4wMDc1LTEuMTQ1NHptLTEuODQ4MS43NTE5TDkuMTgxNCAyMi4yMjQyYy0uMzI5Mi4wOTc1LS42NDQ4LS4xODczLS41NzU2LS41MTk0bDMuODUwMS0xOC40Mzg2Yy4wNzItLjM0NDguNTQ4Ni0uMzk5Ni42OTktLjA4MDNsNy4xMjg4IDE1LjEzOGMuMTM0NC4yODU2LS4wMTkuNjIyNC0uMzI1LjcxMjh6Ii8+PC9zdmc+";
373
405
  readonly url: "https://www.prisma.io";
374
406
  readonly spectrum: "beaten_path";
375
407
  readonly tagline: "Next-generation Node.js and TypeScript ORM";
@@ -406,7 +438,7 @@ declare const features: readonly [{
406
438
  readonly category: "Hosting";
407
439
  readonly label: "DIY";
408
440
  readonly flag: "hosting-diy";
409
- readonly image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pg0KDQo8IURPQ1RZUEUgc3ZnICBQVUJMSUMgJy0vL1czQy8vRFREIFNWRyAxLjEvL0VOJyAgJ2h0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCc+DQoNCjwhLS0gVXBsb2FkZWQgdG86IFNWRyBSZXBvLCB3d3cuc3ZncmVwby5jb20sIEdlbmVyYXRvcjogU1ZHIFJlcG8gTWl4ZXIgVG9vbHMgLS0+DQo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwNjkgMTA2OSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyIgdmVyc2lvbj0iMS4xIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCg0KPHJlY3QgaGVpZ2h0PSIxMDY2LjY3IiBpZD0iU3RvcmFnZS1ob3N0aW5nIiBzdHlsZT0iZmlsbDpub25lOyIgd2lkdGg9IjEwNjYuNjciIHg9IjEuMTY3IiB5PSIwLjU5MiIvPg0KDQo8Zz4NCg0KPHBhdGggZD0iTTcxMS41ODQsNjE3LjI1OGwtMCw4My4zMzRjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTgzLjMzNGMtMCwtMTcuMjQ3IC0xNC4wMDMsLTMxLjI1IC0zMS4yNSwtMzEuMjVjLTE3LjI0OCwwIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0tMCwtMzMzLjMzM2wtMCw4My4zMzNjLTAsMTcuMjQ4IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsMCAzMS4yNSwtMTQuMDAyIDMxLjI1LC0zMS4yNWwtMCwtODMuMzMzYy0wLC0xNy4yNDcgLTE0LjAwMywtMzEuMjUgLTMxLjI1LC0zMS4yNWMtMTcuMjQ4LC0wIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0xLjE2NSwtMTM4LjAyNGwtMCwtMjguNjQzYy0wLC0xNy4yNTkgLTEzLjk5MSwtMzEuMjUgLTMxLjI1LC0zMS4yNWwtMjkyLjgzMiwwYy0xNy4yNTksMCAtMzEuMjUsMTMuOTkxIC0zMS4yNSwzMS4yNWwwLDI4LjY0M2MwLDI5Ljg2OSAxMC42Niw1OC40MjkgMjkuMjE1LDc5LjU1YzE5LjkxLDIyLjY2NSA0Ny4wODUsMzUuMDM0IDc1LjI0MywzNS4wMzRsMTQ2LjQxNiwtMGMyOC4xNTgsLTAgNTUuMzMzLC0xMi4zNjkgNzUuMjQzLC0zNS4wMzRjMTguNTU1LC0yMS4xMjEgMjkuMjE1LC00OS42ODEgMjkuMjE1LC03OS41NWwtMCwtMFptLTYyLjU1NCwyLjYwN2MtMC41NDEsMTMuMzk1IC01LjI1MywyNi4xNzUgLTEzLjYxNSwzNS42OTRjLTcuNTQ5LDguNTkyIC0xNy42MTIsMTMuNzgyIC0yOC4yODcsMTMuNzgzYy0wLjAwMiwtMCAtMTQ2LjQxOCwtMCAtMTQ2LjQxOCwtMGMtMTAuNjc3LC0wLjAwMSAtMjAuNzQsLTUuMTkxIC0yOC4yODksLTEzLjc4M2MtOC4zNjIsLTkuNTE5IC0xMy4wNzQsLTIyLjI5OSAtMTMuNjE1LC0zNS42OTRsMjMwLjIyNCwwWiIgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjU7Ii8+DQoNCjxwYXRoIGQ9Ik0xMDEuNjg5LDQ5Mi4yNThjLTIyLjEzMSwyMC44OTcgLTM1LjkzOSw1MC41MDMgLTM1LjkzOSw4My4zMzRjMCw2Mi4wMiAwLDE0Ni4zMTMgMCwyMDguMzMzYzAsNTIuNDQ4IDM1LjIzOSw5Ni42NjYgODMuMzM0LDExMC4yN2wtMCw1Ni4zOTdjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTUyLjA4NGw2NDUuODMzLDBsMCw1Mi4wODRjMCwxNy4yNDcgMTQuMDAzLDMxLjI1IDMxLjI1LDMxLjI1YzE3LjI0OCwtMCAzMS4yNSwtMTQuMDAzIDMxLjI1LC0zMS4yNWwwLC01Ni4zOTdjNDguMDk1LC0xMy42MDQgODMuMzM0LC01Ny44MjIgODMuMzMzLC0xMTAuMjdsMCwtMjA4LjMzM2MwLjAwMSwtMzIuODMxIC0xMy44MDcsLTYyLjQzNyAtMzUuOTM4LC04My4zMzRjMjIuMTMxLC0yMC44OTYgMzUuOTM5LC01MC41MDIgMzUuOTM4LC04My4zMzNsMCwtMjA4LjMzM2MwLjAwMSwtNjMuMjgzIC01MS4zLC0xMTQuNTgzIC0xMTQuNTgyLC0xMTQuNTg0bC03MDguMzM1LDBjLTYzLjI4MiwwLjAwMSAtMTE0LjU4Myw1MS4zMDEgLTExNC41ODMsMTE0LjU4NGMwLDYyLjAyIDAsMTQ2LjMxMyAwLDIwOC4zMzNjMCwzMi44MzEgMTMuODA4LDYyLjQzNyAzNS45MzksODMuMzMzWm04MzkuMDYxLDgzLjMzNGwwLDIwOC4zMzNjMC4wMDEsMjguNzY0IC0yMy4zMTcsNTIuMDgyIC01Mi4wODEsNTIuMDgzYy0wLjAwMywwIC03MDguMzM1LDAgLTcwOC4zMzUsMGMtMjguNzY2LC0wLjAwMSAtNTIuMDg0LC0yMy4zMTkgLTUyLjA4NCwtNTIuMDgzYzAsLTYyLjAyIDAsLTE0Ni4zMTMgMCwtMjA4LjMzM2MwLC0yOC43NjQgMjMuMzE4LC01Mi4wODMgNTIuMDgyLC01Mi4wODRjMC4wMDMsMCA3MDguMzM1LDAgNzA4LjMzNSwwYzI4Ljc2NiwwLjAwMSA1Mi4wODQsMjMuMzIgNTIuMDgzLDUyLjA4NFptLTY1Ni4yNSwtMzEuMjVjLTYzLjI0LC0wIC0xMTQuNTgzLDUxLjM0MyAtMTE0LjU4MywxMTQuNTgzYzAsNjMuMjQgNTEuMzQzLDExNC41ODMgMTE0LjU4MywxMTQuNTgzYzYzLjI0MSwwIDExNC41ODQsLTUxLjM0MyAxMTQuNTg0LC0xMTQuNTgzYy0wLC02My4yNCAtNTEuMzQzLC0xMTQuNTgzIC0xMTQuNTg0LC0xMTQuNTgzWm01NTIuMDg0LDcyLjkxNmwtMCw4My4zMzRjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTgzLjMzNGMtMCwtMTcuMjQ3IC0xNC4wMDMsLTMxLjI1IC0zMS4yNSwtMzEuMjVjLTE3LjI0OCwwIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0tNTUyLjA4NCwtMTAuNDE2YzI4Ljc0NiwtMCA1Mi4wODQsMjMuMzM3IDUyLjA4NCw1Mi4wODNjLTAsMjguNzQ2IC0yMy4zMzgsNTIuMDgzIC01Mi4wODQsNTIuMDgzYy0yOC43NDUsMCAtNTIuMDgzLC0yMy4zMzcgLTUyLjA4MywtNTIuMDgzYzAsLTI4Ljc0NiAyMy4zMzgsLTUyLjA4MyA1Mi4wODMsLTUyLjA4M1ptNjU2LjI1LC00MDYuMjVsMCwyMDguMzMzYzAuMDAxLDI4Ljc2NCAtMjMuMzE3LDUyLjA4MiAtNTIuMDgxLDUyLjA4M2MtMC4wMDMsMCAtNzA4LjMzNSwwIC03MDguMzM1LDBjLTI4Ljc2NiwtMC4wMDEgLTUyLjA4NCwtMjMuMzE5IC01Mi4wODQsLTUyLjA4M2MwLC02Mi4wMiAwLC0xNDYuMzEzIDAsLTIwOC4zMzNjMCwtMjguNzY0IDIzLjMxOCwtNTIuMDgzIDUyLjA4MiwtNTIuMDg0YzAuMDAzLDAgNzA4LjMzNSwwIDcwOC4zMzUsMGMyOC43NjYsMC4wMDEgNTIuMDg0LDIzLjMyIDUyLjA4Myw1Mi4wODRabS02NTYuMjUsMTAuNDE2Yy02My4yNCwwIC0xMTQuNTgzLDUxLjM0MyAtMTE0LjU4MywxMTQuNTg0YzAsNjMuMjQgNTEuMzQzLDExNC41ODMgMTE0LjU4MywxMTQuNTgzYzYzLjI0MSwtMCAxMTQuNTg0LC01MS4zNDMgMTE0LjU4NCwtMTE0LjU4M2MtMCwtNjMuMjQxIC01MS4zNDMsLTExNC41ODQgLTExNC41ODQsLTExNC41ODRabTU1Mi4wODQsNzIuOTE3bC0wLDgzLjMzM2MtMCwxNy4yNDggMTQuMDAyLDMxLjI1IDMxLjI1LDMxLjI1YzE3LjI0NywwIDMxLjI1LC0xNC4wMDIgMzEuMjUsLTMxLjI1bC0wLC04My4zMzNjLTAsLTE3LjI0NyAtMTQuMDAzLC0zMS4yNSAtMzEuMjUsLTMxLjI1Yy0xNy4yNDgsLTAgLTMxLjI1LDE0LjAwMyAtMzEuMjUsMzEuMjVabS01NTIuMDg0LC0xMC40MTdjMjguNzQ2LDAgNTIuMDg0LDIzLjMzOCA1Mi4wODQsNTIuMDg0Yy0wLDI4Ljc0NSAtMjMuMzM4LDUyLjA4MyAtNTIuMDg0LDUyLjA4M2MtMjguNzQ1LC0wIC01Mi4wODMsLTIzLjMzOCAtNTIuMDgzLC01Mi4wODNjMCwtMjguNzQ2IDIzLjMzOCwtNTIuMDg0IDUyLjA4MywtNTIuMDg0WiIvPg0KDQo8L2c+DQoNCjwvc3ZnPg==";
441
+ readonly image: "data:image/svg+xml;base64,PHN2ZyBoZWlnaHQ9IjgwMHB4IiB3aWR0aD0iODAwcHgiIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHZpZXdCb3g9IjAgMCAzOTIuNTk4IDM5Mi41OTgiIHhtbDpzcGFjZT0icHJlc2VydmUiPjxnPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMzI3LjMwNSwxMDQuNTAxYy02LjAxMiwwLTEwLjkyNS00Ljg0OC0xMC45MjUtMTAuOTI1VjUxLjg3OWMwLTYuMDEyLDQuODQ4LTEwLjkyNSwxMC45MjUtMTAuOTI1IHMxMC45MjUsNC44NDgsMTAuOTI1LDEwLjkyNXY0MS42OTdDMzM4LjIzLDk5LjY1MywzMzMuMzE3LDEwNC41MDEsMzI3LjMwNSwxMDQuNTAxeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMjYyLjg1MywxMDQuNTAxYy02LjAxMiwwLTEwLjkyNS00Ljg0OC0xMC45MjUtMTAuOTI1VjUxLjg3OWMwLTYuMDEyLDQuODQ4LTEwLjkyNSwxMC45MjUtMTAuOTI1IGM2LjAxMiwwLDEwLjkyNSw0Ljg0OCwxMC45MjUsMTAuOTI1djQxLjY5N0MyNzMuNzc4LDk5LjY1MywyNjguOTI5LDEwNC41MDEsMjYyLjg1MywxMDQuNTAxeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMTM1LjE3Niw4My42Mkg2NS4yMjhjLTYuMDEyLDAtMTAuOTI1LTQuODQ4LTEwLjkyNS0xMC45MjVjMC02LjAxMiw0Ljg0OC0xMC45MjUsMTAuOTI1LTEwLjkyNSBoNjkuOTQ3YzYuMDEyLDAsMTAuOTI1LDQuODQ4LDEwLjkyNSwxMC45MjVDMTQ2LjAzNiw3OC43NzIsMTQxLjE4OCw4My42MiwxMzUuMTc2LDgzLjYyeiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMzI3LjMwNSwyMjguMDRjLTYuMDEyLDAtMTAuOTI1LTQuODQ4LTEwLjkyNS0xMC45MjV2LTQxLjY5N2MwLTYuMDEyLDQuODQ4LTEwLjkyNSwxMC45MjUtMTAuOTI1IHMxMC45MjUsNC44NDgsMTAuOTI1LDEwLjkyNXY0MS42OTdDMzM4LjIzLDIyMy4xOTIsMzMzLjMxNywyMjguMDQsMzI3LjMwNSwyMjguMDR6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0yNjIuODUzLDIyOC4wNGMtNi4wMTIsMC0xMC45MjUtNC44NDgtMTAuOTI1LTEwLjkyNXYtNDEuNjk3YzAtNi4wMTIsNC44NDgtMTAuOTI1LDEwLjkyNS0xMC45MjUgYzYuMDEyLDAsMTAuOTI1LDQuODQ4LDEwLjkyNSwxMC45MjV2NDEuNjk3QzI3My43NzgsMjIzLjE5MiwyNjguOTI5LDIyOC4wNCwyNjIuODUzLDIyOC4wNHoiLz48cGF0aCBzdHlsZT0iZmlsbDojMTk0RjgyOyIgZD0iTTEzNS4xNzYsMjA3LjIyNEg2NS4yMjhjLTYuMDEyLDAtMTAuOTI1LTQuODQ4LTEwLjkyNS0xMC45MjVzNC44NDgtMTAuOTI1LDEwLjkyNS0xMC45MjVoNjkuOTQ3IGM2LjAxMiwwLDEwLjkyNSw0Ljg0OCwxMC45MjUsMTAuOTI1QzE0Ni4wMzYsMjAyLjMxMSwxNDEuMTg4LDIwNy4yMjQsMTM1LjE3NiwyMDcuMjI0eiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMzI3LjMwNSwzNTEuNjQ0Yy02LjAxMiwwLTEwLjkyNS00Ljg0OS0xMC45MjUtMTAuOTI1di00MS42OTdjMC02LjAxMiw0Ljg0OC0xMC45MjUsMTAuOTI1LTEwLjkyNSBzMTAuOTI1LDQuODQ4LDEwLjkyNSwxMC45MjV2NDEuNjk3QzMzOC4yMywzNDYuNzMxLDMzMy4zMTcsMzUxLjY0NCwzMjcuMzA1LDM1MS42NDR6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0yNjIuODUzLDM1MS42NDRjLTYuMDEyLDAtMTAuOTI1LTQuODQ5LTEwLjkyNS0xMC45MjV2LTQxLjY5N2MwLTYuMDEyLDQuODQ4LTEwLjkyNSwxMC45MjUtMTAuOTI1IGM2LjAxMiwwLDEwLjkyNSw0Ljg0OCwxMC45MjUsMTAuOTI1djQxLjY5N0MyNzMuNzc4LDM0Ni43MzEsMjY4LjkyOSwzNTEuNjQ0LDI2Mi44NTMsMzUxLjY0NHoiLz48cGF0aCBzdHlsZT0iZmlsbDojMTk0RjgyOyIgZD0iTTEzNS4xNzYsMzMwLjc2NEg2NS4yMjhjLTYuMDEyLDAtMTAuOTI1LTQuODQ5LTEwLjkyNS0xMC45MjVjMC02LjAxMiw0Ljg0OC0xMC45MjUsMTAuOTI1LTEwLjkyNSBoNjkuOTQ3YzYuMDEyLDAsMTAuOTI1LDQuODQ4LDEwLjkyNSwxMC45MjVDMTQ2LjAzNiwzMjUuOTE1LDE0MS4xODgsMzMwLjc2NCwxMzUuMTc2LDMzMC43NjR6Ii8+PC9nPjxwYXRoIHN0eWxlPSJmaWxsOiM1NkFDRTA7IiBkPSJNMzU5LjgyMiwyNjkuMDI2SDMyLjcxMWMtNi4wMTIsMC0xMC45MjUsNC44NDgtMTAuOTI1LDEwLjkyNXY3OS45MDMgYzAsNi4wMTIsNC44NDgsMTAuOTI1LDEwLjkyNSwxMC45MjVoMzI3LjExMWM2LjAxMiwwLDEwLjkyNS00Ljg0OSwxMC45MjUtMTAuOTI1di03OS45NjggQzM3MC43NDcsMjczLjg3NSwzNjUuODM0LDI2OS4wMjYsMzU5LjgyMiwyNjkuMDI2eiIvPjxwYXRoIHN0eWxlPSJmaWxsOiNGRkMxMEQ7IiBkPSJNMzU5LjgyMiwxNDUuMzU4SDMyLjcxMWMtNi4wMTIsMC0xMC45MjUsNC44NDgtMTAuOTI1LDEwLjkyNXY3OS45NjggYzAsNi4wMTIsNC44NDgsMTAuOTI1LDEwLjkyNSwxMC45MjVoMzI3LjExMWM2LjAxMiwwLDEwLjkyNS00Ljg0OCwxMC45MjUtMTAuOTI1di03OS45MDMgQzM3MC43NDcsMTUwLjMzNSwzNjUuODM0LDE0NS4zNTgsMzU5LjgyMiwxNDUuMzU4eiIvPjxwYXRoIHN0eWxlPSJmaWxsOiM1NkFDRTA7IiBkPSJNMzIuNzExLDEyMy41NzJoMzI3LjExMWM2LjAxMiwwLDEwLjkyNS00Ljg0OCwxMC45MjUtMTAuOTI1VjMyLjc0MyBjMC02LjAxMi00Ljg0OC0xMC45MjUtMTAuOTI1LTEwLjkyNUgzMi43MTFjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjV2NzkuOTY4IEMyMS43ODYsMTE4LjcyMywyNi42OTksMTIzLjU3MiwzMi43MTEsMTIzLjU3MnoiLz48Zz48cGF0aCBzdHlsZT0iZmlsbDojMTk0RjgyOyIgZD0iTTM1OS44MjIsMC4wMzJIMzIuNzExQzE0LjY3NSwwLjAzMiwwLDE0LjcwNywwLDMyLjc0M3Y3OS45NjhjMCw4LjMzOSwzLjE2OCwxNS45NjgsOC40MDQsMjEuNzg2IEMzLjE2OCwxNDAuMzE1LDAsMTQ3Ljk0MywwLDE1Ni4zNDd2NzkuOTY4YzAsOC4zMzksMy4xNjgsMTUuOTY4LDguNDA0LDIxLjc4NkMzLjE2OCwyNjMuOTE5LDAsMjcxLjQ4MywwLDI3OS44ODd2NzkuOTY4IGMwLDE4LjAzNiwxNC42NzUsMzIuNzExLDMyLjcxMSwzMi43MTFoMzI3LjExMWMxOC4wMzYsMCwzMi43MTEtMTQuNjc1LDMyLjcxMS0zMi43MTF2LTc5Ljk2OGMwLTguMzM5LTMuMTY4LTE1Ljk2OC04LjQwNC0yMS43ODYgYzUuMTcyLTUuODE4LDguNDA0LTEzLjQ0Niw4LjQwNC0yMS43ODZ2LTc5Ljk2OGMwLTguMzM5LTMuMTY4LTE1Ljk2OC04LjQwNC0yMS43ODZjNS4xNzItNS44MTgsOC40MDQtMTMuNDQ2LDguNDA0LTIxLjc4NlYzMi43NDMgaDAuMDY1QzM5Mi41MzMsMTQuNzA3LDM3Ny44NTksMC4wMzIsMzU5LjgyMiwwLjAzMnogTTIxLjc4NiwzMi43NDNjMC02LjAxMiw0Ljg0OC0xMC45MjUsMTAuOTI1LTEwLjkyNWgzMjcuMTExIGM2LjAxMiwwLDEwLjkyNSw0Ljg0OCwxMC45MjUsMTAuOTI1djc5Ljk2OGMwLDYuMDEyLTQuODQ4LDEwLjkyNS0xMC45MjUsMTAuOTI1SDMyLjcxMWMtNi4wMTIsMC0xMC45MjUtNC44NDgtMTAuOTI1LTEwLjkyNSBWMzIuNzQzeiBNMzU5LjgyMiwzNzAuNzhIMzIuNzExYy02LjAxMiwwLTEwLjkyNS00Ljg0OS0xMC45MjUtMTAuOTI1di03OS45NjhjMC02LjAxMiw0Ljg0OC0xMC45MjUsMTAuOTI1LTEwLjkyNWgzMjcuMTExIGM2LjAxMiwwLDEwLjkyNSw0Ljg0OSwxMC45MjUsMTAuOTI1djc5Ljk2OGgwLjA2NUMzNzAuNzQ3LDM2NS45MzEsMzY1Ljg5OSwzNzAuNzgsMzU5LjgyMiwzNzAuNzh6IE0zNTkuODIyLDI0Ny4xNzZIMzIuNzExIGMtNi4wMTIsMC0xMC45MjUtNC44NDgtMTAuOTI1LTEwLjkyNXYtNzkuOTAzYzAtNi4wMTIsNC44NDgtMTAuOTI1LDEwLjkyNS0xMC45MjVoMzI3LjExMWM2LjAxMiwwLDEwLjkyNSw0Ljg0OCwxMC45MjUsMTAuOTI1IHY3OS45MDNoMC4wNjVDMzcwLjc0NywyNDIuMjYzLDM2NS44OTksMjQ3LjE3NiwzNTkuODIyLDI0Ny4xNzZ6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0zMjcuMzA1LDEwNC41MDFjNi4wMTIsMCwxMC45MjUtNC44NDgsMTAuOTI1LTEwLjkyNVY1MS44NzljMC02LjAxMi00Ljg0OC0xMC45MjUtMTAuOTI1LTEwLjkyNSBjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjV2NDEuNjk3QzMxNi40NDQsOTkuNjUzLDMyMS4yOTMsMTA0LjUwMSwzMjcuMzA1LDEwNC41MDF6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0yNjIuODUzLDEwNC41MDFjNi4wMTIsMCwxMC45MjUtNC44NDgsMTAuOTI1LTEwLjkyNVY1MS44NzljMC02LjAxMi00Ljg0OC0xMC45MjUtMTAuOTI1LTEwLjkyNSBjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjV2NDEuNjk3QzI1MS45OTIsOTkuNjUzLDI1Ni44NCwxMDQuNTAxLDI2Mi44NTMsMTA0LjUwMXoiLz48cGF0aCBzdHlsZT0iZmlsbDojMTk0RjgyOyIgZD0iTTY1LjIyOCw4My42Mmg3MC4wMTJjNi4wMTIsMCwxMC45MjUtNC44NDgsMTAuOTI1LTEwLjkyNWMwLTYuMDc3LTQuOTc4LTEwLjkyNS0xMC45OS0xMC45MjVINjUuMjI4IGMtNi4wMTIsMC0xMC45MjUsNC44NDgtMTAuOTI1LDEwLjkyNUM1NC4zMDMsNzguNzcyLDU5LjIxNiw4My42Miw2NS4yMjgsODMuNjJ6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0zMjcuMzA1LDE2NC41NThjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjV2NDEuNjk3YzAsNi4wMTIsNC44NDgsMTAuOTI1LDEwLjkyNSwxMC45MjUgYzYuMDEyLDAsMTAuOTI1LTQuODQ4LDEwLjkyNS0xMC45MjV2LTQxLjY5N0MzMzguMjMsMTY5LjQwNiwzMzMuMzE3LDE2NC41NTgsMzI3LjMwNSwxNjQuNTU4eiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMjYyLjg1MywxNjQuNTU4Yy02LjAxMiwwLTEwLjkyNSw0Ljg0OC0xMC45MjUsMTAuOTI1djQxLjY5N2MwLDYuMDEyLDQuODQ4LDEwLjkyNSwxMC45MjUsMTAuOTI1IGM2LjAxMiwwLDEwLjkyNS00Ljg0OCwxMC45MjUtMTAuOTI1di00MS42OTdDMjczLjc3OCwxNjkuNDA2LDI2OC45MjksMTY0LjU1OCwyNjIuODUzLDE2NC41NTh6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0xMzUuMjQsMTg1LjM3NEg2NS4yMjhjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjVzNC44NDgsMTAuOTI1LDEwLjkyNSwxMC45MjVoNzAuMDEyIGM2LjAxMiwwLDEwLjkyNS00Ljg0OCwxMC45MjUtMTAuOTI1QzE0Ni4xMDEsMTkwLjI4NywxNDEuMjUzLDE4NS4zNzQsMTM1LjI0LDE4NS4zNzR6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0zMjcuMzA1LDI4OC4wOTdjLTYuMDEyLDAtMTAuOTI1LDQuODQ4LTEwLjkyNSwxMC45MjV2NDEuNjk3YzAsNi4wMTIsNC44NDgsMTAuOTI1LDEwLjkyNSwxMC45MjUgYzYuMDEyLDAsMTAuOTI1LTQuODQ4LDEwLjkyNS0xMC45MjV2LTQxLjY5N0MzMzguMjMsMjkyLjk0NSwzMzMuMzE3LDI4OC4wOTcsMzI3LjMwNSwyODguMDk3eiIvPjxwYXRoIHN0eWxlPSJmaWxsOiMxOTRGODI7IiBkPSJNMjYyLjg1MywyODguMDk3Yy02LjAxMiwwLTEwLjkyNSw0Ljg0OC0xMC45MjUsMTAuOTI1djQxLjY5N2MwLDYuMDEyLDQuODQ4LDEwLjkyNSwxMC45MjUsMTAuOTI1IGM2LjAxMiwwLDEwLjkyNS00Ljg0OCwxMC45MjUtMTAuOTI1di00MS42OTdDMjczLjc3OCwyOTIuOTQ1LDI2OC45MjksMjg4LjA5NywyNjIuODUzLDI4OC4wOTd6Ii8+PHBhdGggc3R5bGU9ImZpbGw6IzE5NEY4MjsiIGQ9Ik0xMzUuMTc2LDMwOC45NzhINjUuMjI4Yy02LjAxMiwwLTEwLjkyNSw0Ljg0OC0xMC45MjUsMTAuOTI1czQuOTEzLDEwLjg2MSwxMC45MjUsMTAuODYxaDcwLjAxMiBjNi4wMTIsMCwxMC45MjUtNC44NDksMTAuOTI1LTEwLjkyNUMxNDYuMDM2LDMxMy44MjYsMTQxLjE4OCwzMDguOTc4LDEzNS4xNzYsMzA4Ljk3OHoiLz48L2c+PC9zdmc+";
410
442
  readonly invisibleCli: true;
411
443
  readonly selected: true;
412
444
  readonly tooltip: "Set up deployment yourself";
@@ -443,7 +475,7 @@ declare const features: readonly [{
443
475
  readonly category: "Hosting";
444
476
  readonly label: "Vercel";
445
477
  readonly flag: "vercel";
446
- readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxLjE2ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDIyMiI+PHBhdGggZD0ibTEyOCAwbDEyOCAyMjEuNzA1SDB6Ii8+PC9zdmc+";
478
+ readonly image: "data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHZpZXdCb3g9IjAgMCAyNCAyNCIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48c3R5bGU+IHBhdGh7ZmlsbDpibGFjazt9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXtwYXRoe2ZpbGw6d2hpdGU7fX08L3N0eWxlPjxwYXRoIGQ9Im0xMiAxLjYwOCAxMiAyMC43ODRIMFoiLz48L3N2Zz4=";
447
479
  readonly url: "https://vercel.com";
448
480
  readonly tagline: "Develop with your favorite tools. Launch globally, instantly. Keep pushing";
449
481
  readonly repo: "vercel/vercel";
@@ -482,7 +514,7 @@ declare const features: readonly [{
482
514
  readonly category: "Hosting";
483
515
  readonly label: "Docker";
484
516
  readonly flag: "docker";
485
- readonly image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKYXJpYS1sYWJlbD0iRG9ja2VyIiByb2xlPSJpbWciCnZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cmVjdAp3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIKcng9IjE1JSIKZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIHN0cm9rZT0iIzA2NmRhNSIgc3Ryb2tlLXdpZHRoPSIzOCIgZD0iTTI5NiAyMjZoNDJtLTkyIDBoNDJtLTkxIDBoNDJtLTkxIDBoNDFtLTkxIDBoNDJtOC00Nmg0MW04IDBoNDJtNyAwaDQybS00Mi00Nmg0MiIvPjxwYXRoIGZpbGw9IiMwNjZkYTUiIGQ9Im00NzIgMjI4cy0xOC0xNy01NS0xMWMtNC0yOS0zNS00Ni0zNS00NnMtMjkgMzUtOCA3NGMtNiAzLTE2IDctMzEgN0g2OGMtNSAxOS01IDE0NSAxMzMgMTQ1IDk5IDAgMTczLTQ2IDIwOC0xMzAgNTIgNCA2My0zOSA2My0zOSIvPjwvc3ZnPg==";
517
+ readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cGF0aCBkPSJNMTI0LjggNTIuMWMtNC4zLTIuNS0xMC0yLjgtMTQuOC0xLjQtLjYtNS4yLTQtOS43LTgtMTIuOWwtMS42LTEuMy0xLjQgMS42Yy0yLjcgMy4xLTMuNSA4LjMtMy4xIDEyLjMuMyAyLjkgMS4yIDUuOSAzIDguMy0xLjQuOC0yLjkgMS45LTQuMyAyLjQtMi44IDEtNS45IDItOC45IDJINzlWNDlINjZWMjRINTF2MTJIMjZ2MTNIMTN2MTRIMS44bC0uMiAxLjVjLS41IDYuNC4zIDEyLjYgMyAxOC41bDEuMSAyLjIuMS4yYzcuOSAxMy40IDIxLjcgMTkgMzYuOCAxOSAyOS4yIDAgNTMuMy0xMy4xIDY0LjMtNDAuNiA3LjQuNCAxNS0xLjggMTguNi04LjlsLjktMS44LTEuNi0xek0yOCAzOWgxMHYxMUgyOFYzOXptMTMuMSA0NC4yYzAgMS43LTEuNCAzLjEtMy4xIDMuMS0xLjcgMC0zLjEtMS40LTMuMS0zLjEgMC0xLjcgMS40LTMuMSAzLjEtMy4xIDEuNy4xIDMuMSAxLjQgMy4xIDMuMXpNMjggNTJoMTB2MTFIMjhWNTJ6bS0xMyAwaDExdjExSDE1VjUyem0yNy43IDUwLjJjLTE1LjgtLjEtMjQuMy01LjQtMzEuMy0xMi40IDIuMS4xIDQuMS4yIDUuOS4yIDEuNiAwIDMuMiAwIDQuNy0uMSAzLjktLjIgNy4zLS43IDEwLjEtMS41IDIuMyA1LjMgNi41IDEwLjIgMTQgMTMuOGgtMy40ek01MSA2M0g0MFY1MmgxMXYxMXptMC0xM0g0MFYzOWgxMXYxMXptMTMgMTNINTNWNTJoMTF2MTF6bTAtMTNINTNWMzloMTF2MTF6bTAtMTNINTNWMjZoMTF2MTF6bTEzIDI2SDY2VjUyaDExdjExek0zOC44IDgxLjJjLS4yLS4xLS41LS4yLS44LS4yLTEuMiAwLTIuMiAxLTIuMiAyLjIgMCAxLjIgMSAyLjIgMi4yIDIuMnMyLjItMSAyLjItMi4yYzAtLjMtLjEtLjYtLjItLjgtLjIuMy0uNC41LS44LjUtLjUgMC0uOS0uNC0uOS0uOS4xLS40LjMtLjcuNS0uOHoiIGZpbGw9IiMwMTlCQzYiPjwvcGF0aD48L3N2Zz4=";
486
518
  readonly url: "https://www.docker.com/";
487
519
  readonly tagline: "A safer container ecosystem, for everyone";
488
520
  readonly links: [{
@@ -494,7 +526,7 @@ declare const features: readonly [{
494
526
  readonly label: "Dokploy";
495
527
  readonly flag: "dokploy";
496
528
  readonly dependsOn: readonly ["docker"];
497
- readonly image: "data:image/svg+xml;base64,PHN2ZwogICB2aWV3Qm94PSIwIDAgNTk5Ljk5OTk5IDU5OS45OTk5OSIKICAgY2xhc3M9ImgtMTAgdy1hdXRvIgogICB3aWR0aD0iNjAwIgogICBoZWlnaHQ9IjYwMCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aAogICAgIGlkPSJwYXRoNCIKICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLXdpZHRoOjEuMDUxMjE7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1kYXNob2Zmc2V0OjEwNS44Mjc7cGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGwgbWFya2VycyIKICAgICBkPSJtIDQxNS42NDY5NCwxMzUuMTMwNTggYyAtNC4xMzAyNSwwLjg4NzE2IC00LjcwODgyLDQuOTgzMTUgLTQuMTMwMTUsMTUuODg3OTUgMC42MTU2LDExLjYwMDQgNS4zOTg1MywyOC4xMTAxMiAyNi45NTM2MSw0My42ODAzMiA5LjM3NTc5LDcuMDA3MyAyMC4yODU3NSw1LjE0NTUyIDE2Ljg0Mzk2LDExLjQ4MzM1IC05LjQxNzExLDE0LjQ3OTI1IC0xMy44NDk5NywxNy4wNzIxMyAtMzMuMTMzODMsMjMuMDI3NDMgLTguOTUyNzMsMi43NjQ4MSAtMjQuMDU2NDIsMS41NDQ0IC00MS42MDkwNSwtMy4zNDg2OCAtMTcuNTUyNjIsLTQuODkzMDcgLTM3LjQ2OTcxLC0xMy4wMzI2NCAtNTYuOTk3MzYsLTIxLjgyNjk4IC0xOS41Mjc2LC04Ljc5NDM1IC0zOC42ODEwMiwtMTguMjI1MzIgLTU1LjIxNTIzLC0yNS43MzAwMiAtMTYuNTM0MTYsLTcuNTA0NjggLTI5LjUzNjUsLTEzLjM0MzU4IC00MS4yODQ2MywtMTQuMjk2MDUgLTYuMTE2MjIsLTAuNDk1ODUgLTEyLjM0OTU2LC0wLjcyMjQgLTE4LjgzOTY3LC0wLjc4NDI5IC0xOS40NzAzMiwtMC4xODU2OCAtNDEuMjQ4NjksMS4xMTY5MSAtNjkuMDk2NTQsMS4xMTY5MSAtMTguODcwNjcsMCAtMzIuOTE0NjMsNi4zMTU3OCAtMzkuNzE4MDg4LDE3LjgyMzM1IC02LjgwMzQ1OCwxMS41MDc1NiAtNi44NDI2MTksMjQuNTI3ODkgLTcuMjEyNjk5LDM4LjU5MDkxIC0wLjM2MTUzNCwxMy43MzgyOSAtMS4wMjQyLDIzLjk2MzMgLTAuMzQ0OTI4LDMzLjIxMTY4IDAuNjc5MjczLDkuMjQ4MzYgMy4xOTMyODUsMTguMDQ2NDUgOS4wMDA5ODUsMjUuNDQyNTcgMi42MjE0MywzLjMzODQgNS4zMTAxNyw1LjI5NzAxIDkuMzA4OTYsOC4yMjY5NiAzLjk5ODc5LDIuOTI5OTIgOS4wNjM4OCw2LjI5MDYxIDE1LjEwNSw5Ljk3MDA2IDEyLjA4MjIyLDcuMzU4ODkgMjguMDQwMjMsMTUuOTY3MTYgNDYuNDMxODcsMjQuMjM1MzMgMzYuNzgzMjcsMTYuNTM2MzQgODMuMTY4MjksMzEuODQ0MjggMTI3LjY5OTQ1LDMxLjg0NDI4IDEwMy4xNzAxMywwIDIwMi42MzMxMSwtNzkuODI2MjggMjAyLjYzMzExLC03OS44MjYyOCA0LjU2MTc2LC0zLjU5MTEyIDUuMzQ4NjIsLTEwLjIwMDM1IDEuNzU3NDksLTE0Ljc2MjEyIC0zLjU5MTEyLC00LjU2MTc2IC0xMC4yMDAzNSwtNS4zNDg2MiAtMTQuNzYyMTEsLTEuNzU3NDggMCwwIC05Ny41OTg2Myw3NS4zMjE2NyAtMTg5LjYyODQ5LDc1LjMyMTY3IC0zOS42MTQyNiwwIC04My45NjIxOSwtMTQuMjA5NjEgLTExOS4wNzgzLC0yOS45OTY0NSAtMTcuNTU4MDUsLTcuODkzNDEgLTMyLjg0MzE5LC0xNi4xNDk4OSAtNDQuMTE1OTMsLTIzLjAxNTc2IC01LjYzNjM3LC0zLjQzMjkyIC0xMC4yNzgxLC02LjUyNjIyIC0xMy42MTY0NSwtOC45NzIyMyAtMy4zMzgzNSwtMi40NDYwMyAtNS42MTc1OSwtNC43ODU3MiAtNS4xOTg1NywtNC4yNTIwNyAtMS4yODA5OCwtMS42MzEzNyAtMi4xNTM3NSwtMy4xOTg2MSAtMi44MzUzOSwtNC45NTAxMyBoIDUzLjg0NTc4IGMgMTkuMTA2NzksMCAzMi44MzI1OCw3Ljc0Njc1IDUyLjMyNDQsMTYuNzIwODIgMTkuNDkxODIsOC45NzQwNSA0NC4xNDQwOCwxOC4zNTQwMSA4MS4wNjQzMywxNy42NzM0NyA1Mi44NDgxNywtMC45NzQxNyA4NC41OTQ1OCwtMTEuNDI0OSAxMTQuODI4MywtMjguODQ2NyAxNy40ODAyOSwtMTAuMDcyOCAzMC40NjM0NSwtMTguNTg5OSA0MS43NTQ3MiwtMzEuMDk4NTcgNy4zMTgyNSwtOC41NjAyNCAxMS43NDM5MiwtMTQuNTEyIDE3LjQwNDI4LC0yNC4yNTc3MyAzLjQ2MjExLC02LjA4NzU0IDkuOTc4ODcsLTYuNzc0NCAxOC4wNjA1OCwtNi43MTcxMiAxNS4zOTk1LDAuMTA5MTUgMzUuMTM5NjEsLTE5LjIwMjg4IDQxLjcxNzY4LC0zMC4zMzQwNSA2LjU3ODA5LC0xMS4xMzExOCA5Ljk5NjgsLTIyLjIxODc2IDAuNDA5MzIsLTIyLjI2NjYxIC05LjU4NzQ3LC0wLjA0NzggLTkuMTg0NjksOS42NjY5NiAtMjMuMjI2NywxMC45MDE5NCAtMTMuOTk2MjksMC40NTczOCAtMzEuODQ0ODEsMi4zNjIwNyAtMzkuNTI5MDUsMTcuMjczMTUgLTEuMzcyMTksLTUuNDg4NzQgLTguMTA5OTIsLTIxLjQwNDU4IC0zMC4yNTEwMywtMjcuMDY4NjcgLTIyLjE0MTEyLC01LjY2NDA4IC0xMy41MjU4OSwtMjEuMjg2OTcgLTI3LjMxOTYzLC0xOC4zMjQxNiB6IG0gLTIwNy42MTk3MSw0OS4xNDgwNCBjIDE4LjU1OTM3LC0xLjMxODc3IDM0Ljk4NDMzLDUuNzU0NzYgNTEuNjQyNzYsMTMuMTcwOTEgMTYuMDU0NjIsNy4yODcwMiAzNS4zMDkxNCwxNi43NjQ5MSA1NS4yNzA2NiwyNS43NTQ2NSAxOS45NjE1Miw4Ljk4OTc1IDQwLjYxNywxNy41MDk5NSA1OS45ODQ2OSwyMi45MDkgOS4xNTc3MywyLjU1Mjg2IDE4LjAxNjM0LDQuNDE4NzkgMjYuNTI2NjMsNS4yNDU3OCAtMjYuMzY2MzgsMTQuNDkyOTQgLTUyLjQ5MTYxLDIyLjYxMzU0IC0xMDAuMDQxNTUsMjMuNDkwMDQgLTMzLjMyNjQsMC42MTQzIC01My4zMTY5MywtNy4yMDQwNCAtNzEuODgyNjYsLTE1Ljc1MTc0IC0xOC41NjU3MywtOC41NDc2OSAtMzYuMzE0OTEsLTE4LjY0NjY1IC02MS4xMTgwMiwtMTguNjQ2NjUgaCAtNTUuNzAxODMgYyAwLjEwNjc3LC01LjM4Mjk0IDAuMzE3MTMsLTExLjYxMTI2IDAuNTE1MzUsLTE5LjE0MzU0IDAuMzYxNzUsLTEzLjc0NjU3IDEuNTU4MTMsLTIzLjgxNDc1IDQuMjk1MTgsLTI4LjQ0NDI3IDIuNzM3MDMsLTQuNjI5NTEgNi41NDA4NiwtNy40OTgwOCAyMS42MTk2MSwtNy40OTgwOCAyOC40NzU3NSwwIDUwLjQ2MjMyLC0xLjIyMjUgNjguODg5MTgsLTEuMDg2MSB6IG0gLTI1LjcxMTU1LDIwLjIxMzIgYyAtNS45NjE1NSwtNWUtNCAtMTAuNzk0OCw0LjgzMTgyIC0xMC43OTU0MywxMC43OTMzOSAtNWUtNCw1Ljk2MjM1IDQuODMzMDgsMTAuNzk1OTQgMTAuNzk1NDMsMTAuNzk1NDMgNS45NjE1NywtNi4zZS00IDEwLjc5MzksLTQuODMzODggMTAuNzkzNCwtMTAuNzk1NDMgLTYuM2UtNCwtNS45NjA3NyAtNC44MzI2MywtMTAuNzkyNzYgLTEwLjc5MzQsLTEwLjc5MzM5IHogbSAtNzIuMTcwMDksMTAxLjc0MzYgYyAtMC42NzU3OSwtMC4wMTggLTEuMzU2MDQsMC4wMDIgLTIuMDM2NzIsMC4wNjE3IC00Ljc0NDEsMC40MTcwNCAtOS4yNDU1NDYsMy4wOTcxNiAtMTEuODY1MTI0LDYuNjQ4MDkgLTIuNjE5NTc3LDMuNTUwOTMgLTMuNjU4NzA0LDcuNjgxNzEgLTMuNjU4NzA0LDExLjczNzgzIC00LjgxZS00LDEwNy43OTU1NiA5Mi44MzU5MTgsMTg4Ljc1OTg2IDIwNy40MTQ4NjgsMTg4Ljc2IDExNC41Nzg5NCwtMS40ZS00IDIwNy40MTUzNiwtODAuOTY0NDQgMjA3LjQxNDg3LC0xODguNzYgMCwtNC4wNTYxMiAtMS4wMzkxMiwtOC4xODY5IC0zLjY1ODY5LC0xMS43Mzc4MyAtMi42MTk1OSwtMy41NTA5MyAtNy4xMjEwMywtNi4yMzEwNSAtMTEuODY1MTMsLTYuNjQ4MDkgLTEuMzYxMzYsLTAuMTE5NzMgLTIuNzE4OTQsLTAuMDc2NiAtNC4wNDg4LDAuMTAwNiAtMy41NTc0MywwLjQ3MzYgLTYuODk1MywxLjg3NTc1IC0xMC4wODcxLDMuOTIxNTEgLTMyLjYzMzc3LDIwLjkxNjQ1IC05NS41MDU3OSw3My41NTE4MiAtMTc3Ljc1NTE1LDczLjU1MTgyIC04Mi4yNDkzNSwwIC0xNDUuMTIxMzgsLTUyLjYzNTM3IC0xNzcuNzU1MTMsLTczLjU1MTg2IC0zLjE5MTgsLTIuMDQ1NzYgLTYuNTI5NjgsLTMuNDQ3OSAtMTAuMDg3MSwtMy45MjE1MSAtMC42NjQ5MywtMC4wODg1IC0xLjMzNjI5LC0wLjE0NDIyIC0yLjAxMjA5LC0wLjE2MjIgeiBtIDEuNTY2NTUsMTkuOTk5NjkgYyAwLjEzNzksMC4wODA3IDAuMTAzMTMsMC4wMTk5IDAuMjU0NiwwLjExNzAzIDI5LjQxMjQ4LDE4Ljg1MTgzIDk3LjU0MTU4LDc2LjU2MTc4IDE4OC4wMzMxNyw3Ni41NjE3OCA5MC40OTE1OSwwIDE1OC42MjA3MSwtNTcuNzA5OTUgMTg4LjAzMzE5LC03Ni41NjE3OCAwLjE1MTQ3LC0wLjA5NyAwLjExNjcsLTAuMDM2MiAwLjI1NDU5LC0wLjExNzAzIC0wLjA2ODEsNy4zNTMxMyAtMC4yMDg5OCwxMC40Mjg2MSAtMS4yMDMxNCwxNy40Nzg0MyAtNy4zNTgwNyw5LjkxODUyIC04Ny40MjM3MSw5Ni45NDEyOSAtMTg3LjA4NDY0LDk2Ljk0MTI5IC05OS42NjA5NCwwIC0xNzkuNzI2NTYsLTg3LjAyMjc3IC0xODcuMDg0NjMsLTk2Ljk0MTI5IC0wLjk5NDE2LC03LjA0OTgyIC0xLjEzNTA1LC0xMC4xMjUzIC0xLjIwMzE0LC0xNy40Nzg0MyB6IG0gMTEuNDkxNDYsNTguNjkzMjYgYyAzNC4wNzAzNSwzMS4zMTkxNSAxMDAuNjAwOTksNzcuMDYyNzUgMTc2Ljc5NjMxLDc3LjA2Mjc1IDc2LjE5NTMxLDAgMTQyLjcyNTk4LC00NS43NDM2IDE3Ni43OTYzMywtNzcuMDYyNzUgLTI2LjE5NDM4LDY1LjMwNTMgLTk0LjQ3NTA2LDEwOS40NzE1MSAtMTc2Ljc5NjMzLDEwOS40NzE2NSAtODIuMzIxMjgsLTEuMWUtNCAtMTUwLjYwMTk0LC00NC4xNjYzNSAtMTc2Ljc5NjMxLC0xMDkuNDcxNjUgeiIKICAgICAvPgo8L3N2Zz4K";
529
+ readonly image: "data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIwIDAgNjAwLDYwMCIgd2lkdGg9IjYwMCIgaGVpZ2h0PSI2MDAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHN0eWxlPiBwYXRoe2ZpbGw6YmxhY2s7fUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7cGF0aHtmaWxsOndoaXRlO319PC9zdHlsZT48cGF0aCBkPSJtIDQxNS42NDY5NCwxMzUuMTMwNTggYyAtNC4xMzAyNSwwLjg4NzE2IC00LjcwODgyLDQuOTgzMTUgLTQuMTMwMTUsMTUuODg3OTUgMC42MTU2LDExLjYwMDQgNS4zOTg1MywyOC4xMTAxMiAyNi45NTM2MSw0My42ODAzMiA5LjM3NTc5LDcuMDA3MyAyMC4yODU3NSw1LjE0NTUyIDE2Ljg0Mzk2LDExLjQ4MzM1IC05LjQxNzExLDE0LjQ3OTI1IC0xMy44NDk5NywxNy4wNzIxMyAtMzMuMTMzODMsMjMuMDI3NDMgLTguOTUyNzMsMi43NjQ4MSAtMjQuMDU2NDIsMS41NDQ0IC00MS42MDkwNSwtMy4zNDg2OCAtMTcuNTUyNjIsLTQuODkzMDcgLTM3LjQ2OTcxLC0xMy4wMzI2NCAtNTYuOTk3MzYsLTIxLjgyNjk4IC0xOS41Mjc2LC04Ljc5NDM1IC0zOC42ODEwMiwtMTguMjI1MzIgLTU1LjIxNTIzLC0yNS43MzAwMiAtMTYuNTM0MTYsLTcuNTA0NjggLTI5LjUzNjUsLTEzLjM0MzU4IC00MS4yODQ2MywtMTQuMjk2MDUgLTYuMTE2MjIsLTAuNDk1ODUgLTEyLjM0OTU2LC0wLjcyMjQgLTE4LjgzOTY3LC0wLjc4NDI5IC0xOS40NzAzMiwtMC4xODU2OCAtNDEuMjQ4NjksMS4xMTY5MSAtNjkuMDk2NTQsMS4xMTY5MSAtMTguODcwNjcsMCAtMzIuOTE0NjMsNi4zMTU3OCAtMzkuNzE4MDg4LDE3LjgyMzM1IC02LjgwMzQ1OCwxMS41MDc1NiAtNi44NDI2MTksMjQuNTI3ODkgLTcuMjEyNjk5LDM4LjU5MDkxIC0wLjM2MTUzNCwxMy43MzgyOSAtMS4wMjQyLDIzLjk2MzMgLTAuMzQ0OTI4LDMzLjIxMTY4IDAuNjc5MjczLDkuMjQ4MzYgMy4xOTMyODUsMTguMDQ2NDUgOS4wMDA5ODUsMjUuNDQyNTcgMi42MjE0MywzLjMzODQgNS4zMTAxNyw1LjI5NzAxIDkuMzA4OTYsOC4yMjY5NiAzLjk5ODc5LDIuOTI5OTIgOS4wNjM4OCw2LjI5MDYxIDE1LjEwNSw5Ljk3MDA2IDEyLjA4MjIyLDcuMzU4ODkgMjguMDQwMjMsMTUuOTY3MTYgNDYuNDMxODcsMjQuMjM1MzMgMzYuNzgzMjcsMTYuNTM2MzQgODMuMTY4MjksMzEuODQ0MjggMTI3LjY5OTQ1LDMxLjg0NDI4IDEwMy4xNzAxMywwIDIwMi42MzMxMSwtNzkuODI2MjggMjAyLjYzMzExLC03OS44MjYyOCA0LjU2MTc2LC0zLjU5MTEyIDUuMzQ4NjIsLTEwLjIwMDM1IDEuNzU3NDksLTE0Ljc2MjEyIC0zLjU5MTEyLC00LjU2MTc2IC0xMC4yMDAzNSwtNS4zNDg2MiAtMTQuNzYyMTEsLTEuNzU3NDggMCwwIC05Ny41OTg2Myw3NS4zMjE2NyAtMTg5LjYyODQ5LDc1LjMyMTY3IC0zOS42MTQyNiwwIC04My45NjIxOSwtMTQuMjA5NjEgLTExOS4wNzgzLC0yOS45OTY0NSAtMTcuNTU4MDUsLTcuODkzNDEgLTMyLjg0MzE5LC0xNi4xNDk4OSAtNDQuMTE1OTMsLTIzLjAxNTc2IC01LjYzNjM3LC0zLjQzMjkyIC0xMC4yNzgxLC02LjUyNjIyIC0xMy42MTY0NSwtOC45NzIyMyAtMy4zMzgzNSwtMi40NDYwMyAtNS42MTc1OSwtNC43ODU3MiAtNS4xOTg1NywtNC4yNTIwNyAtMS4yODA5OCwtMS42MzEzNyAtMi4xNTM3NSwtMy4xOTg2MSAtMi44MzUzOSwtNC45NTAxMyBoIDUzLjg0NTc4IGMgMTkuMTA2NzksMCAzMi44MzI1OCw3Ljc0Njc1IDUyLjMyNDQsMTYuNzIwODIgMTkuNDkxODIsOC45NzQwNSA0NC4xNDQwOCwxOC4zNTQwMSA4MS4wNjQzMywxNy42NzM0NyA1Mi44NDgxNywtMC45NzQxNyA4NC41OTQ1OCwtMTEuNDI0OSAxMTQuODI4MywtMjguODQ2NyAxNy40ODAyOSwtMTAuMDcyOCAzMC40NjM0NSwtMTguNTg5OSA0MS43NTQ3MiwtMzEuMDk4NTcgNy4zMTgyNSwtOC41NjAyNCAxMS43NDM5MiwtMTQuNTEyIDE3LjQwNDI4LC0yNC4yNTc3MyAzLjQ2MjExLC02LjA4NzU0IDkuOTc4ODcsLTYuNzc0NCAxOC4wNjA1OCwtNi43MTcxMiAxNS4zOTk1LDAuMTA5MTUgMzUuMTM5NjEsLTE5LjIwMjg4IDQxLjcxNzY4LC0zMC4zMzQwNSA2LjU3ODA5LC0xMS4xMzExOCA5Ljk5NjgsLTIyLjIxODc2IDAuNDA5MzIsLTIyLjI2NjYxIC05LjU4NzQ3LC0wLjA0NzggLTkuMTg0NjksOS42NjY5NiAtMjMuMjI2NywxMC45MDE5NCAtMTMuOTk2MjksMC40NTczOCAtMzEuODQ0ODEsMi4zNjIwNyAtMzkuNTI5MDUsMTcuMjczMTUgLTEuMzcyMTksLTUuNDg4NzQgLTguMTA5OTIsLTIxLjQwNDU4IC0zMC4yNTEwMywtMjcuMDY4NjcgLTIyLjE0MTEyLC01LjY2NDA4IC0xMy41MjU4OSwtMjEuMjg2OTcgLTI3LjMxOTYzLC0xOC4zMjQxNiB6IG0gLTIwNy42MTk3MSw0OS4xNDgwNCBjIDE4LjU1OTM3LC0xLjMxODc3IDM0Ljk4NDMzLDUuNzU0NzYgNTEuNjQyNzYsMTMuMTcwOTEgMTYuMDU0NjIsNy4yODcwMiAzNS4zMDkxNCwxNi43NjQ5MSA1NS4yNzA2NiwyNS43NTQ2NSAxOS45NjE1Miw4Ljk4OTc1IDQwLjYxNywxNy41MDk5NSA1OS45ODQ2OSwyMi45MDkgOS4xNTc3MywyLjU1Mjg2IDE4LjAxNjM0LDQuNDE4NzkgMjYuNTI2NjMsNS4yNDU3OCAtMjYuMzY2MzgsMTQuNDkyOTQgLTUyLjQ5MTYxLDIyLjYxMzU0IC0xMDAuMDQxNTUsMjMuNDkwMDQgLTMzLjMyNjQsMC42MTQzIC01My4zMTY5MywtNy4yMDQwNCAtNzEuODgyNjYsLTE1Ljc1MTc0IC0xOC41NjU3MywtOC41NDc2OSAtMzYuMzE0OTEsLTE4LjY0NjY1IC02MS4xMTgwMiwtMTguNjQ2NjUgaCAtNTUuNzAxODMgYyAwLjEwNjc3LC01LjM4Mjk0IDAuMzE3MTMsLTExLjYxMTI2IDAuNTE1MzUsLTE5LjE0MzU0IDAuMzYxNzUsLTEzLjc0NjU3IDEuNTU4MTMsLTIzLjgxNDc1IDQuMjk1MTgsLTI4LjQ0NDI3IDIuNzM3MDMsLTQuNjI5NTEgNi41NDA4NiwtNy40OTgwOCAyMS42MTk2MSwtNy40OTgwOCAyOC40NzU3NSwwIDUwLjQ2MjMyLC0xLjIyMjUgNjguODg5MTgsLTEuMDg2MSB6IG0gLTI1LjcxMTU1LDIwLjIxMzIgYyAtNS45NjE1NSwtNWUtNCAtMTAuNzk0OCw0LjgzMTgyIC0xMC43OTU0MywxMC43OTMzOSAtNWUtNCw1Ljk2MjM1IDQuODMzMDgsMTAuNzk1OTQgMTAuNzk1NDMsMTAuNzk1NDMgNS45NjE1NywtNi4zZS00IDEwLjc5MzksLTQuODMzODggMTAuNzkzNCwtMTAuNzk1NDMgLTYuM2UtNCwtNS45NjA3NyAtNC44MzI2MywtMTAuNzkyNzYgLTEwLjc5MzQsLTEwLjc5MzM5IHogbSAtNzIuMTcwMDksMTAxLjc0MzYgYyAtMC42NzU3OSwtMC4wMTggLTEuMzU2MDQsMC4wMDIgLTIuMDM2NzIsMC4wNjE3IC00Ljc0NDEsMC40MTcwNCAtOS4yNDU1NDYsMy4wOTcxNiAtMTEuODY1MTI0LDYuNjQ4MDkgLTIuNjE5NTc3LDMuNTUwOTMgLTMuNjU4NzA0LDcuNjgxNzEgLTMuNjU4NzA0LDExLjczNzgzIC00LjgxZS00LDEwNy43OTU1NiA5Mi44MzU5MTgsMTg4Ljc1OTg2IDIwNy40MTQ4NjgsMTg4Ljc2IDExNC41Nzg5NCwtMS40ZS00IDIwNy40MTUzNiwtODAuOTY0NDQgMjA3LjQxNDg3LC0xODguNzYgMCwtNC4wNTYxMiAtMS4wMzkxMiwtOC4xODY5IC0zLjY1ODY5LC0xMS43Mzc4MyAtMi42MTk1OSwtMy41NTA5MyAtNy4xMjEwMywtNi4yMzEwNSAtMTEuODY1MTMsLTYuNjQ4MDkgLTEuMzYxMzYsLTAuMTE5NzMgLTIuNzE4OTQsLTAuMDc2NiAtNC4wNDg4LDAuMTAwNiAtMy41NTc0MywwLjQ3MzYgLTYuODk1MywxLjg3NTc1IC0xMC4wODcxLDMuOTIxNTEgLTMyLjYzMzc3LDIwLjkxNjQ1IC05NS41MDU3OSw3My41NTE4MiAtMTc3Ljc1NTE1LDczLjU1MTgyIC04Mi4yNDkzNSwwIC0xNDUuMTIxMzgsLTUyLjYzNTM3IC0xNzcuNzU1MTMsLTczLjU1MTg2IC0zLjE5MTgsLTIuMDQ1NzYgLTYuNTI5NjgsLTMuNDQ3OSAtMTAuMDg3MSwtMy45MjE1MSAtMC42NjQ5MywtMC4wODg1IC0xLjMzNjI5LC0wLjE0NDIyIC0yLjAxMjA5LC0wLjE2MjIgeiBtIDEuNTY2NTUsMTkuOTk5NjkgYyAwLjEzNzksMC4wODA3IDAuMTAzMTMsMC4wMTk5IDAuMjU0NiwwLjExNzAzIDI5LjQxMjQ4LDE4Ljg1MTgzIDk3LjU0MTU4LDc2LjU2MTc4IDE4OC4wMzMxNyw3Ni41NjE3OCA5MC40OTE1OSwwIDE1OC42MjA3MSwtNTcuNzA5OTUgMTg4LjAzMzE5LC03Ni41NjE3OCAwLjE1MTQ3LC0wLjA5NyAwLjExNjcsLTAuMDM2MiAwLjI1NDU5LC0wLjExNzAzIC0wLjA2ODEsNy4zNTMxMyAtMC4yMDg5OCwxMC40Mjg2MSAtMS4yMDMxNCwxNy40Nzg0MyAtNy4zNTgwNyw5LjkxODUyIC04Ny40MjM3MSw5Ni45NDEyOSAtMTg3LjA4NDY0LDk2Ljk0MTI5IC05OS42NjA5NCwwIC0xNzkuNzI2NTYsLTg3LjAyMjc3IC0xODcuMDg0NjMsLTk2Ljk0MTI5IC0wLjk5NDE2LC03LjA0OTgyIC0xLjEzNTA1LC0xMC4xMjUzIC0xLjIwMzE0LC0xNy40Nzg0MyB6IG0gMTEuNDkxNDYsNTguNjkzMjYgYyAzNC4wNzAzNSwzMS4zMTkxNSAxMDAuNjAwOTksNzcuMDYyNzUgMTc2Ljc5NjMxLDc3LjA2Mjc1IDc2LjE5NTMxLDAgMTQyLjcyNTk4LC00NS43NDM2IDE3Ni43OTYzMywtNzcuMDYyNzUgLTI2LjE5NDM4LDY1LjMwNTMgLTk0LjQ3NTA2LDEwOS40NzE1MSAtMTc2Ljc5NjMzLDEwOS40NzE2NSAtODIuMzIxMjgsLTEuMWUtNCAtMTUwLjYwMTk0LC00NC4xNjYzNSAtMTc2Ljc5NjMxLC0xMDkuNDcxNjUgeiIgLz48L3N2Zz4=";
498
530
  readonly url: "https://dokploy.com";
499
531
  readonly tagline: "Open source alternative to Heroku, Vercel, and Netlify. Self-host on any VPS";
500
532
  readonly repo: "Dokploy/dokploy";
@@ -566,8 +598,8 @@ declare const features: readonly [{
566
598
  readonly href: "https://storybook.js.org/docs";
567
599
  }];
568
600
  }];
569
- declare const flags: ("vike" | "react" | "vue" | "solid" | "tailwindcss" | "compiled-css" | "daisyui" | "shadcn-ui" | "mantine" | "authjs" | "auth0" | "telefunc" | "trpc" | "ts-rest" | "hono" | "h3" | "express" | "fastify" | "drizzle" | "sqlite" | "kysely" | "prisma" | "plausible.io" | "google-analytics" | "segment" | "hosting-diy" | "cloudflare" | "edgeone" | "vercel" | "netlify" | "aws" | "docker" | "dokploy" | "eslint" | "prettier" | "biome" | "oxlint" | "sentry" | "logrocket" | "storybook")[];
570
- declare const cliFlags: ("vike" | "react" | "vue" | "solid" | "tailwindcss" | "compiled-css" | "daisyui" | "shadcn-ui" | "mantine" | "authjs" | "auth0" | "telefunc" | "trpc" | "ts-rest" | "hono" | "h3" | "express" | "fastify" | "drizzle" | "sqlite" | "kysely" | "prisma" | "plausible.io" | "google-analytics" | "segment" | "hosting-diy" | "cloudflare" | "edgeone" | "vercel" | "netlify" | "aws" | "docker" | "dokploy" | "eslint" | "prettier" | "biome" | "oxlint" | "sentry" | "logrocket" | "storybook")[];
601
+ declare const flags: ("vike" | "react" | "vue" | "solid" | "tailwindcss" | "compiled-css" | "daisyui" | "shadcn-ui" | "mantine" | "authjs" | "auth0" | "telefunc" | "trpc" | "ts-rest" | "hono" | "h3" | "express" | "fastify" | "sqlite" | "postgres" | "drizzle" | "kysely" | "prisma" | "plausible.io" | "google-analytics" | "segment" | "hosting-diy" | "cloudflare" | "edgeone" | "vercel" | "netlify" | "aws" | "docker" | "dokploy" | "eslint" | "prettier" | "biome" | "oxlint" | "sentry" | "logrocket" | "storybook")[];
602
+ declare const cliFlags: ("vike" | "react" | "vue" | "solid" | "tailwindcss" | "compiled-css" | "daisyui" | "shadcn-ui" | "mantine" | "authjs" | "auth0" | "telefunc" | "trpc" | "ts-rest" | "hono" | "h3" | "express" | "fastify" | "sqlite" | "postgres" | "drizzle" | "kysely" | "prisma" | "plausible.io" | "google-analytics" | "segment" | "hosting-diy" | "cloudflare" | "edgeone" | "vercel" | "netlify" | "aws" | "docker" | "dokploy" | "eslint" | "prettier" | "biome" | "oxlint" | "sentry" | "logrocket" | "storybook")[];
571
603
  type Flags = (typeof flags)[number];
572
604
  //#endregion
573
605
  export { CategoryLabels as a, flags as i, cliFlags as n, categories as o, features as r, categoriesGroups as s, Flags as t };
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as CategoryLabels, i as flags, n as cliFlags, o as categories, r as features, s as categoriesGroups, t as Flags } from "./features-BMalRLbR.js";
1
+ import { a as CategoryLabels, i as flags, n as cliFlags, o as categories, r as features, s as categoriesGroups, t as Flags } from "./features-kVuiYhmO.js";
2
2
 
3
3
  //#region src/types.d.ts
4
4
  interface Feature<C = string> {
@@ -41,7 +41,13 @@ declare class BatiSet extends Set<Flags> {
41
41
  constructor(flags: Flags[], allFeatures: ReadonlyArray<Feature>, pm: string);
42
42
  private hasOneOf;
43
43
  get hasServer(): boolean;
44
+ /** A database engine is selected (SQLite or PostgreSQL). */
44
45
  get hasDatabase(): boolean;
46
+ /** An ORM or query builder is selected (Drizzle, Kysely or Prisma). */
47
+ get hasOrm(): boolean;
48
+ /** A database engine whose client and todo demo Bati scaffolds. Prisma is self-managed
49
+ * (it brings its own client and `DATABASE_URL`), so it opts out of the shared demo. */
50
+ get hasDbDemo(): boolean;
45
51
  get hasD1(): boolean;
46
52
  get hasDotEnvSecrets(): boolean;
47
53
  get hasUD(): boolean;
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as features, r as flags, t as cliFlags } from "./features-DhgD3gpO.js";
1
+ import { n as features, r as flags, t as cliFlags } from "./features-EM40cAeb.js";
2
2
  //#region src/groups.ts
3
3
  let categoriesGroups = /* @__PURE__ */ function(categoriesGroups) {
4
4
  categoriesGroups["Frontend"] = "Frontend";
@@ -57,12 +57,19 @@ it's recommended to only install a Server if you really need to, as Vike doesn't
57
57
  {
58
58
  label: "Database",
59
59
  group: "Data",
60
- description: `Helping you get started with a database solution.`
60
+ description: `The database your app talks to. SQLite runs embedded (and powers Cloudflare D1);
61
+ PostgreSQL targets a Postgres server. Selected on its own you get a thin client; pair it with an ORM or query builder below.`
62
+ },
63
+ {
64
+ label: "ORM / Query builder",
65
+ group: "Data",
66
+ description: `Type-safe data access on top of your database. Requires choosing a Database above.`
61
67
  },
62
68
  {
63
69
  label: "Hosting",
64
70
  group: "Deployment",
65
- description: `Quickly host your Vike project with a Serverless or VPS (coming soon) solution.`
71
+ description: `Quickly host your Vike project with a Serverless or VPS (coming soon) solution.`,
72
+ required: true
66
73
  },
67
74
  {
68
75
  label: "Linter",
@@ -95,12 +102,14 @@ tailored for Vike.`
95
102
  var BatiSet = class extends Set {
96
103
  #servers;
97
104
  #databases;
105
+ #orm;
98
106
  pm;
99
107
  constructor(flags, allFeatures, pm) {
100
108
  super(flags);
101
109
  this.pm = pm;
102
110
  this.#servers = new Set(allFeatures.filter((f) => f.category === "Server").map((f) => f.flag));
103
111
  this.#databases = new Set(allFeatures.filter((f) => f.category === "Database").map((f) => f.flag));
112
+ this.#orm = new Set(allFeatures.filter((f) => f.category === "ORM / Query builder").map((f) => f.flag));
104
113
  }
105
114
  hasOneOf(a) {
106
115
  for (const x of this) if (a.has(x)) return true;
@@ -109,11 +118,21 @@ var BatiSet = class extends Set {
109
118
  get hasServer() {
110
119
  return this.hasOneOf(this.#servers);
111
120
  }
121
+ /** A database engine is selected (SQLite or PostgreSQL). */
112
122
  get hasDatabase() {
113
- return this.has("sqlite") || this.has("drizzle") || this.has("kysely");
123
+ return this.hasOneOf(this.#databases);
124
+ }
125
+ /** An ORM or query builder is selected (Drizzle, Kysely or Prisma). */
126
+ get hasOrm() {
127
+ return this.hasOneOf(this.#orm);
128
+ }
129
+ /** A database engine whose client and todo demo Bati scaffolds. Prisma is self-managed
130
+ * (it brings its own client and `DATABASE_URL`), so it opts out of the shared demo. */
131
+ get hasDbDemo() {
132
+ return this.hasDatabase && !this.has("prisma");
114
133
  }
115
134
  get hasD1() {
116
- return this.has("cloudflare") && (this.has("sqlite") || this.has("drizzle") || this.has("kysely"));
135
+ return this.has("cloudflare") && this.has("sqlite");
117
136
  }
118
137
  get hasDotEnvSecrets() {
119
138
  return !this.has("cloudflare");
package/dist/rules.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as CategoryLabels, t as Flags } from "./features-BMalRLbR.js";
1
+ import { a as CategoryLabels, t as Flags } from "./features-kVuiYhmO.js";
2
2
 
3
3
  //#region src/rules/enum.d.ts
4
4
  declare enum RulesMessage {
@@ -7,14 +7,17 @@ declare enum RulesMessage {
7
7
  ERROR_DRIZZLE_R_SERVER = 2,
8
8
  ERROR_KYSELY_R_SERVER = 3,
9
9
  ERROR_SQLITE_R_SERVER = 4,
10
- ERROR_DATA_R_SERVER = 5,
11
- ERROR_CLOUDFLARE_R_COMPAT_SERVER = 6,
12
- ERROR_AWS_R_COMPAT_SERVER = 7,
13
- ERROR_MANTINE_R_REACT = 8,
14
- ERROR_SHADCN_R_REACT = 9,
15
- WARN_SHADCN_R_TAILWINDCSS = 10,
16
- INFO_STACKBLITZ_COMPAT = 11,
17
- ERROR_STORYBOOK_R_UI_FRAMEWORK = 12
10
+ ERROR_POSTGRES_R_SERVER = 5,
11
+ ERROR_POSTGRES_X_SQLITE = 6,
12
+ ERROR_ORM_R_DATABASE = 7,
13
+ ERROR_DATA_R_SERVER = 8,
14
+ ERROR_CLOUDFLARE_R_COMPAT_SERVER = 9,
15
+ ERROR_AWS_R_COMPAT_SERVER = 10,
16
+ ERROR_MANTINE_R_REACT = 11,
17
+ ERROR_SHADCN_R_REACT = 12,
18
+ WARN_SHADCN_R_TAILWINDCSS = 13,
19
+ INFO_STACKBLITZ_COMPAT = 14,
20
+ ERROR_STORYBOOK_R_UI_FRAMEWORK = 15
18
21
  }
19
22
  //#endregion
20
23
  //#region src/rules/utils.d.ts
package/dist/rules.js CHANGED
@@ -1,4 +1,4 @@
1
- import { n as features, r as flags } from "./features-DhgD3gpO.js";
1
+ import { n as features, r as flags } from "./features-EM40cAeb.js";
2
2
  //#region src/rules/enum.ts
3
3
  let RulesMessage = /* @__PURE__ */ function(RulesMessage) {
4
4
  RulesMessage[RulesMessage["ERROR_AUTH_R_SERVER"] = 0] = "ERROR_AUTH_R_SERVER";
@@ -6,19 +6,28 @@ let RulesMessage = /* @__PURE__ */ function(RulesMessage) {
6
6
  RulesMessage[RulesMessage["ERROR_DRIZZLE_R_SERVER"] = 2] = "ERROR_DRIZZLE_R_SERVER";
7
7
  RulesMessage[RulesMessage["ERROR_KYSELY_R_SERVER"] = 3] = "ERROR_KYSELY_R_SERVER";
8
8
  RulesMessage[RulesMessage["ERROR_SQLITE_R_SERVER"] = 4] = "ERROR_SQLITE_R_SERVER";
9
- RulesMessage[RulesMessage["ERROR_DATA_R_SERVER"] = 5] = "ERROR_DATA_R_SERVER";
10
- RulesMessage[RulesMessage["ERROR_CLOUDFLARE_R_COMPAT_SERVER"] = 6] = "ERROR_CLOUDFLARE_R_COMPAT_SERVER";
11
- RulesMessage[RulesMessage["ERROR_AWS_R_COMPAT_SERVER"] = 7] = "ERROR_AWS_R_COMPAT_SERVER";
12
- RulesMessage[RulesMessage["ERROR_MANTINE_R_REACT"] = 8] = "ERROR_MANTINE_R_REACT";
13
- RulesMessage[RulesMessage["ERROR_SHADCN_R_REACT"] = 9] = "ERROR_SHADCN_R_REACT";
14
- RulesMessage[RulesMessage["WARN_SHADCN_R_TAILWINDCSS"] = 10] = "WARN_SHADCN_R_TAILWINDCSS";
15
- RulesMessage[RulesMessage["INFO_STACKBLITZ_COMPAT"] = 11] = "INFO_STACKBLITZ_COMPAT";
16
- RulesMessage[RulesMessage["ERROR_STORYBOOK_R_UI_FRAMEWORK"] = 12] = "ERROR_STORYBOOK_R_UI_FRAMEWORK";
9
+ RulesMessage[RulesMessage["ERROR_POSTGRES_R_SERVER"] = 5] = "ERROR_POSTGRES_R_SERVER";
10
+ RulesMessage[RulesMessage["ERROR_POSTGRES_X_SQLITE"] = 6] = "ERROR_POSTGRES_X_SQLITE";
11
+ RulesMessage[RulesMessage["ERROR_ORM_R_DATABASE"] = 7] = "ERROR_ORM_R_DATABASE";
12
+ RulesMessage[RulesMessage["ERROR_DATA_R_SERVER"] = 8] = "ERROR_DATA_R_SERVER";
13
+ RulesMessage[RulesMessage["ERROR_CLOUDFLARE_R_COMPAT_SERVER"] = 9] = "ERROR_CLOUDFLARE_R_COMPAT_SERVER";
14
+ RulesMessage[RulesMessage["ERROR_AWS_R_COMPAT_SERVER"] = 10] = "ERROR_AWS_R_COMPAT_SERVER";
15
+ RulesMessage[RulesMessage["ERROR_MANTINE_R_REACT"] = 11] = "ERROR_MANTINE_R_REACT";
16
+ RulesMessage[RulesMessage["ERROR_SHADCN_R_REACT"] = 12] = "ERROR_SHADCN_R_REACT";
17
+ RulesMessage[RulesMessage["WARN_SHADCN_R_TAILWINDCSS"] = 13] = "WARN_SHADCN_R_TAILWINDCSS";
18
+ RulesMessage[RulesMessage["INFO_STACKBLITZ_COMPAT"] = 14] = "INFO_STACKBLITZ_COMPAT";
19
+ RulesMessage[RulesMessage["ERROR_STORYBOOK_R_UI_FRAMEWORK"] = 15] = "ERROR_STORYBOOK_R_UI_FRAMEWORK";
17
20
  return RulesMessage;
18
21
  }({});
19
22
  //#endregion
20
23
  //#region src/rules/utils.ts
21
24
  /**
25
+ * Returns a message if all given rules are not exclusive
26
+ */
27
+ function exclusive(message, rules) {
28
+ return (fts) => rules.every((r) => fts.has(r)) && message;
29
+ }
30
+ /**
22
31
  * Returns a message if ifPresent is present but any mustAlsoInclude is not
23
32
  */
24
33
  function requires(message, ifPresent, mustAlsoInclude) {
@@ -51,37 +60,42 @@ var rules_default = [
51
60
  requires(2, "drizzle", ["Server"]),
52
61
  requires(4, "sqlite", ["Server"]),
53
62
  requires(3, "kysely", ["Server"]),
54
- requires(5, "Data fetching", ["Server"]),
55
- filter(6, (fts) => {
63
+ requires(5, "postgres", ["Server"]),
64
+ exclusive(6, ["postgres", "sqlite"]),
65
+ requires(7, "drizzle", ["Database"]),
66
+ requires(7, "kysely", ["Database"]),
67
+ requires(7, "prisma", ["Database"]),
68
+ requires(8, "Data fetching", ["Server"]),
69
+ filter(9, (fts) => {
56
70
  if (fts.has("cloudflare")) {
57
71
  if (fts.has("hono") || fts.has("h3")) return false;
58
72
  return fts.has("Server");
59
73
  }
60
74
  return false;
61
75
  }),
62
- filter(7, (fts) => {
76
+ filter(10, (fts) => {
63
77
  if (fts.has("aws")) {
64
78
  if (fts.has("hono")) return false;
65
79
  return true;
66
80
  }
67
81
  return false;
68
82
  }),
69
- filter(8, (fts) => {
83
+ filter(11, (fts) => {
70
84
  if (fts.has("mantine")) return fts.has("vue") || fts.has("solid");
71
85
  return false;
72
86
  }),
73
- filter(9, (fts) => {
87
+ filter(12, (fts) => {
74
88
  if (fts.has("shadcn-ui")) return fts.has("vue") || fts.has("solid");
75
89
  return false;
76
90
  }),
77
- filter(10, (fts) => {
91
+ filter(13, (fts) => {
78
92
  if (fts.has("shadcn-ui")) return fts.has("daisyui") || fts.has("compiled-css");
79
93
  return false;
80
94
  }),
81
- filter(11, (fts) => {
82
- return fts.has("drizzle") || fts.has("sqlite") || fts.has("kysely") || fts.has("cloudflare");
95
+ filter(14, (fts) => {
96
+ return fts.has("drizzle") || fts.has("sqlite") || fts.has("kysely") || fts.has("postgres") || fts.has("cloudflare");
83
97
  }),
84
- filter(12, (fts) => {
98
+ filter(15, (fts) => {
85
99
  if (fts.has("storybook")) return !fts.has("react") && !fts.has("vue") && !fts.has("solid");
86
100
  return false;
87
101
  })
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@batijs/features",
3
- "version": "0.0.633",
3
+ "version": "0.0.635",
4
4
  "description": "",
5
5
  "type": "module",
6
6
  "scripts": {