{
  "name": "uae-dap",
  "version": "1.1.5",
  "description": "Debug Adapter Protocol for Amiga development with FS-UAE or WinUAE",
  "main": "out/src/index.js",
  "displayName": "Amiga Assembly Debugger",
  "license": "GNU General Public License v3.0",
  "homepage": "https://github.com/grahambates/uae-dap",
  "bugs": {
    "url": "https://github.com/grahambates/grahambates/uae-dap/issues"
  },
  "publisher": "gigabates",
  "engines": {
    "node": "*",
    "vscode": "^1.84.2"
  },
  "categories": [
    "Debuggers"
  ],
  "icon": "images/icon.png",
  "galleryBanner": {
    "color": "#000000",
    "theme": "dark"
  },
  "activationEvents": [
    "onDebug",
    "onLanguage:m68k",
    "workspaceContains:**/*.{s,S,asm,ASM}"
  ],
  "bin": "cli.js",
  "repository": {
    "type": "git",
    "url": "https://github.com/grahambates/uae-dap"
  },
  "keywords": [
    "m68k",
    "68000",
    "assembly",
    "asm",
    "dap",
    "debug",
    "amiga",
    "commodore",
    "fs-uae",
    "win-uae"
  ],
  "contributes": {
    "breakpoints": [
      {
        "language": "m68k"
      }
    ],
    "debuggers": [
      {
        "type": "amiga-assembly-debugger",
        "label": "UAE: Debug",
        "program": "./out/src/debugAdapter.js",
        "runtime": "node",
        "configurationAttributes": {
          "launch": {
            "required": [
              "program"
            ],
            "properties": {
              "program": {
                "type": "string",
                "description": "Local path of target Amiga binary",
                "default": "^\"\\${workspaceFolder\\}/uae/dh0/myprogram\""
              },
              "remoteProgram": {
                "type": "string",
                "description": "Remote path of target Amiga binary (default: SYS:{basename of program})"
              },
              "stopOnEntry": {
                "type": "boolean",
                "description": "Automatically stop target after launch",
                "default": false
              },
              "noDebug": {
                "type": "boolean",
                "description": "Just launch emulator without debugging",
                "default": false
              },
              "trace": {
                "type": "boolean",
                "description": "Enable verbose logging",
                "default": false
              },
              "serverName": {
                "type": "string",
                "description": "Host name of the debug server",
                "default": "localhost"
              },
              "serverPort": {
                "type": "number",
                "description": "Port number of the debug server",
                "default": 2345
              },
              "exceptionMask": {
                "type": "number",
                "description": "Mask used to catch the exceptions",
                "default": 60
              },
              "emulatorType": {
                "type": "string",
                "enum": [
                  "fs-uae",
                  "winuae"
                ],
                "description": "Emulator program type",
                "default": "fs-uae"
              },
              "emulatorBin": {
                "type": "string",
                "description": "Path of emulator executable (default: use bundled version)"
              },
              "emulatorArgs": {
                "type": "array",
                "items": {
                  "type": "string",
                  "title": "Emulator option"
                },
                "default": [],
                "description": "Additional CLI args to pass to emulator program. Remote debugger args are added automatically"
              }
            }
          },
          "attach": {
            "required": [
              "program"
            ],
            "properties": {
              "program": {
                "type": "string",
                "description": "Local path of target Amiga binary",
                "default": "^\"\\${workspaceFolder\\}/uae/dh0/myprogram\""
              },
              "stopOnEntry": {
                "type": "boolean",
                "description": "Automatically stop target after launch",
                "default": false
              },
              "trace": {
                "type": "boolean",
                "description": "Enable verbose logging",
                "default": false
              },
              "serverName": {
                "type": "string",
                "description": "Host name of the debug server",
                "default": "localhost"
              },
              "serverPort": {
                "type": "number",
                "description": "Port number of the debug server",
                "default": 2345
              },
              "exceptionMask": {
                "type": "number",
                "description": "Mask used to catch the exceptions",
                "default": 60
              }
            }
          }
        },
        "initialConfigurations": [
          {
            "type": "amiga-assembly-debugger",
            "request": "launch",
            "name": "FS-UAE Debug",
            "stopOnEntry": false,
            "program": "${workspaceFolder}/uae/dh0/myprogram",
            "remoteProgram": "SYS:myprogram",
            "emulatorType": "fs-uae",
            "emulatorArgs": [
              "--hard_drive_0=${workspaceFolder}/uae/dh0",
              "--automatic_input_grab=0",
              "--floppy_drive_0_sounds=off",
              "--hide_hud=1",
              "--window_resizable=1"
            ],
            "preLaunchTask": "build"
          },
          {
            "type": "amiga-assembly-debugger",
            "request": "launch",
            "name": "Amiga Assembly Debugger: FS-UAE Launch",
            "noDebug": true,
            "program": "${workspaceFolder}/uae/dh0/myprogram",
            "remoteProgram": "SYS:myprogram",
            "emulatorType": "fs-uae",
            "emulatorArgs": [
              "--hard_drive_0=${workspaceFolder}/uae/dh0",
              "--automatic_input_grab=0",
              "--floppy_drive_0_sounds=off",
              "--hide_hud=1",
              "--window_resizable=1"
            ],
            "preLaunchTask": "build"
          },
          {
            "type": "amiga-assembly-debugger",
            "request": "launch",
            "name": "Amiga Assembly Debugger: WinUAE Debug",
            "stopOnEntry": false,
            "program": "${workspaceFolder}/uae/dh0/myprogram",
            "remoteProgram": "SYS:myprogram",
            "emulatorType": "winuae",
            "emulatorArgs": [
              "-s",
              "filesystem=rw,dh0:${workspaceFolder}/uae/dh0"
            ],
            "preLaunchTask": "build"
          },
          {
            "type": "amiga-assembly-debugger",
            "request": "launch",
            "name": "Amiga Assembly Debugger: WinUAE Launch",
            "noDebug": true,
            "program": "${workspaceFolder}/uae/dh0/myprogram",
            "remoteProgram": "SYS:myprogram",
            "emulatorType": "winuae",
            "emulatorArgs": [
              "-s",
              "filesystem=rw,dh0:${workspaceFolder}/uae/dh0"
            ],
            "preLaunchTask": "build"
          }
        ],
        "configurationSnippets": [
          {
            "label": "Amiga Assembly Debugger: FS-UAE Debug",
            "description": "A new configuration for debugging a program in FS-UAE.",
            "body": {
              "type": "amiga-assembly-debugger",
              "request": "launch",
              "name": "Amiga Assembly Debugger: FS-UAE Debug",
              "stopOnEntry": false,
              "program": "^\"\\${workspaceFolder\\}/uae/dh0/myprogram\"",
              "remoteProgram": "SYS:myprogram",
              "emulatorType": "fs-uae",
              "emulatorArgs": [
                "^\"--hard_drive_0=\\${workspaceFolder\\}/uae/dh0\"",
                "--automatic_input_grab=0",
                "--floppy_drive_0_sounds=off",
                "--hide_hud=1",
                "--window_resizable=1"
              ],
              "preLaunchTask": "build"
            }
          },
          {
            "label": "Amiga Assembly Debugger: FS-UAE Run",
            "description": "A new configuration to launch a program in FS-UAE.",
            "body": {
              "type": "amiga-assembly-debugger",
              "request": "launch",
              "name": "Amiga Assembly Debugger:FS-UAE Launch",
              "noDebug": true,
              "program": "^\"\\${workspaceFolder\\}/uae/dh0/myprogram\"",
              "remoteProgram": "SYS:myprogram",
              "emulatorType": "fs-uae",
              "emulatorArgs": [
                "^\"--hard_drive_0=\\${workspaceFolder\\}/uae/dh0\"",
                "--automatic_input_grab=0",
                "--floppy_drive_0_sounds=off",
                "--hide_hud=1",
                "--window_resizable=1"
              ],
              "preLaunchTask": "build"
            }
          },
          {
            "label": "Amiga Assembly Debugger: WinUAE Debug",
            "description": "A new configuration for debugging a program in WinUAE.",
            "body": {
              "type": "amiga-assembly-debugger",
              "request": "launch",
              "name": "WinUAE Debug",
              "stopOnEntry": false,
              "program": "^\"\\${workspaceFolder\\}/uae/dh0/myprogram\"",
              "remoteProgram": "SYS:myprogram",
              "emulatorType": "winuae",
              "emulatorArgs": [
                "-s",
                "^\"filesystem=rw,dh0:\\${workspaceFolder\\}/uae/dh0\""
              ],
              "preLaunchTask": "build"
            }
          },
          {
            "label": "Amiga Assembly Debugger: WinUAE Run",
            "description": "A new configuration to launch a program in WinUAE.",
            "body": {
              "type": "amiga-assembly-debugger",
              "request": "launch",
              "name": "WinUAE Launch",
              "noDebug": true,
              "program": "^\"\\${workspaceFolder\\}/uae/dh0/myprogram\"",
              "remoteProgram": "SYS:myprogram",
              "emulatorType": "winuae",
              "emulatorArgs": [
                "-s",
                "^\"filesystem=rw,dh0:\\${workspaceFolder\\}/uae/dh0\""
              ],
              "preLaunchTask": "build"
            }
          }
        ]
      }
    ]
  },
  "scripts": {
    "check": "npm run lint && npm run type-check && npm run test",
    "build": "tsc -p . --declaration",
    "watch": "npm run build -- --watch",
    "type-check": "npm run build -- --noEmit",
    "clean": "rimraf ./out/*",
    "lint": "eslint . --ext .ts",
    "lint-fix": "eslint . --ext .ts --fix",
    "test": "jest",
    "test-coverage": "jest --coverage",
    "prepare": "husky install",
    "prepack": "npm run build",
    "vscode:prepublish": "npm run build",
    "vscode:package": "vsce package",
    "vscode:publish": "vsce publish"
  },
  "dependencies": {
    "@vscode/debugadapter": "^1.55.1",
    "@vscode/debugprotocol": "^1.55.1",
    "async-mutex": "^0.4.0",
    "devtools-protocol": "0.0.1056733",
    "expression-eval": "^5.0.0",
    "glob": "^8.0.1",
    "promise-retry": "^2.0.1",
    "temp": "^0.9.4"
  },
  "devDependencies": {
    "@johanblumenberg/ts-mockito": "^1.0.32",
    "@types/glob": "^7.2.0",
    "@types/jest": "^27.5.1",
    "@types/node": "^17.0.31",
    "@types/promise-retry": "^1.1.3",
    "@types/temp": "^0.9.1",
    "@typescript-eslint/eslint-plugin": "^5.22.0",
    "@typescript-eslint/parser": "^5.22.0",
    "@vscode/debugadapter-testsupport": "^1.55.1",
    "eslint": "^8.14.0",
    "eslint-config-prettier": "^8.5.0",
    "eslint-plugin-jest": "^26.2.2",
    "eslint-plugin-prettier": "^4.0.0",
    "husky": "^8.0.1",
    "jest": "^28.1.0",
    "prettier": "^2.6.2",
    "rimraf": "^3.0.2",
    "ts-jest": "^28.0.2",
    "typescript": "^4.6.4",
    "vscode": "^1.1.37"
  }
}
