@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,
|
|
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,
|
|
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,
|
|
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: "
|
|
360
|
+
category: "ORM / Query builder",
|
|
333
361
|
label: "Prisma",
|
|
334
362
|
flag: "prisma",
|
|
335
|
-
image: "data:image/svg+xml;base64,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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: "
|
|
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,
|
|
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,
|
|
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,
|
|
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: "
|
|
401
|
+
readonly category: "ORM / Query builder";
|
|
370
402
|
readonly label: "Prisma";
|
|
371
403
|
readonly flag: "prisma";
|
|
372
|
-
readonly image: "data:image/svg+xml;base64,
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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" | "
|
|
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" | "
|
|
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-
|
|
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-
|
|
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: `
|
|
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.
|
|
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") &&
|
|
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-
|
|
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
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
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-
|
|
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["
|
|
10
|
-
RulesMessage[RulesMessage["
|
|
11
|
-
RulesMessage[RulesMessage["
|
|
12
|
-
RulesMessage[RulesMessage["
|
|
13
|
-
RulesMessage[RulesMessage["
|
|
14
|
-
RulesMessage[RulesMessage["
|
|
15
|
-
RulesMessage[RulesMessage["
|
|
16
|
-
RulesMessage[RulesMessage["
|
|
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, "
|
|
55
|
-
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
})
|