├── .eslintrc.js
├── .github
├── ISSUE_TEMPLATE
│ ├── config.yml
│ └── docs.yml
├── PULL_REQUEST_TEMPLATE.md
└── workflows
│ └── build.yml
├── .gitignore
├── .prettierignore
├── .prettierrc
├── .yarnrc.yml
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── README.md
├── apps
└── docs
│ ├── .content.eslintrc.js
│ ├── .env.sample
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── README.md
│ ├── babel.config.js
│ ├── content
│ ├── bun
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── build-process.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ └── overview.mdx
│ ├── clickhouse
│ │ └── overview.mdx
│ ├── company
│ │ ├── about.mdx
│ │ ├── branding.mdx
│ │ ├── payment.mdx
│ │ └── pricing.mdx
│ ├── deno
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── build-process.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ └── overview.mdx
│ ├── docker
│ │ └── overview.mdx
│ ├── dotnet
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── build-process.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ └── overview.mdx
│ ├── elasticsearch
│ │ └── overview.mdx
│ ├── elixir
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── build-process.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ └── overview.mdx
│ ├── features
│ │ ├── access.mdx
│ │ ├── backup.mdx
│ │ ├── build-cache.mdx
│ │ ├── cdn.mdx
│ │ ├── container-vs-vm.mdx
│ │ ├── dns.mdx
│ │ ├── env-variables.mdx
│ │ ├── infrastructure.mdx
│ │ ├── pipeline.mdx
│ │ └── scaling-ha.mdx
│ ├── frameworks
│ │ ├── laravel.mdx
│ │ └── laravel
│ │ │ ├── cron.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── faq.mdx
│ │ │ ├── introduction.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── migrations.mdx
│ │ │ ├── recipes
│ │ │ ├── filament-devel.mdx
│ │ │ ├── filament-local.mdx
│ │ │ ├── filament-prod.mdx
│ │ │ ├── jetstream-devel.mdx
│ │ │ ├── jetstream-local.mdx
│ │ │ ├── jetstream-prod.mdx
│ │ │ ├── minimal-devel.mdx
│ │ │ ├── minimal-local.mdx
│ │ │ ├── minimal-prod.mdx
│ │ │ ├── twill-devel.mdx
│ │ │ ├── twill-local.mdx
│ │ │ └── twill-prod.mdx
│ │ │ ├── redis.mdx
│ │ │ └── smtp.mdx
│ ├── getting-started.mdx
│ ├── gleam
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── build-process.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ └── overview.mdx
│ ├── go
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── build-process.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ ├── overview.mdx
│ │ └── tutorial
│ │ │ ├── quickstart.mdx
│ │ │ ├── runtime-sql.mdx
│ │ │ └── step-by-step.mdx
│ ├── help
│ │ ├── contacts.mdx
│ │ └── faq.mdx
│ ├── homepage.mdx
│ ├── java
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── build-process.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ └── overview.mdx
│ ├── kafka
│ │ └── overview.mdx
│ ├── keydb
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── connect.mdx
│ │ │ ├── control.mdx
│ │ │ ├── create.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── manage.mdx
│ │ │ └── scale.mdx
│ │ └── overview.mdx
│ ├── mariadb
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── backup.mdx
│ │ │ ├── connect.mdx
│ │ │ ├── control.mdx
│ │ │ ├── create.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── export-import-data.mdx
│ │ │ ├── manage.mdx
│ │ │ └── scale.mdx
│ │ ├── overview.mdx
│ │ ├── tech-details
│ │ │ ├── cluster.mdx
│ │ │ └── limitations.mdx
│ │ └── tutorial
│ │ │ ├── quickstart.mdx
│ │ │ └── step-by-step.mdx
│ ├── meilisearch
│ │ └── overview.mdx
│ ├── nats
│ │ └── overview.mdx
│ ├── nginx
│ │ ├── faq.mdx
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── customize-web-server.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ ├── overview.mdx
│ │ └── tutorial
│ │ │ ├── quickstart.mdx
│ │ │ ├── runtime-sql.mdx
│ │ │ └── step-by-step.mdx
│ ├── nodejs
│ │ ├── faq.mdx
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── build-process.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ └── overview.mdx
│ ├── object-storage
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── create.mdx
│ │ │ ├── curl-file.mdx
│ │ │ ├── delete.mdx
│ │ │ └── update-bucket.mdx
│ │ └── overview.mdx
│ ├── php
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── build-process.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── customize-web-server.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ └── overview.mdx
│ ├── postgresql
│ │ ├── faq.mdx
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── backup.mdx
│ │ │ ├── connect.mdx
│ │ │ ├── control.mdx
│ │ │ ├── create.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── export-import-data.mdx
│ │ │ ├── manage.mdx
│ │ │ └── scale.mdx
│ │ └── overview.mdx
│ ├── python
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── build-process.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ ├── overview.mdx
│ │ └── tutorial
│ │ │ ├── quickstart.mdx
│ │ │ ├── runtime-sql.mdx
│ │ │ └── step-by-step.mdx
│ ├── qdrant
│ │ └── overview.mdx
│ ├── references
│ │ ├── api.mdx
│ │ ├── cli.mdx
│ │ ├── cli
│ │ │ ├── commands.mdx
│ │ │ └── configuration.mdx
│ │ ├── debug-mode.mdx
│ │ ├── firewall.mdx
│ │ ├── github-integration.mdx
│ │ ├── gitlab-integration.mdx
│ │ ├── import-yaml
│ │ │ ├── pre-processor.mdx
│ │ │ └── type-list.mdx
│ │ ├── import.mdx
│ │ ├── smtp.mdx
│ │ ├── ssh.mdx
│ │ ├── vpn.mdx
│ │ ├── vpn
│ │ │ └── troubleshooting.mdx
│ │ └── zsc.mdx
│ ├── rust
│ │ ├── getting-started.mdx
│ │ ├── how-to
│ │ │ ├── access.mdx
│ │ │ ├── build-pipeline.mdx
│ │ │ ├── build-process.mdx
│ │ │ ├── controls.mdx
│ │ │ ├── create.mdx
│ │ │ ├── customize-runtime.mdx
│ │ │ ├── delete.mdx
│ │ │ ├── deploy-process.mdx
│ │ │ ├── env-variables.mdx
│ │ │ ├── filebrowser.mdx
│ │ │ ├── logs.mdx
│ │ │ ├── scaling.mdx
│ │ │ ├── shared-storage.mdx
│ │ │ ├── trigger-pipeline.mdx
│ │ │ └── upgrade.mdx
│ │ └── overview.mdx
│ ├── shared-storage
│ │ ├── how-to
│ │ │ ├── backup.mdx
│ │ │ ├── connect.mdx
│ │ │ ├── create.mdx
│ │ │ ├── manage.mdx
│ │ │ └── use.mdx
│ │ ├── overview.mdx
│ │ └── tech-details.mdx
│ ├── static
│ │ └── overview.mdx
│ ├── typesense
│ │ └── overview.mdx
│ ├── valkey
│ │ └── overview.mdx
│ └── zerops-yaml
│ │ ├── base-list.mdx
│ │ ├── cron.mdx
│ │ └── specification.mdx
│ ├── docusaurus.config.js
│ ├── package.json
│ ├── sidebars.js
│ ├── src
│ ├── components
│ │ ├── Accordion
│ │ │ └── index.tsx
│ │ ├── BackgroundPattern
│ │ │ └── index.tsx
│ │ ├── BackupSimulator
│ │ │ └── index.tsx
│ │ ├── Badge
│ │ │ └── index.tsx
│ │ ├── BorderedIcon
│ │ │ └── index.tsx
│ │ ├── BrandAssets
│ │ │ └── index.tsx
│ │ ├── CloudinaryImage
│ │ │ └── index.tsx
│ │ ├── ComparisonBlock
│ │ │ └── index.tsx
│ │ ├── CustomButton
│ │ │ └── index.tsx
│ │ ├── CustomCard
│ │ │ └── index.tsx
│ │ ├── CustomCardWithIcon
│ │ │ └── index.tsx
│ │ ├── DeployButton
│ │ │ └── index.tsx
│ │ ├── Detail
│ │ │ └── index.tsx
│ │ ├── DetailsList
│ │ │ └── index.tsx
│ │ ├── Diagram2CodeSpecs
│ │ │ └── index.tsx
│ │ ├── DocSidebarItemIcon
│ │ │ └── index.tsx
│ │ ├── Dropdown
│ │ │ └── index.tsx
│ │ ├── Faq
│ │ │ └── index.tsx
│ │ ├── Feedback
│ │ │ └── index.tsx
│ │ ├── Footer
│ │ │ └── SocialLinks
│ │ │ │ └── index.tsx
│ │ ├── Glossary
│ │ │ └── index.tsx
│ │ ├── GroupCards
│ │ │ └── index.tsx
│ │ ├── Image
│ │ │ └── index.tsx
│ │ ├── LargeCard
│ │ │ └── index.tsx
│ │ ├── LargeCardList
│ │ │ └── index.tsx
│ │ ├── MobileLogo
│ │ │ └── index.tsx
│ │ ├── Navbar
│ │ │ └── Actions
│ │ │ │ └── index.tsx
│ │ ├── NavigationButons
│ │ │ └── index.tsx
│ │ ├── PricingCalculator
│ │ │ ├── calculator.css
│ │ │ └── index.tsx
│ │ ├── QueryNote
│ │ │ └── index.tsx
│ │ ├── ResourceTable
│ │ │ └── index.tsx
│ │ ├── StructuredData
│ │ │ └── HowTo
│ │ │ │ └── index.tsx
│ │ ├── TabbedCodeBlock
│ │ │ ├── index.tsx
│ │ │ └── styles.module.css
│ │ ├── TechCard
│ │ │ └── index.tsx
│ │ ├── TypeList
│ │ │ └── index.tsx
│ │ ├── UiIcon
│ │ │ └── index.tsx
│ │ ├── UnorderedCodeList
│ │ │ └── index.tsx
│ │ ├── UnorderedList
│ │ │ └── index.tsx
│ │ ├── Video
│ │ │ └── index.tsx
│ │ └── work-in-progress
│ │ │ └── index.tsx
│ ├── css
│ │ ├── _docusaurus.css
│ │ ├── _variables.css
│ │ ├── components
│ │ │ ├── sidebar.css
│ │ │ ├── toc.css
│ │ │ └── tooltip.css
│ │ └── custom.css
│ ├── hooks
│ │ └── .gitkeep
│ ├── pages
│ │ └── discord.js
│ ├── plugins
│ │ └── docusaurus-plugin-diagram2code-showcase
│ │ │ └── index.js
│ ├── providers
│ │ ├── DocsProviders
│ │ │ └── index.tsx
│ │ └── Sidebar
│ │ │ └── index.tsx
│ ├── theme
│ │ ├── Admonition
│ │ │ ├── Icon
│ │ │ │ ├── Danger.tsx
│ │ │ │ ├── Info.tsx
│ │ │ │ ├── Note.tsx
│ │ │ │ ├── Tip.tsx
│ │ │ │ └── Warning.tsx
│ │ │ ├── Layout
│ │ │ │ └── index.tsx
│ │ │ └── Type
│ │ │ │ ├── Caution.tsx
│ │ │ │ ├── Danger.tsx
│ │ │ │ ├── Info.tsx
│ │ │ │ ├── Note.tsx
│ │ │ │ ├── Tip.tsx
│ │ │ │ └── Warning.tsx
│ │ ├── AnnouncementBar
│ │ │ ├── CloseButton
│ │ │ │ └── index.tsx
│ │ │ ├── Content
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── BackToTopButton
│ │ │ └── index.tsx
│ │ ├── CodeBlock
│ │ │ ├── Content
│ │ │ │ └── String.tsx
│ │ │ └── index.tsx
│ │ ├── Details
│ │ │ └── index.tsx
│ │ ├── DocCard
│ │ │ └── index.tsx
│ │ ├── DocCardList
│ │ │ └── index.tsx
│ │ ├── DocItem
│ │ │ ├── Content
│ │ │ │ └── index.tsx
│ │ │ ├── Footer
│ │ │ │ └── index.tsx
│ │ │ └── Layout
│ │ │ │ └── index.tsx
│ │ ├── DocRoot
│ │ │ ├── Layout
│ │ │ │ ├── Main
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Sidebar
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── DocSidebar
│ │ │ └── Desktop
│ │ │ │ └── index.tsx
│ │ ├── DocSidebarItem
│ │ │ ├── Category
│ │ │ │ └── index.tsx
│ │ │ ├── Html
│ │ │ │ └── index.tsx
│ │ │ └── Link
│ │ │ │ └── index.tsx
│ │ ├── DocsRoot
│ │ │ └── index.tsx
│ │ ├── EditThisPage
│ │ │ └── index.tsx
│ │ ├── Footer
│ │ │ └── Layout
│ │ │ │ └── index.tsx
│ │ ├── Icon
│ │ │ ├── Alpine
│ │ │ │ └── index.tsx
│ │ │ ├── Beaker
│ │ │ │ └── index.tsx
│ │ │ ├── Bun
│ │ │ │ └── index.tsx
│ │ │ ├── Cdn
│ │ │ │ └── index.tsx
│ │ │ ├── CircleDottedLine
│ │ │ │ └── index.tsx
│ │ │ ├── Clickhouse
│ │ │ │ └── index.tsx
│ │ │ ├── Close
│ │ │ │ └── index.tsx
│ │ │ ├── CloudOk
│ │ │ │ └── index.tsx
│ │ │ ├── Copy
│ │ │ │ └── index.tsx
│ │ │ ├── CurlyBraces
│ │ │ │ └── index.tsx
│ │ │ ├── DarkMode
│ │ │ │ └── index.tsx
│ │ │ ├── Database
│ │ │ │ └── index.tsx
│ │ │ ├── Deno
│ │ │ │ └── index.tsx
│ │ │ ├── Discord
│ │ │ │ └── index.tsx
│ │ │ ├── Docker
│ │ │ │ └── index.tsx
│ │ │ ├── Dotnet
│ │ │ │ └── index.tsx
│ │ │ ├── Elasticsearch
│ │ │ │ └── index.tsx
│ │ │ ├── Elixir
│ │ │ │ └── index.tsx
│ │ │ ├── ExternalLink
│ │ │ │ └── index.tsx
│ │ │ ├── Filament
│ │ │ │ └── index.tsx
│ │ │ ├── Firewall
│ │ │ │ └── index.tsx
│ │ │ ├── FlagMini
│ │ │ │ └── index.tsx
│ │ │ ├── Gingonic
│ │ │ │ └── index.tsx
│ │ │ ├── GitHub
│ │ │ │ └── index.tsx
│ │ │ ├── Gitlab
│ │ │ │ └── index.tsx
│ │ │ ├── Gleam
│ │ │ │ └── index.tsx
│ │ │ ├── Go
│ │ │ │ └── index.tsx
│ │ │ ├── Java
│ │ │ │ └── index.tsx
│ │ │ ├── Kafka
│ │ │ │ └── index.tsx
│ │ │ ├── Keydb
│ │ │ │ └── index.tsx
│ │ │ ├── Laravel
│ │ │ │ └── index.tsx
│ │ │ ├── LaravelJetstream
│ │ │ │ └── index.tsx
│ │ │ ├── LightMode
│ │ │ │ └── index.tsx
│ │ │ ├── LinkedIn
│ │ │ │ └── index.tsx
│ │ │ ├── Mariadb
│ │ │ │ └── index.tsx
│ │ │ ├── Meilisearch
│ │ │ │ └── index.tsx
│ │ │ ├── Model
│ │ │ │ └── index.tsx
│ │ │ ├── Mongodb
│ │ │ │ └── index.tsx
│ │ │ ├── Nats
│ │ │ │ └── index.tsx
│ │ │ ├── Nestjs
│ │ │ │ └── index.tsx
│ │ │ ├── Nette
│ │ │ │ └── index.tsx
│ │ │ ├── Nextjs
│ │ │ │ └── index.tsx
│ │ │ ├── Nginx
│ │ │ │ └── index.tsx
│ │ │ ├── Nodejs
│ │ │ │ └── index.tsx
│ │ │ ├── Php
│ │ │ │ └── index.tsx
│ │ │ ├── Postgresql
│ │ │ │ └── index.tsx
│ │ │ ├── PuzzleSolid
│ │ │ │ └── index.tsx
│ │ │ ├── Python
│ │ │ │ └── index.tsx
│ │ │ ├── Qdrant
│ │ │ │ └── index.tsx
│ │ │ ├── Rabbitmq
│ │ │ │ └── index.tsx
│ │ │ ├── Rust
│ │ │ │ └── index.tsx
│ │ │ ├── Strapi
│ │ │ │ └── index.tsx
│ │ │ ├── Twill
│ │ │ │ └── index.tsx
│ │ │ ├── Twitter
│ │ │ │ └── index.tsx
│ │ │ ├── Typesense
│ │ │ │ └── index.tsx
│ │ │ ├── Ubuntu
│ │ │ │ └── index.tsx
│ │ │ ├── Valkey
│ │ │ │ └── index.tsx
│ │ │ ├── Zerops
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── Layout
│ │ │ └── index.tsx
│ │ ├── MDXComponents
│ │ │ ├── A.tsx
│ │ │ ├── Code.tsx
│ │ │ ├── Details.tsx
│ │ │ ├── H1.tsx
│ │ │ └── index.tsx
│ │ ├── Navbar
│ │ │ ├── ColorModeToggle
│ │ │ │ └── index.tsx
│ │ │ ├── Content
│ │ │ │ └── index.tsx
│ │ │ ├── Layout
│ │ │ │ └── index.tsx
│ │ │ ├── Logo
│ │ │ │ └── index.tsx
│ │ │ ├── MobileSidebar
│ │ │ │ ├── Header
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Layout
│ │ │ │ │ └── index.tsx
│ │ │ │ └── Toggle
│ │ │ │ │ └── index.tsx
│ │ │ └── Search
│ │ │ │ └── index.tsx
│ │ ├── NavbarItem
│ │ │ ├── NavbarNavLink.tsx
│ │ │ └── SearchNavbarItem.tsx
│ │ ├── NotFound
│ │ │ ├── Content
│ │ │ │ └── index.tsx
│ │ │ └── index.tsx
│ │ ├── TOCItems
│ │ │ └── index.tsx
│ │ └── Tabs
│ │ │ └── index.tsx
│ ├── types
│ │ ├── global.d.ts
│ │ └── index.d.ts
│ └── utils
│ │ ├── decode-str.ts
│ │ ├── exclude-sidebar-results.js
│ │ ├── filter-list-items.ts
│ │ ├── get-first-category-item.ts
│ │ ├── get-os-shortcut.ts
│ │ ├── glossary.ts
│ │ ├── is-in-view.ts
│ │ ├── reverse-sidebar.js
│ │ └── specs.ts
│ ├── static
│ ├── .nojekyll
│ ├── black-logo.svg
│ ├── brand
│ │ └── zerops-assets.zip
│ ├── data.json
│ ├── deploy-button.svg
│ ├── favicon.ico
│ ├── img
│ │ ├── admin-icon-dark.svg
│ │ ├── admin-icon.svg
│ │ ├── announcement-bg.svg
│ │ ├── bell-dark.png
│ │ ├── cart-icon-dark.svg
│ │ ├── cart-icon.svg
│ │ ├── dev-env-icon-dark.svg
│ │ ├── dev-env-icon.svg
│ │ ├── diagrams-bg.png
│ │ ├── docs_meta.jpeg
│ │ ├── fast-delivery-icon-dark.svg
│ │ ├── fast-delivery-icon.svg
│ │ ├── gatsby-icon-dark.svg
│ │ ├── gatsby-icon.svg
│ │ ├── gui
│ │ │ ├── automatic-scaling-2.webp
│ │ │ ├── automatic-scaling.webp
│ │ │ ├── create-project.png
│ │ │ ├── delete-service
│ │ │ │ ├── Elixir.webp
│ │ │ │ ├── Gleam.webp
│ │ │ │ ├── Python.webp
│ │ │ │ ├── apache-php.webp
│ │ │ │ ├── bun.webp
│ │ │ │ ├── deno.webp
│ │ │ │ ├── dotnet.webp
│ │ │ │ ├── golang.webp
│ │ │ │ ├── java.webp
│ │ │ │ ├── nginx-php.webp
│ │ │ │ ├── nodejs.webp
│ │ │ │ └── rust.webp
│ │ │ ├── enable-firewall.webp
│ │ │ ├── github-integration.webp
│ │ │ ├── ipv6-public-port.webp
│ │ │ ├── laravel
│ │ │ │ └── runtime-log.webp
│ │ │ ├── php-nginx
│ │ │ │ └── service.png
│ │ │ ├── pipeline-history.webp
│ │ │ ├── postgres
│ │ │ │ └── backups.webp
│ │ │ ├── public-access-domain.webp
│ │ │ ├── public-access.webp
│ │ │ ├── resources.webp
│ │ │ ├── running-build.webp
│ │ │ ├── secrets.webp
│ │ │ ├── serious-core.webp
│ │ │ ├── service
│ │ │ │ ├── Deno.webp
│ │ │ │ ├── Golang.webp
│ │ │ │ ├── bun.webp
│ │ │ │ ├── dotnet.webp
│ │ │ │ ├── elixir.webp
│ │ │ │ ├── gleam.webp
│ │ │ │ ├── java.webp
│ │ │ │ ├── nodejs.webp
│ │ │ │ ├── php-apache.webp
│ │ │ │ ├── php-nginx.webp
│ │ │ │ ├── python.webp
│ │ │ │ └── rust.webp
│ │ │ ├── valkey
│ │ │ │ └── service.webp
│ │ │ └── zsc-web-terminal.webp
│ │ ├── img.png
│ │ ├── learning-path-img.png
│ │ ├── light-beam.png
│ │ ├── link-icon-light.svg
│ │ ├── link-icon.svg
│ │ ├── logo-icon-dark.png
│ │ ├── logo-icon.png
│ │ ├── logo-mobile-dark.png
│ │ ├── logo-mobile.png
│ │ ├── magnifying-glass-dark.svg
│ │ ├── magnifying-glass.svg
│ │ ├── mind-maps
│ │ │ ├── build-deploy
│ │ │ │ ├── custom-runtime.webp
│ │ │ │ ├── manual-deploy.webp
│ │ │ │ ├── step-1-dark.webp
│ │ │ │ ├── step-1.webp
│ │ │ │ ├── step-2.webp
│ │ │ │ └── step-3.webp
│ │ │ ├── lightweight-dark.svg
│ │ │ ├── lightweight.svg
│ │ │ ├── serious-dark.svg
│ │ │ └── serious.svg
│ │ ├── nextjs-icon-dark.svg
│ │ ├── nextjs-icon.svg
│ │ ├── payment-accepted-icon-dark.svg
│ │ ├── payment-accepted-icon.svg
│ │ ├── screenshots
│ │ │ ├── access-tokens-dark.webp
│ │ │ ├── access-tokens-light.webp
│ │ │ ├── add_user.png
│ │ │ ├── backup_frequency.png
│ │ │ ├── build_deploy_pipeline-step1.png
│ │ │ ├── build_deploy_pipeline-step2.png
│ │ │ ├── build_deploy_pipeline-step3.png
│ │ │ ├── build_deploy_pipeline_custom_runtime.png
│ │ │ ├── cancel_running_build.png
│ │ │ ├── client_id.png
│ │ │ ├── connect_shared_storage.png
│ │ │ ├── connect_shared_storage_1.png
│ │ │ ├── connect_shared_storage_2.png
│ │ │ ├── create_nodejs_cast.mp4
│ │ │ ├── create_nodejs_service_1.png
│ │ │ ├── create_nodejs_service_2.png
│ │ │ ├── create_object_storage_cast.mp4
│ │ │ ├── create_shared_storage_cast.mp4
│ │ │ ├── debug_mode.webp
│ │ │ ├── delete_object_storage.png
│ │ │ ├── firewall_for_public_port.png
│ │ │ ├── github_integration.png
│ │ │ ├── keydb_autoscaling.png
│ │ │ ├── list_of_backups.png
│ │ │ ├── nodejs_containers_list.png
│ │ │ ├── nodejs_file_browser.png
│ │ │ ├── nodejs_generated_variables.png
│ │ │ ├── nodejs_runtime_log.png
│ │ │ ├── object_storage_access_details.png
│ │ │ ├── object_storage_bucket_quota.png
│ │ │ ├── object_storage_generated_env.png
│ │ │ ├── object_storage_update_bucket.png
│ │ │ ├── open_public_port.png
│ │ │ ├── personal-access-tokens.webp
│ │ │ ├── pipeline_history.png
│ │ │ ├── public_access_2.png
│ │ │ ├── public_access_3.png
│ │ │ ├── runtime_clear_build_cache.png
│ │ │ ├── runtime_secret_variables.png
│ │ │ ├── scaling2.png
│ │ │ ├── scaling3.png
│ │ │ ├── scaling4.png
│ │ │ ├── scaling5.png
│ │ │ ├── scaling6.png
│ │ │ ├── scaling7.png
│ │ │ ├── scaling8.png
│ │ │ ├── secret_env.png
│ │ │ ├── secret_variables.webp
│ │ │ ├── shared_storage_autoscaling.png
│ │ │ ├── shared_storage_mode.png
│ │ │ └── ssh.png
│ │ ├── search-hit-arrow-light.svg
│ │ ├── search-hit-arrow.svg
│ │ ├── search-hit-light.svg
│ │ ├── search-hit.png
│ │ ├── search-hit.svg
│ │ ├── search-no-result-light.svg
│ │ ├── search-no-result.svg
│ │ ├── server-icon-dark.svg
│ │ ├── server-icon.svg
│ │ ├── side-menu-light.svg
│ │ ├── side-menu.svg
│ │ ├── small-squares-bg-light.svg
│ │ ├── small-squares-bg.svg
│ │ ├── squares-bg-light.svg
│ │ ├── squares-bg.svg
│ │ ├── stardust.png
│ │ ├── stripe-icon-dark.svg
│ │ ├── stripe-icon.svg
│ │ ├── tee-icon-dark.svg
│ │ ├── tee-icon.svg
│ │ ├── terminal-icon-dark.svg
│ │ ├── terminal-icon.svg
│ │ ├── user-guide-dark.svg
│ │ └── user-guide.svg
│ ├── llms-full.txt
│ ├── llms-small.txt
│ ├── llms.txt
│ ├── logo.svg
│ ├── og.png
│ ├── robots.txt
│ └── vids
│ │ ├── containers.webm
│ │ ├── cpu-scaling.webm
│ │ ├── database-scaling.webm
│ │ ├── ram-scaling.webm
│ │ ├── routes.webm
│ │ ├── services
│ │ ├── bun.webm
│ │ ├── deno.webm
│ │ ├── dotnet.webm
│ │ ├── elixir.webm
│ │ ├── gleam.webm
│ │ ├── golang.webm
│ │ ├── java.webm
│ │ ├── mariadb.webm
│ │ ├── nginx-static.webm
│ │ ├── nodejs.webm
│ │ ├── object-storage.webm
│ │ ├── postgres.webm
│ │ ├── python.webm
│ │ ├── rust.webm
│ │ ├── shared-storage.webm
│ │ └── static.webm
│ │ └── shared-storage-scaling.webm
│ ├── tailwind.config.js
│ └── tsconfig.json
├── bun.lockb
├── package.json
├── packages
├── docs-ui
│ ├── .eslintrc.js
│ ├── .gitignore
│ ├── package.json
│ ├── postcss.config.js
│ ├── src
│ │ ├── components
│ │ │ ├── Badge
│ │ │ │ └── index.tsx
│ │ │ ├── Bordered
│ │ │ │ └── index.tsx
│ │ │ ├── BorderedIcon
│ │ │ │ └── index.tsx
│ │ │ ├── Button
│ │ │ │ └── index.tsx
│ │ │ ├── Card
│ │ │ │ └── index.tsx
│ │ │ ├── CardList
│ │ │ │ └── index.tsx
│ │ │ ├── ChildDocs
│ │ │ │ └── index.tsx
│ │ │ ├── CodeBlock
│ │ │ │ ├── ApiRunner
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Header
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Line
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── CodeMdx
│ │ │ │ └── index.tsx
│ │ │ ├── CodeTabs
│ │ │ │ ├── Item
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── CopyButton
│ │ │ │ └── index.tsx
│ │ │ ├── Details
│ │ │ │ ├── Summary
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── DetailsList
│ │ │ │ └── index.tsx
│ │ │ ├── EditButton
│ │ │ │ └── index.tsx
│ │ │ ├── ExpandableNotice
│ │ │ │ └── index.tsx
│ │ │ ├── FeatureFlagNotice
│ │ │ │ └── index.tsx
│ │ │ ├── HooksLoader
│ │ │ │ └── index.tsx
│ │ │ ├── Icons
│ │ │ │ ├── CircleDottedLine
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── QuestionMark
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ThumbDown
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ThumbUp
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── InlineCode
│ │ │ │ └── index.tsx
│ │ │ ├── InlineIcon
│ │ │ │ └── index.tsx
│ │ │ ├── InlineThemeImage
│ │ │ │ └── index.tsx
│ │ │ ├── Input
│ │ │ │ └── Text
│ │ │ │ │ └── index.tsx
│ │ │ ├── Kbd
│ │ │ │ └── index.tsx
│ │ │ ├── Label
│ │ │ │ └── index.tsx
│ │ │ ├── LegacyCodeTabs
│ │ │ │ └── index.tsx
│ │ │ ├── LegacyLink
│ │ │ │ └── index.tsx
│ │ │ ├── Link
│ │ │ │ └── index.tsx
│ │ │ ├── Loading
│ │ │ │ ├── Dots
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Spinner
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── MDXComponents
│ │ │ │ └── index.tsx
│ │ │ ├── MarkdownContent
│ │ │ │ └── index.tsx
│ │ │ ├── MermaidDiagram
│ │ │ │ └── index.tsx
│ │ │ ├── Modal
│ │ │ │ ├── Footer
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Header
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── Navbar
│ │ │ │ ├── ColorModeToggle
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── IconButton
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Link
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Logo
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── MobileMenu
│ │ │ │ │ ├── Button
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── Note
│ │ │ │ ├── Layout
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Types
│ │ │ │ │ ├── checks.tsx
│ │ │ │ │ ├── default.tsx
│ │ │ │ │ ├── error.tsx
│ │ │ │ │ ├── sucess.tsx
│ │ │ │ │ └── warning.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── Notification
│ │ │ │ ├── Item
│ │ │ │ │ ├── Layout
│ │ │ │ │ │ └── Default
│ │ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── Npm2YarnCode
│ │ │ │ └── index.tsx
│ │ │ ├── Pagination
│ │ │ │ └── index.tsx
│ │ │ ├── Search
│ │ │ │ ├── EmptyQueryBoundary
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Hits
│ │ │ │ │ ├── GroupName
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── ModalOpener
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── NoResults
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Suggestions
│ │ │ │ │ ├── Item
│ │ │ │ │ │ └── index.tsx
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── Select
│ │ │ │ ├── Badge
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Dropdown
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Input
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.ts
│ │ │ ├── Sidebar
│ │ │ │ ├── Back
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Item
│ │ │ │ │ └── index.tsx
│ │ │ │ ├── Title
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── Table
│ │ │ │ └── index.tsx
│ │ │ ├── Tabs
│ │ │ │ └── index.tsx
│ │ │ ├── TextArea
│ │ │ │ └── index.tsx
│ │ │ ├── ThemeImage
│ │ │ │ └── index.tsx
│ │ │ ├── Toggle
│ │ │ │ └── index.tsx
│ │ │ ├── Tooltip
│ │ │ │ └── index.tsx
│ │ │ ├── TypeList
│ │ │ │ ├── Items
│ │ │ │ │ └── index.tsx
│ │ │ │ └── index.tsx
│ │ │ ├── ZoomImg
│ │ │ │ └── index.tsx
│ │ │ └── index.ts
│ │ ├── constants.ts
│ │ ├── hooks
│ │ │ ├── index.ts
│ │ │ ├── use-copy
│ │ │ │ └── index.tsx
│ │ │ ├── use-is-browser
│ │ │ │ └── index.ts
│ │ │ ├── use-keyboard-shortcut
│ │ │ │ └── index.tsx
│ │ │ ├── use-page-scroll-manager
│ │ │ │ └── index.tsx
│ │ │ ├── use-request-runner
│ │ │ │ └── index.ts
│ │ │ ├── use-scroll-utils
│ │ │ │ └── index.tsx
│ │ │ ├── use-search-navigation
│ │ │ │ └── index.ts
│ │ │ ├── use-select
│ │ │ │ └── index.tsx
│ │ │ └── use-tabs
│ │ │ │ └── index.tsx
│ │ ├── index.ts
│ │ ├── layouts
│ │ │ ├── index.ts
│ │ │ ├── root.tsx
│ │ │ ├── tight.tsx
│ │ │ └── wide.tsx
│ │ ├── providers
│ │ │ ├── ColorMode
│ │ │ │ └── index.tsx
│ │ │ ├── Mobile
│ │ │ │ └── index.tsx
│ │ │ ├── Modal
│ │ │ │ └── index.tsx
│ │ │ ├── Navbar
│ │ │ │ └── index.tsx
│ │ │ ├── Notification
│ │ │ │ └── index.tsx
│ │ │ ├── PageLoading
│ │ │ │ └── index.tsx
│ │ │ ├── Pagination
│ │ │ │ └── index.tsx
│ │ │ ├── Search
│ │ │ │ └── index.tsx
│ │ │ ├── Sidebar
│ │ │ │ └── index.tsx
│ │ │ └── index.ts
│ │ └── utils
│ │ │ ├── array-same-elms.ts
│ │ │ ├── capitalize.ts
│ │ │ ├── check-sidebar-item-visibility.ts
│ │ │ ├── decode-str.ts
│ │ │ ├── dom-utils.ts
│ │ │ ├── format-report-link.ts
│ │ │ ├── get-link-with-base-path.ts
│ │ │ ├── get-navbar-items.ts
│ │ │ ├── get-os-shortcut.ts
│ │ │ ├── get-scrolled-top.ts
│ │ │ ├── index.ts
│ │ │ ├── is-elm-window.ts
│ │ │ ├── is-in-view.ts
│ │ │ ├── sidebar-attach-href-common-options.ts
│ │ │ └── swr-fetcher.ts
│ ├── tailwind.config.js
│ ├── tsconfig.cjs.json
│ ├── tsconfig.esm.json
│ └── tsconfig.json
├── eslint-config-docs
│ ├── base.js
│ ├── content.js
│ ├── docusaurus.js
│ ├── next.js
│ └── package.json
├── tailwind
│ ├── .eslintrc.js
│ ├── base.tailwind.config.js
│ ├── modified.tailwind.config.js
│ ├── package.json
│ ├── postcss.config.js
│ ├── tailwind.config.js
│ └── theme-presets.js
├── tsconfig
│ ├── base.json
│ ├── docusaurus.json
│ ├── nextjs.json
│ └── package.json
└── types
│ ├── .eslintrc.cjs
│ ├── package.json
│ ├── src
│ ├── api-testing.ts
│ ├── config.ts
│ ├── general.ts
│ ├── index.ts
│ └── sidebar.ts
│ └── tsconfig.json
├── tsconfig.json
├── turbo.json
├── yarn.lock
├── zerops-llm-script.ts
└── zerops.yml
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | // This tells ESLint to load the config from the package `eslint-config-docs`
4 | extends: ['docs'],
5 | settings: {
6 | next: {
7 | rootDir: ['apps/*/'],
8 | },
9 | },
10 | };
11 |
--------------------------------------------------------------------------------
/.github/ISSUE_TEMPLATE/config.yml:
--------------------------------------------------------------------------------
1 | blank_issues_enabled: false
2 | contact_links:
3 | - name: 💁 Support
4 | url: https://docs.zerops.io/discord
5 | about: 'This issue tracker is not for support questions. Join us on Discord for assistance!'
6 | - name: 📘 Documentation
7 | url: https://github.com/zeropsio/docs
8 | about: File an issue or make an improvement to the docs website.
9 | - name: 💡 Share Your Thoughts with Us - New Features, Improvements, and Questions
10 | url: https://github.com/zeropsio/community/discussions
11 | about: Propose and discuss future improvements to Zerops
12 |
--------------------------------------------------------------------------------
/.github/PULL_REQUEST_TEMPLATE.md:
--------------------------------------------------------------------------------
1 |
2 |
3 | #### What Type of Change is this?
4 |
5 | - [ ] New Page
6 | - [ ] Minor Fix
7 | - [ ] Minor Improvement
8 | - [ ] Major Improvement
9 |
10 | #### Description (required)
11 |
12 |
13 |
14 | #### Related issues & labels (optional)
15 |
16 | - /closes #
17 |
18 |
19 |
20 |
21 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .vercel
2 | build
3 | node_modules
4 | .yarn/*
5 | .yarn/install-state.gz
6 | !.yarn/patches
7 | !.yarn/plugins
8 | !.yarn/releases
9 | !.yarn/sdks
10 | !.yarn/versions
11 | .DS_Store
12 |
13 | .env
14 | node_modules
15 | *yarn-error.log
16 | .pnp.*
17 | .yarn/*
18 | !.yarn/patches
19 | !.yarn/plugins
20 | !.yarn/releases
21 | !.yarn/sdks
22 | !.yarn/versions
23 |
24 | packages/**/.yarn/*
25 | integration-tests/**/.yarn/*
26 | www/**/.yarn/*
27 |
28 | .DS_Store
29 |
30 | .eslintcache
31 |
32 | .idea
33 | .turbo
34 | .yarn
35 | build/**
36 | **/dist
37 | **/stats
38 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # Ignore build and output directories
2 | .build
3 | .cache
4 | node_modules
5 | build
6 | out
7 | .next
8 |
9 | # Ignore Docusaurus-generated files
10 | .docusaurus
11 |
12 | # Ignore coverage reports
13 | coverage
14 |
15 | # Ignore lock files
16 | package-lock.json
17 | yarn.lock
18 |
19 | # Ignore any custom files or directories you don't want Prettier to format
20 | public
21 | static
22 | dist
23 |
24 | # Ignore specific file types
25 | *.min.js
26 | *.bundle.js
27 | *.svg
28 |
29 | # Ignore config and env files
30 | *.env
31 | *.config.js
32 |
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "semi": true,
3 | "singleQuote": true,
4 | "trailingComma": "es5",
5 | "printWidth": 80,
6 | "tabWidth": 2,
7 | "bracketSpacing": true,
8 | "overrides": [
9 | {
10 | "files": [
11 | "*.md",
12 | "*.mdx"
13 | ],
14 | "options": {
15 | "parser": "markdown"
16 | }
17 | }
18 | ]
19 | }
20 |
21 |
--------------------------------------------------------------------------------
/.yarnrc.yml:
--------------------------------------------------------------------------------
1 | nmMode: hardlinks-local
2 |
--------------------------------------------------------------------------------
/CODE_OF_CONDUCT.md:
--------------------------------------------------------------------------------
1 | ## Our Standards
2 |
3 | Examples of behavior that contributes to creating a positive environment include:
4 |
5 | - Using welcoming and inclusive language
6 | - Being respectful of differing viewpoints and experiences
7 | - Gracefully accepting constructive criticism
8 | - Focusing on what is best for the community
9 | - Showing empathy towards other community members
10 | - Examples of unacceptable behavior by participants include:
11 |
12 | The use of sexualized language or imagery and unwelcome sexual attention or advances
13 |
14 | - Trolling, insulting/derogatory comments, and personal or political attacks
15 | - Public or private harassment
16 | - Publishing others' private information, such as a physical or electronic address, without explicit permission
17 | - Other conduct which could reasonably be considered inappropriate in a professional setting
18 |
--------------------------------------------------------------------------------
/apps/docs/.content.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: ['docs/content'],
4 | rules: {
5 | 'quotes': ['error', 'single'],
6 | 'semi': ['error', 'always'],
7 | 'max-len': ['error', { code: 80, ignoreComments: true }]
8 | }
9 | };
10 |
--------------------------------------------------------------------------------
/apps/docs/.env.sample:
--------------------------------------------------------------------------------
1 | API_URL=
2 | DOCS_ALGOLIA_INDEX_NAME=
3 | API_ALGOLIA_INDEX_NAME=
4 | ALGOLIA_API_KEY=
5 | ALGOLIA_APP_ID=
6 | AI_ASSISTANT_URL=
7 | AI_API_ASSISTANT_TOKEN=
8 | AI_WEBSITE_ID=
9 | AI_API_ASSISTANT_RECAPTCHA_SITE_KEY=
10 | CLOUDINARY_CLOUD_NAME=
--------------------------------------------------------------------------------
/apps/docs/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: ['docs/docusaurus'],
4 | parserOptions: {
5 | project: true,
6 | tsconfigRootDir: __dirname,
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/apps/docs/.gitignore:
--------------------------------------------------------------------------------
1 | # Dependencies
2 | /node_modules
3 |
4 | # Production
5 | /build
6 |
7 | # Generated files
8 | .docusaurus
9 | .cache-loader
10 |
11 | # Misc
12 | .DS_Store
13 | .env.local
14 | .env.development.local
15 | .env.test.local
16 | .env.production.local
17 |
18 | npm-debug.log*
19 | yarn-debug.log*
20 | yarn-error.log*
21 | .yarn/*
22 | .yarn/install-state.gz
23 | !.yarn/patches
24 | !.yarn/plugins
25 | !.yarn/releases
26 | !.yarn/sdks
27 | !.yarn/versions
--------------------------------------------------------------------------------
/apps/docs/README.md:
--------------------------------------------------------------------------------
1 | # Zerops documentation
2 |
3 | https://docs.zerops.io
4 |
5 | Docusaurus theme and components from the amazing and powerful https://medusajs.com
6 |
--------------------------------------------------------------------------------
/apps/docs/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [require.resolve("@docusaurus/core/lib/babel/preset")],
3 | plugins: [["@babel/plugin-proposal-decorators", { legacy: true }]],
4 | }
5 |
--------------------------------------------------------------------------------
/apps/docs/content/bun/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 |
30 | If your service is in the [HA mode], you can switch between containers in the top left corner.
31 |
32 | ## zCLI & SSH
33 |
34 | You can connect to the container via SSH with the Zerops CLI and browse its files.
35 | How to [connect to your service via SSH](/references/ssh).
36 |
--------------------------------------------------------------------------------
/apps/docs/content/bun/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the Bun version
3 | description: Learn how to upgrade your node.js service's version
4 | ---
5 |
6 | You can upgrade or downgrade your Bun service to a different major Bun version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](bun/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Bun version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Bun version for your runtime.
7 |
8 | If you want to build your application with a different major Bun version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute.
9 |
--------------------------------------------------------------------------------
/apps/docs/content/company/branding.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Zerops Branding
3 | description: Download official Zerops logos, badges, and brand assets
4 | ---
5 |
6 | import BrandAssets from '@site/src/components/BrandAssets';
7 |
8 | # Zerops Brand Assets
9 |
10 | Here you can find and download our official logos and badges in various formats. Please follow our brand guidelines when using these assets.
11 |
12 | ## Download Assets
13 |
14 | Below you'll find our official assets available in various formats. Click the download buttons to get the assets in your preferred format.
15 |
16 |
17 |
18 | ## Brand Guidelines
19 |
20 | When using Zerops brand assets, please:
21 |
22 | - Don't modify the logos or badges in any way
23 | - Maintain adequate spacing around the assets
24 | - Use the provided color versions (light/dark) as appropriate
25 | - Don't use the Zerops logo or badges in a way that suggests partnership or endorsement without permission
26 | - Don't use the assets as your own branding or as part of your logo
27 |
28 |
--------------------------------------------------------------------------------
/apps/docs/content/deno/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 |
30 | If your service is in the [HA mode], you can switch between containers in the top left corner.
31 |
32 | ## zCLI & SSH
33 |
34 | You can connect to the container via SSH with the Zerops CLI and browse its files.
35 | How to [connect to your service via SSH](/references/ssh).
36 |
--------------------------------------------------------------------------------
/apps/docs/content/deno/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the Deno version
3 | description: Learn how to upgrade your deno service's version
4 | ---
5 |
6 | You can upgrade or downgrade your Deno service to a different major Deno version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/deno/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Deno version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Deno version for your runtime.
7 |
8 | If you want to build your application with a different major Deno version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute.
9 |
--------------------------------------------------------------------------------
/apps/docs/content/dotnet/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 |
30 | If your service is in the [HA mode], you can switch between containers in the top left corner.
31 |
32 | ## zCLI & SSH
33 |
34 | You can connect to the container via SSH with the Zerops CLI and browse its files.
35 | How to [connect to your service via SSH](/references/ssh).
36 |
--------------------------------------------------------------------------------
/apps/docs/content/dotnet/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the .NET version
3 | description: Learn how to upgrade your dotnet service's version
4 | ---
5 |
6 | You can upgrade or downgrade your .NET service to a different major .NET version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/dotnet/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required .NET version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current .NET version for your runtime.
7 |
8 | If you want to build your application with a different major .NET version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute.
9 |
--------------------------------------------------------------------------------
/apps/docs/content/elixir/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 |
30 | If your service is in the [HA mode], you can switch between containers in the top left corner.
31 |
32 | ## zCLI & SSH
33 |
34 | You can connect to the container via SSH with the Zerops CLI and browse its files.
35 | How to [connect to your service via SSH](/references/ssh).
36 |
--------------------------------------------------------------------------------
/apps/docs/content/elixir/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the Elixir version
3 | description: Learn how to upgrade your Elixir service's version
4 | ---
5 |
6 | You can upgrade or downgrade your Elixir service to a different major Elixir version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/elixir/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Elixir version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Elixir version for your runtime.
7 |
8 | If you want to build your application with a different major Elixir version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute.
9 |
--------------------------------------------------------------------------------
/apps/docs/content/gleam/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 |
30 | If your service is in the [HA mode], you can switch between containers in the top left corner.
31 |
32 | ## zCLI & SSH
33 |
34 | You can connect to the container via SSH with the Zerops CLI and browse its files.
35 | How to [connect to your service via SSH](/references/ssh).
36 |
--------------------------------------------------------------------------------
/apps/docs/content/gleam/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the Gleam version
3 | description: Learn how to upgrade your Gleam service's version
4 | ---
5 |
6 | You can upgrade or downgrade your Gleam service to a different major Gleam version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/gleam/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Gleam version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Gleam version for your runtime.
7 |
8 | If you want to build your application with a different major Gleam version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute.
9 |
--------------------------------------------------------------------------------
/apps/docs/content/go/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 | If your service is in the [HA mode], you can switch between containers in the top left corner.
30 |
31 | ## zCLI & SSH
32 |
33 | You can connect to the container via SSH with the Zerops CLI and browse its files.
34 | How to [connect to your service via SSH](/references/ssh).
35 |
--------------------------------------------------------------------------------
/apps/docs/content/go/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the Go version
3 | description: Learn how to upgrade your go service's version
4 | ---
5 |
6 | You can upgrade or downgrade your Go service to a different major Go version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/go/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Go version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Go version for your runtime.
7 |
8 | If you want to build your application with a different major Go version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute.
9 |
--------------------------------------------------------------------------------
/apps/docs/content/java/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 |
30 | If your service is in the [HA mode], you can switch between containers in the top left corner.
31 |
32 | ## zCLI & SSH
33 |
34 | You can connect to the container via SSH with the Zerops CLI and browse its files.
35 | How to [connect to your service via SSH](/references/ssh).
36 |
--------------------------------------------------------------------------------
/apps/docs/content/java/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the Java version
3 | description: Learn how to upgrade your java service's version
4 | ---
5 |
6 | You can upgrade or downgrade your Java service to a different major Java version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/java/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Java version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Java version for your runtime.
7 |
8 | If you want to build your application with a different major Java version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute.
9 |
--------------------------------------------------------------------------------
/apps/docs/content/nginx/faq.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Frequently Asked Questions
3 | description: Get quick answers to your related questions about Nginx from frequently asked questions by people at Zerops.
4 | ---
5 |
6 | import { FAQ, FAQItem } from '/src/components/Faq';
7 |
8 |
9 |
10 | Zerops provides built-in prerender.io support. Simply set the `PRERENDER_TOKEN` environment variable with your prerender.io service token. See our [prerender.io documentation](/nginx/how-to/env-variables#prerenderio-support) for details.
11 |
12 |
13 |
--------------------------------------------------------------------------------
/apps/docs/content/nginx/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 |
30 | If your service is in the [HA mode], you can switch between containers in the top left corner.
31 |
32 | ## zCLI & SSH
33 |
34 | You can connect to the container via SSH with the Zerops CLI and browse its files.
35 | How to [connect to your service via SSH](/references/ssh).
36 |
--------------------------------------------------------------------------------
/apps/docs/content/nginx/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the Nginx version
3 | description: Learn how to upgrade your nginx service's version
4 | ---
5 |
6 | You can upgrade or downgrade your Nginx static service to a different major Nginx version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/nginx/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Nginx version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Nginx version for your runtime.
7 |
--------------------------------------------------------------------------------
/apps/docs/content/nodejs/faq.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Frequently Asked Questions
3 | description: Get quick answers to your related questions about Node.js from frequently asked questions by people at Zerops.
4 | ---
5 |
6 | import { FAQ, FAQItem } from '/src/components/Faq';
7 |
8 |
9 |
10 | If your build process seems to be hanging or timing out, check your logs for interactive prompts that are waiting for input, such as:
11 | ```
12 | ? The modules directory at "/build/source/node_modules" will be removed and reinstalled from scratch. Proceed? (Y/n) ‣ true
13 | ```
14 |
15 | Set the environment variable `CI: true` to resolve the problem. This allows the installation to proceed automatically without requiring manual confirmation.
16 |
17 |
--------------------------------------------------------------------------------
/apps/docs/content/nodejs/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 |
30 | If your service is in the [HA mode], you can switch between containers in the top left corner.
31 |
32 | ## zCLI & SSH
33 |
34 | You can connect to the container via SSH with the Zerops CLI and browse its files.
35 | How to [connect to your service via SSH](/references/ssh).
36 |
--------------------------------------------------------------------------------
/apps/docs/content/nodejs/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the Node.js version
3 | description: Learn how to upgrade your node.js service's version
4 | ---
5 |
6 | You can upgrade or downgrade your Node.js service to a different major Node.js version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/nodejs/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Node.js version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Node.js version for your runtime.
7 |
8 | If you want to build your application with a different major Node.js version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute.
9 |
--------------------------------------------------------------------------------
/apps/docs/content/php/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 |
30 | If your service is in the [HA mode], you can switch between containers in the top left corner.
31 |
32 | ## zCLI & SSH
33 |
34 | You can connect to the container via SSH with the Zerops CLI and browse its files.
35 | How to [connect to your service via SSH](/references/ssh).
36 |
--------------------------------------------------------------------------------
/apps/docs/content/php/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the PHP version
3 | description: Learn how to upgrade your php service's version
4 | ---
5 |
6 | You can upgrade or downgrade your PHP service to a different major PHP version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/php/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required PHP version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current PHP version for your runtime.
7 |
8 | If you want to build your application with a different major PHP version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute.
9 |
--------------------------------------------------------------------------------
/apps/docs/content/postgresql/faq.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Frequently Asked Questions
3 | description: Get quick answers to your related questions about PostgreSql from frequently asked questions by people at Zerops.
4 | ---
5 |
6 | import { FAQ, FAQItem } from '/src/components/Faq';
7 |
8 |
9 |
10 | *One possible cause:*
11 | The connection string in Zerops always starts with `postgresql://`. While the official PostgreSQL documentation
12 | states that both `postgresql://` and `postgres://` URIs are valid, some software requires the shorter `postgres://`
13 | version.
14 |
15 | To resolve this, create your own environment variable with the correct URI. For example, if your PostgreSQL service is named `db`, use the following format:
16 |
17 | ```
18 | postgres://${db_user}:${db_password}@${db_hostname}:${db_port}
19 | ```
20 |
21 |
22 |
23 |
--------------------------------------------------------------------------------
/apps/docs/content/python/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 |
30 | If your service is in the [HA mode], you can switch between containers in the top left corner.
31 |
32 | ## zCLI & SSH
33 |
34 | You can connect to the container via SSH with the Zerops CLI and browse its files.
35 | How to [connect to your service via SSH](/references/ssh).
36 |
--------------------------------------------------------------------------------
/apps/docs/content/python/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the Python version
3 | description: Learn how to upgrade your python service's version
4 | ---
5 |
6 | You can upgrade or downgrade your Python service to a different major Python version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/python/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Python version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Python version for your runtime.
7 |
8 | If you want to build your application with a different major Python version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute.
9 |
--------------------------------------------------------------------------------
/apps/docs/content/rust/how-to/filebrowser.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: Browse container files
3 | description: Browsing files on your container using file browser on Zerops.
4 | ---
5 |
6 | ## Zerops GUI
7 |
8 | In Zerops GUI, go to the service detail page and choose **Service containers & resources overview** and scroll down to the list of containers.
9 |
10 |
11 |
17 |
18 |
19 | Then click on the file browser icon and the file browser opens:
20 |
21 |
22 |
28 |
29 |
30 | If your service is in the [HA mode], you can switch between containers in the top left corner.
31 |
32 | ## zCLI & SSH
33 |
34 | You can connect to the container via SSH with the Zerops CLI and browse its files.
35 | How to [connect to your service via SSH](/references/ssh).
36 |
--------------------------------------------------------------------------------
/apps/docs/content/rust/how-to/upgrade.mdx:
--------------------------------------------------------------------------------
1 | ---
2 | title: How to upgrade the Rust version
3 | description: Learn how to upgrade your rust service's version
4 | ---
5 |
6 | You can upgrade or downgrade your Rust service to a different major Rust version by setting the `run.base` parameter in your `zerops.yaml`. When you [trigger a new pipeline](/rust/how-to/trigger-pipeline), Zerops will start new runtime container(s) with the required Rust version. If you don't specify the `run.base` attribute in your `zerops.yaml`, Zerops keeps the current Rust version for your runtime.
7 |
8 | If you want to build your application with a different major Rust version, change the `build.base` parameter in your `zerops.yaml`. The `build.base` is the required attribute.
9 |
--------------------------------------------------------------------------------
/apps/docs/src/components/Accordion/index.tsx:
--------------------------------------------------------------------------------
1 | import React, { useState, ReactNode } from 'react';
2 |
3 | interface AccordionProps {
4 | title: string;
5 | children: ReactNode;
6 | }
7 |
8 | const Accordion: React.FC = ({ title, children }) => {
9 | const [isOpen, setIsOpen] = useState(false);
10 |
11 | const toggleAccordion = () => {
12 | setIsOpen(!isOpen);
13 | };
14 |
15 | return (
16 |
17 |
21 | {title}
22 | {isOpen ? '-' : '+'}
23 |
24 | {isOpen &&
{children}
}
25 |
26 | );
27 | };
28 |
29 | export default Accordion;
30 |
--------------------------------------------------------------------------------
/apps/docs/src/components/BackgroundPattern/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | const BackgroundPattern = () => {
4 | return (
5 |
6 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | {[...Array(6)].map((_, i) => (
22 |
26 | ))}
27 |
28 |
29 |
30 | );
31 | };
32 |
33 | export default BackgroundPattern;
--------------------------------------------------------------------------------
/apps/docs/src/components/BorderedIcon/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import type { BorderedIconProps as UiBorderedIconProps } from 'docs-ui';
3 | import { BorderedIcon as UiBorderedIcon } from 'docs-ui';
4 | import { useColorMode } from '@docusaurus/theme-common';
5 |
6 | type BorderedIconProps = {
7 | icon?: {
8 | light: string;
9 | dark?: string;
10 | };
11 | } & Omit;
12 |
13 | const BorderedIcon: React.FC = ({
14 | icon = null,
15 | ...props
16 | }) => {
17 | const { colorMode } = useColorMode();
18 |
19 | return (
20 |
30 | );
31 | };
32 |
33 | export default BorderedIcon;
34 |
--------------------------------------------------------------------------------
/apps/docs/src/components/CustomCardWithIcon/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 |
3 | interface CustomCardWithIconProps {
4 | icon: React.ComponentType>;
5 | title: string;
6 | desc: string;
7 | children: React.ReactNode;
8 | iconProps?: React.SVGProps;
9 | }
10 |
11 | const CustomCardWithIcon: React.FC = ({
12 | title,
13 | desc,
14 | children,
15 | icon: Icon,
16 | iconProps = {
17 | width: 20,
18 | height: 20
19 | }
20 | }) => {
21 | return (
22 |
23 |
24 |
25 |
26 |
27 |
28 | {title}
29 | {desc}
30 |
31 |
32 | {children}
33 |
34 | );
35 | };
36 |
37 | export default CustomCardWithIcon;
--------------------------------------------------------------------------------
/apps/docs/src/components/DetailsList/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Details from '../../theme/Details';
3 | import clsx from 'clsx';
4 | import MDXContent from '@theme/MDXContent';
5 |
6 | type TroubleshootingSection = {
7 | title: string;
8 | content: React.ReactNode;
9 | };
10 |
11 | type DetailsListProps = {
12 | sections: TroubleshootingSection[];
13 | } & React.AllHTMLAttributes;
14 |
15 | const DetailsList: React.FC = ({ sections }) => {
16 | return (
17 | <>
18 | {sections.map(({ title, content }, index) => (
19 |
24 | {React.isValidElement(content) && content}
25 | {!React.isValidElement(content) && typeof content === 'string' && (
26 | {content}
27 | )}
28 |
29 | ))}
30 | >
31 | );
32 | };
33 |
34 | export default DetailsList;
35 |
--------------------------------------------------------------------------------
/apps/docs/src/components/Feedback/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {
3 | Feedback as UiFeedback,
4 | type FeedbackProps as UiFeedbackProps,
5 | GITHUB_ISSUES_PREFIX,
6 | } from 'docs-ui';
7 | import useIsBrowser from '@docusaurus/useIsBrowser';
8 | import { useLocation } from '@docusaurus/router';
9 | import clsx from 'clsx';
10 |
11 | type FeedbackProps = Omit;
12 |
13 | const Feedback = (props: FeedbackProps) => {
14 | const isBrowser = useIsBrowser();
15 | const location = useLocation();
16 |
17 | return (
18 |
25 | );
26 | };
27 |
28 | export default Feedback;
29 |
--------------------------------------------------------------------------------
/apps/docs/src/components/LargeCardList/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 |
4 | type LargeCardListProps = {
5 | colSize?: string;
6 | className?: string;
7 | } & React.HTMLAttributes;
8 |
9 | const LargeCardList: React.FC = ({
10 | colSize = '4',
11 | className,
12 | children,
13 | }) => {
14 | return (
15 |
27 | );
28 | };
29 |
30 | export default LargeCardList;
31 |
--------------------------------------------------------------------------------
/apps/docs/src/components/QueryNote/index.tsx:
--------------------------------------------------------------------------------
1 | import Admonition, { Props as AdmonitionProps } from '@theme/Admonition';
2 | import { useQueryStringValue } from '@docusaurus/theme-common/internal';
3 | import React from 'react';
4 |
5 | type QueryNoteProps = {
6 | query: {
7 | key: string;
8 | value?: string;
9 | };
10 | admonition: AdmonitionProps;
11 | } & React.HTMLAttributes;
12 |
13 | const QueryNote: React.FC = ({
14 | query: { key, value = '' },
15 | admonition,
16 | children,
17 | }) => {
18 | const queryValue = useQueryStringValue(key);
19 |
20 | return (
21 | <>
22 | {queryValue === value && (
23 | {children}
24 | )}
25 | >
26 | );
27 | };
28 |
29 | export default QueryNote;
30 |
--------------------------------------------------------------------------------
/apps/docs/src/components/TypeList/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { TypeList as UiTypeList } from 'docs-ui';
3 | import { useLocation } from '@docusaurus/router';
4 |
5 | const TypeList = (props: React.ComponentProps) => {
6 | const location = useLocation();
7 |
8 | return ;
9 | };
10 |
11 | export default TypeList;
12 |
--------------------------------------------------------------------------------
/apps/docs/src/components/UiIcon/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import ThemedImage from '@theme/ThemedImage';
3 |
4 | type UiIconProps = {
5 | lightIcon: string;
6 | darkIcon?: string;
7 | alt?: string;
8 | };
9 |
10 | const UiIcon: React.FC = ({
11 | lightIcon,
12 | darkIcon = '',
13 | alt = '',
14 | }) => {
15 | return (
16 |
24 | );
25 | };
26 |
27 | export default UiIcon;
28 |
--------------------------------------------------------------------------------
/apps/docs/src/components/UnorderedList/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import type { Props } from '@theme/DocItem/Layout';
3 |
4 | export default function UnorderedList({ data }: Props): JSX.Element {
5 | return (
6 |
7 | {data.map((token, i) => {
8 | return {token} ;
9 | })}
10 |
11 | );
12 | }
13 |
--------------------------------------------------------------------------------
/apps/docs/src/components/work-in-progress/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Tooltip } from 'docs-ui';
3 |
4 | function Wip() {
5 | return (
6 |
21 | );
22 | }
23 |
24 | export default Wip;
--------------------------------------------------------------------------------
/apps/docs/src/css/components/tooltip.css:
--------------------------------------------------------------------------------
1 | .react-tooltip {
2 | @apply !border !border-solid !border-medusa-border-base;
3 | @apply !rounded !text-compact-x-small-plus !shadow-tooltip dark:!shadow-tooltip-dark;
4 | @apply !py-0.4 !px-1 lg:block hidden;
5 | }
6 |
7 | .react-tooltip-arrow {
8 | @apply hidden;
9 | }
10 |
--------------------------------------------------------------------------------
/apps/docs/src/hooks/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/src/hooks/.gitkeep
--------------------------------------------------------------------------------
/apps/docs/src/pages/discord.js:
--------------------------------------------------------------------------------
1 | import { useEffect } from 'react';
2 | import { useHistory } from '@docusaurus/router';
3 |
4 | export default function RedirectToDiscord() {
5 | const history = useHistory();
6 |
7 | useEffect(() => {
8 | window.location.href = 'https://discord.gg/3yZknaRhxK';
9 | }, [history]);
10 |
11 | return null;
12 | }
13 |
--------------------------------------------------------------------------------
/apps/docs/src/providers/DocsProviders/index.tsx:
--------------------------------------------------------------------------------
1 | import {
2 | ColorModeProvider,
3 | ModalProvider,
4 | NotificationProvider,
5 | } from 'docs-ui';
6 | import React from 'react';
7 | import SkipToContent from '@theme/SkipToContent';
8 |
9 | type DocsProvidersProps = {
10 | children?: React.ReactNode;
11 | };
12 |
13 | const DocsProviders = ({ children }: DocsProvidersProps) => {
14 | return (
15 |
16 |
17 |
18 |
19 | {children}
20 |
21 |
22 |
23 | );
24 | };
25 |
26 | export default DocsProviders;
27 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Admonition/Icon/Danger.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import type { IconProps } from '@medusajs/icons/dist/types';
3 | import { ExclamationCircleSolid } from '@medusajs/icons';
4 | import clsx from 'clsx';
5 |
6 | export default function AdmonitionIconDanger({
7 | className,
8 | ...props
9 | }: IconProps): JSX.Element {
10 | return (
11 |
18 | );
19 | }
20 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Admonition/Icon/Info.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import AdmonitionIconNote from './Note';
3 | import type { IconProps } from '@medusajs/icons/dist/types';
4 |
5 | export default function AdmonitionIconInfo(props: IconProps): JSX.Element {
6 | return ;
7 | }
8 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Admonition/Icon/Note.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { InformationCircleSolid } from '@medusajs/icons';
3 | import type { IconProps } from '@medusajs/icons/dist/types';
4 | import clsx from 'clsx';
5 |
6 | export default function AdmonitionIconNote({
7 | className,
8 | ...props
9 | }: IconProps): JSX.Element {
10 | return (
11 |
18 | );
19 | }
20 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Admonition/Icon/Tip.tsx:
--------------------------------------------------------------------------------
1 | import type { IconProps } from '@medusajs/icons/dist/types';
2 | import React from 'react';
3 | import AdmonitionIconNote from './Note';
4 |
5 | export default function AdmonitionIconTip(props: IconProps): JSX.Element {
6 | return ;
7 | }
8 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Admonition/Icon/Warning.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import AdmonitionIconDanger from './Danger';
3 | import type { IconProps } from '@medusajs/icons/dist/types';
4 |
5 | export default function AdmonitionIconCaution(props: IconProps): JSX.Element {
6 | return ;
7 | }
8 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Admonition/Type/Caution.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import Translate from '@docusaurus/Translate';
4 | import type { Props } from '@theme/Admonition/Type/Caution';
5 | import AdmonitionLayout from '@theme/Admonition/Layout';
6 | import IconWarning from '@theme/Admonition/Icon/Warning';
7 |
8 | const infimaClassName = 'alert alert--warning';
9 |
10 | const defaultProps = {
11 | icon: ,
12 | title: (
13 |
17 | Caution
18 |
19 | ),
20 | };
21 |
22 | // TODO remove before v4: Caution replaced by Warning
23 | // see https://github.com/facebook/docusaurus/issues/7558
24 | export default function AdmonitionTypeCaution(props: Props): JSX.Element {
25 | return (
26 |
31 | {props.children}
32 |
33 | );
34 | }
35 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Admonition/Type/Danger.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import Translate from '@docusaurus/Translate';
4 | import type { Props } from '@theme/Admonition/Type/Danger';
5 | import AdmonitionLayout from '@theme/Admonition/Layout';
6 | import IconDanger from '@theme/Admonition/Icon/Danger';
7 |
8 | const infimaClassName = 'alert alert--danger';
9 |
10 | const defaultProps = {
11 | icon: ,
12 | title: (
13 |
17 | Danger
18 |
19 | ),
20 | };
21 |
22 | export default function AdmonitionTypeDanger(props: Props): JSX.Element {
23 | return (
24 |
29 | {props.children}
30 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Admonition/Type/Info.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import Translate from '@docusaurus/Translate';
4 | import type { Props } from '@theme/Admonition/Type/Info';
5 | import AdmonitionLayout from '@theme/Admonition/Layout';
6 | import IconInfo from '@theme/Admonition/Icon/Info';
7 |
8 | const infimaClassName = 'alert alert--info';
9 |
10 | const defaultProps = {
11 | icon: ,
12 | title: (
13 |
17 | Info
18 |
19 | ),
20 | };
21 |
22 | export default function AdmonitionTypeInfo(props: Props): JSX.Element {
23 | return (
24 |
29 | {props.children}
30 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Admonition/Type/Note.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import Translate from '@docusaurus/Translate';
4 | import type { Props } from '@theme/Admonition/Type/Note';
5 | import AdmonitionLayout from '@theme/Admonition/Layout';
6 | import IconNote from '@theme/Admonition/Icon/Note';
7 |
8 | const infimaClassName = 'alert alert--secondary';
9 |
10 | const defaultProps = {
11 | icon: ,
12 | title: (
13 |
17 | Note
18 |
19 | ),
20 | };
21 |
22 | export default function AdmonitionTypeNote(props: Props): JSX.Element {
23 | return (
24 |
29 | {props.children}
30 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Admonition/Type/Tip.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import Translate from '@docusaurus/Translate';
4 | import type { Props } from '@theme/Admonition/Type/Tip';
5 | import AdmonitionLayout from '@theme/Admonition/Layout';
6 | import IconTip from '@theme/Admonition/Icon/Tip';
7 |
8 | const infimaClassName = 'alert alert--success';
9 |
10 | const defaultProps = {
11 | icon: ,
12 | title: (
13 |
17 | Tip
18 |
19 | ),
20 | };
21 |
22 | export default function AdmonitionTypeTip(props: Props): JSX.Element {
23 | return (
24 |
29 | {props.children}
30 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Admonition/Type/Warning.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import Translate from '@docusaurus/Translate';
4 | import type { Props } from '@theme/Admonition/Type/Warning';
5 | import AdmonitionLayout from '@theme/Admonition/Layout';
6 | import IconWarning from '@theme/Admonition/Icon/Warning';
7 |
8 | const infimaClassName = 'alert alert--warning';
9 |
10 | const defaultProps = {
11 | icon: ,
12 | title: (
13 |
17 | Warning
18 |
19 | ),
20 | };
21 |
22 | export default function AdmonitionTypeWarning(props: Props): JSX.Element {
23 | return (
24 |
29 | {props.children}
30 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/AnnouncementBar/CloseButton/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import { translate } from '@docusaurus/Translate';
4 | import IconClose from '@theme/Icon/Close';
5 | import type { Props } from '@theme/AnnouncementBar/CloseButton';
6 |
7 | export default function AnnouncementBarCloseButton(
8 | props: Props
9 | ): JSX.Element | null {
10 | return (
11 |
25 |
31 |
32 | );
33 | }
34 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/AnnouncementBar/Content/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import { useThemeConfig } from '@docusaurus/theme-common';
4 | import type { Props } from '@theme/AnnouncementBar/Content';
5 |
6 | export default function AnnouncementBarContent(
7 | props: Props
8 | ): JSX.Element | null {
9 | const { announcementBar } = useThemeConfig();
10 | const { content } = announcementBar!;
11 | return (
12 |
28 | );
29 | }
30 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Details/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import {
3 | Details as UiDetails,
4 | type DetailsProps as UiDetailsProps,
5 | } from 'docs-ui';
6 |
7 | export type DetailsProps = {
8 | summary: React.ReactNode;
9 | children?: React.ReactNode;
10 | } & UiDetailsProps;
11 |
12 | export default function Details({
13 | summary,
14 | children,
15 | ...props
16 | }: DetailsProps): JSX.Element {
17 | return (
18 |
23 | {children}
24 |
25 | );
26 | }
27 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/DocItem/Footer/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Footer from '@theme-original/DocItem/Footer';
3 | import type FooterType from '@theme/DocItem/Footer';
4 | import type { WrapperProps } from '@docusaurus/types';
5 | import { useDoc } from '@docusaurus/theme-common/internal';
6 |
7 | type Props = WrapperProps;
8 |
9 | export default function FooterWrapper(props: Props): JSX.Element {
10 | const { metadata } = useDoc();
11 | return (
12 | <>
13 | {!metadata.frontMatter?.hide_footer && (
14 |
15 |
16 |
17 | )}
18 | >
19 | );
20 | }
21 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/DocRoot/Layout/Main/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import { useDocsSidebar } from '@docusaurus/theme-common/internal';
4 | import type { Props } from '@theme/DocRoot/Layout/Main';
5 |
6 | import { useSidebar } from '../../../../providers/Sidebar';
7 |
8 | export default function DocRootLayoutMain({ children }: Props): JSX.Element {
9 | const sidebar = useDocsSidebar();
10 | const sidebarContext = useSidebar();
11 | return (
12 |
21 |
28 | {children}
29 |
30 |
31 | );
32 | }
33 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/DocsRoot/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import {
4 | ThemeClassNames,
5 | HtmlClassNameProvider,
6 | } from '@docusaurus/theme-common';
7 | import renderRoutes from '@docusaurus/renderRoutes';
8 | import Layout from '@theme/Layout';
9 |
10 | import type { Props } from '@theme/DocVersionRoot';
11 | import DocsProviders from '../../providers/DocsProviders';
12 |
13 | export default function DocsRoot(props: Props): JSX.Element {
14 | return (
15 |
16 |
17 | {renderRoutes(props.route.routes!)}
18 |
19 |
20 | );
21 | }
22 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/EditThisPage/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Translate from '@docusaurus/Translate';
3 | import { ThemeClassNames } from '@docusaurus/theme-common';
4 | import type { Props } from '@theme/EditThisPage';
5 | import { Button } from 'docs-ui';
6 | import clsx from 'clsx';
7 | import Link from '@docusaurus/Link';
8 |
9 | export default function EditThisPage({ editUrl }: Props): JSX.Element {
10 | return (
11 |
12 |
18 |
22 | Edit this page
23 |
24 |
25 |
26 | );
27 | }
28 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/Close/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { XMark } from '@medusajs/icons';
3 | import { IconProps } from '@medusajs/icons/dist/types';
4 |
5 | const IconClose = (props: IconProps) => {
6 | return ;
7 | };
8 |
9 | export default IconClose;
10 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/Copy/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { SquareTwoStackSolid } from '@medusajs/icons';
3 | import { IconProps } from '@medusajs/icons/dist/types';
4 |
5 | const IconCopy = (props: IconProps) => {
6 | return ;
7 | };
8 |
9 | export default IconCopy;
10 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/CurlyBraces/index.tsx:
--------------------------------------------------------------------------------
1 | import { IconProps } from '@medusajs/icons/dist/types';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | const IconCurlyBraces = (props: IconProps) => {
6 | return (
7 |
16 |
23 |
24 | );
25 | };
26 |
27 | export default IconCurlyBraces;
28 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/DarkMode/index.tsx:
--------------------------------------------------------------------------------
1 | import { Moon } from '@medusajs/icons';
2 | import { IconProps } from '@medusajs/icons/dist/types';
3 | import React from 'react';
4 |
5 | const IconDarkMode = (props: IconProps) => {
6 | return ;
7 | };
8 |
9 | export default IconDarkMode;
10 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/Database/index.tsx:
--------------------------------------------------------------------------------
1 | import { IconProps } from '@medusajs/icons/dist/types';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | const IconDatabase = (props: IconProps) => {
6 | return (
7 |
15 |
16 |
17 |
18 |
19 |
20 |
21 | );
22 | };
23 |
24 | export default IconDatabase;
25 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/ExternalLink/index.tsx:
--------------------------------------------------------------------------------
1 | import { ArrowUpRightOnBox } from '@medusajs/icons';
2 | import { IconProps } from '@medusajs/icons/dist/types';
3 | import React from 'react';
4 |
5 | const IconExternalLink = (props: IconProps) => {
6 | return ;
7 | };
8 |
9 | export default IconExternalLink;
10 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/FlagMini/index.tsx:
--------------------------------------------------------------------------------
1 | import { IconProps } from '@medusajs/icons/dist/types';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | const IconFlagMini = (props: IconProps) => {
6 | return (
7 |
16 |
23 |
24 | );
25 | };
26 |
27 | export default IconFlagMini;
28 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/Gitlab/index.tsx:
--------------------------------------------------------------------------------
1 | import { IconProps } from '@medusajs/icons/dist/types';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | const IconGitlab = (props: IconProps) => {
6 | return (
7 |
16 |
17 |
18 | );
19 | };
20 |
21 | export default IconGitlab;
22 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/LaravelJetstream/index.tsx:
--------------------------------------------------------------------------------
1 | import { IconProps } from '@medusajs/icons/dist/types';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | const IconLaravelJetstream = (props: IconProps) => {
6 | return (
7 |
16 |
17 |
18 |
19 |
20 |
21 | );
22 | };
23 |
24 | export default IconLaravelJetstream;
25 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/LightMode/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Sun } from '@medusajs/icons';
3 | import { IconProps } from '@medusajs/icons/dist/types';
4 |
5 | const IconLightMode = (props: IconProps) => {
6 | return ;
7 | };
8 |
9 | export default IconLightMode;
10 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/LinkedIn/index.tsx:
--------------------------------------------------------------------------------
1 | import { IconProps } from '@medusajs/icons/dist/types';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | const IconLinkedIn = (props: IconProps) => {
6 | return (
7 |
16 |
20 |
21 | );
22 | };
23 |
24 | export default IconLinkedIn;
25 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/Nats/index.tsx:
--------------------------------------------------------------------------------
1 | import { IconProps } from '@medusajs/icons/dist/types';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | const IconNats = (props: IconProps) => {
6 | return (
7 |
14 |
15 |
16 |
17 |
18 |
19 |
20 | );
21 | };
22 |
23 | export default IconNats;
24 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/Nginx/index.tsx:
--------------------------------------------------------------------------------
1 | import { IconProps } from '@medusajs/icons/dist/types';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | const IconNginx = (props: IconProps) => {
6 | return (
7 |
16 |
20 |
24 |
25 | );
26 | };
27 |
28 | export default IconNginx;
29 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/Rabbitmq/index.tsx:
--------------------------------------------------------------------------------
1 | import { IconProps } from '@medusajs/icons/dist/types';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | const IconRabbitmq = (props: IconProps) => {
6 | return (
7 |
16 |
20 |
21 | );
22 | };
23 |
24 | export default IconRabbitmq;
25 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/Strapi/index.tsx:
--------------------------------------------------------------------------------
1 | import { IconProps } from '@medusajs/icons/dist/types';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | const IconStrapi = (props: IconProps) => {
6 | return (
7 |
17 |
18 |
19 |
23 |
24 |
25 | );
26 | };
27 |
28 | export default IconStrapi;
29 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Icon/Twill/index.tsx:
--------------------------------------------------------------------------------
1 | import { IconProps } from '@medusajs/icons/dist/types';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | const IconTwill = (props: IconProps) => {
6 | return (
7 |
13 |
14 |
15 |
16 |
17 | );
18 | };
19 |
20 | export default IconTwill;
21 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/MDXComponents/Code.tsx:
--------------------------------------------------------------------------------
1 | import type { ComponentProps } from 'react';
2 | import React from 'react';
3 | import CodeBlock from '@theme/CodeBlock';
4 | import type { Props } from '@theme/MDXComponents/Code';
5 | import { InlineCode } from 'docs-ui';
6 |
7 | export default function MDXCode(props: Omit): JSX.Element {
8 | const shouldBeInline = React.Children.toArray(props.children).every(
9 | (el) => typeof el === 'string' && !el.includes('\n')
10 | );
11 |
12 | return shouldBeInline ? (
13 |
14 | ) : (
15 | )} />
16 | );
17 | }
18 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/MDXComponents/Details.tsx:
--------------------------------------------------------------------------------
1 | import React, { type ComponentProps, type ReactElement } from 'react';
2 | import Details from '@theme/Details';
3 | import type { Props } from '@theme/MDXComponents/Details';
4 | import { DetailsSummary } from 'docs-ui';
5 |
6 | export default function MDXDetails(props: Omit): JSX.Element {
7 | const items = React.Children.toArray(props.children);
8 | // Split summary item from the rest to pass it as a separate prop to the
9 | // Details theme component
10 | const summary = items.find(
11 | (
12 | item: ReactElement>
13 | ): item is ReactElement> => {
14 | return (
15 | React.isValidElement(item) &&
16 | (item.type === 'summary' || item.type === DetailsSummary)
17 | );
18 | }
19 | );
20 | const children = <>{items.filter((item) => item !== summary)}>;
21 |
22 | return (
23 |
24 | {children}
25 |
26 | );
27 | }
28 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/MDXComponents/H1.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import type { Props } from '@theme/MDXComponents/Heading';
3 | import MDXHeading from '@theme/MDXComponents/Heading';
4 | import { useDoc } from '@docusaurus/theme-common/internal';
5 | import { DocContextValue } from '@medusajs/docs';
6 | import { Badge, BadgeVariant } from 'docs-ui';
7 | import clsx from 'clsx';
8 |
9 | const H1 = ({ className, ...props }: Omit) => {
10 | const {
11 | frontMatter: { badge },
12 | } = useDoc() as DocContextValue;
13 |
14 | return (
15 |
16 |
21 | {badge && (
22 | {badge.text}
23 | )}
24 |
25 | );
26 | };
27 |
28 | export default H1;
29 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/MDXComponents/index.tsx:
--------------------------------------------------------------------------------
1 | // Import the original mapper
2 | import MDXComponents from '@theme-original/MDXComponents';
3 | import CloudinaryImage from '@site/src/components/CloudinaryImage';
4 | import MDXA from './A';
5 | import { Kbd, DetailsSummary, Note } from 'docs-ui';
6 | import H1 from './H1';
7 | import MDXCode from './Code';
8 | import MDXDetails from './Details';
9 | import DocCard from '@theme/DocCard';
10 | import DocCardList from '@theme/DocCardList';
11 |
12 | const components = {
13 | // Re-use the default mapping
14 | ...MDXComponents,
15 | code: MDXCode,
16 | img: CloudinaryImage,
17 | details: MDXDetails,
18 | Details: MDXDetails,
19 | Summary: DetailsSummary,
20 | a: MDXA,
21 | kbd: Kbd,
22 | h1: H1,
23 | DocCard,
24 | DocCardList,
25 | Note,
26 | };
27 |
28 | export default components;
29 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Navbar/ColorModeToggle/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { useColorMode, useThemeConfig } from '@docusaurus/theme-common';
3 | import ColorModeToggle from '@theme/ColorModeToggle';
4 | import type { Props } from '@theme/Navbar/ColorModeToggle';
5 | import clsx from 'clsx';
6 |
7 | export default function NavbarColorModeToggle({
8 | className,
9 | }: Props): JSX.Element | null {
10 | const disabled = useThemeConfig().colorMode.disableSwitch;
11 | const { colorMode, setColorMode } = useColorMode();
12 |
13 | if (disabled) {
14 | return null;
15 | }
16 |
17 | return (
18 |
24 | );
25 | }
26 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Navbar/Logo/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Logo from '@theme/Logo';
3 | import MobileLogo from '../../../components/MobileLogo';
4 |
5 | export default function NavbarLogo(): JSX.Element {
6 | return (
7 | <>
8 |
13 |
18 | >
19 | );
20 | }
21 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Navbar/MobileSidebar/Layout/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import { useNavbarSecondaryMenu } from '@docusaurus/theme-common/internal';
4 | import type { Props } from '@theme/Navbar/MobileSidebar/Layout';
5 |
6 | export default function NavbarMobileSidebarLayout({
7 | primaryMenu,
8 | secondaryMenu,
9 | }: Props): JSX.Element {
10 | const { shown: secondaryMenuShown } = useNavbarSecondaryMenu();
11 | return (
12 |
13 |
18 |
{primaryMenu}
19 |
{secondaryMenu}
20 |
21 |
22 | );
23 | }
24 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Navbar/MobileSidebar/Toggle/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { useNavbarMobileSidebar } from '@docusaurus/theme-common/internal';
3 | import { translate } from '@docusaurus/Translate';
4 | import { SidebarLeft, XMark } from '@medusajs/icons';
5 |
6 | export default function MobileSidebarToggle(): JSX.Element {
7 | const { toggle, shown } = useNavbarMobileSidebar();
8 | return (
9 |
21 | {!shown && }
22 | {shown && }
23 |
24 | );
25 | }
26 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/Navbar/Search/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import type { Props } from '@theme/Navbar/Search';
4 |
5 | export default function NavbarSearch({
6 | children,
7 | className,
8 | }: Props): JSX.Element {
9 | return {children}
;
10 | }
11 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/NotFound/Content/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import Translate from '@docusaurus/Translate';
4 | import type { Props } from '@theme/NotFound/Content';
5 | import Heading from '@theme/Heading';
6 |
7 | export default function NotFoundContent({ className }: Props): JSX.Element {
8 | return (
9 |
12 |
13 |
14 |
15 |
19 | Page Not Found
20 |
21 |
22 |
23 |
24 |
25 | );
26 | }
27 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/NotFound/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { translate } from '@docusaurus/Translate';
3 | import { PageMetadata } from '@docusaurus/theme-common';
4 | import Layout from '@theme/Layout';
5 | import NotFoundContent from '@theme/NotFound/Content';
6 | import DocsProviders from '../../providers/DocsProviders';
7 |
8 | export default function Index(): JSX.Element {
9 | const title = translate({
10 | id: 'theme.NotFound.title',
11 | message: 'Page Not Found',
12 | });
13 | return (
14 |
15 |
16 |
17 |
18 |
19 |
20 | );
21 | }
22 |
--------------------------------------------------------------------------------
/apps/docs/src/theme/TOCItems/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import TOCItems from '@theme-original/TOCItems';
3 | import type TOCItemsType from '@theme/TOCItems';
4 | import type { WrapperProps } from '@docusaurus/types';
5 | import { useDoc } from '@docusaurus/theme-common/internal';
6 | import { DocContextValue } from '@medusajs/docs';
7 | import StructuredDataHowTo from '../../components/StructuredData/HowTo';
8 |
9 | type Props = WrapperProps;
10 |
11 | export default function TOCItemsWrapper(props: Props): JSX.Element {
12 | const { frontMatter, contentTitle } = useDoc() as DocContextValue;
13 |
14 | return (
15 | <>
16 |
17 | {frontMatter?.addHowToData && (
18 |
19 | )}
20 | >
21 | );
22 | }
23 |
--------------------------------------------------------------------------------
/apps/docs/src/types/global.d.ts:
--------------------------------------------------------------------------------
1 | export declare global {
2 | interface Window {
3 | // eslint-disable-next-line @typescript-eslint/no-explicit-any
4 | analytics?: any;
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/apps/docs/src/utils/decode-str.ts:
--------------------------------------------------------------------------------
1 | export default function decodeStr(str: string) {
2 | return str
3 | .replaceAll('<', '<')
4 | .replaceAll('{', '{')
5 | .replaceAll('}', '}')
6 | .replaceAll('>', '>')
7 | .replaceAll('\\|', '|');
8 | }
9 |
--------------------------------------------------------------------------------
/apps/docs/src/utils/exclude-sidebar-results.js:
--------------------------------------------------------------------------------
1 | function excludeSidebarResults(sidebarItems, categoryItem) {
2 | const results = [];
3 | sidebarItems.forEach((item) => {
4 | if (item.type === 'category') {
5 | results.push({
6 | ...item,
7 | items: excludeSidebarResults(item.items, categoryItem),
8 | });
9 | } else if (!item.customProps?.exclude_from_auto_sidebar) {
10 | return results.push(item);
11 | }
12 | });
13 |
14 | return results;
15 | }
16 |
17 | module.exports = excludeSidebarResults;
18 |
--------------------------------------------------------------------------------
/apps/docs/src/utils/filter-list-items.ts:
--------------------------------------------------------------------------------
1 | import {
2 | PropSidebarItem,
3 | PropSidebarItemLink,
4 | } from '@docusaurus/plugin-content-docs';
5 |
6 | export default function filterListItems(
7 | items: PropSidebarItemLink[],
8 | pathPattern: string | RegExp
9 | ): PropSidebarItemLink[] {
10 | if (!items.length) {
11 | return items;
12 | }
13 |
14 | const pattern = new RegExp(pathPattern);
15 |
16 | return items.filter((item: PropSidebarItemLink) => pattern.test(item.href));
17 | }
18 |
19 | /**
20 | * Flatting a sidebar list moving items from category
21 | * to links
22 | */
23 | export function flattenList(items: PropSidebarItem[]): PropSidebarItem[] {
24 | const newItems = items.map((item: PropSidebarItem) => {
25 | if (item.type !== 'category') {
26 | return item;
27 | }
28 |
29 | return item.items;
30 | });
31 |
32 | return newItems.flat();
33 | }
34 |
--------------------------------------------------------------------------------
/apps/docs/src/utils/get-first-category-item.ts:
--------------------------------------------------------------------------------
1 | import {
2 | findSidebarCategory,
3 | useDocsSidebar,
4 | } from '@docusaurus/theme-common/internal';
5 | import { PropSidebarItem } from '@docusaurus/plugin-content-docs';
6 |
7 | type Options = {
8 | categoryLabel?: string;
9 | categoryCustomId?: string;
10 | };
11 |
12 | export function getCategoryItems({ categoryLabel, categoryCustomId }: Options) {
13 | return findSidebarCategory(
14 | useDocsSidebar().items,
15 | (item) =>
16 | item.label === categoryLabel ||
17 | item.customProps.category_id === categoryCustomId
18 | )?.items;
19 | }
20 |
21 | export default function getFirstCategoryItem(
22 | options: Options
23 | ): PropSidebarItem | undefined {
24 | return getCategoryItems(options)?.[0];
25 | }
26 |
--------------------------------------------------------------------------------
/apps/docs/src/utils/get-os-shortcut.ts:
--------------------------------------------------------------------------------
1 | export default function getOsShortcut() {
2 | const isMacOs =
3 | typeof navigator !== 'undefined'
4 | ? navigator.userAgent.toLowerCase().indexOf('mac') !== 0
5 | : true;
6 |
7 | return isMacOs ? '⌘' : 'Ctrl';
8 | }
9 |
--------------------------------------------------------------------------------
/apps/docs/src/utils/glossary.ts:
--------------------------------------------------------------------------------
1 | export type GlossaryType = {
2 | matchTextRegex: RegExp;
3 | ignoreTextRegex?: RegExp;
4 | title: string;
5 | content: string;
6 | referenceLink: string;
7 | };
8 |
9 | const glossary: GlossaryType[] = [];
10 |
11 | export const getGlossary = () => [...glossary];
12 |
13 | export const getGlossaryByPath = (path: string): GlossaryType | undefined => {
14 | return glossary.find(
15 | (g) => g.matchTextRegex.test(path) && !g.ignoreTextRegex?.test(path)
16 | );
17 | };
18 |
--------------------------------------------------------------------------------
/apps/docs/src/utils/is-in-view.ts:
--------------------------------------------------------------------------------
1 | export default function isInView(element: Element): boolean {
2 | const rect = element.getBoundingClientRect();
3 | return (
4 | rect.top >= 0 &&
5 | rect.left >= 0 &&
6 | rect.bottom <=
7 | (window.innerHeight || document.documentElement.clientHeight) &&
8 | rect.right <= (window.innerWidth || document.documentElement.clientWidth)
9 | );
10 | }
11 |
--------------------------------------------------------------------------------
/apps/docs/src/utils/reverse-sidebar.js:
--------------------------------------------------------------------------------
1 | function reverseSidebarItems(sidebarItems, categoryItem) {
2 | let result = sidebarItems;
3 | if (categoryItem.customProps?.reverse) {
4 | // Reverse items in categories
5 | result = result.map((item) => {
6 | if (item.type === 'category') {
7 | return {
8 | ...item,
9 | items: reverseSidebarItems(item.items, categoryItem),
10 | };
11 | }
12 | return item;
13 | });
14 | // Reverse items at current level
15 | // use localeCompare since the reverse array method doesn't account for
16 | // numeric strings
17 | result.sort((a, b) => {
18 | const aToCompare = a.id || a.href || a.value || '';
19 | const bToCompare = b.id || b.href || b.value || '';
20 | const comparison = aToCompare.localeCompare(bToCompare, undefined, {
21 | numeric: true,
22 | });
23 |
24 | return comparison < 0 ? 1 : comparison > 0 ? -1 : 0;
25 | });
26 | }
27 | return result;
28 | }
29 |
30 | export default reverseSidebarItems;
31 |
--------------------------------------------------------------------------------
/apps/docs/src/utils/specs.ts:
--------------------------------------------------------------------------------
1 | export const specs = {};
2 |
--------------------------------------------------------------------------------
/apps/docs/static/.nojekyll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/.nojekyll
--------------------------------------------------------------------------------
/apps/docs/static/black-logo.svg:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/apps/docs/static/brand/zerops-assets.zip:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/brand/zerops-assets.zip
--------------------------------------------------------------------------------
/apps/docs/static/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/favicon.ico
--------------------------------------------------------------------------------
/apps/docs/static/img/admin-icon-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/apps/docs/static/img/admin-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/apps/docs/static/img/bell-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/bell-dark.png
--------------------------------------------------------------------------------
/apps/docs/static/img/diagrams-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/diagrams-bg.png
--------------------------------------------------------------------------------
/apps/docs/static/img/docs_meta.jpeg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/docs_meta.jpeg
--------------------------------------------------------------------------------
/apps/docs/static/img/gatsby-icon-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/apps/docs/static/img/gatsby-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/automatic-scaling-2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/automatic-scaling-2.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/automatic-scaling.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/automatic-scaling.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/create-project.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/create-project.png
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/Elixir.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/Elixir.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/Gleam.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/Gleam.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/Python.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/Python.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/apache-php.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/apache-php.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/bun.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/bun.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/deno.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/deno.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/dotnet.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/dotnet.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/golang.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/golang.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/java.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/java.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/nginx-php.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/nginx-php.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/nodejs.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/nodejs.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/delete-service/rust.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/delete-service/rust.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/enable-firewall.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/enable-firewall.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/github-integration.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/github-integration.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/ipv6-public-port.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/ipv6-public-port.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/laravel/runtime-log.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/laravel/runtime-log.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/php-nginx/service.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/php-nginx/service.png
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/pipeline-history.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/pipeline-history.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/postgres/backups.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/postgres/backups.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/public-access-domain.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/public-access-domain.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/public-access.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/public-access.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/resources.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/resources.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/running-build.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/running-build.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/secrets.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/secrets.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/serious-core.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/serious-core.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/Deno.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/Deno.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/Golang.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/Golang.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/bun.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/bun.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/dotnet.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/dotnet.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/elixir.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/elixir.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/gleam.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/gleam.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/java.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/java.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/nodejs.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/nodejs.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/php-apache.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/php-apache.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/php-nginx.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/php-nginx.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/python.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/python.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/service/rust.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/service/rust.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/valkey/service.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/valkey/service.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/gui/zsc-web-terminal.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/gui/zsc-web-terminal.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/img.png
--------------------------------------------------------------------------------
/apps/docs/static/img/learning-path-img.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/learning-path-img.png
--------------------------------------------------------------------------------
/apps/docs/static/img/light-beam.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/light-beam.png
--------------------------------------------------------------------------------
/apps/docs/static/img/link-icon-light.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/apps/docs/static/img/link-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/apps/docs/static/img/logo-icon-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/logo-icon-dark.png
--------------------------------------------------------------------------------
/apps/docs/static/img/logo-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/logo-icon.png
--------------------------------------------------------------------------------
/apps/docs/static/img/logo-mobile-dark.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/logo-mobile-dark.png
--------------------------------------------------------------------------------
/apps/docs/static/img/logo-mobile.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/logo-mobile.png
--------------------------------------------------------------------------------
/apps/docs/static/img/magnifying-glass-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/apps/docs/static/img/magnifying-glass.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/apps/docs/static/img/mind-maps/build-deploy/custom-runtime.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/mind-maps/build-deploy/custom-runtime.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/mind-maps/build-deploy/manual-deploy.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/mind-maps/build-deploy/manual-deploy.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/mind-maps/build-deploy/step-1-dark.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/mind-maps/build-deploy/step-1-dark.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/mind-maps/build-deploy/step-1.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/mind-maps/build-deploy/step-1.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/mind-maps/build-deploy/step-2.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/mind-maps/build-deploy/step-2.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/mind-maps/build-deploy/step-3.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/mind-maps/build-deploy/step-3.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/payment-accepted-icon-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/apps/docs/static/img/payment-accepted-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/access-tokens-dark.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/access-tokens-dark.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/access-tokens-light.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/access-tokens-light.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/add_user.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/add_user.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/backup_frequency.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/backup_frequency.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/build_deploy_pipeline-step1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/build_deploy_pipeline-step1.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/build_deploy_pipeline-step2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/build_deploy_pipeline-step2.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/build_deploy_pipeline-step3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/build_deploy_pipeline-step3.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/build_deploy_pipeline_custom_runtime.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/build_deploy_pipeline_custom_runtime.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/cancel_running_build.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/cancel_running_build.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/client_id.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/client_id.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/connect_shared_storage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/connect_shared_storage.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/connect_shared_storage_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/connect_shared_storage_1.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/connect_shared_storage_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/connect_shared_storage_2.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/create_nodejs_cast.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/create_nodejs_cast.mp4
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/create_nodejs_service_1.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/create_nodejs_service_1.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/create_nodejs_service_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/create_nodejs_service_2.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/create_object_storage_cast.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/create_object_storage_cast.mp4
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/create_shared_storage_cast.mp4:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/create_shared_storage_cast.mp4
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/debug_mode.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/debug_mode.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/delete_object_storage.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/delete_object_storage.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/firewall_for_public_port.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/firewall_for_public_port.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/github_integration.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/github_integration.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/keydb_autoscaling.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/keydb_autoscaling.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/list_of_backups.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/list_of_backups.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/nodejs_containers_list.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/nodejs_containers_list.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/nodejs_file_browser.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/nodejs_file_browser.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/nodejs_generated_variables.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/nodejs_generated_variables.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/nodejs_runtime_log.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/nodejs_runtime_log.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/object_storage_access_details.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/object_storage_access_details.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/object_storage_bucket_quota.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/object_storage_bucket_quota.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/object_storage_generated_env.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/object_storage_generated_env.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/object_storage_update_bucket.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/object_storage_update_bucket.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/open_public_port.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/open_public_port.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/personal-access-tokens.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/personal-access-tokens.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/pipeline_history.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/pipeline_history.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/public_access_2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/public_access_2.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/public_access_3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/public_access_3.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/runtime_clear_build_cache.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/runtime_clear_build_cache.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/runtime_secret_variables.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/runtime_secret_variables.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/scaling2.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/scaling2.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/scaling3.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/scaling3.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/scaling4.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/scaling4.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/scaling5.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/scaling5.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/scaling6.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/scaling6.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/scaling7.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/scaling7.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/scaling8.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/scaling8.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/secret_env.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/secret_env.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/secret_variables.webp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/secret_variables.webp
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/shared_storage_autoscaling.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/shared_storage_autoscaling.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/shared_storage_mode.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/shared_storage_mode.png
--------------------------------------------------------------------------------
/apps/docs/static/img/screenshots/ssh.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/screenshots/ssh.png
--------------------------------------------------------------------------------
/apps/docs/static/img/search-hit-arrow-light.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/apps/docs/static/img/search-hit-arrow.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/apps/docs/static/img/search-hit.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/search-hit.png
--------------------------------------------------------------------------------
/apps/docs/static/img/side-menu-light.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/apps/docs/static/img/side-menu.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/apps/docs/static/img/stardust.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/img/stardust.png
--------------------------------------------------------------------------------
/apps/docs/static/img/stripe-icon-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/apps/docs/static/img/stripe-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/apps/docs/static/img/terminal-icon-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/apps/docs/static/img/terminal-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/apps/docs/static/img/user-guide-dark.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/apps/docs/static/img/user-guide.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
--------------------------------------------------------------------------------
/apps/docs/static/logo.svg:
--------------------------------------------------------------------------------
1 |
3 |
4 |
5 |
--------------------------------------------------------------------------------
/apps/docs/static/og.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/og.png
--------------------------------------------------------------------------------
/apps/docs/static/robots.txt:
--------------------------------------------------------------------------------
1 | User-agent: *
2 | Allow: /
3 |
4 | Sitemap: https://docs.zerops.io/sitemap-docs.xml
5 |
--------------------------------------------------------------------------------
/apps/docs/static/vids/containers.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/containers.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/cpu-scaling.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/cpu-scaling.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/database-scaling.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/database-scaling.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/ram-scaling.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/ram-scaling.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/routes.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/routes.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/bun.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/bun.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/deno.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/deno.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/dotnet.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/dotnet.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/elixir.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/elixir.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/gleam.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/gleam.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/golang.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/golang.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/java.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/java.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/mariadb.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/mariadb.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/nginx-static.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/nginx-static.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/nodejs.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/nodejs.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/object-storage.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/object-storage.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/postgres.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/postgres.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/python.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/python.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/rust.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/rust.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/shared-storage.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/shared-storage.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/services/static.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/services/static.webm
--------------------------------------------------------------------------------
/apps/docs/static/vids/shared-storage-scaling.webm:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/apps/docs/static/vids/shared-storage-scaling.webm
--------------------------------------------------------------------------------
/apps/docs/tailwind.config.js:
--------------------------------------------------------------------------------
1 | import coreConfig from "tailwind"
2 |
3 | /** @type {import('tailwindcss').Config} */
4 | module.exports = {
5 | ...coreConfig,
6 | // prefix: "tw-",
7 | corePlugins: {
8 | preflight: false, // disable Tailwind's reset
9 | },
10 | content: [
11 | ...coreConfig.content,
12 | "./src/**/*.{js,jsx,ts,tsx}",
13 | "./content/**/*.{mdx,md}",
14 | "!./content/references",
15 | "docusaurus.config.js",
16 | "sidebars.js",
17 | ],
18 | theme: {
19 | ...coreConfig.theme,
20 | extend: {
21 | ...coreConfig.theme.extend,
22 | screens: {
23 | ...coreConfig.theme.screens,
24 | xs: "576px",
25 | lg: "996px",
26 | xl: "1419px",
27 | xxl: "1440px",
28 | },
29 | },
30 | },
31 | }
32 |
--------------------------------------------------------------------------------
/apps/docs/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "tsconfig/docusaurus.json",
3 | "compilerOptions": {
4 | "baseUrl": ".",
5 | "paths": {
6 | "@site/*": ["./*"]
7 | }
8 | },
9 | "include": [
10 | "src/**/*",
11 | "docusaurus.config.js",
12 | "sidebars.js",
13 | "tailwind.config.js",
14 | "postcss.config.js",
15 | "content/**/*"
16 | ],
17 | "typeRoots": ["./node_modules/@types", "./src/types"]
18 | }
19 |
--------------------------------------------------------------------------------
/bun.lockb:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/zeropsio/docs/709d0d612d4d7c185e7a7e245f9aacee798760f0/bun.lockb
--------------------------------------------------------------------------------
/packages/docs-ui/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | root: true,
3 | extends: ['docs'],
4 | parserOptions: {
5 | project: true,
6 | tsconfigRootDir: __dirname,
7 | },
8 | };
9 |
--------------------------------------------------------------------------------
/packages/docs-ui/.gitignore:
--------------------------------------------------------------------------------
1 | dist
2 | .turbo
3 |
--------------------------------------------------------------------------------
/packages/docs-ui/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = require("tailwind/postcss.config")
2 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Bordered/index.tsx:
--------------------------------------------------------------------------------
1 | import clsx from 'clsx';
2 | import React from 'react';
3 |
4 | export type BorderedProps = {
5 | wrapperClassName?: string;
6 | } & React.HTMLAttributes;
7 |
8 | export const Bordered = ({ wrapperClassName, children }: BorderedProps) => {
9 | return (
10 |
18 | {children}
19 |
20 | );
21 | };
22 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/CardList/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Card, CardProps } from '@/components';
3 | import clsx from 'clsx';
4 |
5 | type CardListProps = {
6 | items: CardProps[];
7 | itemsPerRow?: number;
8 | };
9 |
10 | export const CardList = ({ items, itemsPerRow }: CardListProps) => {
11 | if (!itemsPerRow) {
12 | // if length of items is even, set to `2`, else set to `3`
13 | itemsPerRow = items.length === 1 ? 0 : items.length % 2 === 0 ? 2 : 3;
14 | }
15 | return (
16 |
24 | {items.map((item, key) => (
25 |
26 | ))}
27 |
28 | );
29 | };
30 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/DetailsList/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import { Details, MarkdownContent } from '@/components';
4 |
5 | type TroubleshootingSection = {
6 | title: string;
7 | content: React.ReactNode;
8 | };
9 |
10 | type DetailsListProps = {
11 | sections: TroubleshootingSection[];
12 | } & React.AllHTMLAttributes;
13 |
14 | export const DetailsList = ({ sections }: DetailsListProps) => {
15 | return (
16 | <>
17 | {sections.map(({ title, content }, index) => (
18 |
23 | {React.isValidElement(content) && content}
24 | {!React.isValidElement(content) && typeof content === 'string' && (
25 | {content}
26 | )}
27 |
28 | ))}
29 | >
30 | );
31 | };
32 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/EditButton/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Button } from '../..';
3 |
4 | type EditButtonProps = {
5 | filePath: string;
6 | };
7 |
8 | export const EditButton = ({ filePath }: EditButtonProps) => {
9 | return (
10 |
11 |
12 | Edit this page
13 |
14 |
15 | );
16 | };
17 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/ExpandableNotice/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { Badge, LegacyLink, Tooltip } from '@/components';
3 |
4 | export type ExpandableNoticeProps = {
5 | type: 'request' | 'method';
6 | link: string;
7 | badgeContent?: React.ReactNode;
8 | badgeClassName?: string;
9 | };
10 |
11 | export const ExpandableNotice = ({
12 | type = 'request',
13 | link,
14 | badgeContent = 'expandable',
15 | badgeClassName,
16 | }: ExpandableNoticeProps) => {
17 | return (
18 |
21 | If this {type} accepts an expand
{' '}
22 | {type === 'request' ? 'parameter' : 'property or option'},
23 | {/* TODO replace with Link once we move away from Docusaurus */}
24 | this field can be
25 | expanded
26 | {' '}
27 | into an object.
28 | >
29 | }
30 | clickable
31 | >
32 |
33 | {badgeContent}
34 |
35 |
36 | );
37 | };
38 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/HooksLoader/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import { usePageScrollManager } from '../../hooks';
5 |
6 | type HooksLoaderProps = {
7 | options?: {
8 | pageScrollManager?: boolean;
9 | currentLearningPath?: boolean;
10 | };
11 | children?: React.ReactNode;
12 | };
13 |
14 | export const HooksLoader = ({ children, options = {} }: HooksLoaderProps) => {
15 | const { pageScrollManager } = options;
16 | // load any hooks that require providers to be loaded here.
17 | if (pageScrollManager) {
18 | usePageScrollManager();
19 | }
20 |
21 | return <>{children}>;
22 | };
23 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Icons/QuestionMark/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { IconProps } from '@medusajs/icons/dist/types';
3 |
4 | export const QuestionMarkIcon = (props: IconProps) => {
5 | return (
6 |
14 |
21 |
22 | );
23 | };
24 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Icons/index.tsx:
--------------------------------------------------------------------------------
1 | export * from './CircleDottedLine';
2 | export * from './QuestionMark';
3 | export * from './ThumbDown';
4 | export * from './ThumbUp';
5 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/InlineCode/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import clsx from 'clsx';
5 | import { CopyButton } from '@/components';
6 |
7 | export type InlineCodeProps = React.ComponentProps<'code'>;
8 |
9 | export const InlineCode = (props: InlineCodeProps) => {
10 | return (
11 |
18 |
29 |
30 | );
31 | };
32 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/InlineIcon/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { IconProps } from '@medusajs/icons/dist/types';
3 | import clsx from 'clsx';
4 |
5 | type InlineIconProps = IconProps & {
6 | Icon: React.ComponentType;
7 | alt?: string;
8 | };
9 |
10 | export const InlineIcon = ({ Icon, alt, ...props }: InlineIconProps) => {
11 | return (
12 |
17 | );
18 | };
19 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/InlineThemeImage/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import { ThemeImage, ThemeImageProps } from '../..';
4 |
5 | export const InlineThemeImage = (props: ThemeImageProps) => {
6 | return (
7 |
13 | );
14 | };
15 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Kbd/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 |
4 | export type KbdProps = React.ComponentProps<'kbd'>;
5 |
6 | export const Kbd = ({ children, className, ...props }: KbdProps) => {
7 | return (
8 |
20 | {children}
21 |
22 | );
23 | };
24 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Label/index.tsx:
--------------------------------------------------------------------------------
1 | import clsx from 'clsx';
2 | import React from 'react';
3 |
4 | export type LabelProps = {
5 | className?: string;
6 | } & React.HTMLAttributes;
7 |
8 | export const Label = ({ children, className }: LabelProps) => {
9 | return (
10 |
16 | {children}
17 |
18 | );
19 | };
20 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/LegacyLink/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 |
4 | export type LegacyLinkProps = {
5 | href?: string;
6 | children?: React.ReactNode;
7 | className?: string;
8 | } & React.AllHTMLAttributes;
9 |
10 | export const LegacyLink = ({
11 | href,
12 | children,
13 | className,
14 | ...rest
15 | }: LegacyLinkProps) => {
16 | return (
17 |
25 | {children}
26 |
27 | );
28 | };
29 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Link/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import NextLink from 'next/link';
3 | import type { LinkProps as NextLinkProps } from 'next/link';
4 | import clsx from 'clsx';
5 |
6 | export type LinkProps = {
7 | href?: string;
8 | children?: React.ReactNode;
9 | className?: string;
10 | target?: string;
11 | rel?: string;
12 | } & Partial;
13 |
14 | export const Link = ({ href, children, className, ...rest }: LinkProps) => {
15 | if (href?.replace(/#.*$/, '').endsWith('page.mdx')) {
16 | href = href.replace('/page.mdx', '');
17 | }
18 | return (
19 |
27 | {children}
28 |
29 | );
30 | };
31 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Loading/Dots/index.tsx:
--------------------------------------------------------------------------------
1 | import clsx from 'clsx';
2 | import React from 'react';
3 |
4 | export type DotsLoadingProps = {
5 | className?: string;
6 | };
7 |
8 | export const DotsLoading = ({ className }: DotsLoadingProps) => {
9 | return (
10 |
11 | .
12 | .
13 | .
14 |
15 | );
16 | };
17 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Loading/Spinner/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import { Spinner } from '@medusajs/icons';
4 | import { IconProps } from '@medusajs/icons/dist/types';
5 |
6 | export type SpinnerLoadingProps = {
7 | iconProps?: IconProps;
8 | };
9 |
10 | export const SpinnerLoading = ({ iconProps }: SpinnerLoadingProps) => {
11 | return (
12 |
13 |
17 |
18 | );
19 | };
20 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Loading/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 |
4 | export type LoadingProps = {
5 | className?: string;
6 | barClassName?: string;
7 | count?: number;
8 | };
9 |
10 | export const Loading = ({
11 | className,
12 | count = 6,
13 | barClassName,
14 | }: LoadingProps) => {
15 | const getLoadingBars = () => {
16 | const bars = [];
17 | for (let i = 0; i < count; i++) {
18 | bars.push(
19 |
26 | );
27 | }
28 |
29 | return bars;
30 | };
31 | return (
32 |
39 | {getLoadingBars()}
40 | Loading...
41 |
42 | );
43 | };
44 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Modal/Footer/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import { Button, ButtonProps } from '@/components';
4 |
5 | export type ModalFooterProps = {
6 | actions?: ButtonProps[];
7 | children?: React.ReactNode;
8 | className?: string;
9 | };
10 |
11 | export const ModalFooter = ({
12 | actions,
13 | children,
14 | className,
15 | }: ModalFooterProps) => {
16 | return (
17 |
25 | {actions?.map((action, index) => )}
26 | {children}
27 |
28 | );
29 | };
30 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Modal/Header/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import { useModal } from '@/providers';
4 | import { Button } from '@/components';
5 | import { XMark } from '@medusajs/icons';
6 |
7 | export type ModalHeaderProps = {
8 | title?: React.ReactNode;
9 | };
10 |
11 | export const ModalHeader = ({ title }: ModalHeaderProps) => {
12 | const { closeModal } = useModal();
13 |
14 | return (
15 |
21 | {title}
22 | closeModal()}
26 | >
27 |
28 |
29 |
30 | );
31 | };
32 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Navbar/ColorModeToggle/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import { NavbarIconButton, NavbarIconButtonProps } from '../IconButton';
5 | import { useColorMode } from '@/providers';
6 | import { Moon, Sun } from '@medusajs/icons';
7 |
8 | export type NavbarColorModeToggleProps = {
9 | buttonProps?: NavbarIconButtonProps;
10 | };
11 |
12 | export const NavbarColorModeToggle = ({
13 | buttonProps,
14 | }: NavbarColorModeToggleProps) => {
15 | const { colorMode, toggleColorMode } = useColorMode();
16 |
17 | return (
18 | toggleColorMode()}>
19 | {colorMode === 'light' && }
20 | {colorMode === 'dark' && }
21 |
22 | );
23 | };
24 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Navbar/IconButton/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 | import { Button, ButtonProps } from '@/components';
4 |
5 | export type NavbarIconButtonProps = ButtonProps;
6 |
7 | export const NavbarIconButton = ({
8 | children,
9 | className,
10 | ...props
11 | }: NavbarIconButtonProps) => {
12 | return (
13 | svg]:h-[22px] [&>svg]:w-[22px] btn-secondary-icon',
16 | className
17 | )}
18 | variant="secondary"
19 | {...props}
20 | >
21 | {children}
22 |
23 | );
24 | };
25 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Navbar/Link/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import clsx from 'clsx';
5 | import { Link, LinkProps } from '@/components';
6 |
7 | export type NavbarLinkProps = {
8 | href: string;
9 | label: string;
10 | className?: string;
11 | activeValuePattern?: RegExp;
12 | isActive?: boolean;
13 | } & LinkProps;
14 |
15 | export const NavbarLink = ({
16 | href,
17 | label,
18 | className,
19 | isActive,
20 | }: NavbarLinkProps) => {
21 | return (
22 |
32 | {label}
33 |
34 | );
35 | };
36 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Navbar/Logo/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import { useColorMode } from '@/providers';
5 | import Link from 'next/link';
6 | import clsx from 'clsx';
7 |
8 | export type NavbarLogoProps = {
9 | light: string;
10 | dark?: string;
11 | className?: string;
12 | imageClassName?: string;
13 | };
14 |
15 | export const NavbarLogo = ({
16 | light,
17 | dark,
18 | className,
19 | imageClassName,
20 | }: NavbarLogoProps) => {
21 | const { colorMode } = useColorMode();
22 |
23 | return (
24 |
25 |
32 |
33 | );
34 | };
35 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Note/Types/checks.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { NoteProps } from '..';
3 | import { NoteLayout } from '../Layout';
4 | import { CheckCircleSolid } from '@medusajs/icons';
5 | import clsx from 'clsx';
6 |
7 | export const CheckNote = ({
8 | title = 'Prerequisites',
9 | icon,
10 | ...props
11 | }: NoteProps) => {
12 | return (
13 |
22 | )
23 | }
24 | {...props}
25 | />
26 | );
27 | };
28 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Note/Types/default.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { NoteProps } from '..';
3 | import { NoteLayout } from '../Layout';
4 | import { InformationCircleSolid } from '@medusajs/icons';
5 | import clsx from 'clsx';
6 |
7 | export const DefaultNote = ({ title = 'Note', icon, ...props }: NoteProps) => {
8 | return (
9 |
18 | )
19 | }
20 | {...props}
21 | />
22 | );
23 | };
24 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Note/Types/error.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { NoteProps } from '..';
3 | import { NoteLayout } from '../Layout';
4 | import { XMark } from '@medusajs/icons';
5 | import clsx from 'clsx';
6 |
7 | export const ErrorNote = ({ title = 'Error', icon, ...props }: NoteProps) => {
8 | return (
9 |
18 | )
19 | }
20 | {...props}
21 | />
22 | );
23 | };
24 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Note/Types/sucess.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { NoteProps } from '..';
3 | import { NoteLayout } from '../Layout';
4 | import { Check } from '@medusajs/icons';
5 | import clsx from 'clsx';
6 |
7 | export const SuccessNote = ({
8 | title = 'Sucess',
9 | icon,
10 | ...props
11 | }: NoteProps) => {
12 | return (
13 |
22 | )
23 | }
24 | {...props}
25 | />
26 | );
27 | };
28 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Note/Types/warning.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { NoteProps } from '..';
3 | import { NoteLayout } from '../Layout';
4 | import { ExclamationCircleSolid } from '@medusajs/icons';
5 | import clsx from 'clsx';
6 |
7 | export const WarningNote = ({
8 | title = 'Warning',
9 | icon,
10 | ...props
11 | }: NoteProps) => {
12 | return (
13 |
22 | )
23 | }
24 | {...props}
25 | />
26 | );
27 | };
28 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Note/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { WarningNote } from './Types/warning';
3 | import { DefaultNote } from './Types/default';
4 | import { SuccessNote } from './Types/sucess';
5 | import { ErrorNote } from './Types/error';
6 | import { CheckNote } from './Types/checks';
7 |
8 | export type NoteProps = {
9 | type?: 'default' | 'warning' | 'success' | 'error' | 'check';
10 | title?: string;
11 | children?: React.ReactNode;
12 | icon?: React.ReactNode;
13 | };
14 |
15 | export const Note = ({ type = 'default', ...props }: NoteProps) => {
16 | switch (type) {
17 | case 'warning':
18 | return ;
19 | case 'success':
20 | return ;
21 | case 'error':
22 | return ;
23 | case 'check':
24 | return ;
25 | default:
26 | return ;
27 | }
28 | };
29 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Pagination/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import { usePagination } from '../../providers';
5 | import { Card } from '../Card';
6 | import { ChevronLeft, ChevronRight } from '@medusajs/icons';
7 |
8 | export const Pagination = () => {
9 | const { previousPage, nextPage } = usePagination();
10 |
11 | return (
12 |
13 | {previousPage && (
14 | }
17 | showLinkIcon={false}
18 | href={previousPage.link}
19 | className="max-w-[45%] ml-0 mr-auto"
20 | />
21 | )}
22 | {nextPage && (
23 | }
26 | showLinkIcon={false}
27 | href={nextPage.link}
28 | className="max-w-[45%] mr-0 ml-auto"
29 | />
30 | )}
31 |
32 | );
33 | };
34 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Search/EmptyQueryBoundary/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import { useInstantSearch } from 'react-instantsearch';
5 |
6 | export type SearchEmptyQueryBoundaryProps = {
7 | children: React.ReactNode;
8 | fallback: React.ReactNode;
9 | };
10 |
11 | export const SearchEmptyQueryBoundary = ({
12 | children,
13 | fallback,
14 | }: SearchEmptyQueryBoundaryProps) => {
15 | const { indexUiState } = useInstantSearch();
16 |
17 | if (!indexUiState.query) {
18 | return <>{fallback}>;
19 | }
20 |
21 | return <>{children}>;
22 | };
23 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Search/Hits/GroupName/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 |
4 | export type SearchHitGroupNameProps = {
5 | name: string;
6 | };
7 |
8 | export const SearchHitGroupName = ({ name }: SearchHitGroupNameProps) => {
9 | return (
10 |
17 | {name}
18 |
19 | );
20 | };
21 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Search/NoResults/index.tsx:
--------------------------------------------------------------------------------
1 | import { ExclamationCircleSolid } from '@medusajs/icons';
2 | import clsx from 'clsx';
3 | import React from 'react';
4 |
5 | export const SearchNoResult = () => {
6 | return (
7 |
13 |
14 |
15 | No results found. Try changing selected filters.
16 |
17 |
18 | );
19 | };
20 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Search/Suggestions/Item/index.tsx:
--------------------------------------------------------------------------------
1 | import clsx from 'clsx';
2 | import React from 'react';
3 |
4 | export type SearchSuggestionItemType = {
5 | onClick: () => void;
6 | } & React.AllHTMLAttributes;
7 |
8 | export const SearchSuggestionItem = ({
9 | children,
10 | onClick,
11 | className,
12 | ...rest
13 | }: SearchSuggestionItemType) => {
14 | return (
15 |
29 | {children}
30 |
31 | );
32 | };
33 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Select/index.ts:
--------------------------------------------------------------------------------
1 | import type { OptionType, SelectOptions } from '@/hooks';
2 |
3 | export type SelectProps = {
4 | options: OptionType[];
5 | multiple?: boolean;
6 | addAll?: boolean;
7 | showClearButton?: boolean;
8 | } & SelectOptions &
9 | React.ComponentProps<'input'>;
10 |
11 | export * from './Badge';
12 | export * from './Dropdown';
13 | export * from './Input';
14 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Sidebar/Back/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import { useSidebar } from '../../../providers';
5 | import clsx from 'clsx';
6 | import { ArrowUturnLeft } from '@medusajs/icons';
7 |
8 | export const SidebarBack = () => {
9 | const { goBack } = useSidebar();
10 |
11 | return (
12 |
25 | );
26 | };
27 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/Sidebar/Title/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import Link from 'next/link';
3 | import clsx from 'clsx';
4 | import { SidebarItemType } from 'types';
5 |
6 | type SidebarTitleProps = {
7 | item: SidebarItemType;
8 | };
9 |
10 | export const SidebarTitle = ({ item }: SidebarTitleProps) => {
11 | return (
12 |
23 | {item.childSidebarTitle || item.title}
24 | {item.additionalElms}
25 |
26 | );
27 | };
28 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/TextArea/index.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import clsx from 'clsx';
3 |
4 | export type TextAreaProps = {
5 | className?: string;
6 | } & React.DetailedHTMLProps<
7 | React.TextareaHTMLAttributes,
8 | HTMLTextAreaElement
9 | >;
10 |
11 | export const TextArea = (props: TextAreaProps) => {
12 | return (
13 |
29 | );
30 | };
31 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/ThemeImage/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import { useColorMode } from '@/providers';
5 |
6 | export type ThemeImageProps = {
7 | light: string;
8 | dark?: string;
9 | alt?: string;
10 | } & React.AllHTMLAttributes;
11 |
12 | export const ThemeImage = ({
13 | light,
14 | dark,
15 | alt = '',
16 | ...props
17 | }: ThemeImageProps) => {
18 | const { colorMode } = useColorMode();
19 |
20 | return (
21 |
26 | );
27 | };
28 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/components/ZoomImg/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React from 'react';
4 | import Zoom from 'react-medium-image-zoom';
5 | import 'react-medium-image-zoom/dist/styles.css';
6 |
7 | type ZoomImgProps = React.DetailedHTMLProps<
8 | React.ImgHTMLAttributes,
9 | HTMLImageElement
10 | >;
11 |
12 | export const ZoomImg = (props: ZoomImgProps) => {
13 | return (
14 |
15 |
16 |
17 | );
18 | };
19 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/constants.ts:
--------------------------------------------------------------------------------
1 | import { NavbarLinkProps } from '@/components';
2 | import { SidebarItemType } from 'types';
3 |
4 | export const GITHUB_ISSUES_PREFIX = `https://github.com/zeropsio/docs/issues/new`;
5 |
6 | export const navbarItems: NavbarLinkProps[] = [];
7 |
8 | export const mobileSidebarItems: SidebarItemType[] = [];
9 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/hooks/index.ts:
--------------------------------------------------------------------------------
1 | export * from './use-copy';
2 | export * from './use-is-browser';
3 | export * from './use-keyboard-shortcut';
4 | export * from './use-page-scroll-manager';
5 | export * from './use-request-runner';
6 | export * from './use-scroll-utils';
7 | export * from './use-search-navigation';
8 | export * from './use-select';
9 | export * from './use-tabs';
10 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/hooks/use-copy/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import { useCallback, useEffect, useRef, useState } from 'react';
4 | import copy from 'copy-text-to-clipboard';
5 |
6 | type useCopyReturnType = {
7 | isCopied: boolean;
8 | handleCopy: () => void;
9 | };
10 |
11 | export const useCopy = (text: string): useCopyReturnType => {
12 | const [isCopied, setIsCopied] = useState(false);
13 | const copyTimeout = useRef(0);
14 |
15 | const handleCopy = useCallback(() => {
16 | copy(text);
17 | setIsCopied(true);
18 | copyTimeout.current = window.setTimeout(() => {
19 | setIsCopied(false);
20 | }, 1000);
21 | }, [text]);
22 |
23 | useEffect(() => () => window.clearTimeout(copyTimeout.current), []);
24 |
25 | return { isCopied, handleCopy };
26 | };
27 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/hooks/use-is-browser/index.ts:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import { useEffect, useState } from 'react';
4 |
5 | export const useIsBrowser = () => {
6 | const [isBrowser, setIsBrowser] = useState(false);
7 |
8 | useEffect(() => {
9 | setIsBrowser(typeof window !== 'undefined');
10 | }, []);
11 |
12 | return isBrowser;
13 | };
14 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './constants';
2 |
3 | export * from './components';
4 | export * from './hooks';
5 | export * from './layouts';
6 | export * from './providers';
7 | export * from './utils';
8 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/layouts/index.ts:
--------------------------------------------------------------------------------
1 | export * from './root';
2 | export * from './tight';
3 | export * from './wide';
4 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/layouts/tight.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { RootLayout, RootLayoutProps } from './root';
3 | import clsx from 'clsx';
4 | import { Pagination } from '..';
5 |
6 | export const TightLayout = ({
7 | children,
8 | showPagination,
9 | ...props
10 | }: RootLayoutProps) => {
11 | return (
12 |
19 |
25 |
26 | {children}
27 | {showPagination && }
28 |
29 |
30 |
31 | );
32 | };
33 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/layouts/wide.tsx:
--------------------------------------------------------------------------------
1 | import React from 'react';
2 | import { RootLayout, RootLayoutProps } from './root';
3 | import clsx from 'clsx';
4 | import { Pagination } from '..';
5 |
6 | export const WideLayout = ({
7 | children,
8 | showPagination,
9 | ...props
10 | }: RootLayoutProps) => {
11 | return (
12 |
16 |
17 | {children}
18 | {showPagination && }
19 |
20 |
21 | );
22 | };
23 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/providers/PageLoading/index.tsx:
--------------------------------------------------------------------------------
1 | 'use client';
2 |
3 | import React, { createContext, useContext, useState } from 'react';
4 |
5 | export type PageLoadingContextType = {
6 | isLoading: boolean;
7 | setIsLoading: React.Dispatch>;
8 | };
9 |
10 | const PageLoadingContext = createContext(null);
11 |
12 | export type PageLoadingProviderProps = {
13 | children?: React.ReactNode;
14 | };
15 |
16 | export const PageLoadingProvider = ({ children }: PageLoadingProviderProps) => {
17 | const [isLoading, setIsLoading] = useState(true);
18 |
19 | return (
20 |
26 | {children}
27 |
28 | );
29 | };
30 |
31 | export const usePageLoading = (): PageLoadingContextType => {
32 | const context = useContext(PageLoadingContext);
33 |
34 | if (!context) {
35 | throw new Error('usePageLoading must be used inside a PageLoadingProvider');
36 | }
37 |
38 | return context;
39 | };
40 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/providers/index.ts:
--------------------------------------------------------------------------------
1 | export * from './ColorMode';
2 | export * from './Mobile';
3 | export * from './Modal';
4 | export * from './Navbar';
5 | export * from './Notification';
6 | export * from './PageLoading';
7 | export * from './Pagination';
8 | export * from './Search';
9 | export * from './Sidebar';
10 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/array-same-elms.ts:
--------------------------------------------------------------------------------
1 | export function checkArraySameElms(
2 | arr1: Array,
3 | arr2: Array
4 | ): boolean {
5 | if (arr1.length !== arr2.length) {
6 | return false;
7 | }
8 |
9 | return arr1.every((value, index) => value === arr2[index]);
10 | }
11 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/capitalize.ts:
--------------------------------------------------------------------------------
1 | export function capitalize(str: string): string {
2 | return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
3 | }
4 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/decode-str.ts:
--------------------------------------------------------------------------------
1 | export function decodeStr(str: string) {
2 | return str
3 | .replaceAll('<', '<')
4 | .replaceAll('{', '{')
5 | .replaceAll('}', '}')
6 | .replaceAll('>', '>')
7 | .replaceAll('\\|', '|');
8 | }
9 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/dom-utils.ts:
--------------------------------------------------------------------------------
1 | export function findPrevSibling(
2 | element: HTMLElement,
3 | selector: string
4 | ): HTMLElement | null {
5 | let prevElement = element.previousElementSibling;
6 | while (prevElement !== null) {
7 | if (prevElement.matches(selector)) {
8 | return prevElement as HTMLElement;
9 | }
10 | prevElement = prevElement.previousElementSibling;
11 | }
12 |
13 | return null;
14 | }
15 |
16 | export function findNextSibling(
17 | element: HTMLElement,
18 | selector: string
19 | ): HTMLElement | null {
20 | let nextElement = element.nextElementSibling;
21 | while (nextElement !== null) {
22 | if (nextElement.matches(selector)) {
23 | return nextElement as HTMLElement;
24 | }
25 | nextElement = nextElement.nextElementSibling;
26 | }
27 |
28 | return null;
29 | }
30 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/format-report-link.ts:
--------------------------------------------------------------------------------
1 | import { GITHUB_ISSUES_PREFIX } from '../constants';
2 |
3 | export type ReportLinkType = 'default';
4 |
5 | export function formatReportLink(title: string, sectionTitle: string) {
6 | const prefix = GITHUB_ISSUES_PREFIX;
7 |
8 | return `${prefix}&title=${encodeURI(title)}%3A%20Issue%20in%20${encodeURI(
9 | sectionTitle
10 | )}`;
11 | }
12 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/get-link-with-base-path.ts:
--------------------------------------------------------------------------------
1 | export function getLinkWithBasePath(path: string, basePath?: string): string {
2 | return `${basePath || ''}${path}`;
3 | }
4 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/get-navbar-items.ts:
--------------------------------------------------------------------------------
1 | import { NavbarLinkProps, navbarItems } from '..';
2 |
3 | type Options = {
4 | basePath: string;
5 | activePath: string;
6 | };
7 |
8 | export function getNavbarItems({
9 | basePath,
10 | activePath,
11 | }: Options): NavbarLinkProps[] {
12 | return navbarItems.map((item) => ({
13 | ...item,
14 | isActive: activePath === item.href,
15 | href: `${basePath}${item.href}`,
16 | }));
17 | }
18 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/get-os-shortcut.ts:
--------------------------------------------------------------------------------
1 | export function getOsShortcut() {
2 | const isMacOs =
3 | typeof navigator !== 'undefined'
4 | ? navigator.userAgent.toLowerCase().indexOf('mac') !== 0
5 | : true;
6 |
7 | return isMacOs ? '⌘' : 'Ctrl';
8 | }
9 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/get-scrolled-top.ts:
--------------------------------------------------------------------------------
1 | import { isElmWindow } from './is-elm-window';
2 |
3 | export function getScrolledTop(elm?: Element | Window): number {
4 | if (!elm) {
5 | return 0;
6 | }
7 | return isElmWindow(elm) ? elm.scrollY : elm.scrollTop;
8 | }
9 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/index.ts:
--------------------------------------------------------------------------------
1 | export * from './array-same-elms';
2 | export * from './capitalize';
3 | export * from './check-sidebar-item-visibility';
4 | export * from './decode-str';
5 | export * from './dom-utils';
6 | export * from './format-report-link';
7 | export * from './get-link-with-base-path';
8 | export * from './get-navbar-items';
9 | export * from './get-os-shortcut';
10 | export * from './get-scrolled-top';
11 | export * from './is-elm-window';
12 | export * from './is-in-view';
13 | export * from './sidebar-attach-href-common-options';
14 | export * from './swr-fetcher';
15 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/is-elm-window.ts:
--------------------------------------------------------------------------------
1 | export function isElmWindow(elm: unknown): elm is Window {
2 | return typeof window !== 'undefined' && elm === window;
3 | }
4 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/is-in-view.ts:
--------------------------------------------------------------------------------
1 | export function isInView(element: Element): boolean {
2 | const rect = element.getBoundingClientRect();
3 | return (
4 | rect.top >= 0 &&
5 | rect.left >= 0 &&
6 | rect.bottom <=
7 | (window.innerHeight || document.documentElement.clientHeight) &&
8 | rect.right <= (window.innerWidth || document.documentElement.clientWidth)
9 | );
10 | }
11 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/sidebar-attach-href-common-options.ts:
--------------------------------------------------------------------------------
1 | import { RawSidebarItemType } from 'types';
2 |
3 | const commonOptions: Partial = {
4 | loaded: true,
5 | isPathHref: true,
6 | };
7 |
8 | export function sidebarAttachHrefCommonOptions(
9 | sidebar: RawSidebarItemType[]
10 | ): RawSidebarItemType[] {
11 | return sidebar.map((item) => ({
12 | ...commonOptions,
13 | ...item,
14 | children: sidebarAttachHrefCommonOptions(item.children || []),
15 | }));
16 | }
17 |
--------------------------------------------------------------------------------
/packages/docs-ui/src/utils/swr-fetcher.ts:
--------------------------------------------------------------------------------
1 | export const swrFetcher = async (
2 | input: RequestInfo,
3 | init?: RequestInit
4 | ): Promise => {
5 | const res = await fetch(input, init);
6 | return res.json();
7 | };
8 |
--------------------------------------------------------------------------------
/packages/docs-ui/tailwind.config.js:
--------------------------------------------------------------------------------
1 | import coreConfig from "tailwind/modified.tailwind.config"
2 |
3 | /** @type {import('tailwindcss').Config} */
4 | module.exports = {
5 | ...coreConfig,
6 | content: ["./src/**/*.{js,jsx,ts,tsx}"],
7 | }
8 |
--------------------------------------------------------------------------------
/packages/docs-ui/tsconfig.cjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "extends": "./tsconfig.json",
4 | "compilerOptions": {
5 | "outDir": "./dist/cjs",
6 | "module": "CommonJS"
7 | },
8 | "exclude": ["tailwind.config.js", "postcss.config.js"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/docs-ui/tsconfig.esm.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "extends": "./tsconfig.json",
4 | "compilerOptions": {
5 | "outDir": "./dist/esm",
6 | "module": "ES2020"
7 | },
8 | "exclude": ["tailwind.config.js", "postcss.config.js"]
9 | }
10 |
--------------------------------------------------------------------------------
/packages/docs-ui/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "tsconfig/base.json",
3 | "compilerOptions": {
4 | "paths": {
5 | "docs-ui": ["./src/index.ts"],
6 | "@/*": ["./src/*"]
7 | },
8 | "outDir": "dist",
9 | "tsBuildInfoFile": "./dist/.tsbuildinfo-client",
10 | "noEmit": false,
11 | "jsx": "react",
12 | "lib": ["dom", "ES2015", "es2021"],
13 | "module": "ESNext",
14 | "target": "es6",
15 | "declaration": true,
16 | "declarationMap": true
17 | },
18 | "include": ["src/**/*", "tailwind.config.js", "postcss.config.js"]
19 | }
20 |
--------------------------------------------------------------------------------
/packages/eslint-config-docs/docusaurus.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: ['plugin:@docusaurus/recommended', 'google', './base.js'],
3 | ignorePatterns: [
4 | '**/node_modules/**',
5 | '**/.docusaurus/*',
6 | '**/build/*',
7 | '.eslintrc.js',
8 | 'babel.config.js',
9 | ],
10 | };
11 |
--------------------------------------------------------------------------------
/packages/eslint-config-docs/next.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | extends: ['next/core-web-vitals', 'google', './base.js'],
3 | rules: {
4 | 'react/react-in-jsx-scope': 'off',
5 | '@typescript-eslint/prefer-ts-expect-error': 'off',
6 | },
7 | ignorePatterns: [
8 | 'next.config.js',
9 | 'spec',
10 | 'node_modules',
11 | 'public',
12 | '.eslintrc.js',
13 | ],
14 | parserOptions: {
15 | project: true,
16 | },
17 | };
18 |
--------------------------------------------------------------------------------
/packages/eslint-config-docs/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "eslint-config-docs",
3 | "license": "MIT",
4 | "version": "0.0.0",
5 | "private": true,
6 | "main": "base.js",
7 | "dependencies": {
8 | "@babel/eslint-parser": "^7.22.15",
9 | "@docusaurus/eslint-plugin": "^3.1.0",
10 | "@typescript-eslint/eslint-plugin": "^6.18.1",
11 | "@typescript-eslint/parser": "^6.18.1",
12 | "eslint-config-google": "^0.14.0",
13 | "eslint-config-next": "latest",
14 | "eslint-config-prettier": "^8.7.0",
15 | "eslint-config-turbo": "^1.10.12",
16 | "eslint-plugin-markdown": "^3.0.0",
17 | "eslint-plugin-prettier": "^4.2.1",
18 | "eslint-plugin-react": "^7.32.2",
19 | "next": "latest"
20 | },
21 | "devDependencies": {
22 | "eslint": "^8.36.0"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/packages/tailwind/.eslintrc.js:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | module.exports = {
4 | extends: ['docs'],
5 | parserOptions: {
6 | project: true,
7 | tsconfigRootDir: path.join(__dirname, '..', '..'),
8 | },
9 | };
10 |
--------------------------------------------------------------------------------
/packages/tailwind/modified.tailwind.config.js:
--------------------------------------------------------------------------------
1 | // This config file includes the base configurations with the modified configs for UI docs
2 | import coreConfig from "./base.tailwind.config"
3 |
4 | // modify core spacing to have "docs" prefix
5 | const modifiedSpacing = {}
6 | Object.entries(coreConfig.theme.spacing).forEach(([key, value]) => {
7 | modifiedSpacing[`docs_${key}`] = value
8 | })
9 |
10 | // modify core border radius to have "docs" prefix
11 | const modifiedRadius = {}
12 | Object.entries(coreConfig.theme.extend.borderRadius).forEach(([key, value]) => {
13 | modifiedRadius[`docs_${key}`] = value
14 | })
15 |
16 | /** @type {import('tailwindcss').Config} */
17 | module.exports = {
18 | ...coreConfig,
19 | theme: {
20 | ...coreConfig.theme,
21 | extend: {
22 | ...coreConfig.theme.extend,
23 | borderRadius: {
24 | ...coreConfig.theme.extend.borderRadius,
25 | ...modifiedRadius,
26 | },
27 | },
28 | spacing: {
29 | ...coreConfig.theme.spacing,
30 | ...modifiedSpacing,
31 | },
32 | },
33 | }
34 |
--------------------------------------------------------------------------------
/packages/tailwind/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tailwind",
3 | "version": "0.0.0",
4 | "private": true,
5 | "license": "MIT",
6 | "main": "tailwind.config.js",
7 | "devDependencies": {
8 | "eslint-config-docs": "*"
9 | },
10 | "publishConfig": {
11 | "access": "public"
12 | },
13 | "files": [
14 | "tailwind.config.js",
15 | "postcss.config.js"
16 | ],
17 | "dependencies": {
18 | "@medusajs/ui-preset": "^1.1.2",
19 | "tailwindcss-animate": "^1.0.7"
20 | },
21 | "peerDependencies": {
22 | "docs-ui": "*"
23 | }
24 | }
25 |
--------------------------------------------------------------------------------
/packages/tailwind/postcss.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | plugins: {
3 | tailwindcss: {},
4 | autoprefixer: {},
5 | },
6 | }
7 |
--------------------------------------------------------------------------------
/packages/tailwind/tailwind.config.js:
--------------------------------------------------------------------------------
1 | import path from "path"
2 | import coreConfig from "./modified.tailwind.config"
3 |
4 | // Get two levels up from require.resolve("@medusajs/ui")
5 | const root = path.join(require.resolve("docs-ui"), "../..")
6 | const uiPath = path.join(root, "**/*.{js,ts,jsx,tsx,mdx}")
7 |
8 | /** @type {import('tailwindcss').Config} */
9 | module.exports = {
10 | ...coreConfig,
11 | content: [uiPath],
12 | }
13 |
--------------------------------------------------------------------------------
/packages/tsconfig/base.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "display": "Default",
4 | "compilerOptions": {
5 | "target": "es5",
6 | "lib": ["dom", "dom.iterable", "esnext"],
7 | "allowJs": true,
8 | "skipLibCheck": true,
9 | "strict": true,
10 | "forceConsistentCasingInFileNames": true,
11 | "noEmit": true,
12 | "esModuleInterop": true,
13 | "module": "esnext",
14 | "moduleResolution": "node",
15 | "resolveJsonModule": true,
16 | "isolatedModules": true,
17 | "jsx": "preserve",
18 | "incremental": true,
19 | "downlevelIteration": true
20 | },
21 | "exclude": ["node_modules", "public"]
22 | }
23 |
--------------------------------------------------------------------------------
/packages/tsconfig/docusaurus.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "display": "Docusaurus",
4 | "extends": "@docusaurus/tsconfig",
5 | "compilerOptions": {
6 | "jsx": "react",
7 | "lib": ["es2022", "dom", "dom.iterable"],
8 | "allowJs": true
9 | }
10 | }
11 |
--------------------------------------------------------------------------------
/packages/tsconfig/nextjs.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://json.schemastore.org/tsconfig",
3 | "display": "Next.js",
4 | "extends": "./base.json",
5 | "compilerOptions": {
6 | "plugins": [
7 | {
8 | "name": "next"
9 | }
10 | ],
11 | "jsx": "react-jsx"
12 | }
13 | }
14 |
--------------------------------------------------------------------------------
/packages/tsconfig/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "tsconfig",
3 | "version": "0.0.0",
4 | "private": true,
5 | "license": "MIT",
6 | "publishConfig": {
7 | "access": "public"
8 | },
9 | "dependencies": {
10 | "@docusaurus/tsconfig": "latest"
11 | }
12 | }
13 |
--------------------------------------------------------------------------------
/packages/types/.eslintrc.cjs:
--------------------------------------------------------------------------------
1 | const path = require('path');
2 |
3 | module.exports = {
4 | extends: ['docs'],
5 | parserOptions: {
6 | project: true,
7 | tsconfigRootDir: path.join(__dirname, '..', '..'),
8 | },
9 | };
10 |
--------------------------------------------------------------------------------
/packages/types/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "types",
3 | "version": "0.0.0",
4 | "private": true,
5 | "license": "MIT",
6 | "publishConfig": {
7 | "access": "public"
8 | },
9 | "main": "./dist/index.js",
10 | "types": "./dist/index.d.ts",
11 | "module": "./dist/index.js",
12 | "exports": {
13 | ".": {
14 | "import": {
15 | "types": "./dist/index.d.ts",
16 | "default": "./dist/index.js"
17 | },
18 | "require": {
19 | "types": "./dist/index.d.ts",
20 | "default": "./dist/index.js"
21 | }
22 | }
23 | },
24 | "sideEffects": false,
25 | "files": [
26 | "dist/**"
27 | ],
28 | "scripts": {
29 | "build": "yarn clean && tsc",
30 | "clean": "rimraf dist"
31 | },
32 | "devDependencies": {
33 | "@types/node": "^20.11.20",
34 | "eslint-config-docs": "*",
35 | "rimraf": "^5.0.5",
36 | "tsconfig": "*",
37 | "typescript": "^5.3.3"
38 | },
39 | "engines": {
40 | "node": ">=18.17.0"
41 | }
42 | }
43 |
--------------------------------------------------------------------------------
/packages/types/src/api-testing.ts:
--------------------------------------------------------------------------------
1 | export type ApiMethod = 'GET' | 'POST' | 'DELETE';
2 | export type ApiAuthType = 'api_token' | 'jwt' | 'cookie_sid';
3 |
4 | export type ApiDataOptions = Record;
5 |
6 | export type ApiTestingOptions = {
7 | method: ApiMethod;
8 | url: string;
9 | authType?: ApiAuthType;
10 | authValue?: string;
11 | pathData?: ApiDataOptions;
12 | queryData?: ApiDataOptions;
13 | bodyData?: ApiDataOptions;
14 | };
15 |
--------------------------------------------------------------------------------
/packages/types/src/config.ts:
--------------------------------------------------------------------------------
1 | import { SidebarSectionItemsType } from './sidebar.js';
2 |
3 | export declare type DocsConfig = {
4 | titleSuffix?: string;
5 | baseUrl: string;
6 | sidebar: SidebarSectionItemsType;
7 | filesBasePath?: string;
8 | };
9 |
--------------------------------------------------------------------------------
/packages/types/src/general.ts:
--------------------------------------------------------------------------------
1 | export type Ref =
2 | | React.MutableRefObject
3 | | ((instance: T | null) => void);
4 |
5 | export type Key = {
6 | key?: string | number | null | undefined;
7 | };
8 |
--------------------------------------------------------------------------------
/packages/types/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './api-testing.js';
2 | export * from './config.js';
3 | export * from './general.js';
4 | export * from './sidebar.js';
5 |
--------------------------------------------------------------------------------
/packages/types/src/sidebar.ts:
--------------------------------------------------------------------------------
1 | export enum SidebarItemSections {
2 | TOP = 'top',
3 | BOTTOM = 'bottom',
4 | MOBILE = 'mobile',
5 | }
6 |
7 | export type SidebarItemType = {
8 | path?: string;
9 | title: string;
10 | pageTitle?: string;
11 | additionalElms?: React.ReactNode;
12 | children?: SidebarItemType[];
13 | loaded?: boolean;
14 | isPathHref?: boolean;
15 | linkProps?: React.AllHTMLAttributes;
16 | isChildSidebar?: boolean;
17 | hasTitleStyling?: boolean;
18 | childSidebarTitle?: string;
19 | };
20 |
21 | export type SidebarSectionItemsType = {
22 | [k in SidebarItemSections]: SidebarItemType[];
23 | } & {
24 | parentItem?: SidebarItemType;
25 | };
26 |
27 | export type RawSidebarItemType = SidebarItemType & {
28 | autogenerate_path?: string;
29 | number?: string;
30 | };
31 |
--------------------------------------------------------------------------------
/packages/types/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["tsconfig/base.json"],
3 | "compilerOptions": {
4 | "rootDir": "src",
5 | "outDir": "dist",
6 | "tsBuildInfoFile": "./dist/.tsbuildinfo-client",
7 | "noEmit": false,
8 | "lib": ["es2022"],
9 | "module": "NodeNext",
10 | "moduleResolution": "NodeNext",
11 | "declaration": true,
12 | "declarationMap": true,
13 | "esModuleInterop": true,
14 | "strict": true,
15 | "skipLibCheck": true,
16 | "resolveJsonModule": true
17 | },
18 | "include": ["src"]
19 | }
20 |
--------------------------------------------------------------------------------
/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["tsconfig/base.json"],
3 | "compilerOptions": {
4 | "rootDir": "."
5 | }
6 | }
7 |
--------------------------------------------------------------------------------
/turbo.json:
--------------------------------------------------------------------------------
1 | {
2 | "$schema": "https://turbo.build/schema.json",
3 | "tasks": {
4 | "build": {
5 | "dependsOn": ["^build"],
6 | "outputs": [
7 | ".next/**",
8 | "!.next/cache/**",
9 | ".docusaurus/**",
10 | "build/**",
11 | "dist/**"
12 | ]
13 | },
14 | "start:monorepo": {
15 | "dependsOn": ["^build", "^start:monorepo"]
16 | },
17 | "lint": {},
18 | "lint:content": {},
19 | "dev:monorepo": {
20 | "dependsOn": ["^build", "^dev:monorepo"],
21 | "cache": false,
22 | "persistent": true
23 | }
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/zerops.yml:
--------------------------------------------------------------------------------
1 | zerops:
2 | - setup: docs
3 | build:
4 | base: nodejs@20
5 | envVariables:
6 | URL: https://docs.zerops.io
7 | MEILISEARCH_HOST: https://docs-search.zerops.io
8 | MEILISEARCH_API_KEY: 77e496ff1198f1b0d397f26b14beaa9c3732f9ae2bace43ab1b67b6dc61946f8
9 | MEILISEARCH_INDEX_UID: docs
10 | buildCommands:
11 | - yarn
12 | - yarn prebuild
13 | - yarn build
14 | deployFiles:
15 | - apps/docs/build/~
16 | run:
17 | base: static
18 |
--------------------------------------------------------------------------------