Pijul source control integration extension for Visual Studio Code
{
	"name": "pijul-vscode",
	"displayName": "Pijul for VS Code",
	"description": "Pijul source control integration for Visual Studio Code",
	"version": "0.0.1",
	"license": "MIT",
	"publisher": "garett-cooper",
	"repository": "https://nest.pijul.com/GarettWithOneR/pijul-vscode",
	"engines": {
		"vscode": "^1.52.0"
	},
	"categories": [
		"Other"
	],
	"activationEvents": [
		"workspaceContains:**/.pijul",
		"workspaceContains:.pijul",
		"onCommand:pijul.init"
	],
	"main": "./dist/extension.js",
	"contributes": {
		"commands": [
			{
				"command": "pijul.refresh",
				"title": "Refresh Repository",
				"category": "Pijul",
				"icon": "$(refresh)"
			},
			{
				"command": "pijul.init",
				"title": "Initialize Repository",
				"category": "Pijul"
			},
			{
				"command": "pijul.showOutput",
				"title": "Show Pijul Ouput",
				"category": "Pijul"
			},
			{
				"command": "pijul.record",
				"title": "Record Current Changes",
				"category": "Pijul",
				"icon": "$(check)"
			},
			{
				"command": "pijul.recordAll",
				"title": "Record All Current Changes",
				"category": "Pijul",
				"icon": "$(check)"
			},
			{
				"command": "pijul.amendAll",
				"title": "Record All Current Changes (Amend)",
				"category": "Pijul"
			},
			{
				"command": "pijul.add",
				"title": "Add to Repository",
				"category": "Pijul",
				"icon": "$(add)"
			},
			{
				"command": "pijul.addAll",
				"title": "Add All Untracked Files",
				"category": "Pijul",
				"icon": "$(add)"
			},
			{
				"command": "pijul.reset",
				"title": "Reset Unrecorded Changes",
				"category": "Pijul",
				"icon": "$(discard)"
			},
			{
				"command": "pijul.resetAll",
				"title": "Reset All Unrecorded Changes",
				"category": "Pijul",
				"icon": "$(discard)"
			},
			{
				"command": "pijul.openFile",
				"title": "Open File",
				"category": "Pijul",
				"icon": "$(go-to-file)"
			},
			{
				"command": "pijul.openDiff",
				"title": "Open Diff",
				"category": "Pijul",
				"icon": "$(diff)"
			},
			{
				"command": "pijul.openChange",
				"title": "Open Change TOML",
				"category": "Pijul"
			},
			{
				"command": "pijul.unrecordChange",
				"title": "Unrecord Change",
				"category": "Pijul"
			},
			{
				"command": "pijul.applyChange",
				"title": "Apply Change to Channel...",
				"category": "Pijul"
			},
			{
				"command": "pijul.applyChangeToCurrentChannel",
				"title": "Apply Change to Current Channel",
				"category": "Pijul"
			},
			{
				"command": "pijul.unrecordChangeReset",
				"title": "Unrecord Change (Reset)",
				"category": "Pijul"
			},
			{
				"command": "pijul.copyChangeHash",
				"title": "Copy Change Hash",
				"category": "Pijul"
			},
			{
				"command": "pijul.copyChangeMessage",
				"title": "Copy Change Message",
				"category": "Pijul"
			},
			{
				"command": "pijul.renameChannel",
				"title": "Rename Channel",
				"category": "Pijul"
			},
			{
				"command": "pijul.switchChannel",
				"title": "Switch to Channel",
				"category": "Pijul"
			},
			{
				"command": "pijul.deleteChannel",
				"title": "Delete Channel",
				"category": "Pijul"
			},
			{
				"command": "pijul.forkChannel",
				"title": "Fork a new Channel",
				"category": "Pijul",
				"icon": "$(git-branch-create)"
			},
			{
				"command": "pijul.mergeChannel",
				"title": "Apply All Outstanding Changes to Current Channel (Merge)",
				"category": "Pijul",
				"icon": "$(git-merge)"
			},
			{
				"command": "pijul.editRepoConfiguration",
				"title": "Edit Repository Configuration",
				"category": "Pijul"
			},
			{
				"command": "pijul.editGlobalConfiguration",
				"title": "Edit Global Configuration",
				"category": "Pijul"
			}
		],
		"configuration": {
			"title": "Pijul",
			"properties": {
				"pijul.ignoreMissingInstallation": {
					"type": "boolean",
					"description": "Ignores the warning when a Pijul installation cannot be found",
					"default": false
				},
				"pijul.installationPath": {
					"type": "string",
					"description": "The path of the pijul installation used by the extension"
				},
				"pijul.enabled": {
					"type": "boolean",
					"description": "Indicates if Pijul integration is enabled",
					"default": true
				}
			}
		},
		"menus": {
			"commandPalette": [
				{
					"command": "pijul.init",
					"when": "config.pijul.enabled"
				},
				{
					"command": "pijul.refresh",
					"when": "config.pijul.enabled && pijul.activated"
				},
				{
					"command": "pijul.showOutput",
					"when": "config.pijul.enabled  && pijul.activated"
				},
				{
					"command": "pijul.record",
					"when": "false"
				},
				{
					"command": "pijul.recordAll",
					"when": "config.pijul.enabled && pijul.activated"
				},
				{
					"command": "pijul.amendAll",
					"when": "config.pijul.enabled && pijul.activated"
				},
				{
					"command": "pijul.add",
					"when": "false"
				},
				{
					"command": "pijul.addAll",
					"when": "config.pijul.enabled && pijul.activated"
				},
				{
					"command": "pijul.reset",
					"when": "false"
				},
				{
					"command": "pijul.resetAll",
					"when": "config.pijul.enabled && pijul.activated"
				},
				{
					"command": "pijul.openFile",
					"when": "false"
				},
				{
					"command": "pijul.openDiff",
					"when": "false"
				},
				{
					"command": "pijul.openChange",
					"when": "false"
				},
				{
					"command": "pijul.unrecordChange",
					"when": "false"
				},
				{
					"command": "pijul.applyChangeToCurrentChannel",
					"when": "false"
				},
				{
					"command": "pijul.unrecordChange",
					"when": "false"
				},
				{
					"command": "pijul.unrecordChangeReset",
					"when": "false"
				},
				{
					"command": "pijul.copyChangeHash",
					"when": "false"
				},
				{
					"command": "pijul.copyChangeMessage",
					"when": "false"
				},
				{
					"command": "pijul.renameChannel",
					"when": "false"
				},
				{
					"command": "pijul.switchChannel",
					"when": "false"
				},
				{
					"command": "pijul.deleteChannel",
					"when": "false"
				},
				{
					"command": "pijul.forkChannel",
					"when": "config.pijul.enabled && pijul.activated"
				},
				{
					"command": "pijul.editRepoConfiguration",
					"when": "config.pijul.enabled && pijul.activated"
				},
				{
					"command": "pijul.editGlobalConfiguration",
					"when": "config.pijul.enabled  && pijul.activated"
				}
			],
			"scm/title": [
				{
					"command": "pijul.editGlobalConfiguration",
					"when": "scmProvider == pijul",
					"group": "first"
				},
				{
					"command": "pijul.editRepoConfiguration",
					"when": "scmProvider == pijul",
					"group": "first"
				},
				{
					"command": "pijul.recordAll",
					"when": "scmProvider == pijul",
					"group": "navigation"
				},
				{
					"command": "pijul.recordAll",
					"when": "scmProvider == pijul",
					"group": "second"
				},
				{
					"command": "pijul.amendAll",
					"when": "scmProvider == pijul",
					"group": "second"
				},
				{
					"command": "pijul.resetAll",
					"when": "scmProvider == pijul",
					"group": "second"
				},
				{
					"command": "pijul.refresh",
					"when": "scmProvider == pijul",
					"group": "navigation"
				},
				{
					"command": "pijul.addAll",
					"when": "scmProvider == pijul",
					"group": "second"
				},
				{
					"command": "pijul.refresh",
					"when": "scmProvider == pijul",
					"group": "third"
				},
				{
					"command": "pijul.showOutput",
					"when": "scmProvider == pijul",
					"group": "third"
				}
			],
			"scm/resourceGroup/context": [
				{
					"command": "pijul.recordAll",
					"when": "scmProvider == pijul && scmResourceGroup == changed"
				},
				{
					"command": "pijul.amendAll",
					"when": "scmProvider == pijul && scmResourceGroup == changed"
				},
				{
					"command": "pijul.resetAll",
					"when": "scmProvider == pijul && scmResourceGroup == changed"
				},
				{
					"command": "pijul.addAll",
					"when": "scmProvider == pijul && scmResourceGroup == untracked"
				},
				{
					"command": "pijul.recordAll",
					"when": "scmProvider == pijul && scmResourceGroup == changed",
					"group": "inline"
				},
				{
					"command": "pijul.resetAll",
					"when": "scmProvider == pijul && scmResourceGroup == changed",
					"group": "inline"
				},
				{
					"command": "pijul.addAll",
					"when": "scmProvider == pijul && scmResourceGroup == untracked",
					"group": "inline"
				}
			],
			"scm/resourceState/context": [
				{
					"command": "pijul.openFile",
					"when": "scmProvider == pijul",
					"group": "inline"
				},
				{
					"command": "pijul.openFile",
					"when": "scmProvider == pijul",
					"group": "first"
				},
				{
					"command": "pijul.openDiff",
					"when": "scmProvider == pijul && scmResourceGroup == changed",
					"group": "first"
				},
				{
					"command": "pijul.record",
					"when": "scmProvider == pijul && scmResourceGroup == changed",
					"group": "second"
				},
				{
					"command": "pijul.reset",
					"when": "scmProvider == pijul && scmResourceGroup == changed",
					"group": "inline"
				},
				{
					"command": "pijul.reset",
					"when": "scmProvider == pijul && scmResourceGroup == changed",
					"group": "second"
				},
				{
					"command": "pijul.add",
					"when": "scmProvider == pijul && scmResourceGroup == untracked",
					"group": "inline"
				},
				{
					"command": "pijul.add",
					"when": "scmProvider == pijul && scmResourceGroup == untracked",
					"group": "second"
				}
			],
			"view/title": [
				{
					"command": "pijul.forkChannel",
					"when": "view == pijul.views.channels",
					"group": "navigation"
				},
				{
					"command": "pijul.forkChannel",
					"when": "view == pijul.views.channels",
					"group": "first"
				}
			],
			"view/item/context": [
				{
					"command": "pijul.openChange",
					"when": "view == pijul.views.log && viewItem == pijulChange",
					"group": "changeFirst"
				},
				{
					"command": "pijul.unrecordChange",
					"when": "view == pijul.views.log && viewItem == pijulChange",
					"group": "changeSecond"
				},
				{
					"command": "pijul.unrecordChangeReset",
					"when": "view == pijul.views.log && viewItem == pijulChange",
					"group": "changeSecond"
				},
				{
					"command": "pijul.copyChangeHash",
					"when": "view == pijul.views.log && viewItem == pijulChange",
					"group": "changeThird"
				},
				{
					"command": "pijul.copyChangeMessage",
					"when": "view == pijul.views.log && viewItem == pijulChange",
					"group": "changeThird"
				},
				{
					"command": "pijul.applyChange",
					"when": "viewItem == pijulChange",
					"group": "changeFourth"
				},
				{
					"command": "pijul.applyChangeToCurrentChannel",
					"when": "view == pijul.views.channels && viewItem == pijulChange",
					"group": "changeFourth"
				},
				{
					"command": "pijul.switchChannel",
					"when": "view == pijul.views.channels && viewItem == pijulChannel"
				},
				{
					"command": "pijul.renameChannel",
					"when": "view == pijul.views.channels && viewItem == pijulChannel || viewItem == pijulChannelCurrent"
				},
				{
					"command": "pijul.deleteChannel",
					"when": "view == pijul.views.channels && viewItem == pijulChannel"
				},
				{
					"command": "pijul.mergeChannel",
					"when": "view == pijul.views.channels && viewItem == pijulChannel"
				},
				{
					"command": "pijul.mergeChannel",
					"when": "view == pijul.views.channels && viewItem == pijulChannel",
					"group": "inline"
				}
			]
		},
		"views": {
			"scm": [
				{
					"id": "pijul.views.log",
					"name": "Changelog",
					"contextualTitle": "Pijul",
					"visibility": "visible",
					"when": "config.pijul.enabled && pijul.activated"
				},
				{
					"id": "pijul.views.channels",
					"name": "Channels",
					"contextualTitle": "Pijul",
					"visibility": "visible",
					"when": "config.pijul.enabled && pijul.activated"
				},
				{
					"id": "pijul.views.remotes",
					"name": "Remotes",
					"contextualTitle": "Pijul",
					"visibility": "visible",
					"when": "config.pijul.enabled && pijul.activated"
				}
			]
		},
		"colors": [
			{
				"id": "pijulDecoration.addedForeground",
				"description": "Colour representing an added file",
				"defaults": {
					"light": "#587c0c",
					"dark": "#81b88b",
					"highContrast": "#1b5225"
				}
			},
			{
				"id": "pijulDecoration.editForeground",
				"description": " Colour representing an edited file",
				"defaults": {
					"light": "#895503",
					"dark": "#E2C08D",
					"highContrast": "#E2C08D"
				}
			},
			{
				"id": "pijulDecoration.deletedForeground",
				"description": "Colour representing a delete file",
				"defaults": {
					"light": "#ad0707",
					"dark": "#c74e39",
					"highContrast": "#c74e39"
				}
			},
			{
				"id": "pijulDecoration.untrackedForeground",
				"description": "Colour representing an untracked file",
				"defaults": {
					"light": "#007100",
					"dark": "#73C991",
					"highContrast": "#73C991"
				}
			},
			{
				"id": "pijulDecoration.replacementForeground",
				"description": "Colour representing a replacement",
				"defaults": {
					"light": "#895503",
					"dark": "#E2C08D",
					"highContrast": "#E2C08D"
				}
			},
			{
				"id": "pijulDecoration.conflictForeground",
				"description": "Colour representing a conflict",
				"defaults": {
					"light": "#6c6cc4",
					"dark": "#6c6cc4",
					"highContrast": "#6c6cc4"
				}
			}
		]
	},
	"scripts": {
		"vscode:prepublish": "yarn run package",
		"compile": "webpack --config ./build/node-extension.webpack.config.js",
		"watch": "webpack --watch --config ./build/node-extension.webpack.config.js",
		"package": "webpack --mode production --devtool hidden-source-map --config ./build/node-extension.webpack.config.js",
		"test-compile": "tsc -p ./",
		"test-watch": "tsc -watch -p ./",
		"pretest": "yarn run test-compile && yarn run lint",
		"lint": "eslint src --ext ts",
		"test": "node ./out/test/runTest.js"
	},
	"devDependencies": {
		"@types/glob": "^7.1.3",
		"@types/mocha": "^8.0.4",
		"@types/node": "^12.11.7",
		"@types/vscode": "^1.52.0",
		"@typescript-eslint/eslint-plugin": "^4.9.0",
		"@typescript-eslint/parser": "^4.9.0",
		"eslint": "^7.16.0",
		"eslint-config-standard": "^16.0.2",
		"eslint-config-standard-with-typescript": "^19.0.1",
		"eslint-plugin-import": "^2.22.1",
		"eslint-plugin-node": "^11.1.0",
		"eslint-plugin-promise": "^4.2.1",
		"eslint-plugin-standard": "^5.0.0",
		"glob": "^7.1.6",
		"mocha": "^8.1.3",
		"ts-loader": "^8.0.11",
		"typescript": "^4.1.2",
		"vscode-test": "^1.4.1",
		"webpack": "^5.10.0",
		"webpack-cli": "^4.2.0"
	},
	"dependencies": {
		"iconv-lite-umd": "^0.6.8",
		"set-operations": "^1.2.1",
		"vsce": "^1.95.1"
	}
}