├── .codecov.yml
├── .dockerignore
├── .editorconfig
├── .eslintignore
├── .eslintrc.json
├── .github
├── dependabot.yml
└── workflows
│ ├── deploy-production.yml
│ ├── deploy-staging.yml
│ ├── pull-request.yml
│ ├── semantic-release.yml
│ └── test-build-and-deploy.yml
├── .gitignore
├── .husky
└── pre-commit
├── .prettierignore
├── .prettierrc
├── .test.env
├── .vscode
├── extensions.json
└── settings.json
├── .yarn
└── releases
│ └── yarn-berry.cjs
├── .yarnrc.yml
├── Dockerfile
├── LICENSE
├── README.md
├── Storybook
├── __tests__
├── mocks.ts
├── server.ts
└── utils
│ ├── mock-use-query-result.tsx
│ ├── providers.tsx
│ ├── resize-observer.tsx
│ ├── setup-jest.tsx
│ └── wrap-with-react-hook-form.tsx
├── adr
└── fontawesome-icons.md
├── apps
├── .gitkeep
├── console-e2e
│ ├── .eslintrc.json
│ ├── cypress.json
│ ├── project.json
│ ├── src
│ │ ├── fixtures
│ │ │ └── example.json
│ │ ├── integration
│ │ │ └── app.spec.ts
│ │ └── support
│ │ │ ├── app.po.ts
│ │ │ ├── commands.ts
│ │ │ └── index.ts
│ └── tsconfig.json
├── console
│ ├── .babelrc
│ ├── .browserslistrc
│ ├── .eslintrc.json
│ ├── jest.config.ts
│ ├── postcss.config.js
│ ├── project.json
│ ├── src
│ │ ├── app
│ │ │ ├── app.spec.tsx
│ │ │ ├── app.tsx
│ │ │ ├── components
│ │ │ │ ├── preview-code.tsx
│ │ │ │ ├── redirect-overview.tsx
│ │ │ │ └── scroll-to-top.tsx
│ │ │ └── router
│ │ │ │ └── main.router.tsx
│ │ ├── assets
│ │ │ └── .gitkeep
│ │ ├── favicon.ico
│ │ ├── index.html
│ │ ├── main.tsx
│ │ └── styles.scss
│ ├── tailwind.config.js
│ ├── tsconfig.app.json
│ ├── tsconfig.json
│ ├── tsconfig.spec.json
│ ├── webpack.config.js
│ └── webpack.config.old.js
└── design-system-e2e
│ ├── .eslintrc.json
│ ├── cypress.json
│ ├── project.json
│ ├── src
│ ├── fixtures
│ │ └── example.json
│ ├── integration
│ │ └── design-system
│ │ │ └── design-system.spec.ts
│ └── support
│ │ ├── commands.ts
│ │ └── index.ts
│ └── tsconfig.json
├── babel.config.json
├── jest.config.ts
├── jest.preset.js
├── libs
├── .gitkeep
├── domains
│ ├── cloud-providers
│ │ ├── data-access
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ └── domains-cloud-providers-data-access.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── cluster-scw-control-plane-feature
│ │ │ │ ├── cluster-scw-control-plane-feature.spec.tsx
│ │ │ │ └── cluster-scw-control-plane-feature.tsx
│ │ │ │ ├── hooks
│ │ │ │ ├── use-cloud-provider-credentials
│ │ │ │ │ └── use-cloud-provider-credentials.ts
│ │ │ │ ├── use-cloud-provider-database-instance-types
│ │ │ │ │ └── use-cloud-provider-database-instance-types.ts
│ │ │ │ ├── use-cloud-provider-features
│ │ │ │ │ └── use-cloud-provider-features.ts
│ │ │ │ ├── use-cloud-provider-instance-types-karpenter
│ │ │ │ │ └── use-cloud-provider-instance-types-karpenter.ts
│ │ │ │ ├── use-cloud-provider-instance-types
│ │ │ │ │ └── use-cloud-provider-instance-types.ts
│ │ │ │ ├── use-cloud-providers
│ │ │ │ │ └── use-cloud-providers.ts
│ │ │ │ ├── use-create-cloud-provider-credential
│ │ │ │ │ └── use-create-cloud-provider-credential.ts
│ │ │ │ ├── use-delete-cloud-provider-credential
│ │ │ │ │ └── use-delete-cloud-provider-credential.ts
│ │ │ │ └── use-edit-cloud-provider-credential
│ │ │ │ │ └── use-edit-cloud-provider-credential.ts
│ │ │ │ ├── karpenter-instance-filter-modal
│ │ │ │ ├── instance-category
│ │ │ │ │ ├── instance-category.spec.tsx
│ │ │ │ │ └── instance-category.tsx
│ │ │ │ ├── karpenter-instance-filter-modal.spec.tsx
│ │ │ │ ├── karpenter-instance-filter-modal.tsx
│ │ │ │ └── utils
│ │ │ │ │ ├── convert-instance-to-karpenter-requirements.spec.ts
│ │ │ │ │ ├── convert-instance-to-karpenter-requirements.ts
│ │ │ │ │ ├── filter-instances-by-karpenter-requirements.spec.ts
│ │ │ │ │ ├── filter-instances-by-karpenter-requirements.ts
│ │ │ │ │ ├── generate-default-values.spec.ts
│ │ │ │ │ ├── generate-default-values.ts
│ │ │ │ │ ├── sort-instance-sizes.spec.ts
│ │ │ │ │ └── sort-instance-sizes.ts
│ │ │ │ └── karpenter-instance-type-preview
│ │ │ │ ├── karpenter-instance-type-preview.spec.tsx
│ │ │ │ └── karpenter-instance-type-preview.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── cluster-metrics
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── cluster-card-node-usage
│ │ │ │ ├── cluster-card-node-usage.spec.tsx
│ │ │ │ └── cluster-card-node-usage.tsx
│ │ │ │ ├── cluster-card-resources
│ │ │ │ ├── calculate-cluster-resources.spec.ts
│ │ │ │ ├── calculate-cluster-resources.ts
│ │ │ │ ├── cluster-card-resources.spec.tsx
│ │ │ │ └── cluster-card-resources.tsx
│ │ │ │ ├── cluster-card-setup
│ │ │ │ ├── cluster-card-setup.spec.tsx
│ │ │ │ └── cluster-card-setup.tsx
│ │ │ │ └── data.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── clusters
│ │ ├── data-access
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ └── domains-clusters-data-access.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── cluster-access-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── cluster-access-modal.spec.tsx.snap
│ │ │ │ ├── cluster-access-modal.spec.tsx
│ │ │ │ └── cluster-access-modal.tsx
│ │ │ │ ├── cluster-action-toolbar
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── cluster-action-toolbar.spec.tsx.snap
│ │ │ │ ├── cluster-action-toolbar.spec.tsx
│ │ │ │ └── cluster-action-toolbar.tsx
│ │ │ │ ├── cluster-avatar
│ │ │ │ └── cluster-avatar.tsx
│ │ │ │ ├── cluster-card
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── cluster-card.spec.tsx.snap
│ │ │ │ ├── cluster-card.spec.tsx
│ │ │ │ └── cluster-card.tsx
│ │ │ │ ├── cluster-credentials-modal
│ │ │ │ ├── cluster-credentials-modal.spec.tsx
│ │ │ │ └── cluster-credentials-modal.tsx
│ │ │ │ ├── cluster-delete-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── cluster-delete-modal.spec.tsx.snap
│ │ │ │ ├── cluster-delete-modal.spec.tsx
│ │ │ │ └── cluster-delete-modal.tsx
│ │ │ │ ├── cluster-installation-guide-modal
│ │ │ │ └── cluster-installation-guide-modal.tsx
│ │ │ │ ├── cluster-migration-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── cluster-migration-modal.spec.tsx.snap
│ │ │ │ ├── cluster-migration-modal.spec.tsx
│ │ │ │ └── cluster-migration-modal.tsx
│ │ │ │ ├── cluster-running-status-badge
│ │ │ │ ├── cluster-running-status-badge.spec.tsx
│ │ │ │ └── cluster-running-status-badge.tsx
│ │ │ │ ├── cluster-setup
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── cluster-setup.spec.tsx.snap
│ │ │ │ ├── cluster-setup.spec.tsx
│ │ │ │ ├── cluster-setup.tsx
│ │ │ │ └── copy-button
│ │ │ │ │ ├── copy-button.spec.tsx
│ │ │ │ │ └── copy-button.tsx
│ │ │ │ ├── cluster-terminal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── cluster-terminal.spec.tsx.snap
│ │ │ │ ├── cluster-terminal-provider.tsx
│ │ │ │ ├── cluster-terminal.spec.tsx
│ │ │ │ └── cluster-terminal.tsx
│ │ │ │ ├── cluster-type
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── cluster-type.spec.tsx.snap
│ │ │ │ ├── cluster-type.spec.tsx
│ │ │ │ └── cluster-type.tsx
│ │ │ │ ├── cluster-update-modal
│ │ │ │ ├── cluster-update-modal.spec.tsx
│ │ │ │ └── cluster-update-modal.tsx
│ │ │ │ ├── hooks
│ │ │ │ ├── use-cluster-advanced-settings
│ │ │ │ │ └── use-cluster-advanced-settings.ts
│ │ │ │ ├── use-cluster-cloud-provider-info
│ │ │ │ │ └── use-cluster-cloud-provider-info.ts
│ │ │ │ ├── use-cluster-kubeconfig
│ │ │ │ │ └── use-cluster-kubeconfig.ts
│ │ │ │ ├── use-cluster-logs
│ │ │ │ │ └── use-cluster-logs.ts
│ │ │ │ ├── use-cluster-routing-table
│ │ │ │ │ └── use-cluster-routing-table.ts
│ │ │ │ ├── use-cluster-running-status-socket
│ │ │ │ │ └── use-cluster-running-status-socket.ts
│ │ │ │ ├── use-cluster-running-status
│ │ │ │ │ └── use-cluster-running-status.ts
│ │ │ │ ├── use-cluster-status
│ │ │ │ │ └── use-cluster-status.ts
│ │ │ │ ├── use-cluster-statuses
│ │ │ │ │ └── use-cluster-statuses.ts
│ │ │ │ ├── use-cluster
│ │ │ │ │ └── use-cluster.ts
│ │ │ │ ├── use-clusters
│ │ │ │ │ └── use-clusters.ts
│ │ │ │ ├── use-create-cluster
│ │ │ │ │ └── use-create-cluster.ts
│ │ │ │ ├── use-default-advanced-settings
│ │ │ │ │ └── use-default-advanced-settings.ts
│ │ │ │ ├── use-delete-cluster
│ │ │ │ │ └── use-delete-cluster.ts
│ │ │ │ ├── use-deploy-cluster
│ │ │ │ │ └── use-deploy-cluster.ts
│ │ │ │ ├── use-download-kubeconfig
│ │ │ │ │ └── use-download-kubeconfig.ts
│ │ │ │ ├── use-edit-cloud-provider-info
│ │ │ │ │ └── use-edit-cloud-provider-info.ts
│ │ │ │ ├── use-edit-cluster-advanced-settings
│ │ │ │ │ └── use-edit-cluster-advanced-settings.ts
│ │ │ │ ├── use-edit-cluster-kubeconfig
│ │ │ │ │ └── use-edit-cluster-kubeconfig.ts
│ │ │ │ ├── use-edit-cluster
│ │ │ │ │ └── use-edit-cluster.ts
│ │ │ │ ├── use-edit-routing-table
│ │ │ │ │ └── use-edit-routing-table.ts
│ │ │ │ ├── use-installation-helm-values
│ │ │ │ │ └── use-installation-helm-values.ts
│ │ │ │ ├── use-stop-cluster
│ │ │ │ │ └── use-stop-cluster.ts
│ │ │ │ ├── use-update-karpenter-private-fargate
│ │ │ │ │ └── use-update-karpenter-private-fargate.ts
│ │ │ │ └── use-upgrade-cluster
│ │ │ │ │ └── use-upgrade-cluster.ts
│ │ │ │ ├── kubeconfig-preview
│ │ │ │ └── kubeconfig-preview.tsx
│ │ │ │ └── nodepools-resources-settings
│ │ │ │ ├── nodepool-modal
│ │ │ │ ├── nodepool-modal.spec.tsx
│ │ │ │ └── nodepool-modal.tsx
│ │ │ │ ├── nodepools-resources-settings.spec.tsx
│ │ │ │ └── nodepools-resources-settings.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── custom-domains
│ │ ├── data-access
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ └── domains-custom-domains-data-access.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ └── hooks
│ │ │ │ ├── use-create-custom-domain
│ │ │ │ └── use-create-custom-domain.ts
│ │ │ │ ├── use-custom-domains
│ │ │ │ └── use-custom-domains.ts
│ │ │ │ ├── use-delete-custom-domain
│ │ │ │ └── use-delete-custom-domain.ts
│ │ │ │ └── use-edit-custom-domain
│ │ │ │ └── use-edit-custom-domain.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── environment-logs
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── environment-stages
│ │ │ │ ├── environment-stages.spec.tsx
│ │ │ │ └── environment-stages.tsx
│ │ │ │ ├── header-environment-stages
│ │ │ │ ├── header-environment-stages.spec.tsx
│ │ │ │ └── header-environment-stages.tsx
│ │ │ │ ├── header-pre-check-logs
│ │ │ │ ├── header-pre-check-logs.spec.tsx
│ │ │ │ └── header-pre-check-logs.tsx
│ │ │ │ ├── hooks
│ │ │ │ └── use-pre-check-logs
│ │ │ │ │ └── use-pre-check-logs.ts
│ │ │ │ └── list-pre-check-logs
│ │ │ │ ├── list-pre-check-logs.spec.tsx
│ │ │ │ ├── list-pre-check-logs.tsx
│ │ │ │ └── row-pre-check-logs
│ │ │ │ ├── row-pre-check-logs.spec.tsx
│ │ │ │ └── row-pre-check-logs.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── environments
│ │ ├── data-access
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ └── domains-environments-data-access.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── create-clone-environment-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── create-clone-environment-modal.spec.tsx.snap
│ │ │ │ ├── create-clone-environment-modal.spec.tsx
│ │ │ │ └── create-clone-environment-modal.tsx
│ │ │ │ ├── environment-action-toolbar
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── environment-action-toolbar.spec.tsx.snap
│ │ │ │ ├── environment-action-toolbar.spec.tsx
│ │ │ │ └── environment-action-toolbar.tsx
│ │ │ │ ├── environment-avatar
│ │ │ │ └── environment-avatar.tsx
│ │ │ │ ├── environment-deployment-list
│ │ │ │ ├── dropdown-services
│ │ │ │ │ ├── dropdown-services.spec.tsx
│ │ │ │ │ └── dropdown-services.tsx
│ │ │ │ ├── environment-deployment-list-skeleton.tsx
│ │ │ │ ├── environment-deployment-list.spec.tsx
│ │ │ │ ├── environment-deployment-list.tsx
│ │ │ │ └── table-filter-trigger-by
│ │ │ │ │ ├── table-filter-trigger-by.spec.tsx
│ │ │ │ │ └── table-filter-trigger-by.tsx
│ │ │ │ ├── environment-deployment-status-label
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── environment-deployment-status-label.spec.tsx.snap
│ │ │ │ ├── environment-deployment-status-label.spec.tsx
│ │ │ │ └── environment-deployment-status-label.tsx
│ │ │ │ ├── environment-list
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── environment-list.spec.tsx.snap
│ │ │ │ ├── environment-list-skeleton.tsx
│ │ │ │ ├── environment-list.spec.tsx
│ │ │ │ └── environment-list.tsx
│ │ │ │ ├── environment-mode
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── environment-mode.spec.tsx.snap
│ │ │ │ ├── environment-mode.spec.tsx
│ │ │ │ └── environment-mode.tsx
│ │ │ │ ├── environment-state-chip
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── environment-state-chip.spec.tsx.snap
│ │ │ │ ├── environment-state-chip.spec.tsx
│ │ │ │ └── environment-state-chip.tsx
│ │ │ │ ├── hooks
│ │ │ │ ├── use-attach-service-to-deployment-stage
│ │ │ │ │ └── use-attach-service-to-deployment-stage.ts
│ │ │ │ ├── use-cancel-deployment-environment
│ │ │ │ │ └── use-cancel-deployment-environment.ts
│ │ │ │ ├── use-cancel-deployment-queue-environment
│ │ │ │ │ └── use-cancel-deployment-queue-environment.ts
│ │ │ │ ├── use-check-dockerfile
│ │ │ │ │ └── use-check-dockerfile.ts
│ │ │ │ ├── use-clone-environment
│ │ │ │ │ └── use-clone-environment.ts
│ │ │ │ ├── use-create-deployment-stage
│ │ │ │ │ └── use-create-deployment-stage.ts
│ │ │ │ ├── use-create-environment
│ │ │ │ │ └── use-create-environment.ts
│ │ │ │ ├── use-delete-deployment-stage
│ │ │ │ │ └── use-delete-deployment-stage.ts
│ │ │ │ ├── use-delete-environment
│ │ │ │ │ └── use-delete-environment.ts
│ │ │ │ ├── use-deploy-all-services
│ │ │ │ │ └── use-deploy-all-services.ts
│ │ │ │ ├── use-deploy-environment
│ │ │ │ │ └── use-deploy-environment.ts
│ │ │ │ ├── use-deployment-history-execution-id
│ │ │ │ │ └── use-deployment-history-execution-id.ts
│ │ │ │ ├── use-deployment-history
│ │ │ │ │ └── use-deployment-history.ts
│ │ │ │ ├── use-deployment-queue
│ │ │ │ │ └── use-deployment-queue.ts
│ │ │ │ ├── use-deployment-rule
│ │ │ │ │ └── use-deployment-rule.ts
│ │ │ │ ├── use-deployment-stages
│ │ │ │ │ └── use-deployment-stages.ts
│ │ │ │ ├── use-deployment-status
│ │ │ │ │ └── use-deployment-status.ts
│ │ │ │ ├── use-edit-deployment-rule
│ │ │ │ │ └── use-edit-deployment-rule.ts
│ │ │ │ ├── use-edit-deployment-stage
│ │ │ │ │ └── use-edit-deployment-stage.ts
│ │ │ │ ├── use-edit-environment
│ │ │ │ │ └── use-edit-environment.ts
│ │ │ │ ├── use-environment
│ │ │ │ │ └── use-environment.ts
│ │ │ │ ├── use-environments
│ │ │ │ │ └── use-environments.ts
│ │ │ │ ├── use-export-terraform
│ │ │ │ │ └── use-export-terraform.ts
│ │ │ │ ├── use-lifecycle-template
│ │ │ │ │ └── use-lifecycle-template.ts
│ │ │ │ ├── use-lifecycle-templates
│ │ │ │ │ └── use-lifecycle-templates.ts
│ │ │ │ ├── use-list-database-configurations
│ │ │ │ │ └── use-list-database-configurations.ts
│ │ │ │ ├── use-list-deployment-stages
│ │ │ │ │ └── use-list-deployment-stages.ts
│ │ │ │ ├── use-list-statuses
│ │ │ │ │ └── use-list-statuses.ts
│ │ │ │ ├── use-move-deployment-stage
│ │ │ │ │ └── use-move-deployment-stage.ts
│ │ │ │ ├── use-outdated-services
│ │ │ │ │ └── use-outdated-services.ts
│ │ │ │ ├── use-running-status
│ │ │ │ │ └── use-running-status.ts
│ │ │ │ ├── use-service-count
│ │ │ │ │ └── use-service-count.ts
│ │ │ │ └── use-stop-environment
│ │ │ │ │ └── use-stop-environment.ts
│ │ │ │ ├── need-redeploy-flag
│ │ │ │ ├── need-redeploy-flag.spec.tsx
│ │ │ │ └── need-redeploy-flag.tsx
│ │ │ │ ├── terraform-export-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── terraform-export-modal.spec.tsx.snap
│ │ │ │ ├── terraform-export-modal.spec.tsx
│ │ │ │ └── terraform-export-modal.tsx
│ │ │ │ └── update-all-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ └── update-all-modal.spec.tsx.snap
│ │ │ │ ├── update-all-modal.spec.tsx
│ │ │ │ └── update-all-modal.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── event
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ └── event.queries.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── organizations
│ │ ├── data-access
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ └── domains-organizations-data-access.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── annotation-create-edit-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── annotation-create-edit-modal.spec.tsx.snap
│ │ │ │ ├── annotation-create-edit-modal.spec.tsx
│ │ │ │ └── annotation-create-edit-modal.tsx
│ │ │ │ ├── annotation-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── annotation-setting.spec.tsx.snap
│ │ │ │ ├── annotation-setting.spec.tsx
│ │ │ │ └── annotation-setting.tsx
│ │ │ │ ├── container-registry-create-edit-modal
│ │ │ │ ├── container-registry-create-edit-modal.spec.tsx
│ │ │ │ └── container-registry-create-edit-modal.tsx
│ │ │ │ ├── container-registry-form
│ │ │ │ ├── container-registry-form.spec.tsx
│ │ │ │ └── container-registry-form.tsx
│ │ │ │ ├── container-registry-services-list-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── container-registry-services-list-modal.spec.tsx.snap
│ │ │ │ ├── container-registry-services-list-modal.spec.tsx
│ │ │ │ └── container-registry-services-list-modal.tsx
│ │ │ │ ├── git-branch-settings
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── git-branch-settings.spec.tsx.snap
│ │ │ │ ├── git-branch-settings.spec.tsx
│ │ │ │ └── git-branch-settings.tsx
│ │ │ │ ├── git-provider-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── git-provider-setting.spec.tsx.snap
│ │ │ │ ├── git-provider-setting.spec.tsx
│ │ │ │ └── git-provider-setting.tsx
│ │ │ │ ├── git-public-repository-settings
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── git-public-repository-settings.spec.tsx.snap
│ │ │ │ ├── git-public-repository-settings.spec.tsx
│ │ │ │ └── git-public-repository-settings.tsx
│ │ │ │ ├── git-repository-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── git-repository-setting.spec.tsx.snap
│ │ │ │ ├── git-repository-setting.spec.tsx
│ │ │ │ └── git-repository-setting.tsx
│ │ │ │ ├── git-token-create-edit-modal
│ │ │ │ ├── git-token-create-edit-modal.spec.tsx
│ │ │ │ └── git-token-create-edit-modal.tsx
│ │ │ │ ├── git-token-list
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── git-token-list.spec.tsx.snap
│ │ │ │ ├── git-token-list.spec.tsx
│ │ │ │ └── git-token-list.tsx
│ │ │ │ ├── git-token-services-list-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── git-token-services-list-modal.spec.tsx.snap
│ │ │ │ ├── git-token-services-list-modal.spec.tsx
│ │ │ │ └── git-token-services-list-modal.tsx
│ │ │ │ ├── helm-repository-create-edit-modal
│ │ │ │ ├── helm-repository-create-edit-modal.spec.tsx
│ │ │ │ └── helm-repository-create-edit-modal.tsx
│ │ │ │ ├── helm-repository-services-list-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── helm-repository-services-list-modal.spec.tsx.snap
│ │ │ │ ├── helm-repository-services-list-modal.spec.tsx
│ │ │ │ └── helm-repository-services-list-modal.tsx
│ │ │ │ ├── hooks
│ │ │ │ ├── use-accept-invite-member
│ │ │ │ │ └── use-accept-invite-member.ts
│ │ │ │ ├── use-add-credit-card
│ │ │ │ │ └── use-add-credit-card.ts
│ │ │ │ ├── use-add-credit-code
│ │ │ │ │ └── use-add-credit-code.ts
│ │ │ │ ├── use-annotations-group-associated-items
│ │ │ │ │ └── use-annotations-group-associated-items.ts
│ │ │ │ ├── use-annotations-groups
│ │ │ │ │ └── use-annotations-groups.ts
│ │ │ │ ├── use-api-tokens
│ │ │ │ │ └── use-api-tokens.ts
│ │ │ │ ├── use-auth-providers
│ │ │ │ │ └── use-auth-providers.ts
│ │ │ │ ├── use-available-container-registries
│ │ │ │ │ └── use-available-container-registries.ts
│ │ │ │ ├── use-available-helm-repositories
│ │ │ │ │ └── use-available-helm-repositories.ts
│ │ │ │ ├── use-available-roles
│ │ │ │ │ └── use-available-roles.ts
│ │ │ │ ├── use-billing-info
│ │ │ │ │ └── use-billing-info.ts
│ │ │ │ ├── use-branches
│ │ │ │ │ └── use-branches.ts
│ │ │ │ ├── use-connect-github-app
│ │ │ │ │ └── use-connect-github-app.ts
│ │ │ │ ├── use-container-images
│ │ │ │ │ └── use-container-images.ts
│ │ │ │ ├── use-container-registries
│ │ │ │ │ └── use-container-registries.ts
│ │ │ │ ├── use-container-registry-associated-services
│ │ │ │ │ └── use-container-registry-associated-services.ts
│ │ │ │ ├── use-container-registry
│ │ │ │ │ └── use-container-registry.ts
│ │ │ │ ├── use-container-versions
│ │ │ │ │ ├── use-container-versions.spec.ts
│ │ │ │ │ └── use-container-versions.ts
│ │ │ │ ├── use-create-annotations-group
│ │ │ │ │ └── use-create-annotations-group.ts
│ │ │ │ ├── use-create-api-token
│ │ │ │ │ └── use-create-api-token.ts
│ │ │ │ ├── use-create-container-registry
│ │ │ │ │ └── use-create-container-registry.ts
│ │ │ │ ├── use-create-custom-role
│ │ │ │ │ └── use-create-custom-role.ts
│ │ │ │ ├── use-create-git-token
│ │ │ │ │ └── use-create-git-token.ts
│ │ │ │ ├── use-create-helm-repository
│ │ │ │ │ └── use-create-helm-repository.ts
│ │ │ │ ├── use-create-invite-member
│ │ │ │ │ └── use-create-invite-member.ts
│ │ │ │ ├── use-create-labels-group
│ │ │ │ │ └── use-create-labels-group.ts
│ │ │ │ ├── use-create-organization
│ │ │ │ │ └── use-create-organization.ts
│ │ │ │ ├── use-create-webhook
│ │ │ │ │ └── use-create-webhook.ts
│ │ │ │ ├── use-credit-cards
│ │ │ │ │ └── use-credit-cards.ts
│ │ │ │ ├── use-current-cost
│ │ │ │ │ └── use-current-cost.ts
│ │ │ │ ├── use-custom-role
│ │ │ │ │ └── use-custom-role.ts
│ │ │ │ ├── use-delete-annotations-group
│ │ │ │ │ └── use-delete-annotations-group.ts
│ │ │ │ ├── use-delete-api-token
│ │ │ │ │ └── use-delete-api-token.ts
│ │ │ │ ├── use-delete-container-registry
│ │ │ │ │ └── use-delete-container-registry.ts
│ │ │ │ ├── use-delete-credit-card
│ │ │ │ │ └── use-delete-credit-card.ts
│ │ │ │ ├── use-delete-custom-role
│ │ │ │ │ └── use-delete-custom-role.ts
│ │ │ │ ├── use-delete-git-token
│ │ │ │ │ └── use-delete-git-token.ts
│ │ │ │ ├── use-delete-helm-repository
│ │ │ │ │ └── use-delete-helm-repository.ts
│ │ │ │ ├── use-delete-invite-member
│ │ │ │ │ └── use-delete-invite-member.ts
│ │ │ │ ├── use-delete-labels-group
│ │ │ │ │ └── use-delete-labels-group.ts
│ │ │ │ ├── use-delete-member
│ │ │ │ │ └── use-delete-member.ts
│ │ │ │ ├── use-delete-organization
│ │ │ │ │ └── use-delete-organization.ts
│ │ │ │ ├── use-delete-webhook
│ │ │ │ │ └── use-delete-webhook.ts
│ │ │ │ ├── use-disconnect-github-app
│ │ │ │ │ └── use-disconnect-github-app.ts
│ │ │ │ ├── use-edit-annotations-group
│ │ │ │ │ └── use-edit-annotations-group.ts
│ │ │ │ ├── use-edit-billing-info
│ │ │ │ │ └── use-edit-billing-info.ts
│ │ │ │ ├── use-edit-container-registry
│ │ │ │ │ └── use-edit-container-registry.ts
│ │ │ │ ├── use-edit-custom-role
│ │ │ │ │ └── use-edit-custom-role.ts
│ │ │ │ ├── use-edit-git-token
│ │ │ │ │ └── use-edit-git-token.ts
│ │ │ │ ├── use-edit-helm-repository
│ │ │ │ │ └── use-edit-helm-repository.ts
│ │ │ │ ├── use-edit-labels-group
│ │ │ │ │ └── use-edit-labels-group.ts
│ │ │ │ ├── use-edit-member-role
│ │ │ │ │ └── use-edit-member-role.ts
│ │ │ │ ├── use-edit-organization
│ │ │ │ │ └── use-edit-organization.ts
│ │ │ │ ├── use-edit-webhook
│ │ │ │ │ └── use-edit-webhook.ts
│ │ │ │ ├── use-generate-billing-usage-report
│ │ │ │ │ └── use-generate-billing-usage-report.ts
│ │ │ │ ├── use-git-token-associated-services
│ │ │ │ │ └── use-git-token-associated-services.ts
│ │ │ │ ├── use-git-tokens
│ │ │ │ │ └── use-git-tokens.ts
│ │ │ │ ├── use-helm-repositories
│ │ │ │ │ └── use-helm-repositories.ts
│ │ │ │ ├── use-helm-repository-associated-services
│ │ │ │ │ └── use-helm-repository-associated-services.ts
│ │ │ │ ├── use-helm-repository
│ │ │ │ │ └── use-helm-repository.ts
│ │ │ │ ├── use-invite-members
│ │ │ │ │ └── use-invite-members.ts
│ │ │ │ ├── use-invoice-url
│ │ │ │ │ └── use-invoice-url.ts
│ │ │ │ ├── use-invoices
│ │ │ │ │ └── use-invoices.ts
│ │ │ │ ├── use-labels-group-associated-items
│ │ │ │ │ └── use-labels-group-associated-items.ts
│ │ │ │ ├── use-labels-groups
│ │ │ │ │ └── use-labels-groups.ts
│ │ │ │ ├── use-member-invitation
│ │ │ │ │ └── use-member-invitation.ts
│ │ │ │ ├── use-members
│ │ │ │ │ └── use-members.ts
│ │ │ │ ├── use-organization
│ │ │ │ │ └── use-organization.ts
│ │ │ │ ├── use-organizations
│ │ │ │ │ └── use-organizations.ts
│ │ │ │ ├── use-repositories
│ │ │ │ │ └── use-repositories.ts
│ │ │ │ ├── use-transfer-ownership-member-role
│ │ │ │ │ └── use-transfer-ownership-member-role.ts
│ │ │ │ └── use-webhooks
│ │ │ │ │ └── use-webhooks.ts
│ │ │ │ ├── label-annotation-items-list-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── label-annotation-items-list-modal.spec.tsx.snap
│ │ │ │ ├── label-annotation-items-list-modal.spec.tsx
│ │ │ │ └── label-annotation-items-list-modal.tsx
│ │ │ │ ├── label-create-edit-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── label-create-edit-modal.spec.tsx.snap
│ │ │ │ ├── label-create-edit-modal.spec.tsx
│ │ │ │ └── label-create-edit-modal.tsx
│ │ │ │ └── label-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ └── label-setting.spec.tsx.snap
│ │ │ │ ├── label-setting.spec.tsx
│ │ │ │ └── label-setting.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── projects
│ │ ├── data-access
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ └── domains-projects-data-access.ts
│ │ │ ├── tsconfig.json
│ │ │ └── tsconfig.lib.json
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── create-project-modal
│ │ │ │ ├── create-project-modal.spec.tsx
│ │ │ │ └── create-project-modal.tsx
│ │ │ │ ├── hooks
│ │ │ │ ├── use-create-deployment-rule
│ │ │ │ │ └── use-create-deployment-rule.ts
│ │ │ │ ├── use-create-project
│ │ │ │ │ └── use-create-project.ts
│ │ │ │ ├── use-delete-deployment-rule
│ │ │ │ │ └── use-delete-deployment-rule.ts
│ │ │ │ ├── use-delete-project
│ │ │ │ │ └── use-delete-project.ts
│ │ │ │ ├── use-deployment-rule
│ │ │ │ │ └── use-deployment-rule.ts
│ │ │ │ ├── use-edit-deployment-rule
│ │ │ │ │ └── use-edit-deployment-rule.ts
│ │ │ │ ├── use-edit-deployment-rules-priority-order
│ │ │ │ │ └── use-edit-deployment-rules-priority-order.ts
│ │ │ │ ├── use-edit-project
│ │ │ │ │ └── use-edit-project.ts
│ │ │ │ ├── use-list-deployment-rules
│ │ │ │ │ └── use-list-deployment-rules.ts
│ │ │ │ ├── use-project
│ │ │ │ │ └── use-project.ts
│ │ │ │ └── use-projects
│ │ │ │ │ └── use-projects.ts
│ │ │ │ └── project-avatar
│ │ │ │ └── project-avatar.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── service-helm
│ │ ├── data-access
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ └── domains-service-helm-data-access.ts
│ │ │ ├── tsconfig.json
│ │ │ └── tsconfig.lib.json
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── deployment-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── deployment-setting.spec.tsx.snap
│ │ │ │ ├── deployment-setting.spec.tsx
│ │ │ │ └── deployment-setting.tsx
│ │ │ │ ├── helm-default-values-preview
│ │ │ │ ├── helm-default-values-preview.spec.tsx
│ │ │ │ └── helm-default-values-preview.tsx
│ │ │ │ ├── hooks
│ │ │ │ ├── use-create-helm-service
│ │ │ │ │ └── use-create-helm-service.ts
│ │ │ │ ├── use-helm-charts
│ │ │ │ │ └── use-helm-charts.ts
│ │ │ │ ├── use-helm-default-values
│ │ │ │ │ └── use-helm-default-values.ts
│ │ │ │ ├── use-helm-repositories
│ │ │ │ │ └── use-helm-repositories.ts
│ │ │ │ └── use-kubernetes-services
│ │ │ │ │ └── use-kubernetes-services.tsx
│ │ │ │ ├── networking-port-setting-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── networking-port-setting-modal.spec.tsx.snap
│ │ │ │ ├── networking-port-setting-modal.spec.tsx
│ │ │ │ └── networking-port-setting-modal.tsx
│ │ │ │ ├── networking-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── networking-setting.spec.tsx.snap
│ │ │ │ ├── networking-setting.spec.tsx
│ │ │ │ └── networking-setting.tsx
│ │ │ │ ├── source-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── source-setting.spec.tsx.snap
│ │ │ │ ├── source-setting.spec.tsx
│ │ │ │ └── source-setting.tsx
│ │ │ │ ├── values-override-arguments-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── values-override-arguments-setting.spec.tsx.snap
│ │ │ │ ├── values-override-arguments-setting.spec.tsx
│ │ │ │ └── values-override-arguments-setting.tsx
│ │ │ │ ├── values-override-files-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── values-override-files-setting.spec.tsx.snap
│ │ │ │ ├── values-override-files-setting.spec.tsx
│ │ │ │ └── values-override-files-setting.tsx
│ │ │ │ ├── values-override-yaml-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── values-override-yaml-modal.spec.tsx.snap
│ │ │ │ ├── values-override-yaml-modal.spec.tsx
│ │ │ │ └── values-override-yaml-modal.tsx
│ │ │ │ └── values-override-yaml-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ └── values-override-yaml-setting.spec.tsx.snap
│ │ │ │ ├── values-override-yaml-setting.spec.tsx
│ │ │ │ └── values-override-yaml-setting.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── service-logs
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── breadcrumb-deployment-history
│ │ │ │ ├── breadcrumb-deployment-history.spec.tsx
│ │ │ │ └── breadcrumb-deployment-history.tsx
│ │ │ │ ├── breadcrumb-deployment-logs
│ │ │ │ ├── breadcrumb-deployment-logs.spec.tsx
│ │ │ │ ├── breadcrumb-deployment-logs.tsx
│ │ │ │ └── stage-item
│ │ │ │ │ └── stage-item.tsx
│ │ │ │ ├── deployment-logs-placeholder
│ │ │ │ ├── deployment-logs-placeholder.spec.tsx
│ │ │ │ └── deployment-logs-placeholder.tsx
│ │ │ │ ├── header-logs
│ │ │ │ ├── header-logs.spec.tsx
│ │ │ │ └── header-logs.tsx
│ │ │ │ ├── hooks
│ │ │ │ ├── use-deployment-history
│ │ │ │ │ └── use-deployment-history.ts
│ │ │ │ ├── use-deployment-logs
│ │ │ │ │ └── use-deployment-logs.ts
│ │ │ │ ├── use-deployment-status
│ │ │ │ │ └── use-deployment-status.ts
│ │ │ │ └── use-service-logs
│ │ │ │ │ └── use-service-logs.ts
│ │ │ │ ├── list-deployment-logs
│ │ │ │ ├── filters-stage-step
│ │ │ │ │ ├── filters-stage-step.spec.tsx
│ │ │ │ │ └── filters-stage-step.tsx
│ │ │ │ ├── list-deployment-logs.spec.tsx
│ │ │ │ ├── list-deployment-logs.tsx
│ │ │ │ └── row-deployment-logs
│ │ │ │ │ ├── row-deployment-logs.spec.tsx
│ │ │ │ │ └── row-deployment-logs.tsx
│ │ │ │ ├── list-service-logs
│ │ │ │ ├── list-service-logs.spec.tsx
│ │ │ │ ├── list-service-logs.tsx
│ │ │ │ ├── row-infra-logs
│ │ │ │ │ ├── row-infra-logs.spec.tsx
│ │ │ │ │ └── row-infra-logs.tsx
│ │ │ │ ├── row-service-logs
│ │ │ │ │ ├── row-service-logs.spec.tsx
│ │ │ │ │ ├── row-service-logs.tsx
│ │ │ │ │ └── style.scss
│ │ │ │ ├── use-pod-color.spec.tsx
│ │ │ │ └── use-pod-color.tsx
│ │ │ │ ├── progress-indicator
│ │ │ │ ├── progress-indicator.spec.tsx
│ │ │ │ └── progress-indicator.tsx
│ │ │ │ ├── service-logs-placeholder
│ │ │ │ ├── service-logs-placeholder.spec.tsx
│ │ │ │ └── service-logs-placeholder.tsx
│ │ │ │ ├── service-stage-ids-context
│ │ │ │ ├── service-stage-ids-context.spec.tsx
│ │ │ │ └── service-stage-ids-context.tsx
│ │ │ │ ├── show-new-logs-button
│ │ │ │ ├── show-new-logs-button.spec.tsx
│ │ │ │ └── show-new-logs-button.tsx
│ │ │ │ ├── show-previous-logs-button
│ │ │ │ ├── show-previous-logs-button.spec.tsx
│ │ │ │ └── show-previous-logs-button.tsx
│ │ │ │ ├── sidebar-pod-statuses
│ │ │ │ ├── donut-chart
│ │ │ │ │ ├── donut-chart.spec.tsx
│ │ │ │ │ └── donut-chart.tsx
│ │ │ │ ├── sidebar-pod-statuses.spec.tsx
│ │ │ │ └── sidebar-pod-statuses.tsx
│ │ │ │ └── update-time-context
│ │ │ │ ├── update-time-context.spec.tsx
│ │ │ │ └── update-time-context.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── services
│ │ ├── data-access
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ └── domains-services-data-access.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── advanced-settings
│ │ │ │ ├── advanced-settings.spec.tsx
│ │ │ │ └── advanced-settings.tsx
│ │ │ │ ├── auto-deploy-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── auto-deploy-setting.spec.tsx.snap
│ │ │ │ ├── auto-deploy-setting.spec.tsx
│ │ │ │ └── auto-deploy-setting.tsx
│ │ │ │ ├── build-settings
│ │ │ │ └── build-settings.tsx
│ │ │ │ ├── confirmation-cancel-lifecycle-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── confirmation-cancel-lifecycle-modal.spec.tsx.snap
│ │ │ │ ├── confirmation-cancel-lifecycle-modal.spec.tsx
│ │ │ │ └── confirmation-cancel-lifecycle-modal.tsx
│ │ │ │ ├── dockerfile-raw-modal
│ │ │ │ └── dockerfile-raw-modal.tsx
│ │ │ │ ├── dockerfile-settings
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── dockerfile-settings.spec.tsx.snap
│ │ │ │ ├── dockerfile-settings.spec.tsx
│ │ │ │ └── dockerfile-settings.tsx
│ │ │ │ ├── general-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── general-setting.spec.tsx.snap
│ │ │ │ ├── general-setting.spec.tsx
│ │ │ │ └── general-setting.tsx
│ │ │ │ ├── hooks
│ │ │ │ ├── use-advanced-settings
│ │ │ │ │ └── use-advanced-settings.ts
│ │ │ │ ├── use-cancel-deployment-queue-service
│ │ │ │ │ └── use-cancel-deployment-queue-service.ts
│ │ │ │ ├── use-cancel-deployment-service
│ │ │ │ │ └── use-cancel-deployment-service.ts
│ │ │ │ ├── use-check-custom-domains
│ │ │ │ │ └── use-check-custom-domains.ts
│ │ │ │ ├── use-clean-failed-jobs
│ │ │ │ │ └── use-clean-failed-jobs.ts
│ │ │ │ ├── use-clone-service
│ │ │ │ │ └── use-clone-service.ts
│ │ │ │ ├── use-commits
│ │ │ │ │ └── use-commits.ts
│ │ │ │ ├── use-create-deployment-restriction
│ │ │ │ │ └── use-create-deployment-restriction.ts
│ │ │ │ ├── use-create-service
│ │ │ │ │ └── use-create-service.ts
│ │ │ │ ├── use-default-advanced-settings
│ │ │ │ │ └── use-default-advanced-settings.ts
│ │ │ │ ├── use-delete-all-services
│ │ │ │ │ └── use-delete-all-services.ts
│ │ │ │ ├── use-delete-deployment-restriction
│ │ │ │ │ └── use-delete-deployment-restriction.ts
│ │ │ │ ├── use-delete-service
│ │ │ │ │ └── use-delete-service.ts
│ │ │ │ ├── use-deploy-all-services
│ │ │ │ │ └── use-deploy-all-services.ts
│ │ │ │ ├── use-deploy-service
│ │ │ │ │ └── use-deploy-service.ts
│ │ │ │ ├── use-deployment-history
│ │ │ │ │ └── use-deployment-history.ts
│ │ │ │ ├── use-deployment-queue
│ │ │ │ │ └── use-deployment-queue.ts
│ │ │ │ ├── use-deployment-restrictions
│ │ │ │ │ └── use-deployment-restrictions.ts
│ │ │ │ ├── use-deployment-status
│ │ │ │ │ └── use-deployment-status.ts
│ │ │ │ ├── use-edit-advanced-settings
│ │ │ │ │ └── use-edit-advanced-settings.ts
│ │ │ │ ├── use-edit-deployment-restriction
│ │ │ │ │ └── use-edit-deployment-restriction.ts
│ │ │ │ ├── use-edit-service
│ │ │ │ │ └── use-edit-service.ts
│ │ │ │ ├── use-environments
│ │ │ │ │ └── use-environments.ts
│ │ │ │ ├── use-favorite-services
│ │ │ │ │ ├── use-favorite-services.spec.ts
│ │ │ │ │ └── use-favorite-services.ts
│ │ │ │ ├── use-helm-charts-versions
│ │ │ │ │ └── use-helm-charts-versions.ts
│ │ │ │ ├── use-last-deployed-commit
│ │ │ │ │ └── use-last-deployed-commit.ts
│ │ │ │ ├── use-links
│ │ │ │ │ └── use-links.ts
│ │ │ │ ├── use-list-statuses
│ │ │ │ │ └── use-list-statuses.ts
│ │ │ │ ├── use-list-timezone
│ │ │ │ │ └── use-list-timezone.ts
│ │ │ │ ├── use-master-credentials
│ │ │ │ │ └── use-master-credentials.ts
│ │ │ │ ├── use-metrics
│ │ │ │ │ └── use-metrics.ts
│ │ │ │ ├── use-recent-services
│ │ │ │ │ ├── use-recent-services.spec.ts
│ │ │ │ │ └── use-recent-services.ts
│ │ │ │ ├── use-restart-all-services
│ │ │ │ │ └── use-restart-all-services.ts
│ │ │ │ ├── use-restart-service
│ │ │ │ │ └── use-restart-service.ts
│ │ │ │ ├── use-running-status
│ │ │ │ │ └── use-running-status.ts
│ │ │ │ ├── use-service-statuses
│ │ │ │ │ └── use-service-statuses.ts
│ │ │ │ ├── use-service-type
│ │ │ │ │ └── use-service-type.ts
│ │ │ │ ├── use-service
│ │ │ │ │ └── use-service.ts
│ │ │ │ ├── use-services
│ │ │ │ │ └── use-services.ts
│ │ │ │ ├── use-stop-all-services
│ │ │ │ │ └── use-stop-all-services.ts
│ │ │ │ └── use-stop-service
│ │ │ │ │ └── use-stop-service.ts
│ │ │ │ ├── last-commit-author
│ │ │ │ └── last-commit-author.tsx
│ │ │ │ ├── last-commit
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── last-commit.spec.tsx.snap
│ │ │ │ ├── last-commit.spec.tsx
│ │ │ │ └── last-commit.tsx
│ │ │ │ ├── last-version
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── last-version.spec.tsx.snap
│ │ │ │ ├── last-version.spec.tsx
│ │ │ │ └── last-version.tsx
│ │ │ │ ├── need-redeploy-flag
│ │ │ │ ├── need-redeploy-flag.spec.tsx
│ │ │ │ └── need-redeploy-flag.tsx
│ │ │ │ ├── pod-details
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── pod-details.spec.tsx.snap
│ │ │ │ ├── pod-details.spec.tsx
│ │ │ │ └── pod-details.tsx
│ │ │ │ ├── pod-statuses-callout
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── pod-statuses-callout.spec.tsx.snap
│ │ │ │ ├── pod-statuses-callout.spec.tsx
│ │ │ │ └── pod-statuses-callout.tsx
│ │ │ │ ├── pods-metrics
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── pods-metrics.spec.tsx.snap
│ │ │ │ ├── empty-state.tsx
│ │ │ │ ├── pods-metrics-skeleton.tsx
│ │ │ │ ├── pods-metrics.spec.tsx
│ │ │ │ └── pods-metrics.tsx
│ │ │ │ ├── redeploy-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── redeploy-modal.spec.tsx.snap
│ │ │ │ ├── redeploy-modal.spec.tsx
│ │ │ │ └── redeploy-modal.tsx
│ │ │ │ ├── select-commit-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── select-commit-modal.spec.tsx.snap
│ │ │ │ ├── select-commit-modal.spec.tsx
│ │ │ │ └── select-commit-modal.tsx
│ │ │ │ ├── select-version-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── select-version-modal.spec.tsx.snap
│ │ │ │ ├── select-version-modal.spec.tsx
│ │ │ │ └── select-version-modal.tsx
│ │ │ │ ├── service-access-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── service-access-modal.spec.tsx.snap
│ │ │ │ ├── copy-button
│ │ │ │ │ ├── copy-button.spec.tsx
│ │ │ │ │ └── copy-button.tsx
│ │ │ │ ├── section-expand
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── section-expand.spec.tsx.snap
│ │ │ │ │ ├── section-expand.spec.tsx
│ │ │ │ │ └── section-expand.tsx
│ │ │ │ ├── service-access-modal.spec.tsx
│ │ │ │ └── service-access-modal.tsx
│ │ │ │ ├── service-action-toolbar
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── service-action-toolbar.spec.tsx.snap
│ │ │ │ ├── service-action-toolbar.spec.tsx
│ │ │ │ └── service-action-toolbar.tsx
│ │ │ │ ├── service-avatar-switcher
│ │ │ │ └── service-avatar-switcher.tsx
│ │ │ │ ├── service-avatar
│ │ │ │ └── service-avatar.tsx
│ │ │ │ ├── service-clone-modal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── service-clone-modal.spec.tsx.snap
│ │ │ │ ├── service-clone-modal.spec.tsx
│ │ │ │ └── service-clone-modal.tsx
│ │ │ │ ├── service-deployment-list
│ │ │ │ ├── service-deployment-list-skeleton.tsx
│ │ │ │ ├── service-deployment-list.spec.tsx
│ │ │ │ ├── service-deployment-list.tsx
│ │ │ │ └── table-filter-trigger-by
│ │ │ │ │ ├── table-filter-trigger-by.spec.tsx
│ │ │ │ │ └── table-filter-trigger-by.tsx
│ │ │ │ ├── service-deployment-status-label
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── service-deployment-status-label.spec.tsx.snap
│ │ │ │ ├── service-deployment-status-label.spec.tsx
│ │ │ │ └── service-deployment-status-label.tsx
│ │ │ │ ├── service-details
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── service-details.spec.tsx.snap
│ │ │ │ ├── service-details-skeleton.tsx
│ │ │ │ ├── service-details.spec.tsx
│ │ │ │ └── service-details.tsx
│ │ │ │ ├── service-icon
│ │ │ │ └── service-icon.tsx
│ │ │ │ ├── service-links-popover
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── service-links-popover.spec.tsx.snap
│ │ │ │ ├── service-links-popover.spec.tsx
│ │ │ │ └── service-links-popover.tsx
│ │ │ │ ├── service-list
│ │ │ │ ├── __snapshots__
│ │ │ │ │ ├── service-list-action-bar.spec.tsx.snap
│ │ │ │ │ └── service-list.spec.tsx.snap
│ │ │ │ ├── service-list-action-bar.spec.tsx
│ │ │ │ ├── service-list-action-bar.tsx
│ │ │ │ ├── service-list-skeleton.tsx
│ │ │ │ ├── service-list.spec.tsx
│ │ │ │ └── service-list.tsx
│ │ │ │ ├── service-state-chip
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── service-state-chip.spec.tsx.snap
│ │ │ │ ├── service-state-chip.spec.tsx
│ │ │ │ └── service-state-chip.tsx
│ │ │ │ ├── service-template-indicator
│ │ │ │ └── service-template-indicator.tsx
│ │ │ │ ├── service-terminal
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── service-terminal.spec.tsx.snap
│ │ │ │ ├── input-search
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── input-search.spec.tsx.snap
│ │ │ │ │ ├── input-search.spec.tsx
│ │ │ │ │ └── input-search.tsx
│ │ │ │ ├── service-terminal-provider.tsx
│ │ │ │ ├── service-terminal.spec.tsx
│ │ │ │ └── service-terminal.tsx
│ │ │ │ └── timezone-setting
│ │ │ │ ├── __snapshots__
│ │ │ │ └── timezone-setting.spec.tsx.snap
│ │ │ │ ├── timezone-setting.spec.tsx
│ │ │ │ └── timezone-setting.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── users-sign-up
│ │ ├── data-access
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ └── domains-users-sign-up-data-access.ts
│ │ │ ├── tsconfig.json
│ │ │ └── tsconfig.lib.json
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ └── hooks
│ │ │ │ ├── use-create-user-sign-up
│ │ │ │ └── use-create-user-sign-up.ts
│ │ │ │ ├── use-signup-cargo
│ │ │ │ └── use-signup-cargo.ts
│ │ │ │ └── use-user-sign-up
│ │ │ │ └── use-user-sign-up.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ └── variables
│ │ ├── data-access
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ └── domains-variables-data-access.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ │ ├── feature
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── code-editor-variable
│ │ │ │ ├── code-editor-variable.spec.tsx
│ │ │ │ └── code-editor-variable.tsx
│ │ │ │ ├── create-update-variable-modal
│ │ │ │ └── create-update-variable-modal.tsx
│ │ │ │ ├── dropdown-variable
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── dropdown-variable.spec.tsx.snap
│ │ │ │ ├── dropdown-variable.spec.tsx
│ │ │ │ └── dropdown-variable.tsx
│ │ │ │ ├── field-variable-suggestion
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── field-variable-suggestion.spec.tsx.snap
│ │ │ │ ├── field-variable-suggestion.spec.tsx
│ │ │ │ └── field-variable-suggestion.tsx
│ │ │ │ ├── flow-create-variable
│ │ │ │ ├── flow-create-variable.spec.tsx
│ │ │ │ ├── flow-create-variable.tsx
│ │ │ │ └── variable-row
│ │ │ │ │ ├── variable-row.spec.tsx
│ │ │ │ │ └── variable-row.tsx
│ │ │ │ ├── hooks
│ │ │ │ ├── use-create-variable-alias
│ │ │ │ │ └── use-create-variable-alias.ts
│ │ │ │ ├── use-create-variable-override
│ │ │ │ │ └── use-create-variable-override.ts
│ │ │ │ ├── use-create-variable
│ │ │ │ │ └── use-create-variable.ts
│ │ │ │ ├── use-delete-variable
│ │ │ │ │ └── use-delete-variable.ts
│ │ │ │ ├── use-edit-variable
│ │ │ │ │ └── use-edit-variable.ts
│ │ │ │ ├── use-import-variables
│ │ │ │ │ └── use-import-variables.ts
│ │ │ │ └── use-variables
│ │ │ │ │ └── use-variables.ts
│ │ │ │ ├── output-variables
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── output-variables.spec.tsx.snap
│ │ │ │ ├── output-variables.spec.tsx
│ │ │ │ └── output-variables.tsx
│ │ │ │ ├── show-all-variables-toggle
│ │ │ │ └── show-all-variables-toggle.tsx
│ │ │ │ ├── variable-list
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── variable-list.spec.tsx.snap
│ │ │ │ ├── variable-list-action-bar.tsx
│ │ │ │ ├── variable-list-skeleton.tsx
│ │ │ │ ├── variable-list.spec.tsx
│ │ │ │ └── variable-list.tsx
│ │ │ │ ├── variables-action-toolbar
│ │ │ │ └── variables-action-toolbar.tsx
│ │ │ │ └── variables-context
│ │ │ │ └── variables-context.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ │ └── util
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ ├── index.ts
│ │ └── lib
│ │ │ └── sort-variables
│ │ │ ├── sort-variables.spec.ts
│ │ │ └── sort-variables.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
├── pages
│ ├── application
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ ├── import-environment-variable-modal-feature
│ │ │ │ │ ├── import-environment-variable-modal-feature.spec.tsx
│ │ │ │ │ ├── import-environment-variable-modal-feature.tsx
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── change-scope-all.tsx
│ │ │ │ │ │ ├── delete-entry.tsx
│ │ │ │ │ │ ├── file-to-form.spec.tsx
│ │ │ │ │ │ ├── file-to-form.tsx
│ │ │ │ │ │ ├── form-check.spec.ts
│ │ │ │ │ │ ├── form-check.tsx
│ │ │ │ │ │ ├── handle-submit.spec.tsx
│ │ │ │ │ │ ├── handle-submit.tsx
│ │ │ │ │ │ ├── on-drop.tsx
│ │ │ │ │ │ └── trigger-toggle-all.tsx
│ │ │ │ ├── page-deployments-feature
│ │ │ │ │ ├── page-deployments-feature.spec.tsx
│ │ │ │ │ └── page-deployments-feature.tsx
│ │ │ │ ├── page-general-feature
│ │ │ │ │ ├── page-general-feature.tsx
│ │ │ │ │ └── page-general.spec.tsx
│ │ │ │ ├── page-settings-advanced-feature
│ │ │ │ │ └── page-settings-advanced-feature.tsx
│ │ │ │ ├── page-settings-configure-job-feature
│ │ │ │ │ ├── page-settings-configure-job-feature.spec.tsx
│ │ │ │ │ └── page-settings-configure-job-feature.tsx
│ │ │ │ ├── page-settings-danger-zone-feature
│ │ │ │ │ ├── page-settings-danger-zone-feature.spec.tsx
│ │ │ │ │ └── page-settings-danger-zone-feature.tsx
│ │ │ │ ├── page-settings-deployment-restrictions-feature
│ │ │ │ │ ├── crud-modal-feature
│ │ │ │ │ │ ├── crud-modal-feature.spec.tsx
│ │ │ │ │ │ └── crud-modal-feature.tsx
│ │ │ │ │ ├── page-settings-deployment-restrictions-feature.spec.tsx
│ │ │ │ │ └── page-settings-deployment-restrictions-feature.tsx
│ │ │ │ ├── page-settings-dockerfile-feature
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── page-settings-dockerfile-feature.spec.tsx.snap
│ │ │ │ │ ├── page-settings-dockerfile-feature.spec.tsx
│ │ │ │ │ └── page-settings-dockerfile-feature.tsx
│ │ │ │ ├── page-settings-domains-feature
│ │ │ │ │ ├── crud-modal-feature
│ │ │ │ │ │ ├── crud-modal-feature.spec.tsx
│ │ │ │ │ │ └── crud-modal-feature.tsx
│ │ │ │ │ ├── page-settings-domains-feature.spec.tsx
│ │ │ │ │ └── page-settings-domains-feature.tsx
│ │ │ │ ├── page-settings-feature
│ │ │ │ │ └── page-settings-feature.tsx
│ │ │ │ ├── page-settings-general-feature
│ │ │ │ │ ├── page-settings-general-feature.spec.tsx
│ │ │ │ │ └── page-settings-general-feature.tsx
│ │ │ │ ├── page-settings-healthchecks-feature
│ │ │ │ │ ├── page-settings-healthchecks-feature.spec.tsx
│ │ │ │ │ └── page-settings-healthchecks-feature.tsx
│ │ │ │ ├── page-settings-networking-feature
│ │ │ │ │ └── page-settings-networking-feature.tsx
│ │ │ │ ├── page-settings-ports-feature
│ │ │ │ │ ├── crud-modal-feature
│ │ │ │ │ │ ├── crud-modal-feature.spec.tsx
│ │ │ │ │ │ └── crud-modal-feature.tsx
│ │ │ │ │ ├── page-settings-ports-feature.spec.tsx
│ │ │ │ │ └── page-settings-ports-feature.tsx
│ │ │ │ ├── page-settings-resources-feature
│ │ │ │ │ ├── page-settings-resources-feature.spec.tsx
│ │ │ │ │ └── page-settings-resources-feature.tsx
│ │ │ │ ├── page-settings-storage-feature
│ │ │ │ │ ├── page-settings-storage-feature.spec.tsx
│ │ │ │ │ ├── page-settings-storage-feature.tsx
│ │ │ │ │ └── storage-modal-feature
│ │ │ │ │ │ ├── storage-modal-feature.spec.tsx
│ │ │ │ │ │ └── storage-modal-feature.tsx
│ │ │ │ ├── page-settings-values-override-arguments-feature
│ │ │ │ │ └── page-settings-values-override-arguments-feature.tsx
│ │ │ │ ├── page-settings-values-override-file-feature
│ │ │ │ │ ├── page-settings-values-override-file-feature.spec.tsx
│ │ │ │ │ └── page-settings-values-override-file-feature.tsx
│ │ │ │ ├── page-variables-feature
│ │ │ │ │ ├── page-variables-feature.spec.tsx
│ │ │ │ │ └── page-variables-feature.tsx
│ │ │ │ └── tabs-feature
│ │ │ │ │ ├── tabs-feature.spec.tsx
│ │ │ │ │ └── tabs-feature.tsx
│ │ │ │ ├── page-application.spec.tsx
│ │ │ │ ├── page-application.tsx
│ │ │ │ ├── router
│ │ │ │ └── router.tsx
│ │ │ │ └── ui
│ │ │ │ ├── container
│ │ │ │ ├── container.spec.tsx
│ │ │ │ └── container.tsx
│ │ │ │ ├── import-environment-variable-modal
│ │ │ │ ├── import-environment-variable-modal.spec.tsx
│ │ │ │ └── import-environment-variable-modal.tsx
│ │ │ │ ├── page-deployments
│ │ │ │ ├── page-deployments.spec.tsx
│ │ │ │ └── page-deployments.tsx
│ │ │ │ ├── page-general
│ │ │ │ ├── page-general.spec.tsx
│ │ │ │ └── page-general.tsx
│ │ │ │ ├── page-settings-configure-job
│ │ │ │ ├── page-settings-configure-job.spec.tsx
│ │ │ │ └── page-settings-configure-job.tsx
│ │ │ │ ├── page-settings-danger-zone
│ │ │ │ ├── page-settings-danger-zone.spec.tsx
│ │ │ │ └── page-settings-danger-zone.tsx
│ │ │ │ ├── page-settings-deployment-restrictions
│ │ │ │ └── crud-modal
│ │ │ │ │ └── crud-modal.tsx
│ │ │ │ ├── page-settings-domains
│ │ │ │ ├── crud-modal
│ │ │ │ │ ├── crud-modal.spec.tsx
│ │ │ │ │ └── crud-modal.tsx
│ │ │ │ ├── page-settings-domains.spec.tsx
│ │ │ │ └── page-settings-domains.tsx
│ │ │ │ ├── page-settings-general
│ │ │ │ ├── page-settings-general.spec.tsx
│ │ │ │ └── page-settings-general.tsx
│ │ │ │ ├── page-settings-healthchecks
│ │ │ │ ├── page-settings-healthchecks.spec.tsx
│ │ │ │ └── page-settings-healthchecks.tsx
│ │ │ │ ├── page-settings-ports
│ │ │ │ ├── page-settings-ports.spec.tsx
│ │ │ │ └── page-settings-ports.tsx
│ │ │ │ ├── page-settings-resources
│ │ │ │ ├── __snapshots__
│ │ │ │ │ └── page-settings-resources.spec.tsx.snap
│ │ │ │ ├── page-settings-resources.spec.tsx
│ │ │ │ └── page-settings-resources.tsx
│ │ │ │ ├── page-settings-storage
│ │ │ │ ├── page-settings-storage.spec.tsx
│ │ │ │ ├── page-settings-storage.tsx
│ │ │ │ └── storage-modal
│ │ │ │ │ ├── storage-modal.spec.tsx
│ │ │ │ │ └── storage-modal.tsx
│ │ │ │ └── page-settings
│ │ │ │ ├── page-settings.spec.tsx
│ │ │ │ └── page-settings.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── cluster
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ ├── page-overview-feature
│ │ │ │ │ ├── page-overview-feature.spec.tsx
│ │ │ │ │ └── page-overview-feature.tsx
│ │ │ │ ├── page-settings-advanced-feature
│ │ │ │ │ ├── init-form-values
│ │ │ │ │ │ ├── init-form-values.spec.ts
│ │ │ │ │ │ └── init-form-values.ts
│ │ │ │ │ ├── page-settings-advanced-feature.spec.tsx
│ │ │ │ │ └── page-settings-advanced-feature.tsx
│ │ │ │ ├── page-settings-credentials-feature
│ │ │ │ │ ├── page-settings-credentials-feature.spec.tsx
│ │ │ │ │ └── page-settings-credentials-feature.tsx
│ │ │ │ ├── page-settings-danger-zone-feature
│ │ │ │ │ ├── page-settings-danger-zone-feature.spec.tsx
│ │ │ │ │ └── page-settings-danger-zone-feature.tsx
│ │ │ │ ├── page-settings-feature
│ │ │ │ │ ├── page-settings-feature.spec.tsx
│ │ │ │ │ └── page-settings-feature.tsx
│ │ │ │ ├── page-settings-features-feature
│ │ │ │ │ ├── page-settings-features-feature.spec.tsx
│ │ │ │ │ └── page-settings-features-feature.tsx
│ │ │ │ ├── page-settings-general-feature
│ │ │ │ │ ├── page-settings-general-feature.spec.tsx
│ │ │ │ │ └── page-settings-general-feature.tsx
│ │ │ │ ├── page-settings-image-registry-feature
│ │ │ │ │ ├── page-settings-image-registry-feature.spec.tsx
│ │ │ │ │ └── page-settings-image-registry-feature.tsx
│ │ │ │ ├── page-settings-network-feature
│ │ │ │ │ ├── crud-modal-feature
│ │ │ │ │ │ ├── crud-modal-feature.spec.tsx
│ │ │ │ │ │ └── crud-modal-feature.tsx
│ │ │ │ │ ├── page-settings-network-feature.spec.tsx
│ │ │ │ │ └── page-settings-network-feature.tsx
│ │ │ │ └── page-settings-resources-feature
│ │ │ │ │ ├── page-settings-resources-feature.spec.tsx
│ │ │ │ │ └── page-settings-resources-feature.tsx
│ │ │ │ ├── page-cluster.spec.tsx
│ │ │ │ ├── page-cluster.tsx
│ │ │ │ ├── router
│ │ │ │ └── router.tsx
│ │ │ │ └── ui
│ │ │ │ ├── container
│ │ │ │ ├── container.spec.tsx
│ │ │ │ └── container.tsx
│ │ │ │ ├── need-redeploy-flag
│ │ │ │ ├── need-redeploy-flag.spec.tsx
│ │ │ │ └── need-redeploy-flag.tsx
│ │ │ │ ├── page-settings-advanced
│ │ │ │ ├── page-settings-advanced.spec.tsx
│ │ │ │ └── page-settings-advanced.tsx
│ │ │ │ ├── page-settings-credentials
│ │ │ │ ├── page-settings-credentials.spec.tsx
│ │ │ │ └── page-settings-credentials.tsx
│ │ │ │ ├── page-settings-danger-zone
│ │ │ │ ├── page-settings-danger-zone.spec.tsx
│ │ │ │ └── page-settings-danger-zone.tsx
│ │ │ │ ├── page-settings-features
│ │ │ │ ├── aws-existing-vpc
│ │ │ │ │ ├── aws-existing-vpc.spec.tsx
│ │ │ │ │ └── aws-existing-vpc.tsx
│ │ │ │ ├── gcp-existing-vpc
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── gcp-existing-vpc.spec.tsx.snap
│ │ │ │ │ ├── gcp-existing-vpc.spec.tsx
│ │ │ │ │ └── gcp-existing-vpc.tsx
│ │ │ │ ├── page-settings-features.spec.tsx
│ │ │ │ └── page-settings-features.tsx
│ │ │ │ ├── page-settings-general
│ │ │ │ ├── page-settings-general.spec.tsx
│ │ │ │ └── page-settings-general.tsx
│ │ │ │ ├── page-settings-network
│ │ │ │ ├── crud-modal
│ │ │ │ │ ├── crud-modal.spec.tsx
│ │ │ │ │ └── crud-modal.tsx
│ │ │ │ ├── page-settings-network.spec.tsx
│ │ │ │ └── page-settings-network.tsx
│ │ │ │ ├── page-settings-resources
│ │ │ │ ├── page-settings-resources.spec.tsx
│ │ │ │ └── page-settings-resources.tsx
│ │ │ │ └── page-settings
│ │ │ │ ├── page-settings.spec.tsx
│ │ │ │ └── page-settings.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── clusters
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ ├── page-clusters-create-feature
│ │ │ │ │ ├── page-clusters-create-feature.spec.tsx
│ │ │ │ │ ├── page-clusters-create-feature.tsx
│ │ │ │ │ ├── step-features-feature
│ │ │ │ │ │ ├── step-features-feature.spec.tsx
│ │ │ │ │ │ └── step-features-feature.tsx
│ │ │ │ │ ├── step-general-feature
│ │ │ │ │ │ ├── step-general-feature.spec.tsx
│ │ │ │ │ │ └── step-general-feature.tsx
│ │ │ │ │ ├── step-kubeconfig-feature
│ │ │ │ │ │ └── step-kubeconfig-feature.tsx
│ │ │ │ │ ├── step-resources-feature
│ │ │ │ │ │ ├── step-resources-feature.spec.tsx
│ │ │ │ │ │ └── step-resources-feature.tsx
│ │ │ │ │ └── step-summary-feature
│ │ │ │ │ │ ├── step-summary-feature.spec.tsx
│ │ │ │ │ │ └── step-summary-feature.tsx
│ │ │ │ ├── page-clusters-general-feature
│ │ │ │ │ ├── page-clusters-general-feature.spec.tsx
│ │ │ │ │ └── page-clusters-general-feature.tsx
│ │ │ │ └── page-new-feature
│ │ │ │ │ └── page-new-feature.tsx
│ │ │ │ ├── page-clusters.spec.tsx
│ │ │ │ ├── page-clusters.tsx
│ │ │ │ ├── router
│ │ │ │ └── router.tsx
│ │ │ │ └── ui
│ │ │ │ ├── container
│ │ │ │ ├── container.spec.tsx
│ │ │ │ └── container.tsx
│ │ │ │ ├── page-clusters-create
│ │ │ │ ├── step-features
│ │ │ │ │ ├── aws-vpc-feature
│ │ │ │ │ │ ├── aws-vpc-feature.spec.tsx
│ │ │ │ │ │ └── aws-vpc-feature.tsx
│ │ │ │ │ ├── button-popover-subnets
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ └── button-popover-subnets.spec.tsx.snap
│ │ │ │ │ │ ├── button-popover-subnets.spec.tsx
│ │ │ │ │ │ └── button-popover-subnets.tsx
│ │ │ │ │ ├── gcp-vpc-feature
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ └── gcp-vpc-feature.spec.tsx.snap
│ │ │ │ │ │ ├── gcp-vpc-feature.spec.tsx
│ │ │ │ │ │ └── gcp-vpc-feature.tsx
│ │ │ │ │ ├── step-features.spec.tsx
│ │ │ │ │ └── step-features.tsx
│ │ │ │ ├── step-general
│ │ │ │ │ ├── step-general.spec.tsx
│ │ │ │ │ └── step-general.tsx
│ │ │ │ ├── step-kubeconfig
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── step-kubeconfig.spec.tsx.snap
│ │ │ │ │ ├── step-kubeconfig.spec.tsx
│ │ │ │ │ └── step-kubeconfig.tsx
│ │ │ │ ├── step-resources
│ │ │ │ │ ├── step-resources.spec.tsx
│ │ │ │ │ └── step-resources.tsx
│ │ │ │ └── step-summary
│ │ │ │ │ ├── step-summary.spec.tsx
│ │ │ │ │ └── step-summary.tsx
│ │ │ │ └── page-clusters-general
│ │ │ │ ├── page-clusters-general.spec.tsx
│ │ │ │ └── page-clusters-general.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── database
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ ├── page-deployments-feature
│ │ │ │ │ ├── page-deployments-feature.spec.tsx
│ │ │ │ │ └── page-deployments-feature.tsx
│ │ │ │ ├── page-general-feature
│ │ │ │ │ ├── page-general-feature.tsx
│ │ │ │ │ └── page-general.spec.tsx
│ │ │ │ ├── page-settings-danger-zone-feature
│ │ │ │ │ ├── page-settings-danger-zone-feature.spec.tsx
│ │ │ │ │ └── page-settings-danger-zone-feature.tsx
│ │ │ │ ├── page-settings-feature
│ │ │ │ │ └── page-settings-feature.tsx
│ │ │ │ ├── page-settings-general-feature
│ │ │ │ │ ├── page-settings-general-feature.spec.tsx
│ │ │ │ │ └── page-settings-general-feature.tsx
│ │ │ │ └── page-settings-resources-feature
│ │ │ │ │ ├── page-settings-resources-feature.spec.tsx
│ │ │ │ │ └── page-settings-resources-feature.tsx
│ │ │ │ ├── page-database.spec.tsx
│ │ │ │ ├── page-database.tsx
│ │ │ │ ├── router
│ │ │ │ └── router.tsx
│ │ │ │ └── ui
│ │ │ │ ├── container
│ │ │ │ ├── container.spec.tsx
│ │ │ │ └── container.tsx
│ │ │ │ ├── page-deployments
│ │ │ │ ├── page-deployments.spec.tsx
│ │ │ │ └── page-deployments.tsx
│ │ │ │ ├── page-general
│ │ │ │ ├── page-general.spec.tsx
│ │ │ │ └── page-general.tsx
│ │ │ │ ├── page-settings-danger-zone
│ │ │ │ ├── page-settings-danger-zone.spec.tsx
│ │ │ │ └── page-settings-danger-zone.tsx
│ │ │ │ ├── page-settings-general
│ │ │ │ ├── page-settings-general.spec.tsx
│ │ │ │ └── page-settings-general.tsx
│ │ │ │ ├── page-settings-resources
│ │ │ │ ├── page-settings-resources.spec.tsx
│ │ │ │ └── page-settings-resources.tsx
│ │ │ │ └── page-settings
│ │ │ │ ├── page-settings.spec.tsx
│ │ │ │ └── page-settings.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── environments
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ ├── page-create-deployment-rule-feature
│ │ │ │ │ ├── page-create-deployment-rule-feature.spec.tsx
│ │ │ │ │ └── page-create-deployment-rule-feature.tsx
│ │ │ │ ├── page-deployment-rules-feature
│ │ │ │ │ ├── page-deployment-rules-feature.spec.tsx
│ │ │ │ │ └── page-deployment-rules-feature.tsx
│ │ │ │ ├── page-edit-deployment-rule-feature
│ │ │ │ │ ├── page-edit-deployment-rule-feature.spec.tsx
│ │ │ │ │ └── page-edit-deployment-rule-feature.tsx
│ │ │ │ ├── page-general-feature
│ │ │ │ │ ├── page-general-feature.spec.tsx
│ │ │ │ │ └── page-general-feature.tsx
│ │ │ │ └── page-variables-feature
│ │ │ │ │ └── page-variables-feature.tsx
│ │ │ │ ├── page-environments.spec.tsx
│ │ │ │ ├── page-environments.tsx
│ │ │ │ ├── router
│ │ │ │ └── router.tsx
│ │ │ │ └── ui
│ │ │ │ ├── container
│ │ │ │ ├── container.spec.tsx
│ │ │ │ └── container.tsx
│ │ │ │ ├── deployment-rule-item
│ │ │ │ ├── deployment-rule-item.spec.tsx
│ │ │ │ └── deployment-rule-item.tsx
│ │ │ │ ├── page-create-edit-deployment-rule
│ │ │ │ ├── page-create-edit-deployment-rule.spec.tsx
│ │ │ │ └── page-create-edit-deployment-rule.tsx
│ │ │ │ ├── page-deployment-rules
│ │ │ │ ├── page-deployment-rules.spec.tsx
│ │ │ │ └── page-deployment-rules.tsx
│ │ │ │ ├── page-general
│ │ │ │ ├── page-general.spec.tsx
│ │ │ │ └── page-general.tsx
│ │ │ │ └── placeholder-no-rules
│ │ │ │ ├── placeholder-no-rules.spec.tsx
│ │ │ │ └── placeholder-no-rules.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── events
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ ├── custom-filter-feature
│ │ │ │ │ ├── custom-filter-feature.spec.tsx
│ │ │ │ │ └── custom-filter-feature.tsx
│ │ │ │ ├── page-general-feature
│ │ │ │ │ ├── page-general-feature.spec.tsx
│ │ │ │ │ └── page-general-feature.tsx
│ │ │ │ └── row-event-feature
│ │ │ │ │ ├── row-event-feature.spec.tsx
│ │ │ │ │ └── row-event-feature.tsx
│ │ │ │ ├── page-events.spec.tsx
│ │ │ │ ├── page-events.tsx
│ │ │ │ ├── router
│ │ │ │ └── router.tsx
│ │ │ │ └── ui
│ │ │ │ ├── copy-button
│ │ │ │ ├── copy-button.spec.tsx
│ │ │ │ └── copy-button.tsx
│ │ │ │ ├── custom-filter
│ │ │ │ ├── custom-filter.spec.tsx
│ │ │ │ └── custom-filter.tsx
│ │ │ │ ├── page-general
│ │ │ │ ├── page-general.spec.tsx
│ │ │ │ └── page-general.tsx
│ │ │ │ └── row-event
│ │ │ │ ├── row-event.spec.tsx
│ │ │ │ └── row-event.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── layout
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ ├── breadcrumb
│ │ │ │ │ ├── breadcrumb.spec.tsx
│ │ │ │ │ └── breadcrumb.tsx
│ │ │ │ ├── dark-mode-enabler
│ │ │ │ │ ├── dark-mode-enabler.spec.tsx
│ │ │ │ │ └── dark-mode-enabler.tsx
│ │ │ │ ├── layout
│ │ │ │ │ ├── layout.spec.tsx
│ │ │ │ │ └── layout.tsx
│ │ │ │ ├── menu-account-feature
│ │ │ │ │ ├── menu-account-feature.spec.tsx
│ │ │ │ │ └── menu-account-feature.tsx
│ │ │ │ ├── not-found-page
│ │ │ │ │ ├── not-found-page.spec.tsx
│ │ │ │ │ └── not-found-page.tsx
│ │ │ │ └── spotlight-trigger
│ │ │ │ │ └── spotlight-trigger.tsx
│ │ │ │ ├── ui
│ │ │ │ ├── breadcrumb-item
│ │ │ │ │ ├── breadcrumb-item-value
│ │ │ │ │ │ ├── breadcrumb-item-value.spec.tsx
│ │ │ │ │ │ └── breadcrumb-item-value.tsx
│ │ │ │ │ ├── breadcrumb-item.spec.tsx
│ │ │ │ │ └── breadcrumb-item.tsx
│ │ │ │ ├── breadcrumb
│ │ │ │ │ ├── breadcrumb.spec.tsx
│ │ │ │ │ └── breadcrumb.tsx
│ │ │ │ ├── layout-page
│ │ │ │ │ ├── layout-page.spec.tsx
│ │ │ │ │ └── layout-page.tsx
│ │ │ │ ├── menu-account
│ │ │ │ │ ├── menu-account.spec.tsx
│ │ │ │ │ └── menu-account.tsx
│ │ │ │ ├── navigation
│ │ │ │ │ ├── navigation.spec.tsx
│ │ │ │ │ └── navigation.tsx
│ │ │ │ └── top-bar
│ │ │ │ │ ├── top-bar.spec.tsx
│ │ │ │ │ └── top-bar.tsx
│ │ │ │ └── utils
│ │ │ │ └── utils.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── login
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ ├── page-login
│ │ │ │ │ ├── page-login.spec.tsx
│ │ │ │ │ └── page-login.tsx
│ │ │ │ ├── page-logout-feature
│ │ │ │ │ ├── page-logout-feature.spec.tsx
│ │ │ │ │ └── page-logout-feature.tsx
│ │ │ │ └── page-redirect-login
│ │ │ │ │ ├── page-redirect-login.spec.tsx
│ │ │ │ │ └── page-redirect-login.tsx
│ │ │ │ ├── hooks
│ │ │ │ └── use-redirect-if-logged
│ │ │ │ │ ├── use-redirect-if-logged.spec.tsx
│ │ │ │ │ ├── use-redirect-if-logged.tsx
│ │ │ │ │ └── utils
│ │ │ │ │ └── utils.tsx
│ │ │ │ ├── page-login.spec.tsx
│ │ │ │ ├── page-login.tsx
│ │ │ │ ├── router
│ │ │ │ └── router.tsx
│ │ │ │ └── ui
│ │ │ │ ├── login-callback
│ │ │ │ ├── login-callback.spec.tsx
│ │ │ │ └── login-callback.tsx
│ │ │ │ └── login
│ │ │ │ ├── login.spec.tsx
│ │ │ │ └── login.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── logs
│ │ ├── environment
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ ├── feature
│ │ │ │ │ ├── deployment-logs-feature
│ │ │ │ │ │ ├── deployment-logs-feature.spec.tsx
│ │ │ │ │ │ └── deployment-logs-feature.tsx
│ │ │ │ │ ├── environment-stages-feature
│ │ │ │ │ │ ├── environment-stages-feature.spec.tsx
│ │ │ │ │ │ └── environment-stages-feature.tsx
│ │ │ │ │ ├── pod-logs-feature
│ │ │ │ │ │ ├── pod-logs-feature.spec.tsx
│ │ │ │ │ │ └── pod-logs-feature.tsx
│ │ │ │ │ └── pre-check-logs-feature
│ │ │ │ │ │ ├── pre-check-logs-feature.spec.tsx
│ │ │ │ │ │ └── pre-check-logs-feature.tsx
│ │ │ │ │ ├── page-environment-logs.spec.tsx
│ │ │ │ │ └── page-environment-logs.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ │ └── infra
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ └── card-cluster-feature
│ │ │ │ │ ├── card-cluster-feature.spec.tsx
│ │ │ │ │ └── card-cluster-feature.tsx
│ │ │ │ ├── page-infra-logs.spec.tsx
│ │ │ │ ├── page-infra-logs.tsx
│ │ │ │ └── ui
│ │ │ │ └── row
│ │ │ │ ├── __snapshots__
│ │ │ │ └── row.spec.tsx.snap
│ │ │ │ ├── row.spec.tsx
│ │ │ │ └── row.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── onboarding
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ ├── container
│ │ │ │ │ ├── container.spec.tsx
│ │ │ │ │ └── container.tsx
│ │ │ │ ├── form-company
│ │ │ │ │ ├── form-company.spec.tsx
│ │ │ │ │ └── form-company.tsx
│ │ │ │ ├── form-user
│ │ │ │ │ ├── form-user.spec.tsx
│ │ │ │ │ └── form-user.tsx
│ │ │ │ ├── onboarding-more
│ │ │ │ │ ├── onboarding-more.spec.tsx
│ │ │ │ │ └── onboarding-more.tsx
│ │ │ │ ├── onboarding-personalize
│ │ │ │ │ ├── onboarding-personalize.spec.tsx
│ │ │ │ │ └── onboarding-personalize.tsx
│ │ │ │ ├── onboarding-pricing
│ │ │ │ │ ├── onboarding-pricing.spec.tsx
│ │ │ │ │ └── onboarding-pricing.tsx
│ │ │ │ ├── onboarding-project
│ │ │ │ │ ├── onboarding-project.spec.tsx
│ │ │ │ │ └── onboarding-project.tsx
│ │ │ │ └── onboarding-thanks
│ │ │ │ │ ├── onboarding-thanks.spec.tsx
│ │ │ │ │ └── onboarding-thanks.tsx
│ │ │ │ ├── page-onboarding.spec.tsx
│ │ │ │ ├── page-onboarding.tsx
│ │ │ │ ├── router
│ │ │ │ └── router.tsx
│ │ │ │ └── ui
│ │ │ │ ├── benefits-card
│ │ │ │ ├── benefits-card.spec.tsx
│ │ │ │ └── benefits-card.tsx
│ │ │ │ ├── onboarding-right-content
│ │ │ │ ├── onboarding-right-content.spec.tsx
│ │ │ │ └── onboarding-right-content.tsx
│ │ │ │ ├── plan-card
│ │ │ │ ├── plan-card.spec.tsx
│ │ │ │ └── plan-card.tsx
│ │ │ │ ├── plan-list
│ │ │ │ ├── plan-list.spec.tsx
│ │ │ │ └── plan-list.tsx
│ │ │ │ ├── step-company
│ │ │ │ ├── step-company.spec.tsx
│ │ │ │ └── step-company.tsx
│ │ │ │ ├── step-more
│ │ │ │ ├── step-more.spec.tsx
│ │ │ │ └── step-more.tsx
│ │ │ │ ├── step-personalize
│ │ │ │ ├── step-personalize.spec.tsx
│ │ │ │ └── step-personalize.tsx
│ │ │ │ ├── step-pricing
│ │ │ │ ├── step-pricing.spec.tsx
│ │ │ │ └── step-pricing.tsx
│ │ │ │ ├── step-project
│ │ │ │ ├── step-project.spec.tsx
│ │ │ │ └── step-project.tsx
│ │ │ │ └── step-thanks
│ │ │ │ ├── step-thanks.spec.tsx
│ │ │ │ └── step-thanks.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── overview
│ │ ├── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ ├── overview.spec.tsx
│ │ │ │ │ └── overview.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ │ └── ui
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ └── components
│ │ │ │ └── overview
│ │ │ │ ├── overview.spec.tsx
│ │ │ │ └── overview.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── services
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ ├── page-application-create-feature
│ │ │ │ │ ├── page-application-create-feature.spec.tsx
│ │ │ │ │ ├── page-application-create-feature.tsx
│ │ │ │ │ ├── step-general-feature
│ │ │ │ │ │ ├── step-general-feature.spec.tsx
│ │ │ │ │ │ └── step-general-feature.tsx
│ │ │ │ │ ├── step-healthchecks-feature
│ │ │ │ │ │ ├── step-healthchecks-feature.spec.tsx
│ │ │ │ │ │ └── step-healthchecks-feature.tsx
│ │ │ │ │ ├── step-port-feature
│ │ │ │ │ │ ├── crud-modal-feature
│ │ │ │ │ │ │ ├── crud-modal-feature.spec.tsx
│ │ │ │ │ │ │ └── crud-modal-feature.tsx
│ │ │ │ │ │ ├── step-port-feature.spec.tsx
│ │ │ │ │ │ └── step-port-feature.tsx
│ │ │ │ │ ├── step-resources-feature
│ │ │ │ │ │ ├── step-resources-feature.spec.tsx
│ │ │ │ │ │ └── step-resources-feature.tsx
│ │ │ │ │ ├── step-summary-feature
│ │ │ │ │ │ ├── step-summary-feature.spec.tsx
│ │ │ │ │ │ └── step-summary-feature.tsx
│ │ │ │ │ └── step-variable-feature
│ │ │ │ │ │ ├── step-variable-feature.spec.tsx
│ │ │ │ │ │ └── step-variable-feature.tsx
│ │ │ │ ├── page-database-create-feature
│ │ │ │ │ ├── database-creation-flow.interface.ts
│ │ │ │ │ ├── page-database-create-feature.spec.tsx
│ │ │ │ │ ├── page-database-create-feature.tsx
│ │ │ │ │ ├── step-general-feature
│ │ │ │ │ │ ├── step-general-feature.spec.tsx
│ │ │ │ │ │ └── step-general-feature.tsx
│ │ │ │ │ ├── step-resources-feature
│ │ │ │ │ │ ├── step-resources-feature.spec.tsx
│ │ │ │ │ │ └── step-resources-feature.tsx
│ │ │ │ │ └── step-summary-feature
│ │ │ │ │ │ ├── step-summary-feature.spec.tsx
│ │ │ │ │ │ └── step-summary-feature.tsx
│ │ │ │ ├── page-deployments-feature
│ │ │ │ │ ├── page-deployments-feature.spec.tsx
│ │ │ │ │ └── page-deployments-feature.tsx
│ │ │ │ ├── page-general-feature
│ │ │ │ │ ├── page-general-feature.spec.tsx
│ │ │ │ │ └── page-general-feature.tsx
│ │ │ │ ├── page-helm-create-feature
│ │ │ │ │ ├── page-helm-create-feature.spec.tsx
│ │ │ │ │ ├── page-helm-create-feature.tsx
│ │ │ │ │ ├── step-general-feature
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ └── step-general-feature.spec.tsx.snap
│ │ │ │ │ │ ├── step-general-feature.spec.tsx
│ │ │ │ │ │ └── step-general-feature.tsx
│ │ │ │ │ ├── step-summary-feature
│ │ │ │ │ │ ├── step-summary-feature.spec.tsx
│ │ │ │ │ │ └── step-summary-feature.tsx
│ │ │ │ │ ├── step-values-override-arguments-feature
│ │ │ │ │ │ └── step-values-override-arguments-feature.tsx
│ │ │ │ │ └── step-values-override-files-feature
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── step-values-override-files-feature.spec.tsx.snap
│ │ │ │ │ │ ├── step-values-override-files-feature.spec.tsx
│ │ │ │ │ │ └── step-values-override-files-feature.tsx
│ │ │ │ ├── page-job-create-feature
│ │ │ │ │ ├── page-job-create-feature.spec.tsx
│ │ │ │ │ ├── page-job-create-feature.tsx
│ │ │ │ │ ├── step-configure-feature
│ │ │ │ │ │ ├── step-configure-feature.spec.tsx
│ │ │ │ │ │ └── step-configure-feature.tsx
│ │ │ │ │ ├── step-dockerfile-feature
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ └── step-dockerfile-feature.spec.tsx.snap
│ │ │ │ │ │ ├── step-dockerfile-feature.spec.tsx
│ │ │ │ │ │ └── step-dockerfile-feature.tsx
│ │ │ │ │ ├── step-general-feature
│ │ │ │ │ │ ├── step-general-feature.spec.tsx
│ │ │ │ │ │ └── step-general-feature.tsx
│ │ │ │ │ ├── step-introduction-feature
│ │ │ │ │ │ ├── images
│ │ │ │ │ │ │ ├── build.svg
│ │ │ │ │ │ │ ├── output.svg
│ │ │ │ │ │ │ ├── run.svg
│ │ │ │ │ │ │ └── trigger.svg
│ │ │ │ │ │ ├── step-introduction-feature.spec.tsx
│ │ │ │ │ │ ├── step-introduction-feature.tsx
│ │ │ │ │ │ └── util-localstorage-step.ts
│ │ │ │ │ ├── step-resources-feature
│ │ │ │ │ │ ├── step-resources-feature.spec.tsx
│ │ │ │ │ │ └── step-resources-feature.tsx
│ │ │ │ │ ├── step-summary-feature
│ │ │ │ │ │ ├── step-summary-feature.spec.tsx
│ │ │ │ │ │ └── step-summary-feature.tsx
│ │ │ │ │ ├── step-variable-feature
│ │ │ │ │ │ ├── step-variable-feature.spec.tsx
│ │ │ │ │ │ └── step-variable-feature.tsx
│ │ │ │ │ └── template-form-sync.tsx
│ │ │ │ ├── page-new-feature
│ │ │ │ │ ├── page-new-feature.spec.tsx
│ │ │ │ │ ├── page-new-feature.tsx
│ │ │ │ │ └── service-templates.ts
│ │ │ │ ├── page-settings-danger-zone-feature
│ │ │ │ │ ├── page-settings-danger-zone-feature.spec.tsx
│ │ │ │ │ └── page-settings-danger-zone-feature.tsx
│ │ │ │ ├── page-settings-deployment-pipeline-feature
│ │ │ │ │ ├── page-settings-deployment-pipeline-feature.spec.tsx
│ │ │ │ │ ├── page-settings-deployment-pipeline-feature.tsx
│ │ │ │ │ ├── stage-modal-feature
│ │ │ │ │ │ ├── stage-modal-feature.spec.tsx
│ │ │ │ │ │ └── stage-modal-feature.tsx
│ │ │ │ │ ├── stage-order-modal-feature
│ │ │ │ │ │ ├── stage-order-modal-feature.spec.tsx
│ │ │ │ │ │ └── stage-order-modal-feature.tsx
│ │ │ │ │ └── utils
│ │ │ │ │ │ ├── utils.spec.ts
│ │ │ │ │ │ └── utils.ts
│ │ │ │ ├── page-settings-deployment-rules-feature
│ │ │ │ │ ├── page-settings-deployment-rules-feature.spec.tsx
│ │ │ │ │ └── page-settings-deployment-rules-feature.tsx
│ │ │ │ ├── page-settings-feature
│ │ │ │ │ └── page-settings-feature.tsx
│ │ │ │ ├── page-settings-general-feature
│ │ │ │ │ ├── page-settings-general-feature.spec.tsx
│ │ │ │ │ └── page-settings-general-feature.tsx
│ │ │ │ ├── page-settings-preview-environments-feature
│ │ │ │ │ ├── page-settings-preview-environments-feature.spec.tsx
│ │ │ │ │ └── page-settings-preview-environments-feature.tsx
│ │ │ │ └── page-variables-feature
│ │ │ │ │ └── page-variables-feature.tsx
│ │ │ │ ├── page-services.spec.tsx
│ │ │ │ ├── page-services.tsx
│ │ │ │ ├── router
│ │ │ │ └── router.tsx
│ │ │ │ └── ui
│ │ │ │ ├── container
│ │ │ │ ├── container.spec.tsx
│ │ │ │ └── container.tsx
│ │ │ │ ├── page-application-create
│ │ │ │ ├── step-general
│ │ │ │ │ ├── step-general.spec.tsx
│ │ │ │ │ └── step-general.tsx
│ │ │ │ ├── step-healthchecks
│ │ │ │ │ ├── step-healthchecks.spec.tsx
│ │ │ │ │ └── step-healthchecks.tsx
│ │ │ │ ├── step-resources
│ │ │ │ │ ├── step-resources.spec.tsx
│ │ │ │ │ └── step-resources.tsx
│ │ │ │ └── step-summary
│ │ │ │ │ ├── step-summary.spec.tsx
│ │ │ │ │ └── step-summary.tsx
│ │ │ │ ├── page-database-create
│ │ │ │ ├── step-general
│ │ │ │ │ ├── step-general.spec.tsx
│ │ │ │ │ └── step-general.tsx
│ │ │ │ ├── step-resources
│ │ │ │ │ ├── step-resources.spec.tsx
│ │ │ │ │ └── step-resources.tsx
│ │ │ │ └── step-summary
│ │ │ │ │ ├── step-summary.spec.tsx
│ │ │ │ │ └── step-summary.tsx
│ │ │ │ ├── page-general
│ │ │ │ ├── page-general.spec.tsx
│ │ │ │ └── page-general.tsx
│ │ │ │ ├── page-job-create
│ │ │ │ ├── step-configure
│ │ │ │ │ ├── step-configure.spec.tsx
│ │ │ │ │ └── step-configure.tsx
│ │ │ │ ├── step-general
│ │ │ │ │ ├── step-general.spec.tsx
│ │ │ │ │ └── step-general.tsx
│ │ │ │ ├── step-resources
│ │ │ │ │ ├── step-resources.spec.tsx
│ │ │ │ │ └── step-resources.tsx
│ │ │ │ └── step-summary
│ │ │ │ │ ├── step-summary.spec.tsx
│ │ │ │ │ └── step-summary.tsx
│ │ │ │ ├── page-settings-danger-zone
│ │ │ │ ├── page-settings-danger-zone.spec.tsx
│ │ │ │ └── page-settings-danger-zone.tsx
│ │ │ │ ├── page-settings-deployment-pipeline
│ │ │ │ ├── page-settings-deployment-pipeline.spec.tsx
│ │ │ │ ├── page-settings-deployment-pipeline.tsx
│ │ │ │ ├── stage-modal
│ │ │ │ │ ├── stage-modal.spec.tsx
│ │ │ │ │ └── stage-modal.tsx
│ │ │ │ └── stage-order-modal
│ │ │ │ │ ├── stage-order-modal.spec.tsx
│ │ │ │ │ └── stage-order-modal.tsx
│ │ │ │ ├── page-settings-deployment-rules
│ │ │ │ ├── page-settings-deployment-rules.spec.tsx
│ │ │ │ └── page-settings-deployment-rules.tsx
│ │ │ │ ├── page-settings-general
│ │ │ │ ├── page-settings-general.spec.tsx
│ │ │ │ └── page-settings-general.tsx
│ │ │ │ ├── page-settings-preview-environments
│ │ │ │ ├── page-settings-preview-environments.spec.tsx
│ │ │ │ └── page-settings-preview-environments.tsx
│ │ │ │ └── page-settings
│ │ │ │ ├── page-settings.spec.tsx
│ │ │ │ └── page-settings.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── settings
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── feature
│ │ │ │ ├── page-organization-api-feature
│ │ │ │ │ ├── crud-modal-feature
│ │ │ │ │ │ ├── crud-modal-feature.spec.tsx
│ │ │ │ │ │ └── crud-modal-feature.tsx
│ │ │ │ │ ├── page-organization-api-feature.spec.tsx
│ │ │ │ │ └── page-organization-api-feature.tsx
│ │ │ │ ├── page-organization-billing-feature
│ │ │ │ │ ├── billing-details-feature
│ │ │ │ │ │ ├── billing-details-feature.spec.tsx
│ │ │ │ │ │ └── billing-details-feature.tsx
│ │ │ │ │ ├── page-organization-billing-feature.spec.tsx
│ │ │ │ │ └── page-organization-billing-feature.tsx
│ │ │ │ ├── page-organization-billing-summary-feature
│ │ │ │ │ ├── invoices-list-feature
│ │ │ │ │ │ ├── invoices-list-feature.spec.tsx
│ │ │ │ │ │ └── invoices-list-feature.tsx
│ │ │ │ │ ├── page-organization-billing-summary-feature.spec.tsx
│ │ │ │ │ ├── page-organization-billing-summary-feature.tsx
│ │ │ │ │ ├── promo-code-modal-feature
│ │ │ │ │ │ ├── promo-code-modal-feature.spec.tsx
│ │ │ │ │ │ └── promo-code-modal-feature.tsx
│ │ │ │ │ └── show-usage-modal-feature
│ │ │ │ │ │ ├── show-usage-modal-feature.spec.tsx
│ │ │ │ │ │ └── show-usage-modal-feature.tsx
│ │ │ │ ├── page-organization-container-registries-feature
│ │ │ │ │ ├── page-organization-container-registries-feature.spec.tsx
│ │ │ │ │ └── page-organization-container-registries-feature.tsx
│ │ │ │ ├── page-organization-danger-zone-feature
│ │ │ │ │ ├── page-organization-danger-zone-feature.spec.tsx
│ │ │ │ │ └── page-organization-danger-zone-feature.tsx
│ │ │ │ ├── page-organization-general-feature
│ │ │ │ │ ├── page-organization-general-feature.spec.tsx
│ │ │ │ │ └── page-organization-general-feature.tsx
│ │ │ │ ├── page-organization-github-repository-access-feature
│ │ │ │ │ ├── page-organization-github-repository-access-feature.spec.tsx
│ │ │ │ │ └── page-organization-github-repository-access-feature.tsx
│ │ │ │ ├── page-organization-helm-repositories-feature
│ │ │ │ │ ├── page-organization-helm-repositories-feature.spec.tsx
│ │ │ │ │ └── page-organization-helm-repositories-feature.tsx
│ │ │ │ ├── page-organization-labels-annotations-feature
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── page-organization-labels-annotations-feature.spec.tsx.snap
│ │ │ │ │ ├── page-organization-labels-annotations-feature.spec.tsx
│ │ │ │ │ └── page-organization-labels-annotations-feature.tsx
│ │ │ │ ├── page-organization-members-feature
│ │ │ │ │ ├── create-modal-feature
│ │ │ │ │ │ ├── create-modal-feature.spec.tsx
│ │ │ │ │ │ └── create-modal-feature.tsx
│ │ │ │ │ ├── page-organization-members-feature.spec.tsx
│ │ │ │ │ └── page-organization-members-feature.tsx
│ │ │ │ ├── page-organization-roles-edit-feature
│ │ │ │ │ ├── page-organization-roles-edit-feature.spec.tsx
│ │ │ │ │ └── page-organization-roles-edit-feature.tsx
│ │ │ │ ├── page-organization-roles-feature
│ │ │ │ │ ├── create-modal-feature
│ │ │ │ │ │ ├── create-modal-feature.spec.tsx
│ │ │ │ │ │ └── create-modal-feature.tsx
│ │ │ │ │ ├── page-organization-roles-feature.spec.tsx
│ │ │ │ │ └── page-organization-roles-feature.tsx
│ │ │ │ ├── page-organization-webhooks-feature
│ │ │ │ │ ├── page-organization-webhooks-feature.spec.tsx
│ │ │ │ │ ├── page-organization-webhooks-feature.tsx
│ │ │ │ │ └── webhook-crud-modal-feature
│ │ │ │ │ │ ├── webhook-crud-modal-feature.spec.tsx
│ │ │ │ │ │ └── webhook-crud-modal-feature.tsx
│ │ │ │ ├── page-project-danger-zone-feature
│ │ │ │ │ ├── page-project-danger-zone-feature.spec.tsx
│ │ │ │ │ └── page-project-danger-zone-feature.tsx
│ │ │ │ └── page-project-general-feature
│ │ │ │ │ ├── page-project-general-feature.spec.tsx
│ │ │ │ │ └── page-project-general-feature.tsx
│ │ │ │ ├── page-settings.spec.tsx
│ │ │ │ ├── page-settings.tsx
│ │ │ │ ├── router
│ │ │ │ └── router.tsx
│ │ │ │ └── ui
│ │ │ │ ├── container
│ │ │ │ ├── container.spec.tsx
│ │ │ │ └── container.tsx
│ │ │ │ ├── page-organization-api
│ │ │ │ ├── crud-modal
│ │ │ │ │ ├── crud-modal.spec.tsx
│ │ │ │ │ └── crud-modal.tsx
│ │ │ │ ├── page-organization-api.spec.tsx
│ │ │ │ ├── page-organization-api.tsx
│ │ │ │ └── value-modal
│ │ │ │ │ ├── value-modal.spec.tsx
│ │ │ │ │ └── value-modal.tsx
│ │ │ │ ├── page-organization-billing-summary
│ │ │ │ ├── invoices-list
│ │ │ │ │ ├── invoices-list.spec.tsx
│ │ │ │ │ ├── invoices-list.tsx
│ │ │ │ │ └── table-row-invoice
│ │ │ │ │ │ ├── table-row-invoice.spec.tsx
│ │ │ │ │ │ └── table-row-invoice.tsx
│ │ │ │ ├── page-organization-billing-summary.spec.tsx
│ │ │ │ ├── page-organization-billing-summary.tsx
│ │ │ │ ├── promo-code-modal
│ │ │ │ │ ├── promo-code-modal.spec.tsx
│ │ │ │ │ └── promo-code-modal.tsx
│ │ │ │ ├── show-usage-modal
│ │ │ │ │ ├── show-usage-modal.spec.tsx
│ │ │ │ │ └── show-usage-modal.tsx
│ │ │ │ └── show-usage-value-modal
│ │ │ │ │ ├── show-usage-value-modal.spec.tsx
│ │ │ │ │ └── show-usage-value-modal.tsx
│ │ │ │ ├── page-organization-billing
│ │ │ │ ├── billing-details
│ │ │ │ │ ├── billing-details.spec.tsx
│ │ │ │ │ └── billing-details.tsx
│ │ │ │ ├── page-organization-billing.spec.tsx
│ │ │ │ └── page-organization-billing.tsx
│ │ │ │ ├── page-organization-container-registries
│ │ │ │ ├── page-organization-container-registries.spec.tsx
│ │ │ │ └── page-organization-container-registries.tsx
│ │ │ │ ├── page-organization-danger-zone
│ │ │ │ ├── page-organization-danger-zone.spec.tsx
│ │ │ │ └── page-organization-danger-zone.tsx
│ │ │ │ ├── page-organization-general
│ │ │ │ ├── page-organization-general.spec.tsx
│ │ │ │ └── page-organization-general.tsx
│ │ │ │ ├── page-organization-github-repository-access
│ │ │ │ ├── disconnection-confirm-modal
│ │ │ │ │ ├── disconnection-confirm-modal.spec.tsx
│ │ │ │ │ └── disconnection-confirm-modal.tsx
│ │ │ │ ├── page-organization-github-repository-access.spec.tsx
│ │ │ │ ├── page-organization-github-repository-access.tsx
│ │ │ │ └── section-github-app
│ │ │ │ │ ├── section-github-app.spec.tsx
│ │ │ │ │ └── section-github-app.tsx
│ │ │ │ ├── page-organization-helm-repositories
│ │ │ │ ├── page-organization-helm-repositories.spec.tsx
│ │ │ │ └── page-organization-helm-repositories.tsx
│ │ │ │ ├── page-organization-members
│ │ │ │ ├── create-modal
│ │ │ │ │ ├── create-modal.spec.tsx
│ │ │ │ │ └── create-modal.tsx
│ │ │ │ ├── page-organization-members.spec.tsx
│ │ │ │ ├── page-organization-members.tsx
│ │ │ │ └── row-member
│ │ │ │ │ ├── row-member.spec.tsx
│ │ │ │ │ └── row-member.tsx
│ │ │ │ ├── page-organization-roles-edit
│ │ │ │ ├── page-organization-roles-edit.spec.tsx
│ │ │ │ ├── page-organization-roles-edit.tsx
│ │ │ │ ├── row-cluster
│ │ │ │ │ ├── row-cluster.spec.tsx
│ │ │ │ │ └── row-cluster.tsx
│ │ │ │ ├── row-project
│ │ │ │ │ ├── row-project.spec.tsx
│ │ │ │ │ └── row-project.tsx
│ │ │ │ ├── table-clusters
│ │ │ │ │ ├── table-clusters.spec.tsx
│ │ │ │ │ └── table-clusters.tsx
│ │ │ │ └── table
│ │ │ │ │ ├── table.spec.tsx
│ │ │ │ │ └── table.tsx
│ │ │ │ ├── page-organization-roles
│ │ │ │ ├── create-modal
│ │ │ │ │ ├── create-modal.spec.tsx
│ │ │ │ │ └── create-modal.tsx
│ │ │ │ ├── page-organization-roles.spec.tsx
│ │ │ │ └── page-organization-roles.tsx
│ │ │ │ ├── page-organization-webhooks
│ │ │ │ ├── page-organization-webhooks.spec.tsx
│ │ │ │ ├── page-organization-webhooks.tsx
│ │ │ │ └── webhook-crud-modal
│ │ │ │ │ ├── webhook-crud-modal.spec.tsx
│ │ │ │ │ └── webhook-crud-modal.tsx
│ │ │ │ ├── page-project-danger-zone
│ │ │ │ ├── page-project-danger-zone.spec.tsx
│ │ │ │ └── page-project-danger-zone.tsx
│ │ │ │ └── page-project-general
│ │ │ │ ├── page-project-general.spec.tsx
│ │ │ │ └── page-project-general.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ └── user
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ ├── index.ts
│ │ └── lib
│ │ │ ├── feature
│ │ │ └── page-user-general-feature
│ │ │ │ ├── page-user-general-feature.spec.tsx
│ │ │ │ └── page-user-general-feature.tsx
│ │ │ ├── page-user.spec.tsx
│ │ │ ├── page-user.tsx
│ │ │ ├── router
│ │ │ └── router.tsx
│ │ │ └── ui
│ │ │ ├── container
│ │ │ ├── container.spec.tsx
│ │ │ └── container.tsx
│ │ │ └── page-user-general
│ │ │ ├── page-user-general.spec.tsx
│ │ │ └── page-user-general.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
├── shared
│ ├── assistant
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── assistant-context
│ │ │ │ └── assistant-context.ts
│ │ │ │ ├── assistant-icon-switcher
│ │ │ │ └── assistant-icon-switcher.tsx
│ │ │ │ ├── assistant-icon
│ │ │ │ └── assistant-icon.ts
│ │ │ │ ├── assistant-panel
│ │ │ │ └── assistant-panel.tsx
│ │ │ │ ├── assistant-trigger
│ │ │ │ └── assistant-trigger.tsx
│ │ │ │ ├── dot-status
│ │ │ │ └── dot-status.tsx
│ │ │ │ ├── hit
│ │ │ │ └── hit.tsx
│ │ │ │ ├── hooks
│ │ │ │ ├── use-contextual-doc-links
│ │ │ │ │ └── use-contextual-doc-links.ts
│ │ │ │ └── use-qovery-status
│ │ │ │ │ └── use-qovery-status.ts
│ │ │ │ ├── instant-search-provider
│ │ │ │ └── instant-search-provider.tsx
│ │ │ │ ├── need-help
│ │ │ │ └── need-help.tsx
│ │ │ │ └── snippet
│ │ │ │ └── snippet.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── auth
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── enum
│ │ │ │ └── auth.enum.ts
│ │ │ │ ├── use-auth
│ │ │ │ ├── use-auth.spec.ts
│ │ │ │ └── use-auth.tsx
│ │ │ │ └── use-invite-member
│ │ │ │ ├── use-invite-member.spec.tsx
│ │ │ │ └── use-invite-member.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── console-shared
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── add-credit-card-modal
│ │ │ │ ├── feature
│ │ │ │ │ ├── add-credit-card-modal-feature.spec.tsx
│ │ │ │ │ └── add-credit-card-modal-feature.tsx
│ │ │ │ └── ui
│ │ │ │ │ ├── add-credit-card-modal.spec.tsx
│ │ │ │ │ └── add-credit-card-modal.tsx
│ │ │ │ ├── application-settings
│ │ │ │ ├── ui
│ │ │ │ │ ├── application-settings-healthchecks
│ │ │ │ │ │ ├── application-settings-healthchecks.spec.tsx
│ │ │ │ │ │ └── application-settings-healthchecks.tsx
│ │ │ │ │ └── application-settings-resources
│ │ │ │ │ │ ├── application-settings-resources.spec.tsx
│ │ │ │ │ │ └── application-settings-resources.tsx
│ │ │ │ └── utils
│ │ │ │ │ ├── probe-formatted.spec.ts
│ │ │ │ │ └── probe-formatted.ts
│ │ │ │ ├── cluster-settings
│ │ │ │ ├── feature
│ │ │ │ │ ├── cluster-credentials-settings-feature
│ │ │ │ │ │ ├── cluster-credentials-settings-feature.spec.tsx
│ │ │ │ │ │ └── cluster-credentials-settings-feature.tsx
│ │ │ │ │ └── cluster-resources-settings-feature
│ │ │ │ │ │ ├── cluster-resources-settings-feature.spec.tsx
│ │ │ │ │ │ ├── cluster-resources-settings-feature.tsx
│ │ │ │ │ │ └── utils
│ │ │ │ │ │ ├── list-instance-type-formatter.spec.ts
│ │ │ │ │ │ └── list-instance-type-formatter.ts
│ │ │ │ └── ui
│ │ │ │ │ ├── card-cluster-feature
│ │ │ │ │ ├── card-cluster-feature.spec.tsx
│ │ │ │ │ └── card-cluster-feature.tsx
│ │ │ │ │ ├── cluster-credentials-settings
│ │ │ │ │ ├── cluster-credentials-settings.spec.tsx
│ │ │ │ │ └── cluster-credentials-settings.tsx
│ │ │ │ │ ├── cluster-general-settings
│ │ │ │ │ ├── cluster-general-settings.spec.tsx
│ │ │ │ │ └── cluster-general-settings.tsx
│ │ │ │ │ └── cluster-resources-settings
│ │ │ │ │ ├── button-popover-subnets
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── button-popover-subnets.spec.tsx.snap
│ │ │ │ │ ├── button-popover-subnets.spec.tsx
│ │ │ │ │ └── button-popover-subnets.tsx
│ │ │ │ │ ├── cluster-resources-settings.spec.tsx
│ │ │ │ │ ├── cluster-resources-settings.tsx
│ │ │ │ │ └── karpenter-image.svg
│ │ │ │ ├── credit-card-form
│ │ │ │ └── ui
│ │ │ │ │ ├── credit-card-form.spec.tsx
│ │ │ │ │ └── credit-card-form.tsx
│ │ │ │ ├── database-settings-resources
│ │ │ │ ├── feature
│ │ │ │ │ └── settings-resources-instance-types-feature
│ │ │ │ │ │ ├── setting-resources-instance-types-feature.spec.tsx
│ │ │ │ │ │ └── setting-resources-instance-types-feature.tsx
│ │ │ │ └── ui
│ │ │ │ │ ├── database-settings-resources
│ │ │ │ │ ├── database-settings-resources.spec.tsx
│ │ │ │ │ └── database-settings-resources.tsx
│ │ │ │ │ └── settings-resources-instance-types
│ │ │ │ │ ├── setting-resources-instance-types.spec.tsx
│ │ │ │ │ └── setting-resources-instance-types.tsx
│ │ │ │ ├── entrypoint-cmd-inputs
│ │ │ │ └── ui
│ │ │ │ │ ├── entrypoint-cmd-inputs.spec.tsx
│ │ │ │ │ └── entrypoint-cmd-inputs.tsx
│ │ │ │ ├── flow-create-port
│ │ │ │ ├── ui
│ │ │ │ │ ├── crud-modal
│ │ │ │ │ │ ├── crud-modal.spec.tsx
│ │ │ │ │ │ └── crud-modal.tsx
│ │ │ │ │ └── flow-create-port
│ │ │ │ │ │ ├── flow-create-port.spec.tsx
│ │ │ │ │ │ └── flow-create-port.tsx
│ │ │ │ └── utils
│ │ │ │ │ ├── port-healthcheck.spec.ts
│ │ │ │ │ └── port-healthcheck.ts
│ │ │ │ ├── force-run-modal
│ │ │ │ ├── feature
│ │ │ │ │ ├── force-run-modal-feature.spec.tsx
│ │ │ │ │ └── force-run-modal-feature.tsx
│ │ │ │ └── ui
│ │ │ │ │ ├── force-run-modal.spec.tsx
│ │ │ │ │ └── force-run-modal.tsx
│ │ │ │ ├── general-container-settings
│ │ │ │ └── ui
│ │ │ │ │ ├── general-container-settings.spec.tsx
│ │ │ │ │ ├── general-container-settings.tsx
│ │ │ │ │ ├── image-name.tsx
│ │ │ │ │ └── image-tag.tsx
│ │ │ │ ├── git-repository-settings
│ │ │ │ ├── feature
│ │ │ │ │ └── edit-git-repository-settings-feature
│ │ │ │ │ │ ├── edit-git-repository-settings-feature.spec.tsx
│ │ │ │ │ │ └── edit-git-repository-settings-feature.tsx
│ │ │ │ └── ui
│ │ │ │ │ ├── confirmation-git-modal
│ │ │ │ │ ├── confirmation-git-modal.spec.tsx
│ │ │ │ │ └── confirmation-git-modal.tsx
│ │ │ │ │ └── git-repository-settings
│ │ │ │ │ ├── git-repository-settings.spec.tsx
│ │ │ │ │ └── git-repository-settings.tsx
│ │ │ │ ├── github-application-callback
│ │ │ │ └── github-application-callback-feature
│ │ │ │ │ ├── github-application-callback-feature.spec.tsx
│ │ │ │ │ └── github-application-callback-feature.tsx
│ │ │ │ ├── job-configure-settings
│ │ │ │ └── ui
│ │ │ │ │ ├── job-configure-settings.spec.tsx
│ │ │ │ │ └── job-configure-settings.tsx
│ │ │ │ ├── job-general-settings
│ │ │ │ └── ui
│ │ │ │ │ ├── job-general-settings.spec.tsx
│ │ │ │ │ └── job-general-settings.tsx
│ │ │ │ ├── layout-logs
│ │ │ │ ├── buttons-actions-logs
│ │ │ │ │ ├── buttons-actions-logs.spec.tsx
│ │ │ │ │ └── buttons-actions-logs.tsx
│ │ │ │ ├── card-cluster
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── card-cluster.spec.tsx.snap
│ │ │ │ │ ├── card-cluster.spec.tsx
│ │ │ │ │ └── card-cluster.tsx
│ │ │ │ ├── layout-logs.spec.tsx
│ │ │ │ ├── layout-logs.tsx
│ │ │ │ ├── placeholder-logs
│ │ │ │ │ ├── loader-placeholder
│ │ │ │ │ │ └── loader-placeholder.tsx
│ │ │ │ │ ├── placeholder-logs.spec.tsx
│ │ │ │ │ └── placeholder-logs.tsx
│ │ │ │ └── tabs-cluster-logs
│ │ │ │ │ ├── tabs-cluster-logs.spec.tsx
│ │ │ │ │ └── tabs-cluster-logs.tsx
│ │ │ │ ├── member-invitation
│ │ │ │ ├── accept-invitation
│ │ │ │ │ ├── feature
│ │ │ │ │ │ ├── accept-invitation-feature.spec.tsx
│ │ │ │ │ │ └── accept-invitation-feature.tsx
│ │ │ │ │ └── ui
│ │ │ │ │ │ └── accept-invitation
│ │ │ │ │ │ ├── accept-invitation.spec.tsx
│ │ │ │ │ │ └── accept-invitation.tsx
│ │ │ │ └── invite-details
│ │ │ │ │ ├── feature
│ │ │ │ │ ├── invite-details-feature.spec.tsx
│ │ │ │ │ └── invite-details-feature.tsx
│ │ │ │ │ └── ui
│ │ │ │ │ ├── invite-details.spec.tsx
│ │ │ │ │ └── invite-details.tsx
│ │ │ │ └── settings-heading
│ │ │ │ └── settings-heading.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── devops-copilot
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── devops-copilot-button
│ │ │ │ └── devops-copilot-button.tsx
│ │ │ │ ├── devops-copilot-context
│ │ │ │ └── devops-copilot-context.ts
│ │ │ │ ├── devops-copilot-panel
│ │ │ │ ├── devops-copilot-history.tsx
│ │ │ │ ├── devops-copilot-panel.tsx
│ │ │ │ ├── submit-message.ts
│ │ │ │ ├── submit-vote.ts
│ │ │ │ ├── use-thread.tsx
│ │ │ │ └── use-threads.tsx
│ │ │ │ ├── devops-copilot-trigger
│ │ │ │ └── devops-copilot-trigger.tsx
│ │ │ │ ├── dot-status
│ │ │ │ └── dot-status.tsx
│ │ │ │ └── hooks
│ │ │ │ ├── use-contextual-doc-links
│ │ │ │ └── use-contextual-doc-links.ts
│ │ │ │ ├── use-qovery-context
│ │ │ │ └── use-qovery-context.ts
│ │ │ │ └── use-qovery-status
│ │ │ │ └── use-qovery-status.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── enums
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── colors.enum.ts
│ │ │ │ ├── constants
│ │ │ │ ├── countries.ts
│ │ │ │ ├── currency-dictionary.ts
│ │ │ │ ├── environment-mode-values.ts
│ │ │ │ ├── timezone-values.ts
│ │ │ │ └── weekdays-values.ts
│ │ │ │ ├── external-service.enum.ts
│ │ │ │ ├── icon.enum.ts
│ │ │ │ ├── job.type.ts
│ │ │ │ ├── logs-type.enum.ts
│ │ │ │ ├── member-role.enum.ts
│ │ │ │ ├── memory-size.enum.ts
│ │ │ │ ├── probe-type-healthchecks.enum.ts
│ │ │ │ ├── running-state.enum.ts
│ │ │ │ ├── service-type.enum.ts
│ │ │ │ └── utils
│ │ │ │ └── get-service-type.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── factories
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── application-deployment-factory.mock.ts
│ │ │ │ ├── application-factory.mock.ts
│ │ │ │ ├── auth-provider.mock.ts
│ │ │ │ ├── cluster-factory.mock.ts
│ │ │ │ ├── cluster-log-factory.mock.ts
│ │ │ │ ├── container-factory.mock.ts
│ │ │ │ ├── credit-card-factory.mock.ts
│ │ │ │ ├── database-deployments-factory.mock.ts
│ │ │ │ ├── database-factory.mock.ts
│ │ │ │ ├── database-master-credentials-factory.mock.ts
│ │ │ │ ├── database-status.mock.ts
│ │ │ │ ├── deployment-log-factory.mock.ts
│ │ │ │ ├── deployment-rules-factory.mock.ts
│ │ │ │ ├── deployment-stages-factory.mock.ts
│ │ │ │ ├── environment-factory.mock.ts
│ │ │ │ ├── environment-variable-factory.mock.ts
│ │ │ │ ├── events.mock.ts
│ │ │ │ ├── helm-factory.mock.ts
│ │ │ │ ├── job-factory.mock.ts
│ │ │ │ ├── organizations-factory.mock.ts
│ │ │ │ ├── organizations-handler.mock.ts
│ │ │ │ ├── projects-factory.mock.ts
│ │ │ │ ├── user-signup-factory.mock.ts
│ │ │ │ └── webhook-factory.mock.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── iam
│ │ ├── data-access
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ │ ├── index.ts
│ │ │ │ └── lib
│ │ │ │ │ └── domains-user-data-access.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── use-user-account
│ │ │ │ └── use-user-account.ts
│ │ │ │ ├── use-user-edit-account
│ │ │ │ └── use-user-edit-account.ts
│ │ │ │ └── use-user-role
│ │ │ │ └── use-user-role.ts
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── interfaces
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── common
│ │ │ │ ├── detect-new-row.interface.ts
│ │ │ │ ├── flow-port-data.interface.ts
│ │ │ │ ├── flow-variable-data.interface.ts
│ │ │ │ └── value.interface.ts
│ │ │ │ ├── domain
│ │ │ │ ├── application-creation-flow.interface.ts
│ │ │ │ ├── cluster-creation-flow.interface.ts
│ │ │ │ ├── job-creation-flow.interface.ts
│ │ │ │ └── service-running-status.interface.ts
│ │ │ │ └── types
│ │ │ │ ├── deployment-service.type.ts
│ │ │ │ ├── environment-variable-secret-or-public.type.ts
│ │ │ │ └── loading-status.type.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── router
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ └── protected-route
│ │ │ │ ├── protected-route.spec.tsx
│ │ │ │ └── protected-route.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── routes
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── router.ts
│ │ │ │ └── sub-router
│ │ │ │ ├── application.router.ts
│ │ │ │ ├── audit-logs.router.ts
│ │ │ │ ├── cluster.router.ts
│ │ │ │ ├── clusters.router.ts
│ │ │ │ ├── database.router.ts
│ │ │ │ ├── environments.router.ts
│ │ │ │ ├── helm.router.ts
│ │ │ │ ├── job.router.ts
│ │ │ │ ├── login.router.ts
│ │ │ │ ├── logs.router.ts
│ │ │ │ ├── onboarding.router.ts
│ │ │ │ ├── services.router.ts
│ │ │ │ ├── settings.router.ts
│ │ │ │ └── user.router.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── spotlight
│ │ └── feature
│ │ │ ├── .babelrc
│ │ │ ├── .eslintrc.json
│ │ │ ├── README.md
│ │ │ ├── jest.config.ts
│ │ │ ├── project.json
│ │ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── hooks
│ │ │ │ ├── use-quick-actions
│ │ │ │ │ └── use-quick-actions.ts
│ │ │ │ ├── use-service-type
│ │ │ │ │ └── use-service-type.ts
│ │ │ │ └── use-services-search
│ │ │ │ │ └── use-services-search.ts
│ │ │ │ ├── spotlight
│ │ │ │ ├── spotlight.spec.tsx
│ │ │ │ └── spotlight.tsx
│ │ │ │ └── sub-command
│ │ │ │ ├── sub-command.spec.tsx
│ │ │ │ └── sub-command.tsx
│ │ │ ├── tsconfig.json
│ │ │ ├── tsconfig.lib.json
│ │ │ └── tsconfig.spec.json
│ ├── toast
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── toast.tsx
│ │ │ │ └── utils
│ │ │ │ ├── toast-error.spec.tsx
│ │ │ │ └── toast-error.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── ui
│ │ ├── .babelrc
│ │ ├── .eslintignore
│ │ ├── .eslintrc.json
│ │ ├── .storybook
│ │ │ ├── main.ts
│ │ │ └── preview.tsx
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── postcss.config.js
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── assets
│ │ │ │ ├── devicon
│ │ │ │ │ ├── airbyte.svg
│ │ │ │ │ ├── clickhouse.svg
│ │ │ │ │ ├── cloudformation.svg
│ │ │ │ │ ├── crossplane.svg
│ │ │ │ │ ├── datadog.svg
│ │ │ │ │ ├── ec2.svg
│ │ │ │ │ ├── kubecost.svg
│ │ │ │ │ ├── lambda.svg
│ │ │ │ │ ├── s3.svg
│ │ │ │ │ ├── scaleway.svg
│ │ │ │ │ ├── temporal.svg
│ │ │ │ │ └── windmill.svg
│ │ │ │ ├── fonts
│ │ │ │ │ ├── font-awesome
│ │ │ │ │ │ └── .gitkeep
│ │ │ │ │ ├── hack
│ │ │ │ │ │ ├── hack-regular.woff
│ │ │ │ │ │ └── hack-regular.woff2
│ │ │ │ │ └── roboto
│ │ │ │ │ │ ├── roboto-bold.woff
│ │ │ │ │ │ ├── roboto-bold.woff2
│ │ │ │ │ │ ├── roboto-medium.woff
│ │ │ │ │ │ ├── roboto-medium.woff2
│ │ │ │ │ │ ├── roboto-regular.woff
│ │ │ │ │ │ └── roboto-regular.woff2
│ │ │ │ ├── images
│ │ │ │ │ ├── event-placeholder-dark.svg
│ │ │ │ │ ├── event-placeholder-light.svg
│ │ │ │ │ └── paperclip_emoji.png
│ │ │ │ ├── logos
│ │ │ │ │ ├── logo-black.svg
│ │ │ │ │ ├── logo-icon.svg
│ │ │ │ │ └── logo-white.svg
│ │ │ │ └── services
│ │ │ │ │ ├── application.svg
│ │ │ │ │ ├── cron-job.svg
│ │ │ │ │ ├── database.svg
│ │ │ │ │ ├── helm.svg
│ │ │ │ │ └── lifecycle-job.svg
│ │ │ │ ├── components
│ │ │ │ ├── accordion
│ │ │ │ │ ├── accordion.stories.tsx
│ │ │ │ │ └── accordion.tsx
│ │ │ │ ├── action-toolbar
│ │ │ │ │ ├── action-toolbar.stories.tsx
│ │ │ │ │ └── action-toolbar.tsx
│ │ │ │ ├── action-trigger-status-chip
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── action-trigger-status-chip.spec.tsx.snap
│ │ │ │ │ ├── action-trigger-status-chip.spec.tsx
│ │ │ │ │ ├── action-trigger-status-chip.stories.tsx
│ │ │ │ │ └── action-trigger-status-chip.tsx
│ │ │ │ ├── animated-gradient-text
│ │ │ │ │ ├── animated-gradient-text.spec.tsx
│ │ │ │ │ ├── animated-gradient-text.stories.tsx
│ │ │ │ │ └── animated-gradient-text.tsx
│ │ │ │ ├── avatar
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── avatar.spec.tsx.snap
│ │ │ │ │ ├── avatar.spec.tsx
│ │ │ │ │ ├── avatar.stories.tsx
│ │ │ │ │ └── avatar.tsx
│ │ │ │ ├── badge-deployment-order
│ │ │ │ │ ├── badge-deployment-order.spec.tsx
│ │ │ │ │ └── badge-deployment-order.tsx
│ │ │ │ ├── badge
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── badge.spec.tsx.snap
│ │ │ │ │ ├── badge.spec.tsx
│ │ │ │ │ ├── badge.stories.tsx
│ │ │ │ │ └── badge.tsx
│ │ │ │ ├── banner
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── banner.spec.tsx.snap
│ │ │ │ │ ├── banner.spec.tsx
│ │ │ │ │ ├── banner.stories.tsx
│ │ │ │ │ └── banner.tsx
│ │ │ │ ├── block-content-delete
│ │ │ │ │ ├── block-content-delete.spec.tsx
│ │ │ │ │ ├── block-content-delete.stories.tsx
│ │ │ │ │ └── block-content-delete.tsx
│ │ │ │ ├── block-content
│ │ │ │ │ ├── block-content.spec.tsx
│ │ │ │ │ ├── block-content.stories.tsx
│ │ │ │ │ └── block-content.tsx
│ │ │ │ ├── board
│ │ │ │ │ ├── board.stories.tsx
│ │ │ │ │ └── board.tsx
│ │ │ │ ├── button-primitive
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── button-primitive.spec.tsx.snap
│ │ │ │ │ ├── button-primitive.spec.tsx
│ │ │ │ │ └── button-primitive.tsx
│ │ │ │ ├── button
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── button.spec.tsx.snap
│ │ │ │ │ ├── button.spec.tsx
│ │ │ │ │ ├── button.stories.tsx
│ │ │ │ │ └── button.tsx
│ │ │ │ ├── buttons
│ │ │ │ │ └── button-icon-action
│ │ │ │ │ │ ├── button-icon-action-element
│ │ │ │ │ │ ├── button-icon-action-element.spec.tsx
│ │ │ │ │ │ └── button-icon-action-element.tsx
│ │ │ │ │ │ ├── button-icon-action.spec.tsx
│ │ │ │ │ │ ├── button-icon-action.stories.tsx
│ │ │ │ │ │ └── button-icon-action.tsx
│ │ │ │ ├── callout
│ │ │ │ │ ├── callout.stories.tsx
│ │ │ │ │ └── callout.tsx
│ │ │ │ ├── checkbox
│ │ │ │ │ ├── checkbox.stories.tsx
│ │ │ │ │ └── checkbox.tsx
│ │ │ │ ├── code-editor
│ │ │ │ │ ├── code-editor.spec.tsx
│ │ │ │ │ ├── code-editor.stories.tsx
│ │ │ │ │ └── code-editor.tsx
│ │ │ │ ├── command-menu
│ │ │ │ │ ├── command-menu.stories.tsx
│ │ │ │ │ └── command-menu.tsx
│ │ │ │ ├── copy-to-clipboard-button-icon
│ │ │ │ │ ├── copy-to-clipboard-button-icon.spec.tsx
│ │ │ │ │ ├── copy-to-clipboard-button-icon.stories.tsx
│ │ │ │ │ └── copy-to-clipboard-button-icon.tsx
│ │ │ │ ├── copy-to-clipboard
│ │ │ │ │ ├── copy-to-clipboard.stories.tsx
│ │ │ │ │ └── copy-to-clipboard.tsx
│ │ │ │ ├── date-picker
│ │ │ │ │ ├── date-picker-header
│ │ │ │ │ │ ├── date-picker-header.spec.tsx
│ │ │ │ │ │ └── date-picker-header.tsx
│ │ │ │ │ ├── date-picker.spec.tsx
│ │ │ │ │ ├── date-picker.stories.tsx
│ │ │ │ │ └── date-picker.tsx
│ │ │ │ ├── description-list
│ │ │ │ │ ├── description-list.stories.tsx
│ │ │ │ │ └── description-list.tsx
│ │ │ │ ├── dropdown-menu
│ │ │ │ │ ├── dropdown-menu.stories.tsx
│ │ │ │ │ └── dropdown-menu.tsx
│ │ │ │ ├── dropzone
│ │ │ │ │ ├── dropzone.spec.tsx
│ │ │ │ │ ├── dropzone.stories.tsx
│ │ │ │ │ └── dropzone.tsx
│ │ │ │ ├── empty-state
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── empty-state.spec.tsx.snap
│ │ │ │ │ ├── empty-state.spec.tsx
│ │ │ │ │ ├── empty-state.stories.tsx
│ │ │ │ │ └── empty-state.tsx
│ │ │ │ ├── enable-box
│ │ │ │ │ ├── enable-box.spec.tsx
│ │ │ │ │ ├── enable-box.stories.tsx
│ │ │ │ │ └── enable-box.tsx
│ │ │ │ ├── error-boundary
│ │ │ │ │ └── error-boundary.tsx
│ │ │ │ ├── funnel-flow-body
│ │ │ │ │ ├── funnel-flow-body.spec.tsx
│ │ │ │ │ ├── funnel-flow-body.stories.tsx
│ │ │ │ │ └── funnel-flow-body.tsx
│ │ │ │ ├── funnel-flow
│ │ │ │ │ ├── funnel-flow.spec.tsx
│ │ │ │ │ ├── funnel-flow.stories.tsx
│ │ │ │ │ └── funnel-flow.tsx
│ │ │ │ ├── header
│ │ │ │ │ ├── header.spec.tsx
│ │ │ │ │ ├── header.stories.tsx
│ │ │ │ │ └── header.tsx
│ │ │ │ ├── heading
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── heading.spec.tsx.snap
│ │ │ │ │ ├── heading.spec.tsx
│ │ │ │ │ ├── heading.tsx
│ │ │ │ │ └── level-context.ts
│ │ │ │ ├── icon-fa
│ │ │ │ │ ├── icon-fa.spec.tsx
│ │ │ │ │ └── icon-fa.tsx
│ │ │ │ ├── icon-flag
│ │ │ │ │ ├── icon-flag.spec.tsx
│ │ │ │ │ ├── icon-flag.stories.tsx
│ │ │ │ │ └── icon-flag.tsx
│ │ │ │ ├── icon
│ │ │ │ │ ├── icon-awesome.enum.tsx
│ │ │ │ │ ├── icon.spec.tsx
│ │ │ │ │ ├── icon.stories.tsx
│ │ │ │ │ ├── icon.tsx
│ │ │ │ │ ├── icons-git
│ │ │ │ │ │ ├── bitbucket.tsx
│ │ │ │ │ │ ├── github.tsx
│ │ │ │ │ │ └── gitlab.tsx
│ │ │ │ │ ├── icons-status
│ │ │ │ │ │ ├── build-error.tsx
│ │ │ │ │ │ ├── building.tsx
│ │ │ │ │ │ ├── canceled.tsx
│ │ │ │ │ │ ├── canceling.tsx
│ │ │ │ │ │ ├── deleted.tsx
│ │ │ │ │ │ ├── deleting.tsx
│ │ │ │ │ │ ├── deployed.tsx
│ │ │ │ │ │ ├── deploying.tsx
│ │ │ │ │ │ ├── error.tsx
│ │ │ │ │ │ ├── index.ts
│ │ │ │ │ │ ├── queued.tsx
│ │ │ │ │ │ ├── restarted.tsx
│ │ │ │ │ │ ├── restarting.tsx
│ │ │ │ │ │ ├── skip.tsx
│ │ │ │ │ │ ├── spinner.tsx
│ │ │ │ │ │ ├── stopped.tsx
│ │ │ │ │ │ ├── stopping.tsx
│ │ │ │ │ │ ├── unknown.tsx
│ │ │ │ │ │ └── warning.tsx
│ │ │ │ │ └── icons
│ │ │ │ │ │ ├── application.tsx
│ │ │ │ │ │ ├── aws-gray.tsx
│ │ │ │ │ │ ├── aws.tsx
│ │ │ │ │ │ ├── azure.tsx
│ │ │ │ │ │ ├── check-circle.tsx
│ │ │ │ │ │ ├── children-arrow.tsx
│ │ │ │ │ │ ├── civo.tsx
│ │ │ │ │ │ ├── cloudformationIcon.tsx
│ │ │ │ │ │ ├── container.tsx
│ │ │ │ │ │ ├── cron-job-stroke-icon.tsx
│ │ │ │ │ │ ├── cron-job.tsx
│ │ │ │ │ │ ├── database.tsx
│ │ │ │ │ │ ├── do.tsx
│ │ │ │ │ │ ├── docker.tsx
│ │ │ │ │ │ ├── doppler.tsx
│ │ │ │ │ │ ├── eks.tsx
│ │ │ │ │ │ ├── environment.tsx
│ │ │ │ │ │ ├── gcp-artifact-registry.tsx
│ │ │ │ │ │ ├── gcp-gray.tsx
│ │ │ │ │ │ ├── gcp.tsx
│ │ │ │ │ │ ├── generic-registry.tsx
│ │ │ │ │ │ ├── git.tsx
│ │ │ │ │ │ ├── google.tsx
│ │ │ │ │ │ ├── helm-official.tsx
│ │ │ │ │ │ ├── helm-service.tsx
│ │ │ │ │ │ ├── hetzner.tsx
│ │ │ │ │ │ ├── ibm-cloud.tsx
│ │ │ │ │ │ ├── information.tsx
│ │ │ │ │ │ ├── kubernetes.tsx
│ │ │ │ │ │ ├── lifecycle-job-stroke-icon.tsx
│ │ │ │ │ │ ├── lifecycle-job.tsx
│ │ │ │ │ │ ├── microsoft.tsx
│ │ │ │ │ │ ├── mongodb.tsx
│ │ │ │ │ │ ├── mysql.tsx
│ │ │ │ │ │ ├── oracle-cloud.tsx
│ │ │ │ │ │ ├── ovh-cloud.tsx
│ │ │ │ │ │ ├── postgresql.tsx
│ │ │ │ │ │ ├── qovery.tsx
│ │ │ │ │ │ ├── redis.tsx
│ │ │ │ │ │ ├── scaleway-gray.tsx
│ │ │ │ │ │ ├── scaleway.tsx
│ │ │ │ │ │ ├── services.tsx
│ │ │ │ │ │ ├── slack.tsx
│ │ │ │ │ │ └── terraform.tsx
│ │ │ │ ├── indicator
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── indicator.spec.tsx.snap
│ │ │ │ │ ├── indicator.spec.tsx
│ │ │ │ │ ├── indicator.stories.tsx
│ │ │ │ │ └── indicator.tsx
│ │ │ │ ├── inputs
│ │ │ │ │ ├── input-checkbox
│ │ │ │ │ │ ├── input-checkbox.spec.tsx
│ │ │ │ │ │ ├── input-checkbox.stories.tsx
│ │ │ │ │ │ └── input-checkbox.tsx
│ │ │ │ │ ├── input-credit-card
│ │ │ │ │ │ ├── images
│ │ │ │ │ │ │ └── credit-card-images.tsx
│ │ │ │ │ │ ├── input-credit-card.spec.tsx
│ │ │ │ │ │ ├── input-credit-card.stories.tsx
│ │ │ │ │ │ └── input-credit-card.tsx
│ │ │ │ │ ├── input-file
│ │ │ │ │ │ ├── input-file.spec.tsx
│ │ │ │ │ │ ├── input-file.stories.tsx
│ │ │ │ │ │ └── input-file.tsx
│ │ │ │ │ ├── input-filter
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ └── input-filter.spec.tsx.snap
│ │ │ │ │ │ ├── input-filter.spec.tsx
│ │ │ │ │ │ ├── input-filter.stories.tsx
│ │ │ │ │ │ └── input-filter.tsx
│ │ │ │ │ ├── input-radio-box
│ │ │ │ │ │ ├── input-radio-box.spec.tsx
│ │ │ │ │ │ ├── input-radio-box.stories.tsx
│ │ │ │ │ │ └── input-radio-box.tsx
│ │ │ │ │ ├── input-radio
│ │ │ │ │ │ ├── input-radio.spec.tsx
│ │ │ │ │ │ ├── input-radio.stories.tsx
│ │ │ │ │ │ └── input-radio.tsx
│ │ │ │ │ ├── input-search
│ │ │ │ │ │ ├── input-search.spec.tsx
│ │ │ │ │ │ └── input-search.tsx
│ │ │ │ │ ├── input-select-small
│ │ │ │ │ │ ├── input-select-small.spec.tsx
│ │ │ │ │ │ ├── input-select-small.stories.tsx
│ │ │ │ │ │ └── input-select-small.tsx
│ │ │ │ │ ├── input-select
│ │ │ │ │ │ ├── input-select.spec.tsx
│ │ │ │ │ │ ├── input-select.stories.tsx
│ │ │ │ │ │ └── input-select.tsx
│ │ │ │ │ ├── input-size-unit
│ │ │ │ │ │ ├── input-size-unit.spec.tsx
│ │ │ │ │ │ ├── input-size-unit.stories.tsx
│ │ │ │ │ │ ├── input-size-unit.tsx
│ │ │ │ │ │ └── utils.tsx
│ │ │ │ │ ├── input-tags
│ │ │ │ │ │ ├── input-tags.spec.tsx
│ │ │ │ │ │ ├── input-tags.stories.tsx
│ │ │ │ │ │ └── input-tags.tsx
│ │ │ │ │ ├── input-text-area
│ │ │ │ │ │ ├── input-text-area.spec.tsx
│ │ │ │ │ │ ├── input-text-area.stories.tsx
│ │ │ │ │ │ └── input-text-area.tsx
│ │ │ │ │ ├── input-text-small
│ │ │ │ │ │ ├── input-text-small.spec.tsx
│ │ │ │ │ │ ├── input-text-small.stories.tsx
│ │ │ │ │ │ └── input-text-small.tsx
│ │ │ │ │ ├── input-text
│ │ │ │ │ │ ├── input-text.spec.tsx
│ │ │ │ │ │ ├── input-text.stories.tsx
│ │ │ │ │ │ └── input-text.tsx
│ │ │ │ │ └── input-toggle
│ │ │ │ │ │ ├── input-toggle.spec.tsx
│ │ │ │ │ │ ├── input-toggle.stories.tsx
│ │ │ │ │ │ └── input-toggle.tsx
│ │ │ │ ├── kbd
│ │ │ │ │ └── kbd.tsx
│ │ │ │ ├── legacy-avatar
│ │ │ │ │ ├── legacy-avatar.spec.tsx
│ │ │ │ │ ├── legacy-avatar.stories.tsx
│ │ │ │ │ └── legacy-avatar.tsx
│ │ │ │ ├── link
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── link.spec.tsx.snap
│ │ │ │ │ ├── link.spec.tsx
│ │ │ │ │ ├── link.stories.tsx
│ │ │ │ │ └── link.tsx
│ │ │ │ ├── loader-dots
│ │ │ │ │ ├── loader-dots.spec.tsx
│ │ │ │ │ ├── loader-dots.stories.tsx
│ │ │ │ │ └── loader-dots.tsx
│ │ │ │ ├── loader-spinner
│ │ │ │ │ ├── loader-spinner.spec.tsx
│ │ │ │ │ ├── loader-spinner.stories.tsx
│ │ │ │ │ └── loader-spinner.tsx
│ │ │ │ ├── loading-screen
│ │ │ │ │ ├── loading-screen.spec.tsx
│ │ │ │ │ └── loading-screen.tsx
│ │ │ │ ├── menu
│ │ │ │ │ ├── menu-group
│ │ │ │ │ │ └── menu-group.tsx
│ │ │ │ │ ├── menu-item
│ │ │ │ │ │ └── menu-item.tsx
│ │ │ │ │ ├── menu.spec.tsx
│ │ │ │ │ ├── menu.stories.tsx
│ │ │ │ │ └── menu.tsx
│ │ │ │ ├── modal-alert
│ │ │ │ │ ├── modal-alert.spec.tsx
│ │ │ │ │ ├── modal-alert.tsx
│ │ │ │ │ └── use-modal-alert
│ │ │ │ │ │ ├── use-modal-alert.spec.tsx
│ │ │ │ │ │ └── use-modal-alert.tsx
│ │ │ │ ├── modal
│ │ │ │ │ ├── modal-root.spec.tsx
│ │ │ │ │ ├── modal-root.tsx
│ │ │ │ │ ├── modal.spec.tsx
│ │ │ │ │ ├── modal.stories.tsx
│ │ │ │ │ ├── modal.tsx
│ │ │ │ │ └── use-modal
│ │ │ │ │ │ ├── use-modal.spec.tsx
│ │ │ │ │ │ └── use-modal.tsx
│ │ │ │ ├── modals
│ │ │ │ │ ├── modal-confirmation
│ │ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ │ └── modal-confirmation.spec.tsx.snap
│ │ │ │ │ │ ├── modal-confirmation.spec.tsx
│ │ │ │ │ │ ├── modal-confirmation.stories.tsx
│ │ │ │ │ │ ├── modal-confirmation.tsx
│ │ │ │ │ │ └── use-modal-confirmation
│ │ │ │ │ │ │ ├── use-modal-confirmation.spec.tsx
│ │ │ │ │ │ │ └── use-modal-confirmation.tsx
│ │ │ │ │ └── modal-crud
│ │ │ │ │ │ ├── modal-crud.spec.tsx
│ │ │ │ │ │ └── modal-crud.tsx
│ │ │ │ ├── navbar
│ │ │ │ │ ├── navbar.spec.tsx
│ │ │ │ │ └── navbar.tsx
│ │ │ │ ├── navigation-left
│ │ │ │ │ ├── navigation-left-sub-link
│ │ │ │ │ │ ├── navigation-left-sub-link.spec.tsx
│ │ │ │ │ │ └── navigation-left-sub-link.tsx
│ │ │ │ │ ├── navigation-left.spec.tsx
│ │ │ │ │ ├── navigation-left.stories.tsx
│ │ │ │ │ └── navigation-left.tsx
│ │ │ │ ├── pagination
│ │ │ │ │ ├── pagination.spec.tsx
│ │ │ │ │ ├── pagination.stories.tsx
│ │ │ │ │ └── pagination.tsx
│ │ │ │ ├── password-show-hide
│ │ │ │ │ ├── password-show-hide.spec.tsx
│ │ │ │ │ ├── password-show-hide.stories.tsx
│ │ │ │ │ └── password-show-hide.tsx
│ │ │ │ ├── popover
│ │ │ │ │ ├── popover.stories.tsx
│ │ │ │ │ └── popover.tsx
│ │ │ │ ├── progress-bar
│ │ │ │ │ ├── progress-bar.stories.tsx
│ │ │ │ │ └── progress-bar.tsx
│ │ │ │ ├── radio-group
│ │ │ │ │ ├── radio-group.stories.tsx
│ │ │ │ │ └── radio-group.tsx
│ │ │ │ ├── scroll-into-view
│ │ │ │ │ ├── scroll-into-view.spec.tsx
│ │ │ │ │ └── scroll-into-view.tsx
│ │ │ │ ├── scroll-shadow-wrapper
│ │ │ │ │ ├── scroll-shadow-wrapper.spec.tsx
│ │ │ │ │ └── scroll-shadow-wrapper.tsx
│ │ │ │ ├── section
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── section.spec.tsx.snap
│ │ │ │ │ ├── section.spec.tsx
│ │ │ │ │ ├── section.stories.tsx
│ │ │ │ │ └── section.tsx
│ │ │ │ ├── segmented-control
│ │ │ │ │ ├── segmented-control.stories.tsx
│ │ │ │ │ └── segmented-control.tsx
│ │ │ │ ├── skeleton
│ │ │ │ │ ├── skeleton.spec.tsx
│ │ │ │ │ ├── skeleton.stories.tsx
│ │ │ │ │ └── skeleton.tsx
│ │ │ │ ├── slider
│ │ │ │ │ ├── slider.spec.tsx
│ │ │ │ │ ├── slider.stories.tsx
│ │ │ │ │ └── slider.tsx
│ │ │ │ ├── stage-status-chip
│ │ │ │ │ ├── stage-status-chip.spec.tsx
│ │ │ │ │ ├── stage-status-chip.stories.tsx
│ │ │ │ │ └── stage-status-chip.tsx
│ │ │ │ ├── status-chip
│ │ │ │ │ ├── __snapshots__
│ │ │ │ │ │ └── status-chip.spec.tsx.snap
│ │ │ │ │ ├── status-chip.spec.tsx
│ │ │ │ │ ├── status-chip.stories.tsx
│ │ │ │ │ └── status-chip.tsx
│ │ │ │ ├── status-label
│ │ │ │ │ ├── status-label.spec.tsx
│ │ │ │ │ ├── status-label.stories.tsx
│ │ │ │ │ └── status-label.tsx
│ │ │ │ ├── sticky-action-form-toaster
│ │ │ │ │ ├── sticky-action-form-toaster.spec.tsx
│ │ │ │ │ ├── sticky-action-form-toaster.stories.tsx
│ │ │ │ │ └── sticky-action-form-toaster.tsx
│ │ │ │ ├── table-edition
│ │ │ │ │ ├── table-edition.spec.tsx
│ │ │ │ │ └── table-edition.tsx
│ │ │ │ ├── table-filter-search
│ │ │ │ │ └── table-filter-search.tsx
│ │ │ │ ├── table-filter
│ │ │ │ │ └── table-filter.tsx
│ │ │ │ ├── table-primitives
│ │ │ │ │ ├── table-primitives.stories.tsx
│ │ │ │ │ └── table-primitives.tsx
│ │ │ │ ├── table
│ │ │ │ │ ├── table-head-filter
│ │ │ │ │ │ ├── table-head-filter.spec.tsx
│ │ │ │ │ │ └── table-head-filter.tsx
│ │ │ │ │ ├── table-head-sort
│ │ │ │ │ │ ├── table-head-sort.spec.tsx
│ │ │ │ │ │ └── table-head-sort.tsx
│ │ │ │ │ ├── table-row-deployment
│ │ │ │ │ │ ├── table-row-deployment.spec.tsx
│ │ │ │ │ │ └── table-row-deployment.tsx
│ │ │ │ │ ├── table-row-filter
│ │ │ │ │ │ ├── table-row-filter.spec.tsx
│ │ │ │ │ │ └── table-row-filter.tsx
│ │ │ │ │ ├── table-row
│ │ │ │ │ │ ├── table-row.spec.tsx
│ │ │ │ │ │ └── table-row.tsx
│ │ │ │ │ ├── table.spec.tsx
│ │ │ │ │ ├── table.stories.tsx
│ │ │ │ │ └── table.tsx
│ │ │ │ ├── tabs-primitives
│ │ │ │ │ ├── tabs-primitives.stories.tsx
│ │ │ │ │ └── tabs-primitives.tsx
│ │ │ │ ├── tabs
│ │ │ │ │ ├── tabs.spec.tsx
│ │ │ │ │ ├── tabs.stories.tsx
│ │ │ │ │ └── tabs.tsx
│ │ │ │ ├── tag-commit
│ │ │ │ │ ├── tag-commit.spec.tsx
│ │ │ │ │ ├── tag-commit.stories.tsx
│ │ │ │ │ └── tag-commit.tsx
│ │ │ │ ├── tag
│ │ │ │ │ ├── tag.spec.tsx
│ │ │ │ │ ├── tag.stories.tsx
│ │ │ │ │ └── tag.tsx
│ │ │ │ ├── toast
│ │ │ │ │ ├── toast.spec.tsx
│ │ │ │ │ ├── toast.stories.tsx
│ │ │ │ │ └── toast.tsx
│ │ │ │ ├── tooltip
│ │ │ │ │ ├── tooltip.spec.tsx
│ │ │ │ │ ├── tooltip.stories.tsx
│ │ │ │ │ └── tooltip.tsx
│ │ │ │ ├── tree-view
│ │ │ │ │ ├── tree-view.stories.tsx
│ │ │ │ │ └── tree-view.tsx
│ │ │ │ ├── truncate
│ │ │ │ │ ├── truncate.spec.tsx
│ │ │ │ │ ├── truncate.stories.tsx
│ │ │ │ │ └── truncate.tsx
│ │ │ │ ├── warning-screen-mobile
│ │ │ │ │ ├── warning-screen-mobile.spec.tsx
│ │ │ │ │ ├── warning-screen-mobile.stories.tsx
│ │ │ │ │ └── warning-screen-mobile.tsx
│ │ │ │ └── xterm
│ │ │ │ │ └── xterm.stories.tsx
│ │ │ │ ├── styles
│ │ │ │ ├── animations.stories.tsx
│ │ │ │ ├── base
│ │ │ │ │ ├── fonts.scss
│ │ │ │ │ ├── icons.scss
│ │ │ │ │ └── variable.scss
│ │ │ │ ├── components
│ │ │ │ │ ├── date-picker.scss
│ │ │ │ │ ├── input.scss
│ │ │ │ │ ├── menu.scss
│ │ │ │ │ ├── modal.scss
│ │ │ │ │ └── select.scss
│ │ │ │ ├── main.scss
│ │ │ │ └── object
│ │ │ │ │ ├── animation.scss
│ │ │ │ │ ├── code-ansi.scss
│ │ │ │ │ ├── link.scss
│ │ │ │ │ └── typography.scss
│ │ │ │ └── utils
│ │ │ │ ├── ansi.tsx
│ │ │ │ ├── toast-error.spec.tsx
│ │ │ │ ├── toast-error.tsx
│ │ │ │ └── toast.tsx
│ │ ├── tailwind.config.js
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ ├── tsconfig.spec.json
│ │ └── tsconfig.storybook.json
│ ├── util-const
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ └── shared-util-const.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── util-dates
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── util-dates.spec.ts
│ │ │ │ └── util-dates.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── util-git
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── util-git.spec.ts
│ │ │ │ └── util-git.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── util-hooks
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── use-format-hotkeys
│ │ │ │ ├── use-format-hotkeys.spec.ts
│ │ │ │ └── use-format-hotkeys.ts
│ │ │ │ └── use-support-chat
│ │ │ │ └── use-support-chat.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── util-js
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── build-git-repo-url.spec.ts
│ │ │ │ ├── build-git-repo-url.ts
│ │ │ │ ├── compute-available-environment-variable-scope.spec.ts
│ │ │ │ ├── compute-available-environment-variable-scope.ts
│ │ │ │ ├── container-registry-kind-to-icon.ts
│ │ │ │ ├── convert-memory-size.spec.ts
│ │ │ │ ├── convert-memory-size.ts
│ │ │ │ ├── cost-to-human.spec.ts
│ │ │ │ ├── cost-to-human.ts
│ │ │ │ ├── custom-tw-merge.ts
│ │ │ │ ├── environment-variable-file.spec.ts
│ │ │ │ ├── environment-variable-file.ts
│ │ │ │ ├── find-moved-indices.spec.ts
│ │ │ │ ├── find-moved-indices.ts
│ │ │ │ ├── format-cron-expression.ts
│ │ │ │ ├── format-metric.ts
│ │ │ │ ├── merge-deployment-services.spec.ts
│ │ │ │ ├── merge-deployment-services.ts
│ │ │ │ ├── object-flattener.spec.ts
│ │ │ │ ├── object-flattener.ts
│ │ │ │ ├── parse-cmd.spec.ts
│ │ │ │ ├── parse-cmd.ts
│ │ │ │ ├── parse-dotenv.spec.ts
│ │ │ │ ├── parse-dotenv.ts
│ │ │ │ ├── pluralize.spec.ts
│ │ │ │ ├── pluralize.ts
│ │ │ │ ├── refacto-payload.spec.ts
│ │ │ │ ├── refacto-payload.ts
│ │ │ │ ├── scroll-parent-to-child.ts
│ │ │ │ ├── short-to-long-id.spec.ts
│ │ │ │ ├── short-to-long-id.ts
│ │ │ │ ├── sort-by-key.spec.ts
│ │ │ │ ├── sort-by-key.ts
│ │ │ │ ├── status-actions-available.ts
│ │ │ │ ├── trim-id.spec.ts
│ │ │ │ ├── trim-id.ts
│ │ │ │ ├── uppercase-first-letter.ts
│ │ │ │ ├── url-code-editor.spec.ts
│ │ │ │ └── url-code-editor.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── util-node-env
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ └── shared-util-node-env.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── util-services
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── build-edit-service-payload.spec.ts
│ │ │ │ ├── build-edit-service-payload.ts
│ │ │ │ ├── get-service-state-colors.ts
│ │ │ │ └── service-templates.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── util-tests
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ └── shared-util-tests.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── util-types
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ └── shared-util-types.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ ├── util-web-sockets
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ │ ├── index.ts
│ │ │ └── lib
│ │ │ │ ├── metrics-web-socket-listener
│ │ │ │ └── metrics-web-socket-listener.tsx
│ │ │ │ ├── status-web-socket-listener
│ │ │ │ └── status-web-socket-listener.tsx
│ │ │ │ ├── use-metrics-web-socket
│ │ │ │ └── use-metrics-web-socket.ts
│ │ │ │ └── use-status-web-sockets
│ │ │ │ └── use-status-web-sockets.ts
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
│ └── utils
│ │ ├── .babelrc
│ │ ├── .eslintrc.json
│ │ ├── README.md
│ │ ├── jest.config.ts
│ │ ├── project.json
│ │ ├── src
│ │ ├── index.ts
│ │ └── lib
│ │ │ └── http
│ │ │ └── interceptors
│ │ │ └── auth-interceptor
│ │ │ ├── auth-interceptor.spec.ts
│ │ │ └── auth-interceptor.tsx
│ │ ├── tsconfig.json
│ │ ├── tsconfig.lib.json
│ │ └── tsconfig.spec.json
└── state
│ └── util-queries
│ ├── .babelrc
│ ├── .eslintrc.json
│ ├── README.md
│ ├── jest.config.ts
│ ├── project.json
│ ├── src
│ ├── index.ts
│ └── lib
│ │ ├── queries
│ │ └── queries.ts
│ │ └── use-react-query-ws-subscription
│ │ ├── use-react-query-ws-subscription.spec.tsx
│ │ └── use-react-query-ws-subscription.ts
│ ├── tsconfig.json
│ ├── tsconfig.lib.json
│ └── tsconfig.spec.json
├── nginx.conf
├── nx.json
├── package.json
├── pull_request_template.md
├── s.sh
├── tailwind-workspace-preset.js
├── tsconfig.base.json
└── yarn.lock
/.codecov.yml:
--------------------------------------------------------------------------------
1 | coverage:
2 | status:
3 | project:
4 | default:
5 | target: auto
6 | threshold: 0.5%
7 | patch: off
8 |
--------------------------------------------------------------------------------
/.dockerignore:
--------------------------------------------------------------------------------
1 | .git
2 | node_modules
--------------------------------------------------------------------------------
/.editorconfig:
--------------------------------------------------------------------------------
1 | # Editor configuration, see http://editorconfig.org
2 | root = true
3 |
4 | [*]
5 | charset = utf-8
6 | indent_style = space
7 | indent_size = 2
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
11 | [*.md]
12 | max_line_length = off
13 | trim_trailing_whitespace = false
14 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | node_modules
2 | !.storybook
3 |
--------------------------------------------------------------------------------
/.husky/pre-commit:
--------------------------------------------------------------------------------
1 | #!/bin/sh
2 | . "$(dirname "$0")/_/husky.sh"
3 |
4 | npx pretty-quick --staged
5 |
--------------------------------------------------------------------------------
/.prettierignore:
--------------------------------------------------------------------------------
1 | # Add files here to ignore them from prettier formatting
2 | /dist
3 | /coverage
4 |
5 | /.nx/cache
6 |
7 | .yarn
8 |
9 | /.nx/workspace-data
--------------------------------------------------------------------------------
/.prettierrc:
--------------------------------------------------------------------------------
1 | {
2 | "plugins": ["@trivago/prettier-plugin-sort-imports", "prettier-plugin-tailwindcss"],
3 | "semi": false,
4 | "tabWidth": 2,
5 | "printWidth": 120,
6 | "singleQuote": true,
7 | "trailingComma": "es5",
8 | "importOrder": ["^@qovery/(.*)$", "^[./]"],
9 | "importOrderSortSpecifiers": true,
10 | "tailwindConfig": "./apps/console/tailwind.config.js",
11 | "tailwindFunctions": ["clsx", "cva", "twMerge"]
12 | }
13 |
--------------------------------------------------------------------------------
/.test.env:
--------------------------------------------------------------------------------
1 | TZ=UTC
2 |
--------------------------------------------------------------------------------
/.yarnrc.yml:
--------------------------------------------------------------------------------
1 | yarnPath: '.yarn/releases/yarn-berry.cjs'
2 | npmRegistryServer: 'https://npm-registry.qovery.com'
3 | nodeLinker: node-modules
4 |
--------------------------------------------------------------------------------
/__tests__/server.ts:
--------------------------------------------------------------------------------
1 | import { setupServer } from 'msw/node'
2 |
3 | const handlers = []
4 |
5 | export const server = setupServer(...handlers)
6 |
--------------------------------------------------------------------------------
/__tests__/utils/resize-observer.tsx:
--------------------------------------------------------------------------------
1 | export class ResizeObserver {
2 | observe() {
3 | // do nothing
4 | }
5 | unobserve() {
6 | // do nothing
7 | }
8 | disconnect() {
9 | // do nothing
10 | }
11 | }
12 |
13 | window.ResizeObserver = ResizeObserver
14 | export default ResizeObserver
15 |
--------------------------------------------------------------------------------
/apps/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/apps/.gitkeep
--------------------------------------------------------------------------------
/apps/console-e2e/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:cypress/recommended", "../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["src/plugins/index.js"],
11 | "rules": {
12 | "@typescript-eslint/no-var-requires": "off",
13 | "no-undef": "off"
14 | }
15 | }
16 | ]
17 | }
18 |
--------------------------------------------------------------------------------
/apps/console-e2e/cypress.json:
--------------------------------------------------------------------------------
1 | {
2 | "fileServerFolder": ".",
3 | "fixturesFolder": "./src/fixtures",
4 | "integrationFolder": "./src/integration",
5 | "modifyObstructiveCode": false,
6 | "supportFile": "./src/support/index.ts",
7 | "pluginsFile": false,
8 | "video": true,
9 | "videosFolder": "../../dist/cypress/apps/console-e2e/videos",
10 | "screenshotsFolder": "../../dist/cypress/apps/console-e2e/screenshots",
11 | "chromeWebSecurity": false
12 | }
13 |
--------------------------------------------------------------------------------
/apps/console-e2e/src/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io"
4 | }
5 |
--------------------------------------------------------------------------------
/apps/console-e2e/src/support/app.po.ts:
--------------------------------------------------------------------------------
1 | export const getGreeting = () => cy.get('h1')
2 |
--------------------------------------------------------------------------------
/apps/console-e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.base.json",
3 | "compilerOptions": {
4 | "sourceMap": false,
5 | "outDir": "../../dist/out-tsc",
6 | "allowJs": true,
7 | "types": ["cypress", "node"]
8 | },
9 | "include": ["src/**/*.ts", "src/**/*.js"]
10 | }
11 |
--------------------------------------------------------------------------------
/apps/console/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic"
7 | }
8 | ]
9 | ],
10 | "plugins": []
11 | }
12 |
--------------------------------------------------------------------------------
/apps/console/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/apps/console/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'console',
4 | preset: '../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../coverage/apps/console',
11 | }
12 |
--------------------------------------------------------------------------------
/apps/console/postcss.config.js:
--------------------------------------------------------------------------------
1 | const { join } = require('path')
2 |
3 | module.exports = {
4 | plugins: {
5 | tailwindcss: {
6 | config: join(__dirname, 'tailwind.config.js'),
7 | },
8 | autoprefixer: {},
9 | },
10 | }
11 |
--------------------------------------------------------------------------------
/apps/console/src/app/components/scroll-to-top.tsx:
--------------------------------------------------------------------------------
1 | import { useEffect } from 'react'
2 | import { useLocation } from 'react-router-dom'
3 |
4 | export default function ScrollToTop() {
5 | const { pathname } = useLocation()
6 |
7 | useEffect(() => {
8 | window.scrollTo(0, 0)
9 | }, [pathname])
10 |
11 | return null
12 | }
13 |
--------------------------------------------------------------------------------
/apps/console/src/assets/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/apps/console/src/assets/.gitkeep
--------------------------------------------------------------------------------
/apps/console/src/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/apps/console/src/favicon.ico
--------------------------------------------------------------------------------
/apps/console/src/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Qovery
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
--------------------------------------------------------------------------------
/apps/console/src/styles.scss:
--------------------------------------------------------------------------------
1 | @import '../../../libs/shared/ui/src/lib/styles/main';
2 |
--------------------------------------------------------------------------------
/apps/console/tailwind.config.js:
--------------------------------------------------------------------------------
1 | const { createGlobPatternsForDependencies } = require('@nx/react/tailwind')
2 | const { join } = require('path')
3 |
4 | module.exports = {
5 | presets: [require('../../tailwind-workspace-preset.js')],
6 | content: [join(__dirname, '../src/**/*.{js,ts,jsx,tsx}'), ...createGlobPatternsForDependencies(__dirname)],
7 | theme: {
8 | extend: {},
9 | },
10 | mode: 'jit',
11 | plugins: [],
12 | }
13 |
--------------------------------------------------------------------------------
/apps/console/webpack.config.old.js:
--------------------------------------------------------------------------------
1 | const { composePlugins } = require('@nx/webpack')
2 | // Nx plugins for webpack.
3 | module.exports = composePlugins((config) => {
4 | // Update the webpack config as needed here.
5 | // e.g. `config.plugins.push(new MyPlugin())`
6 | return config
7 | })
8 |
--------------------------------------------------------------------------------
/apps/design-system-e2e/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:cypress/recommended", "../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | }
9 | ]
10 | }
11 |
--------------------------------------------------------------------------------
/apps/design-system-e2e/src/fixtures/example.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "Using fixtures to represent data",
3 | "email": "hello@cypress.io"
4 | }
5 |
--------------------------------------------------------------------------------
/apps/design-system-e2e/src/integration/design-system/design-system.spec.ts:
--------------------------------------------------------------------------------
1 | describe('design-system: DesignSystem component', () => {
2 | beforeEach(() => cy.visit('/iframe.html?id=designsystem--primary'))
3 |
4 | it('should render the component', () => {
5 | cy.get('h1').should('contain', 'Welcome to DesignSystem!')
6 | })
7 | })
8 |
--------------------------------------------------------------------------------
/apps/design-system-e2e/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "../../tsconfig.base.json",
3 | "compilerOptions": {
4 | "sourceMap": false,
5 | "outDir": "../../dist/out-tsc",
6 | "allowJs": true,
7 | "types": ["cypress", "node"]
8 | },
9 | "include": ["src/**/*.ts", "src/**/*.js"]
10 | }
11 |
--------------------------------------------------------------------------------
/babel.config.json:
--------------------------------------------------------------------------------
1 | {
2 | "babelrcRoots": ["*"],
3 | "presets": ["@babel/preset-env", "@babel/preset-react", "@babel/preset-typescript"],
4 | "plugins": [
5 | ["@babel/plugin-proposal-class-properties", { "loose": true }],
6 | ["@babel/plugin-proposal-private-methods", { "loose": true }],
7 | ["@babel/plugin-proposal-private-property-in-object", { "loose": true }]
8 | ]
9 | }
10 |
--------------------------------------------------------------------------------
/jest.config.ts:
--------------------------------------------------------------------------------
1 | import { getJestProjects } from '@nx/jest'
2 |
3 | export default {
4 | projects: getJestProjects(),
5 | }
6 |
--------------------------------------------------------------------------------
/libs/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/libs/.gitkeep
--------------------------------------------------------------------------------
/libs/domains/cloud-providers/data-access/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/cloud-providers/data-access/README.md:
--------------------------------------------------------------------------------
1 | # domains-cloud-providers-data-access
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-cloud-providers-data-access` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/cloud-providers/data-access/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/domains-cloud-providers-data-access'
2 |
--------------------------------------------------------------------------------
/libs/domains/cloud-providers/data-access/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/domains/cloud-providers/data-access/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/cloud-providers/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/cloud-providers/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/cloud-providers/feature/README.md:
--------------------------------------------------------------------------------
1 | # domains-cloud-providers-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-cloud-providers-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/cloud-providers/feature/src/lib/hooks/use-cloud-providers/use-cloud-providers.ts:
--------------------------------------------------------------------------------
1 | import { useQuery } from '@tanstack/react-query'
2 | import { queries } from '@qovery/state/util-queries'
3 |
4 | export function useCloudProviders() {
5 | return useQuery({
6 | ...queries.cloudProviders.list,
7 | })
8 | }
9 |
10 | export default useCloudProviders
11 |
--------------------------------------------------------------------------------
/libs/domains/cluster-metrics/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/cluster-metrics/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/cluster-metrics/feature/README.md:
--------------------------------------------------------------------------------
1 | # feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/cluster-metrics/feature/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "domains-cluster-metrics-feature",
3 | "$schema": "../../../../node_modules/nx/schemas/project-schema.json",
4 | "sourceRoot": "libs/domains/cluster-metrics/feature/src",
5 | "projectType": "library",
6 | "tags": ["scope:domain", "type:feature", "slice:cluster-metrics"],
7 | "// targets": "to see all targets run: nx show project feature --web",
8 | "targets": {}
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/cluster-metrics/feature/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/cluster-card-node-usage/cluster-card-node-usage'
2 | export * from './lib/cluster-card-resources/cluster-card-resources'
3 | export * from './lib/cluster-card-setup/cluster-card-setup'
4 |
--------------------------------------------------------------------------------
/libs/domains/clusters/data-access/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/clusters/data-access/README.md:
--------------------------------------------------------------------------------
1 | # domains-clusters-data-access
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-clusters-data-access` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/clusters/data-access/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'domains-clusters-data-access',
4 | preset: '../../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../../coverage/libs/domains/clusters/data-access',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/domains/clusters/data-access/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/domains-clusters-data-access'
2 |
--------------------------------------------------------------------------------
/libs/domains/clusters/data-access/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/domains/clusters/data-access/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/clusters/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/clusters/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/clusters/feature/README.md:
--------------------------------------------------------------------------------
1 | # domains-clusters-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-clusters-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/clusters/feature/src/lib/cluster-setup/cluster-setup.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import { ClusterSetup } from './cluster-setup'
3 |
4 | describe('ClusterSetup', () => {
5 | it('should match manage deployment snapshot', async () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toMatchSnapshot()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/domains/clusters/feature/src/lib/cluster-setup/copy-button/copy-button.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders, screen } from '@qovery/shared/util-tests'
2 | import CopyButton from './copy-button'
3 |
4 | describe('CopyButton', () => {
5 | test('should render CopyButton component', () => {
6 | renderWithProviders()
7 | const copyButton = screen.getByText('Copy')
8 | expect(copyButton).toBeInTheDocument()
9 | })
10 | })
11 |
--------------------------------------------------------------------------------
/libs/domains/clusters/feature/src/lib/hooks/use-default-advanced-settings/use-default-advanced-settings.ts:
--------------------------------------------------------------------------------
1 | import { useQuery } from '@tanstack/react-query'
2 | import { queries } from '@qovery/state/util-queries'
3 |
4 | export function useDefaultAdvancedSettings() {
5 | return useQuery({
6 | ...queries.clusters.defaultAdvancedSettings,
7 | })
8 | }
9 |
10 | export default useDefaultAdvancedSettings
11 |
--------------------------------------------------------------------------------
/libs/domains/clusters/feature/src/lib/hooks/use-installation-helm-values/use-installation-helm-values.ts:
--------------------------------------------------------------------------------
1 | import { useMutation } from '@tanstack/react-query'
2 | import { mutations } from '@qovery/domains/clusters/data-access'
3 |
4 | export function useInstallationHelmValues() {
5 | return useMutation(mutations.installationHelmValues)
6 | }
7 |
8 | export default useInstallationHelmValues
9 |
--------------------------------------------------------------------------------
/libs/domains/custom-domains/data-access/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/custom-domains/data-access/README.md:
--------------------------------------------------------------------------------
1 | # domains-custom-domains-data-access
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-custom-domains-data-access` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/custom-domains/data-access/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/domains-custom-domains-data-access'
2 |
--------------------------------------------------------------------------------
/libs/domains/custom-domains/data-access/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/domains/custom-domains/data-access/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/custom-domains/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/custom-domains/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/custom-domains/feature/README.md:
--------------------------------------------------------------------------------
1 | # domains-custom-domains-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-custom-domains-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/custom-domains/feature/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/hooks/use-custom-domains/use-custom-domains'
2 | export * from './lib/hooks/use-create-custom-domain/use-create-custom-domain'
3 | export * from './lib/hooks/use-edit-custom-domain/use-edit-custom-domain'
4 | export * from './lib/hooks/use-delete-custom-domain/use-delete-custom-domain'
5 |
--------------------------------------------------------------------------------
/libs/domains/environment-logs/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/environment-logs/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/environment-logs/feature/README.md:
--------------------------------------------------------------------------------
1 | # feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/environment-logs/feature/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "domains-environment-logs-feature",
3 | "$schema": "../../../../node_modules/nx/schemas/project-schema.json",
4 | "sourceRoot": "libs/domains/environment-logs/feature/src",
5 | "projectType": "library",
6 | "tags": ["scope:domain", "type:feature", "slice:environment-logs"],
7 | "// targets": "to see all targets run: nx show project feature --web",
8 | "targets": {}
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/environment-logs/feature/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/environment-stages/environment-stages'
2 | export * from './lib/list-pre-check-logs/list-pre-check-logs'
3 |
--------------------------------------------------------------------------------
/libs/domains/environments/data-access/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/environments/data-access/README.md:
--------------------------------------------------------------------------------
1 | # domains-environments-data-access
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-environments-data-access` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/environments/data-access/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'domains-environments-data-access',
4 | preset: '../../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../../coverage/libs/domains/environments/data-access',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/domains/environments/data-access/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/domains-environments-data-access'
2 |
--------------------------------------------------------------------------------
/libs/domains/environments/data-access/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/domains/environments/data-access/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/environments/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/environments/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/environments/feature/README.md:
--------------------------------------------------------------------------------
1 | # domains-environments-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-environments-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/environments/feature/src/lib/hooks/use-check-dockerfile/use-check-dockerfile.ts:
--------------------------------------------------------------------------------
1 | import { useMutation } from '@tanstack/react-query'
2 | import { mutations } from '@qovery/domains/environments/data-access'
3 |
4 | export function useCheckDockerfile() {
5 | return useMutation(mutations.checkDockerfile, {
6 | meta: {
7 | notifyOnError: true,
8 | },
9 | })
10 | }
11 |
12 | export default useCheckDockerfile
13 |
--------------------------------------------------------------------------------
/libs/domains/event/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/event/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/event/README.md:
--------------------------------------------------------------------------------
1 | # domains-event
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-event` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/event/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'domains-event',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/domains/event',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/domains/event/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/event.queries'
2 |
--------------------------------------------------------------------------------
/libs/domains/event/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "jsx": "react-jsx",
4 | "allowJs": false,
5 | "esModuleInterop": false,
6 | "allowSyntheticDefaultImports": true,
7 | "strict": true
8 | },
9 | "files": [],
10 | "include": [],
11 | "references": [
12 | {
13 | "path": "./tsconfig.lib.json"
14 | },
15 | {
16 | "path": "./tsconfig.spec.json"
17 | }
18 | ],
19 | "extends": "../../../tsconfig.base.json"
20 | }
21 |
--------------------------------------------------------------------------------
/libs/domains/organizations/data-access/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/organizations/data-access/README.md:
--------------------------------------------------------------------------------
1 | # domains-organizations-data-access
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-organizations-data-access` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/organizations/data-access/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'domains-organizations-data-access',
4 | preset: '../../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../../coverage/libs/domains/organizations/data-access',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/domains/organizations/data-access/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/domains-organizations-data-access'
2 |
--------------------------------------------------------------------------------
/libs/domains/organizations/data-access/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/domains/organizations/data-access/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/organizations/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/organizations/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/organizations/feature/README.md:
--------------------------------------------------------------------------------
1 | # domains-organizations-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-organizations-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/organizations/feature/src/lib/hooks/use-available-helm-repositories/use-available-helm-repositories.ts:
--------------------------------------------------------------------------------
1 | import { useQuery } from '@tanstack/react-query'
2 | import { queries } from '@qovery/state/util-queries'
3 |
4 | export function useAvailableHelmRepositories() {
5 | return useQuery({
6 | ...queries.organizations.availableHelmRepositories,
7 | })
8 | }
9 |
10 | export default useAvailableHelmRepositories
11 |
--------------------------------------------------------------------------------
/libs/domains/organizations/feature/src/lib/hooks/use-invoices/use-invoices.ts:
--------------------------------------------------------------------------------
1 | import { useQuery } from '@tanstack/react-query'
2 | import { queries } from '@qovery/state/util-queries'
3 |
4 | export interface UseInvoicesProps {
5 | organizationId: string
6 | }
7 |
8 | export function useInvoices({ organizationId }: UseInvoicesProps) {
9 | return useQuery({
10 | ...queries.organizations.invoices({ organizationId }),
11 | })
12 | }
13 |
14 | export default useInvoices
15 |
--------------------------------------------------------------------------------
/libs/domains/organizations/feature/src/lib/hooks/use-members/use-members.ts:
--------------------------------------------------------------------------------
1 | import { useQuery } from '@tanstack/react-query'
2 | import { queries } from '@qovery/state/util-queries'
3 |
4 | export interface UseMembersProps {
5 | organizationId: string
6 | }
7 |
8 | export function useMembers({ organizationId }: UseMembersProps) {
9 | return useQuery({
10 | ...queries.organizations.members({ organizationId }),
11 | })
12 | }
13 |
14 | export default useMembers
15 |
--------------------------------------------------------------------------------
/libs/domains/organizations/feature/src/lib/hooks/use-webhooks/use-webhooks.ts:
--------------------------------------------------------------------------------
1 | import { useQuery } from '@tanstack/react-query'
2 | import { queries } from '@qovery/state/util-queries'
3 |
4 | export interface UseWebhooksProps {
5 | organizationId: string
6 | }
7 |
8 | export function useWebhooks({ organizationId }: UseWebhooksProps) {
9 | return useQuery({
10 | ...queries.organizations.webhooks({ organizationId }),
11 | })
12 | }
13 |
14 | export default useWebhooks
15 |
--------------------------------------------------------------------------------
/libs/domains/projects/data-access/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/projects/data-access/README.md:
--------------------------------------------------------------------------------
1 | # data-access
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
--------------------------------------------------------------------------------
/libs/domains/projects/data-access/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "data-access",
3 | "$schema": "../../../../node_modules/nx/schemas/project-schema.json",
4 | "sourceRoot": "libs/domains/projects/data-access/src",
5 | "projectType": "library",
6 | "tags": ["scope:domain", "type:data-access", "slice:projects"],
7 | "// targets": "to see all targets run: nx show project data-access --web",
8 | "targets": {}
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/projects/data-access/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/domains-projects-data-access'
2 |
--------------------------------------------------------------------------------
/libs/domains/projects/data-access/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/domains/projects/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/projects/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/projects/feature/README.md:
--------------------------------------------------------------------------------
1 | # feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/projects/feature/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'feature',
4 | preset: '../../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../../coverage/libs/domains/projects/feature',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/domains/service-helm/data-access/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/service-helm/data-access/README.md:
--------------------------------------------------------------------------------
1 | # domains-service-helm-data-access
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
--------------------------------------------------------------------------------
/libs/domains/service-helm/data-access/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "domains-service-helm-data-access",
3 | "$schema": "../../../../node_modules/nx/schemas/project-schema.json",
4 | "sourceRoot": "libs/domains/service-helm/data-access/src",
5 | "projectType": "library",
6 | "tags": ["scope:domain", "type:data-access", "slice:services"],
7 | "// targets": "to see all targets run: nx show project domains-service-helm-data-access --web",
8 | "targets": {}
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/service-helm/data-access/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/domains-service-helm-data-access'
2 |
--------------------------------------------------------------------------------
/libs/domains/service-helm/data-access/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/domains/service-helm/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/service-helm/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/service-helm/feature/README.md:
--------------------------------------------------------------------------------
1 | # domains-service-helm-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-service-helm-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/service-logs/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/service-logs/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/service-logs/feature/README.md:
--------------------------------------------------------------------------------
1 | # domains-service-logs-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-service-logs-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/service-logs/feature/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "domains-service-logs-feature",
3 | "$schema": "../../../../node_modules/nx/schemas/project-schema.json",
4 | "sourceRoot": "libs/domains/service-logs/feature/src",
5 | "projectType": "library",
6 | "tags": ["scope:domain", "type:feature", "slice:service-logs"],
7 | "// targets": "to see all targets run: nx show project domains-service-logs-feature --web",
8 | "targets": {}
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/service-logs/feature/src/lib/update-time-context/update-time-context.tsx:
--------------------------------------------------------------------------------
1 | import { createContext } from 'react'
2 |
3 | interface UpdateTimeContextProps {
4 | utc: boolean
5 | setUpdateTimeContext?: (data: { utc: boolean }) => void
6 | }
7 |
8 | export const defaultUpdateTimeContext = {
9 | utc: false,
10 | }
11 |
12 | export const UpdateTimeContext = createContext(defaultUpdateTimeContext)
13 |
--------------------------------------------------------------------------------
/libs/domains/services/data-access/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/services/data-access/README.md:
--------------------------------------------------------------------------------
1 | # domains-services-data-access
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-services-data-access` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/services/data-access/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'domains-services-data-access',
4 | preset: '../../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../../coverage/libs/domains/services/data-access',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/domains/services/data-access/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/domains-services-data-access'
2 |
--------------------------------------------------------------------------------
/libs/domains/services/data-access/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/domains/services/data-access/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/services/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/services/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/services/feature/README.md:
--------------------------------------------------------------------------------
1 | # domains-services-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-services-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/services/feature/src/lib/hooks/use-commits/use-commits.ts:
--------------------------------------------------------------------------------
1 | import { useQuery } from '@tanstack/react-query'
2 | import { queries } from '@qovery/state/util-queries'
3 |
4 | export type UseCommitsProps = Parameters[0]
5 |
6 | export function useCommits(props: UseCommitsProps) {
7 | return useQuery({
8 | ...queries.services.listCommits(props),
9 | })
10 | }
11 |
12 | export default useCommits
13 |
--------------------------------------------------------------------------------
/libs/domains/users-sign-up/data-access/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/users-sign-up/data-access/README.md:
--------------------------------------------------------------------------------
1 | # domains-users-sign-up-data-access
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
--------------------------------------------------------------------------------
/libs/domains/users-sign-up/data-access/project.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "domains-service-users-sign-up-data-access",
3 | "$schema": "../../../../node_modules/nx/schemas/project-schema.json",
4 | "sourceRoot": "libs/domains/users-sign-up/data-access/src",
5 | "projectType": "library",
6 | "tags": ["scope:domain", "type:data-access"],
7 | "// targets": "to see all targets run: nx show project domains-service-users-sign-up-data-access --web",
8 | "targets": {}
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/users-sign-up/data-access/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/domains-users-sign-up-data-access'
2 |
--------------------------------------------------------------------------------
/libs/domains/users-sign-up/data-access/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/domains/users-sign-up/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/users-sign-up/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/users-sign-up/feature/README.md:
--------------------------------------------------------------------------------
1 | # domains-users-sign-up-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-users-sign-up-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/users-sign-up/feature/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/hooks/use-user-sign-up/use-user-sign-up'
2 | export * from './lib/hooks/use-create-user-sign-up/use-create-user-sign-up'
3 |
--------------------------------------------------------------------------------
/libs/domains/users-sign-up/feature/src/lib/hooks/use-user-sign-up/use-user-sign-up.ts:
--------------------------------------------------------------------------------
1 | import { useQuery } from '@tanstack/react-query'
2 | import { queries } from '@qovery/state/util-queries'
3 |
4 | export function useUserSignUp({ enabled = true }: { enabled?: boolean } = {}) {
5 | return useQuery({
6 | ...queries.usersSignUp.get,
7 | enabled,
8 | })
9 | }
10 |
11 | export default useUserSignUp
12 |
--------------------------------------------------------------------------------
/libs/domains/variables/data-access/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/variables/data-access/README.md:
--------------------------------------------------------------------------------
1 | # domains-variables-data-access
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-variables-data-access` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/variables/data-access/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'domains-variables-data-access',
4 | preset: '../../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../../coverage/libs/domains/variables/data-access',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/domains/variables/data-access/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/domains-variables-data-access'
2 |
--------------------------------------------------------------------------------
/libs/domains/variables/data-access/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/domains/variables/data-access/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/domains/variables/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/domains/variables/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/variables/feature/README.md:
--------------------------------------------------------------------------------
1 | # domains-variables-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-variables-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/variables/feature/src/lib/code-editor-variable/code-editor-variable.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import { CodeEditorVariable } from './code-editor-variable'
3 |
4 | describe('CodeEditorVariable', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/domains/variables/util/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/domains/variables/util/README.md:
--------------------------------------------------------------------------------
1 | # domains-variables-util
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test domains-variables-util` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/domains/variables/util/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'domains-variables-util',
4 | preset: '../../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../../coverage/libs/domains/variables/util',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/domains/variables/util/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/sort-variables/sort-variables'
2 |
--------------------------------------------------------------------------------
/libs/domains/variables/util/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/domains/variables/util/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/pages/application/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/application/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/application/README.md:
--------------------------------------------------------------------------------
1 | # pages-application
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-application` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/application/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-application',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/application',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/application/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-application'
2 |
--------------------------------------------------------------------------------
/libs/pages/application/src/lib/feature/import-environment-variable-modal-feature/utils/trigger-toggle-all.tsx:
--------------------------------------------------------------------------------
1 | import { type UseFormSetValue } from 'react-hook-form'
2 |
3 | export function triggerToggleAll(
4 | value: boolean,
5 | setValue: UseFormSetValue<{ [key: string]: string | boolean }>,
6 | keys: string[]
7 | ): void {
8 | keys.forEach((key) => {
9 | setValue(key + '_secret', value)
10 | })
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/application/src/lib/feature/page-deployments-feature/page-deployments-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import PageDeploymentsFeature from './page-deployments-feature'
3 |
4 | describe('Deployments', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/application/src/lib/feature/page-general-feature/page-general.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import PageGeneralFeature from './page-general-feature'
3 |
4 | describe('General', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/application/src/lib/feature/page-variables-feature/page-variables-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import PageVariablesFeature from './page-variables-feature'
3 |
4 | describe('Variables', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/application/src/lib/feature/tabs-feature/tabs-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import TabsFeature from './tabs-feature'
3 |
4 | describe('TabsFeature', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/application/src/lib/ui/page-general/page-general.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import { PageGeneral } from './page-general'
3 |
4 | describe('General', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/cluster/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/cluster/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/cluster/README.md:
--------------------------------------------------------------------------------
1 | # pages-cluster
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-cluster` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/cluster/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-cluster',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/cluster',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/cluster/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-cluster'
2 |
--------------------------------------------------------------------------------
/libs/pages/cluster/src/lib/feature/page-settings-danger-zone-feature/page-settings-danger-zone-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import PageSettingsDangerZoneFeature from './page-settings-danger-zone-feature'
3 |
4 | describe('PageSettingsDangerZoneFeature', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/clusters/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/clusters/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/clusters/README.md:
--------------------------------------------------------------------------------
1 | # pages-cluster
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-cluster` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/clusters/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-clusters',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/clusters',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/clusters/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-clusters'
2 | export { PageClusterCreateFeature } from './lib/feature/page-clusters-create-feature/page-clusters-create-feature'
3 |
--------------------------------------------------------------------------------
/libs/pages/database/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/database/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/database/README.md:
--------------------------------------------------------------------------------
1 | # pages-database
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-database` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/database/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-database',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/database',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/database/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-database'
2 |
--------------------------------------------------------------------------------
/libs/pages/database/src/lib/feature/page-deployments-feature/page-deployments-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import PageDeploymentsFeature from './page-deployments-feature'
3 |
4 | describe('Deployments', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/database/src/lib/feature/page-general-feature/page-general.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import PageGeneralFeature from './page-general-feature'
3 |
4 | describe('General', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/database/src/lib/page-database.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import PagesDatabase from './page-database'
3 |
4 | describe('PagesDatabase', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/database/src/lib/ui/page-deployments/page-deployments.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import { PageDeployments, type PageDeploymentsProps } from './page-deployments'
3 |
4 | let props: PageDeploymentsProps
5 |
6 | describe('DeploymentsPage', () => {
7 | it('should render successfully', () => {
8 | const { baseElement } = render()
9 | expect(baseElement).toBeTruthy()
10 | })
11 | })
12 |
--------------------------------------------------------------------------------
/libs/pages/database/src/lib/ui/page-general/page-general.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import PageGeneral, { type PageGeneralProps } from './page-general'
3 |
4 | let props: PageGeneralProps
5 |
6 | describe('General', () => {
7 | it('should render successfully', () => {
8 | const { baseElement } = render()
9 | expect(baseElement).toBeTruthy()
10 | })
11 | })
12 |
--------------------------------------------------------------------------------
/libs/pages/environments/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/environments/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/environments/README.md:
--------------------------------------------------------------------------------
1 | # pages-environments
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-environments` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/environments/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-environments',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/environments',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/environments/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-environments'
2 |
--------------------------------------------------------------------------------
/libs/pages/environments/src/lib/feature/page-deployment-rules-feature/page-deployment-rules-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import { PageDeploymentRulesFeature } from './page-deployment-rules-feature'
3 |
4 | describe('DeploymentRules', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/environments/src/lib/page-environments.spec.tsx:
--------------------------------------------------------------------------------
1 | describe('PagesEnvironments', () => {
2 | // had to comment the test because of a redirection loop that I don't know how to fix
3 | it('should render successfully', () => {
4 | // const { baseElement } = render()
5 | // expect(baseElement).toBeTruthy()
6 | })
7 | })
8 |
--------------------------------------------------------------------------------
/libs/pages/events/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/events/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/events/README.md:
--------------------------------------------------------------------------------
1 | # pages-events
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-events` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/events/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-events',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/events',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/events/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-events'
2 |
--------------------------------------------------------------------------------
/libs/pages/events/src/lib/router/router.tsx:
--------------------------------------------------------------------------------
1 | import { AUDIT_LOGS_GENERAL_URL, type Route } from '@qovery/shared/routes'
2 | import PageGeneralFeature from '../feature/page-general-feature/page-general-feature'
3 |
4 | export const ROUTER_EVENTS: Route[] = [
5 | {
6 | path: AUDIT_LOGS_GENERAL_URL,
7 | component: ,
8 | },
9 | ]
10 |
--------------------------------------------------------------------------------
/libs/pages/events/src/lib/ui/copy-button/copy-button.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders, screen } from '@qovery/shared/util-tests'
2 | import CopyButton from './copy-button'
3 |
4 | describe('CopyButton', () => {
5 | test('should render CopyButton component', () => {
6 | renderWithProviders()
7 | const copyButton = screen.getByText('Copy')
8 | expect(copyButton).toBeInTheDocument()
9 | })
10 | })
11 |
--------------------------------------------------------------------------------
/libs/pages/events/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "jsx": "react-jsx",
4 | "allowJs": false,
5 | "esModuleInterop": false,
6 | "allowSyntheticDefaultImports": true,
7 | "strict": true
8 | },
9 | "files": [],
10 | "include": [],
11 | "references": [
12 | {
13 | "path": "./tsconfig.lib.json"
14 | },
15 | {
16 | "path": "./tsconfig.spec.json"
17 | }
18 | ],
19 | "extends": "../../../tsconfig.base.json"
20 | }
21 |
--------------------------------------------------------------------------------
/libs/pages/layout/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/layout/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/layout/README.md:
--------------------------------------------------------------------------------
1 | # pages-layout
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-layout` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/layout/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-layout',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/layout',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/layout/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/feature/dark-mode-enabler/dark-mode-enabler'
2 | export * from './lib/feature/layout/layout'
3 | export * from './lib/feature/breadcrumb/breadcrumb'
4 | export * from './lib/feature/not-found-page/not-found-page'
5 | export * from './lib/ui/top-bar/top-bar'
6 | export * from './lib/ui/navigation/navigation'
7 | export * from './lib/ui/layout-page/layout-page'
8 |
--------------------------------------------------------------------------------
/libs/pages/layout/src/lib/feature/breadcrumb/breadcrumb.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import { BreadcrumbFeature } from './breadcrumb'
3 |
4 | describe('Breadcrumb', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/layout/src/lib/feature/not-found-page/not-found-page.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import { NotFoundPage } from './not-found-page'
3 |
4 | describe('NotFoundPage', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/layout/src/lib/ui/navigation/navigation.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import Navigation, { type NavigationProps } from './navigation'
3 |
4 | describe('Navigation', () => {
5 | const props: NavigationProps = {
6 | defaultOrganizationId: '111',
7 | }
8 |
9 | it('should render successfully', () => {
10 | const { baseElement } = render()
11 | expect(baseElement).toBeTruthy()
12 | })
13 | })
14 |
--------------------------------------------------------------------------------
/libs/pages/layout/src/lib/ui/top-bar/top-bar.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import { TopBar } from './top-bar'
3 |
4 | describe('TopBar', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/layout/src/lib/utils/utils.tsx:
--------------------------------------------------------------------------------
1 | export function setCurrentOrganizationIdOnStorage(organizationId: string) {
2 | localStorage.setItem('currentOrganizationId', organizationId)
3 | }
4 |
5 | export function setCurrentProjectIdOnStorage(projectId: string) {
6 | localStorage.setItem('currentProjectId', projectId)
7 | }
8 |
9 | export function setCurrentProvider(provider: string) {
10 | localStorage.setItem('currentProvider', provider)
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/login/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/login/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/login/README.md:
--------------------------------------------------------------------------------
1 | # pages-login
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-login` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/login/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-login',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/login',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/login/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-login'
2 | export * from './lib/feature/page-logout-feature/page-logout-feature'
3 |
--------------------------------------------------------------------------------
/libs/pages/login/src/lib/page-login.tsx:
--------------------------------------------------------------------------------
1 | import { Route, Routes } from 'react-router-dom'
2 | import { ROUTER_LOGIN } from './router/router'
3 |
4 | export function PageLogin() {
5 | return (
6 |
7 | {ROUTER_LOGIN.map((route) => (
8 |
9 | ))}
10 |
11 | )
12 | }
13 |
14 | export default PageLogin
15 |
--------------------------------------------------------------------------------
/libs/pages/login/src/lib/ui/login-callback/login-callback.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import LoginCallback from './login-callback'
3 |
4 | describe('LoginCallback', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/login/src/lib/ui/login-callback/login-callback.tsx:
--------------------------------------------------------------------------------
1 | /* eslint-disable-next-line */
2 | export interface LoginCallbackProps {}
3 |
4 | export function LoginCallback(props: LoginCallbackProps) {
5 | return (
6 |
7 |
Welcome to LoginCallback!
8 |
9 | )
10 | }
11 |
12 | export default LoginCallback
13 |
--------------------------------------------------------------------------------
/libs/pages/logs/environment/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/logs/environment/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/logs/environment/README.md:
--------------------------------------------------------------------------------
1 | # pages-logs-environment
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-logs-environment` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/logs/environment/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-environment-logs'
2 |
--------------------------------------------------------------------------------
/libs/pages/logs/infra/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/logs/infra/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/logs/infra/README.md:
--------------------------------------------------------------------------------
1 | # pages-logs-infra
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-logs-infra` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/logs/infra/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-logs-infra',
4 | preset: '../../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../../coverage/libs/pages/logs/infra',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/logs/infra/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-infra-logs'
2 |
--------------------------------------------------------------------------------
/libs/pages/logs/infra/src/lib/feature/card-cluster-feature/card-cluster-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import CardClusterFeature from './card-cluster-feature'
3 |
4 | describe('CardClusterFeature', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/logs/infra/src/lib/feature/card-cluster-feature/card-cluster-feature.tsx:
--------------------------------------------------------------------------------
1 | import { useParams } from 'react-router-dom'
2 | import { CardCluster } from '@qovery/shared/console-shared'
3 |
4 | export function CardClusterFeature() {
5 | const { organizationId = '', clusterId = '' } = useParams()
6 |
7 | return
8 | }
9 |
10 | export default CardClusterFeature
11 |
--------------------------------------------------------------------------------
/libs/pages/onboarding/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/onboarding/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/onboarding/README.md:
--------------------------------------------------------------------------------
1 | # pages-onboarding
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-onboarding` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/onboarding/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-onboarding',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/onboarding',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/onboarding/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-onboarding'
2 |
--------------------------------------------------------------------------------
/libs/pages/onboarding/src/lib/feature/onboarding-more/onboarding-more.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import OnboardingMore from './onboarding-more'
3 |
4 | describe('OnboardingMore', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/onboarding/src/lib/feature/onboarding-personalize/onboarding-personalize.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import OnboardingPersonalize from './onboarding-personalize'
3 |
4 | describe('OnboardingPersonalize', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/onboarding/src/lib/feature/onboarding-project/onboarding-project.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import OnboardingProject from './onboarding-project'
3 |
4 | describe('OnboardingProject', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/onboarding/src/lib/ui/benefits-card/benefits-card.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import BenefitsCard from './benefits-card'
3 |
4 | describe('BenefitsCard', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/onboarding/src/lib/ui/step-thanks/step-thanks.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import StepThanks from './step-thanks'
3 |
4 | describe('StepThanks', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/overview/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/overview/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/overview/feature/README.md:
--------------------------------------------------------------------------------
1 | # pages-overview-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-overview-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/overview/feature/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/overview'
2 |
--------------------------------------------------------------------------------
/libs/pages/overview/feature/src/lib/overview.spec.tsx:
--------------------------------------------------------------------------------
1 | // import { render } from '__tests__/utils/setup-jest'
2 |
3 | // import Overview from './overview'
4 |
5 | describe('Overview', () => {
6 | it('should render successfully', () => {
7 | // const { baseElement } = render()
8 | // expect(baseElement).toBeTruthy()
9 | })
10 | })
11 |
--------------------------------------------------------------------------------
/libs/pages/overview/feature/src/lib/overview.tsx:
--------------------------------------------------------------------------------
1 | import { Navigate, useParams } from 'react-router-dom'
2 | import { ENVIRONMENTS_GENERAL_URL, ENVIRONMENTS_URL } from '@qovery/shared/routes'
3 |
4 | export function OverviewPage() {
5 | const { organizationId, projectId } = useParams()
6 |
7 | return
8 | }
9 |
10 | export default OverviewPage
11 |
--------------------------------------------------------------------------------
/libs/pages/overview/ui/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/overview/ui/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/overview/ui/README.md:
--------------------------------------------------------------------------------
1 | # pages-overview-ui
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-overview-ui` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/overview/ui/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-overview-ui',
4 | preset: '../../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../../coverage/libs/pages/overview/ui',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/overview/ui/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/components/overview/overview'
2 |
--------------------------------------------------------------------------------
/libs/pages/overview/ui/src/lib/components/overview/overview.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import Overview from './overview'
3 |
4 | describe('Overview', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/services/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/services/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/services/README.md:
--------------------------------------------------------------------------------
1 | # pages-services
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-services` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/services/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-services',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/services',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/services/src/lib/feature/page-deployments-feature/page-deployments-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import { PageDeploymentsFeature } from './page-deployments-feature'
3 |
4 | describe('PageDeploymentsFeature', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/services/src/lib/feature/page-general-feature/page-general-feature.tsx:
--------------------------------------------------------------------------------
1 | import { PageGeneral } from '../../ui/page-general/page-general'
2 |
3 | export function PageGeneralFeature() {
4 | return
5 | }
6 |
7 | export default PageGeneralFeature
8 |
--------------------------------------------------------------------------------
/libs/pages/services/src/lib/feature/page-new-feature/page-new-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import PageNewFeature from './page-new-feature'
3 |
4 | describe('General', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/services/src/lib/feature/page-settings-general-feature/page-settings-general-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import PageSettingsGeneralFeature from './page-settings-general-feature'
3 |
4 | describe('PageSettingsGeneralFeature', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/services/src/lib/page-services.spec.tsx:
--------------------------------------------------------------------------------
1 | describe('ServicesPage', () => {
2 | // had to comment the test because of a redirection loop that I don't know how to fix
3 | it('should render successfully', () => {
4 | // const { baseElement } = render()
5 | // expect(baseElement).toBeTruthy()
6 | })
7 | })
8 |
--------------------------------------------------------------------------------
/libs/pages/settings/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/settings/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/settings/README.md:
--------------------------------------------------------------------------------
1 | # pages-settings
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-settings` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/settings/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-settings',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/settings',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/settings/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-settings'
2 |
--------------------------------------------------------------------------------
/libs/pages/settings/src/lib/feature/page-organization-api-feature/page-organization-api-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import PageOrganizationApiFeature from './page-organization-api-feature'
3 |
4 | describe('PageOrganizationApiFeature', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/settings/src/lib/feature/page-organization-roles-feature/page-organization-roles-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import PageOrganizationRolesFeature from './page-organization-roles-feature'
3 |
4 | describe('PageOrganizationRolesFeature', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/settings/src/lib/feature/page-project-danger-zone-feature/page-project-danger-zone-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import PageProjectDangerZoneFeature from './page-project-danger-zone-feature'
3 |
4 | describe('PageProjectDangerZoneFeature', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/user/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/pages/user/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/pages/user/README.md:
--------------------------------------------------------------------------------
1 | # pages-user
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test pages-user` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/pages/user/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'pages-user',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/pages/user',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/pages/user/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/page-user'
2 |
--------------------------------------------------------------------------------
/libs/pages/user/src/lib/page-user.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import PagesUser from './page-user'
3 |
4 | describe('PagesUser', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/pages/user/src/lib/router/router.tsx:
--------------------------------------------------------------------------------
1 | import { type Route, USER_GENERAL_URL } from '@qovery/shared/routes'
2 | import PageUserGeneralFeature from '../feature/page-user-general-feature/page-user-general-feature'
3 |
4 | export const ROUTER_USER: Route[] = [
5 | {
6 | path: USER_GENERAL_URL,
7 | component: ,
8 | },
9 | ]
10 |
--------------------------------------------------------------------------------
/libs/pages/user/tsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "jsx": "react-jsx",
4 | "allowJs": false,
5 | "esModuleInterop": false,
6 | "allowSyntheticDefaultImports": true,
7 | "strict": true
8 | },
9 | "files": [],
10 | "include": [],
11 | "references": [
12 | {
13 | "path": "./tsconfig.lib.json"
14 | },
15 | {
16 | "path": "./tsconfig.spec.json"
17 | }
18 | ],
19 | "extends": "../../../tsconfig.base.json"
20 | }
21 |
--------------------------------------------------------------------------------
/libs/shared/assistant/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/assistant/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/assistant/feature/README.md:
--------------------------------------------------------------------------------
1 | # shared-assistant-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-assistant-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/assistant/feature/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/assistant-trigger/assistant-trigger'
2 | export * from './lib/need-help/need-help'
3 | export * from './lib/instant-search-provider/instant-search-provider'
4 | export * from './lib/assistant-context/assistant-context'
5 |
--------------------------------------------------------------------------------
/libs/shared/assistant/feature/src/lib/assistant-context/assistant-context.ts:
--------------------------------------------------------------------------------
1 | import { createContext } from 'react'
2 |
3 | export const AssistantContext = createContext({
4 | assistantOpen: false,
5 | // eslint-disable-next-line @typescript-eslint/no-empty-function
6 | setAssistantOpen: (_assistantOpen: boolean) => {},
7 | })
8 |
9 | export default AssistantContext
10 |
--------------------------------------------------------------------------------
/libs/shared/assistant/feature/src/lib/assistant-icon/assistant-icon.ts:
--------------------------------------------------------------------------------
1 | export type AssistantIcon = 'QUESTION_MARK' | 'PAPERCLIP'
2 | export const AssistantIconKey = 'qovery-assistant-icon'
3 |
--------------------------------------------------------------------------------
/libs/shared/auth/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/auth/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/auth/README.md:
--------------------------------------------------------------------------------
1 | # shared-auth
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-auth` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/auth/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | /* eslint-disable */
3 | export default {
4 | displayName: 'shared-auth',
5 | preset: '../../../jest.preset.js',
6 | transform: {
7 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
8 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
9 | },
10 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
11 | coverageDirectory: '../../../coverage/libs/shared/auth',
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/auth/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/enum/auth.enum'
2 | export * from './lib/use-auth/use-auth'
3 | export * from './lib/use-invite-member/use-invite-member'
4 |
--------------------------------------------------------------------------------
/libs/shared/auth/src/lib/enum/auth.enum.ts:
--------------------------------------------------------------------------------
1 | export const enum AuthEnum {
2 | GITHUB = 'github',
3 | GITLAB = 'Gitlab',
4 | BITBUCKET = 'bitbucket',
5 | GOOGLE_SSO = 'google-oauth2',
6 | MICROSOFT = 'windowslive',
7 | }
8 |
--------------------------------------------------------------------------------
/libs/shared/auth/src/lib/use-auth/use-auth.spec.ts:
--------------------------------------------------------------------------------
1 | import { Wrapper } from '__tests__/utils/providers'
2 | import { renderHook } from '@qovery/shared/util-tests'
3 | import useAuth from './use-auth'
4 |
5 | describe('useAuth', () => {
6 | it('should render successfully', () => {
7 | const { result } = renderHook(() => useAuth(), { wrapper: Wrapper })
8 | expect(result).toBeTruthy()
9 | })
10 | })
11 |
--------------------------------------------------------------------------------
/libs/shared/console-shared/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/console-shared/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/console-shared/README.md:
--------------------------------------------------------------------------------
1 | # shared-console-shared
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-console-shared` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/console-shared/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-console-shared',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/shared/console-shared',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/console-shared/src/lib/layout-logs/placeholder-logs/loader-placeholder/loader-placeholder.tsx:
--------------------------------------------------------------------------------
1 | import { LoaderSpinner } from '@qovery/shared/ui'
2 |
3 | export function LoaderPlaceholder() {
4 | return (
5 |
6 |
7 |
8 | )
9 | }
10 |
--------------------------------------------------------------------------------
/libs/shared/console-shared/src/lib/member-invitation/accept-invitation/feature/accept-invitation-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import AcceptInvitationFeature from './accept-invitation-feature'
3 |
4 | describe('AcceptInvitationFeature', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/console-shared/src/lib/member-invitation/accept-invitation/ui/accept-invitation/accept-invitation.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import AcceptInvitation from './accept-invitation'
3 |
4 | describe('AcceptInvitation', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/console-shared/src/lib/member-invitation/invite-details/feature/invite-details-feature.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import InviteDetailsFeature from './invite-details-feature'
3 |
4 | describe('InviteDetailsFeature', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/console-shared/src/lib/member-invitation/invite-details/ui/invite-details.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import InviteDetails from './invite-details'
3 |
4 | describe('InviteDetails', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/devops-copilot/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/devops-copilot/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/devops-copilot/feature/README.md:
--------------------------------------------------------------------------------
1 | # shared-devops-copilot-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-devops-copilot-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/devops-copilot/feature/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/devops-copilot-trigger/devops-copilot-trigger'
2 | export * from './lib/devops-copilot-context/devops-copilot-context'
3 | export * from './lib/devops-copilot-button/devops-copilot-button'
4 |
--------------------------------------------------------------------------------
/libs/shared/devops-copilot/feature/src/lib/devops-copilot-context/devops-copilot-context.ts:
--------------------------------------------------------------------------------
1 | import { createContext } from 'react'
2 |
3 | export const DevopsCopilotContext = createContext({
4 | devopsCopilotOpen: false,
5 | // eslint-disable-next-line @typescript-eslint/no-empty-function
6 | setDevopsCopilotOpen: (_devopsCopilotOpen: boolean) => {},
7 | })
8 |
9 | export default DevopsCopilotContext
10 |
--------------------------------------------------------------------------------
/libs/shared/enums/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/enums/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/enums/README.md:
--------------------------------------------------------------------------------
1 | # shared-enums
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-enums` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/enums/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-enums',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/shared/enums',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/enums/src/lib/colors.enum.ts:
--------------------------------------------------------------------------------
1 | export enum Color {
2 | VIOLET = 'violet',
3 | RED = 'red',
4 | }
5 |
--------------------------------------------------------------------------------
/libs/shared/enums/src/lib/constants/environment-mode-values.ts:
--------------------------------------------------------------------------------
1 | import { EnvironmentModeEnum } from 'qovery-typescript-axios'
2 |
3 | export const environmentModeValues = [
4 | {
5 | label: 'Development',
6 | value: EnvironmentModeEnum.DEVELOPMENT,
7 | },
8 | {
9 | label: 'Production',
10 | value: EnvironmentModeEnum.PRODUCTION,
11 | },
12 | {
13 | label: 'Staging',
14 | value: EnvironmentModeEnum.STAGING,
15 | },
16 | ]
17 |
--------------------------------------------------------------------------------
/libs/shared/enums/src/lib/constants/timezone-values.ts:
--------------------------------------------------------------------------------
1 | export const timezoneValues = [
2 | {
3 | label: 'UTC',
4 | value: 'UTC',
5 | },
6 | ]
7 |
--------------------------------------------------------------------------------
/libs/shared/enums/src/lib/external-service.enum.ts:
--------------------------------------------------------------------------------
1 | export enum ExternalServiceEnum {
2 | DOPPLER = 'DOPPLER',
3 | }
4 |
--------------------------------------------------------------------------------
/libs/shared/enums/src/lib/job.type.ts:
--------------------------------------------------------------------------------
1 | import { type ServiceTypeEnum } from './service-type.enum'
2 |
3 | export type JobType = ServiceTypeEnum.CRON_JOB | ServiceTypeEnum.LIFECYCLE_JOB
4 |
--------------------------------------------------------------------------------
/libs/shared/enums/src/lib/logs-type.enum.ts:
--------------------------------------------------------------------------------
1 | export enum LogsType {
2 | ERROR = 'error',
3 | DEBUG = 'debug',
4 | WARNING = 'warning',
5 | INFO = 'info',
6 | }
7 |
--------------------------------------------------------------------------------
/libs/shared/enums/src/lib/member-role.enum.ts:
--------------------------------------------------------------------------------
1 | export enum MemberRoleEnum {
2 | ADMIN = 'ADMIN',
3 | OWNER = 'OWNER',
4 | VIEWER = 'VIEWER',
5 | DEVOPS = 'DEVOPS',
6 | BILLING = 'BILLING',
7 | }
8 |
--------------------------------------------------------------------------------
/libs/shared/enums/src/lib/memory-size.enum.ts:
--------------------------------------------------------------------------------
1 | export enum MemorySizeEnum {
2 | MB = 'MB',
3 | GB = 'GB',
4 | }
5 |
--------------------------------------------------------------------------------
/libs/shared/enums/src/lib/probe-type-healthchecks.enum.ts:
--------------------------------------------------------------------------------
1 | export enum ProbeTypeEnum {
2 | NONE = 'NONE',
3 | HTTP = 'HTTP',
4 | GRPC = 'GRPC',
5 | TCP = 'TCP',
6 | EXEC = 'EXEC',
7 | }
8 |
--------------------------------------------------------------------------------
/libs/shared/enums/src/lib/running-state.enum.ts:
--------------------------------------------------------------------------------
1 | export enum RunningState {
2 | STARTING = 'STARTING',
3 | DEPLOYED = 'DEPLOYED',
4 | RUNNING = 'RUNNING',
5 | WARNING = 'WARNING',
6 | ERROR = 'ERROR',
7 | STOPPING = 'STOPPING',
8 | STOPPED = 'STOPPED',
9 | UNKNOWN = 'UNKNOWN',
10 | COMPLETED = 'COMPLETED',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/enums/src/lib/service-type.enum.ts:
--------------------------------------------------------------------------------
1 | export enum ServiceTypeEnum {
2 | DATABASE = 'DATABASE',
3 | APPLICATION = 'APPLICATION',
4 | CONTAINER = 'CONTAINER',
5 | JOB = 'JOB',
6 | CRON_JOB = 'CRON_JOB',
7 | LIFECYCLE_JOB = 'LIFECYCLE_JOB',
8 | HELM = 'HELM',
9 | TERRAFORM = 'TERRAFORM',
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/factories/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/factories/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/factories/README.md:
--------------------------------------------------------------------------------
1 | # shared-factories
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-factories` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/factories/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-factories',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/shared/factories',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/factories/src/lib/credit-card-factory.mock.ts:
--------------------------------------------------------------------------------
1 | import { type CreditCard } from 'qovery-typescript-axios'
2 |
3 | export const creditCardsFactoryMock = (howMany: number): CreditCard[] =>
4 | Array.from({ length: howMany }).map((_, index) => ({
5 | id: index.toString(),
6 | created_at: new Date().toString(),
7 | last_digit: '4242',
8 | expiry_year: 2024,
9 | expiry_month: 12,
10 | is_expired: false,
11 | brand: 'MASTERCARD',
12 | }))
13 |
--------------------------------------------------------------------------------
/libs/shared/factories/src/lib/organizations-handler.mock.ts:
--------------------------------------------------------------------------------
1 | import { rest } from 'msw'
2 | import { organizationFactoryMock } from './organizations-factory.mock'
3 |
4 | export const organizationHandlerMock = rest.get('/organization', (req, res, ctx) => {
5 | return res(ctx.json(organizationFactoryMock(3)))
6 | })
7 |
--------------------------------------------------------------------------------
/libs/shared/iam/data-access/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/iam/data-access/README.md:
--------------------------------------------------------------------------------
1 | # shared-iam-data-access
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-iam-data-access` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/iam/data-access/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-iam-data-access',
4 | preset: '../../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../../coverage/libs/shared/iam/data-access',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/iam/data-access/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/domains-user-data-access'
2 |
--------------------------------------------------------------------------------
/libs/shared/iam/data-access/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/iam/data-access/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/shared/iam/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/iam/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/iam/feature/README.md:
--------------------------------------------------------------------------------
1 | # shared-iam-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-iam-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/iam/feature/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-iam-feature',
4 | preset: '../../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../../coverage/libs/shared/iam/feature',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/iam/feature/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/use-user-account/use-user-account'
2 | export * from './lib/use-user-edit-account/use-user-edit-account'
3 | export * from './lib/use-user-role/use-user-role'
4 |
--------------------------------------------------------------------------------
/libs/shared/iam/feature/src/lib/use-user-account/use-user-account.ts:
--------------------------------------------------------------------------------
1 | import { useQuery } from '@tanstack/react-query'
2 | import { queries } from '@qovery/state/util-queries'
3 |
4 | export function useUserAccount() {
5 | return useQuery({
6 | ...queries.user.account,
7 | })
8 | }
9 |
10 | export default useUserAccount
11 |
--------------------------------------------------------------------------------
/libs/shared/iam/feature/src/lib/use-user-edit-account/use-user-edit-account.ts:
--------------------------------------------------------------------------------
1 | import { useMutation } from '@tanstack/react-query'
2 | import { mutations } from '@qovery/shared/iam/data-access'
3 |
4 | export const useEditUserAccount = () => {
5 | return useMutation(mutations.editAccount, {
6 | meta: {
7 | notifyOnSuccess: {
8 | title: 'User updated',
9 | },
10 | notifyOnError: true,
11 | },
12 | })
13 | }
14 |
--------------------------------------------------------------------------------
/libs/shared/interfaces/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/interfaces/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/interfaces/README.md:
--------------------------------------------------------------------------------
1 | # shared-interfaces
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-interfaces` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/interfaces/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-interfaces',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/shared/interfaces',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/interfaces/src/lib/common/detect-new-row.interface.ts:
--------------------------------------------------------------------------------
1 | export interface DetectNewRowInterface {
2 | is_new?: boolean
3 | }
4 |
--------------------------------------------------------------------------------
/libs/shared/interfaces/src/lib/common/value.interface.ts:
--------------------------------------------------------------------------------
1 | import { type ReactNode } from 'react'
2 |
3 | export interface Value {
4 | label: ReactNode
5 | value: string
6 | icon?: ReactNode
7 | isDisabled?: boolean
8 | onClickEditable?: () => void
9 | description?: string
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/interfaces/src/lib/domain/service-running-status.interface.ts:
--------------------------------------------------------------------------------
1 | import { type ServiceStateDto } from 'qovery-ws-typescript-axios'
2 |
3 | export interface ServiceRunningStatus {
4 | id: string
5 | state: keyof typeof ServiceStateDto
6 | pods: {
7 | name: string
8 | state: keyof typeof ServiceStateDto
9 | restart_count: number
10 | state_message: string
11 | }[]
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/interfaces/src/lib/types/environment-variable-secret-or-public.type.ts:
--------------------------------------------------------------------------------
1 | import { type VariableResponse } from 'qovery-typescript-axios'
2 | import { type DetectNewRowInterface } from '../common/detect-new-row.interface'
3 |
4 | // TODO: Remove this when moving to Tanstack table
5 | export interface EnvironmentVariableSecretOrPublic extends VariableResponse, Partial {}
6 |
--------------------------------------------------------------------------------
/libs/shared/interfaces/src/lib/types/loading-status.type.ts:
--------------------------------------------------------------------------------
1 | export type LoadingStatus = 'not loaded' | 'loading' | 'loaded' | 'error' | undefined
2 |
--------------------------------------------------------------------------------
/libs/shared/router/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/router/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/router/README.md:
--------------------------------------------------------------------------------
1 | # shared-router
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-router` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/router/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/protected-route/protected-route'
2 |
--------------------------------------------------------------------------------
/libs/shared/routes/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/routes/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/routes/README.md:
--------------------------------------------------------------------------------
1 | # shared-routes
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-routes` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/routes/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-routes',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': 'babel-jest',
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/shared/routes',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/routes/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/router'
2 |
--------------------------------------------------------------------------------
/libs/shared/routes/src/lib/sub-router/login.router.ts:
--------------------------------------------------------------------------------
1 | export const LOGIN_URL = '/login'
2 | export const LOGIN_AUTH_REDIRECT_URL = '/auth0-callback'
3 | export const LOGOUT_URL = '/logout'
4 |
--------------------------------------------------------------------------------
/libs/shared/routes/src/lib/sub-router/onboarding.router.ts:
--------------------------------------------------------------------------------
1 | export const ONBOARDING_URL = '/onboarding'
2 | export const ONBOARDING_PERSONALIZE_URL = '/personalize'
3 | export const ONBOARDING_MORE_URL = '/more'
4 | export const ONBOARDING_PRICING_URL = '/pricing'
5 | export const ONBOARDING_PROJECT_URL = '/project'
6 | export const ONBOARDING_THANKS_URL = '/thanks'
7 |
--------------------------------------------------------------------------------
/libs/shared/routes/src/lib/sub-router/user.router.ts:
--------------------------------------------------------------------------------
1 | export const USER_URL = `/user`
2 | export const USER_GENERAL_URL = '/general'
3 |
--------------------------------------------------------------------------------
/libs/shared/spotlight/feature/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/spotlight/feature/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/spotlight/feature/README.md:
--------------------------------------------------------------------------------
1 | # shared-spotlight-feature
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-spotlight-feature` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/spotlight/feature/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/spotlight/spotlight'
2 |
--------------------------------------------------------------------------------
/libs/shared/toast/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/toast/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/toast/README.md:
--------------------------------------------------------------------------------
1 | # shared-toast
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-toast` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/toast/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/toast'
2 | export * from './lib/utils/toast-error'
3 |
--------------------------------------------------------------------------------
/libs/shared/toast/src/lib/utils/toast-error.tsx:
--------------------------------------------------------------------------------
1 | import { type SerializedError } from '@qovery/shared/utils'
2 | import toast, { ToastEnum } from '../toast'
3 |
4 | export function toastError(error: SerializedError, title?: string, message?: string): void {
5 | toast(ToastEnum.ERROR, title || error.name || 'Error', message || error.message || 'No message found')
6 | }
7 |
--------------------------------------------------------------------------------
/libs/shared/ui/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/ui/.eslintignore:
--------------------------------------------------------------------------------
1 | !.storybook
2 |
--------------------------------------------------------------------------------
/libs/shared/ui/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/ui/README.md:
--------------------------------------------------------------------------------
1 | # shared-ui
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-ui` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/ui/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-ui',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/shared-ui',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/ui/postcss.config.js:
--------------------------------------------------------------------------------
1 | const { join } = require('path')
2 |
3 | module.exports = {
4 | plugins: {
5 | tailwindcss: {
6 | config: join(__dirname, 'tailwind.config.js'),
7 | },
8 | autoprefixer: {},
9 | },
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/assets/devicon/clickhouse.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/assets/fonts/font-awesome/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/libs/shared/ui/src/lib/assets/fonts/font-awesome/.gitkeep
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/assets/fonts/hack/hack-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/libs/shared/ui/src/lib/assets/fonts/hack/hack-regular.woff
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/assets/fonts/hack/hack-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/libs/shared/ui/src/lib/assets/fonts/hack/hack-regular.woff2
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-bold.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-bold.woff
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-bold.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-bold.woff2
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-medium.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-medium.woff
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-medium.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-medium.woff2
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-regular.woff
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-regular.woff2:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/libs/shared/ui/src/lib/assets/fonts/roboto/roboto-regular.woff2
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/assets/images/paperclip_emoji.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Qovery/console/693baadc78035b53e6037948f27eb7b776982192/libs/shared/ui/src/lib/assets/images/paperclip_emoji.png
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/block-content/block-content.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import BlockContent from './block-content'
3 |
4 | describe('BlockContent', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render(
7 |
8 | Test block
9 |
10 | )
11 | expect(baseElement).toBeTruthy()
12 | })
13 | })
14 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/button-primitive/button-primitive.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import { ButtonPrimitive } from './button-primitive'
3 |
4 | describe('ButtonPrimitive', () => {
5 | it('should match snapshot', () => {
6 | const { baseElement } = renderWithProviders(Foobar)
7 | expect(baseElement).toMatchSnapshot()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/dropzone/dropzone.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import Dropzone from './dropzone'
3 |
4 | describe('Dropzone', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/header/header.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import { Section } from '../section/section'
3 | import Header from './header'
4 |
5 | describe('Header', () => {
6 | it('should render successfully', () => {
7 | const { baseElement } = renderWithProviders(
8 |
11 | )
12 | expect(baseElement).toBeTruthy()
13 | })
14 | })
15 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/heading/__snapshots__/heading.spec.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Heading should render successfully 1`] = `
4 |
5 |
6 |
9 |
12 | Foobar
13 |
14 |
15 |
16 |
17 | `;
18 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/heading/level-context.ts:
--------------------------------------------------------------------------------
1 | import { createContext } from 'react'
2 |
3 | export const LevelContext = createContext(0)
4 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/icon-fa/icon-fa.tsx:
--------------------------------------------------------------------------------
1 | export interface IconFaProps {
2 | name?: string
3 | className?: string
4 | }
5 |
6 | /**
7 | * @deprecated Use instead
8 | * cf adr/fontawesome-icons.md
9 | */
10 | export function IconFa(props: IconFaProps) {
11 | const { name, className = '' } = props
12 |
13 | return
14 | }
15 |
16 | export default IconFa
17 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/inputs/input-size-unit/utils.tsx:
--------------------------------------------------------------------------------
1 | export const inputSizeUnitRules = (maxSize?: number, minSize = 0) => ({
2 | required: 'Please enter a size.',
3 | validate: (value: number) => (maxSize ? value <= maxSize : undefined),
4 | max: maxSize,
5 | min: minSize,
6 | pattern: {
7 | value: /^[0-9]+$/,
8 | message: 'Please enter a number.',
9 | },
10 | })
11 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/inputs/input-toggle/input-toggle.stories.tsx:
--------------------------------------------------------------------------------
1 | import { type Meta, type Story } from '@storybook/react'
2 | import { InputToggle, type InputToggleProps } from './input-toggle'
3 |
4 | export default {
5 | component: InputToggle,
6 | title: 'Inputs/InputToggle',
7 | } as Meta
8 |
9 | const Template: Story = (args) =>
10 |
11 | export const Primary = Template.bind({})
12 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/loader-dots/loader-dots.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import LoaderDots from './loader-dots'
3 |
4 | describe('LoaderDots', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/loader-spinner/loader-spinner.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import LoaderSpinner from './loader-spinner'
3 |
4 | describe('LoaderSpinner', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/loading-screen/loading-screen.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import LoadingScreen from './loading-screen'
3 |
4 | describe('LoadingScreen', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/loading-screen/loading-screen.tsx:
--------------------------------------------------------------------------------
1 | import LoaderSpinner from '../loader-spinner/loader-spinner'
2 |
3 | export function LoadingScreen() {
4 | return (
5 |
6 |
7 |
8 | )
9 | }
10 |
11 | export default LoadingScreen
12 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/modal-alert/modal-alert.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import ModalAlert from './modal-alert'
3 |
4 | describe('ModalAlert', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/modal-alert/use-modal-alert/use-modal-alert.tsx:
--------------------------------------------------------------------------------
1 | import { useContext } from 'react'
2 | import { ModalContext } from '../../modal/modal-root'
3 |
4 | export function useModalAlert() {
5 | const { setModalAlertOpen } = useContext(ModalContext)
6 |
7 | return { setModalAlertOpen }
8 | }
9 |
10 | export default useModalAlert
11 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/scroll-into-view/scroll-into-view.tsx:
--------------------------------------------------------------------------------
1 | import { useEffect, useRef } from 'react'
2 |
3 | export function ScrollIntoView() {
4 | const ref = useRef(null)
5 | useEffect(() => {
6 | if (ref.current) {
7 | ref.current.scrollIntoView({ behavior: 'smooth', block: 'center' })
8 | }
9 | }, [])
10 |
11 | return
12 | }
13 |
14 | export default ScrollIntoView
15 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/section/__snapshots__/section.spec.tsx.snap:
--------------------------------------------------------------------------------
1 | // Jest Snapshot v1, https://goo.gl/fbAQLP
2 |
3 | exports[`Section should match snapshot 1`] = `
4 |
5 |
6 |
11 |
12 |
13 | `;
14 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/section/section.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import { Section } from './section'
3 |
4 | describe('Section', () => {
5 | it('should match snapshot', () => {
6 | const { baseElement } = renderWithProviders()
7 | expect(baseElement).toMatchSnapshot()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/tooltip/tooltip.spec.tsx:
--------------------------------------------------------------------------------
1 | import { renderWithProviders } from '@qovery/shared/util-tests'
2 | import Tooltip, { type TooltipProps } from './tooltip'
3 |
4 | const props: TooltipProps = {
5 | content: hello
,
6 | }
7 |
8 | describe('Tooltip', () => {
9 | it('should render successfully', () => {
10 | const { baseElement } = renderWithProviders()
11 | expect(baseElement).toBeTruthy()
12 | })
13 | })
14 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/components/warning-screen-mobile/warning-screen-mobile.spec.tsx:
--------------------------------------------------------------------------------
1 | import { render } from '__tests__/utils/setup-jest'
2 | import WarningScreenMobile from './warning-screen-mobile'
3 |
4 | describe('WarningScreenMobile', () => {
5 | it('should render successfully', () => {
6 | const { baseElement } = render()
7 | expect(baseElement).toBeTruthy()
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/styles/base/variable.scss:
--------------------------------------------------------------------------------
1 | $timing-cubic: cubic-bezier(0.25, 0.1, 0.25, 1);
2 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/styles/object/animation.scss:
--------------------------------------------------------------------------------
1 | // Transition
2 | .transition-timing {
3 | transition-timing-function: $timing-cubic;
4 | }
5 |
--------------------------------------------------------------------------------
/libs/shared/ui/src/lib/styles/object/code-ansi.scss:
--------------------------------------------------------------------------------
1 | .code-ansi {
2 | a {
3 | display: inline-block;
4 | transition: 0.25s color $timing-cubic;
5 | color: theme('colors.sky.500');
6 |
7 | &:hover {
8 | color: theme('colors.sky.600');
9 | }
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/ui/tailwind.config.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | presets: [require('../../../tailwind-workspace-preset.js')],
3 | content: ['libs/shared/ui/src/**/*.{js,jsx,ts,tsx}'],
4 | mode: 'jit',
5 | theme: {
6 | extend: {},
7 | },
8 | plugins: [],
9 | }
10 |
--------------------------------------------------------------------------------
/libs/shared/util-const/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/util-const/README.md:
--------------------------------------------------------------------------------
1 | # shared-util-const
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-util-const` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/util-const/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-util-const',
4 | preset: '../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../coverage/libs/shared/util-const',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/util-const/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/shared-util-const'
2 |
--------------------------------------------------------------------------------
/libs/shared/util-const/src/lib/shared-util-const.ts:
--------------------------------------------------------------------------------
1 | export const QOVERY_FORUM_URL = 'https://discuss.qovery.com'
2 | export const QOVERY_STATUS_URL = 'https://status.qovery.com'
3 | export const QOVERY_DOCS_URL = 'https://hub.qovery.com'
4 | export const QOVERY_FEEDBACK_URL = 'https://roadmap.qovery.com'
5 | export const QOVERY_ROADMAP_URL = 'https://roadmap.qovery.com/roadmap'
6 |
--------------------------------------------------------------------------------
/libs/shared/util-const/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/util-const/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/shared/util-dates/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/util-dates/README.md:
--------------------------------------------------------------------------------
1 | # shared-util-dates
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-util-dates` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/util-dates/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-util-dates',
4 | preset: '../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../coverage/libs/shared/util-dates',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/util-dates/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/util-dates'
2 |
--------------------------------------------------------------------------------
/libs/shared/util-dates/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/util-dates/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/shared/util-git/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/util-git/README.md:
--------------------------------------------------------------------------------
1 | # util-git
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test util-js` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/util-git/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'util-git',
4 | preset: '../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../coverage/libs/shared/util-git',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/util-git/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/util-git'
2 |
--------------------------------------------------------------------------------
/libs/shared/util-git/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/util-git/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/shared/util-hooks/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/util-hooks/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/util-hooks/README.md:
--------------------------------------------------------------------------------
1 | # shared-util-hooks
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-util-hooks` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/util-hooks/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-util-hooks',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/shared/util-hooks',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/util-js/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/util-js/README.md:
--------------------------------------------------------------------------------
1 | # shared-util-js
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-util-js` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/util-js/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-util-js',
4 | preset: '../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../coverage/libs/shared/util-js',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/build-git-repo-url.spec.ts:
--------------------------------------------------------------------------------
1 | import { GitProviderEnum } from 'qovery-typescript-axios'
2 | import { buildGitRepoUrl } from './build-git-repo-url'
3 |
4 | describe('buildGitRepoUrl', () => {
5 | it('should have function to build git url', () => {
6 | const provider = GitProviderEnum.GITHUB
7 | expect(buildGitRepoUrl(provider, 'qovery/console')).toBe('https://github.com/qovery/console.git')
8 | })
9 | })
10 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/build-git-repo-url.ts:
--------------------------------------------------------------------------------
1 | // TODO: move to '@qovery/shared/util-git'
2 | export const buildGitRepoUrl = (provider: string, repository: string): string => {
3 | if (repository.includes('http://') || repository.includes('https://')) return repository
4 | const authProvider = provider.toLowerCase()
5 | return `https://${authProvider}.com/${repository}.git`
6 | }
7 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/convert-memory-size.spec.ts:
--------------------------------------------------------------------------------
1 | import { convertMemory } from './convert-memory-size'
2 |
3 | describe('test convert memory GB and MB', () => {
4 | it('should convert memory GB to MB', () => {
5 | expect(convertMemory(10, 'GB')).toEqual(10240)
6 | })
7 | it('should convert memory MB to GB', () => {
8 | expect(convertMemory(2048, 'MB')).toEqual(2)
9 | })
10 | })
11 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/convert-memory-size.ts:
--------------------------------------------------------------------------------
1 | export const convertMemory = (memory?: number, size?: 'GB' | 'MB') => {
2 | if (!memory) return 0
3 |
4 | if (size === 'GB') {
5 | return memory * 1024
6 | } else {
7 | return memory / 1024
8 | }
9 | }
10 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/cost-to-human.ts:
--------------------------------------------------------------------------------
1 | import { currencyDictionary } from '@qovery/shared/enums'
2 |
3 | export const costToHuman = (value = 0, currency = 'USD'): string => {
4 | // prepend or append the currency symbol to the value and split the value per 3 digits
5 | const currencySymbol = currencyDictionary[currency]
6 | return `${currencySymbol}${value}`.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, '$1,')
7 | }
8 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/custom-tw-merge.ts:
--------------------------------------------------------------------------------
1 | import { extendTailwindMerge } from 'tailwind-merge'
2 |
3 | export const twMerge = extendTailwindMerge({
4 | classGroups: {
5 | 'font-size': ['text-ssm', 'text-2xs', 'text-3xs'],
6 | },
7 | })
8 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/format-cron-expression.ts:
--------------------------------------------------------------------------------
1 | // eslint-disable-next-line @typescript-eslint/no-restricted-imports
2 | import cronstrue from 'cronstrue'
3 |
4 | export function formatCronExpression(expression?: string) {
5 | if (expression === undefined) {
6 | return undefined
7 | }
8 | const res = cronstrue.toString(expression, { throwExceptionOnParseError: false })
9 | return res.indexOf('An error') === -1 ? res : undefined
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/format-metric.ts:
--------------------------------------------------------------------------------
1 | export function formatMetric(metric: { current: number; unit: 'mCPU' | 'MiB' | 'GiB'; current_percent?: number }) {
2 | return `${metric.current} ${metric.unit}${metric.current_percent !== undefined ? ` (${metric.current_percent}%)` : ''}`
3 | }
4 |
5 | export default formatMetric
6 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/parse-dotenv.ts:
--------------------------------------------------------------------------------
1 | export function parseEnvText(text: string): { [key: string]: string } | null {
2 | const varArray = text.split('\n')
3 | const env: { [key: string]: string } = {}
4 | varArray.forEach((envVar) => {
5 | const [name, ...rest] = envVar.split('=')
6 | const value = rest.join('=')
7 | if (name && value) {
8 | env[name] = value
9 | }
10 | })
11 |
12 | return env
13 | }
14 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/short-to-long-id.ts:
--------------------------------------------------------------------------------
1 | export const shortToLongId = (id: string, listIds: string[]): string => {
2 | if (id[0] !== 'z') return id
3 | id = id.slice(1)
4 |
5 | return listIds.find((theId) => theId.indexOf(id) >= 0) || id
6 | }
7 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/sort-by-key.ts:
--------------------------------------------------------------------------------
1 | export function sortByKey(array: T[], key: keyof T = 'name'): T[] {
2 | return array.sort((a, b) => {
3 | if (!a.name || !b.name) return 0
4 |
5 | const x = (a[key] as string).toLowerCase()
6 | const y = (b[key] as string).toLowerCase()
7 |
8 | return x < y ? -1 : x > y ? 1 : 0
9 | })
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/util-js/src/lib/uppercase-first-letter.ts:
--------------------------------------------------------------------------------
1 | export const upperCaseFirstLetter = (string = '') =>
2 | `${string.slice(0, 1).toUpperCase()}${string.toLowerCase().slice(1)}`
3 |
--------------------------------------------------------------------------------
/libs/shared/util-js/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/util-js/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/shared/util-node-env/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/util-node-env/README.md:
--------------------------------------------------------------------------------
1 | # shared-util-node-env
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-util-node-env` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/util-node-env/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-util-node-env',
4 | preset: '../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../coverage/libs/shared/util-node-env',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/util-node-env/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/shared-util-node-env'
2 |
--------------------------------------------------------------------------------
/libs/shared/util-node-env/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/util-node-env/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/shared/util-services/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/util-services/README.md:
--------------------------------------------------------------------------------
1 | # shared-util-services
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-util-services` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/util-services/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-util-services',
4 | preset: '../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../coverage/libs/shared/util-services',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/util-services/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/get-service-state-colors'
2 | export * from './lib/build-edit-service-payload'
3 | export * from './lib/service-templates'
4 |
--------------------------------------------------------------------------------
/libs/shared/util-services/src/lib/service-templates.ts:
--------------------------------------------------------------------------------
1 | // HACK: Backend doesn't provides an enum for possible templates,
2 | // so we must hardcode their ids ¯\_(ツ)_/¯
3 | export const TemplateIds = {
4 | CLOUDFORMATION: '94e9e430-8109-4879-8088-6c589e38c5f5' as const,
5 | TERRAFORM: '5f9c2fcd-86d4-42c9-9a5a-2f4126f39b06' as const,
6 | }
7 |
--------------------------------------------------------------------------------
/libs/shared/util-services/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/util-services/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/shared/util-tests/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/util-tests/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/util-tests/README.md:
--------------------------------------------------------------------------------
1 | # shared-util-tests
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-util-tests` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/util-tests/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-util-tests',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/shared/util-tests',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/util-tests/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/shared-util-tests'
2 |
--------------------------------------------------------------------------------
/libs/shared/util-types/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/util-types/README.md:
--------------------------------------------------------------------------------
1 | # shared-util-types
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-util-types` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/util-types/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-util-types',
4 | preset: '../../../jest.preset.js',
5 | testEnvironment: 'node',
6 | transform: {
7 | '^.+\\.[tj]s$': ['ts-jest', { tsconfig: '/tsconfig.spec.json' }],
8 | },
9 | moduleFileExtensions: ['ts', 'js', 'html'],
10 | coverageDirectory: '../../../coverage/libs/shared/util-types',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/util-types/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/shared-util-types'
2 |
--------------------------------------------------------------------------------
/libs/shared/util-types/tsconfig.lib.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "declaration": true,
6 | "types": ["node"]
7 | },
8 | "include": ["src/**/*.ts"],
9 | "exclude": ["jest.config.ts", "src/**/*.spec.ts", "src/**/*.test.ts"]
10 | }
11 |
--------------------------------------------------------------------------------
/libs/shared/util-types/tsconfig.spec.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": "./tsconfig.json",
3 | "compilerOptions": {
4 | "outDir": "../../../dist/out-tsc",
5 | "module": "commonjs",
6 | "types": ["jest", "node"]
7 | },
8 | "include": ["jest.config.ts", "src/**/*.test.ts", "src/**/*.spec.ts", "src/**/*.d.ts"]
9 | }
10 |
--------------------------------------------------------------------------------
/libs/shared/util-web-sockets/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/util-web-sockets/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/util-web-sockets/README.md:
--------------------------------------------------------------------------------
1 | # shared-util-web-sockets
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-util-web-sockets` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/util-web-sockets/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/metrics-web-socket-listener/metrics-web-socket-listener'
2 | export * from './lib/status-web-socket-listener/status-web-socket-listener'
3 | export * from './lib/use-status-web-sockets/use-status-web-sockets'
4 | export * from './lib/use-metrics-web-socket/use-metrics-web-socket'
5 |
--------------------------------------------------------------------------------
/libs/shared/utils/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/shared/utils/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/shared/utils/README.md:
--------------------------------------------------------------------------------
1 | # shared-utils
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test shared-utils` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/shared/utils/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'shared-utils',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/shared/utils',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/shared/utils/src/index.ts:
--------------------------------------------------------------------------------
1 | // http
2 | export * from './lib/http/interceptors/auth-interceptor/auth-interceptor'
3 |
--------------------------------------------------------------------------------
/libs/state/util-queries/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [
3 | [
4 | "@nx/react/babel",
5 | {
6 | "runtime": "automatic",
7 | "useBuiltIns": "usage"
8 | }
9 | ]
10 | ],
11 | "plugins": []
12 | }
13 |
--------------------------------------------------------------------------------
/libs/state/util-queries/.eslintrc.json:
--------------------------------------------------------------------------------
1 | {
2 | "extends": ["plugin:@nx/react", "../../../.eslintrc.json"],
3 | "ignorePatterns": ["!**/*"],
4 | "overrides": [
5 | {
6 | "files": ["*.ts", "*.tsx", "*.js", "*.jsx"],
7 | "rules": {}
8 | },
9 | {
10 | "files": ["*.ts", "*.tsx"],
11 | "rules": {}
12 | },
13 | {
14 | "files": ["*.js", "*.jsx"],
15 | "rules": {}
16 | }
17 | ]
18 | }
19 |
--------------------------------------------------------------------------------
/libs/state/util-queries/README.md:
--------------------------------------------------------------------------------
1 | # state-util-queries
2 |
3 | This library was generated with [Nx](https://nx.dev).
4 |
5 | ## Running unit tests
6 |
7 | Run `nx test state-util-queries` to execute the unit tests via [Jest](https://jestjs.io).
8 |
--------------------------------------------------------------------------------
/libs/state/util-queries/jest.config.ts:
--------------------------------------------------------------------------------
1 | /* eslint-disable */
2 | export default {
3 | displayName: 'state-util-queries',
4 | preset: '../../../jest.preset.js',
5 | transform: {
6 | '^(?!.*\\.(js|jsx|ts|tsx|css|json)$)': '@nx/react/plugins/jest',
7 | '^.+\\.[tj]sx?$': ['babel-jest', { presets: ['@nx/react/babel'] }],
8 | },
9 | moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'],
10 | coverageDirectory: '../../../coverage/libs/state/util-queries',
11 | }
12 |
--------------------------------------------------------------------------------
/libs/state/util-queries/src/index.ts:
--------------------------------------------------------------------------------
1 | export * from './lib/use-react-query-ws-subscription/use-react-query-ws-subscription'
2 | export * from './lib/queries/queries'
3 |
--------------------------------------------------------------------------------
/pull_request_template.md:
--------------------------------------------------------------------------------
1 | # What does this PR do?
2 |
3 | > Link to the JIRA ticket
4 |
5 | Put description here
6 |
7 | > Screenshot of the feature
8 |
9 | ---
10 |
11 | ## PR Checklist
12 |
13 | - [ ] This PR introduces breaking change(s) and has been labeled as such
14 | - [ ] This PR introduces new store changes
15 | - [ ] I made sure the code is type safe (no any)
16 |
--------------------------------------------------------------------------------