{
  "name": "jan-app",
  "private": true,
  "workspaces": {
    "packages": [
      "uikit",
      "core",
      "electron",
      "web",
      "server"
    ],
    "nohoist": [
      "uikit",
      "core",
      "electron",
      "web",
      "server"
    ]
  },
  "scripts": {
    "lint": "yarn workspace jan lint && yarn workspace jan-web lint",
    "test:unit": "yarn workspace @janhq/core test",
    "test": "yarn workspace jan test:e2e",
    "copy:assets": "cpx \"models/**\" \"electron/models/\" && cpx \"pre-install/*.tgz\" \"electron/pre-install/\" && cpx \"docs/openapi/**\" \"electron/docs/openapi\"",
    "dev:electron": "yarn copy:assets && yarn workspace jan dev",
    "dev:web": "yarn workspace jan-web dev",
    "dev:server": "yarn copy:assets && yarn workspace @janhq/server dev",
    "dev": "concurrently --kill-others \"yarn dev:web\" \"wait-on http://localhost:3000 && yarn dev:electron\"",
    "test-local": "yarn lint && yarn build:test && yarn test",
    "dev:uikit": "yarn workspace @janhq/uikit install && yarn workspace @janhq/uikit dev",
    "build:uikit": "yarn workspace @janhq/uikit install && yarn workspace @janhq/uikit build",
    "build:server": "yarn copy:assets && cd server && yarn install && yarn run build",
    "build:core": "cd core && yarn install && yarn run build",
    "build:web": "yarn workspace jan-web build && cpx \"web/out/**\" \"electron/renderer/\"",
    "build:electron": "yarn copy:assets && yarn workspace jan build",
    "build:electron:test": "yarn workspace jan build:test",
    "build:extensions:windows": "rimraf ./pre-install/*.tgz && powershell -command \"$jobs = Get-ChildItem -Path './extensions' -Directory | ForEach-Object { Start-Job -Name ($_.Name) -ScriptBlock { param($_dir); try { Set-Location $_dir; npm install; npm run build:publish; Write-Output 'Build successful in ' + $_dir } catch { Write-Error 'Error in ' + $_dir; throw } } -ArgumentList $_.FullName }; $jobs | Wait-Job; $jobs | ForEach-Object { Receive-Job -Job $_ -Keep } | ForEach-Object { Write-Host $_ }; $failed = $jobs | Where-Object { $_.State -ne 'Completed' -or $_.ChildJobs[0].JobStateInfo.State -ne 'Completed' }; if ($failed) { Exit 1 }\"",
    "build:extensions:linux": "rimraf ./pre-install/*.tgz && find ./extensions -mindepth 1 -maxdepth 1 -type d -print0 | xargs -0 -n 1 -P 4 -I {} sh -c 'cd {} && npm install && npm run build:publish'",
    "build:extensions:darwin": "rimraf ./pre-install/*.tgz && find ./extensions -mindepth 1 -maxdepth 1 -type d -print0 | xargs -0 -n 1 -P 4 -I {} sh -c 'cd {} && npm install && npm run build:publish'",
    "build:extensions:server": "yarn workspace build:extensions ",
    "build:extensions": "run-script-os",
    "build:test": "yarn copy:assets && yarn build:web && yarn workspace jan build:test",
    "build": "yarn build:web && yarn build:electron",
    "build:publish": "yarn copy:assets && yarn build:web && yarn workspace jan build:publish",
    "turbo:electron": "turbo run dev --parallel --filter=!@janhq/server"
  },
  "devDependencies": {
    "concurrently": "^8.2.1",
    "cpx": "^1.5.0",
    "rimraf": "^3.0.2",
    "wait-on": "^7.0.1",
    "run-script-os": "^1.1.6"
  },
  "version": "0.0.0"
}
