insforge 0.3.2 → 1.2.10

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.
Files changed (507) hide show
  1. package/.claude-plugin/marketplace.json +20 -0
  2. package/.cursor/rules/cursor-rules.mdc +94 -0
  3. package/.dockerignore +3 -0
  4. package/.env.example +33 -4
  5. package/.github/ISSUE_TEMPLATE/bug_report.yml +13 -60
  6. package/.github/ISSUE_TEMPLATE/config.yml +2 -2
  7. package/.github/ISSUE_TEMPLATE/feature_request.yml +10 -63
  8. package/.github/PULL_REQUEST_TEMPLATE.md +7 -0
  9. package/.github/workflows/build-image.yml +2 -1
  10. package/.github/workflows/e2e.yml +63 -0
  11. package/CHANGELOG.md +41 -0
  12. package/CLAUDE_PLUGIN.md +104 -0
  13. package/CODE_OF_CONDUCT.md +128 -0
  14. package/CONTRIBUTING.md +1 -1
  15. package/Dockerfile +4 -1
  16. package/README.md +66 -18
  17. package/assets/mcpInstallv2.png +0 -0
  18. package/assets/sampleResponse.png +0 -0
  19. package/auth/index.html +13 -0
  20. package/auth/package.json +28 -0
  21. package/auth/public/favicon.ico +0 -0
  22. package/auth/src/App.tsx +33 -0
  23. package/auth/src/components/ErrorCard.tsx +37 -0
  24. package/auth/src/components/Layout.tsx +13 -0
  25. package/auth/src/index.css +19 -0
  26. package/auth/src/lib/broadcastService.ts +115 -0
  27. package/auth/src/lib/utils.ts +11 -0
  28. package/auth/src/main.tsx +22 -0
  29. package/auth/src/pages/ForgotPasswordPage.tsx +11 -0
  30. package/auth/src/pages/ResetPasswordPage.tsx +11 -0
  31. package/auth/src/pages/SignInPage.tsx +57 -0
  32. package/auth/src/pages/SignUpPage.tsx +57 -0
  33. package/auth/src/pages/VerifyEmailPage.tsx +20 -0
  34. package/auth/src/vite-env.d.ts +10 -0
  35. package/auth/tsconfig.json +32 -0
  36. package/auth/tsconfig.node.json +11 -0
  37. package/auth/vite.config.ts +25 -0
  38. package/backend/package.json +9 -9
  39. package/backend/src/api/{middleware → middlewares}/auth.ts +8 -9
  40. package/backend/src/api/middlewares/rate-limiters.ts +127 -0
  41. package/backend/src/api/routes/{ai.ts → ai/index.routes.ts} +20 -24
  42. package/backend/src/api/routes/auth/index.routes.ts +570 -0
  43. package/backend/src/api/routes/auth/oauth.routes.ts +448 -0
  44. package/backend/src/api/routes/{database.advance.ts → database/advance.routes.ts} +107 -65
  45. package/backend/src/api/routes/database/index.routes.ts +13 -0
  46. package/backend/src/api/routes/{database.records.ts → database/records.routes.ts} +22 -8
  47. package/backend/src/api/routes/{database.tables.ts → database/tables.routes.ts} +20 -23
  48. package/backend/src/api/routes/docs/index.routes.ts +76 -0
  49. package/backend/src/api/routes/functions/index.routes.ts +188 -0
  50. package/backend/src/api/routes/{logs.ts → logs/index.routes.ts} +25 -30
  51. package/backend/src/api/routes/{metadata.ts → metadata/index.routes.ts} +21 -31
  52. package/backend/src/api/routes/{secrets.ts → secrets/index.routes.ts} +27 -22
  53. package/backend/src/api/routes/{storage.ts → storage/index.routes.ts} +34 -53
  54. package/backend/src/api/routes/usage/index.routes.ts +89 -0
  55. package/backend/src/infra/config/app.config.ts +51 -0
  56. package/backend/src/{core/database/manager.ts → infra/database/database.manager.ts} +76 -85
  57. package/backend/src/infra/database/migrations/013_create-auth-schema-functions.sql +44 -0
  58. package/backend/src/infra/database/migrations/014_add-updated-at-trigger-user-table.sql +8 -0
  59. package/backend/src/infra/database/migrations/015_create-auth-config-and-email-otp-tables.sql +60 -0
  60. package/backend/src/infra/database/migrations/016_update-auth-config-and-email-otp.sql +24 -0
  61. package/backend/src/{core/secrets/encryption.ts → infra/security/encryption.manager.ts} +3 -2
  62. package/backend/src/infra/security/token.manager.ts +125 -0
  63. package/backend/src/{core/socket/socket.ts → infra/socket/socket.manager.ts} +15 -15
  64. package/backend/src/providers/ai/openrouter.provider.ts +377 -0
  65. package/backend/src/providers/email/base.provider.ts +41 -0
  66. package/backend/src/providers/email/cloud.provider.ts +187 -0
  67. package/backend/src/{core/logs/providers → providers/logs}/base.provider.ts +11 -11
  68. package/backend/src/{core/logs/providers → providers/logs}/cloudwatch.provider.ts +61 -38
  69. package/backend/src/providers/logs/local.provider.ts +185 -0
  70. package/backend/src/providers/oauth/base.provider.ts +29 -0
  71. package/backend/src/providers/oauth/discord.provider.ts +195 -0
  72. package/backend/src/providers/oauth/facebook.provider.ts +194 -0
  73. package/backend/src/providers/oauth/github.provider.ts +208 -0
  74. package/backend/src/providers/oauth/google.provider.ts +249 -0
  75. package/backend/src/providers/oauth/index.ts +7 -0
  76. package/backend/src/providers/oauth/linkedin.provider.ts +240 -0
  77. package/backend/src/providers/oauth/microsoft.provider.ts +169 -0
  78. package/backend/src/providers/oauth/x.provider.ts +202 -0
  79. package/backend/src/providers/storage/base.provider.ts +29 -0
  80. package/backend/src/providers/storage/local.provider.ts +103 -0
  81. package/backend/src/providers/storage/s3.provider.ts +313 -0
  82. package/backend/src/server.ts +70 -74
  83. package/backend/src/{core/ai/config.ts → services/ai/ai-config.service.ts} +19 -24
  84. package/backend/src/services/ai/ai-model.service.ts +60 -0
  85. package/backend/src/{core/ai/usage.ts → services/ai/ai-usage.service.ts} +28 -35
  86. package/backend/src/{core/ai/chat.ts → services/ai/chat-completion.service.ts} +37 -24
  87. package/backend/src/services/ai/helpers.ts +64 -0
  88. package/backend/src/{core/ai/image.ts → services/ai/image-generation.service.ts} +17 -19
  89. package/backend/src/services/ai/index.ts +13 -0
  90. package/backend/src/services/auth/auth-config.service.ts +250 -0
  91. package/backend/src/services/auth/auth-otp.service.ts +424 -0
  92. package/backend/src/services/auth/auth.service.ts +1136 -0
  93. package/backend/src/services/auth/index.ts +4 -0
  94. package/backend/src/{core/auth/oauth.ts → services/auth/oauth-config.service.ts} +106 -52
  95. package/backend/src/{core/database/advance.ts → services/database/database-advance.service.ts} +97 -131
  96. package/backend/src/services/database/database-table.service.ts +811 -0
  97. package/backend/src/services/email/email.service.ts +75 -0
  98. package/backend/src/{core/functions/functions.ts → services/functions/function.service.ts} +95 -88
  99. package/backend/src/{core/logs/audit.ts → services/logs/audit.service.ts} +92 -75
  100. package/backend/src/services/logs/log.service.ts +73 -0
  101. package/backend/src/{core/secrets/secrets.ts → services/secrets/secret.service.ts} +48 -66
  102. package/backend/src/services/storage/storage.service.ts +617 -0
  103. package/backend/src/services/usage/usage.service.ts +149 -0
  104. package/backend/src/types/auth.ts +66 -2
  105. package/backend/src/types/email.ts +8 -0
  106. package/backend/src/types/error-constants.ts +4 -0
  107. package/backend/src/types/logs.ts +0 -29
  108. package/backend/src/{core/socket/types.ts → types/socket.ts} +5 -6
  109. package/backend/src/utils/environment.ts +9 -3
  110. package/backend/src/utils/logger.ts +20 -2
  111. package/backend/src/utils/seed.ts +150 -57
  112. package/backend/src/utils/sql-parser.ts +1 -1
  113. package/backend/src/utils/utils.ts +114 -0
  114. package/backend/src/utils/validations.ts +40 -4
  115. package/backend/tests/local/test-ai-config.sh +129 -0
  116. package/backend/tests/local/test-ai-usage.sh +80 -0
  117. package/backend/tests/local/test-auth-router.sh +1 -1
  118. package/backend/tests/local/test-e2e.sh +1 -1
  119. package/backend/tests/local/test-functions.sh +123 -0
  120. package/backend/tests/local/test-logs.sh +132 -0
  121. package/backend/tests/local/test-public-bucket.sh +3 -3
  122. package/backend/tests/local/test-secrets.sh +14 -12
  123. package/backend/tests/local/test-traditional-rest.sh +2 -2
  124. package/backend/tests/manual/test-rawsql-modes.sh +244 -0
  125. package/backend/tests/test-config.sh +37 -1
  126. package/backend/tests/unit/cloud-token.test.ts +48 -0
  127. package/backend/tests/unit/constant.test.ts +8 -0
  128. package/backend/tests/unit/email.test.ts +372 -0
  129. package/backend/tests/unit/environment.test.ts +59 -0
  130. package/backend/tests/unit/helpers.test.ts +63 -0
  131. package/backend/tests/unit/logger.test.ts +22 -0
  132. package/backend/tests/unit/rate-limit.test.ts +154 -0
  133. package/backend/tests/unit/response.test.ts +58 -0
  134. package/backend/tests/unit/sql-parser.test.ts +74 -0
  135. package/backend/tests/unit/uuid.test.ts +21 -0
  136. package/backend/tests/unit/validations.test.ts +80 -0
  137. package/backend/tsconfig.json +1 -1
  138. package/backend/vitest.config.ts +11 -0
  139. package/claude-plugin/.claude-plugin/plugin.json +24 -0
  140. package/claude-plugin/README.md +133 -0
  141. package/claude-plugin/skills/insforge-schema-patterns/SKILL.md +270 -0
  142. package/docker-compose.prod.yml +60 -4
  143. package/docker-compose.yml +65 -4
  144. package/docker-init/db/db-init.sql +6 -34
  145. package/docker-init/logs/vector.yml +236 -0
  146. package/docs/README.md +44 -0
  147. package/docs/changelog.mdx +67 -0
  148. package/docs/core-concepts/ai/architecture.mdx +373 -0
  149. package/docs/core-concepts/ai/sdk.mdx +213 -0
  150. package/docs/core-concepts/authentication/architecture.mdx +278 -0
  151. package/docs/core-concepts/authentication/sdk.mdx +414 -0
  152. package/docs/core-concepts/authentication/ui-components/customization.mdx +529 -0
  153. package/docs/core-concepts/authentication/ui-components/nextjs.mdx +221 -0
  154. package/docs/core-concepts/authentication/ui-components/react-router.mdx +184 -0
  155. package/docs/core-concepts/authentication/ui-components/react.mdx +129 -0
  156. package/docs/core-concepts/database/architecture.mdx +256 -0
  157. package/docs/core-concepts/database/sdk.mdx +382 -0
  158. package/docs/core-concepts/functions/architecture.mdx +105 -0
  159. package/docs/core-concepts/functions/sdk.mdx +184 -0
  160. package/docs/core-concepts/storage/architecture.mdx +243 -0
  161. package/docs/core-concepts/storage/sdk.mdx +253 -0
  162. package/docs/deployment/README.md +94 -0
  163. package/docs/deployment/deploy-to-aws-ec2.md +565 -0
  164. package/docs/deployment/deploy-to-azure-virtual-machines.md +313 -0
  165. package/docs/deployment/deploy-to-google-cloud-compute-engine.md +613 -0
  166. package/docs/deployment/deploy-to-render.md +441 -0
  167. package/docs/docs.json +210 -0
  168. package/docs/examples/framework-guides/nextjs.mdx +131 -0
  169. package/docs/examples/framework-guides/nuxt.mdx +165 -0
  170. package/docs/examples/framework-guides/react.mdx +165 -0
  171. package/docs/examples/framework-guides/svelte.mdx +153 -0
  172. package/docs/examples/framework-guides/vue.mdx +159 -0
  173. package/docs/examples/overview.mdx +67 -0
  174. package/docs/favicon.svg +19 -0
  175. package/docs/images/changelog/nov-2025/auth-components.webp +0 -0
  176. package/docs/images/changelog/nov-2025/database-metadata.webp +0 -0
  177. package/docs/images/changelog/nov-2025/quickstart-prompts.webp +0 -0
  178. package/docs/images/changelog/nov-2025/sql-editor.webp +0 -0
  179. package/docs/images/changelog/nov-2025/usage-page.webp +0 -0
  180. package/docs/images/changelog/october-2025/csv-upload.webp +0 -0
  181. package/docs/images/changelog/october-2025/logs-feature.webp +0 -0
  182. package/docs/images/changelog/october-2025/oauth-providers.webp +0 -0
  183. package/docs/images/checks-passed.png +0 -0
  184. package/docs/images/dashboard-connect-expanded.png +0 -0
  185. package/docs/images/dashboard-connect.png +0 -0
  186. package/docs/images/hero-dark.png +0 -0
  187. package/docs/images/hero-light.png +0 -0
  188. package/docs/images/icons/ai.svg +4 -0
  189. package/docs/images/icons/auth.svg +1 -0
  190. package/docs/images/icons/database.svg +1 -0
  191. package/docs/images/icons/function.svg +1 -0
  192. package/docs/images/icons/storage.svg +1 -0
  193. package/docs/images/logos/nextjs.svg +4 -0
  194. package/docs/images/logos/nuxt.svg +4 -0
  195. package/docs/images/logos/react.svg +5 -0
  196. package/docs/images/logos/svelte.svg +4 -0
  197. package/docs/images/logos/vue.svg +5 -0
  198. package/docs/images/mcp-install.png +0 -0
  199. package/docs/images/onboarding-mcp.png +0 -0
  200. package/docs/insforge-instructions-sdk.md +55 -374
  201. package/docs/introduction.mdx +45 -0
  202. package/docs/logo/dark.svg +22 -0
  203. package/docs/logo/light.svg +20 -0
  204. package/docs/partnership.mdx +647 -0
  205. package/docs/quickstart.mdx +83 -0
  206. package/docs/showcase/2048-arena.png +0 -0
  207. package/docs/showcase/framegen-cloud.png +0 -0
  208. package/docs/showcase/line-connect-race.png +0 -0
  209. package/docs/showcase/moment-vibe.png +0 -0
  210. package/docs/showcase/national-flags.png +0 -0
  211. package/docs/showcase/pokemon-vibe.png +0 -0
  212. package/docs/showcase/pure-browse-buy.png +0 -0
  213. package/docs/showcase.mdx +52 -0
  214. package/docs/snippets/sdk-installation.mdx +22 -0
  215. package/docs/snippets/service-icons.mdx +27 -0
  216. package/eslint.config.js +10 -3
  217. package/frontend/package.json +10 -4
  218. package/frontend/src/App.tsx +13 -82
  219. package/frontend/src/assets/icons/connected.svg +3 -0
  220. package/frontend/src/assets/icons/loader.svg +9 -0
  221. package/frontend/src/assets/logos/apple.svg +4 -0
  222. package/frontend/src/assets/logos/discord.svg +1 -1
  223. package/frontend/src/assets/logos/facebook.svg +3 -0
  224. package/frontend/src/assets/logos/instagram.svg +2 -0
  225. package/frontend/src/assets/logos/linkedin.svg +3 -0
  226. package/frontend/src/assets/logos/microsoft.svg +1 -0
  227. package/frontend/src/assets/logos/spotify.svg +17 -0
  228. package/frontend/src/assets/logos/tiktok.svg +6 -0
  229. package/frontend/src/assets/logos/x.svg +3 -0
  230. package/frontend/src/components/Checkbox.tsx +27 -29
  231. package/frontend/src/components/CodeBlock.tsx +55 -2
  232. package/frontend/src/components/CodeEditor.tsx +92 -0
  233. package/frontend/src/components/ConfirmDialog.tsx +1 -1
  234. package/frontend/src/components/ConnectCTA.tsx +38 -0
  235. package/frontend/src/components/CopyButton.tsx +52 -15
  236. package/frontend/src/components/ErrorState.tsx +1 -2
  237. package/frontend/src/components/FeatureSidebar.tsx +6 -6
  238. package/frontend/src/components/FeatureSidebarItem.tsx +2 -2
  239. package/frontend/src/components/JsonHighlight.tsx +21 -9
  240. package/frontend/src/components/ProjectInfoModal.tsx +128 -0
  241. package/frontend/src/components/PromptDialog.tsx +1 -4
  242. package/frontend/src/components/SearchInput.tsx +1 -2
  243. package/frontend/src/components/Stepper.tsx +53 -0
  244. package/frontend/src/components/ThemeToggle.tsx +3 -3
  245. package/frontend/src/components/datagrid/DataGrid.tsx +25 -32
  246. package/frontend/src/components/datagrid/cell-editors/DateCellEditor.tsx +1 -2
  247. package/frontend/src/components/datagrid/cell-editors/JsonCellEditor.tsx +2 -4
  248. package/frontend/src/components/datagrid/index.ts +23 -0
  249. package/frontend/src/components/index.ts +23 -30
  250. package/frontend/src/components/layout/AppHeader.tsx +133 -92
  251. package/frontend/src/components/layout/AppSidebar.tsx +80 -170
  252. package/frontend/src/components/layout/Layout.tsx +12 -23
  253. package/frontend/src/components/layout/PrimaryMenu.tsx +187 -0
  254. package/frontend/src/components/layout/SecondaryMenu.tsx +70 -0
  255. package/frontend/src/components/layout/index.ts +5 -0
  256. package/frontend/src/components/radix/Tooltip.tsx +24 -13
  257. package/frontend/src/components/radix/index.ts +22 -0
  258. package/frontend/src/features/ai/components/AIConfigCard.tsx +129 -83
  259. package/frontend/src/features/ai/components/AIEmptyState.tsx +12 -7
  260. package/frontend/src/features/ai/components/ModalityFilterSidebar.tsx +101 -0
  261. package/frontend/src/features/ai/components/ModelSelectionDialog.tsx +135 -0
  262. package/frontend/src/features/ai/components/ModelSelectionGrid.tsx +51 -0
  263. package/frontend/src/features/ai/components/SystemPromptDialog.tsx +118 -0
  264. package/frontend/src/features/ai/components/index.ts +6 -0
  265. package/frontend/src/features/ai/helpers.ts +57 -71
  266. package/frontend/src/features/ai/hooks/useAIConfigs.ts +39 -113
  267. package/frontend/src/features/ai/hooks/useAIUsage.ts +0 -2
  268. package/frontend/src/features/ai/page/AIPage.tsx +67 -79
  269. package/frontend/src/features/ai/services/ai.service.ts +5 -5
  270. package/frontend/src/features/auth/components/AuthPreview.tsx +96 -0
  271. package/frontend/src/features/auth/components/OAuthConfigDialog.tsx +53 -30
  272. package/frontend/src/features/auth/components/UserFormDialog.tsx +13 -6
  273. package/frontend/src/features/auth/components/UsersDataGrid.tsx +44 -14
  274. package/frontend/src/features/auth/components/index.ts +5 -0
  275. package/frontend/src/features/auth/helpers.tsx +200 -0
  276. package/frontend/src/features/auth/hooks/useAnonToken.ts +30 -0
  277. package/frontend/src/features/auth/hooks/useAuthConfig.ts +48 -0
  278. package/frontend/src/features/auth/hooks/useOAuthConfig.ts +14 -10
  279. package/frontend/src/features/auth/hooks/useUsers.ts +43 -5
  280. package/frontend/src/features/auth/index.ts +3 -2
  281. package/frontend/src/features/auth/page/AuthMethodsPage.tsx +275 -0
  282. package/frontend/src/features/auth/page/ConfigurationPage.tsx +395 -0
  283. package/frontend/src/features/auth/page/UsersPage.tsx +285 -0
  284. package/frontend/src/features/auth/services/anonToken.service.ts +11 -0
  285. package/frontend/src/features/auth/services/config.service.ts +19 -0
  286. package/frontend/src/features/auth/services/{oauth.service.ts → oauth-config.service.ts} +4 -4
  287. package/frontend/src/features/auth/services/{auth.service.ts → user.service.ts} +7 -53
  288. package/frontend/src/features/dashboard/components/ConnectionSuccessBanner.tsx +35 -0
  289. package/frontend/src/features/dashboard/components/PromptCard.tsx +21 -0
  290. package/frontend/src/features/dashboard/components/PromptDialog.tsx +103 -0
  291. package/frontend/src/features/dashboard/components/StatsCard.tsx +50 -0
  292. package/frontend/src/features/dashboard/components/index.ts +4 -0
  293. package/frontend/src/features/dashboard/page/DashboardPage.tsx +187 -169
  294. package/frontend/src/features/dashboard/prompts/ai-chatbot.ts +13 -0
  295. package/frontend/src/features/dashboard/prompts/crm-system.ts +13 -0
  296. package/frontend/src/features/dashboard/prompts/ecommerce-platform.ts +12 -0
  297. package/frontend/src/features/dashboard/prompts/index.ts +31 -0
  298. package/frontend/src/features/dashboard/prompts/instagram-clone.ts +11 -0
  299. package/frontend/src/features/dashboard/prompts/notion-clone.ts +14 -0
  300. package/frontend/src/features/dashboard/prompts/reddit-clone.ts +12 -0
  301. package/frontend/src/features/database/components/DatabaseDataGrid.tsx +48 -17
  302. package/frontend/src/features/database/components/ForeignKeyCell.tsx +15 -34
  303. package/frontend/src/features/database/components/ForeignKeyPopover.tsx +19 -20
  304. package/frontend/src/features/database/components/LinkRecordModal.tsx +120 -125
  305. package/frontend/src/features/database/components/RecordFormDialog.tsx +22 -33
  306. package/frontend/src/features/database/components/RecordFormField.tsx +45 -47
  307. package/frontend/src/features/database/components/TableEmptyState.tsx +6 -5
  308. package/frontend/src/features/database/components/TableForm.tsx +28 -15
  309. package/frontend/src/features/database/components/TableFormColumn.tsx +2 -3
  310. package/frontend/src/features/database/components/TableSidebar.tsx +1 -1
  311. package/frontend/src/features/database/components/TablesEmptyState.tsx +48 -0
  312. package/frontend/src/features/database/components/TemplateCard.tsx +37 -0
  313. package/frontend/src/features/database/components/TemplatePreview.tsx +92 -0
  314. package/frontend/src/features/database/components/index.ts +19 -0
  315. package/frontend/src/features/database/constants.ts +28 -2
  316. package/frontend/src/features/database/contexts/SQLEditorContext.tsx +188 -0
  317. package/frontend/src/features/database/helpers.ts +2 -2
  318. package/frontend/src/features/database/hooks/useCSVImport.ts +29 -0
  319. package/frontend/src/features/database/hooks/useFullMetadata.ts +18 -0
  320. package/frontend/src/features/database/hooks/useRawSQL.ts +55 -0
  321. package/frontend/src/features/database/hooks/useRecords.ts +139 -0
  322. package/frontend/src/features/database/hooks/useTables.ts +131 -0
  323. package/frontend/src/features/database/index.ts +6 -1
  324. package/frontend/src/features/database/page/FunctionsPage.tsx +211 -0
  325. package/frontend/src/features/database/page/IndexesPage.tsx +240 -0
  326. package/frontend/src/features/database/page/PoliciesPage.tsx +248 -0
  327. package/frontend/src/features/database/page/SQLEditorPage.tsx +382 -0
  328. package/frontend/src/features/database/page/{DatabasePage.tsx → TablesPage.tsx} +186 -185
  329. package/frontend/src/features/database/page/TemplatesPage.tsx +39 -0
  330. package/frontend/src/features/database/page/TriggersPage.tsx +242 -0
  331. package/frontend/src/features/database/services/advance.service.ts +66 -0
  332. package/frontend/src/features/database/services/{database.service.ts → record.service.ts} +67 -64
  333. package/frontend/src/features/database/services/table.service.ts +64 -0
  334. package/frontend/src/features/database/templates/ai-chatbot.ts +402 -0
  335. package/frontend/src/features/database/templates/crm-system.ts +528 -0
  336. package/frontend/src/features/database/templates/ecommerce-platform.ts +553 -0
  337. package/frontend/src/features/database/templates/index.ts +34 -0
  338. package/frontend/src/features/database/templates/instagram-clone.ts +222 -0
  339. package/frontend/src/features/database/templates/notion-clone.ts +483 -0
  340. package/frontend/src/features/database/templates/reddit-clone.ts +526 -0
  341. package/frontend/src/features/functions/components/FunctionRow.tsx +2 -1
  342. package/frontend/src/features/functions/components/FunctionsSidebar.tsx +1 -1
  343. package/frontend/src/features/functions/components/SecretRow.tsx +1 -1
  344. package/frontend/src/features/functions/components/index.ts +5 -0
  345. package/frontend/src/features/functions/hooks/useFunctions.ts +4 -4
  346. package/frontend/src/features/{secrets → functions}/hooks/useSecrets.ts +5 -5
  347. package/frontend/src/features/functions/page/FunctionsPage.tsx +160 -17
  348. package/frontend/src/features/functions/{components/SecretsContent.tsx → page/SecretsPage.tsx} +8 -12
  349. package/frontend/src/features/functions/services/{functions.service.ts → function.service.ts} +2 -2
  350. package/frontend/src/features/{secrets/services/secrets.service.ts → functions/services/secret.service.ts} +2 -2
  351. package/frontend/src/features/login/hooks/usePartnerOrigin.ts +27 -0
  352. package/frontend/src/features/login/page/CloudLoginPage.tsx +79 -54
  353. package/frontend/src/features/login/page/LoginPage.tsx +16 -23
  354. package/frontend/src/features/login/services/partnership.service.ts +65 -0
  355. package/frontend/src/features/logs/components/LogsDataGrid.tsx +89 -0
  356. package/frontend/src/features/logs/components/SeverityBadge.tsx +18 -0
  357. package/frontend/src/features/logs/components/index.ts +2 -0
  358. package/frontend/src/features/logs/helpers.ts +24 -0
  359. package/frontend/src/features/logs/hooks/useAuditLogs.ts +4 -4
  360. package/frontend/src/features/logs/hooks/useLogSources.ts +137 -0
  361. package/frontend/src/features/logs/hooks/useLogs.ts +163 -0
  362. package/frontend/src/features/logs/hooks/useMcpUsage.ts +181 -0
  363. package/frontend/src/features/logs/index.ts +8 -2
  364. package/frontend/src/features/logs/page/AuditsPage.tsx +91 -38
  365. package/frontend/src/features/logs/page/LogsPage.tsx +152 -0
  366. package/frontend/src/features/logs/page/MCPLogsPage.tsx +84 -0
  367. package/frontend/src/features/logs/services/audit.service.ts +63 -0
  368. package/frontend/src/features/logs/services/log.service.ts +15 -110
  369. package/frontend/src/features/logs/services/usage.service.ts +31 -0
  370. package/frontend/src/features/onboard/components/McpConnectionStatus.tsx +68 -0
  371. package/frontend/src/features/onboard/components/OnboardingModal.tsx +267 -0
  372. package/frontend/src/features/onboard/components/VideoDemoModal.tsx +38 -0
  373. package/frontend/src/features/onboard/components/index.ts +4 -0
  374. package/frontend/src/features/onboard/components/mcp/CursorDeeplinkGenerator.tsx +2 -2
  375. package/frontend/src/features/onboard/components/mcp/{mcp-helper.tsx → helpers.tsx} +8 -8
  376. package/frontend/src/features/onboard/components/mcp/index.ts +2 -3
  377. package/frontend/src/features/onboard/index.ts +13 -3
  378. package/frontend/src/features/storage/components/BucketEmptyState.tsx +9 -6
  379. package/frontend/src/features/storage/components/BucketFormDialog.tsx +25 -41
  380. package/frontend/src/features/storage/components/FilePreviewDialog.tsx +20 -8
  381. package/frontend/src/features/storage/components/StorageDataGrid.tsx +4 -3
  382. package/frontend/src/features/storage/components/StorageManager.tsx +23 -34
  383. package/frontend/src/features/storage/components/index.ts +12 -0
  384. package/frontend/src/features/storage/hooks/useStorage.ts +208 -0
  385. package/frontend/src/features/storage/page/StoragePage.tsx +41 -115
  386. package/frontend/src/features/storage/services/storage.service.ts +22 -1
  387. package/frontend/src/features/visualizer/components/AuthNode.tsx +72 -56
  388. package/frontend/src/features/visualizer/components/BucketNode.tsx +4 -4
  389. package/frontend/src/features/visualizer/components/SchemaVisualizer.tsx +108 -80
  390. package/frontend/src/features/visualizer/components/TableNode.tsx +34 -41
  391. package/frontend/src/features/visualizer/components/VisualizerSkeleton.tsx +12 -4
  392. package/frontend/src/features/visualizer/page/VisualizerPage.tsx +33 -29
  393. package/frontend/src/index.css +1 -0
  394. package/frontend/src/lib/analytics/posthog.tsx +27 -0
  395. package/frontend/src/lib/contexts/AuthContext.tsx +38 -31
  396. package/frontend/src/lib/contexts/SocketContext.tsx +5 -6
  397. package/frontend/src/{features/metadata → lib}/hooks/useMetadata.ts +1 -1
  398. package/frontend/src/lib/hooks/useToast.tsx +6 -2
  399. package/frontend/src/lib/routing/AppRoutes.tsx +84 -0
  400. package/frontend/src/lib/routing/RequireAuth.tsx +27 -0
  401. package/frontend/src/lib/utils/cloudMessaging.ts +20 -0
  402. package/frontend/src/lib/utils/menuItems.ts +183 -0
  403. package/frontend/src/lib/utils/{validation-schemas.ts → schemaValidations.ts} +10 -5
  404. package/frontend/src/lib/utils/utils.ts +19 -1
  405. package/frontend/src/vite-env.d.ts +1 -0
  406. package/frontend/vite.config.ts +5 -3
  407. package/functions/server.ts +28 -3
  408. package/functions/worker-template.js +15 -4
  409. package/i18n/README.ar.md +130 -0
  410. package/i18n/README.de.md +130 -0
  411. package/i18n/README.es.md +154 -0
  412. package/i18n/README.fr.md +134 -0
  413. package/i18n/README.hi.md +129 -0
  414. package/i18n/README.ja.md +174 -0
  415. package/i18n/README.ko.md +137 -0
  416. package/i18n/README.pt-BR.md +131 -0
  417. package/i18n/README.ru.md +129 -0
  418. package/i18n/README.zh-CN.md +133 -0
  419. package/openapi/ai.yaml +31 -4
  420. package/openapi/auth.yaml +827 -146
  421. package/package.json +16 -7
  422. package/shared-schemas/package.json +1 -1
  423. package/shared-schemas/src/ai-api.schema.ts +34 -58
  424. package/shared-schemas/src/ai.schema.ts +5 -0
  425. package/shared-schemas/src/auth-api.schema.ts +154 -8
  426. package/shared-schemas/src/auth.schema.ts +42 -6
  427. package/shared-schemas/src/cloud-events.schema.ts +57 -0
  428. package/shared-schemas/src/database-api.schema.ts +3 -3
  429. package/shared-schemas/src/database.schema.ts +1 -1
  430. package/shared-schemas/src/index.ts +1 -0
  431. package/shared-schemas/src/logs-api.schema.ts +7 -1
  432. package/shared-schemas/src/logs.schema.ts +26 -0
  433. package/shared-schemas/src/metadata.schema.ts +9 -4
  434. package/test-gemini.sh +35 -0
  435. package/test-usage-admin.sh +57 -0
  436. package/test-usage.sh +50 -0
  437. package/zeabur/README.md +13 -0
  438. package/zeabur/template.yml +1032 -0
  439. package/.github/workflows/deploy-aws.yml +0 -130
  440. package/backend/src/api/routes/agent.ts +0 -29
  441. package/backend/src/api/routes/auth.oauth.ts +0 -482
  442. package/backend/src/api/routes/auth.ts +0 -386
  443. package/backend/src/api/routes/docs.ts +0 -66
  444. package/backend/src/api/routes/functions.ts +0 -183
  445. package/backend/src/api/routes/openapi.ts +0 -82
  446. package/backend/src/api/routes/usage.ts +0 -96
  447. package/backend/src/core/ai/client.ts +0 -242
  448. package/backend/src/core/ai/model.ts +0 -117
  449. package/backend/src/core/auth/auth.ts +0 -781
  450. package/backend/src/core/database/table.ts +0 -772
  451. package/backend/src/core/documentation/agent.ts +0 -689
  452. package/backend/src/core/documentation/openapi.ts +0 -856
  453. package/backend/src/core/logs/analytics.ts +0 -76
  454. package/backend/src/core/logs/providers/localdb.provider.ts +0 -246
  455. package/backend/src/core/storage/storage.ts +0 -923
  456. package/backend/src/utils/cloud-token.ts +0 -39
  457. package/backend/src/utils/helpers.ts +0 -49
  458. package/backend/src/utils/uuid.ts +0 -9
  459. package/backend/tests/manual/test-better-auth.sh +0 -303
  460. package/docker-init/db/logs.sql +0 -9
  461. package/frontend/README.md +0 -112
  462. package/frontend/src/components/datagrid/index.tsx +0 -20
  463. package/frontend/src/components/layout/CloudLayout.tsx +0 -95
  464. package/frontend/src/features/ai/components/AIConfigDialog.tsx +0 -76
  465. package/frontend/src/features/ai/components/AIConfigForm.tsx +0 -222
  466. package/frontend/src/features/ai/components/fields/ModalityField.tsx +0 -87
  467. package/frontend/src/features/ai/components/fields/ModelSelectionField.tsx +0 -134
  468. package/frontend/src/features/ai/components/fields/SystemPromptField.tsx +0 -33
  469. package/frontend/src/features/auth/components/AddOAuthDialog.tsx +0 -106
  470. package/frontend/src/features/auth/components/AuthMethodTab.tsx +0 -238
  471. package/frontend/src/features/auth/components/UsersTab.tsx +0 -114
  472. package/frontend/src/features/auth/page/AuthenticationPage.tsx +0 -169
  473. package/frontend/src/features/database/hooks/UseLinkModal.tsx +0 -78
  474. package/frontend/src/features/functions/components/FunctionViewer.tsx +0 -46
  475. package/frontend/src/features/functions/components/FunctionsContent.tsx +0 -88
  476. package/frontend/src/features/login/components/AuthErrorBoundary.tsx +0 -87
  477. package/frontend/src/features/login/components/PrivateRoute.tsx +0 -24
  478. package/frontend/src/features/logs/components/AnalyticsLogsTable.tsx +0 -313
  479. package/frontend/src/features/logs/components/LogsTable.tsx +0 -199
  480. package/frontend/src/features/logs/page/AnalyticsLogsPage.tsx +0 -530
  481. package/frontend/src/features/metadata/index.ts +0 -0
  482. package/frontend/src/features/metadata/page/MetadataPage.tsx +0 -136
  483. package/frontend/src/features/onboard/components/CompletionCard.tsx +0 -41
  484. package/frontend/src/features/onboard/components/OnboardButton.tsx +0 -84
  485. package/frontend/src/features/onboard/components/StepContent.tsx +0 -91
  486. package/frontend/src/features/onboard/components/TestConnectionStep.tsx +0 -53
  487. package/frontend/src/features/onboard/components/mcp/McpInstallation.tsx +0 -144
  488. package/frontend/src/features/onboard/page/OnBoardPage.tsx +0 -104
  489. package/frontend/src/features/onboard/types.ts +0 -8
  490. package/frontend/src/lib/contexts/OnboardStepContext.tsx +0 -68
  491. package/frontend/src/lib/hooks/useOnboardingCompletion.ts +0 -29
  492. /package/backend/src/api/{middleware → middlewares}/error.ts +0 -0
  493. /package/backend/src/api/{middleware → middlewares}/upload.ts +0 -0
  494. /package/backend/{migrations → src/infra/database/migrations}/000_create-base-tables.sql +0 -0
  495. /package/backend/{migrations → src/infra/database/migrations}/001_create-helper-functions.sql +0 -0
  496. /package/backend/{migrations → src/infra/database/migrations}/002_rename-auth-tables.sql +0 -0
  497. /package/backend/{migrations → src/infra/database/migrations}/003_create-users-table.sql +0 -0
  498. /package/backend/{migrations → src/infra/database/migrations}/004_add-reload-postgrest-func.sql +0 -0
  499. /package/backend/{migrations → src/infra/database/migrations}/005_enable-project-admin-modify-users.sql +0 -0
  500. /package/backend/{migrations → src/infra/database/migrations}/006_modify-ai-usage-table.sql +0 -0
  501. /package/backend/{migrations → src/infra/database/migrations}/007_drop-metadata-table.sql +0 -0
  502. /package/backend/{migrations → src/infra/database/migrations}/008_add-system-tables.sql +0 -0
  503. /package/backend/{migrations → src/infra/database/migrations}/009_add-function-secrets.sql +0 -0
  504. /package/backend/{migrations → src/infra/database/migrations}/010_modify-ai-config-modalities.sql +0 -0
  505. /package/backend/{migrations → src/infra/database/migrations}/011_refactor-secrets-table.sql +0 -0
  506. /package/backend/{migrations → src/infra/database/migrations}/012_add-storage-uploaded-by.sql +0 -0
  507. /package/frontend/src/{features/metadata → lib}/services/metadata.service.ts +0 -0
@@ -0,0 +1,159 @@
1
+ ---
2
+ title: Vue
3
+ description: Learn how to create an InsForge project and build a Vue app using AI
4
+ ---
5
+
6
+ import Installation from '/snippets/sdk-installation.mdx';
7
+
8
+ Learn how to create an InsForge project and build a Vue app using AI tools like Cursor.
9
+
10
+ ## 1. Create an InsForge project
11
+
12
+ Create a new InsForge project at [insforge.dev](https://insforge.dev).
13
+
14
+ ## 2. Connect InsForge MCP
15
+
16
+ Follow the [quickstart guide](/quickstart) to connect your AI assistant to your InsForge backend. This allows AI tools like Claude and Cursor to directly interact with your database, storage, and other InsForge services.
17
+
18
+ ## 3. Build your app with one prompt
19
+
20
+ In Cursor or your AI assistant, use this prompt:
21
+
22
+ ```
23
+ Create a new Vue app with TypeScript and Vite.
24
+ Add Tailwind CSS 3.4 for styling.
25
+ Install the InsForge SDK and set up the client configuration.
26
+
27
+ In my InsForge database, create a sports table with id and name columns.
28
+ Add sample data: basketball, soccer, and tennis. Make it publicly readable.
29
+
30
+ Create a component that fetches and displays all sports from the database.
31
+ ```
32
+
33
+ Your AI will generate the complete application including database setup and UI. No need to write code manually - the AI creates everything for you.
34
+
35
+ ## 4. What the AI generates
36
+
37
+ Your AI assistant will automatically create files like these. You don't need to touch them manually.
38
+
39
+ **InsForge client** at `src/lib/insforge.ts`:
40
+
41
+ ```typescript src/lib/insforge.ts
42
+ import { createClient } from '@insforge/sdk';
43
+
44
+ export const insforge = createClient({
45
+ baseUrl: 'https://your-project.us-east.insforge.app',
46
+ anonKey: 'your-anon-key'
47
+ });
48
+ ```
49
+
50
+ **Sports component** at `src/components/Sports.vue`:
51
+
52
+ ```vue src/components/Sports.vue
53
+ <template>
54
+ <div class="container mx-auto px-4 py-8">
55
+ <h1 class="text-3xl font-bold text-gray-800 mb-6">Sports</h1>
56
+
57
+ <div v-if="loading" class="text-center py-8">
58
+ <p class="text-gray-600">Loading sports...</p>
59
+ </div>
60
+
61
+ <div v-else-if="error" class="bg-red-100 border border-red-400 text-red-700 px-4 py-3 rounded mb-4">
62
+ <p>Error: {{ error }}</p>
63
+ </div>
64
+
65
+ <div v-else-if="sports && sports.length > 0" class="grid grid-cols-1 md:grid-cols-3 gap-4">
66
+ <div
67
+ v-for="sport in sports"
68
+ :key="sport.id"
69
+ class="bg-white rounded-lg shadow-md p-6 hover:shadow-lg transition-shadow"
70
+ >
71
+ <h2 class="text-xl font-semibold text-gray-800 capitalize">{{ sport.name }}</h2>
72
+ <p class="text-sm text-gray-500 mt-2">ID: {{ sport.id }}</p>
73
+ </div>
74
+ </div>
75
+
76
+ <div v-else class="text-center py-8">
77
+ <p class="text-gray-600">No sports found.</p>
78
+ </div>
79
+ </div>
80
+ </template>
81
+
82
+ <script setup lang="ts">
83
+ import { ref, onMounted } from 'vue';
84
+ import { insforge } from '../lib/insforge';
85
+
86
+ interface Sport {
87
+ id: string;
88
+ name: string;
89
+ created_at?: string;
90
+ }
91
+
92
+ const sports = ref<Sport[]>([]);
93
+ const loading = ref(true);
94
+ const error = ref<string | null>(null);
95
+
96
+ const fetchSports = async () => {
97
+ try {
98
+ loading.value = true;
99
+ error.value = null;
100
+
101
+ const { data, error: fetchError } = await insforge.database
102
+ .from('sports')
103
+ .select();
104
+
105
+ if (fetchError) {
106
+ error.value = fetchError.message || 'Failed to fetch sports';
107
+ return;
108
+ }
109
+
110
+ sports.value = data || [];
111
+ } catch (err) {
112
+ error.value = err instanceof Error ? err.message : 'An unexpected error occurred';
113
+ } finally {
114
+ loading.value = false;
115
+ }
116
+ };
117
+
118
+ onMounted(() => {
119
+ fetchSports();
120
+ });
121
+ </script>
122
+ ```
123
+
124
+ ## 5. Start the app
125
+
126
+ Run the development server, go to [http://localhost:5173](http://localhost:5173) in a browser and you should see the list of sports.
127
+
128
+ ```bash
129
+ npm run dev
130
+ ```
131
+
132
+ ## Next: Extend your app with more prompts
133
+
134
+ Try these prompts to add more features to your app:
135
+
136
+ ```
137
+ Add a form to create new sports and save them to the database.
138
+ Include validation and error handling.
139
+ ```
140
+
141
+ ```
142
+ Add user authentication with sign up and login pages.
143
+ Only allow authenticated users to add new sports.
144
+ ```
145
+
146
+ ```
147
+ Add a favorites feature where users can mark their favorite sports.
148
+ Store favorites in a user_favorites table with user_id and sport_id.
149
+ ```
150
+
151
+ ```
152
+ Add images to each sport using InsForge Storage.
153
+ Allow users to upload sport images and display them in the grid.
154
+ ```
155
+
156
+ ```
157
+ Add an AI chat feature that can answer questions about sports.
158
+ Use InsForge AI with streaming responses.
159
+ ```
@@ -0,0 +1,67 @@
1
+ ---
2
+ title: InsForge Cookbook
3
+ description: A collection of practical examples and guides for building with InsForge
4
+ ---
5
+
6
+ A collection of practical examples and guides for building with InsForge - the fastest way to build full-stack applications with PostgreSQL, authentication, storage, AI, and serverless functions.
7
+
8
+ ## Quick Start
9
+
10
+ To get started with any example in this cookbook:
11
+
12
+ 1. **Browse examples** - Find the framework or use case that matches your needs
13
+ 2. **Follow the guide** - Each example includes AI prompts and setup instructions
14
+ 3. **Get the code** - See what the AI generates for you
15
+ 4. **Build and customize** - Use the examples as starting points for your projects
16
+
17
+ ## What's Inside
18
+
19
+ ### Framework Guides
20
+
21
+ Ready-to-use guides that show how to build with InsForge using popular frameworks and AI tools.
22
+
23
+ <CardGroup cols={2}>
24
+ <Card title="Next.js" icon="/images/logos/nextjs.svg" href="/examples/framework-guides/nextjs">
25
+ Build a Next.js app using AI prompts
26
+ </Card>
27
+
28
+ <Card title="React" icon="/images/logos/react.svg" href="/examples/framework-guides/react">
29
+ Build a React app using AI prompts
30
+ </Card>
31
+
32
+ <Card title="Vue" icon="/images/logos/vue.svg" href="/examples/framework-guides/vue">
33
+ Build a Vue app using AI prompts
34
+ </Card>
35
+
36
+ <Card title="Nuxt" icon="/images/logos/nuxt.svg" href="/examples/framework-guides/nuxt">
37
+ Build a Nuxt app using AI prompts
38
+ </Card>
39
+
40
+ <Card title="Svelte" icon="/images/logos/svelte.svg" href="/examples/framework-guides/svelte">
41
+ Build a Svelte app using AI prompts
42
+ </Card>
43
+ </CardGroup>
44
+
45
+ ### Community Showcase
46
+
47
+ Community-built applications that demonstrate real-world implementations of InsForge.
48
+
49
+ <Card title="View Showcase" icon="star" href="/showcase">
50
+ Explore projects built with InsForge
51
+ </Card>
52
+
53
+ ---
54
+
55
+ ## Contributing
56
+
57
+ Have a project built with InsForge? We'd love to feature it!
58
+
59
+ <CardGroup cols={2}>
60
+ <Card title="GitHub Issues" icon="github" href="https://github.com/InsForge/InsForge/issues">
61
+ Submit your project or example
62
+ </Card>
63
+
64
+ <Card title="Discord Community" icon="discord" href="https://discord.com/invite/DvBtaEc9Jz">
65
+ Share your work with the community
66
+ </Card>
67
+ </CardGroup>
@@ -0,0 +1,19 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M9.06145 23.1079C5.26816 22.3769 -3.39077 20.6274 1.4173 5.06384C9.6344 6.09939 16.9728 14.0644 9.06145 23.1079Z" fill="url(#paint0_linear_17557_2021)"/>
3
+ <path d="M8.91928 23.0939C5.27642 21.2223 0.78371 4.20891 17.0071 0C20.7569 7.19341 19.6212 16.5452 8.91928 23.0939Z" fill="url(#paint1_linear_17557_2021)"/>
4
+ <path d="M8.91388 23.0788C8.73534 19.8817 10.1585 9.08525 23.5699 13.1107C23.1812 20.1229 18.984 26.4182 8.91388 23.0788Z" fill="url(#paint2_linear_17557_2021)"/>
5
+ <defs>
6
+ <linearGradient id="paint0_linear_17557_2021" x1="3.77557" y1="5.91571" x2="5.23185" y2="21.5589" gradientUnits="userSpaceOnUse">
7
+ <stop stop-color="#18E299"/>
8
+ <stop offset="1" stop-color="#15803D"/>
9
+ </linearGradient>
10
+ <linearGradient id="paint1_linear_17557_2021" x1="12.1711" y1="-0.718425" x2="10.1897" y2="22.9832" gradientUnits="userSpaceOnUse">
11
+ <stop stop-color="#16A34A"/>
12
+ <stop offset="1" stop-color="#4ADE80"/>
13
+ </linearGradient>
14
+ <linearGradient id="paint2_linear_17557_2021" x1="23.1327" y1="15.353" x2="9.33841" y2="18.5196" gradientUnits="userSpaceOnUse">
15
+ <stop stop-color="#4ADE80"/>
16
+ <stop offset="1" stop-color="#0D9373"/>
17
+ </linearGradient>
18
+ </defs>
19
+ </svg>
Binary file
Binary file
Binary file
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M11.8121 3.04199C11.8641 2.85054 12.1361 2.85051 12.1881 3.04199L13.8687 9.28613C13.9794 9.69726 14.3014 10.0182 14.7125 10.1289L20.9557 11.8105C21.1477 11.8623 21.1477 12.1348 20.9557 12.1865L14.7125 13.8672C14.3014 13.9779 13.9794 14.2998 13.8687 14.7109L12.1881 20.9541C12.1364 21.1461 11.8638 21.1461 11.8121 20.9541L10.1305 14.7109C10.0198 14.2998 9.69881 13.9779 9.28769 13.8672L3.04355 12.1865C2.85206 12.1346 2.8521 11.8625 3.04355 11.8105L9.28769 10.1289C9.69881 10.0182 10.0198 9.69726 10.1305 9.28613L11.8121 3.04199Z" stroke="white"/>
3
+ <path d="M19.5904 2.55907C19.648 2.34489 19.9519 2.34489 20.0096 2.55907L20.535 4.5103C20.5551 4.585 20.6134 4.64335 20.6881 4.66347L22.6394 5.18883C22.8535 5.2465 22.8535 5.55038 22.6394 5.60804L20.6881 6.13341C20.6134 6.15352 20.5551 6.21187 20.535 6.28658L20.0096 8.2378C19.9519 8.45198 19.648 8.45198 19.5904 8.2378L19.065 6.28658C19.0449 6.21187 18.9866 6.15352 18.9118 6.13341L16.9606 5.60804C16.7464 5.55038 16.7464 5.2465 16.9606 5.18883L18.9118 4.66347C18.9866 4.64335 19.0449 4.585 19.065 4.5103L19.5904 2.55907Z" fill="white"/>
4
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M252.31-100q-29.92 0-51.12-21.19Q180-142.39 180-172.31v-375.38q0-29.92 21.19-51.12Q222.39-620 252.31-620H300v-80q0-74.92 52.54-127.46Q405.08-880 480-880q74.92 0 127.46 52.54Q660-774.92 660-700v80h47.69q29.92 0 51.12 21.19Q780-577.61 780-547.69v375.38q0 29.92-21.19 51.12Q737.61-100 707.69-100H252.31Zm0-60h455.38q5.39 0 8.85-3.46t3.46-8.85v-375.38q0-5.39-3.46-8.85t-8.85-3.46H252.31q-5.39 0-8.85 3.46t-3.46 8.85v375.38q0 5.39 3.46 8.85t8.85 3.46ZM480-290q29.15 0 49.58-20.42Q550-330.85 550-360t-20.42-49.58Q509.15-430 480-430t-49.58 20.42Q410-389.15 410-360t20.42 49.58Q450.85-290 480-290ZM360-620h240v-80q0-50-35-85t-85-35q-50 0-85 35t-35 85v80ZM240-160v-400 400Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M480-140q-145.61 0-242.81-41.12Q140-222.23 140-283.85V-680q0-57.92 99.54-98.96Q339.08-820 480-820q140.92 0 240.46 41.04Q820-737.92 820-680v396.15q0 61.62-97.19 102.73Q625.61-140 480-140Zm0-461.69q87.46 0 176.12-24.73 88.65-24.73 102.73-53.35-13.7-29.38-101.66-54.81Q569.23-760 480-760q-89.08 0-176.58 24.73-87.5 24.73-103.04 53.96 15.16 30 102.27 54.81 87.12 24.81 177.35 24.81Zm0 200.15q41.62 0 81-4t75.27-11.69q35.88-7.69 67.19-19.08 31.31-11.38 56.54-25.77V-604q-25.23 14.38-56.54 25.77-31.31 11.38-67.19 19.07-35.89 7.7-75.27 11.7-39.38 4-81 4-42.38 0-82.58-4.2-40.19-4.19-75.88-11.88t-66.5-18.88Q224.23-589.62 200-604v141.92q24.23 14.39 55.04 25.58 30.81 11.19 66.5 18.88 35.69 7.7 75.88 11.89 40.2 4.19 82.58 4.19ZM480-200q48.69 0 95.62-6.42 46.92-6.43 85.38-17.54 38.46-11.12 64.88-25.81 26.43-14.69 34.12-30.85v-121.46q-25.23 14.39-56.54 25.77-31.31 11.39-67.19 19.08-35.89 7.69-75.27 11.69-39.38 4-81 4-42.38 0-82.58-4.19-40.19-4.19-75.88-11.89-35.69-7.69-66.5-18.88-30.81-11.19-55.04-25.58V-280q7.69 16.54 33.81 30.73 26.11 14.19 64.57 25.31 38.47 11.11 85.7 17.54Q431.31-200 480-200Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M320-240 80-480l240-240 57 57-184 184 183 183-56 56Zm320 0-57-57 184-184-183-183 56-56 240 240-240 240Z"/></svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 -960 960 960" width="24px" fill="#e8eaed"><path d="M212.31-140Q182-140 161-161q-21-21-21-51.31v-535.38Q140-778 161-799q21-21 51.31-21h535.38Q778-820 799-799q21 21 21 51.31v535.38Q820-182 799-161q-21 21-51.31 21H212.31ZM200-613.54h560v-134.15q0-4.62-3.85-8.46-3.84-3.85-8.46-3.85H212.31q-4.62 0-8.46 3.85-3.85 3.84-3.85 8.46v134.15Zm0 207.08h560v-147.08H200v147.08ZM212.31-200h535.38q4.62 0 8.46-3.85 3.85-3.84 3.85-8.46v-134.15H200v134.15q0 4.62 3.85 8.46 3.84 3.85 8.46 3.85Zm43.08-450.92v-72.31h72.3v72.31h-72.3Zm0 207.07v-72.3h72.3v72.3h-72.3Zm0 207.08v-72.31h72.3v72.31h-72.3Z"/></svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="-2" y="-2" width="28" height="28" fill="#0a0a0a"/>
3
+ <path d="M17.3255 21.9996C17.2425 22.0435 17.2471 22.0612 17.3302 22.0192C17.3545 22.0088 17.3767 21.9939 17.3955 21.9753C17.3955 21.9604 17.3937 21.9623 17.3255 21.9996ZM17.4917 21.9119C17.4525 21.9427 17.4525 21.9445 17.5001 21.9203C17.5262 21.9072 17.5486 21.8923 17.5486 21.8876C17.5486 21.8699 17.5374 21.8745 17.4917 21.9119ZM17.6009 21.8456C17.5617 21.8764 17.5617 21.8783 17.6093 21.854C17.6354 21.8409 17.6578 21.826 17.6578 21.8213C17.6578 21.8036 17.6466 21.8083 17.6009 21.8456ZM17.7101 21.7803C17.6709 21.8111 17.6709 21.8129 17.7185 21.7887C17.7446 21.7756 17.767 21.7607 17.767 21.756C17.767 21.7383 17.7558 21.7429 17.7101 21.7803ZM17.8613 21.6823C17.7847 21.7308 17.7605 21.7635 17.8286 21.7261C17.8771 21.6981 17.9555 21.6384 17.9425 21.6365C17.9138 21.6488 17.8866 21.6642 17.8613 21.6823ZM11.1665 1.00333C11.1179 1.008 10.9649 1.02293 10.8267 1.03413C7.64593 1.32066 4.6658 3.03706 2.7786 5.6756C1.73528 7.1238 1.05713 8.80254 0.8018 10.569C0.7122 11.1841 0.7001 11.3661 0.7001 12.2005C0.7001 13.0349 0.7122 13.216 0.8018 13.832C1.41033 18.0376 4.40353 21.5712 8.4626 22.8807C9.18967 23.1149 9.95593 23.2745 10.8267 23.3707C11.1665 23.408 12.6327 23.408 12.9725 23.3707C14.4761 23.2045 15.751 22.8321 17.0073 22.1909C17.1995 22.092 17.2369 22.0659 17.2107 22.0444C16.5971 21.2336 15.9892 20.4185 15.387 19.5991L13.5959 17.1799L11.3522 13.8591C10.6062 12.7479 9.85296 11.6416 9.0926 10.5401C9.0842 10.5383 9.07487 12.0139 9.07113 13.8152C9.0646 16.9699 9.06273 17.0968 9.0226 17.1715C8.9845 17.2587 8.91625 17.3293 8.83033 17.3703C8.76033 17.4057 8.69873 17.4123 8.36833 17.4123H7.9894L7.8886 17.3488C7.82641 17.3096 7.77582 17.2545 7.74207 17.1892L7.69633 17.0903L7.701 12.7008L7.70753 8.30946L7.77567 8.22453C7.82144 8.17075 7.87644 8.12555 7.93807 8.09106C8.02767 8.0472 8.06313 8.04253 8.44207 8.04253C8.88913 8.04253 8.96286 8.06026 9.07953 8.1872C9.9878 9.53889 10.8885 10.8957 11.7815 12.2575C13.2357 14.462 15.2227 17.472 16.1999 18.9504L17.9733 21.6365L18.0629 21.5777C18.9162 21.0102 19.6899 20.3312 20.3635 19.5589C21.7747 17.944 22.6899 15.9561 22.9993 13.8339C23.0889 13.2188 23.1001 13.0368 23.1001 12.2024C23.1001 11.368 23.0889 11.1869 22.9993 10.5709C22.3907 6.36533 19.3975 2.83173 15.3385 1.52226C14.5799 1.28076 13.7987 1.11721 13.007 1.03413C12.797 1.01266 11.3494 0.988397 11.1683 1.00613L11.1665 1.00333ZM15.751 7.77746C15.8032 7.8037 15.8496 7.84007 15.8876 7.88446C15.9256 7.92885 15.9544 7.98037 15.9722 8.036C15.99 8.09293 15.9937 9.31 15.99 12.0531L15.9834 15.9899L15.289 14.9259L14.5927 13.8619V11.0003C14.5927 9.1504 14.6011 8.11066 14.6142 8.06026C14.63 8.0021 14.6573 7.94769 14.6945 7.90024C14.7317 7.85279 14.778 7.81327 14.8307 7.784C14.9203 7.73826 14.953 7.7336 15.2974 7.7336C15.6213 7.7336 15.6782 7.73826 15.751 7.77746Z" fill="#6EE7B7"/>
4
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="-2" y="-2" width="28" height="28" fill="#0a0a0a"/>
3
+ <path d="M13.79 17.0515H18.594C18.907 17.0515 19.206 16.9415 19.477 16.7865C19.748 16.6314 20.027 16.4367 20.184 16.1681C20.34 15.8995 20.449 15.5948 20.449 15.2847C20.449 14.9746 20.34 14.67 20.184 14.4015L16.559 9.00645C16.402 8.73789 16.211 8.54314 15.941 8.38808C15.67 8.23308 15.282 8.12308 14.969 8.12308C14.656 8.12308 14.356 8.23308 14.086 8.38808C13.815 8.54314 13.624 8.73789 13.467 9.00645L13.79 9.92145L11.432 6.26789C11.276 5.99939 11.085 5.71645 10.814 5.56145C10.543 5.40639 10.243 5.38477 9.931 5.38477C9.618 5.38477 9.318 5.40639 9.047 5.56145C8.776 5.71645 8.497 5.99939 8.341 6.26789L3.126 14.4015C2.969 14.67 2.949 14.9746 2.949 15.2847C2.949 15.5948 2.969 15.8995 3.126 16.1681C3.282 16.4366 3.561 16.6314 3.832 16.7865C4.103 16.9415 4.403 17.0515 4.716 17.0515H8.899C10.349 17.0515 11.132 16.9524 11.376 15.8715L12.379 13.6598L13.969 10.9215L16.827 15.2248H12.379L13.79 17.0515ZM8.811 15.2248H5.482L9.931 8.09477L11.199 10.6598L10.034 12.4338C9.208 13.784 8.267 15.2248 8.811 15.2248Z" fill="#6EE7B7"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="-2" y="-2" width="28" height="28" fill="#0a0a0a"/>
3
+ <path d="M14.1431 10.3804C14.1431 9.23289 13.1837 8.30249 12 8.30249C10.8165 8.30249 9.85687 9.23289 9.85687 10.3804C9.85687 11.5281 10.8165 12.4584 12 12.4584C13.1837 12.4584 14.1431 11.5281 14.1431 10.3804Z" fill="#6EE7B7"/>
4
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M18.9603 6.52296C19.4129 4.73982 19.9818 1.43318 17.9763 0.312127C15.9802 -0.804041 13.3827 1.33474 12.0111 2.61854C10.6435 1.34754 7.97304 -0.782105 5.9693 0.342511C3.97401 1.46242 4.58931 4.71424 5.05192 6.50856C3.19065 7.02112 0 8.12512 0 10.3807C0 12.6299 3.18733 13.831 5.03758 14.3431C4.57326 16.1474 3.98877 19.3527 5.98662 20.4702C7.99784 21.5946 10.66 19.5156 12.0443 18.2178C13.4247 19.5091 15.9973 21.6017 17.9938 20.4811C19.9965 19.357 19.4749 16.0947 19.0122 14.29C20.8058 13.7768 24 12.6018 24 10.3807C24 8.1468 20.7922 7.03384 18.9603 6.52296ZM18.733 13.3336C18.4292 12.4013 18.0192 11.4098 17.5177 10.3857C17.9964 9.38568 18.3905 8.40704 18.6858 7.48072C20.0287 7.85824 22.9748 8.72104 22.9748 10.3807C22.9748 12.056 20.1477 12.927 18.733 13.3336ZM17.48 19.6208C15.9904 20.4568 13.7777 18.4557 12.7582 17.5047C13.4346 16.7875 14.1104 15.9538 14.77 15.0279C15.9303 14.9282 17.0264 14.765 18.0205 14.5422C18.3461 15.8187 18.9762 18.781 17.48 19.6208ZM6.4989 19.6089C5.00914 18.776 5.69006 15.9157 6.03166 14.5866C7.01467 14.7975 8.10288 14.9492 9.26592 15.0406C9.92984 15.9466 10.6253 16.7793 11.3261 17.5086C10.4602 18.3206 7.9956 20.4456 6.4989 19.6089ZM1.02519 10.3807C1.02519 8.6992 3.95366 7.84264 5.32723 7.46608C5.62761 8.4132 6.02156 9.40352 6.49698 10.405C6.0154 11.4213 5.61582 12.4273 5.31268 13.3856C4.00295 13.0221 1.02519 12.0633 1.02519 10.3807ZM6.48296 1.20283C7.9788 0.363327 10.2998 2.40786 11.2927 3.3281C10.5955 4.05403 9.90648 4.88048 9.24824 5.7812C8.11952 5.88264 7.039 6.04552 6.04567 6.26376C5.673 4.81657 4.98874 2.04143 6.48296 1.20283ZM15.5034 6.86168C16.2692 6.95536 17.0029 7.08 17.6918 7.23248C17.485 7.8752 17.2272 8.54728 16.9236 9.23624C16.4835 8.42664 16.0111 7.63328 15.5034 6.86168ZM12.0114 4.03848C12.4843 4.53518 12.9579 5.08984 13.4238 5.6916C12.4788 5.64824 11.5322 5.64808 10.5872 5.69096C11.0535 5.09478 11.5312 4.54094 12.0114 4.03848ZM7.0852 9.23552C6.78663 8.54896 6.53118 7.87392 6.32258 7.222C7.00734 7.07344 7.7376 6.952 8.4984 6.85984C7.98928 7.62976 7.51768 8.4228 7.0852 9.23552ZM8.52024 13.9726C7.73432 13.8875 6.99301 13.7722 6.30845 13.6278C6.52035 12.9644 6.78142 12.2748 7.08637 11.5734C7.5248 12.3946 8.0036 13.1954 8.52024 13.9726ZM12.0398 16.7932C11.5539 16.2848 11.0692 15.7225 10.5958 15.1177C11.5462 15.1538 12.4985 15.1539 13.4488 15.1128C12.9814 15.7286 12.5095 16.2918 12.0398 16.7932ZM16.9334 11.5378C17.2542 12.2467 17.5246 12.9326 17.7394 13.5847C17.0434 13.7387 16.2922 13.8627 15.5006 13.9548C16.012 13.1686 16.4919 12.3629 16.9334 11.5378ZM14.1978 14.0753C12.7441 14.176 11.2813 14.1749 9.82704 14.0835C9.00072 12.9132 8.26512 11.6824 7.63016 10.4046C8.26208 9.12952 8.99232 7.90112 9.81472 6.73264C11.27 6.626 12.7342 6.62568 14.1895 6.73328C15.0049 7.90168 15.734 9.12688 16.3806 10.3905C15.7417 11.665 15.0076 12.8958 14.1978 14.0753ZM17.4642 1.17328C18.9605 2.01003 18.2945 4.98181 17.9676 6.27408C16.9719 6.05128 15.8906 5.88552 14.7586 5.78248C14.0991 4.87203 13.4158 4.04414 12.7299 3.32759C13.7356 2.38753 15.9825 0.344711 17.4642 1.17328Z" fill="#6EE7B7"/>
5
+ </svg>
@@ -0,0 +1,4 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="-2" y="-2" width="28" height="28" fill="#0a0a0a"/>
3
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M18.1327 6.67366C18.7462 7.61835 18.8096 8.64263 18.4961 9.41843C17.9177 8.87197 17.2247 8.48048 16.4975 8.28788C16.5061 8.12730 16.4657 7.96260 16.3715 7.81740C16.1346 7.45265 15.6469 7.34898 15.2822 7.58588L13.5224 8.72865C13.5219 8.72895 13.5214 8.72925 13.5209 8.72963L10.8791 10.4452C10.5143 10.6821 10.4107 11.1698 10.6475 11.5346C10.8844 11.8994 11.3722 12.003 11.7369 11.7662L14.3795 10.05C14.3792 10.0502 14.3797 10.0499 14.3795 10.05C15.3820 9.39968 16.9500 9.74918 17.9327 11.1854C18.9157 12.6221 18.5265 14.2428 17.5241 14.8938L12.2404 18.3251C11.238 18.9761 9.66935 18.6267 8.6864 17.1901C8.07281 16.2454 8.00952 15.2211 8.32306 14.4453C8.90139 14.9918 9.59444 15.3833 10.3216 15.5759C10.313 15.7365 10.3533 15.9012 10.4475 16.0464C10.6845 16.4111 11.1722 16.5148 11.5369 16.2779L16.4401 13.4186C16.8047 13.1817 16.9084 12.694 16.6716 12.3292C16.4347 11.9645 15.9469 11.8608 15.5822 12.0977L12.9402 13.8134C12.94 13.8135 12.9404 13.8133 12.9402 13.8134C11.9377 14.4642 10.3692 14.1149 9.38636 12.6783C8.40341 11.2417 8.79265 9.62093 9.79505 8.96994L15.0788 5.53871C16.0811 4.88773 17.6497 5.23703 18.1327 6.67366ZM19.5279 10.8058C20.5307 9.42090 20.4769 7.39157 19.4537 5.81585C18.1757 3.84808 15.6366 2.97377 13.7209 4.21781L8.43726 7.64904C6.67284 8.79488 6.33499 11.1549 7.29119 13.0580C6.28842 14.4428 6.34222 16.4722 7.3655 18.0479C8.64336 20.0157 11.1826 20.89 13.0982 19.646L18.3818 16.2147C20.1462 15.0689 20.4841 12.7089 19.5279 10.8058Z" fill="#6EE7B7"/>
4
+ </svg>
@@ -0,0 +1,5 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <rect x="-2" y="-2" width="28" height="28" fill="#0a0a0a"/>
3
+ <path d="M12 8.1015L10.5723 5.89673H8.59717L12 11.1207L15.4027 5.89673H13.4277L12 8.1015Z" fill="#6EE7B7"/>
4
+ <path d="M16.7113 5.89697L12 13.5209L7.28877 5.89697H4.98865L12 17.604L19.0114 5.89697H16.7113Z" fill="#6EE7B7"/>
5
+ </svg>
Binary file
Binary file