├── .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 |
9 |
10 |
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 |
9 | Foobar 10 |
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(
Foobar
) 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 | --------------------------------------------------------------------------------