├── .npmrc
├── packages
├── gemi
│ ├── http
│ │ ├── Cookie.ts
│ │ ├── Policy.ts
│ │ ├── BroadcastingRouter.ts
│ │ ├── Error.ts
│ │ ├── MiddlewareServiceProvider.ts
│ │ ├── getCookies.ts
│ │ ├── PoliciesServiceProvider.ts
│ │ ├── Middleware.ts
│ │ ├── Controller.ts
│ │ ├── CacheMiddleware.ts
│ │ ├── CSRFMiddleware.ts
│ │ ├── index.ts
│ │ ├── Router.ts
│ │ ├── RateLimitMiddleware.ts
│ │ ├── AuthenticationMiddlware.ts
│ │ ├── CorsMiddleware.ts
│ │ ├── errors.ts
│ │ └── Metadata.ts
│ ├── services
│ │ ├── rate-limiter
│ │ │ ├── types.ts
│ │ │ ├── drivers
│ │ │ │ ├── RateLimiterDriver.ts
│ │ │ │ └── InMemoryRateLimiterDriver.ts
│ │ │ ├── RateLimiterServiceContainer.ts
│ │ │ └── RateLimiterServiceProvider.ts
│ │ ├── ServiceProvider.ts
│ │ ├── pubsub
│ │ │ ├── types.ts
│ │ │ └── BroadcastingServiceProvider.ts
│ │ ├── email
│ │ │ ├── drivers
│ │ │ │ ├── EmailDriver.ts
│ │ │ │ ├── types.ts
│ │ │ │ └── ResendDriver.ts
│ │ │ ├── EmailServiceContainer.ts
│ │ │ └── EmailServiceProvider.ts
│ │ ├── kernel-id
│ │ │ ├── KernelIdServiceProvider.ts
│ │ │ └── KernelIdServiceContainer.ts
│ │ ├── image-optimization
│ │ │ ├── drivers
│ │ │ │ ├── ImageOptimizationDriver.ts
│ │ │ │ ├── types.ts
│ │ │ │ └── SharpDriver.ts
│ │ │ └── ImageOptimizationServiceProvider.ts
│ │ ├── queue
│ │ │ ├── QueueServiceProvider.ts
│ │ │ ├── queueWorker.ts
│ │ │ └── Job.ts
│ │ ├── logging
│ │ │ ├── types.ts
│ │ │ ├── LoggingServiceProvider.ts
│ │ │ └── LoggingRouter.ts
│ │ ├── cron
│ │ │ ├── CronJob.ts
│ │ │ ├── CronServiceProvider.ts
│ │ │ └── CronServiceContainer.ts
│ │ ├── file-storage
│ │ │ ├── FileStorageServiceProvider.ts
│ │ │ ├── FileStorageServiceContainer.ts
│ │ │ └── drivers
│ │ │ │ ├── FileStorageDriver.ts
│ │ │ │ ├── types.ts
│ │ │ │ └── FileSystemDriver.ts
│ │ ├── router
│ │ │ ├── ApiRouterServiceProvider.ts
│ │ │ ├── ViewRouterServiceProvider.ts
│ │ │ ├── createComponentTree.ts
│ │ │ ├── createRouteManifest.ts
│ │ │ └── createFlatViewRoutes.test.ts
│ │ ├── ServiceContainer.ts
│ │ ├── middleware
│ │ │ └── MiddlewareServiceContainer.ts
│ │ └── index.ts
│ ├── email
│ │ └── index.ts
│ ├── client
│ │ ├── .env.d.ts
│ │ ├── auth
│ │ │ ├── useSignUp.ts
│ │ │ ├── useResetPassword.ts
│ │ │ ├── useForgotPassword.ts
│ │ │ ├── useSignIn.tsx
│ │ │ ├── useSignOut.ts
│ │ │ └── useUser.ts
│ │ ├── useParams.ts
│ │ ├── rpc.ts
│ │ ├── isPlainObject.ts
│ │ ├── useRouteData.ts
│ │ ├── helpers
│ │ │ └── flattenComponentTree.ts
│ │ ├── useAppIdMissmatch.ts
│ │ ├── useRoute.ts
│ │ ├── useLocation.ts
│ │ ├── useIsNavigationPending.ts
│ │ ├── useBroadcast.ts
│ │ ├── createRoot.tsx
│ │ ├── useNavigationProgress.ts
│ │ ├── OpenGraphImage.tsx
│ │ ├── HttpClientContext.tsx
│ │ ├── Redirect.tsx
│ │ ├── useBreadcrumbs.ts
│ │ ├── useSubscription.ts
│ │ ├── useForm.tsx
│ │ ├── RouteStateContext.tsx
│ │ ├── QueryManagerContext.tsx
│ │ ├── useLocale.ts
│ │ ├── ComponentContext.tsx
│ │ ├── RouteTransitionProvider.tsx
│ │ ├── HttpReload.tsx
│ │ ├── useTranslator.ts
│ │ ├── QueryStore.ts
│ │ ├── ServerDataProvider.tsx
│ │ ├── Image.tsx
│ │ ├── ThemeProvider.tsx
│ │ ├── index.ts
│ │ ├── types.ts
│ │ └── WebsocketContext.tsx
│ ├── broadcasting
│ │ ├── index.ts
│ │ └── BroadcastingChannel.ts
│ ├── app
│ │ ├── index.ts
│ │ ├── __snapshots__
│ │ │ └── App.test.ts.snap
│ │ ├── prismaExtension.ts
│ │ ├── createComponentTree.ts
│ │ └── createRouteManifest.ts
│ ├── server
│ │ ├── index.ts
│ │ ├── createProdServer.ts
│ │ ├── generateEtag.ts
│ │ ├── createServer.ts
│ │ ├── Server.ts
│ │ ├── renderErrorPage.ts
│ │ └── styles.tsx
│ ├── i18n
│ │ ├── index.ts
│ │ ├── I18nServiceProvider.ts
│ │ ├── Translation.tsx
│ │ ├── I18nRouter.ts
│ │ ├── I18nServiceContainer.ts
│ │ └── Dictionary.ts
│ ├── utils
│ │ ├── sleep.ts
│ │ ├── toCamelCase.ts
│ │ ├── omitNullishValues.ts
│ │ ├── debounce.ts
│ │ ├── Subject.ts
│ │ ├── autobind.ts
│ │ └── applyParams.ts
│ ├── kernel
│ │ ├── context.ts
│ │ ├── index.ts
│ │ └── KernelContext.ts
│ ├── internal
│ │ ├── isConstructor.ts
│ │ └── type-utils.ts
│ ├── vite
│ │ ├── test
│ │ │ ├── test.ts
│ │ │ ├── Controller.ts
│ │ │ ├── OrgController.ts
│ │ │ └── ApiRouter.ts
│ │ ├── input.ts
│ │ └── index.ts
│ ├── tsconfig.lint.json
│ ├── rfc
│ │ ├── broadcasting.ts
│ │ ├── feature-toggle.ts
│ │ ├── Router.ts
│ │ ├── orm.ts
│ │ ├── i18n.ts
│ │ └── workflow.ts
│ ├── .eslintrc.js
│ ├── runtime
│ │ └── index.ts
│ ├── auth
│ │ ├── oauth
│ │ │ └── OAuthProvider.ts
│ │ └── adapters
│ │ │ └── blank.ts
│ ├── facades
│ │ ├── index.ts
│ │ ├── Meta.ts
│ │ ├── Cookie.ts
│ │ ├── Url.ts
│ │ ├── Broadcast.ts
│ │ ├── I18n.ts
│ │ ├── FileStorage.ts
│ │ ├── Log.ts
│ │ └── Redirect.ts
│ ├── vite.plugin.config.mts
│ ├── scripts
│ │ ├── prepare-bin.ts
│ │ ├── setupExports.ts
│ │ └── build.ts
│ ├── tsconfig.json
│ ├── vite.client.config.mts
│ ├── tsconfig.browser.json
│ ├── bin
│ │ ├── createRollupInput.ts
│ │ └── gemi.ts
│ ├── exports.json
│ └── ide
│ │ └── emacs
│ │ └── gemi.el
├── eslint-config
│ ├── README.md
│ ├── package.json
│ ├── library.js
│ ├── next.js
│ └── react-internal.js
├── typescript-config
│ ├── package.json
│ ├── react-library.json
│ ├── nextjs.json
│ └── base.json
└── create-gemi-app
│ ├── .gitignore
│ ├── tsconfig.json
│ ├── scripts
│ └── prepare-bin.ts
│ └── package.json
├── templates
└── saas-starter
│ ├── public
│ ├── .well-known
│ │ └── test
│ ├── favicon.ico
│ ├── GeistMonoVF.ttf
│ ├── logo.svg
│ └── gemi.svg
│ ├── prisma
│ ├── dev.db
│ └── migrations
│ │ └── migration_lock.toml
│ ├── app
│ ├── views
│ │ ├── 404.tsx
│ │ ├── auth
│ │ │ ├── ResetPassword.tsx
│ │ │ ├── ForgotPassword.tsx
│ │ │ ├── MagicLinkSignIn.tsx
│ │ │ ├── OauthCallback.tsx
│ │ │ ├── SignIn.tsx
│ │ │ └── SignUp.tsx
│ │ ├── Dashboard.tsx
│ │ ├── Test.tsx
│ │ ├── components
│ │ │ ├── lib
│ │ │ │ └── utils.ts
│ │ │ ├── ui
│ │ │ │ ├── skeleton.tsx
│ │ │ │ ├── input.tsx
│ │ │ │ ├── separator.tsx
│ │ │ │ ├── tooltip.tsx
│ │ │ │ └── button.tsx
│ │ │ ├── hooks
│ │ │ │ └── use-mobile.tsx
│ │ │ ├── FormField.tsx
│ │ │ └── AppSidebar.tsx
│ │ ├── Pricing.tsx
│ │ ├── _Redirect.tsx
│ │ ├── RootLayout.tsx
│ │ ├── AppLayout.tsx
│ │ ├── Inbox.tsx
│ │ ├── About.tsx
│ │ └── Home.tsx
│ ├── bootstrap.ts
│ ├── kernel
│ │ ├── providers
│ │ │ ├── QueueServiceProvider.ts
│ │ │ ├── EmailServiceProvider.ts
│ │ │ ├── ApiRouterServiceProvider.ts
│ │ │ ├── FileStorageServiceProvider.ts
│ │ │ ├── I18nServiceProvider.ts
│ │ │ ├── ViewRouterServiceProvider.ts
│ │ │ ├── CronServiceProvider.ts
│ │ │ ├── MiddlewareServiceProvider.ts
│ │ │ ├── LoggingServiceProvider.ts
│ │ │ └── AuthenticationServiceProvider.ts
│ │ └── Kernel.ts
│ ├── http
│ │ ├── controllers
│ │ │ └── HomeController.ts
│ │ └── routes
│ │ │ ├── api.ts
│ │ │ └── view.ts
│ ├── client.tsx
│ ├── database
│ │ └── prisma.ts
│ └── i18n
│ │ └── index.ts
│ ├── postcss.config.js
│ ├── .gitignore
│ ├── vite.config.mjs
│ ├── README.md
│ ├── .gemi
│ └── rollupInput.json
│ ├── .env.example
│ ├── gemi.d.ts
│ ├── components.json
│ ├── tsconfig.json
│ ├── Dockerfile
│ ├── package.json
│ └── tailwind.config.js
├── tsconfig.json
├── docs
├── ViewRoutes_.md
├── Email.md
├── Authorization.md
├── Navigation.md
└── Day 1.md
├── .eslintrc.js
├── turbo.json
├── package.json
├── .gitignore
├── biome.json
└── LICENCE
/.npmrc:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/gemi/http/Cookie.ts:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/packages/gemi/services/rate-limiter/types.ts:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/templates/saas-starter/public/.well-known/test:
--------------------------------------------------------------------------------
1 | Hello there!
2 |
--------------------------------------------------------------------------------
/packages/gemi/email/index.ts:
--------------------------------------------------------------------------------
1 | export { Email } from "./Email";
2 |
--------------------------------------------------------------------------------
/packages/gemi/client/.env.d.ts:
--------------------------------------------------------------------------------
1 | ///
This is the content of inbox item {i + 1}.
8 |This is the content of inbox item {i + 1}.
14 |{x.jsx("para", { break: () =>
})}
Status: {data?.status ?? "Loading..."}
30 |Version: {version}
31 | 34 | 41 |