[tab] package.json (json)
{
  "name": "crowd-code",
  "displayName": "%displayName%",
  "description": "%description%",
  "version": "1.1.3",
  "publisher": "pdoom-org",
  "icon": "icon.png",
  "engines": {
    "vscode": "^1.89.0"
  },
  "main": "./out/extension.js",
  "categories": [
    "Other",
    "Education"
  ],
  "activationEvents": [
    "onStartupFinished"
  ],
  "l10n": "./l10n",
  "contributes": {
    "commands": [
      {
        "command": "crowd-code.startRecording",
        "title": "%command.startRecording.title%",
        "icon": "$(play)"
      },
      {
        "command": "crowd-code.stopRecording",
        "title": "%command.stopRecording.title%",
        "icon": "$(stop)"
      },
      {
        "command": "crowd-code.openSettings",
        "title": "%command.openSettings.title%",
        "icon": "$(settings)"
      },
      {
        "command": "crowd-code.refreshRecordFiles",
        "title": "%command.refreshRecordFiles.title%",
        "icon": "$(refresh)"
      },
      {
        "command": "crowd-code.deleteRecordFile",
        "title": "%command.deleteRecordFile.title%",
        "icon": "$(trash)"
      },
      {
        "command": "crowd-code.revealInExplorer",
        "title": "%command.revealInExplorer.title%",
        "icon": "$(folder-opened)"
      },
      {
        "command": "crowd-code.addToGitignore",
        "title": "%command.addToGitignore.title%",
        "icon": "$(git-ignore)"
      },
      {
        "command": "crowd-code.showUserId",
        "title": "%command.showUserId.title%"
      }
    ],
    "viewsContainers": {
      "activitybar": [
        {
          "id": "crowd-code",
          "title": "crowd-code",
          "icon": "icon.svg"
        }
      ]
    },
    "views": {
      "crowd-code": [
        {
          "id": "actions",
          "name": "%view.actions.name%",
          "icon": "icon.svg",
          "contextualTitle": "%view.actions.contextualTitle%"
        },
        {
          "id": "recordFiles",
          "name": "%view.recordFiles.name%",
          "icon": "icon.svg",
          "contextualTitle": "%view.recordFiles.contextualTitle%"
        }
      ]
    },
    "menus": {
      "view/title": [
        {
          "command": "crowd-code.refreshRecordFiles",
          "when": "view == recordFiles",
          "group": "navigation"
        },
        {
          "command": "vs-code-recorder.addToGitignore",
          "when": "view == actions",
          "group": "navigation"
        }
      ],
      "view/item/context": [
        {
          "command": "crowd-code.deleteRecordFile",
          "when": "view == recordFiles",
          "group": "inline"
        },
        {
          "command": "crowd-code.revealInExplorer",
          "when": "view == recordFiles",
          "group": "inline"
        },
        {
          "command": "crowd-code.deleteRecordFile",
          "when": "view == recordFiles",
          "group": "1_modification"
        },
        {
          "command": "crowd-code.revealInExplorer",
          "when": "view == recordFiles",
          "group": "2_workspace"
        }
      ]
    },
    "configuration": {
      "title": "%config.title%",
      "properties": {
        "crowdCode.export.exportPath": {
          "type": "string",
          "default": "${workspaceFolder}/crowd-code/",
          "markdownDescription": "%config.exportPath.description%",
          "order": 0
        },
        "crowdCode.export.createPathOutsideWorkspace": {
          "type": "boolean",
          "default": false,
          "description": "%config.createPathOutsideWorkspace.description%",
          "order": 1
        },
        "crowdCode.export.addToGitignore": {
          "type": "boolean",
          "default": false,
          "description": "%config.addToGitignore.description%",
          "order": 2
        },
        "crowdCode.export.exportFormats": {
          "type": "array",
          "items": {
            "type": "string",
            "enum": [
              "JSON",
              "SRT"
            ]
          },
          "uniqueItems": true,
          "default": [
            "JSON",
            "SRT"
          ],
          "description": "%config.exportFormats.description%",
          "order": 3
        },
        "crowdCode.recording.askFolderName": {
          "type": "boolean",
          "default": false,
          "description": "%config.askFolderName.description%",
          "order": 4
        },
        "crowdCode.appearance.minimalMode": {
          "type": "boolean",
          "default": false,
          "description": "%config.minimalMode.description%",
          "order": 5
        },
        "crowdCode.appearance.showTimer": {
          "type": "boolean",
          "default": true,
          "description": "%config.showTimer.description%",
          "order": 6
        }
      }
    }
  },
  "repository": {
    "type": "git",
    "url": "git://github.com/p-doom/crowd-code.git"
  },
  "scripts": {
    "vscode:prepublish": "npm run package",
    "ovsx:publish": "ovsx publish",
    "compile": "webpack",
    "watch": "webpack --watch",
    "package": "webpack --mode production --devtool hidden-source-map",
    "compile-tests": "tsc -p . --outDir out",
    "watch-tests": "tsc -p . -w --outDir out",
    "pretest": "npm run compile-tests && npm run compile && npm run lint",
    "lint": "eslint src --ext ts",
    "test": "vscode-test"
  },
  "devDependencies": {
    "@types/mocha": "^10.0.6",
    "@types/node": "18.x",
    "@types/vscode": "^1.89.0",
    "@typescript-eslint/eslint-plugin": "^7.11.0",
    "@typescript-eslint/parser": "^7.11.0",
    "@vscode/l10n-dev": "^0.0.35",
    "@vscode/test-cli": "^0.0.9",
    "@vscode/test-electron": "^2.4.0",
    "eslint": "^8.57.0",
    "ts-loader": "^9.5.1",
    "typescript": "^5.4.5",
    "webpack": "^5.91.0",
    "webpack-cli": "^5.1.4"
  },
  "dependencies": {
    "@vscode/l10n": "^0.0.18",
    "axios": "^1.7.2"
  }
}