{
	"name": "php-debug",
	"displayName": "PHP Debug",
	"version": "1.38.2",
	"publisher": "xdebug",
	"license": "MIT",
	"description": "Debug support for PHP with Xdebug",
	"keywords": [
		"php",
		"debug",
		"xdebug"
	],
	"author": {
		"name": "Felix Becker",
		"email": "felix.b@outlook.com"
	},
	"contributors": [
		{
			"name": "Damjan Cvetko",
			"email": "damjan.cvetko@gmail.com"
		}
	],
	"engines": {
		"vscode": "^1.66.1",
		"node": "^20.18.2"
	},
	"sponsor": {
		"url": "https://github.com/sponsors/zobo"
	},
	"icon": "images/logo.png",
	"galleryBanner": {
		"color": "#6682BA",
		"theme": "dark"
	},
	"categories": [
		"Debuggers"
	],
	"repository": {
		"type": "git",
		"url": "https://github.com/xdebug/vscode-php-debug.git"
	},
	"bugs": {
		"url": "https://github.com/xdebug/vscode-php-debug/issues"
	},
	"dependencies": {
		"@vscode/debugadapter": "^1.68.0",
		"@vscode/debugprotocol": "^1.68.0",
		"@xmldom/xmldom": "^0.9.8",
		"buffer-crc32": "^1.0.0",
		"dotenv": "^17.2.1",
		"file-url": "^3.0.0",
		"iconv-lite": "^0.6.3",
		"minimatch": "^10.0.3",
		"moment": "^2.30.1",
		"relateurl": "^0.2.7",
		"semver": "^7.7.2",
		"string-replace-async": "^2.0.0",
		"which": "^5.0.0"
	},
	"devDependencies": {
		"@commitlint/cli": "^19.8.1",
		"@commitlint/config-conventional": "^19.8.1",
		"@types/buffer-crc32": "^0.2.4",
		"@types/chai": "4.3.9",
		"@types/chai-as-promised": "^7.1.8",
		"@types/mocha": "^10.0.10",
		"@types/node": "^16.18.126",
		"@types/relateurl": "^0.2.33",
		"@types/semver": "^7.7.0",
		"@types/vscode": "^1.66.0",
		"@types/which": "^3.0.4",
		"@typescript-eslint/eslint-plugin": "^5.62.0",
		"@typescript-eslint/parser": "^5.62.0",
		"@vscode/debugadapter-testsupport": "^1.68.0",
		"@vscode/vsce": "^3.6.0",
		"chai": "^4.3.10",
		"chai-as-promised": "^7.1.2",
		"copyfiles": "^2.4.1",
		"eslint": "^8.57.1",
		"eslint-config-prettier": "^10.1.8",
		"eslint-plugin-jsdoc": "^52.0.4",
		"husky": "^9.1.7",
		"mocha": "^11.7.1",
		"nyc": "^17.1.0",
		"prettier": "2.8.8",
		"semantic-release": "^24.2.7",
		"semantic-release-vsce": "^6.0.11",
		"typescript": "^4.9.5"
	},
	"release": {
		"branches": [
			"main"
		],
		"verifyConditions": [
			"semantic-release-vsce",
			"@semantic-release/github"
		],
		"prepare": {
			"path": "semantic-release-vsce",
			"packageVsix": true
		},
		"publish": [
			"semantic-release-vsce",
			{
				"path": "@semantic-release/github",
				"assets": "*.vsix",
				"addReleases": "bottom"
			}
		]
	},
	"scripts": {
		"build": "npm run copyfiles && tsc -p .",
		"watch": "npm run copyfiles && tsc -w -p .",
		"copyfiles": "copyfiles -u 1 src/TerminalHelper.scpt src/terminateProcess.sh out",
		"start": "code testproject --extensionDevelopmentPath=.",
		"test": "mocha",
		"cover": "nyc mocha",
		"lint": "npm run eslint && npm run prettier",
		"eslint": "eslint \"src/**/*.ts\"",
		"prettier": "prettier \"**/{*.json,*.yml,.*.yml,*.ts,.prettierrc,*.md}\" --write --list-different",
		"prettier-check": "npm run prettier -- --write=false",
		"semantic-release": "semantic-release"
	},
	"commitlint": {
		"extends": [
			"@commitlint/config-conventional"
		]
	},
	"husky": {
		"hooks": {
			"commit-msg": "commitlint -E HUSKY_GIT_PARAM"
		}
	},
	"mocha": {
		"spec": "./out/test",
		"timeout": 20000,
		"slow": 1000,
		"retries": 4
	},
	"nyc": {
		"all": true,
		"include": [
			"out/**/*.*",
			"src/**/*.*"
		],
		"exclude": [
			"out/test/**/*.*"
		]
	},
	"main": "./out/extension.js",
	"activationEvents": [
		"onDebugResolve:php",
		"onCommand:extension.php-debug.startWithStopOnEntry",
		"onCommand:extension.php-debug.debugEditorContents",
		"onCommand:extension.php-debug.runEditorContents"
	],
	"capabilities": {
		"untrustedWorkspaces": {
			"supported": "limited",
			"description": "%workspaceTrust%",
			"restrictedConfigurations": [
				"php.debug.executablePath"
			]
		},
		"virtualWorkspaces": {
			"supported": "limited",
			"description": "In virtual workspaces, PHP process cannot be started, but can listen for incoming connections."
		}
	},
	"contributes": {
		"breakpoints": [
			{
				"language": "php"
			}
		],
		"debuggers": [
			{
				"type": "php",
				"languages": [
					"php"
				],
				"label": "PHP",
				"program": "./out/phpDebug.js",
				"runtime": "node",
				"configurationAttributes": {
					"launch": {
						"required": [],
						"properties": {
							"program": {
								"type": "string",
								"description": "Absolute path to the program."
							},
							"stopOnEntry": {
								"type": "boolean",
								"description": "Automatically stop program after launch.",
								"default": false
							},
							"externalConsole": {
								"type": "boolean",
								"description": "DEPRECATED: Launch debug target in external console.",
								"default": false
							},
							"console": {
								"enum": [
									"internalConsole",
									"integratedTerminal",
									"externalTerminal"
								],
								"description": "Where to launch the debug target: internal console, integrated terminal, or external terminal",
								"default": "internalConsole"
							},
							"args": {
								"type": "array",
								"description": "Command line arguments passed to the program.",
								"items": {
									"type": "string"
								},
								"default": []
							},
							"cwd": {
								"type": "string",
								"description": "Absolute path to the working directory of the program being debugged. Default is the current workspace.",
								"default": "${workspaceFolder}"
							},
							"runtimeExecutable": {
								"type": "string",
								"description": "Absolute path to the runtime executable to be used. Default is the runtime executable on the PATH.",
								"default": "php"
							},
							"runtimeArgs": {
								"type": "array",
								"description": "Optional arguments passed to the runtime executable.",
								"items": {
									"type": "string"
								},
								"default": []
							},
							"env": {
								"type": "object",
								"additionalProperties": {
									"type": "string"
								},
								"description": "Environment variables passed to the program.",
								"default": {}
							},
							"envFile": {
								"type": "string",
								"description": "Absolute path to a file containing environment variable definitions."
							},
							"hostname": {
								"type": "string",
								"description": "Address to bind to when listening for Xdebug or Unix domain socket (start with unix://)",
								"default": "::"
							},
							"port": {
								"type": "number",
								"description": "Port on which to listen for Xdebug",
								"default": 9003
							},
							"serverSourceRoot": {
								"type": "string",
								"description": "Deprecated: The source root when debugging a remote host",
								"deprecationMessage": "Property serverSourceRoot is deprecated, please use pathMappings to define a server root."
							},
							"localSourceRoot": {
								"type": "string",
								"description": "Deprecated: The source root on this machine that is the equivalent to the serverSourceRoot on the server.",
								"deprecationMessage": "Property localSourceRoot is deprecated, please use pathMappings to define a local root."
							},
							"pathMappings": {
								"type": "object",
								"default": {},
								"description": "A mapping of server paths to local paths."
							},
							"ignore": {
								"type": "array",
								"items": "string",
								"description": "Array of glob patterns that errors should be ignored from",
								"default": [
									"**/vendor/**/*.php"
								]
							},
							"skipFiles": {
								"type": "array",
								"items": "string",
								"description": "An array of glob patterns, to skip when debugging. Star patterns and negations are allowed, for example, `[\"**/vendor/**\", \"!**/vendor/my-module/**\"]`",
								"default": [
									"**/vendor/**"
								]
							},
							"ignoreExceptions": {
								"type": "array",
								"items": "string",
								"description": "An array of exception class names that should be ignored."
							},
							"skipEntryPaths": {
								"type": "array",
								"items": "string",
								"description": "An array of glob pattern to skip if the initial entry file is matched."
							},
							"log": {
								"type": "boolean",
								"description": "If true, will log all communication between VS Code and the adapter"
							},
							"proxy": {
								"type": "object",
								"properties": {
									"allowMultipleSessions": {
										"type": "boolean",
										"description": "If the proxy should expect multiple sessions/connections or not.",
										"default": true
									},
									"enable": {
										"type": "boolean",
										"description": "Whether to enable usage of a proxy",
										"default": false
									},
									"host": {
										"type": "string",
										"description": "Selects the host where the debug client is running, you can either use a host name, IP address, or 'unix:///path/to/sock' for a Unix domain socket. This setting is ignored if xdebug.remote_connect_back is enabled.",
										"default": "127.0.0.1"
									},
									"key": {
										"type": "string",
										"description": "A unique key that allows the proxy to match requests to your editor",
										"default": "${config:php.debug.ideKey}"
									},
									"port": {
										"type": "number",
										"description": "The port where the adapter will register with the the proxy.",
										"default": 9001
									},
									"timeout": {
										"type": "number",
										"description": "The port where the adapter will register with the the proxy.",
										"default": 3000
									}
								}
							},
							"xdebugSettings": {
								"type": "object",
								"properties": {
									"max_children": {
										"type": "integer",
										"description": "max number of array or object children to initially retrieve"
									},
									"max_data": {
										"type": "integer",
										"description": "max amount of variable data to initially retrieve"
									},
									"max_depth": {
										"type": "integer",
										"description": "maximum depth that the debugger engine may return when sending arrays, hashes or object structures to the IDE"
									},
									"show_hidden": {
										"enum": [
											0,
											1
										],
										"description": "This feature can get set by the IDE if it wants to have more detailed internal information on properties (eg. private members of classes, etc.) Zero means that hidden members are not shown to the IDE"
									},
									"breakpoint_include_return_value": {
										"enum": [
											0,
											1
										],
										"description": "Determines whether to enable an additional \"return from function\" debugging step, allowing inspection of the return value when a function call returns."
									}
								},
								"description": "Overrides for Xdebug remote debugging settings. See https://xdebug.org/docs-dbgp.php#feature-names",
								"default": {}
							},
							"maxConnections": {
								"type": "number",
								"description": "The maximum allowed parallel debugging sessions",
								"default": 0
							},
							"xdebugCloudToken": {
								"type": "string",
								"description": "Xdebug Could token"
							},
							"stream": {
								"type": "object",
								"description": "Xdebug stream settings",
								"properties": {
									"stdout": {
										"type": "number",
										"description": "Redirect stdout stream: 0 (disable), 1 (copy), 2 (redirect)",
										"default": 0
									}
								}
							}
						}
					}
				},
				"initialConfigurations": [
					{
						"name": "Listen for Xdebug",
						"type": "php",
						"request": "launch",
						"port": 9003
					},
					{
						"name": "Launch currently open script",
						"type": "php",
						"request": "launch",
						"program": "${file}",
						"cwd": "${fileDirname}",
						"port": 0,
						"runtimeArgs": [
							"-dxdebug.start_with_request=yes"
						],
						"env": {
							"XDEBUG_MODE": "debug,develop",
							"XDEBUG_CONFIG": "client_port=${port}"
						}
					},
					{
						"name": "Launch Built-in web server",
						"type": "php",
						"request": "launch",
						"runtimeArgs": [
							"-dxdebug.mode=debug",
							"-dxdebug.start_with_request=yes",
							"-S",
							"localhost:0"
						],
						"program": "",
						"cwd": "${workspaceRoot}",
						"port": 9003,
						"serverReadyAction": {
							"pattern": "Development Server \\(http://localhost:([0-9]+)\\) started",
							"uriFormat": "http://localhost:%s",
							"action": "openExternally"
						}
					}
				],
				"configurationSnippets": [
					{
						"label": "PHP: Listen for Xdebug",
						"description": "Listen for incoming XDebug connections",
						"body": {
							"name": "Listen for Xdebug",
							"type": "php",
							"request": "launch",
							"port": 9003
						}
					},
					{
						"label": "PHP: Listen for Xdebug 2 (Legacy)",
						"description": "Listen for incoming XDebug connections on legacy port",
						"body": {
							"name": "Listen for Xdebug 2 (Legacy)",
							"type": "php",
							"request": "launch",
							"port": 9000
						}
					},
					{
						"label": "PHP: Launch currently open script",
						"description": "Debug the currently open PHP script in CLI mode",
						"body": {
							"name": "Launch currently open script",
							"type": "php",
							"request": "launch",
							"program": "^\"${1:\\${file\\}}\"",
							"cwd": "^\"${2:\\${fileDirname\\}}\"",
							"port": 0,
							"runtimeArgs": [
								"-dxdebug.start_with_request=yes"
							],
							"env": {
								"XDEBUG_MODE": "debug,develop",
								"XDEBUG_CONFIG": "^\"client_port=\\${port\\}\""
							}
						}
					},
					{
						"label": "PHP: Launch currently open script with Xdebug 2 (Legacy)",
						"description": "Debug the currently open PHP script in CLI mode",
						"body": {
							"name": "Launch currently open script with Xdebug 2 (Legacy)",
							"type": "php",
							"request": "launch",
							"program": "^\"${1:\\${file\\}}\"",
							"cwd": "^\"${2:\\${fileDirname\\}}\"",
							"port": 0,
							"runtimeArgs": [
								"-dxdebug.remote_enable=yes",
								"-dxdebug.remote_autostart=yes"
							],
							"env": {
								"XDEBUG_CONFIG": "^\"remote_port=\\${port\\}\""
							}
						}
					},
					{
						"label": "PHP: Launch Built-in web server",
						"description": "Start built-in PHP web server and open browser on debug start",
						"body": {
							"name": "Launch Built-in web server",
							"type": "php",
							"request": "launch",
							"runtimeArgs": [
								"-dxdebug.mode=debug",
								"-dxdebug.start_with_request=yes",
								"-S",
								"localhost:${1:0}"
							],
							"program": "",
							"cwd": "^\"${2:\\${workspaceRoot\\}}\"",
							"port": 9003,
							"serverReadyAction": {
								"pattern": "Development Server \\\\(http://localhost:([0-9]+)\\\\) started",
								"uriFormat": "http://localhost:%s",
								"action": "openExternally"
							}
						}
					},
					{
						"label": "PHP: Xdebug Cloud",
						"description": "Register with Xdebug Cloud and wait for debug sessions",
						"body": {
							"name": "Xdebug Cloud",
							"type": "php",
							"request": "launch",
							"xdebugCloudToken": "${1}"
						}
					}
				]
			}
		],
		"configuration": {
			"title": "PHP Debug",
			"properties": {
				"php.debug.executablePath": {
					"type": [
						"string",
						"null"
					],
					"default": null,
					"description": "The path to a PHP executable.",
					"scope": "machine-overridable"
				},
				"php.debug.ideKey": {
					"type": "string",
					"default": "vsc",
					"description": "A unique key that allows the proxy to match requests to your editor. Only used when proxy configuration includes replacement.",
					"scope": "machine-overridable"
				}
			}
		},
		"menus": {
			"editor/title/run": [
				{
					"command": "extension.php-debug.runEditorContents",
					"when": "resourceLangId == php && !inDiffEditor && resourceScheme == file",
					"group": "navigation@1"
				},
				{
					"command": "extension.php-debug.debugEditorContents",
					"when": "resourceLangId == php && !inDiffEditor && resourceScheme == file",
					"group": "navigation@2"
				}
			],
			"commandPalette": [
				{
					"command": "extension.php-debug.debugEditorContents",
					"when": "resourceLangId == php && !inDiffEditor && resourceScheme == file"
				},
				{
					"command": "extension.php-debug.runEditorContents",
					"when": "resourceLangId == php && !inDiffEditor && resourceScheme == file"
				}
			],
			"debug/variables/context": [
				{
					"command": "extension.php-debug.copyVarExport",
					"group": "5_cutcopypaste@11",
					"when": "debugType == php"
				},
				{
					"command": "extension.php-debug.copyJson",
					"group": "5_cutcopypaste@12",
					"when": "debugType == php"
				},
				{
					"command": "extension.php-debug.copyRaw",
					"group": "5_cutcopypaste@13",
					"when": "debugType == php"
				}
			],
			"debug/watch/context": [
				{
					"command": "extension.php-debug.copyVarExport",
					"group": "3_modification@51",
					"when": "debugType == php"
				},
				{
					"command": "extension.php-debug.copyJson",
					"group": "3_modification@52",
					"when": "debugType == php"
				},
				{
					"command": "extension.php-debug.copyRaw",
					"group": "3_modification@53",
					"when": "debugType == php"
				}
			],
			"debug/hover/context": [
				{
					"command": "extension.php-debug.copyVarExport",
					"group": "5_cutcopypaste@11",
					"when": "debugType == php"
				},
				{
					"command": "extension.php-debug.copyJson",
					"group": "5_cutcopypaste@12",
					"when": "debugType == php"
				},
				{
					"command": "extension.php-debug.copyRaw",
					"group": "5_cutcopypaste@13",
					"when": "debugType == php"
				}
			]
		},
		"commands": [
			{
				"command": "extension.php-debug.startWithStopOnEntry",
				"title": "Start Debugging and Stop on Entry",
				"category": "Debug"
			},
			{
				"command": "extension.php-debug.debugEditorContents",
				"title": "Debug PHP File",
				"category": "PHP Debug",
				"enablement": "!inDebugMode",
				"icon": "$(debug-alt)"
			},
			{
				"command": "extension.php-debug.runEditorContents",
				"title": "Run PHP File",
				"category": "PHP Debug",
				"enablement": "!inDebugMode",
				"icon": "$(play)"
			},
			{
				"command": "extension.php-debug.copyVarExport",
				"title": "Copy Value as var_export"
			},
			{
				"command": "extension.php-debug.copyJson",
				"title": "Copy Value as json_encode"
			},
			{
				"command": "extension.php-debug.copyRaw",
				"title": "Copy Value as raw"
			}
		],
		"keybindings": [
			{
				"command": "extension.php-debug.startWithStopOnEntry",
				"key": "F10",
				"when": "!inDebugMode && debugConfigurationType == 'php'"
			},
			{
				"command": "extension.php-debug.startWithStopOnEntry",
				"key": "F11",
				"when": "!inDebugMode && activeViewlet == 'workbench.view.debug' && debugConfigurationType == 'php'"
			}
		]
	},
	"__metadata": {
		"installedTimestamp": 1764006699326,
		"targetPlatform": "undefined",
		"size": 5754770
	}
}