{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "Build and watch API",
            "type": "shell",
            "command": "dotnet watch",
            "args": [],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "options": {
                "cwd": "${workspaceFolder}/apps/server/AliasVault.Api"
            }
        },
        {
            "label": "Build and watch Client",
            "type": "shell",
            "command": "dotnet watch",
            "args": [],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "options": {
                "cwd": "${workspaceFolder}/apps/server/AliasVault.Client"
            }
        },
        {
            "label": "Build and watch Admin",
            "type": "shell",
            "command": "dotnet watch",
            "args": [],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "options": {
                "cwd": "${workspaceFolder}/apps/server/AliasVault.Admin"
            }
        },
        {
            "label": "Build and watch SMTP Service",
            "type": "shell",
            "command": "dotnet watch",
            "args": [],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "options": {
                "cwd": "${workspaceFolder}/apps/server/Services/AliasVault.SmtpService"
            }
        },
        {
            "label": "Build and watch TaskRunner",
            "type": "shell",
            "command": "dotnet watch",
            "args": [],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "options": {
                "cwd": "${workspaceFolder}/apps/server/Services/AliasVault.TaskRunner"
            }
        },
        {
            "label": "Build and watch Client CSS",
            "type": "shell",
            "command": "npm",
            "args": ["run", "build:client-css"],
            "problemMatcher": [],
            "options": {
                "cwd": "${workspaceFolder}/apps/server/AliasVault.Client"
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "Build and watch Admin CSS",
            "type": "shell",
            "command": "npm",
            "args": ["run", "build:admin-css"],
            "problemMatcher": [],
            "options": {
                "cwd": "${workspaceFolder}/apps/server/AliasVault.Admin"
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "Build and watch Client (API + Client + CSS)",
            "dependsOn": [
                "Build and watch API",
                "Build and watch Client",
                "Build and watch Client CSS"
            ],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "Run Unit Tests",
            "type": "shell",
            "command": "dotnet",
            "args": ["test"],
            "problemMatcher": "$msCompile",
            "options": {
                "cwd": "${workspaceFolder}/apps/server/Tests/AliasVault.UnitTests"
            },
            "group": {
                "kind": "test",
                "isDefault": true
            }
        },
        {
            "label": "Run Browser Extension (Chrome Dev)",
            "type": "shell",
            "command": "npm",
            "args": ["run", "dev:chrome"],
            "problemMatcher": [],
            "options": {
                "cwd": "${workspaceFolder}/apps/browser-extension"
            },
            "group": {
                "kind": "build",
                "isDefault": true
            }
        },
        {
            "label": "Run debug iOS App (simulator)",
            "type": "shell",
            "command": "npx",
            "args": ["expo", "run:ios"],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "options": {
                "cwd": "${workspaceFolder}/apps/mobile-app"
            }
        },
        {
            "label": "Run debug iOS App (device)",
            "type": "shell",
            "command": "npx",
            "args": ["expo", "run:ios", "--device"],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "options": {
                "cwd": "${workspaceFolder}/apps/mobile-app"
            }
        },
        {
            "label": "Run release iOS App (device)",
            "type": "shell",
            "command": "npx",
            "args": ["expo", "run:ios", "--device", "--configuration", "Release"],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "options": {
                "cwd": "${workspaceFolder}/apps/mobile-app"
            }
        },
        {
            "label": "Run release Android App (device)",
            "type": "shell",
            "command": "npx",
            "args": ["expo", "run:android", "--device", "--variant", "release"],
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "options": {
                "cwd": "${workspaceFolder}/apps/mobile-app"
            }
        },
        {
            "label": "Build and watch Docs",
            "type": "shell",
            "command": "docker compose -f docker-compose.dev.yml build && docker compose -f docker-compose.dev.yml up",
            "problemMatcher": [],
            "group": {
                "kind": "build",
                "isDefault": true
            },
            "options": {
                "cwd": "${workspaceFolder}/docs"
            }
        },
    ]
}
