{
    "name": "vscode-appwrite",
    "displayName": "Appwrite",
    "description": "Manage your Appwrite resources right from VS Code!",
    "version": "0.1.2",
    "engines": {
        "vscode": "^1.55.0"
    },
    "publisher": "Streamlux",
    "repository": {
        "url": "https://github.com/streamlux/vscode-appwrite"
    },
    "categories": [
        "Other"
    ],
    "icon": "resources/AppwriteIcon.png",
    "galleryBanner": {
        "color": "#061F2F",
        "theme": "dark"
    },
    "homepage": "https://github.com/streamlux/vscode-appwrite",
    "bugs": {
        "url": "https://github.com/streamlux/vscode-appwrite/issues",
        "email": "engineering@streamlux.com"
    },
    "license": "SEE LICENSE IN LICENSE.md",
    "activationEvents": [
        "onCommand:vscode-appwrite.Connect",
        "onView:Appwrite",
        "onView:Users",
        "onView:Database",
        "onView:Health",
        "onView:Functions",
        "onCommand:vscode-appwrite.AddProject",
        "onCommand:vscode-appwrite.CreateTag"
    ],
    "main": "./dist/extension.js",
    "contributes": {
        "commands": [
            {
                "command": "vscode-appwrite.Connect",
                "title": "Connect to Appwrite",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.CreateUser",
                "title": "Create user",
                "icon": "$(add)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.DeleteUser",
                "title": "Delete user",
                "icon": "$(trash)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.GetUserLogs",
                "title": "Get user logs",
                "icon": "$(output)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.openUserInConsole",
                "title": "View user in Appwrite console",
                "icon": "$(link-external)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.viewUserPrefs",
                "title": "View user preferences",
                "icon": "$(json)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.refreshEntry",
                "title": "Refresh",
                "icon": "$(refresh)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.copyUserId",
                "title": "Copy user ID",
                "icon": "$(clippy)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.copyUserEmail",
                "title": "Copy user email",
                "icon": "$(clippy)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.refreshUsersList",
                "title": "Refresh users list",
                "icon": "$(refresh)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.OpenUsersDocumentation",
                "title": "Open documentation",
                "icon": "$(book)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.OpenDatabaseDocumentation",
                "title": "Open documentation",
                "icon": "$(book)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.viewDocumentAsJson",
                "title": "View as JSON",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.viewCollectionAsJson",
                "title": "View collection as JSON",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.refreshCollection",
                "title": "Refresh",
                "icon": "$(refresh)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.createRule",
                "title": "Create collection rule",
                "icon": "$(add)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.removeRule",
                "title": "Remove collection rule",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.deleteDocument",
                "title": "Delete document",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.deleteCollection",
                "title": "Delete collection",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.refreshCollectionsList",
                "title": "Refresh",
                "icon": "$(refresh)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.createCollection",
                "title": "Create collection",
                "icon": "$(add)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.createPermission",
                "title": "Create permission",
                "icon": "$(add)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.deletePermission",
                "title": "Delete permission",
                "icon": "$(trash)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.editPermission",
                "title": "Edit permission",
                "icon": "$(edit)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.refreshHealth",
                "title": "Refresh health",
                "icon": "$(refresh)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.openHealthDocumentation",
                "title": "Open health documentation",
                "icon": "$(book)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.refreshStorage",
                "title": "Refresh storage",
                "icon": "$(refresh)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.openStorageDocumentation",
                "title": "Open storage documentation",
                "icon": "$(book)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.addProject",
                "title": "Add Appwrite project",
                "icon": "$(plus)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.setActiveProject",
                "title": "Set as active",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.refreshProjects",
                "title": "Refresh projects",
                "icon": "$(refresh)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.refreshFunctions",
                "title": "Refresh functions",
                "icon": "$(refresh)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.refreshFunctions",
                "title": "Refresh functions",
                "icon": "$(refresh)"
            },
            {
                "command": "vscode-appwrite.removeProject",
                "title": "Remove project",
                "icon": "$(trash)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.CreateTag",
                "title": "Create function tag",
                "icon": "$(cloud-upload)",
                "shortTitle": "Create function tag",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.deleteTag",
                "title": "Delete tag",
                "icon": "$(trash)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.CreateExecution",
                "title": "Execute",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.activateTag",
                "title": "Activate",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.editValue",
                "title": "Edit",
                "icon": "$(edit)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.deleteFunction",
                "title": "Delete",
                "icon": "$(trash)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.openFunctionsDocumentation",
                "title": "Open functions documentation",
                "icon": "$(book)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.createFunction",
                "title": "Create function",
                "icon": "$(add)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.createFunctionVar",
                "title": "Create variable",
                "icon": "$(add)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.deleteFunctionVar",
                "title": "Delete variable",
                "icon": "$(trash)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.viewExecutionOutput",
                "title": "View execution stdout",
                "enablement": "viewItem =~ /^((execution|execution_outputOnly))$/",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.viewExecutionErrors",
                "title": "View execution stderr",
                "enablement": "viewItem =~ /^((execution|execution_errorOnly))$/",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.copyExecutionOutput",
                "title": "Copy execution stdout",
                "enablement": "viewItem =~ /^((execution|execution_outputOnly))$/",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.copyExecutionErrors",
                "title": "Copy execution stderr",
                "enablement": "viewItem =~ /^((execution|execution_errorOnly))$/",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.openExecutionsInBrowser",
                "title": "View executions in browser",
                "enablement": "viewItem =~ /^(executions)$/",
                "icon": "$(link-external)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.openFunctionTagsInBrowser",
                "title": "Open function tags in browser",
                "icon": "$(link-external)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.openFunctionSettingsInBrowser",
                "title": "Open function settings in browser",
                "icon": "$(link-external)",
                "category": "Appwrite"
            },
            {
                "command": "vscode-appwrite.viewMore",
                "title": "View more",
                "category": "Appwrite"
            }
        ],
        "views": {
            "Appwrite": [
                {
                    "id": "Users",
                    "name": "Users"
                },
                {
                    "id": "Database",
                    "name": "Database"
                },
                {
                    "id": "Storage",
                    "name": "Storage"
                },
                {
                    "id": "Health",
                    "name": "Health"
                },
                {
                    "id": "Projects",
                    "name": "Projects"
                },
                {
                    "id": "Functions",
                    "name": "Functions (Preview)"
                }
            ]
        },
        "viewsWelcome": [
            {
                "view": "Users",
                "contents": "Connect to Appwrite to get started.\n[Connect to Appwrite](command:vscode-appwrite.Connect)"
            },
            {
                "view": "Projects",
                "contents": "Add an Appwrite project to get started.\n[Connect to Appwrite](command:vscode-appwrite.Connect)"
            }
        ],
        "menus": {
            "view/title": [
                {
                    "command": "vscode-appwrite.OpenUsersDocumentation",
                    "when": "view == Users",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.OpenDatabaseDocumentation",
                    "when": "view == Database",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.refreshUsersList",
                    "when": "view == Users",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.CreateUser",
                    "when": "view == Users",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.refreshCollectionsList",
                    "when": "view == Database",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.createCollection",
                    "when": "view == Database",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.refreshHealth",
                    "when": "view == Health",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.openHealthDocumentation",
                    "when": "view == Health",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.refreshStorage",
                    "when": "view == Storage",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.openStorageDocumentation",
                    "when": "view == Storage",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.openFunctionsDocumentation",
                    "when": "view == Functions",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.refreshProjects",
                    "when": "view == Projects",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.refreshFunctions",
                    "when": "view == Functions",
                    "group": "navigation"
                },
                {
                    "command": "vscode-appwrite.createFunction",
                    "when": "view == Functions",
                    "group": "navigation"
                }
            ],
            "view/item/context": [
                {
                    "command": "vscode-appwrite.viewUserPrefs",
                    "when": "viewItem == user"
                },
                {
                    "command": "vscode-appwrite.DeleteUser",
                    "when": "viewItem == user"
                },
                {
                    "command": "vscode-appwrite.GetUserLogs",
                    "when": "viewItem == user"
                },
                {
                    "command": "vscode-appwrite.openUserInConsole",
                    "when": "view == Users && viewItem == user",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.copyUserId",
                    "when": "viewItem == user.id",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.copyUserEmail",
                    "when": "viewItem == user.email",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.viewDocumentAsJson",
                    "when": "viewItem == document"
                },
                {
                    "command": "vscode-appwrite.viewCollectionAsJson",
                    "when": "viewItem == collection"
                },
                {
                    "command": "vscode-appwrite.deleteCollection",
                    "when": "viewItem == collection"
                },
                {
                    "command": "vscode-appwrite.createRule",
                    "when": "viewItem == collection.rules",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.createRule",
                    "when": "viewItem == collection.rules"
                },
                {
                    "command": "vscode-appwrite.removeRule",
                    "when": "viewItem == collection.rule"
                },
                {
                    "command": "vscode-appwrite.refreshCollection",
                    "when": "viewItem == collection"
                },
                {
                    "command": "vscode-appwrite.deleteDocument",
                    "when": "viewItem == document"
                },
                {
                    "command": "vscode-appwrite.createPermission",
                    "when": "viewItem =~ /^(permissions)$/"
                },
                {
                    "command": "vscode-appwrite.createPermission",
                    "when": "viewItem =~ /^(permissions)$/",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.editPermission",
                    "when": "viewItem =~ /^(permission)$/",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.editPermission",
                    "when": "viewItem =~ /^(permission)$/"
                },
                {
                    "command": "vscode-appwrite.deletePermission",
                    "when": "viewItem =~ /^(permission)$/"
                },
                {
                    "command": "vscode-appwrite.deletePermission",
                    "when": "viewItem =~ /^(permission)$/",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.setActiveProject",
                    "when": "viewItem =~ /^(appwriteProject)$/",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.removeProject",
                    "when": "viewItem =~ /(appwriteProject)/"
                },
                {
                    "command": "vscode-appwrite.CreateExecution",
                    "when": "viewItem =~ /^(function)$/",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.activateTag",
                    "when": "viewItem =~ /^(tag)$/",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.editValue",
                    "when": "viewItem =~ /^(editable)/",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.deleteFunction",
                    "when": "viewItem =~ /^(function)$/"
                },
                {
                    "command": "vscode-appwrite.deleteFunctionVar",
                    "when": "viewItem =~ /(var)$/"
                },
                {
                    "command": "vscode-appwrite.createFunctionVar",
                    "when": "viewItem =~ /^(vars)$/",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.deleteTag",
                    "when": "viewItem =~ /^(tag)$/"
                },
                {
                    "command": "vscode-appwrite.viewExecutionErrors",
                    "when": "viewItem =~ /^execution[^s]*$/",
                    "group": "view@1"
                },
                {
                    "command": "vscode-appwrite.viewExecutionOutput",
                    "when": "viewItem =~ /^execution[^s]*$/",
                    "group": "view@1"
                },
                {
                    "command": "vscode-appwrite.copyExecutionErrors",
                    "when": "viewItem =~ /^execution[^s]*$/",
                    "group": "copy@2"
                },
                {
                    "command": "vscode-appwrite.copyExecutionOutput",
                    "when": "viewItem =~ /^execution[^s]*$/",
                    "group": "copy@2"
                },
                {
                    "command": "vscode-appwrite.openExecutionsInBrowser",
                    "when": "viewItem =~ /^executions$/",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.openFunctionTagsInBrowser",
                    "when": "viewItem =~ /^tags$/",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.openFunctionSettingsInBrowser",
                    "when": "viewItem =~ /^functionSettings$/",
                    "group": "inline"
                },
                {
                    "command": "vscode-appwrite.CreateTag",
                    "when": "viewItem =~ /^tags$/",
                    "group": "inline"
                }
            ],
            "explorer/context": [
                {
                    "command": "vscode-appwrite.CreateTag",
                    "when": "explorerResourceIsFolder == true",
                    "group": "appwrite@1"
                }
            ],
            "commandPalette": [
                {
                    "command": "vscode-appwrite.CreateTag"
                },
                {
                    "command": "vscode-appwrite.Connect"
                },
                {
                    "command": "vscode-appwrite.CreateUser"
                },
                {
                    "command": "vscode-appwrite.DeleteUser",
                    "when": "viewItem == user"
                },
                {
                    "command": "vscode-appwrite.GetUserLogs",
                    "when": "viewItem == user"
                },
                {
                    "command": "vscode-appwrite.openUserInConsole",
                    "when": "viewItem == user"
                },
                {
                    "command": "vscode-appwrite.viewUserPrefs",
                    "when": "viewItem == user"
                },
                {
                    "command": "vscode-appwrite.copyUserId",
                    "when": "viewItem == user.id"
                },
                {
                    "command": "vscode-appwrite.copyUserEmail",
                    "when": "viewItem == user.email"
                },
                {
                    "command": "vscode-appwrite.viewDocumentAsJson",
                    "when": "viewItem == document"
                },
                {
                    "command": "vscode-appwrite.viewCollectionAsJson",
                    "when": "viewItem == collection"
                },
                {
                    "command": "vscode-appwrite.refreshCollection",
                    "when": "viewItem == collection"
                },
                {
                    "command": "vscode-appwrite.createRule",
                    "when": "viewItem == collection.rules"
                },
                {
                    "command": "vscode-appwrite.removeRule",
                    "when": "viewItem == rule"
                },
                {
                    "command": "vscode-appwrite.deleteDocument",
                    "when": "viewItem == document"
                },
                {
                    "command": "vscode-appwrite.deleteCollection",
                    "when": "viewItem == collection"
                },
                {
                    "command": "vscode-appwrite.createPermission",
                    "when": "viewItem == collection.permissions"
                },
                {
                    "command": "vscode-appwrite.deletePermission",
                    "when": "viewItem =~ /^(permission)$/"
                },
                {
                    "command": "vscode-appwrite.editPermission",
                    "when": "viewItem =~ /^(permission)$/"
                }
            ]
        },
        "viewsContainers": {
            "activitybar": [
                {
                    "id": "Appwrite",
                    "title": "Appwrite",
                    "icon": "./resources/vscode-appwrite.svg"
                }
            ]
        },
        "configuration": {
            "title": "Appwrite",
            "properties": {
                "appwrite.projects": {
                    "type": "array",
                    "default": [],
                    "markdownDescription": "List of Appwrite project configurations. You can use the Connect command to set this up, or see [docs](https://github.com/streamlux/vscode-appwrite/) for more information."
                },
                "appwrite.activeProjectId": {
                    "type": "string",
                    "default": "",
                    "markdownDescription": "Project id of the active project, see [docs](https://github.com/streamlux/vscode-appwrite/) for more information."
                }
            }
        }
    },
    "scripts": {
        "vscode:prepublish": "npm run package",
        "compile": "webpack",
        "watch": "webpack --watch",
        "package": "webpack --mode production --devtool hidden-source-map",
        "test-compile": "tsc -p ./",
        "test-watch": "tsc -watch -p ./",
        "pretest": "npm run test-compile && npm run lint",
        "lint": "eslint src --ext ts",
        "test": "node ./out/test/runTest.js"
    },
    "devDependencies": {
        "@types/fs-extra": "^9.0.11",
        "@types/glob": "^7.1.3",
        "@types/mocha": "^8.0.4",
        "@types/node": "^12.11.7",
        "@types/tar": "^4.0.4",
        "@types/vscode": "^1.55.0",
        "@typescript-eslint/eslint-plugin": "^4.14.1",
        "@typescript-eslint/parser": "^4.14.1",
        "eslint": "^7.19.0",
        "glob": "^7.1.6",
        "mocha": "^8.2.1",
        "ts-loader": "^8.0.14",
        "typescript": "^4.1.3",
        "vsce": "^1.88.0",
        "vscode-test": "^1.5.0",
        "webpack": "^5.19.0",
        "webpack-cli": "^4.4.0"
    },
    "dependencies": {
        "cron-validate": "^1.4.3",
        "cronstrue": "^1.113.0",
        "dayjs": "^1.10.4",
        "fs-extra": "^9.1.0",
        "node-appwrite": "^2.2.3",
        "tar": "^6.1.0"
    }
}
