Files
xboct-flow/package.json
T
2026-07-19 10:49:28 +05:00

240 lines
5.5 KiB
JSON

{
"name": "xboctuk-flow",
"displayName": "XBOCTuK Flow",
"description": "Local-first task management for solo developers and small teams",
"version": "0.1.0",
"publisher": "Ku6epXBOCTuK",
"license": "MIT",
"engines": {
"vscode": "^1.96.0"
},
"categories": [
"Other"
],
"keywords": [
"tasks",
"todo",
"issues",
"kanban",
"project-management"
],
"activationEvents": [
"onStartupFinished"
],
"main": "./out/extension.js",
"contributes": {
"languages": [
{
"id": "xflow",
"aliases": [
"XBOCTuK Flow",
"xflow"
],
"extensions": [
".xflow.md"
],
"configuration": "./language-configuration.json"
}
],
"grammars": [
{
"language": "xflow",
"scopeName": "text.html.markdown.xflow",
"path": "./syntaxes/xflow.tmLanguage.json"
}
],
"commands": [
{
"command": "xboctukFlow.createTask",
"title": "XBOCTuK Flow: Create Task",
"icon": "$(add)"
},
{
"command": "xboctukFlow.openTask",
"title": "XBOCTuK Flow: Open Task",
"icon": "$(go-to-file)"
},
{
"command": "xboctukFlow.deleteTask",
"title": "XBOCTuK Flow: Delete Task",
"icon": "$(trash)"
},
{
"command": "xboctukFlow.changeStatus",
"title": "XBOCTuK Flow: Change Status",
"icon": "$(sync)"
},
{
"command": "xboctukFlow.editTaskStatus",
"title": "XBOCTuK Flow: Edit Status (in file)"
},
{
"command": "xboctukFlow.editTaskPriority",
"title": "XBOCTuK Flow: Edit Priority (in file)"
},
{
"command": "xboctukFlow.setAssigneeMe",
"title": "XBOCTuK Flow: Set Assignee to Me"
},
{
"command": "xboctukFlow.editTaskTags",
"title": "XBOCTuK Flow: Edit Tags (in file)"
},
{
"command": "xboctukFlow.addTagToProject",
"title": "XBOCTuK Flow: Add Tag to Project"
},
{
"command": "xboctukFlow.openDashboard",
"title": "XBOCTuK Flow: Open Dashboard",
"icon": "$(dashboard)"
},
{
"command": "xboctukFlow.openInDashboard",
"title": "XBOCTuK Flow: Open in Dashboard",
"icon": "$(edit)"
},
{
"command": "xboctukFlow.openKanban",
"title": "XBOCTuK Flow: Open Kanban",
"icon": "$(layout)"
}
],
"configuration": {
"title": "XBOCTuK Flow",
"properties": {
"xboctukFlow.projectPath": {
"type": "string",
"default": ".xflow",
"description": "Path to project-level tasks folder (relative to workspace root)"
},
"xboctukFlow.globalPath": {
"type": "string",
"default": "",
"description": "Path to global tasks folder (absolute path, shared across projects)"
}
}
},
"viewsContainers": {
"activitybar": [
{
"id": "xboctukFlow",
"title": "XBOCTuK Flow",
"icon": "media/icon.svg"
}
]
},
"views": {
"xboctukFlow": [
{
"type": "tree",
"id": "xboctukFlow.tasks",
"name": "Tasks",
"icon": "media/icon.svg"
}
]
},
"menus": {
"view/title": [
{
"command": "xboctukFlow.createTask",
"when": "view == xboctukFlow.tasks",
"group": "navigation@1"
},
{
"command": "xboctukFlow.openDashboard",
"when": "view == xboctukFlow.tasks",
"group": "navigation@2"
},
{
"command": "xboctukFlow.openKanban",
"when": "view == xboctukFlow.tasks",
"group": "navigation@3"
}
],
"view/item/context": [
{
"command": "xboctukFlow.openTask",
"when": "view == xboctukFlow.tasks && viewItem == task",
"group": "inline@1"
},
{
"command": "xboctukFlow.openInDashboard",
"when": "view == xboctukFlow.tasks && viewItem == task",
"group": "inline@2"
},
{
"command": "xboctukFlow.changeStatus",
"when": "view == xboctukFlow.tasks && viewItem == task",
"group": "inline@3"
},
{
"command": "xboctukFlow.deleteTask",
"when": "view == xboctukFlow.tasks && viewItem == task",
"group": "inline@4"
},
{
"command": "xboctukFlow.openTask",
"when": "view == xboctukFlow.tasks && viewItem == task",
"group": "1_task@1"
},
{
"command": "xboctukFlow.openInDashboard",
"when": "view == xboctukFlow.tasks && viewItem == task",
"group": "1_task@2"
},
{
"command": "xboctukFlow.changeStatus",
"when": "view == xboctukFlow.tasks && viewItem == task",
"group": "1_task@3"
},
{
"command": "xboctukFlow.deleteTask",
"when": "view == xboctukFlow.tasks && viewItem == task",
"group": "1_task@4"
}
]
}
},
"scripts": {
"build": "vite build",
"watch": "vite build --watch",
"package": "vsce package --allow-missing-repository --no-rewrite-relative-links",
"vscode:prepublish": "npm run build",
"lint": "eslint .",
"check": "npm run check:app && npm run check:test",
"check:app": "tsc --noEmit -p tsconfig.app.json",
"check:test": "tsc --noEmit -p tsconfig.test.json",
"format": "prettier --write .",
"test": "vitest",
"test:run": "vitest run"
},
"devDependencies": {
"@eslint/compat": "^2.0.0",
"@eslint/js": "^9.39.0",
"@types/node": "^22.0.0",
"@types/uuid": "^10.0.0",
"@types/vscode": "^1.96.0",
"@vitest/eslint-plugin": "^1.5.0",
"@vscode/vsce": "^3.9.2",
"eslint": "^9.39.0",
"eslint-config-prettier": "^10.1.0",
"globals": "^16.4.0",
"typescript": "^5.7.0",
"typescript-eslint": "^8.46.0",
"vite": "^8.1.4",
"vitest": "^4.1.10"
},
"dependencies": {
"front-matter": "^4.0.2",
"js-yaml": "^5.2.1",
"neverthrow": "^8.2.0",
"prettier": "^3.9.5",
"uuid": "^11.0.0"
},
"repository": {
"type": "git",
"url": ""
}
}