@batijs/features 0.0.632 → 0.0.634
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.
- package/dist/{features-BpE9LMuZ.d.ts → features-0vnv7iCL.d.ts} +57 -18
- package/dist/{features-B53JK9Cw.js → features-uGphBBds.js} +54 -17
- package/dist/index.d.ts +9 -2
- package/dist/index.js +25 -6
- package/dist/rules.d.ts +12 -9
- package/dist/rules.js +32 -18
- package/package.json +10 -9
- package/LICENSE.md +0 -9
|
@@ -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;
|
|
@@ -81,6 +86,7 @@ declare const features: readonly [{
|
|
|
81
86
|
readonly label: "FAQ";
|
|
82
87
|
readonly href: "https://vike.dev/faq";
|
|
83
88
|
}];
|
|
89
|
+
readonly tooltip: "Vike cannot be disabled. It is the foundation that allows all others tools to work cohesively";
|
|
84
90
|
readonly invisibleCli: true;
|
|
85
91
|
readonly readonly: true;
|
|
86
92
|
}, {
|
|
@@ -325,18 +331,6 @@ declare const features: readonly [{
|
|
|
325
331
|
readonly label: "API";
|
|
326
332
|
readonly href: "https://fastify.dev/docs/latest/Reference/";
|
|
327
333
|
}];
|
|
328
|
-
}, {
|
|
329
|
-
readonly category: "Database";
|
|
330
|
-
readonly label: "Drizzle";
|
|
331
|
-
readonly flag: "drizzle";
|
|
332
|
-
readonly image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjI4MHB4IiBoZWlnaHQ9IjI4MHB4IiBzdHlsZT0ic2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgdGV4dC1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uOyBpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5OyBmaWxsLXJ1bGU6ZXZlbm9kZDsgY2xpcC1ydWxlOmV2ZW5vZGQiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iIzAwMDAwMCIgZD0iTSAtMC41LC0wLjUgQyA5Mi44MzMzLC0wLjUgMTg2LjE2NywtMC41IDI3OS41LC0wLjVDIDI3OS41LDkyLjgzMzMgMjc5LjUsMTg2LjE2NyAyNzkuNSwyNzkuNUMgMTg2LjE2NywyNzkuNSA5Mi44MzMzLDI3OS41IC0wLjUsMjc5LjVDIC0wLjUsMTg2LjE2NyAtMC41LDkyLjgzMzMgLTAuNSwtMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTMzLjUsODQuNSBDIDE0Mi44MTQsODIuNzI2OSAxNDYuNjQ3LDg2LjM5MzUgMTQ1LDk1LjVDIDEzNS45MDYsMTEyLjAyOCAxMjYuNTcyLDEyOC4zNjIgMTE3LDE0NC41QyAxMTEuMjQ5LDE0OS45ODQgMTA2LjI0OSwxNDkuMzE3IDEwMiwxNDIuNUMgMTAxLjMzMywxNDAuODMzIDEwMS4zMzMsMTM5LjE2NyAxMDIsMTM3LjVDIDExMS41NDcsMTE5LjA0MSAxMjIuMDQ3LDEwMS4zNzUgMTMzLjUsODQuNSBaIi8+PC9nPgo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eToxIiBmaWxsPSIjYzBmMTRkIiBkPSJNIDIyMy41LDg0LjUgQyAyMzMuNTM5LDgzLjY5NzIgMjM3LjAzOSw4OC4wMzA1IDIzNCw5Ny41QyAyMjUuMzQ3LDExMi44MDEgMjE2LjY4MSwxMjguMTM1IDIwOCwxNDMuNUMgMjAzLjM4NywxNDkuNzM3IDE5OC4zODcsMTUwLjA3MSAxOTMsMTQ0LjVDIDE5MS41NzgsMTQxLjk3IDE5MS4yNDUsMTM5LjMwMyAxOTIsMTM2LjVDIDIwMC41MiwxMjIuNzk0IDIwOC41MiwxMDguNzk0IDIxNiw5NC41QyAyMTguMjg5LDkwLjg4MTIgMjIwLjc4OSw4Ny41NDc5IDIyMy41LDg0LjUgWiIvPjwvZz4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iI2MwZjE0ZCIgZD0iTSA3NS41LDEyMC41IEMgODMuOTg4NSwxMTkuNjE4IDg3LjgyMTgsMTIzLjI4NSA4NywxMzEuNUMgNzcuOTA1NywxNDguMDI4IDY4LjU3MjQsMTY0LjM2MiA1OSwxODAuNUMgNTYuMDQ1MywxODQuMjc3IDUyLjIxMiwxODUuNDQzIDQ3LjUsMTg0QyA0My44Njk3LDE4MC45NSA0Mi43MDMsMTc3LjExNyA0NCwxNzIuNUMgNTMsMTU2LjUgNjIsMTQwLjUgNzEsMTI0LjVDIDcyLjM5NjgsMTIyLjkzIDczLjg5NjgsMTIxLjU5NiA3NS41LDEyMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTY1LjUsMTIwLjUgQyAxNzQuMTY0LDExOS4zMzIgMTc3Ljk5NywxMjIuOTk5IDE3NywxMzEuNUMgMTY3LjQxNCwxNDcuNjcxIDE1OC4wOCwxNjQuMDA0IDE0OSwxODAuNUMgMTQ2LjM5OCwxODQuMjEyIDE0Mi44OTgsMTg1LjM3OCAxMzguNSwxODRDIDEzMy45MzEsMTgxLjQ1OSAxMzIuNDMxLDE3Ny42MjUgMTM0LDE3Mi41QyAxNDMuNTcyLDE1Ni4zNjIgMTUyLjkwNiwxNDAuMDI4IDE2MiwxMjMuNUMgMTYzLjE0NSwxMjIuMzY0IDE2NC4zMTIsMTIxLjM2NCAxNjUuNSwxMjAuNSBaIi8+PC9nPgo8L3N2Zz4K";
|
|
333
|
-
readonly url: "https://orm.drizzle.team/";
|
|
334
|
-
readonly tagline: "Headless TypeScript ORM that feels like SPA with SSR";
|
|
335
|
-
readonly repo: "drizzle-team/drizzle-orm";
|
|
336
|
-
readonly links: [{
|
|
337
|
-
readonly label: "Docs & Getting started";
|
|
338
|
-
readonly href: "https://orm.drizzle.team/docs/overview";
|
|
339
|
-
}];
|
|
340
334
|
}, {
|
|
341
335
|
readonly category: "Database";
|
|
342
336
|
readonly label: "SQLite";
|
|
@@ -354,6 +348,33 @@ declare const features: readonly [{
|
|
|
354
348
|
}];
|
|
355
349
|
}, {
|
|
356
350
|
readonly category: "Database";
|
|
351
|
+
readonly label: "PostgreSQL";
|
|
352
|
+
readonly flag: "postgres";
|
|
353
|
+
readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cGF0aCBkPSJNOTMuODA5IDkyLjExMmMuNzg1LTYuNTMzLjU1LTcuNDkyIDUuNDE2LTYuNDMzbDEuMjM1LjEwOGMzLjc0Mi4xNyA4LjYzNy0uNjAyIDExLjUxMy0xLjkzOCA2LjE5MS0yLjg3MyA5Ljg2MS03LjY2OCAzLjc1OC02LjQwOS0xMy45MjQgMi44NzMtMTQuODgxLTEuODQyLTE0Ljg4MS0xLjg0MiAxNC43MDMtMjEuODE1IDIwLjg0OS00OS41MDggMTUuNTQzLTU2LjI4Ny0xNC40Ny0xOC40ODktMzkuNTE3LTkuNzQ2LTM5LjkzNi05LjUybC0uMTM0LjAyNWMtMi43NTEtLjU3MS01LjgzLS45MTItOS4yODktLjk2OC02LjMwMS0uMTA0LTExLjA4MiAxLjY1Mi0xNC43MDkgNC40MDIgMCAwLTQ0LjY4My0xOC40MDktNDIuNjA0IDIzLjE1MS40NDIgOC44NDEgMTIuNjcyIDY2Ljg5OCAyNy4yNiA0OS4zNjIgNS4zMzItNi40MTIgMTAuNDg0LTExLjgzNCAxMC40ODQtMTEuODM0IDIuNTU4IDEuNjk5IDUuNjIyIDIuNTY3IDguODM0IDIuMjU1bC4yNDktLjIxMmMtLjA3OC43OTYtLjA0NCAxLjU3NS4wOTkgMi40OTctMy43NTcgNC4xOTktMi42NTMgNC45MzYtMTAuMTY2IDYuNDgyLTcuNjAyIDEuNTY2LTMuMTM2IDQuMzU1LS4yMjEgNS4wODQgMy41MzUuODg0IDExLjcxMiAyLjEzNiAxNy4yMzgtNS41OThsLS4yMi44ODJjMS40NzQgMS4xOCAxLjM3NSA4LjQ3NyAxLjU4MyAxMy42OS4yMDkgNS4yMTQuNTU4IDEwLjA3OSAxLjYyMSAxMi45NDggMS4wNjMgMi44NjggMi4zMTcgMTAuMjU2IDEyLjE5MSA4LjE0IDguMjUyLTEuNzY0IDE0LjU2MS00LjMwOSAxNS4xMzYtMjcuOTg1Ij48L3BhdGg+PHBhdGggZD0iTTc1LjQ1OCAxMjUuMjU2Yy00LjM2NyAwLTcuMjExLTEuNjg5LTguOTM4LTMuMzItMi42MDctMi40Ni0zLjY0MS01LjYyOS00LjI1OS03LjUyMmwtLjI2Ny0uNzljLTEuMjQ0LTMuMzU4LTEuNjY2LTguMTkzLTEuOTE2LTE0LjQxOS0uMDM4LS45MzUtLjA2NC0xLjg5OC0uMDkzLTIuOTE5LS4wMjEtLjc0Ny0uMDQ3LTEuNjg0LS4wODUtMi42NjRhMTguOCAxOC44IDAgMDEtNC45NjIgMS41NjhjLTMuMDc5LjUyNi02LjM4OS4zNTYtOS44NC0uNTA3LTIuNDM1LS42MDktNC45NjUtMS44NzEtNi40MDctMy44Mi00LjIwMyAzLjY4MS04LjIxMiAzLjE4Mi0xMC4zOTYgMi40NTMtMy44NTMtMS4yODUtNy4zMDEtNC44OTYtMTAuNTQyLTExLjAzNy0yLjMwOS00LjM3NS00LjU0Mi0xMC4wNzUtNi42MzgtMTYuOTQzLTMuNjUtMTEuOTYtNS45NjktMjQuNTU3LTYuMTc1LTI4LjY5M0M0LjI5MiAyMy42OTggNy43NzcgMTQuNDQgMTUuMjk2IDkuMTI5IDI3LjE1Ny43NTEgNDUuMTI4IDUuNjc4IDUxLjY4IDcuOTE1YzQuNDAyLTIuNjUzIDkuNTgxLTMuOTQ0IDE1LjQzMy0zLjg1MSAzLjE0My4wNTEgNi4xMzYuMzI3IDguOTE2LjgyMyAyLjktLjkxMiA4LjYyOC0yLjIyMSAxNS4xODUtMi4xMzkgMTIuMDgxLjE0NCAyMi4wOTIgNC44NTIgMjguOTQ5IDEzLjYxNSA0Ljg5NCA2LjI1MiAyLjQ3NCAxOS4zODEuNTk3IDI2LjY1MS0yLjY0MiAxMC4yMjYtNy4yNzEgMjEuMTAyLTEyLjk1NyAzMC41NyAxLjU0NC4wMTEgMy43ODEtLjE3NCA2Ljk2MS0uODMxIDYuMjc0LTEuMjk1IDguMTA5IDIuMDY5IDguNjA3IDMuNTc1IDEuOTk1IDYuMDQyLTYuNjc3IDEwLjYwOC05LjM4MiAxMS44NjQtMy40NjYgMS42MDktOS4xMTcgMi41ODktMTMuNzQ1IDIuMzc3bC0uMjAyLS4wMTMtMS4yMTYtLjEwNy0uMTIgMS4wMTQtLjExNi45OTFjLS4zMTEgMTEuOTk5LTIuMDI1IDE5LjU5OC01LjU1MiAyNC42MTktMy42OTcgNS4yNjQtOC44MzUgNi43MzktMTMuMzYxIDcuNzA5LTEuNTQ0LjMzLTIuOTQ3LjQ3NC00LjIxOS40NzR6bS05LjE5LTQzLjY3MWMyLjgxOSAyLjI1NiAzLjA2NiA2LjUwMSAzLjI4NyAxNC40MzQuMDI4Ljk5LjA1NCAxLjkyNy4wODkgMi44MDIuMTA2IDIuNjUuMzU1IDguODU1IDEuMzI3IDExLjQ3Ny4xMzcuMzcxLjI2Ljc0Ny4zOSAxLjE0NiAxLjA4MyAzLjMxNiAxLjYyNiA0Ljk3OSA2LjMwOSAzLjk3OCAzLjkzMS0uODQzIDUuOTUyLTEuNTk5IDcuNTM0LTMuODUxIDIuMjk5LTMuMjc0IDMuNTg1LTkuODYgMy44MjEtMTkuNTc1bDQuNzgzLjExNi00Ljc1LS41Ny4xNC0xLjE4NmMuNDU1LTMuOTEuNzgzLTYuNzM0IDMuMzk2LTguNjAyIDIuMDk3LTEuNDk4IDQuNDg2LTEuMzUzIDYuMzg5LTEuMDEtMi4wOTEtMS41OC0yLjY2OS0zLjQzMy0yLjgyMy00LjE5M2wtLjM5OS0xLjk2NSAxLjEyMS0xLjY2M2M2LjQ1Ny05LjU4IDExLjc4MS0yMS4zNTQgMTQuNjA5LTMyLjMwNCAyLjkwNi0xMS4yNTEgMi4wMi0xNy4yMjYgMS4xMzQtMTguMzU2LTExLjcyOS0xNC45ODctMzIuMDY4LTguNzk5LTM0LjE5Mi04LjA5N2wtLjM1OS4xOTQtMS44LjMzNS0uOTIyLS4xOTFjLTIuNTQyLS41MjgtNS4zNjYtLjgyLTguMzkzLS44NjktNC43NTYtLjA4LTguNTkzIDEuMDQ0LTExLjczOSAzLjQzMWwtMi4xODMgMS42NTUtMi41MzMtMS4wNDNjLTUuNDEyLTIuMjEzLTIxLjMwOC02LjY2Mi0yOS42OTYtLjcyMS00LjY1NiAzLjI5OC02Ljc3NyA5Ljc2LTYuMzA1IDE5LjIwNy4xNTYgMy4xMTkgMi4yNzUgMTQuOTI2IDUuNzcxIDI2LjM3NyA0LjgzMSAxNS44MjUgOS4yMjEgMjEuMDgyIDExLjA1NCAyMS42OTMuMzIuMTA4IDEuMTUtLjUzNyAxLjk3Ni0xLjUyOWEyNzAuNzA4IDI3MC43MDggMCAwMTEwLjY5NC0xMi4wN2wyLjc3LTIuOTE1IDMuMzQ5IDIuMjI1YzEuMzUuODk3IDIuODM5IDEuNDA2IDQuMzY4IDEuNTAybDcuOTg3LTYuODEyLTEuMTU3IDExLjgwOGMtLjAyNi4yNjUtLjAzOS42MjYuMDY1IDEuMjk2bC4zNDggMi4yMzgtMS41MSAxLjY4OC0uMTc0LjE5NiA0LjM4OCAyLjAyNSAxLjgzNi0yLjMwMXoiPjwvcGF0aD48cGF0aCBmaWxsPSIjMzM2NzkxIiBkPSJNMTE1LjczMSA3Ny40NGMtMTMuOTI1IDIuODczLTE0Ljg4Mi0xLjg0Mi0xNC44ODItMS44NDIgMTQuNzAzLTIxLjgxNiAyMC44NDktNDkuNTEgMTUuNTQ1LTU2LjI4N0MxMDEuOTI0LjgyMyA3Ni44NzUgOS41NjYgNzYuNDU3IDkuNzkzbC0uMTM1LjAyNGMtMi43NTEtLjU3MS01LjgzLS45MTEtOS4yOTEtLjk2Ny02LjMwMS0uMTAzLTExLjA4IDEuNjUyLTE0LjcwNyA0LjQwMiAwIDAtNDQuNjg0LTE4LjQwOC00Mi42MDYgMjMuMTUxLjQ0MiA4Ljg0MiAxMi42NzIgNjYuODk5IDI3LjI2IDQ5LjM2MyA1LjMzMi02LjQxMiAxMC40ODMtMTEuODM0IDEwLjQ4My0xMS44MzQgMi41NTkgMS42OTkgNS42MjIgMi41NjcgOC44MzMgMi4yNTVsLjI1LS4yMTJjLS4wNzguNzk2LS4wNDIgMS41NzUuMSAyLjQ5Ny0zLjc1OCA0LjE5OS0yLjY1NCA0LjkzNi0xMC4xNjcgNi40ODItNy42MDIgMS41NjYtMy4xMzYgNC4zNTUtLjIyIDUuMDg0IDMuNTM0Ljg4NCAxMS43MTIgMi4xMzYgMTcuMjM3LTUuNTk4bC0uMjIxLjg4MmMxLjQ3MyAxLjE4IDIuNTA3IDcuNjcyIDIuMzM0IDEzLjU1Ny0uMTc0IDUuODg1LS4yOSA5LjkyNi44NzEgMTMuMDgyIDEuMTYgMy4xNTYgMi4zMTYgMTAuMjU2IDEyLjE5MiA4LjE0IDguMjUyLTEuNzY4IDEyLjUyOC02LjM1MSAxMy4xMjQtMTMuOTk1LjQyMi01LjQzNSAxLjM3Ny00LjYzMSAxLjQzOC05LjQ5bC43NjctMi4zYy44ODQtNy4zNjcuMTQtOS43NDMgNS4yMjUtOC42MzhsMS4yMzUuMTA4YzMuNzQyLjE3IDguNjM5LS42MDIgMTEuNTE0LTEuOTM4IDYuMTktMi44NzEgOS44NjEtNy42NjcgMy43NTgtNi40MDh6Ij48L3BhdGg+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTc1Ljk1NyAxMjIuMzA3Yy04LjIzMiAwLTEwLjg0LTYuNTE5LTExLjkwNy05LjE4NS0xLjU2Mi0zLjkwNy0xLjg5OS0xOS4wNjktMS41NTEtMzEuNTAzYTEuNTkgMS41OSAwIDAxMS42NC0xLjU1IDEuNTk0IDEuNTk0IDAgMDExLjU1IDEuNjM5Yy0uNDAxIDE0LjM0MS4xNjggMjcuMzM3IDEuMzI0IDMwLjIyOSAxLjgwNCA0LjUwOSA0LjU0IDguNDUzIDEyLjI3NSA2Ljc5NiA3LjM0My0xLjU3NSAxMC4wOTMtNC4zNTkgMTEuMzE4LTExLjQ2Ljk0LTUuNDQ5IDIuNzk5LTIwLjk1MSAzLjAyOC0yNC4wMWExLjU5MyAxLjU5MyAwIDAxMS43MS0xLjQ3MiAxLjU5NyAxLjU5NyAwIDAxMS40NzIgMS43MWMtLjIzOSAzLjE4NS0yLjA4OSAxOC42NTctMy4wNjUgMjQuMzE1LTEuNDQ2IDguMzg3LTUuMTg1IDEyLjE5MS0xMy43OTQgMTQuMDM3LTEuNDYzLjMxMy0yLjc5Mi40NTMtNCAuNDU0ek0zMS4zMjEgOTAuNDY2YTYuNzEgNi43MSAwIDAxLTIuMTE2LS4zNWMtNS4zNDctMS43ODQtMTAuNDQtMTAuNDkyLTE1LjEzOC0yNS44ODUtMy41NzYtMTEuNzE3LTUuODQyLTIzLjk0Ny02LjA0MS0yNy45MjItLjU4OS0xMS43ODQgMi40NDUtMjAuMTIxIDkuMDItMjQuNzc4IDEzLjAwNy05LjIxNiAzNC44ODgtLjQ0IDM1LjgxMy0uMDYyYTEuNTk2IDEuNTk2IDAgMDEtMS4yMDcgMi45NTVjLS4yMTEtLjA4Ni0yMS4xOTMtOC40OTItMzIuNzY4LS4yODUtNS42MjIgMy45ODYtOC4yMDMgMTEuMzkyLTcuNjcyIDIyLjAxMS4xNjcgMy4zNDkgMi4yODQgMTUuMjg1IDUuOTA2IDI3LjE0OSA0LjE5NCAxMy43NDIgOC45NjcgMjIuNDEzIDEzLjA5NiAyMy43OS42NDguMjE2IDIuNjIuODczIDUuNDM5LTIuNTE3QTI0NS4yNzIgMjQ1LjI3MiAwIDAxNDUuODggNzMuMDQ2YTEuNTk2IDEuNTk2IDAgMDEyLjMwNCAyLjIwOGMtLjA0OC4wNS00Ljg0NyA1LjA2Ny0xMC4wNzcgMTEuMzU5LTIuNDc3IDIuOTc5LTQuODUxIDMuODUzLTYuNzg2IDMuODUzem02OS40MjktMTMuNDQ1YTEuNTk2IDEuNTk2IDAgMDEtMS4zMjItMi40ODdjMTQuODYzLTIyLjA1NSAyMC4wOC00OC43MDQgMTUuNjEyLTU0LjQxNC01LjYyNC03LjE4Ni0xMy41NjUtMTAuOTM5LTIzLjYwNC0xMS4xNTYtNy40MzMtLjE2LTEzLjM0MSAxLjczOC0xNC4zMDcgMi4wNjlsLS4yNDMuMDk5Yy0uOTcxLjMwNS0xLjcxNi0uMjI3LTEuOTk3LS44NDlhMS42IDEuNiAwIDAxLjYzMS0yLjAyNWMuMDQ2LS4wMjcuMTkyLS4wODkuNDI5LS4xNzZsLS4wMjEuMDA2LjAyMS0uMDA3YzEuNjQxLS42MDEgNy42MzktMi40IDE1LjA2OC0yLjMxNSAxMS4xMDguMTE4IDIwLjI4NCA0LjQwMSAyNi41MzQgMTIuMzg4IDIuOTU3IDMuNzc5IDIuOTY0IDEyLjQ4NS4wMTkgMjMuODg3LTMuMDAyIDExLjYyNS04LjY1MSAyNC4xMTgtMTUuNDk3IDM0LjI3Ny0uMzA2LjQ1Ny0uODEuNzAzLTEuMzIzLjcwM3ptLjc2IDEwLjIxYy0yLjUzOCAwLTQuODEzLS4zNTgtNi4xNzUtMS4xNzQtMS40LS44MzktMS42NjctMS45NzktMS43MDItMi41ODQtLjM4Mi02LjcxIDMuMzItNy44NzggNS4yMDgtOC40MTEtLjI2My0uMzk4LS42MzctLjg2Ni0xLjAyNC0xLjM0OS0xLjEwMS0xLjM3Ni0yLjYwOS0zLjI2LTMuNzcxLTYuMDc4LS4xODItLjQ0LS43NTItMS40NjMtMS40MTItMi42NDgtMy41NzktNi40MTgtMTEuMDI2LTE5Ljc3My02LjI0Mi0yNi42MTIgMi4yMTQtMy4xNjUgNi42MjMtNC40MTEgMTMuMTE5LTMuNzE2Qzk3LjYgMjguODM3IDg4LjUgMTAuNjI1IDY2LjkwNyAxMC4yNzFjLTYuNDk0LS4xMDgtMTEuODIgMS44ODktMTUuODIyIDUuOTMtOC45NiA5LjA0OS04LjYzNiAyNS40MjItOC42MzEgMjUuNTg2YTEuNTk1IDEuNTk1IDAgMTEtMy4xOS4wODRjLS4wMi0uNzI3LS4zNTQtMTcuOTA5IDkuNTU0LTI3LjkxNkM1My40NTUgOS4yNzIgNTkuNTU5IDYuOTYgNjYuOTYgNy4wODFjMTMuODE0LjIyNyAyMi43MDYgNy4yNSAyNy43MzIgMTMuMTAxIDUuNDc5IDYuMzc3IDguMTY1IDEzLjQxMSA4LjM4NiAxNS43NTkuMTY1IDEuNzQ2LTEuMDg4IDIuMDk1LTEuMzQxIDIuMTQ3bC0uNTc2LjAxM2MtNi4zNzUtMS4wMjEtMTAuNDY1LS4zMTItMTIuMTU2IDIuMTA0LTMuNjM5IDUuMjAxIDMuNDA2IDE3LjgzNCA2LjQxNCAyMy4yMjkuNzY4IDEuMzc2IDEuMzIyIDIuMzcxIDEuNTc2IDIuOTg1Ljk4OCAyLjM5NiAyLjI3NyA0LjAwNiAzLjMxMiA1LjMuOTExIDEuMTM4IDEuNyAyLjEyNSAxLjk4MiAzLjI4My4xMzEuMjMgMS45OSAyLjk4IDEzLjAyMS43MDMgMi43NjUtLjU3IDQuNDIzLS4wODMgNC45MyAxLjQ1Ljk5NyAzLjAxNS00LjU5NyA2LjUzMi03LjY5NCA3Ljk3LTIuNzc1IDEuMjktNy4yMDQgMi4xMDYtMTEuMDM2IDIuMTA2em0tNC42OTYtNC4wMjFjLjM1LjM1MyAyLjEwMS45NjIgNS43MjcuODA2IDMuMjI0LS4xMzggNi42MjQtLjgzOSA4LjY2NC0xLjc4NiAyLjYwOS0xLjIxMiA0LjM1MS0yLjU2NyA1LjI1My0zLjQ5MmwtLjUuMDkyYy03LjA1MyAxLjQ1Ni0xMi4wNDIgMS4yNjItMTQuODI4LS41NzdhNi4xNjIgNi4xNjIgMCAwMS0uNTQtLjQwMWMtLjMwMi4xMTktLjU4MS4xOTctLjc4LjI1My0xLjU4LjQ0My0zLjIxNC45MDItMi45OTYgNS4xMDV6bS00NS41NjIgOC45MTVjLTEuNzUyIDAtMy41OTYtLjIzOS01LjQ3OS0uNzEtMS45NTEtLjQ4OC01LjI0LTEuOTU3LTUuMTktNC4zNy4wNTctMi43MDcgMy45OTQtMy41MTkgNS40NzYtMy44MjQgNS4zNTQtMS4xMDMgNS43MDMtMS41NDUgNy4zNzYtMy42Ny40ODgtLjYxOSAxLjA5NS0xLjM5IDEuOTIzLTIuMzE0IDEuMjI5LTEuMzc2IDIuNTcyLTIuMDczIDMuOTkyLTIuMDczLjk4OSAwIDEuOC4zMzUgMi4zMzYuNTU4IDEuNzA4LjcwOCAzLjEzMyAyLjQyIDMuNzE5IDQuNDY3LjUyOSAxLjg0Ny4yNzYgMy42MjUtLjcxIDUuMDA2LTMuMjM3IDQuNTMzLTcuODg2IDYuOTMtMTMuNDQzIDYuOTN6bS03LjIyMi00Ljk0M2MuNDgxLjM3MiAxLjQ0NS44NjkgMi41MTggMS4xMzcgMS42MzEuNDA4IDMuMjEzLjYxNSA0LjcwNS42MTUgNC41NDYgMCA4LjE5Ni0xLjg4MiAxMC44NDctNS41OTQuNTUzLS43NzQuMzg3LTEuNzU3LjIzOS0yLjI3NC0uMzEtMS4wODMtMS4wOC0yLjA2OC0xLjg3My0yLjM5Ny0uNDMtLjE3OC0uNzg3LS4zMTQtMS4xMTUtLjMxNC0uMTc2IDAtLjcxMiAwLTEuNjE0IDEuMDA5YTQxLjE0NiA0MS4xNDYgMCAwMC0xLjc5NCAyLjE2MmMtMi4wODQgMi42NDYtMy4wMzkgMy41NDQtOS4yMzkgNC44MjEtMS41MTMuMzEtMi4yODkuNjI2LTIuNjc0LjgzNXptMTIuMjY5LTcuMzZhMS41OTYgMS41OTYgMCAwMS0xLjU3NS0xLjM1NCA4LjIxOCA4LjIxOCAwIDAxLS4wOC0uNzk5Yy00LjA2NC0uMDc2LTcuOTg1LTEuODItMTAuOTYyLTQuOTI2LTMuNzY0LTMuOTI3LTUuNDc3LTkuMzY4LTQuNjk5LTE0LjkyNy44NDUtNi4wMzcuNTI5LTExLjM2Ni4zNTktMTQuMjI5LS4wNDctLjc5Ni0uMDgxLTEuMzcxLS4wNzktMS43NjkuMDAzLS41MDUuMDEzLTEuODQ0IDQuNDg5LTQuMTEzIDEuNTkyLS44MDcgNC43ODQtMi4yMTUgOC4yNzEtMi41NzYgNS43NzctLjU5NyA5LjU4NSAxLjk3NiAxMC43MjUgNy4yNDYgMy4wNzcgMTQuMjI4LjI0NCAyMC41MjEtMS44MjUgMjUuMTE3LS4zODUuODU2LS43NDkgMS42NjQtMS4wNCAyLjQ0N2wtLjI1Ny42OWMtMS4wOTMgMi45MzEtMi4wMzggNS40NjMtMS43NDggNy4zNTRhMS41OTUgMS41OTUgMCAwMS0xLjMzNSAxLjgxOWwtLjI0NC4wMnpNNDIuNDY0IDQyLjI2bC4wNjIgMS4xMzljLjE3NiAyLjk3NC41MDQgOC41MDgtLjM4NCAxNC44Ni0uNjQxIDQuNTg1Ljc1OSA5LjA2IDMuODQzIDEyLjI3NiAyLjQzNyAyLjU0MiA1LjY0NCAzLjk0NSA4Ljk0IDMuOTQ1aC4wNjhjLjM2OS0xLjU1NS45ODItMy4xOTcgMS42NDItNC45NjZsLjI1NS0uNjg2Yy4zMjktLjg4NC43MTQtMS43NCAxLjEyMi0yLjY0NiAxLjk5MS00LjQyNCA0LjQ3LTkuOTMxIDEuNjE1LTIzLjEzMi0uNTY1LTIuNjE1LTEuOTM2LTQuMTI4LTQuMTg5LTQuNjI3LTQuNjI4LTEuMDIyLTExLjUyNSAyLjQ1OS0xMi45NzQgMy44Mzd6bTkuNjMtLjY3N2MtLjA4LjU2NCAxLjAzMyAyLjA3IDIuNDg1IDIuMjcxIDEuNDQ5LjIwMyAyLjY4OS0uOTc1IDIuNzY4LTEuNTM5LjA3OS0uNTY0LTEuMDMzLTEuMTg2LTIuNDg1LTEuMzg4LTEuNDUxLS4yMDItMi42OTEuMDkyLTIuNzY4LjY1NnptMi44MTggMi44MjZsLS40MDctLjAyOGMtLjktLjEyNS0xLjgxLS42OTItMi40MzMtMS41MTgtLjIxOS0uMjktLjU3Ni0uODUyLS41MDUtMS4zNTQuMTAxLS43MzYuOTk5LTEuMTc3IDIuNC0xLjE3Ny4zMTMgMCAuNjM5LjAyMy45NjcuMDY5Ljc2Ni4xMDYgMS40NzcuMzI3IDIuMDAyLjYyLjkxLjUwOC45NzcgMS4wNzUuOTM2IDEuMzY4LS4xMTIuODEzLTEuNDA1IDIuMDItMi45NiAyLjAyem0tMi4yODktMi43MzJjLjA0NS4zNDguOTA3IDEuNDk2IDIuMDI5IDEuNjUxbC4yNjEuMDE4YzEuMDM2IDAgMS44MS0uODE1IDEuOTAxLTEuMDgyLS4wOTYtLjE4Mi0uNzYyLS42MzQtMi4wMjUtLjgxYTUuODIzIDUuODIzIDAgMDAtLjgyMS0uMDU5Yy0uODEyIDAtMS4yNDMuMTgzLTEuMzQ1LjI4MnptNDMuNjA1LTEuMjQ1Yy4wNzkuNTY0LTEuMDMzIDIuMDctMi40ODQgMi4yNzItMS40NS4yMDItMi42OTEtLjk3NS0yLjc3MS0xLjUzOS0uMDc2LS41NjQgMS4wMzYtMS4xODcgMi40ODYtMS4zODggMS40NS0uMjAzIDIuNjg5LjA5MiAyLjc2OS42NTV6bS0yLjgxOSAyLjU2Yy0xLjM5NiAwLTIuNjAxLTEuMDg2LTIuNy0xLjc5MS0uMTE1LS44NDYgMS4yNzgtMS40ODkgMi43MTItMS42ODguMzE2LS4wNDQuNjI5LS4wNjYuOTMtLjA2NiAxLjIzOCAwIDIuMDU4LjM2MyAyLjE0Ljk0OS4wNTMuMzc5LS4yMzguOTY0LS43MzkgMS40OTItLjMzMS4zNDctMS4wMjYuOTQ4LTEuOTczIDEuMDc5bC0uMzcuMDI1em0uOTQzLTMuMDEzYy0uMjc2IDAtLjU2NC4wMjEtLjg1Ni4wNjEtMS40NDEuMjAxLTIuMzAxLjc3OS0yLjI1OSAxLjA4OS4wNDguMzQxLjk2OCAxLjMzMiAyLjE3MyAxLjMzMmwuMjk3LS4wMjFjLjc4Ny0uMTA5IDEuMzc4LS42MjMgMS42Ni0uOTE5LjQ0My0uNDY1LjYxOS0uOTAzLjU5OC0xLjA1Mi0uMDI4LS4xOTgtLjU2LS40OS0xLjYxMy0uNDl6bTMuOTY1IDMyLjg0M2ExLjU5NCAxLjU5NCAwIDAxLTEuMzI0LTIuNDgzYzMuMzk4LTUuMDc1IDIuNzc2LTEwLjI1IDIuMTc1LTE1LjI1NS0uMjU3LTIuMTMyLS41MjEtNC4zMzctLjQ1My02LjQ1My4wNy0yLjE3Ny4zNDctMy45NzMuNjE0LTUuNzEuMzE3LTIuMDU4LjYxNy00LjAwMi40OTMtNi4zMWExLjU5NSAxLjU5NSAwIDExMy4xODYtLjE3MmMuMTQyIDIuNjM4LS4xOTcgNC44MzgtLjUyNSA2Ljk2Ny0uMjUzIDEuNjQzLS41MTUgMy4zNDItLjU3OCA1LjMyNy0uMDYxIDEuODc0LjE3OCAzLjg2NC40MzEgNS45Ny42NCA1LjMyMiAxLjM2NSAxMS4zNTQtMi42OTEgMTcuNDExYTEuNTk2IDEuNTk2IDAgMDEtMS4zMjguNzA4eiI+PC9wYXRoPjwvc3ZnPg==";
|
|
354
|
+
readonly url: "https://www.postgresql.org/";
|
|
355
|
+
readonly tagline: "The world's most advanced open source relational database";
|
|
356
|
+
readonly repo: "postgres/postgres";
|
|
357
|
+
readonly links: [{
|
|
358
|
+
readonly label: "Docs";
|
|
359
|
+
readonly href: "https://www.postgresql.org/docs/";
|
|
360
|
+
}, {
|
|
361
|
+
readonly label: "postgres.js (client)";
|
|
362
|
+
readonly href: "https://github.com/porsager/postgres";
|
|
363
|
+
}];
|
|
364
|
+
}, {
|
|
365
|
+
readonly category: "ORM / Query builder";
|
|
366
|
+
readonly label: "Drizzle";
|
|
367
|
+
readonly flag: "drizzle";
|
|
368
|
+
readonly image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjI4MHB4IiBoZWlnaHQ9IjI4MHB4IiBzdHlsZT0ic2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgdGV4dC1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uOyBpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5OyBmaWxsLXJ1bGU6ZXZlbm9kZDsgY2xpcC1ydWxlOmV2ZW5vZGQiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iIzAwMDAwMCIgZD0iTSAtMC41LC0wLjUgQyA5Mi44MzMzLC0wLjUgMTg2LjE2NywtMC41IDI3OS41LC0wLjVDIDI3OS41LDkyLjgzMzMgMjc5LjUsMTg2LjE2NyAyNzkuNSwyNzkuNUMgMTg2LjE2NywyNzkuNSA5Mi44MzMzLDI3OS41IC0wLjUsMjc5LjVDIC0wLjUsMTg2LjE2NyAtMC41LDkyLjgzMzMgLTAuNSwtMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTMzLjUsODQuNSBDIDE0Mi44MTQsODIuNzI2OSAxNDYuNjQ3LDg2LjM5MzUgMTQ1LDk1LjVDIDEzNS45MDYsMTEyLjAyOCAxMjYuNTcyLDEyOC4zNjIgMTE3LDE0NC41QyAxMTEuMjQ5LDE0OS45ODQgMTA2LjI0OSwxNDkuMzE3IDEwMiwxNDIuNUMgMTAxLjMzMywxNDAuODMzIDEwMS4zMzMsMTM5LjE2NyAxMDIsMTM3LjVDIDExMS41NDcsMTE5LjA0MSAxMjIuMDQ3LDEwMS4zNzUgMTMzLjUsODQuNSBaIi8+PC9nPgo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eToxIiBmaWxsPSIjYzBmMTRkIiBkPSJNIDIyMy41LDg0LjUgQyAyMzMuNTM5LDgzLjY5NzIgMjM3LjAzOSw4OC4wMzA1IDIzNCw5Ny41QyAyMjUuMzQ3LDExMi44MDEgMjE2LjY4MSwxMjguMTM1IDIwOCwxNDMuNUMgMjAzLjM4NywxNDkuNzM3IDE5OC4zODcsMTUwLjA3MSAxOTMsMTQ0LjVDIDE5MS41NzgsMTQxLjk3IDE5MS4yNDUsMTM5LjMwMyAxOTIsMTM2LjVDIDIwMC41MiwxMjIuNzk0IDIwOC41MiwxMDguNzk0IDIxNiw5NC41QyAyMTguMjg5LDkwLjg4MTIgMjIwLjc4OSw4Ny41NDc5IDIyMy41LDg0LjUgWiIvPjwvZz4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iI2MwZjE0ZCIgZD0iTSA3NS41LDEyMC41IEMgODMuOTg4NSwxMTkuNjE4IDg3LjgyMTgsMTIzLjI4NSA4NywxMzEuNUMgNzcuOTA1NywxNDguMDI4IDY4LjU3MjQsMTY0LjM2MiA1OSwxODAuNUMgNTYuMDQ1MywxODQuMjc3IDUyLjIxMiwxODUuNDQzIDQ3LjUsMTg0QyA0My44Njk3LDE4MC45NSA0Mi43MDMsMTc3LjExNyA0NCwxNzIuNUMgNTMsMTU2LjUgNjIsMTQwLjUgNzEsMTI0LjVDIDcyLjM5NjgsMTIyLjkzIDczLjg5NjgsMTIxLjU5NiA3NS41LDEyMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTY1LjUsMTIwLjUgQyAxNzQuMTY0LDExOS4zMzIgMTc3Ljk5NywxMjIuOTk5IDE3NywxMzEuNUMgMTY3LjQxNCwxNDcuNjcxIDE1OC4wOCwxNjQuMDA0IDE0OSwxODAuNUMgMTQ2LjM5OCwxODQuMjEyIDE0Mi44OTgsMTg1LjM3OCAxMzguNSwxODRDIDEzMy45MzEsMTgxLjQ1OSAxMzIuNDMxLDE3Ny42MjUgMTM0LDE3Mi41QyAxNDMuNTcyLDE1Ni4zNjIgMTUyLjkwNiwxNDAuMDI4IDE2MiwxMjMuNUMgMTYzLjE0NSwxMjIuMzY0IDE2NC4zMTIsMTIxLjM2NCAxNjUuNSwxMjAuNSBaIi8+PC9nPgo8L3N2Zz4K";
|
|
369
|
+
readonly url: "https://orm.drizzle.team/";
|
|
370
|
+
readonly tagline: "Headless TypeScript ORM that feels like SPA with SSR";
|
|
371
|
+
readonly repo: "drizzle-team/drizzle-orm";
|
|
372
|
+
readonly links: [{
|
|
373
|
+
readonly label: "Docs & Getting started";
|
|
374
|
+
readonly href: "https://orm.drizzle.team/docs/overview";
|
|
375
|
+
}];
|
|
376
|
+
}, {
|
|
377
|
+
readonly category: "ORM / Query builder";
|
|
357
378
|
readonly label: "Kysely";
|
|
358
379
|
readonly flag: "kysely";
|
|
359
380
|
readonly image: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMTMyJyBoZWlnaHQ9JzEzMicgdmlld0JveD0nMCAwIDEzMiAxMzInIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGcgY2xpcC1wYXRoPSd1cmwoI2NsaXAwXzhfMyknPjxyZWN0IHg9JzInIHk9JzInIHdpZHRoPScxMjgnIGhlaWdodD0nMTI4JyByeD0nMTYnIGZpbGw9J3doaXRlJy8+PHBhdGggZD0nTTQxLjI5ODMgMTA5VjIzLjkwOTFINDYuNDkxOFY3My4zMUg0Ny4wNzM1TDkxLjk0NTcgMjMuOTA5MUg5OC44NDI3TDYxLjkwNjIgNjQuMTY5NEw5OC41MTAzIDEwOUg5Mi4wMjg4TDU4LjU4MjQgNjcuOTA4N0w0Ni40OTE4IDgxLjI4NzNWMTA5SDQxLjI5ODNaJyBmaWxsPSdibGFjaycvPjwvZz48cmVjdCB4PScyJyB5PScyJyB3aWR0aD0nMTI4JyBoZWlnaHQ9JzEyOCcgcng9JzE2JyBzdHJva2U9JyMxMjEyMTInIHN0cm9rZS13aWR0aD0nNCcvPjxkZWZzPjxjbGlwUGF0aCBpZD0nY2xpcDBfOF8zJz48cmVjdCB4PScyJyB5PScyJyB3aWR0aD0nMTI4JyBoZWlnaHQ9JzEyOCcgcng9JzE2JyBmaWxsPSd3aGl0ZScvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPgo=";
|
|
@@ -365,7 +386,7 @@ declare const features: readonly [{
|
|
|
365
386
|
readonly href: "https://kysely.dev/docs/getting-started";
|
|
366
387
|
}];
|
|
367
388
|
}, {
|
|
368
|
-
readonly category: "
|
|
389
|
+
readonly category: "ORM / Query builder";
|
|
369
390
|
readonly label: "Prisma";
|
|
370
391
|
readonly flag: "prisma";
|
|
371
392
|
readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIwLjgzZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDMxMCI+PHBhdGggZD0iTTI1NC4zMTMgMjM1LjUxOUwxNDggOS43NDlBMTcuMDYzIDE3LjA2MyAwIDAgMCAxMzMuNDczLjAzN2ExNi44NyAxNi44NyAwIDAgMC0xNS41MzMgOC4wNTJMMi42MzMgMTk0Ljg0OGExNy40NjUgMTcuNDY1IDAgMCAwIC4xOTMgMTguNzQ3TDU5LjIgMzAwLjg5NmExOC4xMyAxOC4xMyAwIDAgMCAyMC4zNjMgNy40ODlsMTYzLjU5OS00OC4zOTJhMTcuOTI5IDE3LjkyOSAwIDAgMCAxMS4yNi05LjcyMmExNy41NDIgMTcuNTQyIDAgMCAwLS4xMDEtMTQuNzZsLS4wMDguMDA4Wm0tMjMuODAyIDkuNjgzbC0xMzguODIzIDQxLjA1Yy00LjIzNSAxLjI2LTguMy0yLjQxMS03LjQxOS02LjY4NWw0OS41OTgtMjM3LjQ4NGMuOTI3LTQuNDQzIDcuMDYzLTUuMTQ3IDkuMDAzLTEuMDM1bDkxLjgxNCAxOTQuOTczYTYuNjMgNi42MyAwIDAgMS00LjE4IDkuMThoLjAwN1oiLz48L3N2Zz4=";
|
|
@@ -401,6 +422,14 @@ declare const features: readonly [{
|
|
|
401
422
|
readonly image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIwLjk3ZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDI2NSI+PHBhdGggZmlsbD0iIzRGQjU4QiIgZD0ibTIzMy41NiAxNDEuOTI3bC4xNy4wMTNsMTcuODkyIDEuODdhNC45MjcgNC45MjcgMCAwIDEgMy4yMjUgMS43MDdsLjEzMy4xNjNsLS4xNy4wODVhNC45MyA0LjkzIDAgMCAxIDEuMDIgMy43NGExMzMuMjcyIDEzMy4yNzIgMCAwIDEtNDEuNjA0IDgxLjA4M2ExMjguODYgMTI4Ljg2IDAgMCAxLTg3LjYyOSAzNC4zOGExMjcuNDg4IDEyNy40ODggMCAwIDEtNDYuMTU2LTguNTdsLS44MDItLjMxMmE0LjcxNiA0LjcxNiAwIDAgMS0yLjY4Ni0yLjUzM2wtLjA3Ny0uMTg3YTQuODkxIDQuODkxIDAgMCAxLS4wODMtMy42Nmw3LjA2Mi0xNy4yM2E0Ljg0NiA0Ljg0NiAwIDAgMSA2LjExOC0yLjc5OWwuMTYzLjA2YzM2LjA5NyAxMy45MzkgNzYuOTggNi4wODkgMTA1LjM0OS0yMC4yMjdhMTA0LjQ1NSAxMDQuNDU1IDAgMCAwIDMyLjg5MS02My4zMmE0LjkzIDQuOTMgMCAwIDEgNS4wMTMtNC4yN2wuMTcuMDA3Wm0tMTkwLjA4IDY0LjMxbC4yNTEtLjAwMmwuMjUzLjAwMmM4LjEyLjA5MyAxNC42NTggNi42NTkgMTQuNzQ2IDE0Ljc0OXYuMjUzYzAgLjA4NCAwIC4xNjgtLjAwMi4yNTJjLS4xNDEgOC4yODQtNi45NyAxNC44ODYtMTUuMjU0IDE0Ljc0NWMtOC4yODQtLjE0MS0xNC44ODUtNi45Ny0xNC43NDUtMTUuMjU0Yy4xMzktOC4xMTUgNi42OTUtMTQuNjE1IDE0Ljc1LTE0Ljc0NVpNNC45MyAxNDcuMDgyaDE0Ni4zMTZhNC45NzMgNC45NzMgMCAwIDEgNC45MjggNC44NDRsLjAwMi4xNzF2MTguMzE2YTQuOTc0IDQuOTc0IDAgMCAxLTQuNzYgNS4wMWwtLjE3LjAwNUg0LjkzQTQuOTc1IDQuOTc1IDAgMCAxIDAgMTcwLjU4NHYtMTguNjU5YTQuOTc1IDQuOTc1IDAgMCAxIDQuNzU1LTQuODM4bC4xNzUtLjAwNVpNMTY5LjU2IDcuMzExYTQuOTc0IDQuOTc0IDAgMCAxIDIuODQ4IDIuNjM1YTUuMDk2IDUuMDk2IDAgMCAxIDAgMy44NjdsLTYuMzc1IDE2Ljk5OWE0Ljg0NSA0Ljg0NSAwIDAgMS02LjE2MiAyLjk3NEExMDEuMjI4IDEwMS4yMjggMCAwIDAgNjIuMTMgNTEuMjUyYTEwNS4yNjcgMTA1LjI2NyAwIDAgMC0zNC41MDcgNTQuOTlhNC45MyA0LjkzIDAgMCAxLTQuNzYgMy42OThoLTEuMTA1TDQuMjUgMTA1LjczM2E0Ljg4NiA0Ljg4NiAwIDAgMS0zLjEwMy0yLjI5NWgtLjA4NUE0LjkyOSA0LjkyOSAwIDAgMSAuNTEgOTkuNTdhMTMzLjM5MyAxMzMuMzkzIDAgMCAxIDQ0LjQxLTcwLjIwNEM3OS43MzkuNyAxMjcuMDE5LTcuNjY2IDE2OS41NiA3LjMxMVptLTY0LjgwNyA3My40MzRIMjUxLjA3YTQuOTcyIDQuOTcyIDAgMCAxIDQuOTIyIDQuNjdsLjAwOC4xNzR2MTguMzE3YTQuOTczIDQuOTczIDAgMCAxLTQuNzYgNS4wMWwtLjE3LjAwNUgxMDQuNzU0YTQuOTcyIDQuOTcyIDAgMCAxLTQuODg2LTQuODQybC0uMDAyLS4xNzNWODUuNzU5YTQuOTcyIDQuOTcyIDAgMCAxIDQuNzE1LTUuMDA4bC4xNzMtLjAwNlptMTAxLjU3Mi01NS44ODNsLjI1Mi0uMDAybC4yNTMuMDAyYzguMTIuMDkzIDE0LjY1OCA2LjY1OSAxNC43NDYgMTQuNzQ4di4yNTNjMCAuMDg1IDAgLjE3LS4wMDIuMjUzYy0uMTQgOC4yODQtNi45NyAxNC44ODUtMTUuMjU0IDE0Ljc0NGMtOC4yODQtLjE0LTE0Ljg4NS02Ljk3LTE0Ljc0NC0xNS4yNTNjLjEzOC04LjExNiA2LjY5NC0xNC42MTYgMTQuNzQ5LTE0Ljc0NVoiLz48L3N2Zz4=";
|
|
402
423
|
readonly url: "https://segment.com";
|
|
403
424
|
readonly disabled: true;
|
|
425
|
+
}, {
|
|
426
|
+
readonly category: "Hosting";
|
|
427
|
+
readonly label: "DIY";
|
|
428
|
+
readonly flag: "hosting-diy";
|
|
429
|
+
readonly image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pg0KDQo8IURPQ1RZUEUgc3ZnICBQVUJMSUMgJy0vL1czQy8vRFREIFNWRyAxLjEvL0VOJyAgJ2h0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCc+DQoNCjwhLS0gVXBsb2FkZWQgdG86IFNWRyBSZXBvLCB3d3cuc3ZncmVwby5jb20sIEdlbmVyYXRvcjogU1ZHIFJlcG8gTWl4ZXIgVG9vbHMgLS0+DQo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwNjkgMTA2OSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyIgdmVyc2lvbj0iMS4xIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCg0KPHJlY3QgaGVpZ2h0PSIxMDY2LjY3IiBpZD0iU3RvcmFnZS1ob3N0aW5nIiBzdHlsZT0iZmlsbDpub25lOyIgd2lkdGg9IjEwNjYuNjciIHg9IjEuMTY3IiB5PSIwLjU5MiIvPg0KDQo8Zz4NCg0KPHBhdGggZD0iTTcxMS41ODQsNjE3LjI1OGwtMCw4My4zMzRjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTgzLjMzNGMtMCwtMTcuMjQ3IC0xNC4wMDMsLTMxLjI1IC0zMS4yNSwtMzEuMjVjLTE3LjI0OCwwIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0tMCwtMzMzLjMzM2wtMCw4My4zMzNjLTAsMTcuMjQ4IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsMCAzMS4yNSwtMTQuMDAyIDMxLjI1LC0zMS4yNWwtMCwtODMuMzMzYy0wLC0xNy4yNDcgLTE0LjAwMywtMzEuMjUgLTMxLjI1LC0zMS4yNWMtMTcuMjQ4LC0wIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0xLjE2NSwtMTM4LjAyNGwtMCwtMjguNjQzYy0wLC0xNy4yNTkgLTEzLjk5MSwtMzEuMjUgLTMxLjI1LC0zMS4yNWwtMjkyLjgzMiwwYy0xNy4yNTksMCAtMzEuMjUsMTMuOTkxIC0zMS4yNSwzMS4yNWwwLDI4LjY0M2MwLDI5Ljg2OSAxMC42Niw1OC40MjkgMjkuMjE1LDc5LjU1YzE5LjkxLDIyLjY2NSA0Ny4wODUsMzUuMDM0IDc1LjI0MywzNS4wMzRsMTQ2LjQxNiwtMGMyOC4xNTgsLTAgNTUuMzMzLC0xMi4zNjkgNzUuMjQzLC0zNS4wMzRjMTguNTU1LC0yMS4xMjEgMjkuMjE1LC00OS42ODEgMjkuMjE1LC03OS41NWwtMCwtMFptLTYyLjU1NCwyLjYwN2MtMC41NDEsMTMuMzk1IC01LjI1MywyNi4xNzUgLTEzLjYxNSwzNS42OTRjLTcuNTQ5LDguNTkyIC0xNy42MTIsMTMuNzgyIC0yOC4yODcsMTMuNzgzYy0wLjAwMiwtMCAtMTQ2LjQxOCwtMCAtMTQ2LjQxOCwtMGMtMTAuNjc3LC0wLjAwMSAtMjAuNzQsLTUuMTkxIC0yOC4yODksLTEzLjc4M2MtOC4zNjIsLTkuNTE5IC0xMy4wNzQsLTIyLjI5OSAtMTMuNjE1LC0zNS42OTRsMjMwLjIyNCwwWiIgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjU7Ii8+DQoNCjxwYXRoIGQ9Ik0xMDEuNjg5LDQ5Mi4yNThjLTIyLjEzMSwyMC44OTcgLTM1LjkzOSw1MC41MDMgLTM1LjkzOSw4My4zMzRjMCw2Mi4wMiAwLDE0Ni4zMTMgMCwyMDguMzMzYzAsNTIuNDQ4IDM1LjIzOSw5Ni42NjYgODMuMzM0LDExMC4yN2wtMCw1Ni4zOTdjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTUyLjA4NGw2NDUuODMzLDBsMCw1Mi4wODRjMCwxNy4yNDcgMTQuMDAzLDMxLjI1IDMxLjI1LDMxLjI1YzE3LjI0OCwtMCAzMS4yNSwtMTQuMDAzIDMxLjI1LC0zMS4yNWwwLC01Ni4zOTdjNDguMDk1LC0xMy42MDQgODMuMzM0LC01Ny44MjIgODMuMzMzLC0xMTAuMjdsMCwtMjA4LjMzM2MwLjAwMSwtMzIuODMxIC0xMy44MDcsLTYyLjQzNyAtMzUuOTM4LC04My4zMzRjMjIuMTMxLC0yMC44OTYgMzUuOTM5LC01MC41MDIgMzUuOTM4LC04My4zMzNsMCwtMjA4LjMzM2MwLjAwMSwtNjMuMjgzIC01MS4zLC0xMTQuNTgzIC0xMTQuNTgyLC0xMTQuNTg0bC03MDguMzM1LDBjLTYzLjI4MiwwLjAwMSAtMTE0LjU4Myw1MS4zMDEgLTExNC41ODMsMTE0LjU4NGMwLDYyLjAyIDAsMTQ2LjMxMyAwLDIwOC4zMzNjMCwzMi44MzEgMTMuODA4LDYyLjQzNyAzNS45MzksODMuMzMzWm04MzkuMDYxLDgzLjMzNGwwLDIwOC4zMzNjMC4wMDEsMjguNzY0IC0yMy4zMTcsNTIuMDgyIC01Mi4wODEsNTIuMDgzYy0wLjAwMywwIC03MDguMzM1LDAgLTcwOC4zMzUsMGMtMjguNzY2LC0wLjAwMSAtNTIuMDg0LC0yMy4zMTkgLTUyLjA4NCwtNTIuMDgzYzAsLTYyLjAyIDAsLTE0Ni4zMTMgMCwtMjA4LjMzM2MwLC0yOC43NjQgMjMuMzE4LC01Mi4wODMgNTIuMDgyLC01Mi4wODRjMC4wMDMsMCA3MDguMzM1LDAgNzA4LjMzNSwwYzI4Ljc2NiwwLjAwMSA1Mi4wODQsMjMuMzIgNTIuMDgzLDUyLjA4NFptLTY1Ni4yNSwtMzEuMjVjLTYzLjI0LC0wIC0xMTQuNTgzLDUxLjM0MyAtMTE0LjU4MywxMTQuNTgzYzAsNjMuMjQgNTEuMzQzLDExNC41ODMgMTE0LjU4MywxMTQuNTgzYzYzLjI0MSwwIDExNC41ODQsLTUxLjM0MyAxMTQuNTg0LC0xMTQuNTgzYy0wLC02My4yNCAtNTEuMzQzLC0xMTQuNTgzIC0xMTQuNTg0LC0xMTQuNTgzWm01NTIuMDg0LDcyLjkxNmwtMCw4My4zMzRjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTgzLjMzNGMtMCwtMTcuMjQ3IC0xNC4wMDMsLTMxLjI1IC0zMS4yNSwtMzEuMjVjLTE3LjI0OCwwIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0tNTUyLjA4NCwtMTAuNDE2YzI4Ljc0NiwtMCA1Mi4wODQsMjMuMzM3IDUyLjA4NCw1Mi4wODNjLTAsMjguNzQ2IC0yMy4zMzgsNTIuMDgzIC01Mi4wODQsNTIuMDgzYy0yOC43NDUsMCAtNTIuMDgzLC0yMy4zMzcgLTUyLjA4MywtNTIuMDgzYzAsLTI4Ljc0NiAyMy4zMzgsLTUyLjA4MyA1Mi4wODMsLTUyLjA4M1ptNjU2LjI1LC00MDYuMjVsMCwyMDguMzMzYzAuMDAxLDI4Ljc2NCAtMjMuMzE3LDUyLjA4MiAtNTIuMDgxLDUyLjA4M2MtMC4wMDMsMCAtNzA4LjMzNSwwIC03MDguMzM1LDBjLTI4Ljc2NiwtMC4wMDEgLTUyLjA4NCwtMjMuMzE5IC01Mi4wODQsLTUyLjA4M2MwLC02Mi4wMiAwLC0xNDYuMzEzIDAsLTIwOC4zMzNjMCwtMjguNzY0IDIzLjMxOCwtNTIuMDgzIDUyLjA4MiwtNTIuMDg0YzAuMDAzLDAgNzA4LjMzNSwwIDcwOC4zMzUsMGMyOC43NjYsMC4wMDEgNTIuMDg0LDIzLjMyIDUyLjA4Myw1Mi4wODRabS02NTYuMjUsMTAuNDE2Yy02My4yNCwwIC0xMTQuNTgzLDUxLjM0MyAtMTE0LjU4MywxMTQuNTg0YzAsNjMuMjQgNTEuMzQzLDExNC41ODMgMTE0LjU4MywxMTQuNTgzYzYzLjI0MSwtMCAxMTQuNTg0LC01MS4zNDMgMTE0LjU4NCwtMTE0LjU4M2MtMCwtNjMuMjQxIC01MS4zNDMsLTExNC41ODQgLTExNC41ODQsLTExNC41ODRabTU1Mi4wODQsNzIuOTE3bC0wLDgzLjMzM2MtMCwxNy4yNDggMTQuMDAyLDMxLjI1IDMxLjI1LDMxLjI1YzE3LjI0NywwIDMxLjI1LC0xNC4wMDIgMzEuMjUsLTMxLjI1bC0wLC04My4zMzNjLTAsLTE3LjI0NyAtMTQuMDAzLC0zMS4yNSAtMzEuMjUsLTMxLjI1Yy0xNy4yNDgsLTAgLTMxLjI1LDE0LjAwMyAtMzEuMjUsMzEuMjVabS01NTIuMDg0LC0xMC40MTdjMjguNzQ2LDAgNTIuMDg0LDIzLjMzOCA1Mi4wODQsNTIuMDg0Yy0wLDI4Ljc0NSAtMjMuMzM4LDUyLjA4MyAtNTIuMDg0LDUyLjA4M2MtMjguNzQ1LC0wIC01Mi4wODMsLTIzLjMzOCAtNTIuMDgzLC01Mi4wODNjMCwtMjguNzQ2IDIzLjMzOCwtNTIuMDg0IDUyLjA4MywtNTIuMDg0WiIvPg0KDQo8L2c+DQoNCjwvc3ZnPg==";
|
|
430
|
+
readonly invisibleCli: true;
|
|
431
|
+
readonly selected: true;
|
|
432
|
+
readonly tooltip: "Set up deployment yourself";
|
|
404
433
|
}, {
|
|
405
434
|
readonly category: "Hosting";
|
|
406
435
|
readonly label: "Cloudflare";
|
|
@@ -469,10 +498,22 @@ declare const features: readonly [{
|
|
|
469
498
|
readonly label: "Docs";
|
|
470
499
|
readonly href: "https://github.com/aws/aws-cdk";
|
|
471
500
|
}];
|
|
501
|
+
}, {
|
|
502
|
+
readonly category: "Hosting";
|
|
503
|
+
readonly label: "Docker";
|
|
504
|
+
readonly flag: "docker";
|
|
505
|
+
readonly image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKYXJpYS1sYWJlbD0iRG9ja2VyIiByb2xlPSJpbWciCnZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cmVjdAp3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIKcng9IjE1JSIKZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIHN0cm9rZT0iIzA2NmRhNSIgc3Ryb2tlLXdpZHRoPSIzOCIgZD0iTTI5NiAyMjZoNDJtLTkyIDBoNDJtLTkxIDBoNDJtLTkxIDBoNDFtLTkxIDBoNDJtOC00Nmg0MW04IDBoNDJtNyAwaDQybS00Mi00Nmg0MiIvPjxwYXRoIGZpbGw9IiMwNjZkYTUiIGQ9Im00NzIgMjI4cy0xOC0xNy01NS0xMWMtNC0yOS0zNS00Ni0zNS00NnMtMjkgMzUtOCA3NGMtNiAzLTE2IDctMzEgN0g2OGMtNSAxOS01IDE0NSAxMzMgMTQ1IDk5IDAgMTczLTQ2IDIwOC0xMzAgNTIgNCA2My0zOSA2My0zOSIvPjwvc3ZnPg==";
|
|
506
|
+
readonly url: "https://www.docker.com/";
|
|
507
|
+
readonly tagline: "A safer container ecosystem, for everyone";
|
|
508
|
+
readonly links: [{
|
|
509
|
+
readonly label: "Docs";
|
|
510
|
+
readonly href: "https://docs.docker.com";
|
|
511
|
+
}];
|
|
472
512
|
}, {
|
|
473
513
|
readonly category: "Hosting";
|
|
474
514
|
readonly label: "Dokploy";
|
|
475
515
|
readonly flag: "dokploy";
|
|
516
|
+
readonly dependsOn: readonly ["docker"];
|
|
476
517
|
readonly image: "data:image/svg+xml;base64,PHN2ZwogICB2aWV3Qm94PSIwIDAgNTk5Ljk5OTk5IDU5OS45OTk5OSIKICAgY2xhc3M9ImgtMTAgdy1hdXRvIgogICB3aWR0aD0iNjAwIgogICBoZWlnaHQ9IjYwMCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aAogICAgIGlkPSJwYXRoNCIKICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLXdpZHRoOjEuMDUxMjE7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1kYXNob2Zmc2V0OjEwNS44Mjc7cGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGwgbWFya2VycyIKICAgICBkPSJtIDQxNS42NDY5NCwxMzUuMTMwNTggYyAtNC4xMzAyNSwwLjg4NzE2IC00LjcwODgyLDQuOTgzMTUgLTQuMTMwMTUsMTUuODg3OTUgMC42MTU2LDExLjYwMDQgNS4zOTg1MywyOC4xMTAxMiAyNi45NTM2MSw0My42ODAzMiA5LjM3NTc5LDcuMDA3MyAyMC4yODU3NSw1LjE0NTUyIDE2Ljg0Mzk2LDExLjQ4MzM1IC05LjQxNzExLDE0LjQ3OTI1IC0xMy44NDk5NywxNy4wNzIxMyAtMzMuMTMzODMsMjMuMDI3NDMgLTguOTUyNzMsMi43NjQ4MSAtMjQuMDU2NDIsMS41NDQ0IC00MS42MDkwNSwtMy4zNDg2OCAtMTcuNTUyNjIsLTQuODkzMDcgLTM3LjQ2OTcxLC0xMy4wMzI2NCAtNTYuOTk3MzYsLTIxLjgyNjk4IC0xOS41Mjc2LC04Ljc5NDM1IC0zOC42ODEwMiwtMTguMjI1MzIgLTU1LjIxNTIzLC0yNS43MzAwMiAtMTYuNTM0MTYsLTcuNTA0NjggLTI5LjUzNjUsLTEzLjM0MzU4IC00MS4yODQ2MywtMTQuMjk2MDUgLTYuMTE2MjIsLTAuNDk1ODUgLTEyLjM0OTU2LC0wLjcyMjQgLTE4LjgzOTY3LC0wLjc4NDI5IC0xOS40NzAzMiwtMC4xODU2OCAtNDEuMjQ4NjksMS4xMTY5MSAtNjkuMDk2NTQsMS4xMTY5MSAtMTguODcwNjcsMCAtMzIuOTE0NjMsNi4zMTU3OCAtMzkuNzE4MDg4LDE3LjgyMzM1IC02LjgwMzQ1OCwxMS41MDc1NiAtNi44NDI2MTksMjQuNTI3ODkgLTcuMjEyNjk5LDM4LjU5MDkxIC0wLjM2MTUzNCwxMy43MzgyOSAtMS4wMjQyLDIzLjk2MzMgLTAuMzQ0OTI4LDMzLjIxMTY4IDAuNjc5MjczLDkuMjQ4MzYgMy4xOTMyODUsMTguMDQ2NDUgOS4wMDA5ODUsMjUuNDQyNTcgMi42MjE0MywzLjMzODQgNS4zMTAxNyw1LjI5NzAxIDkuMzA4OTYsOC4yMjY5NiAzLjk5ODc5LDIuOTI5OTIgOS4wNjM4OCw2LjI5MDYxIDE1LjEwNSw5Ljk3MDA2IDEyLjA4MjIyLDcuMzU4ODkgMjguMDQwMjMsMTUuOTY3MTYgNDYuNDMxODcsMjQuMjM1MzMgMzYuNzgzMjcsMTYuNTM2MzQgODMuMTY4MjksMzEuODQ0MjggMTI3LjY5OTQ1LDMxLjg0NDI4IDEwMy4xNzAxMywwIDIwMi42MzMxMSwtNzkuODI2MjggMjAyLjYzMzExLC03OS44MjYyOCA0LjU2MTc2LC0zLjU5MTEyIDUuMzQ4NjIsLTEwLjIwMDM1IDEuNzU3NDksLTE0Ljc2MjEyIC0zLjU5MTEyLC00LjU2MTc2IC0xMC4yMDAzNSwtNS4zNDg2MiAtMTQuNzYyMTEsLTEuNzU3NDggMCwwIC05Ny41OTg2Myw3NS4zMjE2NyAtMTg5LjYyODQ5LDc1LjMyMTY3IC0zOS42MTQyNiwwIC04My45NjIxOSwtMTQuMjA5NjEgLTExOS4wNzgzLC0yOS45OTY0NSAtMTcuNTU4MDUsLTcuODkzNDEgLTMyLjg0MzE5LC0xNi4xNDk4OSAtNDQuMTE1OTMsLTIzLjAxNTc2IC01LjYzNjM3LC0zLjQzMjkyIC0xMC4yNzgxLC02LjUyNjIyIC0xMy42MTY0NSwtOC45NzIyMyAtMy4zMzgzNSwtMi40NDYwMyAtNS42MTc1OSwtNC43ODU3MiAtNS4xOTg1NywtNC4yNTIwNyAtMS4yODA5OCwtMS42MzEzNyAtMi4xNTM3NSwtMy4xOTg2MSAtMi44MzUzOSwtNC45NTAxMyBoIDUzLjg0NTc4IGMgMTkuMTA2NzksMCAzMi44MzI1OCw3Ljc0Njc1IDUyLjMyNDQsMTYuNzIwODIgMTkuNDkxODIsOC45NzQwNSA0NC4xNDQwOCwxOC4zNTQwMSA4MS4wNjQzMywxNy42NzM0NyA1Mi44NDgxNywtMC45NzQxNyA4NC41OTQ1OCwtMTEuNDI0OSAxMTQuODI4MywtMjguODQ2NyAxNy40ODAyOSwtMTAuMDcyOCAzMC40NjM0NSwtMTguNTg5OSA0MS43NTQ3MiwtMzEuMDk4NTcgNy4zMTgyNSwtOC41NjAyNCAxMS43NDM5MiwtMTQuNTEyIDE3LjQwNDI4LC0yNC4yNTc3MyAzLjQ2MjExLC02LjA4NzU0IDkuOTc4ODcsLTYuNzc0NCAxOC4wNjA1OCwtNi43MTcxMiAxNS4zOTk1LDAuMTA5MTUgMzUuMTM5NjEsLTE5LjIwMjg4IDQxLjcxNzY4LC0zMC4zMzQwNSA2LjU3ODA5LC0xMS4xMzExOCA5Ljk5NjgsLTIyLjIxODc2IDAuNDA5MzIsLTIyLjI2NjYxIC05LjU4NzQ3LC0wLjA0NzggLTkuMTg0NjksOS42NjY5NiAtMjMuMjI2NywxMC45MDE5NCAtMTMuOTk2MjksMC40NTczOCAtMzEuODQ0ODEsMi4zNjIwNyAtMzkuNTI5MDUsMTcuMjczMTUgLTEuMzcyMTksLTUuNDg4NzQgLTguMTA5OTIsLTIxLjQwNDU4IC0zMC4yNTEwMywtMjcuMDY4NjcgLTIyLjE0MTEyLC01LjY2NDA4IC0xMy41MjU4OSwtMjEuMjg2OTcgLTI3LjMxOTYzLC0xOC4zMjQxNiB6IG0gLTIwNy42MTk3MSw0OS4xNDgwNCBjIDE4LjU1OTM3LC0xLjMxODc3IDM0Ljk4NDMzLDUuNzU0NzYgNTEuNjQyNzYsMTMuMTcwOTEgMTYuMDU0NjIsNy4yODcwMiAzNS4zMDkxNCwxNi43NjQ5MSA1NS4yNzA2NiwyNS43NTQ2NSAxOS45NjE1Miw4Ljk4OTc1IDQwLjYxNywxNy41MDk5NSA1OS45ODQ2OSwyMi45MDkgOS4xNTc3MywyLjU1Mjg2IDE4LjAxNjM0LDQuNDE4NzkgMjYuNTI2NjMsNS4yNDU3OCAtMjYuMzY2MzgsMTQuNDkyOTQgLTUyLjQ5MTYxLDIyLjYxMzU0IC0xMDAuMDQxNTUsMjMuNDkwMDQgLTMzLjMyNjQsMC42MTQzIC01My4zMTY5MywtNy4yMDQwNCAtNzEuODgyNjYsLTE1Ljc1MTc0IC0xOC41NjU3MywtOC41NDc2OSAtMzYuMzE0OTEsLTE4LjY0NjY1IC02MS4xMTgwMiwtMTguNjQ2NjUgaCAtNTUuNzAxODMgYyAwLjEwNjc3LC01LjM4Mjk0IDAuMzE3MTMsLTExLjYxMTI2IDAuNTE1MzUsLTE5LjE0MzU0IDAuMzYxNzUsLTEzLjc0NjU3IDEuNTU4MTMsLTIzLjgxNDc1IDQuMjk1MTgsLTI4LjQ0NDI3IDIuNzM3MDMsLTQuNjI5NTEgNi41NDA4NiwtNy40OTgwOCAyMS42MTk2MSwtNy40OTgwOCAyOC40NzU3NSwwIDUwLjQ2MjMyLC0xLjIyMjUgNjguODg5MTgsLTEuMDg2MSB6IG0gLTI1LjcxMTU1LDIwLjIxMzIgYyAtNS45NjE1NSwtNWUtNCAtMTAuNzk0OCw0LjgzMTgyIC0xMC43OTU0MywxMC43OTMzOSAtNWUtNCw1Ljk2MjM1IDQuODMzMDgsMTAuNzk1OTQgMTAuNzk1NDMsMTAuNzk1NDMgNS45NjE1NywtNi4zZS00IDEwLjc5MzksLTQuODMzODggMTAuNzkzNCwtMTAuNzk1NDMgLTYuM2UtNCwtNS45NjA3NyAtNC44MzI2MywtMTAuNzkyNzYgLTEwLjc5MzQsLTEwLjc5MzM5IHogbSAtNzIuMTcwMDksMTAxLjc0MzYgYyAtMC42NzU3OSwtMC4wMTggLTEuMzU2MDQsMC4wMDIgLTIuMDM2NzIsMC4wNjE3IC00Ljc0NDEsMC40MTcwNCAtOS4yNDU1NDYsMy4wOTcxNiAtMTEuODY1MTI0LDYuNjQ4MDkgLTIuNjE5NTc3LDMuNTUwOTMgLTMuNjU4NzA0LDcuNjgxNzEgLTMuNjU4NzA0LDExLjczNzgzIC00LjgxZS00LDEwNy43OTU1NiA5Mi44MzU5MTgsMTg4Ljc1OTg2IDIwNy40MTQ4NjgsMTg4Ljc2IDExNC41Nzg5NCwtMS40ZS00IDIwNy40MTUzNiwtODAuOTY0NDQgMjA3LjQxNDg3LC0xODguNzYgMCwtNC4wNTYxMiAtMS4wMzkxMiwtOC4xODY5IC0zLjY1ODY5LC0xMS43Mzc4MyAtMi42MTk1OSwtMy41NTA5MyAtNy4xMjEwMywtNi4yMzEwNSAtMTEuODY1MTMsLTYuNjQ4MDkgLTEuMzYxMzYsLTAuMTE5NzMgLTIuNzE4OTQsLTAuMDc2NiAtNC4wNDg4LDAuMTAwNiAtMy41NTc0MywwLjQ3MzYgLTYuODk1MywxLjg3NTc1IC0xMC4wODcxLDMuOTIxNTEgLTMyLjYzMzc3LDIwLjkxNjQ1IC05NS41MDU3OSw3My41NTE4MiAtMTc3Ljc1NTE1LDczLjU1MTgyIC04Mi4yNDkzNSwwIC0xNDUuMTIxMzgsLTUyLjYzNTM3IC0xNzcuNzU1MTMsLTczLjU1MTg2IC0zLjE5MTgsLTIuMDQ1NzYgLTYuNTI5NjgsLTMuNDQ3OSAtMTAuMDg3MSwtMy45MjE1MSAtMC42NjQ5MywtMC4wODg1IC0xLjMzNjI5LC0wLjE0NDIyIC0yLjAxMjA5LC0wLjE2MjIgeiBtIDEuNTY2NTUsMTkuOTk5NjkgYyAwLjEzNzksMC4wODA3IDAuMTAzMTMsMC4wMTk5IDAuMjU0NiwwLjExNzAzIDI5LjQxMjQ4LDE4Ljg1MTgzIDk3LjU0MTU4LDc2LjU2MTc4IDE4OC4wMzMxNyw3Ni41NjE3OCA5MC40OTE1OSwwIDE1OC42MjA3MSwtNTcuNzA5OTUgMTg4LjAzMzE5LC03Ni41NjE3OCAwLjE1MTQ3LC0wLjA5NyAwLjExNjcsLTAuMDM2MiAwLjI1NDU5LC0wLjExNzAzIC0wLjA2ODEsNy4zNTMxMyAtMC4yMDg5OCwxMC40Mjg2MSAtMS4yMDMxNCwxNy40Nzg0MyAtNy4zNTgwNyw5LjkxODUyIC04Ny40MjM3MSw5Ni45NDEyOSAtMTg3LjA4NDY0LDk2Ljk0MTI5IC05OS42NjA5NCwwIC0xNzkuNzI2NTYsLTg3LjAyMjc3IC0xODcuMDg0NjMsLTk2Ljk0MTI5IC0wLjk5NDE2LC03LjA0OTgyIC0xLjEzNTA1LC0xMC4xMjUzIC0xLjIwMzE0LC0xNy40Nzg0MyB6IG0gMTEuNDkxNDYsNTguNjkzMjYgYyAzNC4wNzAzNSwzMS4zMTkxNSAxMDAuNjAwOTksNzcuMDYyNzUgMTc2Ljc5NjMxLDc3LjA2Mjc1IDc2LjE5NTMxLDAgMTQyLjcyNTk4LC00NS43NDM2IDE3Ni43OTYzMywtNzcuMDYyNzUgLTI2LjE5NDM4LDY1LjMwNTMgLTk0LjQ3NTA2LDEwOS40NzE1MSAtMTc2Ljc5NjMzLDEwOS40NzE2NSAtODIuMzIxMjgsLTEuMWUtNCAtMTUwLjYwMTk0LC00NC4xNjYzNSAtMTc2Ljc5NjMxLC0xMDkuNDcxNjUgeiIKICAgICAvPgo8L3N2Zz4K";
|
|
477
518
|
readonly url: "https://dokploy.com";
|
|
478
519
|
readonly tagline: "Open source alternative to Heroku, Vercel, and Netlify. Self-host on any VPS";
|
|
@@ -481,8 +522,6 @@ declare const features: readonly [{
|
|
|
481
522
|
readonly label: "Docs";
|
|
482
523
|
readonly href: "https://docs.dokploy.com";
|
|
483
524
|
}];
|
|
484
|
-
readonly disabled: true;
|
|
485
|
-
readonly invisibleCli: true;
|
|
486
525
|
}, {
|
|
487
526
|
readonly category: "Linter";
|
|
488
527
|
readonly label: "ESLint";
|
|
@@ -547,8 +586,8 @@ declare const features: readonly [{
|
|
|
547
586
|
readonly href: "https://storybook.js.org/docs";
|
|
548
587
|
}];
|
|
549
588
|
}];
|
|
550
|
-
declare const flags: ("vike" | "react" | "vue" | "solid" | "tailwindcss" | "compiled-css" | "daisyui" | "shadcn-ui" | "mantine" | "authjs" | "auth0" | "telefunc" | "trpc" | "ts-rest" | "hono" | "h3" | "express" | "fastify" | "
|
|
551
|
-
declare const cliFlags: ("vike" | "react" | "vue" | "solid" | "tailwindcss" | "compiled-css" | "daisyui" | "shadcn-ui" | "mantine" | "authjs" | "auth0" | "telefunc" | "trpc" | "ts-rest" | "hono" | "h3" | "express" | "fastify" | "
|
|
589
|
+
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")[];
|
|
590
|
+
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")[];
|
|
552
591
|
type Flags = (typeof flags)[number];
|
|
553
592
|
//#endregion
|
|
554
593
|
export { CategoryLabels as a, flags as i, cliFlags as n, categories as o, features as r, categoriesGroups as s, Flags as t };
|
|
@@ -15,6 +15,7 @@ const features = [
|
|
|
15
15
|
label: "FAQ",
|
|
16
16
|
href: "https://vike.dev/faq"
|
|
17
17
|
}],
|
|
18
|
+
tooltip: "Vike cannot be disabled. It is the foundation that allows all others tools to work cohesively",
|
|
18
19
|
invisibleCli: true,
|
|
19
20
|
readonly: true
|
|
20
21
|
},
|
|
@@ -285,19 +286,6 @@ const features = [
|
|
|
285
286
|
href: "https://fastify.dev/docs/latest/Reference/"
|
|
286
287
|
}]
|
|
287
288
|
},
|
|
288
|
-
{
|
|
289
|
-
category: "Database",
|
|
290
|
-
label: "Drizzle",
|
|
291
|
-
flag: "drizzle",
|
|
292
|
-
image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjI4MHB4IiBoZWlnaHQ9IjI4MHB4IiBzdHlsZT0ic2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgdGV4dC1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uOyBpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5OyBmaWxsLXJ1bGU6ZXZlbm9kZDsgY2xpcC1ydWxlOmV2ZW5vZGQiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iIzAwMDAwMCIgZD0iTSAtMC41LC0wLjUgQyA5Mi44MzMzLC0wLjUgMTg2LjE2NywtMC41IDI3OS41LC0wLjVDIDI3OS41LDkyLjgzMzMgMjc5LjUsMTg2LjE2NyAyNzkuNSwyNzkuNUMgMTg2LjE2NywyNzkuNSA5Mi44MzMzLDI3OS41IC0wLjUsMjc5LjVDIC0wLjUsMTg2LjE2NyAtMC41LDkyLjgzMzMgLTAuNSwtMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTMzLjUsODQuNSBDIDE0Mi44MTQsODIuNzI2OSAxNDYuNjQ3LDg2LjM5MzUgMTQ1LDk1LjVDIDEzNS45MDYsMTEyLjAyOCAxMjYuNTcyLDEyOC4zNjIgMTE3LDE0NC41QyAxMTEuMjQ5LDE0OS45ODQgMTA2LjI0OSwxNDkuMzE3IDEwMiwxNDIuNUMgMTAxLjMzMywxNDAuODMzIDEwMS4zMzMsMTM5LjE2NyAxMDIsMTM3LjVDIDExMS41NDcsMTE5LjA0MSAxMjIuMDQ3LDEwMS4zNzUgMTMzLjUsODQuNSBaIi8+PC9nPgo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eToxIiBmaWxsPSIjYzBmMTRkIiBkPSJNIDIyMy41LDg0LjUgQyAyMzMuNTM5LDgzLjY5NzIgMjM3LjAzOSw4OC4wMzA1IDIzNCw5Ny41QyAyMjUuMzQ3LDExMi44MDEgMjE2LjY4MSwxMjguMTM1IDIwOCwxNDMuNUMgMjAzLjM4NywxNDkuNzM3IDE5OC4zODcsMTUwLjA3MSAxOTMsMTQ0LjVDIDE5MS41NzgsMTQxLjk3IDE5MS4yNDUsMTM5LjMwMyAxOTIsMTM2LjVDIDIwMC41MiwxMjIuNzk0IDIwOC41MiwxMDguNzk0IDIxNiw5NC41QyAyMTguMjg5LDkwLjg4MTIgMjIwLjc4OSw4Ny41NDc5IDIyMy41LDg0LjUgWiIvPjwvZz4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iI2MwZjE0ZCIgZD0iTSA3NS41LDEyMC41IEMgODMuOTg4NSwxMTkuNjE4IDg3LjgyMTgsMTIzLjI4NSA4NywxMzEuNUMgNzcuOTA1NywxNDguMDI4IDY4LjU3MjQsMTY0LjM2MiA1OSwxODAuNUMgNTYuMDQ1MywxODQuMjc3IDUyLjIxMiwxODUuNDQzIDQ3LjUsMTg0QyA0My44Njk3LDE4MC45NSA0Mi43MDMsMTc3LjExNyA0NCwxNzIuNUMgNTMsMTU2LjUgNjIsMTQwLjUgNzEsMTI0LjVDIDcyLjM5NjgsMTIyLjkzIDczLjg5NjgsMTIxLjU5NiA3NS41LDEyMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTY1LjUsMTIwLjUgQyAxNzQuMTY0LDExOS4zMzIgMTc3Ljk5NywxMjIuOTk5IDE3NywxMzEuNUMgMTY3LjQxNCwxNDcuNjcxIDE1OC4wOCwxNjQuMDA0IDE0OSwxODAuNUMgMTQ2LjM5OCwxODQuMjEyIDE0Mi44OTgsMTg1LjM3OCAxMzguNSwxODRDIDEzMy45MzEsMTgxLjQ1OSAxMzIuNDMxLDE3Ny42MjUgMTM0LDE3Mi41QyAxNDMuNTcyLDE1Ni4zNjIgMTUyLjkwNiwxNDAuMDI4IDE2MiwxMjMuNUMgMTYzLjE0NSwxMjIuMzY0IDE2NC4zMTIsMTIxLjM2NCAxNjUuNSwxMjAuNSBaIi8+PC9nPgo8L3N2Zz4K",
|
|
293
|
-
url: "https://orm.drizzle.team/",
|
|
294
|
-
tagline: "Headless TypeScript ORM that feels like SPA with SSR",
|
|
295
|
-
repo: "drizzle-team/drizzle-orm",
|
|
296
|
-
links: [{
|
|
297
|
-
label: "Docs & Getting started",
|
|
298
|
-
href: "https://orm.drizzle.team/docs/overview"
|
|
299
|
-
}]
|
|
300
|
-
},
|
|
301
289
|
{
|
|
302
290
|
category: "Database",
|
|
303
291
|
label: "SQLite",
|
|
@@ -316,6 +304,35 @@ const features = [
|
|
|
316
304
|
},
|
|
317
305
|
{
|
|
318
306
|
category: "Database",
|
|
307
|
+
label: "PostgreSQL",
|
|
308
|
+
flag: "postgres",
|
|
309
|
+
image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAxMjggMTI4Ij48cGF0aCBkPSJNOTMuODA5IDkyLjExMmMuNzg1LTYuNTMzLjU1LTcuNDkyIDUuNDE2LTYuNDMzbDEuMjM1LjEwOGMzLjc0Mi4xNyA4LjYzNy0uNjAyIDExLjUxMy0xLjkzOCA2LjE5MS0yLjg3MyA5Ljg2MS03LjY2OCAzLjc1OC02LjQwOS0xMy45MjQgMi44NzMtMTQuODgxLTEuODQyLTE0Ljg4MS0xLjg0MiAxNC43MDMtMjEuODE1IDIwLjg0OS00OS41MDggMTUuNTQzLTU2LjI4Ny0xNC40Ny0xOC40ODktMzkuNTE3LTkuNzQ2LTM5LjkzNi05LjUybC0uMTM0LjAyNWMtMi43NTEtLjU3MS01LjgzLS45MTItOS4yODktLjk2OC02LjMwMS0uMTA0LTExLjA4MiAxLjY1Mi0xNC43MDkgNC40MDIgMCAwLTQ0LjY4My0xOC40MDktNDIuNjA0IDIzLjE1MS40NDIgOC44NDEgMTIuNjcyIDY2Ljg5OCAyNy4yNiA0OS4zNjIgNS4zMzItNi40MTIgMTAuNDg0LTExLjgzNCAxMC40ODQtMTEuODM0IDIuNTU4IDEuNjk5IDUuNjIyIDIuNTY3IDguODM0IDIuMjU1bC4yNDktLjIxMmMtLjA3OC43OTYtLjA0NCAxLjU3NS4wOTkgMi40OTctMy43NTcgNC4xOTktMi42NTMgNC45MzYtMTAuMTY2IDYuNDgyLTcuNjAyIDEuNTY2LTMuMTM2IDQuMzU1LS4yMjEgNS4wODQgMy41MzUuODg0IDExLjcxMiAyLjEzNiAxNy4yMzgtNS41OThsLS4yMi44ODJjMS40NzQgMS4xOCAxLjM3NSA4LjQ3NyAxLjU4MyAxMy42OS4yMDkgNS4yMTQuNTU4IDEwLjA3OSAxLjYyMSAxMi45NDggMS4wNjMgMi44NjggMi4zMTcgMTAuMjU2IDEyLjE5MSA4LjE0IDguMjUyLTEuNzY0IDE0LjU2MS00LjMwOSAxNS4xMzYtMjcuOTg1Ij48L3BhdGg+PHBhdGggZD0iTTc1LjQ1OCAxMjUuMjU2Yy00LjM2NyAwLTcuMjExLTEuNjg5LTguOTM4LTMuMzItMi42MDctMi40Ni0zLjY0MS01LjYyOS00LjI1OS03LjUyMmwtLjI2Ny0uNzljLTEuMjQ0LTMuMzU4LTEuNjY2LTguMTkzLTEuOTE2LTE0LjQxOS0uMDM4LS45MzUtLjA2NC0xLjg5OC0uMDkzLTIuOTE5LS4wMjEtLjc0Ny0uMDQ3LTEuNjg0LS4wODUtMi42NjRhMTguOCAxOC44IDAgMDEtNC45NjIgMS41NjhjLTMuMDc5LjUyNi02LjM4OS4zNTYtOS44NC0uNTA3LTIuNDM1LS42MDktNC45NjUtMS44NzEtNi40MDctMy44Mi00LjIwMyAzLjY4MS04LjIxMiAzLjE4Mi0xMC4zOTYgMi40NTMtMy44NTMtMS4yODUtNy4zMDEtNC44OTYtMTAuNTQyLTExLjAzNy0yLjMwOS00LjM3NS00LjU0Mi0xMC4wNzUtNi42MzgtMTYuOTQzLTMuNjUtMTEuOTYtNS45NjktMjQuNTU3LTYuMTc1LTI4LjY5M0M0LjI5MiAyMy42OTggNy43NzcgMTQuNDQgMTUuMjk2IDkuMTI5IDI3LjE1Ny43NTEgNDUuMTI4IDUuNjc4IDUxLjY4IDcuOTE1YzQuNDAyLTIuNjUzIDkuNTgxLTMuOTQ0IDE1LjQzMy0zLjg1MSAzLjE0My4wNTEgNi4xMzYuMzI3IDguOTE2LjgyMyAyLjktLjkxMiA4LjYyOC0yLjIyMSAxNS4xODUtMi4xMzkgMTIuMDgxLjE0NCAyMi4wOTIgNC44NTIgMjguOTQ5IDEzLjYxNSA0Ljg5NCA2LjI1MiAyLjQ3NCAxOS4zODEuNTk3IDI2LjY1MS0yLjY0MiAxMC4yMjYtNy4yNzEgMjEuMTAyLTEyLjk1NyAzMC41NyAxLjU0NC4wMTEgMy43ODEtLjE3NCA2Ljk2MS0uODMxIDYuMjc0LTEuMjk1IDguMTA5IDIuMDY5IDguNjA3IDMuNTc1IDEuOTk1IDYuMDQyLTYuNjc3IDEwLjYwOC05LjM4MiAxMS44NjQtMy40NjYgMS42MDktOS4xMTcgMi41ODktMTMuNzQ1IDIuMzc3bC0uMjAyLS4wMTMtMS4yMTYtLjEwNy0uMTIgMS4wMTQtLjExNi45OTFjLS4zMTEgMTEuOTk5LTIuMDI1IDE5LjU5OC01LjU1MiAyNC42MTktMy42OTcgNS4yNjQtOC44MzUgNi43MzktMTMuMzYxIDcuNzA5LTEuNTQ0LjMzLTIuOTQ3LjQ3NC00LjIxOS40NzR6bS05LjE5LTQzLjY3MWMyLjgxOSAyLjI1NiAzLjA2NiA2LjUwMSAzLjI4NyAxNC40MzQuMDI4Ljk5LjA1NCAxLjkyNy4wODkgMi44MDIuMTA2IDIuNjUuMzU1IDguODU1IDEuMzI3IDExLjQ3Ny4xMzcuMzcxLjI2Ljc0Ny4zOSAxLjE0NiAxLjA4MyAzLjMxNiAxLjYyNiA0Ljk3OSA2LjMwOSAzLjk3OCAzLjkzMS0uODQzIDUuOTUyLTEuNTk5IDcuNTM0LTMuODUxIDIuMjk5LTMuMjc0IDMuNTg1LTkuODYgMy44MjEtMTkuNTc1bDQuNzgzLjExNi00Ljc1LS41Ny4xNC0xLjE4NmMuNDU1LTMuOTEuNzgzLTYuNzM0IDMuMzk2LTguNjAyIDIuMDk3LTEuNDk4IDQuNDg2LTEuMzUzIDYuMzg5LTEuMDEtMi4wOTEtMS41OC0yLjY2OS0zLjQzMy0yLjgyMy00LjE5M2wtLjM5OS0xLjk2NSAxLjEyMS0xLjY2M2M2LjQ1Ny05LjU4IDExLjc4MS0yMS4zNTQgMTQuNjA5LTMyLjMwNCAyLjkwNi0xMS4yNTEgMi4wMi0xNy4yMjYgMS4xMzQtMTguMzU2LTExLjcyOS0xNC45ODctMzIuMDY4LTguNzk5LTM0LjE5Mi04LjA5N2wtLjM1OS4xOTQtMS44LjMzNS0uOTIyLS4xOTFjLTIuNTQyLS41MjgtNS4zNjYtLjgyLTguMzkzLS44NjktNC43NTYtLjA4LTguNTkzIDEuMDQ0LTExLjczOSAzLjQzMWwtMi4xODMgMS42NTUtMi41MzMtMS4wNDNjLTUuNDEyLTIuMjEzLTIxLjMwOC02LjY2Mi0yOS42OTYtLjcyMS00LjY1NiAzLjI5OC02Ljc3NyA5Ljc2LTYuMzA1IDE5LjIwNy4xNTYgMy4xMTkgMi4yNzUgMTQuOTI2IDUuNzcxIDI2LjM3NyA0LjgzMSAxNS44MjUgOS4yMjEgMjEuMDgyIDExLjA1NCAyMS42OTMuMzIuMTA4IDEuMTUtLjUzNyAxLjk3Ni0xLjUyOWEyNzAuNzA4IDI3MC43MDggMCAwMTEwLjY5NC0xMi4wN2wyLjc3LTIuOTE1IDMuMzQ5IDIuMjI1YzEuMzUuODk3IDIuODM5IDEuNDA2IDQuMzY4IDEuNTAybDcuOTg3LTYuODEyLTEuMTU3IDExLjgwOGMtLjAyNi4yNjUtLjAzOS42MjYuMDY1IDEuMjk2bC4zNDggMi4yMzgtMS41MSAxLjY4OC0uMTc0LjE5NiA0LjM4OCAyLjAyNSAxLjgzNi0yLjMwMXoiPjwvcGF0aD48cGF0aCBmaWxsPSIjMzM2NzkxIiBkPSJNMTE1LjczMSA3Ny40NGMtMTMuOTI1IDIuODczLTE0Ljg4Mi0xLjg0Mi0xNC44ODItMS44NDIgMTQuNzAzLTIxLjgxNiAyMC44NDktNDkuNTEgMTUuNTQ1LTU2LjI4N0MxMDEuOTI0LjgyMyA3Ni44NzUgOS41NjYgNzYuNDU3IDkuNzkzbC0uMTM1LjAyNGMtMi43NTEtLjU3MS01LjgzLS45MTEtOS4yOTEtLjk2Ny02LjMwMS0uMTAzLTExLjA4IDEuNjUyLTE0LjcwNyA0LjQwMiAwIDAtNDQuNjg0LTE4LjQwOC00Mi42MDYgMjMuMTUxLjQ0MiA4Ljg0MiAxMi42NzIgNjYuODk5IDI3LjI2IDQ5LjM2MyA1LjMzMi02LjQxMiAxMC40ODMtMTEuODM0IDEwLjQ4My0xMS44MzQgMi41NTkgMS42OTkgNS42MjIgMi41NjcgOC44MzMgMi4yNTVsLjI1LS4yMTJjLS4wNzguNzk2LS4wNDIgMS41NzUuMSAyLjQ5Ny0zLjc1OCA0LjE5OS0yLjY1NCA0LjkzNi0xMC4xNjcgNi40ODItNy42MDIgMS41NjYtMy4xMzYgNC4zNTUtLjIyIDUuMDg0IDMuNTM0Ljg4NCAxMS43MTIgMi4xMzYgMTcuMjM3LTUuNTk4bC0uMjIxLjg4MmMxLjQ3MyAxLjE4IDIuNTA3IDcuNjcyIDIuMzM0IDEzLjU1Ny0uMTc0IDUuODg1LS4yOSA5LjkyNi44NzEgMTMuMDgyIDEuMTYgMy4xNTYgMi4zMTYgMTAuMjU2IDEyLjE5MiA4LjE0IDguMjUyLTEuNzY4IDEyLjUyOC02LjM1MSAxMy4xMjQtMTMuOTk1LjQyMi01LjQzNSAxLjM3Ny00LjYzMSAxLjQzOC05LjQ5bC43NjctMi4zYy44ODQtNy4zNjcuMTQtOS43NDMgNS4yMjUtOC42MzhsMS4yMzUuMTA4YzMuNzQyLjE3IDguNjM5LS42MDIgMTEuNTE0LTEuOTM4IDYuMTktMi44NzEgOS44NjEtNy42NjcgMy43NTgtNi40MDh6Ij48L3BhdGg+PHBhdGggZmlsbD0iI2ZmZiIgZD0iTTc1Ljk1NyAxMjIuMzA3Yy04LjIzMiAwLTEwLjg0LTYuNTE5LTExLjkwNy05LjE4NS0xLjU2Mi0zLjkwNy0xLjg5OS0xOS4wNjktMS41NTEtMzEuNTAzYTEuNTkgMS41OSAwIDAxMS42NC0xLjU1IDEuNTk0IDEuNTk0IDAgMDExLjU1IDEuNjM5Yy0uNDAxIDE0LjM0MS4xNjggMjcuMzM3IDEuMzI0IDMwLjIyOSAxLjgwNCA0LjUwOSA0LjU0IDguNDUzIDEyLjI3NSA2Ljc5NiA3LjM0My0xLjU3NSAxMC4wOTMtNC4zNTkgMTEuMzE4LTExLjQ2Ljk0LTUuNDQ5IDIuNzk5LTIwLjk1MSAzLjAyOC0yNC4wMWExLjU5MyAxLjU5MyAwIDAxMS43MS0xLjQ3MiAxLjU5NyAxLjU5NyAwIDAxMS40NzIgMS43MWMtLjIzOSAzLjE4NS0yLjA4OSAxOC42NTctMy4wNjUgMjQuMzE1LTEuNDQ2IDguMzg3LTUuMTg1IDEyLjE5MS0xMy43OTQgMTQuMDM3LTEuNDYzLjMxMy0yLjc5Mi40NTMtNCAuNDU0ek0zMS4zMjEgOTAuNDY2YTYuNzEgNi43MSAwIDAxLTIuMTE2LS4zNWMtNS4zNDctMS43ODQtMTAuNDQtMTAuNDkyLTE1LjEzOC0yNS44ODUtMy41NzYtMTEuNzE3LTUuODQyLTIzLjk0Ny02LjA0MS0yNy45MjItLjU4OS0xMS43ODQgMi40NDUtMjAuMTIxIDkuMDItMjQuNzc4IDEzLjAwNy05LjIxNiAzNC44ODgtLjQ0IDM1LjgxMy0uMDYyYTEuNTk2IDEuNTk2IDAgMDEtMS4yMDcgMi45NTVjLS4yMTEtLjA4Ni0yMS4xOTMtOC40OTItMzIuNzY4LS4yODUtNS42MjIgMy45ODYtOC4yMDMgMTEuMzkyLTcuNjcyIDIyLjAxMS4xNjcgMy4zNDkgMi4yODQgMTUuMjg1IDUuOTA2IDI3LjE0OSA0LjE5NCAxMy43NDIgOC45NjcgMjIuNDEzIDEzLjA5NiAyMy43OS42NDguMjE2IDIuNjIuODczIDUuNDM5LTIuNTE3QTI0NS4yNzIgMjQ1LjI3MiAwIDAxNDUuODggNzMuMDQ2YTEuNTk2IDEuNTk2IDAgMDEyLjMwNCAyLjIwOGMtLjA0OC4wNS00Ljg0NyA1LjA2Ny0xMC4wNzcgMTEuMzU5LTIuNDc3IDIuOTc5LTQuODUxIDMuODUzLTYuNzg2IDMuODUzem02OS40MjktMTMuNDQ1YTEuNTk2IDEuNTk2IDAgMDEtMS4zMjItMi40ODdjMTQuODYzLTIyLjA1NSAyMC4wOC00OC43MDQgMTUuNjEyLTU0LjQxNC01LjYyNC03LjE4Ni0xMy41NjUtMTAuOTM5LTIzLjYwNC0xMS4xNTYtNy40MzMtLjE2LTEzLjM0MSAxLjczOC0xNC4zMDcgMi4wNjlsLS4yNDMuMDk5Yy0uOTcxLjMwNS0xLjcxNi0uMjI3LTEuOTk3LS44NDlhMS42IDEuNiAwIDAxLjYzMS0yLjAyNWMuMDQ2LS4wMjcuMTkyLS4wODkuNDI5LS4xNzZsLS4wMjEuMDA2LjAyMS0uMDA3YzEuNjQxLS42MDEgNy42MzktMi40IDE1LjA2OC0yLjMxNSAxMS4xMDguMTE4IDIwLjI4NCA0LjQwMSAyNi41MzQgMTIuMzg4IDIuOTU3IDMuNzc5IDIuOTY0IDEyLjQ4NS4wMTkgMjMuODg3LTMuMDAyIDExLjYyNS04LjY1MSAyNC4xMTgtMTUuNDk3IDM0LjI3Ny0uMzA2LjQ1Ny0uODEuNzAzLTEuMzIzLjcwM3ptLjc2IDEwLjIxYy0yLjUzOCAwLTQuODEzLS4zNTgtNi4xNzUtMS4xNzQtMS40LS44MzktMS42NjctMS45NzktMS43MDItMi41ODQtLjM4Mi02LjcxIDMuMzItNy44NzggNS4yMDgtOC40MTEtLjI2My0uMzk4LS42MzctLjg2Ni0xLjAyNC0xLjM0OS0xLjEwMS0xLjM3Ni0yLjYwOS0zLjI2LTMuNzcxLTYuMDc4LS4xODItLjQ0LS43NTItMS40NjMtMS40MTItMi42NDgtMy41NzktNi40MTgtMTEuMDI2LTE5Ljc3My02LjI0Mi0yNi42MTIgMi4yMTQtMy4xNjUgNi42MjMtNC40MTEgMTMuMTE5LTMuNzE2Qzk3LjYgMjguODM3IDg4LjUgMTAuNjI1IDY2LjkwNyAxMC4yNzFjLTYuNDk0LS4xMDgtMTEuODIgMS44ODktMTUuODIyIDUuOTMtOC45NiA5LjA0OS04LjYzNiAyNS40MjItOC42MzEgMjUuNTg2YTEuNTk1IDEuNTk1IDAgMTEtMy4xOS4wODRjLS4wMi0uNzI3LS4zNTQtMTcuOTA5IDkuNTU0LTI3LjkxNkM1My40NTUgOS4yNzIgNTkuNTU5IDYuOTYgNjYuOTYgNy4wODFjMTMuODE0LjIyNyAyMi43MDYgNy4yNSAyNy43MzIgMTMuMTAxIDUuNDc5IDYuMzc3IDguMTY1IDEzLjQxMSA4LjM4NiAxNS43NTkuMTY1IDEuNzQ2LTEuMDg4IDIuMDk1LTEuMzQxIDIuMTQ3bC0uNTc2LjAxM2MtNi4zNzUtMS4wMjEtMTAuNDY1LS4zMTItMTIuMTU2IDIuMTA0LTMuNjM5IDUuMjAxIDMuNDA2IDE3LjgzNCA2LjQxNCAyMy4yMjkuNzY4IDEuMzc2IDEuMzIyIDIuMzcxIDEuNTc2IDIuOTg1Ljk4OCAyLjM5NiAyLjI3NyA0LjAwNiAzLjMxMiA1LjMuOTExIDEuMTM4IDEuNyAyLjEyNSAxLjk4MiAzLjI4My4xMzEuMjMgMS45OSAyLjk4IDEzLjAyMS43MDMgMi43NjUtLjU3IDQuNDIzLS4wODMgNC45MyAxLjQ1Ljk5NyAzLjAxNS00LjU5NyA2LjUzMi03LjY5NCA3Ljk3LTIuNzc1IDEuMjktNy4yMDQgMi4xMDYtMTEuMDM2IDIuMTA2em0tNC42OTYtNC4wMjFjLjM1LjM1MyAyLjEwMS45NjIgNS43MjcuODA2IDMuMjI0LS4xMzggNi42MjQtLjgzOSA4LjY2NC0xLjc4NiAyLjYwOS0xLjIxMiA0LjM1MS0yLjU2NyA1LjI1My0zLjQ5MmwtLjUuMDkyYy03LjA1MyAxLjQ1Ni0xMi4wNDIgMS4yNjItMTQuODI4LS41NzdhNi4xNjIgNi4xNjIgMCAwMS0uNTQtLjQwMWMtLjMwMi4xMTktLjU4MS4xOTctLjc4LjI1My0xLjU4LjQ0My0zLjIxNC45MDItMi45OTYgNS4xMDV6bS00NS41NjIgOC45MTVjLTEuNzUyIDAtMy41OTYtLjIzOS01LjQ3OS0uNzEtMS45NTEtLjQ4OC01LjI0LTEuOTU3LTUuMTktNC4zNy4wNTctMi43MDcgMy45OTQtMy41MTkgNS40NzYtMy44MjQgNS4zNTQtMS4xMDMgNS43MDMtMS41NDUgNy4zNzYtMy42Ny40ODgtLjYxOSAxLjA5NS0xLjM5IDEuOTIzLTIuMzE0IDEuMjI5LTEuMzc2IDIuNTcyLTIuMDczIDMuOTkyLTIuMDczLjk4OSAwIDEuOC4zMzUgMi4zMzYuNTU4IDEuNzA4LjcwOCAzLjEzMyAyLjQyIDMuNzE5IDQuNDY3LjUyOSAxLjg0Ny4yNzYgMy42MjUtLjcxIDUuMDA2LTMuMjM3IDQuNTMzLTcuODg2IDYuOTMtMTMuNDQzIDYuOTN6bS03LjIyMi00Ljk0M2MuNDgxLjM3MiAxLjQ0NS44NjkgMi41MTggMS4xMzcgMS42MzEuNDA4IDMuMjEzLjYxNSA0LjcwNS42MTUgNC41NDYgMCA4LjE5Ni0xLjg4MiAxMC44NDctNS41OTQuNTUzLS43NzQuMzg3LTEuNzU3LjIzOS0yLjI3NC0uMzEtMS4wODMtMS4wOC0yLjA2OC0xLjg3My0yLjM5Ny0uNDMtLjE3OC0uNzg3LS4zMTQtMS4xMTUtLjMxNC0uMTc2IDAtLjcxMiAwLTEuNjE0IDEuMDA5YTQxLjE0NiA0MS4xNDYgMCAwMC0xLjc5NCAyLjE2MmMtMi4wODQgMi42NDYtMy4wMzkgMy41NDQtOS4yMzkgNC44MjEtMS41MTMuMzEtMi4yODkuNjI2LTIuNjc0LjgzNXptMTIuMjY5LTcuMzZhMS41OTYgMS41OTYgMCAwMS0xLjU3NS0xLjM1NCA4LjIxOCA4LjIxOCAwIDAxLS4wOC0uNzk5Yy00LjA2NC0uMDc2LTcuOTg1LTEuODItMTAuOTYyLTQuOTI2LTMuNzY0LTMuOTI3LTUuNDc3LTkuMzY4LTQuNjk5LTE0LjkyNy44NDUtNi4wMzcuNTI5LTExLjM2Ni4zNTktMTQuMjI5LS4wNDctLjc5Ni0uMDgxLTEuMzcxLS4wNzktMS43NjkuMDAzLS41MDUuMDEzLTEuODQ0IDQuNDg5LTQuMTEzIDEuNTkyLS44MDcgNC43ODQtMi4yMTUgOC4yNzEtMi41NzYgNS43NzctLjU5NyA5LjU4NSAxLjk3NiAxMC43MjUgNy4yNDYgMy4wNzcgMTQuMjI4LjI0NCAyMC41MjEtMS44MjUgMjUuMTE3LS4zODUuODU2LS43NDkgMS42NjQtMS4wNCAyLjQ0N2wtLjI1Ny42OWMtMS4wOTMgMi45MzEtMi4wMzggNS40NjMtMS43NDggNy4zNTRhMS41OTUgMS41OTUgMCAwMS0xLjMzNSAxLjgxOWwtLjI0NC4wMnpNNDIuNDY0IDQyLjI2bC4wNjIgMS4xMzljLjE3NiAyLjk3NC41MDQgOC41MDgtLjM4NCAxNC44Ni0uNjQxIDQuNTg1Ljc1OSA5LjA2IDMuODQzIDEyLjI3NiAyLjQzNyAyLjU0MiA1LjY0NCAzLjk0NSA4Ljk0IDMuOTQ1aC4wNjhjLjM2OS0xLjU1NS45ODItMy4xOTcgMS42NDItNC45NjZsLjI1NS0uNjg2Yy4zMjktLjg4NC43MTQtMS43NCAxLjEyMi0yLjY0NiAxLjk5MS00LjQyNCA0LjQ3LTkuOTMxIDEuNjE1LTIzLjEzMi0uNTY1LTIuNjE1LTEuOTM2LTQuMTI4LTQuMTg5LTQuNjI3LTQuNjI4LTEuMDIyLTExLjUyNSAyLjQ1OS0xMi45NzQgMy44Mzd6bTkuNjMtLjY3N2MtLjA4LjU2NCAxLjAzMyAyLjA3IDIuNDg1IDIuMjcxIDEuNDQ5LjIwMyAyLjY4OS0uOTc1IDIuNzY4LTEuNTM5LjA3OS0uNTY0LTEuMDMzLTEuMTg2LTIuNDg1LTEuMzg4LTEuNDUxLS4yMDItMi42OTEuMDkyLTIuNzY4LjY1NnptMi44MTggMi44MjZsLS40MDctLjAyOGMtLjktLjEyNS0xLjgxLS42OTItMi40MzMtMS41MTgtLjIxOS0uMjktLjU3Ni0uODUyLS41MDUtMS4zNTQuMTAxLS43MzYuOTk5LTEuMTc3IDIuNC0xLjE3Ny4zMTMgMCAuNjM5LjAyMy45NjcuMDY5Ljc2Ni4xMDYgMS40NzcuMzI3IDIuMDAyLjYyLjkxLjUwOC45NzcgMS4wNzUuOTM2IDEuMzY4LS4xMTIuODEzLTEuNDA1IDIuMDItMi45NiAyLjAyem0tMi4yODktMi43MzJjLjA0NS4zNDguOTA3IDEuNDk2IDIuMDI5IDEuNjUxbC4yNjEuMDE4YzEuMDM2IDAgMS44MS0uODE1IDEuOTAxLTEuMDgyLS4wOTYtLjE4Mi0uNzYyLS42MzQtMi4wMjUtLjgxYTUuODIzIDUuODIzIDAgMDAtLjgyMS0uMDU5Yy0uODEyIDAtMS4yNDMuMTgzLTEuMzQ1LjI4MnptNDMuNjA1LTEuMjQ1Yy4wNzkuNTY0LTEuMDMzIDIuMDctMi40ODQgMi4yNzItMS40NS4yMDItMi42OTEtLjk3NS0yLjc3MS0xLjUzOS0uMDc2LS41NjQgMS4wMzYtMS4xODcgMi40ODYtMS4zODggMS40NS0uMjAzIDIuNjg5LjA5MiAyLjc2OS42NTV6bS0yLjgxOSAyLjU2Yy0xLjM5NiAwLTIuNjAxLTEuMDg2LTIuNy0xLjc5MS0uMTE1LS44NDYgMS4yNzgtMS40ODkgMi43MTItMS42ODguMzE2LS4wNDQuNjI5LS4wNjYuOTMtLjA2NiAxLjIzOCAwIDIuMDU4LjM2MyAyLjE0Ljk0OS4wNTMuMzc5LS4yMzguOTY0LS43MzkgMS40OTItLjMzMS4zNDctMS4wMjYuOTQ4LTEuOTczIDEuMDc5bC0uMzcuMDI1em0uOTQzLTMuMDEzYy0uMjc2IDAtLjU2NC4wMjEtLjg1Ni4wNjEtMS40NDEuMjAxLTIuMzAxLjc3OS0yLjI1OSAxLjA4OS4wNDguMzQxLjk2OCAxLjMzMiAyLjE3MyAxLjMzMmwuMjk3LS4wMjFjLjc4Ny0uMTA5IDEuMzc4LS42MjMgMS42Ni0uOTE5LjQ0My0uNDY1LjYxOS0uOTAzLjU5OC0xLjA1Mi0uMDI4LS4xOTgtLjU2LS40OS0xLjYxMy0uNDl6bTMuOTY1IDMyLjg0M2ExLjU5NCAxLjU5NCAwIDAxLTEuMzI0LTIuNDgzYzMuMzk4LTUuMDc1IDIuNzc2LTEwLjI1IDIuMTc1LTE1LjI1NS0uMjU3LTIuMTMyLS41MjEtNC4zMzctLjQ1My02LjQ1My4wNy0yLjE3Ny4zNDctMy45NzMuNjE0LTUuNzEuMzE3LTIuMDU4LjYxNy00LjAwMi40OTMtNi4zMWExLjU5NSAxLjU5NSAwIDExMy4xODYtLjE3MmMuMTQyIDIuNjM4LS4xOTcgNC44MzgtLjUyNSA2Ljk2Ny0uMjUzIDEuNjQzLS41MTUgMy4zNDItLjU3OCA1LjMyNy0uMDYxIDEuODc0LjE3OCAzLjg2NC40MzEgNS45Ny42NCA1LjMyMiAxLjM2NSAxMS4zNTQtMi42OTEgMTcuNDExYTEuNTk2IDEuNTk2IDAgMDEtMS4zMjguNzA4eiI+PC9wYXRoPjwvc3ZnPg==",
|
|
310
|
+
url: "https://www.postgresql.org/",
|
|
311
|
+
tagline: "The world's most advanced open source relational database",
|
|
312
|
+
repo: "postgres/postgres",
|
|
313
|
+
links: [{
|
|
314
|
+
label: "Docs",
|
|
315
|
+
href: "https://www.postgresql.org/docs/"
|
|
316
|
+
}, {
|
|
317
|
+
label: "postgres.js (client)",
|
|
318
|
+
href: "https://github.com/porsager/postgres"
|
|
319
|
+
}]
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
category: "ORM / Query builder",
|
|
323
|
+
label: "Drizzle",
|
|
324
|
+
flag: "drizzle",
|
|
325
|
+
image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NUWVBFIHN2ZyBQVUJMSUMgIi0vL1czQy8vRFREIFNWRyAxLjEvL0VOIiAiaHR0cDovL3d3dy53My5vcmcvR3JhcGhpY3MvU1ZHLzEuMS9EVEQvc3ZnMTEuZHRkIj4KPHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgd2lkdGg9IjI4MHB4IiBoZWlnaHQ9IjI4MHB4IiBzdHlsZT0ic2hhcGUtcmVuZGVyaW5nOmdlb21ldHJpY1ByZWNpc2lvbjsgdGV4dC1yZW5kZXJpbmc6Z2VvbWV0cmljUHJlY2lzaW9uOyBpbWFnZS1yZW5kZXJpbmc6b3B0aW1pemVRdWFsaXR5OyBmaWxsLXJ1bGU6ZXZlbm9kZDsgY2xpcC1ydWxlOmV2ZW5vZGQiIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iIzAwMDAwMCIgZD0iTSAtMC41LC0wLjUgQyA5Mi44MzMzLC0wLjUgMTg2LjE2NywtMC41IDI3OS41LC0wLjVDIDI3OS41LDkyLjgzMzMgMjc5LjUsMTg2LjE2NyAyNzkuNSwyNzkuNUMgMTg2LjE2NywyNzkuNSA5Mi44MzMzLDI3OS41IC0wLjUsMjc5LjVDIC0wLjUsMTg2LjE2NyAtMC41LDkyLjgzMzMgLTAuNSwtMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTMzLjUsODQuNSBDIDE0Mi44MTQsODIuNzI2OSAxNDYuNjQ3LDg2LjM5MzUgMTQ1LDk1LjVDIDEzNS45MDYsMTEyLjAyOCAxMjYuNTcyLDEyOC4zNjIgMTE3LDE0NC41QyAxMTEuMjQ5LDE0OS45ODQgMTA2LjI0OSwxNDkuMzE3IDEwMiwxNDIuNUMgMTAxLjMzMywxNDAuODMzIDEwMS4zMzMsMTM5LjE2NyAxMDIsMTM3LjVDIDExMS41NDcsMTE5LjA0MSAxMjIuMDQ3LDEwMS4zNzUgMTMzLjUsODQuNSBaIi8+PC9nPgo8Zz48cGF0aCBzdHlsZT0ib3BhY2l0eToxIiBmaWxsPSIjYzBmMTRkIiBkPSJNIDIyMy41LDg0LjUgQyAyMzMuNTM5LDgzLjY5NzIgMjM3LjAzOSw4OC4wMzA1IDIzNCw5Ny41QyAyMjUuMzQ3LDExMi44MDEgMjE2LjY4MSwxMjguMTM1IDIwOCwxNDMuNUMgMjAzLjM4NywxNDkuNzM3IDE5OC4zODcsMTUwLjA3MSAxOTMsMTQ0LjVDIDE5MS41NzgsMTQxLjk3IDE5MS4yNDUsMTM5LjMwMyAxOTIsMTM2LjVDIDIwMC41MiwxMjIuNzk0IDIwOC41MiwxMDguNzk0IDIxNiw5NC41QyAyMTguMjg5LDkwLjg4MTIgMjIwLjc4OSw4Ny41NDc5IDIyMy41LDg0LjUgWiIvPjwvZz4KPGc+PHBhdGggc3R5bGU9Im9wYWNpdHk6MSIgZmlsbD0iI2MwZjE0ZCIgZD0iTSA3NS41LDEyMC41IEMgODMuOTg4NSwxMTkuNjE4IDg3LjgyMTgsMTIzLjI4NSA4NywxMzEuNUMgNzcuOTA1NywxNDguMDI4IDY4LjU3MjQsMTY0LjM2MiA1OSwxODAuNUMgNTYuMDQ1MywxODQuMjc3IDUyLjIxMiwxODUuNDQzIDQ3LjUsMTg0QyA0My44Njk3LDE4MC45NSA0Mi43MDMsMTc3LjExNyA0NCwxNzIuNUMgNTMsMTU2LjUgNjIsMTQwLjUgNzEsMTI0LjVDIDcyLjM5NjgsMTIyLjkzIDczLjg5NjgsMTIxLjU5NiA3NS41LDEyMC41IFoiLz48L2c+CjxnPjxwYXRoIHN0eWxlPSJvcGFjaXR5OjEiIGZpbGw9IiNjMWYyNGQiIGQ9Ik0gMTY1LjUsMTIwLjUgQyAxNzQuMTY0LDExOS4zMzIgMTc3Ljk5NywxMjIuOTk5IDE3NywxMzEuNUMgMTY3LjQxNCwxNDcuNjcxIDE1OC4wOCwxNjQuMDA0IDE0OSwxODAuNUMgMTQ2LjM5OCwxODQuMjEyIDE0Mi44OTgsMTg1LjM3OCAxMzguNSwxODRDIDEzMy45MzEsMTgxLjQ1OSAxMzIuNDMxLDE3Ny42MjUgMTM0LDE3Mi41QyAxNDMuNTcyLDE1Ni4zNjIgMTUyLjkwNiwxNDAuMDI4IDE2MiwxMjMuNUMgMTYzLjE0NSwxMjIuMzY0IDE2NC4zMTIsMTIxLjM2NCAxNjUuNSwxMjAuNSBaIi8+PC9nPgo8L3N2Zz4K",
|
|
326
|
+
url: "https://orm.drizzle.team/",
|
|
327
|
+
tagline: "Headless TypeScript ORM that feels like SPA with SSR",
|
|
328
|
+
repo: "drizzle-team/drizzle-orm",
|
|
329
|
+
links: [{
|
|
330
|
+
label: "Docs & Getting started",
|
|
331
|
+
href: "https://orm.drizzle.team/docs/overview"
|
|
332
|
+
}]
|
|
333
|
+
},
|
|
334
|
+
{
|
|
335
|
+
category: "ORM / Query builder",
|
|
319
336
|
label: "Kysely",
|
|
320
337
|
flag: "kysely",
|
|
321
338
|
image: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0nMTMyJyBoZWlnaHQ9JzEzMicgdmlld0JveD0nMCAwIDEzMiAxMzInIGZpbGw9J25vbmUnIHhtbG5zPSdodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Zyc+PGcgY2xpcC1wYXRoPSd1cmwoI2NsaXAwXzhfMyknPjxyZWN0IHg9JzInIHk9JzInIHdpZHRoPScxMjgnIGhlaWdodD0nMTI4JyByeD0nMTYnIGZpbGw9J3doaXRlJy8+PHBhdGggZD0nTTQxLjI5ODMgMTA5VjIzLjkwOTFINDYuNDkxOFY3My4zMUg0Ny4wNzM1TDkxLjk0NTcgMjMuOTA5MUg5OC44NDI3TDYxLjkwNjIgNjQuMTY5NEw5OC41MTAzIDEwOUg5Mi4wMjg4TDU4LjU4MjQgNjcuOTA4N0w0Ni40OTE4IDgxLjI4NzNWMTA5SDQxLjI5ODNaJyBmaWxsPSdibGFjaycvPjwvZz48cmVjdCB4PScyJyB5PScyJyB3aWR0aD0nMTI4JyBoZWlnaHQ9JzEyOCcgcng9JzE2JyBzdHJva2U9JyMxMjEyMTInIHN0cm9rZS13aWR0aD0nNCcvPjxkZWZzPjxjbGlwUGF0aCBpZD0nY2xpcDBfOF8zJz48cmVjdCB4PScyJyB5PScyJyB3aWR0aD0nMTI4JyBoZWlnaHQ9JzEyOCcgcng9JzE2JyBmaWxsPSd3aGl0ZScvPjwvY2xpcFBhdGg+PC9kZWZzPjwvc3ZnPgo=",
|
|
@@ -328,7 +345,7 @@ const features = [
|
|
|
328
345
|
}]
|
|
329
346
|
},
|
|
330
347
|
{
|
|
331
|
-
category: "
|
|
348
|
+
category: "ORM / Query builder",
|
|
332
349
|
label: "Prisma",
|
|
333
350
|
flag: "prisma",
|
|
334
351
|
image: "data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIwLjgzZW0iIGhlaWdodD0iMWVtIiB2aWV3Qm94PSIwIDAgMjU2IDMxMCI+PHBhdGggZD0iTTI1NC4zMTMgMjM1LjUxOUwxNDggOS43NDlBMTcuMDYzIDE3LjA2MyAwIDAgMCAxMzMuNDczLjAzN2ExNi44NyAxNi44NyAwIDAgMC0xNS41MzMgOC4wNTJMMi42MzMgMTk0Ljg0OGExNy40NjUgMTcuNDY1IDAgMCAwIC4xOTMgMTguNzQ3TDU5LjIgMzAwLjg5NmExOC4xMyAxOC4xMyAwIDAgMCAyMC4zNjMgNy40ODlsMTYzLjU5OS00OC4zOTJhMTcuOTI5IDE3LjkyOSAwIDAgMCAxMS4yNi05LjcyMmExNy41NDIgMTcuNTQyIDAgMCAwLS4xMDEtMTQuNzZsLS4wMDguMDA4Wm0tMjMuODAyIDkuNjgzbC0xMzguODIzIDQxLjA1Yy00LjIzNSAxLjI2LTguMy0yLjQxMS03LjQxOS02LjY4NWw0OS41OTgtMjM3LjQ4NGMuOTI3LTQuNDQzIDcuMDYzLTUuMTQ3IDkuMDAzLTEuMDM1bDkxLjgxNCAxOTQuOTczYTYuNjMgNi42MyAwIDAgMS00LjE4IDkuMThoLjAwN1oiLz48L3N2Zz4=",
|
|
@@ -368,6 +385,15 @@ const features = [
|
|
|
368
385
|
url: "https://segment.com",
|
|
369
386
|
disabled: true
|
|
370
387
|
},
|
|
388
|
+
{
|
|
389
|
+
category: "Hosting",
|
|
390
|
+
label: "DIY",
|
|
391
|
+
flag: "hosting-diy",
|
|
392
|
+
image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pg0KDQo8IURPQ1RZUEUgc3ZnICBQVUJMSUMgJy0vL1czQy8vRFREIFNWRyAxLjEvL0VOJyAgJ2h0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCc+DQoNCjwhLS0gVXBsb2FkZWQgdG86IFNWRyBSZXBvLCB3d3cuc3ZncmVwby5jb20sIEdlbmVyYXRvcjogU1ZHIFJlcG8gTWl4ZXIgVG9vbHMgLS0+DQo8c3ZnIGZpbGw9IiMwMDAwMDAiIHdpZHRoPSI4MDBweCIgaGVpZ2h0PSI4MDBweCIgdmlld0JveD0iMCAwIDEwNjkgMTA2OSIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyIgdmVyc2lvbj0iMS4xIiB4bWw6c3BhY2U9InByZXNlcnZlIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHhtbG5zOnNlcmlmPSJodHRwOi8vd3d3LnNlcmlmLmNvbS8iIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIj4NCg0KPHJlY3QgaGVpZ2h0PSIxMDY2LjY3IiBpZD0iU3RvcmFnZS1ob3N0aW5nIiBzdHlsZT0iZmlsbDpub25lOyIgd2lkdGg9IjEwNjYuNjciIHg9IjEuMTY3IiB5PSIwLjU5MiIvPg0KDQo8Zz4NCg0KPHBhdGggZD0iTTcxMS41ODQsNjE3LjI1OGwtMCw4My4zMzRjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTgzLjMzNGMtMCwtMTcuMjQ3IC0xNC4wMDMsLTMxLjI1IC0zMS4yNSwtMzEuMjVjLTE3LjI0OCwwIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0tMCwtMzMzLjMzM2wtMCw4My4zMzNjLTAsMTcuMjQ4IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsMCAzMS4yNSwtMTQuMDAyIDMxLjI1LC0zMS4yNWwtMCwtODMuMzMzYy0wLC0xNy4yNDcgLTE0LjAwMywtMzEuMjUgLTMxLjI1LC0zMS4yNWMtMTcuMjQ4LC0wIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0xLjE2NSwtMTM4LjAyNGwtMCwtMjguNjQzYy0wLC0xNy4yNTkgLTEzLjk5MSwtMzEuMjUgLTMxLjI1LC0zMS4yNWwtMjkyLjgzMiwwYy0xNy4yNTksMCAtMzEuMjUsMTMuOTkxIC0zMS4yNSwzMS4yNWwwLDI4LjY0M2MwLDI5Ljg2OSAxMC42Niw1OC40MjkgMjkuMjE1LDc5LjU1YzE5LjkxLDIyLjY2NSA0Ny4wODUsMzUuMDM0IDc1LjI0MywzNS4wMzRsMTQ2LjQxNiwtMGMyOC4xNTgsLTAgNTUuMzMzLC0xMi4zNjkgNzUuMjQzLC0zNS4wMzRjMTguNTU1LC0yMS4xMjEgMjkuMjE1LC00OS42ODEgMjkuMjE1LC03OS41NWwtMCwtMFptLTYyLjU1NCwyLjYwN2MtMC41NDEsMTMuMzk1IC01LjI1MywyNi4xNzUgLTEzLjYxNSwzNS42OTRjLTcuNTQ5LDguNTkyIC0xNy42MTIsMTMuNzgyIC0yOC4yODcsMTMuNzgzYy0wLjAwMiwtMCAtMTQ2LjQxOCwtMCAtMTQ2LjQxOCwtMGMtMTAuNjc3LC0wLjAwMSAtMjAuNzQsLTUuMTkxIC0yOC4yODksLTEzLjc4M2MtOC4zNjIsLTkuNTE5IC0xMy4wNzQsLTIyLjI5OSAtMTMuNjE1LC0zNS42OTRsMjMwLjIyNCwwWiIgc3R5bGU9ImZpbGwtb3BhY2l0eTowLjU7Ii8+DQoNCjxwYXRoIGQ9Ik0xMDEuNjg5LDQ5Mi4yNThjLTIyLjEzMSwyMC44OTcgLTM1LjkzOSw1MC41MDMgLTM1LjkzOSw4My4zMzRjMCw2Mi4wMiAwLDE0Ni4zMTMgMCwyMDguMzMzYzAsNTIuNDQ4IDM1LjIzOSw5Ni42NjYgODMuMzM0LDExMC4yN2wtMCw1Ni4zOTdjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTUyLjA4NGw2NDUuODMzLDBsMCw1Mi4wODRjMCwxNy4yNDcgMTQuMDAzLDMxLjI1IDMxLjI1LDMxLjI1YzE3LjI0OCwtMCAzMS4yNSwtMTQuMDAzIDMxLjI1LC0zMS4yNWwwLC01Ni4zOTdjNDguMDk1LC0xMy42MDQgODMuMzM0LC01Ny44MjIgODMuMzMzLC0xMTAuMjdsMCwtMjA4LjMzM2MwLjAwMSwtMzIuODMxIC0xMy44MDcsLTYyLjQzNyAtMzUuOTM4LC04My4zMzRjMjIuMTMxLC0yMC44OTYgMzUuOTM5LC01MC41MDIgMzUuOTM4LC04My4zMzNsMCwtMjA4LjMzM2MwLjAwMSwtNjMuMjgzIC01MS4zLC0xMTQuNTgzIC0xMTQuNTgyLC0xMTQuNTg0bC03MDguMzM1LDBjLTYzLjI4MiwwLjAwMSAtMTE0LjU4Myw1MS4zMDEgLTExNC41ODMsMTE0LjU4NGMwLDYyLjAyIDAsMTQ2LjMxMyAwLDIwOC4zMzNjMCwzMi44MzEgMTMuODA4LDYyLjQzNyAzNS45MzksODMuMzMzWm04MzkuMDYxLDgzLjMzNGwwLDIwOC4zMzNjMC4wMDEsMjguNzY0IC0yMy4zMTcsNTIuMDgyIC01Mi4wODEsNTIuMDgzYy0wLjAwMywwIC03MDguMzM1LDAgLTcwOC4zMzUsMGMtMjguNzY2LC0wLjAwMSAtNTIuMDg0LC0yMy4zMTkgLTUyLjA4NCwtNTIuMDgzYzAsLTYyLjAyIDAsLTE0Ni4zMTMgMCwtMjA4LjMzM2MwLC0yOC43NjQgMjMuMzE4LC01Mi4wODMgNTIuMDgyLC01Mi4wODRjMC4wMDMsMCA3MDguMzM1LDAgNzA4LjMzNSwwYzI4Ljc2NiwwLjAwMSA1Mi4wODQsMjMuMzIgNTIuMDgzLDUyLjA4NFptLTY1Ni4yNSwtMzEuMjVjLTYzLjI0LC0wIC0xMTQuNTgzLDUxLjM0MyAtMTE0LjU4MywxMTQuNTgzYzAsNjMuMjQgNTEuMzQzLDExNC41ODMgMTE0LjU4MywxMTQuNTgzYzYzLjI0MSwwIDExNC41ODQsLTUxLjM0MyAxMTQuNTg0LC0xMTQuNTgzYy0wLC02My4yNCAtNTEuMzQzLC0xMTQuNTgzIC0xMTQuNTg0LC0xMTQuNTgzWm01NTIuMDg0LDcyLjkxNmwtMCw4My4zMzRjLTAsMTcuMjQ3IDE0LjAwMiwzMS4yNSAzMS4yNSwzMS4yNWMxNy4yNDcsLTAgMzEuMjUsLTE0LjAwMyAzMS4yNSwtMzEuMjVsLTAsLTgzLjMzNGMtMCwtMTcuMjQ3IC0xNC4wMDMsLTMxLjI1IC0zMS4yNSwtMzEuMjVjLTE3LjI0OCwwIC0zMS4yNSwxNC4wMDMgLTMxLjI1LDMxLjI1Wm0tNTUyLjA4NCwtMTAuNDE2YzI4Ljc0NiwtMCA1Mi4wODQsMjMuMzM3IDUyLjA4NCw1Mi4wODNjLTAsMjguNzQ2IC0yMy4zMzgsNTIuMDgzIC01Mi4wODQsNTIuMDgzYy0yOC43NDUsMCAtNTIuMDgzLC0yMy4zMzcgLTUyLjA4MywtNTIuMDgzYzAsLTI4Ljc0NiAyMy4zMzgsLTUyLjA4MyA1Mi4wODMsLTUyLjA4M1ptNjU2LjI1LC00MDYuMjVsMCwyMDguMzMzYzAuMDAxLDI4Ljc2NCAtMjMuMzE3LDUyLjA4MiAtNTIuMDgxLDUyLjA4M2MtMC4wMDMsMCAtNzA4LjMzNSwwIC03MDguMzM1LDBjLTI4Ljc2NiwtMC4wMDEgLTUyLjA4NCwtMjMuMzE5IC01Mi4wODQsLTUyLjA4M2MwLC02Mi4wMiAwLC0xNDYuMzEzIDAsLTIwOC4zMzNjMCwtMjguNzY0IDIzLjMxOCwtNTIuMDgzIDUyLjA4MiwtNTIuMDg0YzAuMDAzLDAgNzA4LjMzNSwwIDcwOC4zMzUsMGMyOC43NjYsMC4wMDEgNTIuMDg0LDIzLjMyIDUyLjA4Myw1Mi4wODRabS02NTYuMjUsMTAuNDE2Yy02My4yNCwwIC0xMTQuNTgzLDUxLjM0MyAtMTE0LjU4MywxMTQuNTg0YzAsNjMuMjQgNTEuMzQzLDExNC41ODMgMTE0LjU4MywxMTQuNTgzYzYzLjI0MSwtMCAxMTQuNTg0LC01MS4zNDMgMTE0LjU4NCwtMTE0LjU4M2MtMCwtNjMuMjQxIC01MS4zNDMsLTExNC41ODQgLTExNC41ODQsLTExNC41ODRabTU1Mi4wODQsNzIuOTE3bC0wLDgzLjMzM2MtMCwxNy4yNDggMTQuMDAyLDMxLjI1IDMxLjI1LDMxLjI1YzE3LjI0NywwIDMxLjI1LC0xNC4wMDIgMzEuMjUsLTMxLjI1bC0wLC04My4zMzNjLTAsLTE3LjI0NyAtMTQuMDAzLC0zMS4yNSAtMzEuMjUsLTMxLjI1Yy0xNy4yNDgsLTAgLTMxLjI1LDE0LjAwMyAtMzEuMjUsMzEuMjVabS01NTIuMDg0LC0xMC40MTdjMjguNzQ2LDAgNTIuMDg0LDIzLjMzOCA1Mi4wODQsNTIuMDg0Yy0wLDI4Ljc0NSAtMjMuMzM4LDUyLjA4MyAtNTIuMDg0LDUyLjA4M2MtMjguNzQ1LC0wIC01Mi4wODMsLTIzLjMzOCAtNTIuMDgzLC01Mi4wODNjMCwtMjguNzQ2IDIzLjMzOCwtNTIuMDg0IDUyLjA4MywtNTIuMDg0WiIvPg0KDQo8L2c+DQoNCjwvc3ZnPg==",
|
|
393
|
+
invisibleCli: true,
|
|
394
|
+
selected: true,
|
|
395
|
+
tooltip: "Set up deployment yourself"
|
|
396
|
+
},
|
|
371
397
|
{
|
|
372
398
|
category: "Hosting",
|
|
373
399
|
label: "Cloudflare",
|
|
@@ -441,10 +467,23 @@ const features = [
|
|
|
441
467
|
href: "https://github.com/aws/aws-cdk"
|
|
442
468
|
}]
|
|
443
469
|
},
|
|
470
|
+
{
|
|
471
|
+
category: "Hosting",
|
|
472
|
+
label: "Docker",
|
|
473
|
+
flag: "docker",
|
|
474
|
+
image: "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz48IS0tIFVwbG9hZGVkIHRvOiBTVkcgUmVwbywgd3d3LnN2Z3JlcG8uY29tLCBHZW5lcmF0b3I6IFNWRyBSZXBvIE1peGVyIFRvb2xzIC0tPgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKYXJpYS1sYWJlbD0iRG9ja2VyIiByb2xlPSJpbWciCnZpZXdCb3g9IjAgMCA1MTIgNTEyIj48cmVjdAp3aWR0aD0iNTEyIiBoZWlnaHQ9IjUxMiIKcng9IjE1JSIKZmlsbD0iI2ZmZmZmZiIvPjxwYXRoIHN0cm9rZT0iIzA2NmRhNSIgc3Ryb2tlLXdpZHRoPSIzOCIgZD0iTTI5NiAyMjZoNDJtLTkyIDBoNDJtLTkxIDBoNDJtLTkxIDBoNDFtLTkxIDBoNDJtOC00Nmg0MW04IDBoNDJtNyAwaDQybS00Mi00Nmg0MiIvPjxwYXRoIGZpbGw9IiMwNjZkYTUiIGQ9Im00NzIgMjI4cy0xOC0xNy01NS0xMWMtNC0yOS0zNS00Ni0zNS00NnMtMjkgMzUtOCA3NGMtNiAzLTE2IDctMzEgN0g2OGMtNSAxOS01IDE0NSAxMzMgMTQ1IDk5IDAgMTczLTQ2IDIwOC0xMzAgNTIgNCA2My0zOSA2My0zOSIvPjwvc3ZnPg==",
|
|
475
|
+
url: "https://www.docker.com/",
|
|
476
|
+
tagline: "A safer container ecosystem, for everyone",
|
|
477
|
+
links: [{
|
|
478
|
+
label: "Docs",
|
|
479
|
+
href: "https://docs.docker.com"
|
|
480
|
+
}]
|
|
481
|
+
},
|
|
444
482
|
{
|
|
445
483
|
category: "Hosting",
|
|
446
484
|
label: "Dokploy",
|
|
447
485
|
flag: "dokploy",
|
|
486
|
+
dependsOn: ["docker"],
|
|
448
487
|
image: "data:image/svg+xml;base64,PHN2ZwogICB2aWV3Qm94PSIwIDAgNTk5Ljk5OTk5IDU5OS45OTk5OSIKICAgY2xhc3M9ImgtMTAgdy1hdXRvIgogICB3aWR0aD0iNjAwIgogICBoZWlnaHQ9IjYwMCIKICAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KICA8cGF0aAogICAgIGlkPSJwYXRoNCIKICAgICBzdHlsZT0iZGlzcGxheTppbmxpbmU7ZmlsbC1ydWxlOmV2ZW5vZGQ7c3Ryb2tlLXdpZHRoOjEuMDUxMjE7c3Ryb2tlLWxpbmVjYXA6cm91bmQ7c3Ryb2tlLWxpbmVqb2luOnJvdW5kO3N0cm9rZS1kYXNob2Zmc2V0OjEwNS44Mjc7cGFpbnQtb3JkZXI6c3Ryb2tlIGZpbGwgbWFya2VycyIKICAgICBkPSJtIDQxNS42NDY5NCwxMzUuMTMwNTggYyAtNC4xMzAyNSwwLjg4NzE2IC00LjcwODgyLDQuOTgzMTUgLTQuMTMwMTUsMTUuODg3OTUgMC42MTU2LDExLjYwMDQgNS4zOTg1MywyOC4xMTAxMiAyNi45NTM2MSw0My42ODAzMiA5LjM3NTc5LDcuMDA3MyAyMC4yODU3NSw1LjE0NTUyIDE2Ljg0Mzk2LDExLjQ4MzM1IC05LjQxNzExLDE0LjQ3OTI1IC0xMy44NDk5NywxNy4wNzIxMyAtMzMuMTMzODMsMjMuMDI3NDMgLTguOTUyNzMsMi43NjQ4MSAtMjQuMDU2NDIsMS41NDQ0IC00MS42MDkwNSwtMy4zNDg2OCAtMTcuNTUyNjIsLTQuODkzMDcgLTM3LjQ2OTcxLC0xMy4wMzI2NCAtNTYuOTk3MzYsLTIxLjgyNjk4IC0xOS41Mjc2LC04Ljc5NDM1IC0zOC42ODEwMiwtMTguMjI1MzIgLTU1LjIxNTIzLC0yNS43MzAwMiAtMTYuNTM0MTYsLTcuNTA0NjggLTI5LjUzNjUsLTEzLjM0MzU4IC00MS4yODQ2MywtMTQuMjk2MDUgLTYuMTE2MjIsLTAuNDk1ODUgLTEyLjM0OTU2LC0wLjcyMjQgLTE4LjgzOTY3LC0wLjc4NDI5IC0xOS40NzAzMiwtMC4xODU2OCAtNDEuMjQ4NjksMS4xMTY5MSAtNjkuMDk2NTQsMS4xMTY5MSAtMTguODcwNjcsMCAtMzIuOTE0NjMsNi4zMTU3OCAtMzkuNzE4MDg4LDE3LjgyMzM1IC02LjgwMzQ1OCwxMS41MDc1NiAtNi44NDI2MTksMjQuNTI3ODkgLTcuMjEyNjk5LDM4LjU5MDkxIC0wLjM2MTUzNCwxMy43MzgyOSAtMS4wMjQyLDIzLjk2MzMgLTAuMzQ0OTI4LDMzLjIxMTY4IDAuNjc5MjczLDkuMjQ4MzYgMy4xOTMyODUsMTguMDQ2NDUgOS4wMDA5ODUsMjUuNDQyNTcgMi42MjE0MywzLjMzODQgNS4zMTAxNyw1LjI5NzAxIDkuMzA4OTYsOC4yMjY5NiAzLjk5ODc5LDIuOTI5OTIgOS4wNjM4OCw2LjI5MDYxIDE1LjEwNSw5Ljk3MDA2IDEyLjA4MjIyLDcuMzU4ODkgMjguMDQwMjMsMTUuOTY3MTYgNDYuNDMxODcsMjQuMjM1MzMgMzYuNzgzMjcsMTYuNTM2MzQgODMuMTY4MjksMzEuODQ0MjggMTI3LjY5OTQ1LDMxLjg0NDI4IDEwMy4xNzAxMywwIDIwMi42MzMxMSwtNzkuODI2MjggMjAyLjYzMzExLC03OS44MjYyOCA0LjU2MTc2LC0zLjU5MTEyIDUuMzQ4NjIsLTEwLjIwMDM1IDEuNzU3NDksLTE0Ljc2MjEyIC0zLjU5MTEyLC00LjU2MTc2IC0xMC4yMDAzNSwtNS4zNDg2MiAtMTQuNzYyMTEsLTEuNzU3NDggMCwwIC05Ny41OTg2Myw3NS4zMjE2NyAtMTg5LjYyODQ5LDc1LjMyMTY3IC0zOS42MTQyNiwwIC04My45NjIxOSwtMTQuMjA5NjEgLTExOS4wNzgzLC0yOS45OTY0NSAtMTcuNTU4MDUsLTcuODkzNDEgLTMyLjg0MzE5LC0xNi4xNDk4OSAtNDQuMTE1OTMsLTIzLjAxNTc2IC01LjYzNjM3LC0zLjQzMjkyIC0xMC4yNzgxLC02LjUyNjIyIC0xMy42MTY0NSwtOC45NzIyMyAtMy4zMzgzNSwtMi40NDYwMyAtNS42MTc1OSwtNC43ODU3MiAtNS4xOTg1NywtNC4yNTIwNyAtMS4yODA5OCwtMS42MzEzNyAtMi4xNTM3NSwtMy4xOTg2MSAtMi44MzUzOSwtNC45NTAxMyBoIDUzLjg0NTc4IGMgMTkuMTA2NzksMCAzMi44MzI1OCw3Ljc0Njc1IDUyLjMyNDQsMTYuNzIwODIgMTkuNDkxODIsOC45NzQwNSA0NC4xNDQwOCwxOC4zNTQwMSA4MS4wNjQzMywxNy42NzM0NyA1Mi44NDgxNywtMC45NzQxNyA4NC41OTQ1OCwtMTEuNDI0OSAxMTQuODI4MywtMjguODQ2NyAxNy40ODAyOSwtMTAuMDcyOCAzMC40NjM0NSwtMTguNTg5OSA0MS43NTQ3MiwtMzEuMDk4NTcgNy4zMTgyNSwtOC41NjAyNCAxMS43NDM5MiwtMTQuNTEyIDE3LjQwNDI4LC0yNC4yNTc3MyAzLjQ2MjExLC02LjA4NzU0IDkuOTc4ODcsLTYuNzc0NCAxOC4wNjA1OCwtNi43MTcxMiAxNS4zOTk1LDAuMTA5MTUgMzUuMTM5NjEsLTE5LjIwMjg4IDQxLjcxNzY4LC0zMC4zMzQwNSA2LjU3ODA5LC0xMS4xMzExOCA5Ljk5NjgsLTIyLjIxODc2IDAuNDA5MzIsLTIyLjI2NjYxIC05LjU4NzQ3LC0wLjA0NzggLTkuMTg0NjksOS42NjY5NiAtMjMuMjI2NywxMC45MDE5NCAtMTMuOTk2MjksMC40NTczOCAtMzEuODQ0ODEsMi4zNjIwNyAtMzkuNTI5MDUsMTcuMjczMTUgLTEuMzcyMTksLTUuNDg4NzQgLTguMTA5OTIsLTIxLjQwNDU4IC0zMC4yNTEwMywtMjcuMDY4NjcgLTIyLjE0MTEyLC01LjY2NDA4IC0xMy41MjU4OSwtMjEuMjg2OTcgLTI3LjMxOTYzLC0xOC4zMjQxNiB6IG0gLTIwNy42MTk3MSw0OS4xNDgwNCBjIDE4LjU1OTM3LC0xLjMxODc3IDM0Ljk4NDMzLDUuNzU0NzYgNTEuNjQyNzYsMTMuMTcwOTEgMTYuMDU0NjIsNy4yODcwMiAzNS4zMDkxNCwxNi43NjQ5MSA1NS4yNzA2NiwyNS43NTQ2NSAxOS45NjE1Miw4Ljk4OTc1IDQwLjYxNywxNy41MDk5NSA1OS45ODQ2OSwyMi45MDkgOS4xNTc3MywyLjU1Mjg2IDE4LjAxNjM0LDQuNDE4NzkgMjYuNTI2NjMsNS4yNDU3OCAtMjYuMzY2MzgsMTQuNDkyOTQgLTUyLjQ5MTYxLDIyLjYxMzU0IC0xMDAuMDQxNTUsMjMuNDkwMDQgLTMzLjMyNjQsMC42MTQzIC01My4zMTY5MywtNy4yMDQwNCAtNzEuODgyNjYsLTE1Ljc1MTc0IC0xOC41NjU3MywtOC41NDc2OSAtMzYuMzE0OTEsLTE4LjY0NjY1IC02MS4xMTgwMiwtMTguNjQ2NjUgaCAtNTUuNzAxODMgYyAwLjEwNjc3LC01LjM4Mjk0IDAuMzE3MTMsLTExLjYxMTI2IDAuNTE1MzUsLTE5LjE0MzU0IDAuMzYxNzUsLTEzLjc0NjU3IDEuNTU4MTMsLTIzLjgxNDc1IDQuMjk1MTgsLTI4LjQ0NDI3IDIuNzM3MDMsLTQuNjI5NTEgNi41NDA4NiwtNy40OTgwOCAyMS42MTk2MSwtNy40OTgwOCAyOC40NzU3NSwwIDUwLjQ2MjMyLC0xLjIyMjUgNjguODg5MTgsLTEuMDg2MSB6IG0gLTI1LjcxMTU1LDIwLjIxMzIgYyAtNS45NjE1NSwtNWUtNCAtMTAuNzk0OCw0LjgzMTgyIC0xMC43OTU0MywxMC43OTMzOSAtNWUtNCw1Ljk2MjM1IDQuODMzMDgsMTAuNzk1OTQgMTAuNzk1NDMsMTAuNzk1NDMgNS45NjE1NywtNi4zZS00IDEwLjc5MzksLTQuODMzODggMTAuNzkzNCwtMTAuNzk1NDMgLTYuM2UtNCwtNS45NjA3NyAtNC44MzI2MywtMTAuNzkyNzYgLTEwLjc5MzQsLTEwLjc5MzM5IHogbSAtNzIuMTcwMDksMTAxLjc0MzYgYyAtMC42NzU3OSwtMC4wMTggLTEuMzU2MDQsMC4wMDIgLTIuMDM2NzIsMC4wNjE3IC00Ljc0NDEsMC40MTcwNCAtOS4yNDU1NDYsMy4wOTcxNiAtMTEuODY1MTI0LDYuNjQ4MDkgLTIuNjE5NTc3LDMuNTUwOTMgLTMuNjU4NzA0LDcuNjgxNzEgLTMuNjU4NzA0LDExLjczNzgzIC00LjgxZS00LDEwNy43OTU1NiA5Mi44MzU5MTgsMTg4Ljc1OTg2IDIwNy40MTQ4NjgsMTg4Ljc2IDExNC41Nzg5NCwtMS40ZS00IDIwNy40MTUzNiwtODAuOTY0NDQgMjA3LjQxNDg3LC0xODguNzYgMCwtNC4wNTYxMiAtMS4wMzkxMiwtOC4xODY5IC0zLjY1ODY5LC0xMS43Mzc4MyAtMi42MTk1OSwtMy41NTA5MyAtNy4xMjEwMywtNi4yMzEwNSAtMTEuODY1MTMsLTYuNjQ4MDkgLTEuMzYxMzYsLTAuMTE5NzMgLTIuNzE4OTQsLTAuMDc2NiAtNC4wNDg4LDAuMTAwNiAtMy41NTc0MywwLjQ3MzYgLTYuODk1MywxLjg3NTc1IC0xMC4wODcxLDMuOTIxNTEgLTMyLjYzMzc3LDIwLjkxNjQ1IC05NS41MDU3OSw3My41NTE4MiAtMTc3Ljc1NTE1LDczLjU1MTgyIC04Mi4yNDkzNSwwIC0xNDUuMTIxMzgsLTUyLjYzNTM3IC0xNzcuNzU1MTMsLTczLjU1MTg2IC0zLjE5MTgsLTIuMDQ1NzYgLTYuNTI5NjgsLTMuNDQ3OSAtMTAuMDg3MSwtMy45MjE1MSAtMC42NjQ5MywtMC4wODg1IC0xLjMzNjI5LC0wLjE0NDIyIC0yLjAxMjA5LC0wLjE2MjIgeiBtIDEuNTY2NTUsMTkuOTk5NjkgYyAwLjEzNzksMC4wODA3IDAuMTAzMTMsMC4wMTk5IDAuMjU0NiwwLjExNzAzIDI5LjQxMjQ4LDE4Ljg1MTgzIDk3LjU0MTU4LDc2LjU2MTc4IDE4OC4wMzMxNyw3Ni41NjE3OCA5MC40OTE1OSwwIDE1OC42MjA3MSwtNTcuNzA5OTUgMTg4LjAzMzE5LC03Ni41NjE3OCAwLjE1MTQ3LC0wLjA5NyAwLjExNjcsLTAuMDM2MiAwLjI1NDU5LC0wLjExNzAzIC0wLjA2ODEsNy4zNTMxMyAtMC4yMDg5OCwxMC40Mjg2MSAtMS4yMDMxNCwxNy40Nzg0MyAtNy4zNTgwNyw5LjkxODUyIC04Ny40MjM3MSw5Ni45NDEyOSAtMTg3LjA4NDY0LDk2Ljk0MTI5IC05OS42NjA5NCwwIC0xNzkuNzI2NTYsLTg3LjAyMjc3IC0xODcuMDg0NjMsLTk2Ljk0MTI5IC0wLjk5NDE2LC03LjA0OTgyIC0xLjEzNTA1LC0xMC4xMjUzIC0xLjIwMzE0LC0xNy40Nzg0MyB6IG0gMTEuNDkxNDYsNTguNjkzMjYgYyAzNC4wNzAzNSwzMS4zMTkxNSAxMDAuNjAwOTksNzcuMDYyNzUgMTc2Ljc5NjMxLDc3LjA2Mjc1IDc2LjE5NTMxLDAgMTQyLjcyNTk4LC00NS43NDM2IDE3Ni43OTYzMywtNzcuMDYyNzUgLTI2LjE5NDM4LDY1LjMwNTMgLTk0LjQ3NTA2LDEwOS40NzE1MSAtMTc2Ljc5NjMzLDEwOS40NzE2NSAtODIuMzIxMjgsLTEuMWUtNCAtMTUwLjYwMTk0LC00NC4xNjYzNSAtMTc2Ljc5NjMxLC0xMDkuNDcxNjUgeiIKICAgICAvPgo8L3N2Zz4K",
|
|
449
488
|
url: "https://dokploy.com",
|
|
450
489
|
tagline: "Open source alternative to Heroku, Vercel, and Netlify. Self-host on any VPS",
|
|
@@ -452,9 +491,7 @@ const features = [
|
|
|
452
491
|
links: [{
|
|
453
492
|
label: "Docs",
|
|
454
493
|
href: "https://docs.dokploy.com"
|
|
455
|
-
}]
|
|
456
|
-
disabled: true,
|
|
457
|
-
invisibleCli: true
|
|
494
|
+
}]
|
|
458
495
|
},
|
|
459
496
|
{
|
|
460
497
|
category: "Linter",
|
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-0vnv7iCL.js";
|
|
2
2
|
|
|
3
3
|
//#region src/types.d.ts
|
|
4
4
|
interface Feature<C = string> {
|
|
@@ -17,6 +17,7 @@ interface Feature<C = string> {
|
|
|
17
17
|
invisibleCli?: boolean;
|
|
18
18
|
readonly?: boolean;
|
|
19
19
|
selected?: boolean;
|
|
20
|
+
tooltip?: string;
|
|
20
21
|
}
|
|
21
22
|
interface FeatureLink {
|
|
22
23
|
label: string;
|
|
@@ -40,7 +41,13 @@ declare class BatiSet extends Set<Flags> {
|
|
|
40
41
|
constructor(flags: Flags[], allFeatures: ReadonlyArray<Feature>, pm: string);
|
|
41
42
|
private hasOneOf;
|
|
42
43
|
get hasServer(): boolean;
|
|
44
|
+
/** A database engine is selected (SQLite or PostgreSQL). */
|
|
43
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;
|
|
44
51
|
get hasD1(): boolean;
|
|
45
52
|
get hasDotEnvSecrets(): boolean;
|
|
46
53
|
get hasUD(): boolean;
|
|
@@ -50,4 +57,4 @@ declare class BatiSet extends Set<Flags> {
|
|
|
50
57
|
get hasPhoton(): boolean;
|
|
51
58
|
}
|
|
52
59
|
//#endregion
|
|
53
|
-
export { BatiSet, Category, CategoryLabels, Feature, FeatureLink, Flags, categories, categoriesGroups, cliFlags, features, flags };
|
|
60
|
+
export { BatiSet, type Category, CategoryLabels, type Feature, type FeatureLink, Flags, categories, categoriesGroups, cliFlags, features, flags };
|
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-uGphBBds.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,17 +118,27 @@ 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");
|
|
120
139
|
}
|
|
121
140
|
get hasUD() {
|
|
122
|
-
return this.has("cloudflare") || this.has("vercel") || this.has("netlify") || this.has("dokploy") || this.hasOneOf(this.#servers);
|
|
141
|
+
return this.has("cloudflare") || this.has("vercel") || this.has("netlify") || this.has("docker") || this.has("dokploy") || this.hasOneOf(this.#servers);
|
|
123
142
|
}
|
|
124
143
|
/**
|
|
125
144
|
* @deprecated
|
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-0vnv7iCL.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-uGphBBds.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
|
})
|
package/package.json
CHANGED
|
@@ -1,8 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@batijs/features",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.634",
|
|
4
4
|
"description": "",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"scripts": {
|
|
7
|
+
"test": "vitest run",
|
|
8
|
+
"test:ci": "vitest run",
|
|
9
|
+
"prepublishOnly": "bun run build",
|
|
10
|
+
"build": "tsdown",
|
|
11
|
+
"watch": "tsdown --watch"
|
|
12
|
+
},
|
|
6
13
|
"keywords": [],
|
|
7
14
|
"author": "Joël Charles <joel.charles91@gmail.com>",
|
|
8
15
|
"repository": "https://github.com/vikejs/bati",
|
|
@@ -30,11 +37,5 @@
|
|
|
30
37
|
},
|
|
31
38
|
"files": [
|
|
32
39
|
"dist/"
|
|
33
|
-
]
|
|
34
|
-
|
|
35
|
-
"test": "vitest run",
|
|
36
|
-
"test:ci": "vitest run",
|
|
37
|
-
"build": "tsdown",
|
|
38
|
-
"watch": "tsdown --watch"
|
|
39
|
-
}
|
|
40
|
-
}
|
|
40
|
+
]
|
|
41
|
+
}
|
package/LICENSE.md
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2023-present Joël Charles
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
|
6
|
-
|
|
7
|
-
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
|
8
|
-
|
|
9
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|