{
  "name": "sqlmesh",
  "displayName": "SQLMesh",
  "description": "Official SQLMesh extension for VSCode",
  "publisher": "tobikodata",
  "version": "0.0.7",
  "repository": {
    "type": "git",
    "url": "https://github.com/tobikodata/sqlmesh"
  },
  "main": "./dist/extension.js",
  "icon": "assets/logo.png",
  "engines": {
    "vscode": "^1.96.0"
  },
  "categories": [
    "Other"
  ],
  "activationEvents": [
    "onLanguage:sql",
    "onLanguage:python",
    "onLanguage:yaml"
  ],
  "extensionKind": [
    "workspace"
  ],
  "extensionDependencies": [
    "ms-python.python"
  ],
  "contributes": {
    "configuration": {
      "type": "object",
      "title": "SQLMesh",
      "properties": {
        "sqlmesh.projectPaths": {
          "type": "array",
          "items": {
            "type": "string"
          },
          "default": [],
          "description": "The path to the SQLMesh project. If not set, the extension will try to find the project root automatically. If set, the extension will use the project root as the workspace path, e.g. it will run `sqlmesh` and `sqlmesh_lsp` in the project root. The path can be absolute `/Users/sqlmesh_user/sqlmesh_project/sushi` or relative `./project_folder/sushi` to the workspace root. Multiple paths can be used for multi-project setups."
        },
        "sqlmesh.lspEntrypoint": {
          "type": "string",
          "default": "",
          "markdownDescription": "The entry point for the SQLMesh LSP server. If not set the extension looks for the default lsp. If set, the extension will use the entry point as the LSP path,  The path can be absolute `/Users/sqlmesh_user/sqlmesh_project/sushi/sqlmesh_lsp` or relative `./project_folder/sushi/sqlmesh_lsp` to the workspace root. It can also have arguments, e.g. `./project_folder/sushi/sqlmesh_lsp --port 5000`."
        }
      }
    },
    "viewsContainers": {
      "panel": [
        {
          "id": "lineage_view",
          "title": "Lineage",
          "icon": "./assets/images/dag.svg"
        }
      ]
    },
    "views": {
      "lineage_view": [
        {
          "id": "sqlmesh.lineage",
          "name": "",
          "type": "webview",
          "icon": "./assets/images/dag.svg"
        }
      ]
    },
    "authentication": [
      {
        "id": "tobikodata",
        "label": "Tobiko"
      }
    ],
    "commands": [
      {
        "command": "sqlmesh.format",
        "title": "SQLMesh: Format Project",
        "description": "SQLMesh"
      },
      {
        "command": "sqlmesh.restart",
        "title": "SQLMesh: Restart Servers",
        "description": "SQLMesh"
      },
      {
        "command": "sqlmesh.printEnvironment",
        "title": "SQLMesh: Print Environment Variables",
        "description": "SQLMesh"
      },
      {
        "command": "sqlmesh.signin",
        "title": "SQLMesh: Sign in to Tobiko Cloud",
        "description": "SQLMesh"
      },
      {
        "command": "sqlmesh.signinSpecifyFlow",
        "title": "SQLMesh: Sign in to Tobiko Cloud (Specify Auth Flow)",
        "description": "SQLMesh"
      },
      {
        "command": "sqlmesh.signout",
        "title": "SQLMesh: Sign out from Tobiko Cloud",
        "description": "SQLMesh"
      },
      {
        "command": "sqlmesh.renderModel",
        "title": "SQLMesh: Render Model",
        "description": "SQLMesh",
        "icon": "$(open-preview)"
      },
      {
        "command": "sqlmesh.stop",
        "title": "SQLMesh: Stop Server",
        "description": "SQLMesh"
      },
      {
        "command": "sqlmesh.showTableDiff",
        "title": "SQLMesh: Show Table Diff",
        "description": "SQLMesh",
        "icon": "$(diff)"
      }
    ],
    "menus": {
      "editor/title": [
        {
          "command": "sqlmesh.renderModel",
          "when": "resourceExtname == .sql",
          "group": "navigation"
        },
        {
          "command": "sqlmesh.showTableDiff",
          "when": "resourceExtname == .sql",
          "group": "navigation"
        }
      ]
    }
  },
  "scripts": {
    "ci": "pnpm run lint && pnpm run compile && pnpm run test:unit",
    "lint": "eslint src tests",
    "lint:fix": "eslint src tests --fix",
    "test:unit": "vitest run",
    "code-server": "code-server",
    "test:e2e": "pnpm run vscode:package && playwright test",
    "test:e2e:ui": "pnpm run vscode:package && playwright test --ui",
    "test:e2e:headed": "pnpm run vscode:package && playwright test --headed",
    "compile": "pnpm run check-types && node esbuild.js",
    "check-types": "tsc --noEmit -p ./tsconfig.build.json",
    "watch": "node esbuild.js --watch",
    "watch:tsc": "tsc --noEmit --watch --project tsconfig.json",
    "vscode:package": "vsce package --no-dependencies",
    "vscode:prepublish": "cp ../../LICENSE . && pnpm run package",
    "package": "rm -rf ./src_react && mkdir -p ./src_react && cd ../react && pnpm run build && cd ../extension && cp -r ../react/dist/* ./src_react && pnpm run check-types && node esbuild.js --production"
  },
  "dependencies": {
    "@duckdb/node-api": "1.3.2-alpha.25",
    "@types/fs-extra": "^11.0.4",
    "@types/shell-quote": "^1.7.5",
    "@vscode/python-extension": "^1.0.5",
    "fs-extra": "^11.3.0",
    "shell-quote": "^1.8.3",
    "vscode-jsonrpc": "^8.2.1",
    "vscode-languageclient": "^9.0.1",
    "zod": "^3.25.76"
  },
  "devDependencies": {
    "@eslint/js": "^9.31.0",
    "@playwright/test": "^1.54.1",
    "@types/mocha": "^10.0.10",
    "@types/node": "20.11.25",
    "@types/vscode": "1.96.0",
    "@vitest/ui": "^3.2.4",
    "@vscode/test-cli": "^0.0.10",
    "@vscode/test-electron": "^2.5.2",
    "@vscode/vsce": "^3.6.0",
    "esbuild": "^0.25.8",
    "eslint": "^9.31.0",
    "ts-loader": "^9.5.2",
    "typescript": "^5.8.3",
    "typescript-eslint": "^8.38.0",
    "vitest": "^3.2.4",
    "yaml": "^2.8.0"
  }
}
