Copy as curl

This commit is contained in:
Gregory Schier
2024-05-08 00:00:50 -07:00
parent edc4fe3d9a
commit b196e51f1f
32 changed files with 4352 additions and 507 deletions

48
package-lock.json generated
View File

@@ -24,6 +24,7 @@
"@tanstack/react-query-devtools": "^4.28.0", "@tanstack/react-query-devtools": "^4.28.0",
"@tanstack/react-query-persist-client": "^4.28.0", "@tanstack/react-query-persist-client": "^4.28.0",
"@tauri-apps/api": ">=2.0.0-beta.0", "@tauri-apps/api": ">=2.0.0-beta.0",
"@tauri-apps/plugin-clipboard-manager": "^2.1.0-beta.1",
"@tauri-apps/plugin-dialog": ">=2.0.0-beta.0", "@tauri-apps/plugin-dialog": ">=2.0.0-beta.0",
"@tauri-apps/plugin-fs": ">=2.0.0-beta.0", "@tauri-apps/plugin-fs": ">=2.0.0-beta.0",
"@tauri-apps/plugin-os": ">=2.0.0-beta.0", "@tauri-apps/plugin-os": ">=2.0.0-beta.0",
@@ -37,7 +38,6 @@
"focus-trap-react": "^10.1.1", "focus-trap-react": "^10.1.1",
"format-graphql": "^1.4.0", "format-graphql": "^1.4.0",
"framer-motion": "^9.0.4", "framer-motion": "^9.0.4",
"internal-ip": "^8.0.0",
"lucide-react": "^0.309.0", "lucide-react": "^0.309.0",
"mime": "^4.0.1", "mime": "^4.0.1",
"papaparse": "^5.4.1", "papaparse": "^5.4.1",
@@ -56,7 +56,7 @@
}, },
"devDependencies": { "devDependencies": {
"@tailwindcss/nesting": "^0.0.0-insiders.565cd3e", "@tailwindcss/nesting": "^0.0.0-insiders.565cd3e",
"@tauri-apps/cli": "^2.0.0-beta.13", "@tauri-apps/cli": ">=2.0.0-beta.0",
"@types/node": "^18.7.10", "@types/node": "^18.7.10",
"@types/papaparse": "^5.3.7", "@types/papaparse": "^5.3.7",
"@types/parse-color": "^1.0.1", "@types/parse-color": "^1.0.1",
@@ -75,6 +75,7 @@
"eslint-plugin-react": "^7.32.2", "eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks": "^4.6.0",
"husky": "^8.0.3", "husky": "^8.0.3",
"internal-ip": "^8.0.0",
"lint-staged": "^15.0.2", "lint-staged": "^15.0.2",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"postcss": "^8.4.21", "postcss": "^8.4.21",
@@ -83,7 +84,7 @@
"react-devtools": "^4.27.2", "react-devtools": "^4.27.2",
"tailwindcss": "^3.2.7", "tailwindcss": "^3.2.7",
"typescript": "^5.3.3", "typescript": "^5.3.3",
"vite": "^5.1.1", "vite": "^5.0.0",
"vite-plugin-svgr": "^4.2.0", "vite-plugin-svgr": "^4.2.0",
"vite-plugin-top-level-await": "^1.4.1", "vite-plugin-top-level-await": "^1.4.1",
"vitest": "^1.3.0" "vitest": "^1.3.0"
@@ -2554,6 +2555,14 @@
"node": ">= 10" "node": ">= 10"
} }
}, },
"node_modules/@tauri-apps/plugin-clipboard-manager": {
"version": "2.1.0-beta.1",
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-clipboard-manager/-/plugin-clipboard-manager-2.1.0-beta.1.tgz",
"integrity": "sha512-nipr29/eQVlgNw6A1futwsFwWeeS0tBbq1Pww7yb+IZDKfhIFXYJ1NmrEcVGQ6vYz4KPIu+llR6D9pjKl/vSvA==",
"dependencies": {
"@tauri-apps/api": "2.0.0-beta.11"
}
},
"node_modules/@tauri-apps/plugin-dialog": { "node_modules/@tauri-apps/plugin-dialog": {
"version": "2.0.0-beta.3", "version": "2.0.0-beta.3",
"resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.0.0-beta.3.tgz", "resolved": "https://registry.npmjs.org/@tauri-apps/plugin-dialog/-/plugin-dialog-2.0.0-beta.3.tgz",
@@ -3909,6 +3918,7 @@
"version": "4.0.3", "version": "4.0.3",
"resolved": "https://registry.npmjs.org/cidr-regex/-/cidr-regex-4.0.3.tgz", "resolved": "https://registry.npmjs.org/cidr-regex/-/cidr-regex-4.0.3.tgz",
"integrity": "sha512-HOwDIy/rhKeMf6uOzxtv7FAbrz8zPjmVKfSpM+U7/bNBXC5rtOyr758jxcptiSx6ZZn5LOhPJT5WWxPAGDV8dw==", "integrity": "sha512-HOwDIy/rhKeMf6uOzxtv7FAbrz8zPjmVKfSpM+U7/bNBXC5rtOyr758jxcptiSx6ZZn5LOhPJT5WWxPAGDV8dw==",
"dev": true,
"dependencies": { "dependencies": {
"ip-regex": "^5.0.0" "ip-regex": "^5.0.0"
}, },
@@ -3920,6 +3930,7 @@
"version": "6.4.2", "version": "6.4.2",
"resolved": "https://registry.npmjs.org/cidr-tools/-/cidr-tools-6.4.2.tgz", "resolved": "https://registry.npmjs.org/cidr-tools/-/cidr-tools-6.4.2.tgz",
"integrity": "sha512-KZC8t2ipCqU2M+ISmTxRDGu9bku5MRU3V1cWyGEFJTZEzRhGvBJvVsbpZO5UAu12fExRFihtYGXAlgFFpmK9jw==", "integrity": "sha512-KZC8t2ipCqU2M+ISmTxRDGu9bku5MRU3V1cWyGEFJTZEzRhGvBJvVsbpZO5UAu12fExRFihtYGXAlgFFpmK9jw==",
"dev": true,
"dependencies": { "dependencies": {
"cidr-regex": "4.0.3", "cidr-regex": "4.0.3",
"ip-bigint": "7.3.0", "ip-bigint": "7.3.0",
@@ -4058,6 +4069,7 @@
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-3.0.0.tgz", "resolved": "https://registry.npmjs.org/clone-regexp/-/clone-regexp-3.0.0.tgz",
"integrity": "sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==", "integrity": "sha512-ujdnoq2Kxb8s3ItNBtnYeXdm07FcU0u8ARAT1lQ2YdMwQC+cdiXX8KoqMVuglztILivceTtp4ivqGSmEmhBUJw==",
"dev": true,
"dependencies": { "dependencies": {
"is-regexp": "^3.0.0" "is-regexp": "^3.0.0"
}, },
@@ -4222,6 +4234,7 @@
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz", "resolved": "https://registry.npmjs.org/convert-hrtime/-/convert-hrtime-5.0.0.tgz",
"integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==", "integrity": "sha512-lOETlkIeYSJWcbbcvjRKGxVMXJR+8+OQb/mTPbA4ObPMytYIsUbuOE0Jzy60hjARYszq1id0j8KgVhC+WGZVTg==",
"dev": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@@ -4538,6 +4551,7 @@
"version": "7.2.2", "version": "7.2.2",
"resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-7.2.2.tgz", "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-7.2.2.tgz",
"integrity": "sha512-AD7TrdNNPXRZIGw63dw+lnGmT4v7ggZC5NHNJgAYWm5njrwoze1q5JSAW9YuLy2tjnoLUG/r8FEB93MCh9QJPg==", "integrity": "sha512-AD7TrdNNPXRZIGw63dw+lnGmT4v7ggZC5NHNJgAYWm5njrwoze1q5JSAW9YuLy2tjnoLUG/r8FEB93MCh9QJPg==",
"dev": true,
"dependencies": { "dependencies": {
"execa": "^7.1.1" "execa": "^7.1.1"
}, },
@@ -5600,6 +5614,7 @@
"version": "7.2.0", "version": "7.2.0",
"resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz", "resolved": "https://registry.npmjs.org/execa/-/execa-7.2.0.tgz",
"integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==", "integrity": "sha512-UduyVP7TLB5IcAQl+OzLyLcS/l32W/GLg+AhHJ+ow40FOk2U3SAllPwR44v4vmdFwIWqpdwxxpQbF1n5ta9seA==",
"dev": true,
"dependencies": { "dependencies": {
"cross-spawn": "^7.0.3", "cross-spawn": "^7.0.3",
"get-stream": "^6.0.1", "get-stream": "^6.0.1",
@@ -5945,6 +5960,7 @@
"version": "0.1.1", "version": "0.1.1",
"resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-0.1.1.tgz", "resolved": "https://registry.npmjs.org/function-timeout/-/function-timeout-0.1.1.tgz",
"integrity": "sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==", "integrity": "sha512-0NVVC0TaP7dSTvn1yMiy6d6Q8gifzbvQafO46RtLG/kHJUBNd+pVRGOBoK44wNBvtSPUJRfdVvkFdD3p0xvyZg==",
"dev": true,
"engines": { "engines": {
"node": ">=14.16" "node": ">=14.16"
}, },
@@ -6040,6 +6056,7 @@
"version": "6.0.1", "version": "6.0.1",
"resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
"integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
"dev": true,
"engines": { "engines": {
"node": ">=10" "node": ">=10"
}, },
@@ -6382,6 +6399,7 @@
"version": "4.3.1", "version": "4.3.1",
"resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz", "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-4.3.1.tgz",
"integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==", "integrity": "sha512-nZXjEF2nbo7lIw3mgYjItAfgQXog3OjJogSbKa2CQIIvSGWcKgeJnQlNXip6NglNzYH45nSRiEVimMvYL8DDqQ==",
"dev": true,
"engines": { "engines": {
"node": ">=14.18.0" "node": ">=14.18.0"
} }
@@ -6503,6 +6521,7 @@
"version": "8.0.0", "version": "8.0.0",
"resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-8.0.0.tgz", "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-8.0.0.tgz",
"integrity": "sha512-e6c3zxr9COnnc29PIz9LffmALOt0XhIJdR7f83DyHcQksL3B40KGmU3Sr1lrHja3i7Zyqo+AbwKZ+nZiMvg/OA==", "integrity": "sha512-e6c3zxr9COnnc29PIz9LffmALOt0XhIJdR7f83DyHcQksL3B40KGmU3Sr1lrHja3i7Zyqo+AbwKZ+nZiMvg/OA==",
"dev": true,
"dependencies": { "dependencies": {
"cidr-tools": "^6.4.1", "cidr-tools": "^6.4.1",
"default-gateway": "^7.2.2", "default-gateway": "^7.2.2",
@@ -6548,6 +6567,7 @@
"version": "7.3.0", "version": "7.3.0",
"resolved": "https://registry.npmjs.org/ip-bigint/-/ip-bigint-7.3.0.tgz", "resolved": "https://registry.npmjs.org/ip-bigint/-/ip-bigint-7.3.0.tgz",
"integrity": "sha512-2qVAe0Q9+Y+5nGvmogwK9y4kefD5Ks5l/IG0Jo1lhU9gIF34jifhqrwXwzkIl+LC594Q6SyAlngs4p890xsXVw==", "integrity": "sha512-2qVAe0Q9+Y+5nGvmogwK9y4kefD5Ks5l/IG0Jo1lhU9gIF34jifhqrwXwzkIl+LC594Q6SyAlngs4p890xsXVw==",
"dev": true,
"engines": { "engines": {
"node": ">=16" "node": ">=16"
} }
@@ -6556,6 +6576,7 @@
"version": "5.0.0", "version": "5.0.0",
"resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz", "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-5.0.0.tgz",
"integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==", "integrity": "sha512-fOCG6lhoKKakwv+C6KdsOnGvgXnmgfmp0myi3bcNwj3qfwPAxRKWEuFhvEFF7ceYIz6+1jRZ+yguLFAmUNPEfw==",
"dev": true,
"engines": { "engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0" "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}, },
@@ -6791,6 +6812,7 @@
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.1.tgz", "resolved": "https://registry.npmjs.org/is-ip/-/is-ip-5.0.1.tgz",
"integrity": "sha512-FCsGHdlrOnZQcp0+XT5a+pYowf33itBalCl+7ovNXC/7o5BhIpG14M3OrpPPdBSIQJCm+0M5+9mO7S9VVTTCFw==", "integrity": "sha512-FCsGHdlrOnZQcp0+XT5a+pYowf33itBalCl+7ovNXC/7o5BhIpG14M3OrpPPdBSIQJCm+0M5+9mO7S9VVTTCFw==",
"dev": true,
"dependencies": { "dependencies": {
"ip-regex": "^5.0.0", "ip-regex": "^5.0.0",
"super-regex": "^0.2.0" "super-regex": "^0.2.0"
@@ -6905,6 +6927,7 @@
"version": "3.1.0", "version": "3.1.0",
"resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz", "resolved": "https://registry.npmjs.org/is-regexp/-/is-regexp-3.1.0.tgz",
"integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==", "integrity": "sha512-rbku49cWloU5bSMI+zaRaXdQHXnthP6DZ/vLnfdSKyL4zUzuWnomtOEiZZOd+ioQ+avFo/qau3KPTc7Fjy1uPA==",
"dev": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@@ -6952,6 +6975,7 @@
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-3.0.0.tgz",
"integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==", "integrity": "sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==",
"dev": true,
"engines": { "engines": {
"node": "^12.20.0 || ^14.13.1 || >=16.0.0" "node": "^12.20.0 || ^14.13.1 || >=16.0.0"
}, },
@@ -7676,7 +7700,8 @@
"node_modules/merge-stream": { "node_modules/merge-stream": {
"version": "2.0.0", "version": "2.0.0",
"resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
"integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
"dev": true
}, },
"node_modules/merge2": { "node_modules/merge2": {
"version": "1.4.1", "version": "1.4.1",
@@ -7716,6 +7741,7 @@
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-4.0.0.tgz",
"integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==", "integrity": "sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==",
"dev": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@@ -8085,6 +8111,7 @@
"version": "5.3.0", "version": "5.3.0",
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz", "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-5.3.0.tgz",
"integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==", "integrity": "sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==",
"dev": true,
"dependencies": { "dependencies": {
"path-key": "^4.0.0" "path-key": "^4.0.0"
}, },
@@ -8099,6 +8126,7 @@
"version": "4.0.0", "version": "4.0.0",
"resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz", "resolved": "https://registry.npmjs.org/path-key/-/path-key-4.0.0.tgz",
"integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==", "integrity": "sha512-haREypq7xkM7ErfgIyA0z+Bj4AGKlMSdlQE2jvJo6huWD1EdkKYV+G/T4nq0YEF2vgTT8kqMFKo1uHn950r4SQ==",
"dev": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@@ -8256,6 +8284,7 @@
"version": "6.0.0", "version": "6.0.0",
"resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz", "resolved": "https://registry.npmjs.org/onetime/-/onetime-6.0.0.tgz",
"integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==", "integrity": "sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==",
"dev": true,
"dependencies": { "dependencies": {
"mimic-fn": "^4.0.0" "mimic-fn": "^4.0.0"
}, },
@@ -8296,6 +8325,7 @@
"version": "5.0.1", "version": "5.0.1",
"resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz", "resolved": "https://registry.npmjs.org/p-event/-/p-event-5.0.1.tgz",
"integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==", "integrity": "sha512-dd589iCQ7m1L0bmC5NLlVYfy3TbBEsMUfWx9PyAgPeIcFZ/E2yaTZ4Rz4MiBmmJShviiftHVXOqfnfzJ6kyMrQ==",
"dev": true,
"dependencies": { "dependencies": {
"p-timeout": "^5.0.2" "p-timeout": "^5.0.2"
}, },
@@ -8349,6 +8379,7 @@
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz", "resolved": "https://registry.npmjs.org/p-timeout/-/p-timeout-5.1.0.tgz",
"integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==", "integrity": "sha512-auFDyzzzGZZZdHz3BtET9VEz0SE/uMEAx7uWfGPucfzEwwe/xH0iVeZibQmANYE/hp9T2+UUZT5m+BKyrDp3Ew==",
"dev": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@@ -9828,7 +9859,8 @@
"node_modules/signal-exit": { "node_modules/signal-exit": {
"version": "3.0.7", "version": "3.0.7",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
"integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
"dev": true
}, },
"node_modules/slash": { "node_modules/slash": {
"version": "3.0.0", "version": "3.0.0",
@@ -10015,7 +10047,8 @@
"node_modules/string-natural-compare": { "node_modules/string-natural-compare": {
"version": "3.0.1", "version": "3.0.1",
"resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz", "resolved": "https://registry.npmjs.org/string-natural-compare/-/string-natural-compare-3.0.1.tgz",
"integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==" "integrity": "sha512-n3sPwynL1nwKi3WJ6AIsClwBMa0zTi54fn2oLU6ndfTSIO05xaznjSf15PcBZU6FNWbmN5Q6cxT4V5hGvB4taw==",
"dev": true
}, },
"node_modules/string-width": { "node_modules/string-width": {
"version": "7.1.0", "version": "7.1.0",
@@ -10232,6 +10265,7 @@
"version": "3.0.0", "version": "3.0.0",
"resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz", "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-3.0.0.tgz",
"integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==", "integrity": "sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==",
"dev": true,
"engines": { "engines": {
"node": ">=12" "node": ">=12"
}, },
@@ -10345,6 +10379,7 @@
"version": "0.2.0", "version": "0.2.0",
"resolved": "https://registry.npmjs.org/super-regex/-/super-regex-0.2.0.tgz", "resolved": "https://registry.npmjs.org/super-regex/-/super-regex-0.2.0.tgz",
"integrity": "sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==", "integrity": "sha512-WZzIx3rC1CvbMDloLsVw0lkZVKJWbrkJ0k1ghKFmcnPrW1+jWbgTkTEWVtD9lMdmI4jZEz40+naBxl1dCUhXXw==",
"dev": true,
"dependencies": { "dependencies": {
"clone-regexp": "^3.0.0", "clone-regexp": "^3.0.0",
"function-timeout": "^0.1.0", "function-timeout": "^0.1.0",
@@ -10639,6 +10674,7 @@
"version": "5.1.0", "version": "5.1.0",
"resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz", "resolved": "https://registry.npmjs.org/time-span/-/time-span-5.1.0.tgz",
"integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==", "integrity": "sha512-75voc/9G4rDIJleOo4jPvN4/YC4GRZrY8yy1uU4lwrB3XEQbWve8zXoO5No4eFrGcTAMYyoY67p8jRQdtA1HbA==",
"dev": true,
"dependencies": { "dependencies": {
"convert-hrtime": "^5.0.0" "convert-hrtime": "^5.0.0"
}, },

View File

@@ -16,6 +16,7 @@
"build:icon:dev": "tauri icon design/icon-dev.png --output ./src-tauri/icons/dev", "build:icon:dev": "tauri icon design/icon-dev.png --output ./src-tauri/icons/dev",
"build:frontend": "vite build", "build:frontend": "vite build",
"build:plugins": "run-p build:plugin:*", "build:plugins": "run-p build:plugin:*",
"build:plugin:exporter-curl": "cd plugins/exporter-curl && vite build --emptyOutDir",
"build:plugin:importer-insomnia": "cd plugins/importer-insomnia && vite build --emptyOutDir", "build:plugin:importer-insomnia": "cd plugins/importer-insomnia && vite build --emptyOutDir",
"build:plugin:importer-postman": "cd plugins/importer-postman && vite build --emptyOutDir", "build:plugin:importer-postman": "cd plugins/importer-postman && vite build --emptyOutDir",
"build:plugin:importer-yaak": "cd plugins/importer-yaak && vite build --emptyOutDir", "build:plugin:importer-yaak": "cd plugins/importer-yaak && vite build --emptyOutDir",
@@ -43,6 +44,7 @@
"@tanstack/react-query-devtools": "^4.28.0", "@tanstack/react-query-devtools": "^4.28.0",
"@tanstack/react-query-persist-client": "^4.28.0", "@tanstack/react-query-persist-client": "^4.28.0",
"@tauri-apps/api": ">=2.0.0-beta.0", "@tauri-apps/api": ">=2.0.0-beta.0",
"@tauri-apps/plugin-clipboard-manager": "^2.1.0-beta.1",
"@tauri-apps/plugin-dialog": ">=2.0.0-beta.0", "@tauri-apps/plugin-dialog": ">=2.0.0-beta.0",
"@tauri-apps/plugin-fs": ">=2.0.0-beta.0", "@tauri-apps/plugin-fs": ">=2.0.0-beta.0",
"@tauri-apps/plugin-os": ">=2.0.0-beta.0", "@tauri-apps/plugin-os": ">=2.0.0-beta.0",
@@ -79,7 +81,6 @@
"@types/papaparse": "^5.3.7", "@types/papaparse": "^5.3.7",
"@types/parse-color": "^1.0.1", "@types/parse-color": "^1.0.1",
"@types/parse-json": "^4.0.0", "@types/parse-json": "^4.0.0",
"internal-ip": "^8.0.0",
"@types/react": "^18.0.31", "@types/react": "^18.0.31",
"@types/react-dom": "^18.0.11", "@types/react-dom": "^18.0.11",
"@types/uuid": "^9.0.1", "@types/uuid": "^9.0.1",
@@ -94,6 +95,7 @@
"eslint-plugin-react": "^7.32.2", "eslint-plugin-react": "^7.32.2",
"eslint-plugin-react-hooks": "^4.6.0", "eslint-plugin-react-hooks": "^4.6.0",
"husky": "^8.0.3", "husky": "^8.0.3",
"internal-ip": "^8.0.0",
"lint-staged": "^15.0.2", "lint-staged": "^15.0.2",
"npm-run-all": "^4.1.5", "npm-run-all": "^4.1.5",
"postcss": "^8.4.21", "postcss": "^8.4.21",

1562
plugins/exporter-curl/package-lock.json generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,7 @@
{
"name": "exporter-curl",
"version": "0.0.1",
"devDependencies": {
"vitest": "^1.4.0"
}
}

View File

@@ -0,0 +1,76 @@
import { HttpRequest } from '../../../src-web/lib/models';
const NEWLINE = '\\\n ';
export function pluginHookExport(request: Partial<HttpRequest>) {
const xs = ['curl'];
// Add method and URL all on first line
if (request.method) xs.push('-X', request.method);
if (request.url) xs.push(quote(request.url));
xs.push(NEWLINE);
// Add URL params
for (const p of (request.urlParameters ?? []).filter(onlyEnabled)) {
xs.push('--url-query', quote(`${p.name}=${p.value}`));
xs.push(NEWLINE);
}
// Add headers
for (const h of (request.headers ?? []).filter(onlyEnabled)) {
xs.push('--header', quote(`${h.name}: ${h.value}`));
xs.push(NEWLINE);
}
// Add form params
if (Array.isArray(request.body?.form)) {
const flag = request.bodyType === 'multipart/form-data' ? '--form' : '--data';
for (const p of (request.body?.form ?? []).filter(onlyEnabled)) {
if (p.file) {
let v = `${p.name}=@${p.file}`;
v += p.contentType ? `;type=${p.contentType}` : '';
xs.push(flag, v);
} else {
xs.push(flag, quote(`${p.name}=${p.value}`));
}
xs.push(NEWLINE);
}
} else if (typeof request.body?.text === 'string') {
// --data-raw $'...' to do special ANSI C quoting
xs.push('--data-raw', `$${quote(request.body.text)}`);
xs.push(NEWLINE);
}
// Add basic/digest authentication
if (request.authenticationType === 'basic' || request.authenticationType === 'digest') {
if (request.authenticationType === 'digest') xs.push('--digest');
xs.push(
'--user',
quote(`${request.authentication?.username ?? ''}:${request.authentication?.password ?? ''}`),
);
xs.push(NEWLINE);
}
// Add bearer authentication
if (request.authenticationType === 'bearer') {
xs.push('--header', quote(`Authorization: Bearer ${request.authentication?.token ?? ''}`));
xs.push(NEWLINE);
}
// Remove trailing newline
if (xs[xs.length - 1] === NEWLINE) {
xs.splice(xs.length - 1, 1);
}
return xs.join(' ');
}
function quote(arg: string): string {
const escaped = arg.replace(/'/g, "\\'");
return `'${escaped}'`;
}
function onlyEnabled(v: { name?: string; enabled?: boolean }): boolean {
return v.enabled !== false && !!v.name;
}

View File

@@ -0,0 +1,155 @@
import { describe, expect, test } from 'vitest';
import { pluginHookImport } from '../src';
describe('exporter-curl', () => {
test('Exports GET with params', () => {
expect(
pluginHookImport({
url: 'https://yaak.app',
urlParameters: [
{ name: 'a', value: 'aaa' },
{ name: 'b', value: 'bbb', enabled: true },
{ name: 'c', value: 'ccc', enabled: false },
],
}),
).toEqual(
[`curl 'https://yaak.app'`, `--url-query 'a=aaa'`, `--url-query 'b=bbb'`].join(` \\\n `),
);
});
test('Exports POST with url form data', () => {
expect(
pluginHookImport({
url: 'https://yaak.app',
method: 'POST',
bodyType: 'application/x-www-form-urlencoded',
body: {
form: [
{ name: 'a', value: 'aaa' },
{ name: 'b', value: 'bbb', enabled: true },
{ name: 'c', value: 'ccc', enabled: false },
],
},
}),
).toEqual(
[`curl -X POST 'https://yaak.app'`, `--data 'a=aaa'`, `--data 'b=bbb'`].join(` \\\n `),
);
});
test('Exports PUT with multipart form', () => {
expect(
pluginHookImport({
url: 'https://yaak.app',
method: 'PUT',
bodyType: 'multipart/form-data',
body: {
form: [
{ name: 'a', value: 'aaa' },
{ name: 'b', value: 'bbb', enabled: true },
{ name: 'c', value: 'ccc', enabled: false },
{ name: 'f', file: '/foo/bar.png', contentType: 'image/png' },
],
},
}),
).toEqual(
[
`curl -X PUT 'https://yaak.app'`,
`--form 'a=aaa'`,
`--form 'b=bbb'`,
`--form f=@/foo/bar.png;type=image/png`,
].join(` \\\n `),
);
});
test('Exports JSON body', () => {
expect(
pluginHookImport({
url: 'https://yaak.app',
method: 'POST',
bodyType: 'application/json',
body: {
text: `{"foo":"bar's"}`,
},
headers: [{ name: 'Content-Type', value: 'application/json' }],
}),
).toEqual(
[
`curl -X POST 'https://yaak.app'`,
`--header 'Content-Type: application/json'`,
`--data-raw $'{"foo":"bar\\'s"}'`,
].join(` \\\n `),
);
});
test('Exports headers', () => {
expect(
pluginHookImport({
headers: [
{ name: 'a', value: 'aaa' },
{ name: 'b', value: 'bbb', enabled: true },
{ name: 'c', value: 'ccc', enabled: false },
],
}),
).toEqual([`curl`, `--header 'a: aaa'`, `--header 'b: bbb'`].join(` \\\n `));
});
test('Basic auth', () => {
expect(
pluginHookImport({
url: 'https://yaak.app',
authenticationType: 'basic',
authentication: {
username: 'user',
password: 'pass',
},
}),
).toEqual([`curl 'https://yaak.app'`, `--user 'user:pass'`].join(` \\\n `));
});
test('Broken basic auth', () => {
expect(
pluginHookImport({
url: 'https://yaak.app',
authenticationType: 'basic',
authentication: {},
}),
).toEqual([`curl 'https://yaak.app'`, `--user ':'`].join(` \\\n `));
});
test('Digest auth', () => {
expect(
pluginHookImport({
url: 'https://yaak.app',
authenticationType: 'digest',
authentication: {
username: 'user',
password: 'pass',
},
}),
).toEqual([`curl 'https://yaak.app'`, `--digest --user 'user:pass'`].join(` \\\n `));
});
test('Bearer auth', () => {
expect(
pluginHookImport({
url: 'https://yaak.app',
authenticationType: 'bearer',
authentication: {
token: 'tok',
},
}),
).toEqual([`curl 'https://yaak.app'`, `--header 'Authorization: Bearer tok'`].join(` \\\n `));
});
test('Broken bearer auth', () => {
expect(
pluginHookImport({
url: 'https://yaak.app',
authenticationType: 'bearer',
authentication: {
username: 'user',
password: 'pass',
},
}),
).toEqual([`curl 'https://yaak.app'`, `--header 'Authorization: Bearer '`].join(` \\\n `));
});
});

View File

@@ -0,0 +1,13 @@
import { resolve } from 'path';
import { defineConfig } from 'vite';
export default defineConfig({
build: {
lib: {
entry: resolve(__dirname, 'src/index.ts'),
fileName: 'index',
formats: ['es'],
},
outDir: resolve(__dirname, '../../src-tauri/plugins/exporter-curl'),
},
});

File diff suppressed because it is too large Load Diff

View File

@@ -2,11 +2,10 @@
"name": "importer-curl", "name": "importer-curl",
"version": "0.0.1", "version": "0.0.1",
"dependencies": { "dependencies": {
"shell-quote": "^1.8.1", "shell-quote": "^1.8.1"
"url": "^0.11.3"
}, },
"devDependencies": { "devDependencies": {
"@types/shell-quote": "^1.7.5", "@types/shell-quote": "^1.7.5",
"random-seedable": "^1.0.8" "vitest": "^1.4.0"
} }
} }

View File

@@ -43,7 +43,7 @@ type Pair = string | boolean;
type PairsByName = Record<string, Pair[]>; type PairsByName = Record<string, Pair[]>;
export const pluginHookImport = (rawData: string) => { export function pluginHookImport(rawData: string) {
if (!rawData.match(/^\s*curl /)) { if (!rawData.match(/^\s*curl /)) {
return null; return null;
} }
@@ -125,7 +125,7 @@ export const pluginHookImport = (rawData: string) => {
workspaces: [workspace], workspaces: [workspace],
}, },
}; };
}; }
export function importCommand(parseEntries: ParseEntry[], workspaceId: string) { export function importCommand(parseEntries: ParseEntry[], workspaceId: string) {
// ~~~~~~~~~~~~~~~~~~~~~ // // ~~~~~~~~~~~~~~~~~~~~~ //

View File

@@ -1,22 +1,8 @@
import { afterEach, beforeEach, describe, expect, test, vi } from 'vitest'; import { describe, expect, test } from 'vitest';
import { HttpRequest, Model, Workspace } from '../../../src-web/lib/models'; import { HttpRequest, Model, Workspace } from '../../../src-web/lib/models';
import { pluginHookImport } from '../src'; import { pluginHookImport } from '../src';
import { XORShift } from 'random-seedable';
let originalRandom = Math.random;
describe('importer-curl', () => { describe('importer-curl', () => {
beforeEach(() => {
const rand = new XORShift(123456789);
Math.random = vi.fn(() => {
return rand.float();
});
});
afterEach(() => {
Math.random = originalRandom;
});
test('Imports basic GET', () => { test('Imports basic GET', () => {
expect(pluginHookImport('curl https://yaak.app')).toEqual({ expect(pluginHookImport('curl https://yaak.app')).toEqual({
resources: { resources: {

338
src-tauri/Cargo.lock generated
View File

@@ -121,6 +121,24 @@ version = "1.0.79"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca" checksum = "080e9890a082662b09c1ad45f567faeeb47f22b5fb23895fbe1e651e718e25ca"
[[package]]
name = "arboard"
version = "3.4.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9fb4009533e8ff8f1450a5bcbc30f4242a1d34442221f72314bea1f5dc9c7f89"
dependencies = [
"clipboard-win",
"core-graphics",
"image 0.25.1",
"log",
"objc2",
"objc2-app-kit",
"objc2-foundation",
"parking_lot",
"windows-sys 0.48.0",
"x11rb",
]
[[package]] [[package]]
name = "arrayvec" name = "arrayvec"
version = "0.7.4" version = "0.7.4"
@@ -423,6 +441,12 @@ version = "1.6.0"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b"
[[package]]
name = "bit_field"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "dc827186963e592360843fb5ba4b973e145841266c1357f7180c43526f2e5b61"
[[package]] [[package]]
name = "bitflags" name = "bitflags"
version = "1.3.2" version = "1.3.2"
@@ -465,6 +489,15 @@ dependencies = [
"generic-array", "generic-array",
] ]
[[package]]
name = "block2"
version = "0.5.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "43ff7d91d3c1d568065b06c899777d1e48dcf76103a672a0adbc238a7f247f1e"
dependencies = [
"objc2",
]
[[package]] [[package]]
name = "blocking" name = "blocking"
version = "1.5.1" version = "1.5.1"
@@ -903,6 +936,15 @@ dependencies = [
"inout", "inout",
] ]
[[package]]
name = "clipboard-win"
version = "5.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "79f4473f5144e20d9aceaf2972478f06ddf687831eafeeb434fbaf0acc4144ad"
dependencies = [
"error-code",
]
[[package]] [[package]]
name = "cocoa" name = "cocoa"
version = "0.25.0" version = "0.25.0"
@@ -933,6 +975,12 @@ dependencies = [
"objc", "objc",
] ]
[[package]]
name = "color_quant"
version = "1.1.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
[[package]] [[package]]
name = "colored" name = "colored"
version = "1.9.4" version = "1.9.4"
@@ -1130,6 +1178,30 @@ dependencies = [
"crossbeam-utils", "crossbeam-utils",
] ]
[[package]]
name = "crossbeam-deque"
version = "0.8.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef"
dependencies = [
"cfg-if",
"crossbeam-epoch",
"crossbeam-utils",
]
[[package]]
name = "crossbeam-epoch"
version = "0.9.15"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ae211234986c545741a7dc064309f67ee1e5ad243d0e48335adc0484d960bcc7"
dependencies = [
"autocfg",
"cfg-if",
"crossbeam-utils",
"memoffset",
"scopeguard",
]
[[package]] [[package]]
name = "crossbeam-queue" name = "crossbeam-queue"
version = "0.3.8" version = "0.3.8"
@@ -1149,6 +1221,12 @@ dependencies = [
"cfg-if", "cfg-if",
] ]
[[package]]
name = "crunchy"
version = "0.2.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7"
[[package]] [[package]]
name = "crypto-common" name = "crypto-common"
version = "0.1.6" version = "0.1.6"
@@ -1518,6 +1596,12 @@ dependencies = [
"windows-sys 0.52.0", "windows-sys 0.52.0",
] ]
[[package]]
name = "error-code"
version = "3.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "a0474425d51df81997e2f90a21591180b38eccf27292d755f3e30750225c175b"
[[package]] [[package]]
name = "etcetera" name = "etcetera"
version = "0.8.0" version = "0.8.0"
@@ -1577,6 +1661,22 @@ dependencies = [
"pin-project-lite", "pin-project-lite",
] ]
[[package]]
name = "exr"
version = "1.72.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "887d93f60543e9a9362ef8a21beedd0a833c5d9610e18c67abe15a5963dcb1a4"
dependencies = [
"bit_field",
"flume",
"half",
"lebe",
"miniz_oxide",
"rayon-core",
"smallvec",
"zune-inflate",
]
[[package]] [[package]]
name = "fast-float" name = "fast-float"
version = "0.2.0" version = "0.2.0"
@@ -2006,6 +2106,16 @@ dependencies = [
"wasi 0.11.0+wasi-snapshot-preview1", "wasi 0.11.0+wasi-snapshot-preview1",
] ]
[[package]]
name = "gif"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3fb2d69b19215e18bb912fa30f7ce15846e301408695e44e0ef719f1da9e19f2"
dependencies = [
"color_quant",
"weezl",
]
[[package]] [[package]]
name = "gimli" name = "gimli"
version = "0.28.0" version = "0.28.0"
@@ -2203,6 +2313,16 @@ dependencies = [
"tracing", "tracing",
] ]
[[package]]
name = "half"
version = "2.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6dd08c532ae367adf81c312a4580bc67f1d0fe8bc9c460520283f4c0ff277888"
dependencies = [
"cfg-if",
"crunchy",
]
[[package]] [[package]]
name = "hashbrown" name = "hashbrown"
version = "0.12.3" version = "0.12.3"
@@ -2676,6 +2796,37 @@ dependencies = [
"unicode-normalization", "unicode-normalization",
] ]
[[package]]
name = "image"
version = "0.24.9"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5690139d2f55868e080017335e4b94cb7414274c74f1669c84fb5feba2c9f69d"
dependencies = [
"bytemuck",
"byteorder",
"color_quant",
"exr",
"gif",
"jpeg-decoder",
"num-traits",
"png",
"qoi",
"tiff",
]
[[package]]
name = "image"
version = "0.25.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fd54d660e773627692c524beaad361aca785a4f9f5730ce91f42aabe5bce3d11"
dependencies = [
"bytemuck",
"byteorder",
"num-traits",
"png",
"tiff",
]
[[package]] [[package]]
name = "indexmap" name = "indexmap"
version = "1.9.3" version = "1.9.3"
@@ -2863,6 +3014,15 @@ dependencies = [
"libc", "libc",
] ]
[[package]]
name = "jpeg-decoder"
version = "0.3.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f5d4a7da358eff58addd2877a45865158f0d78c911d43a5784ceb7bbf52833b0"
dependencies = [
"rayon",
]
[[package]] [[package]]
name = "js-sys" name = "js-sys"
version = "0.3.65" version = "0.3.65"
@@ -2917,6 +3077,12 @@ dependencies = [
"spin 0.5.2", "spin 0.5.2",
] ]
[[package]]
name = "lebe"
version = "0.5.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "03087c2bad5e1034e8cace5926dec053fb3790248370865f5117a7d0213354c8"
[[package]] [[package]]
name = "libappindicator" name = "libappindicator"
version = "0.9.0" version = "0.9.0"
@@ -3450,6 +3616,61 @@ dependencies = [
"objc_id", "objc_id",
] ]
[[package]]
name = "objc-sys"
version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "da284c198fb9b7b0603f8635185e85fbd5b64ee154b1ed406d489077de2d6d60"
[[package]]
name = "objc2"
version = "0.5.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b4b25e1034d0e636cd84707ccdaa9f81243d399196b8a773946dcffec0401659"
dependencies = [
"objc-sys",
"objc2-encode",
]
[[package]]
name = "objc2-app-kit"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fb79768a710a9a1798848179edb186d1af7e8a8679f369e4b8d201dd2a034047"
dependencies = [
"block2",
"objc2",
"objc2-core-data",
"objc2-foundation",
]
[[package]]
name = "objc2-core-data"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6e092bc42eaf30a08844e6a076938c60751225ec81431ab89f5d1ccd9f958d6c"
dependencies = [
"block2",
"objc2",
"objc2-foundation",
]
[[package]]
name = "objc2-encode"
version = "4.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "88658da63e4cc2c8adb1262902cd6af51094df0488b760d6fd27194269c0950a"
[[package]]
name = "objc2-foundation"
version = "0.2.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "cfaefe14254871ea16c7d88968c0ff14ba554712a20d76421eec52f0a7fb8904"
dependencies = [
"block2",
"objc2",
]
[[package]] [[package]]
name = "objc_exception" name = "objc_exception"
version = "0.1.2" version = "0.1.2"
@@ -4186,6 +4407,15 @@ dependencies = [
"psl-types", "psl-types",
] ]
[[package]]
name = "qoi"
version = "0.4.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "7f6d64c71eb498fe9eae14ce4ec935c555749aef511cca85b5568910d6e48001"
dependencies = [
"bytemuck",
]
[[package]] [[package]]
name = "quick-xml" name = "quick-xml"
version = "0.31.0" version = "0.31.0"
@@ -4303,6 +4533,26 @@ version = "0.6.1"
source = "registry+https://github.com/rust-lang/crates.io-index" source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "8cc3bcbdb1ddfc11e700e62968e6b4cc9c75bb466464ad28fb61c5b2c964418b" checksum = "8cc3bcbdb1ddfc11e700e62968e6b4cc9c75bb466464ad28fb61c5b2c964418b"
[[package]]
name = "rayon"
version = "1.10.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b418a60154510ca1a002a752ca9714984e21e4241e804d32555251faf8b78ffa"
dependencies = [
"either",
"rayon-core",
]
[[package]]
name = "rayon-core"
version = "1.12.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1465873a3dfdaa8ae7cb14b4383657caab0b3e8a0aa9ae8e04b044854c8dfce2"
dependencies = [
"crossbeam-deque",
"crossbeam-utils",
]
[[package]] [[package]]
name = "redox_syscall" name = "redox_syscall"
version = "0.1.57" version = "0.1.57"
@@ -5799,10 +6049,25 @@ dependencies = [
"walkdir", "walkdir",
] ]
[[package]]
name = "tauri-plugin-clipboard-manager"
version = "2.1.0-beta.2"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#56dde7688938225f91b3d35fe13432bf4ef00577"
dependencies = [
"arboard",
"image 0.24.9",
"log",
"serde",
"serde_json",
"tauri",
"tauri-plugin",
"thiserror",
]
[[package]] [[package]]
name = "tauri-plugin-dialog" name = "tauri-plugin-dialog"
version = "2.0.0-beta.6" version = "2.0.0-beta.7"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#21387ac1997cf8b8b10c90a57b2109bb32e72cea" source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#56dde7688938225f91b3d35fe13432bf4ef00577"
dependencies = [ dependencies = [
"dunce", "dunce",
"log", "log",
@@ -5818,8 +6083,8 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-fs" name = "tauri-plugin-fs"
version = "2.0.0-beta.6" version = "2.0.0-beta.7"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#21387ac1997cf8b8b10c90a57b2109bb32e72cea" source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#56dde7688938225f91b3d35fe13432bf4ef00577"
dependencies = [ dependencies = [
"anyhow", "anyhow",
"glob", "glob",
@@ -5836,8 +6101,8 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-log" name = "tauri-plugin-log"
version = "2.0.0-beta.3" version = "2.0.0-beta.4"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#21387ac1997cf8b8b10c90a57b2109bb32e72cea" source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#56dde7688938225f91b3d35fe13432bf4ef00577"
dependencies = [ dependencies = [
"android_logger", "android_logger",
"byte-unit", "byte-unit",
@@ -5856,8 +6121,8 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-os" name = "tauri-plugin-os"
version = "2.0.0-beta.3" version = "2.0.0-beta.4"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#21387ac1997cf8b8b10c90a57b2109bb32e72cea" source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#56dde7688938225f91b3d35fe13432bf4ef00577"
dependencies = [ dependencies = [
"gethostname", "gethostname",
"log", "log",
@@ -5873,8 +6138,8 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-shell" name = "tauri-plugin-shell"
version = "2.0.0-beta.3" version = "2.0.0-beta.4"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#21387ac1997cf8b8b10c90a57b2109bb32e72cea" source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#56dde7688938225f91b3d35fe13432bf4ef00577"
dependencies = [ dependencies = [
"encoding_rs", "encoding_rs",
"log", "log",
@@ -5892,14 +6157,15 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-updater" name = "tauri-plugin-updater"
version = "2.0.0-beta.4" version = "2.0.0-beta.5"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#21387ac1997cf8b8b10c90a57b2109bb32e72cea" source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#56dde7688938225f91b3d35fe13432bf4ef00577"
dependencies = [ dependencies = [
"base64 0.22.0", "base64 0.22.0",
"dirs-next", "dirs-next",
"flate2", "flate2",
"futures-util", "futures-util",
"http 1.1.0", "http 1.1.0",
"infer",
"minisign-verify", "minisign-verify",
"reqwest 0.12.4", "reqwest 0.12.4",
"semver", "semver",
@@ -5919,8 +6185,8 @@ dependencies = [
[[package]] [[package]]
name = "tauri-plugin-window-state" name = "tauri-plugin-window-state"
version = "2.0.0-beta.5" version = "2.0.0-beta.6"
source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#21387ac1997cf8b8b10c90a57b2109bb32e72cea" source = "git+https://github.com/tauri-apps/plugins-workspace?branch=v2#56dde7688938225f91b3d35fe13432bf4ef00577"
dependencies = [ dependencies = [
"bitflags 2.5.0", "bitflags 2.5.0",
"log", "log",
@@ -6084,6 +6350,17 @@ dependencies = [
"once_cell", "once_cell",
] ]
[[package]]
name = "tiff"
version = "0.9.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ba1310fcea54c6a9a4fd1aad794ecc02c31682f6bfbecdf460bf19533eed1e3e"
dependencies = [
"flate2",
"jpeg-decoder",
"weezl",
]
[[package]] [[package]]
name = "time" name = "time"
version = "0.3.36" version = "0.3.36"
@@ -6931,6 +7208,12 @@ dependencies = [
"windows-core 0.56.0", "windows-core 0.56.0",
] ]
[[package]]
name = "weezl"
version = "0.1.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "53a85b86a771b1c87058196170769dd264f66c0782acf1ae6cc51bfd64b39082"
[[package]] [[package]]
name = "whoami" name = "whoami"
version = "1.4.1" version = "1.4.1"
@@ -7401,6 +7684,23 @@ dependencies = [
"pkg-config", "pkg-config",
] ]
[[package]]
name = "x11rb"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "5d91ffca73ee7f68ce055750bf9f6eca0780b8c85eff9bc046a3b0da41755e12"
dependencies = [
"gethostname",
"rustix",
"x11rb-protocol",
]
[[package]]
name = "x11rb-protocol"
version = "0.13.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ec107c4503ea0b4a98ef47356329af139c0a4f7750e621cf2973cd3385ebcb3d"
[[package]] [[package]]
name = "xattr" name = "xattr"
version = "1.3.1" version = "1.3.1"
@@ -7448,6 +7748,7 @@ dependencies = [
"sqlx", "sqlx",
"tauri", "tauri",
"tauri-build", "tauri-build",
"tauri-plugin-clipboard-manager",
"tauri-plugin-dialog", "tauri-plugin-dialog",
"tauri-plugin-fs", "tauri-plugin-fs",
"tauri-plugin-log", "tauri-plugin-log",
@@ -7662,6 +7963,15 @@ dependencies = [
"pkg-config", "pkg-config",
] ]
[[package]]
name = "zune-inflate"
version = "0.2.54"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "73ab332fe2f6680068f3582b16a24f90ad7096d5d39b974d1c0aff0125116f02"
dependencies = [
"simd-adler32",
]
[[package]] [[package]]
name = "zvariant" name = "zvariant"
version = "4.0.0" version = "4.0.0"

View File

@@ -44,6 +44,7 @@ tauri = { version = "2.0.0-beta.17", features = [
"config-toml", "config-toml",
"devtools", "devtools",
] } ] }
tauri-plugin-clipboard-manager = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" }
tauri-plugin-dialog = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } tauri-plugin-dialog = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" }
tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2", features = ["colored"] } tauri-plugin-log = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2", features = ["colored"] }
tauri-plugin-shell = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" } tauri-plugin-shell = { git = "https://github.com/tauri-apps/plugins-workspace", branch = "v2" }

View File

@@ -9,6 +9,7 @@
"permissions": [ "permissions": [
"os:allow-os-type", "os:allow-os-type",
"menu:allow-create-default", "menu:allow-create-default",
"clipboard-manager:allow-write-text",
"dialog:allow-open", "dialog:allow-open",
"dialog:allow-save", "dialog:allow-save",
"event:allow-listen", "event:allow-listen",
@@ -44,6 +45,7 @@
"window:allow-set-decorations", "window:allow-set-decorations",
"window:allow-set-title", "window:allow-set-title",
"window:allow-start-dragging", "window:allow-start-dragging",
"window:allow-unmaximize" "window:allow-unmaximize",
"clipboard-manager:default"
] ]
} }

File diff suppressed because one or more lines are too long

View File

@@ -1 +1 @@
{"main":{"identifier":"main","description":"Main permissions","local":true,"windows":["*"],"permissions":["os:allow-os-type","menu:allow-create-default","dialog:allow-open","dialog:allow-save","event:allow-listen","event:allow-unlisten","fs:allow-read-file","fs:allow-read-text-file",{"identifier":"fs:scope","allow":[{"path":"$APPDATA"},{"path":"$APPDATA/**"}]},"shell:allow-open",{"identifier":"shell:allow-execute","allow":[{"args":true,"name":"protoc","sidecar":true}]},"window:allow-close","window:allow-is-fullscreen","window:allow-maximize","window:allow-minimize","window:allow-set-decorations","window:allow-set-title","window:allow-start-dragging","window:allow-unmaximize"]}} {"main":{"identifier":"main","description":"Main permissions","local":true,"windows":["*"],"permissions":["os:allow-os-type","menu:allow-create-default","clipboard-manager:allow-write-text","dialog:allow-open","dialog:allow-save","event:allow-listen","event:allow-unlisten","fs:allow-read-file","fs:allow-read-text-file",{"identifier":"fs:scope","allow":[{"path":"$APPDATA"},{"path":"$APPDATA/**"}]},"shell:allow-open",{"identifier":"shell:allow-execute","allow":[{"args":true,"name":"protoc","sidecar":true}]},"window:allow-close","window:allow-is-fullscreen","window:allow-maximize","window:allow-minimize","window:allow-set-decorations","window:allow-set-title","window:allow-start-dragging","window:allow-unmaximize","clipboard-manager:default"]}}

View File

@@ -149,14 +149,14 @@
] ]
}, },
{ {
"description": "fs:allow-app-meta -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.", "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-app-meta" "fs:allow-app-meta"
] ]
}, },
{ {
"description": "fs:allow-app-meta-recursive -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.", "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-app-meta-recursive" "fs:allow-app-meta-recursive"
@@ -191,14 +191,14 @@
] ]
}, },
{ {
"description": "fs:allow-appcache-meta -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "description": "fs:allow-appcache-meta -> This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appcache-meta" "fs:allow-appcache-meta"
] ]
}, },
{ {
"description": "fs:allow-appcache-meta-recursive -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "description": "fs:allow-appcache-meta-recursive -> This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appcache-meta-recursive" "fs:allow-appcache-meta-recursive"
@@ -233,14 +233,14 @@
] ]
}, },
{ {
"description": "fs:allow-appconfig-meta -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "description": "fs:allow-appconfig-meta -> This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appconfig-meta" "fs:allow-appconfig-meta"
] ]
}, },
{ {
"description": "fs:allow-appconfig-meta-recursive -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "description": "fs:allow-appconfig-meta-recursive -> This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appconfig-meta-recursive" "fs:allow-appconfig-meta-recursive"
@@ -275,14 +275,14 @@
] ]
}, },
{ {
"description": "fs:allow-appdata-meta -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "description": "fs:allow-appdata-meta -> This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appdata-meta" "fs:allow-appdata-meta"
] ]
}, },
{ {
"description": "fs:allow-appdata-meta-recursive -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "description": "fs:allow-appdata-meta-recursive -> This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appdata-meta-recursive" "fs:allow-appdata-meta-recursive"
@@ -317,14 +317,14 @@
] ]
}, },
{ {
"description": "fs:allow-applocaldata-meta -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-applocaldata-meta -> This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applocaldata-meta" "fs:allow-applocaldata-meta"
] ]
}, },
{ {
"description": "fs:allow-applocaldata-meta-recursive -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-applocaldata-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applocaldata-meta-recursive" "fs:allow-applocaldata-meta-recursive"
@@ -359,14 +359,14 @@
] ]
}, },
{ {
"description": "fs:allow-applog-meta -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "description": "fs:allow-applog-meta -> This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applog-meta" "fs:allow-applog-meta"
] ]
}, },
{ {
"description": "fs:allow-applog-meta-recursive -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "description": "fs:allow-applog-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applog-meta-recursive" "fs:allow-applog-meta-recursive"
@@ -401,14 +401,14 @@
] ]
}, },
{ {
"description": "fs:allow-audio-meta -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "description": "fs:allow-audio-meta -> This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-audio-meta" "fs:allow-audio-meta"
] ]
}, },
{ {
"description": "fs:allow-audio-meta-recursive -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "description": "fs:allow-audio-meta-recursive -> This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-audio-meta-recursive" "fs:allow-audio-meta-recursive"
@@ -443,14 +443,14 @@
] ]
}, },
{ {
"description": "fs:allow-cache-meta -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.", "description": "fs:allow-cache-meta -> This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-cache-meta" "fs:allow-cache-meta"
] ]
}, },
{ {
"description": "fs:allow-cache-meta-recursive -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.", "description": "fs:allow-cache-meta-recursive -> This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-cache-meta-recursive" "fs:allow-cache-meta-recursive"
@@ -485,14 +485,14 @@
] ]
}, },
{ {
"description": "fs:allow-config-meta -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "description": "fs:allow-config-meta -> This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-config-meta" "fs:allow-config-meta"
] ]
}, },
{ {
"description": "fs:allow-config-meta-recursive -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "description": "fs:allow-config-meta-recursive -> This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-config-meta-recursive" "fs:allow-config-meta-recursive"
@@ -527,14 +527,14 @@
] ]
}, },
{ {
"description": "fs:allow-data-meta -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.", "description": "fs:allow-data-meta -> This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-data-meta" "fs:allow-data-meta"
] ]
}, },
{ {
"description": "fs:allow-data-meta-recursive -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.", "description": "fs:allow-data-meta-recursive -> This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-data-meta-recursive" "fs:allow-data-meta-recursive"
@@ -569,14 +569,14 @@
] ]
}, },
{ {
"description": "fs:allow-desktop-meta -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "description": "fs:allow-desktop-meta -> This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-desktop-meta" "fs:allow-desktop-meta"
] ]
}, },
{ {
"description": "fs:allow-desktop-meta-recursive -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "description": "fs:allow-desktop-meta-recursive -> This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-desktop-meta-recursive" "fs:allow-desktop-meta-recursive"
@@ -611,14 +611,14 @@
] ]
}, },
{ {
"description": "fs:allow-document-meta -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "description": "fs:allow-document-meta -> This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-document-meta" "fs:allow-document-meta"
] ]
}, },
{ {
"description": "fs:allow-document-meta-recursive -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "description": "fs:allow-document-meta-recursive -> This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-document-meta-recursive" "fs:allow-document-meta-recursive"
@@ -653,14 +653,14 @@
] ]
}, },
{ {
"description": "fs:allow-download-meta -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "description": "fs:allow-download-meta -> This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-download-meta" "fs:allow-download-meta"
] ]
}, },
{ {
"description": "fs:allow-download-meta-recursive -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "description": "fs:allow-download-meta-recursive -> This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-download-meta-recursive" "fs:allow-download-meta-recursive"
@@ -695,14 +695,14 @@
] ]
}, },
{ {
"description": "fs:allow-exe-meta -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.", "description": "fs:allow-exe-meta -> This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-exe-meta" "fs:allow-exe-meta"
] ]
}, },
{ {
"description": "fs:allow-exe-meta-recursive -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.", "description": "fs:allow-exe-meta-recursive -> This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-exe-meta-recursive" "fs:allow-exe-meta-recursive"
@@ -737,14 +737,14 @@
] ]
}, },
{ {
"description": "fs:allow-font-meta -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.", "description": "fs:allow-font-meta -> This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-font-meta" "fs:allow-font-meta"
] ]
}, },
{ {
"description": "fs:allow-font-meta-recursive -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.", "description": "fs:allow-font-meta-recursive -> This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-font-meta-recursive" "fs:allow-font-meta-recursive"
@@ -779,14 +779,14 @@
] ]
}, },
{ {
"description": "fs:allow-home-meta -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.", "description": "fs:allow-home-meta -> This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-home-meta" "fs:allow-home-meta"
] ]
}, },
{ {
"description": "fs:allow-home-meta-recursive -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.", "description": "fs:allow-home-meta-recursive -> This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-home-meta-recursive" "fs:allow-home-meta-recursive"
@@ -821,14 +821,14 @@
] ]
}, },
{ {
"description": "fs:allow-localdata-meta -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-localdata-meta -> This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-localdata-meta" "fs:allow-localdata-meta"
] ]
}, },
{ {
"description": "fs:allow-localdata-meta-recursive -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-localdata-meta-recursive -> This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-localdata-meta-recursive" "fs:allow-localdata-meta-recursive"
@@ -863,14 +863,14 @@
] ]
}, },
{ {
"description": "fs:allow-log-meta -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.", "description": "fs:allow-log-meta -> This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-log-meta" "fs:allow-log-meta"
] ]
}, },
{ {
"description": "fs:allow-log-meta-recursive -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.", "description": "fs:allow-log-meta-recursive -> This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-log-meta-recursive" "fs:allow-log-meta-recursive"
@@ -905,14 +905,14 @@
] ]
}, },
{ {
"description": "fs:allow-picture-meta -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "description": "fs:allow-picture-meta -> This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-picture-meta" "fs:allow-picture-meta"
] ]
}, },
{ {
"description": "fs:allow-picture-meta-recursive -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "description": "fs:allow-picture-meta-recursive -> This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-picture-meta-recursive" "fs:allow-picture-meta-recursive"
@@ -947,14 +947,14 @@
] ]
}, },
{ {
"description": "fs:allow-public-meta -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "description": "fs:allow-public-meta -> This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-public-meta" "fs:allow-public-meta"
] ]
}, },
{ {
"description": "fs:allow-public-meta-recursive -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "description": "fs:allow-public-meta-recursive -> This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-public-meta-recursive" "fs:allow-public-meta-recursive"
@@ -989,14 +989,14 @@
] ]
}, },
{ {
"description": "fs:allow-resource-meta -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "description": "fs:allow-resource-meta -> This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-resource-meta" "fs:allow-resource-meta"
] ]
}, },
{ {
"description": "fs:allow-resource-meta-recursive -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "description": "fs:allow-resource-meta-recursive -> This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-resource-meta-recursive" "fs:allow-resource-meta-recursive"
@@ -1031,14 +1031,14 @@
] ]
}, },
{ {
"description": "fs:allow-runtime-meta -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "description": "fs:allow-runtime-meta -> This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-runtime-meta" "fs:allow-runtime-meta"
] ]
}, },
{ {
"description": "fs:allow-runtime-meta-recursive -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "description": "fs:allow-runtime-meta-recursive -> This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-runtime-meta-recursive" "fs:allow-runtime-meta-recursive"
@@ -1073,14 +1073,14 @@
] ]
}, },
{ {
"description": "fs:allow-temp-meta -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.", "description": "fs:allow-temp-meta -> This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-temp-meta" "fs:allow-temp-meta"
] ]
}, },
{ {
"description": "fs:allow-temp-meta-recursive -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.", "description": "fs:allow-temp-meta-recursive -> This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-temp-meta-recursive" "fs:allow-temp-meta-recursive"
@@ -1115,14 +1115,14 @@
] ]
}, },
{ {
"description": "fs:allow-template-meta -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "description": "fs:allow-template-meta -> This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-template-meta" "fs:allow-template-meta"
] ]
}, },
{ {
"description": "fs:allow-template-meta-recursive -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "description": "fs:allow-template-meta-recursive -> This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-template-meta-recursive" "fs:allow-template-meta-recursive"
@@ -1157,14 +1157,14 @@
] ]
}, },
{ {
"description": "fs:allow-video-meta -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "description": "fs:allow-video-meta -> This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-video-meta" "fs:allow-video-meta"
] ]
}, },
{ {
"description": "fs:allow-video-meta-recursive -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "description": "fs:allow-video-meta-recursive -> This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-video-meta-recursive" "fs:allow-video-meta-recursive"
@@ -2408,6 +2408,96 @@
"app:deny-version" "app:deny-version"
] ]
}, },
{
"type": "string",
"enum": [
"clipboard-manager:default"
]
},
{
"description": "clipboard-manager:allow-clear -> Enables the clear command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-clear"
]
},
{
"description": "clipboard-manager:allow-read-image -> Enables the read_image command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-read-image"
]
},
{
"description": "clipboard-manager:allow-read-text -> Enables the read_text command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-read-text"
]
},
{
"description": "clipboard-manager:allow-write-html -> Enables the write_html command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-write-html"
]
},
{
"description": "clipboard-manager:allow-write-image -> Enables the write_image command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-write-image"
]
},
{
"description": "clipboard-manager:allow-write-text -> Enables the write_text command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-write-text"
]
},
{
"description": "clipboard-manager:deny-clear -> Denies the clear command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-clear"
]
},
{
"description": "clipboard-manager:deny-read-image -> Denies the read_image command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-read-image"
]
},
{
"description": "clipboard-manager:deny-read-text -> Denies the read_text command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-read-text"
]
},
{
"description": "clipboard-manager:deny-write-html -> Denies the write_html command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-write-html"
]
},
{
"description": "clipboard-manager:deny-write-image -> Denies the write_image command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-write-image"
]
},
{
"description": "clipboard-manager:deny-write-text -> Denies the write_text command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-write-text"
]
},
{ {
"type": "string", "type": "string",
"enum": [ "enum": [
@@ -2548,14 +2638,14 @@
] ]
}, },
{ {
"description": "fs:allow-app-meta -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.", "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-app-meta" "fs:allow-app-meta"
] ]
}, },
{ {
"description": "fs:allow-app-meta-recursive -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.", "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-app-meta-recursive" "fs:allow-app-meta-recursive"
@@ -2590,14 +2680,14 @@
] ]
}, },
{ {
"description": "fs:allow-appcache-meta -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "description": "fs:allow-appcache-meta -> This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appcache-meta" "fs:allow-appcache-meta"
] ]
}, },
{ {
"description": "fs:allow-appcache-meta-recursive -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "description": "fs:allow-appcache-meta-recursive -> This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appcache-meta-recursive" "fs:allow-appcache-meta-recursive"
@@ -2632,14 +2722,14 @@
] ]
}, },
{ {
"description": "fs:allow-appconfig-meta -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "description": "fs:allow-appconfig-meta -> This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appconfig-meta" "fs:allow-appconfig-meta"
] ]
}, },
{ {
"description": "fs:allow-appconfig-meta-recursive -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "description": "fs:allow-appconfig-meta-recursive -> This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appconfig-meta-recursive" "fs:allow-appconfig-meta-recursive"
@@ -2674,14 +2764,14 @@
] ]
}, },
{ {
"description": "fs:allow-appdata-meta -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "description": "fs:allow-appdata-meta -> This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appdata-meta" "fs:allow-appdata-meta"
] ]
}, },
{ {
"description": "fs:allow-appdata-meta-recursive -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "description": "fs:allow-appdata-meta-recursive -> This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appdata-meta-recursive" "fs:allow-appdata-meta-recursive"
@@ -2716,14 +2806,14 @@
] ]
}, },
{ {
"description": "fs:allow-applocaldata-meta -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-applocaldata-meta -> This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applocaldata-meta" "fs:allow-applocaldata-meta"
] ]
}, },
{ {
"description": "fs:allow-applocaldata-meta-recursive -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-applocaldata-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applocaldata-meta-recursive" "fs:allow-applocaldata-meta-recursive"
@@ -2758,14 +2848,14 @@
] ]
}, },
{ {
"description": "fs:allow-applog-meta -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "description": "fs:allow-applog-meta -> This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applog-meta" "fs:allow-applog-meta"
] ]
}, },
{ {
"description": "fs:allow-applog-meta-recursive -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "description": "fs:allow-applog-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applog-meta-recursive" "fs:allow-applog-meta-recursive"
@@ -2800,14 +2890,14 @@
] ]
}, },
{ {
"description": "fs:allow-audio-meta -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "description": "fs:allow-audio-meta -> This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-audio-meta" "fs:allow-audio-meta"
] ]
}, },
{ {
"description": "fs:allow-audio-meta-recursive -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "description": "fs:allow-audio-meta-recursive -> This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-audio-meta-recursive" "fs:allow-audio-meta-recursive"
@@ -2842,14 +2932,14 @@
] ]
}, },
{ {
"description": "fs:allow-cache-meta -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.", "description": "fs:allow-cache-meta -> This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-cache-meta" "fs:allow-cache-meta"
] ]
}, },
{ {
"description": "fs:allow-cache-meta-recursive -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.", "description": "fs:allow-cache-meta-recursive -> This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-cache-meta-recursive" "fs:allow-cache-meta-recursive"
@@ -2884,14 +2974,14 @@
] ]
}, },
{ {
"description": "fs:allow-config-meta -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "description": "fs:allow-config-meta -> This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-config-meta" "fs:allow-config-meta"
] ]
}, },
{ {
"description": "fs:allow-config-meta-recursive -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "description": "fs:allow-config-meta-recursive -> This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-config-meta-recursive" "fs:allow-config-meta-recursive"
@@ -2926,14 +3016,14 @@
] ]
}, },
{ {
"description": "fs:allow-data-meta -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.", "description": "fs:allow-data-meta -> This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-data-meta" "fs:allow-data-meta"
] ]
}, },
{ {
"description": "fs:allow-data-meta-recursive -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.", "description": "fs:allow-data-meta-recursive -> This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-data-meta-recursive" "fs:allow-data-meta-recursive"
@@ -2968,14 +3058,14 @@
] ]
}, },
{ {
"description": "fs:allow-desktop-meta -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "description": "fs:allow-desktop-meta -> This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-desktop-meta" "fs:allow-desktop-meta"
] ]
}, },
{ {
"description": "fs:allow-desktop-meta-recursive -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "description": "fs:allow-desktop-meta-recursive -> This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-desktop-meta-recursive" "fs:allow-desktop-meta-recursive"
@@ -3010,14 +3100,14 @@
] ]
}, },
{ {
"description": "fs:allow-document-meta -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "description": "fs:allow-document-meta -> This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-document-meta" "fs:allow-document-meta"
] ]
}, },
{ {
"description": "fs:allow-document-meta-recursive -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "description": "fs:allow-document-meta-recursive -> This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-document-meta-recursive" "fs:allow-document-meta-recursive"
@@ -3052,14 +3142,14 @@
] ]
}, },
{ {
"description": "fs:allow-download-meta -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "description": "fs:allow-download-meta -> This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-download-meta" "fs:allow-download-meta"
] ]
}, },
{ {
"description": "fs:allow-download-meta-recursive -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "description": "fs:allow-download-meta-recursive -> This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-download-meta-recursive" "fs:allow-download-meta-recursive"
@@ -3094,14 +3184,14 @@
] ]
}, },
{ {
"description": "fs:allow-exe-meta -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.", "description": "fs:allow-exe-meta -> This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-exe-meta" "fs:allow-exe-meta"
] ]
}, },
{ {
"description": "fs:allow-exe-meta-recursive -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.", "description": "fs:allow-exe-meta-recursive -> This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-exe-meta-recursive" "fs:allow-exe-meta-recursive"
@@ -3136,14 +3226,14 @@
] ]
}, },
{ {
"description": "fs:allow-font-meta -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.", "description": "fs:allow-font-meta -> This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-font-meta" "fs:allow-font-meta"
] ]
}, },
{ {
"description": "fs:allow-font-meta-recursive -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.", "description": "fs:allow-font-meta-recursive -> This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-font-meta-recursive" "fs:allow-font-meta-recursive"
@@ -3178,14 +3268,14 @@
] ]
}, },
{ {
"description": "fs:allow-home-meta -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.", "description": "fs:allow-home-meta -> This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-home-meta" "fs:allow-home-meta"
] ]
}, },
{ {
"description": "fs:allow-home-meta-recursive -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.", "description": "fs:allow-home-meta-recursive -> This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-home-meta-recursive" "fs:allow-home-meta-recursive"
@@ -3220,14 +3310,14 @@
] ]
}, },
{ {
"description": "fs:allow-localdata-meta -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-localdata-meta -> This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-localdata-meta" "fs:allow-localdata-meta"
] ]
}, },
{ {
"description": "fs:allow-localdata-meta-recursive -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-localdata-meta-recursive -> This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-localdata-meta-recursive" "fs:allow-localdata-meta-recursive"
@@ -3262,14 +3352,14 @@
] ]
}, },
{ {
"description": "fs:allow-log-meta -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.", "description": "fs:allow-log-meta -> This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-log-meta" "fs:allow-log-meta"
] ]
}, },
{ {
"description": "fs:allow-log-meta-recursive -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.", "description": "fs:allow-log-meta-recursive -> This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-log-meta-recursive" "fs:allow-log-meta-recursive"
@@ -3304,14 +3394,14 @@
] ]
}, },
{ {
"description": "fs:allow-picture-meta -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "description": "fs:allow-picture-meta -> This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-picture-meta" "fs:allow-picture-meta"
] ]
}, },
{ {
"description": "fs:allow-picture-meta-recursive -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "description": "fs:allow-picture-meta-recursive -> This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-picture-meta-recursive" "fs:allow-picture-meta-recursive"
@@ -3346,14 +3436,14 @@
] ]
}, },
{ {
"description": "fs:allow-public-meta -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "description": "fs:allow-public-meta -> This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-public-meta" "fs:allow-public-meta"
] ]
}, },
{ {
"description": "fs:allow-public-meta-recursive -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "description": "fs:allow-public-meta-recursive -> This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-public-meta-recursive" "fs:allow-public-meta-recursive"
@@ -3388,14 +3478,14 @@
] ]
}, },
{ {
"description": "fs:allow-resource-meta -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "description": "fs:allow-resource-meta -> This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-resource-meta" "fs:allow-resource-meta"
] ]
}, },
{ {
"description": "fs:allow-resource-meta-recursive -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "description": "fs:allow-resource-meta-recursive -> This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-resource-meta-recursive" "fs:allow-resource-meta-recursive"
@@ -3430,14 +3520,14 @@
] ]
}, },
{ {
"description": "fs:allow-runtime-meta -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "description": "fs:allow-runtime-meta -> This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-runtime-meta" "fs:allow-runtime-meta"
] ]
}, },
{ {
"description": "fs:allow-runtime-meta-recursive -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "description": "fs:allow-runtime-meta-recursive -> This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-runtime-meta-recursive" "fs:allow-runtime-meta-recursive"
@@ -3472,14 +3562,14 @@
] ]
}, },
{ {
"description": "fs:allow-temp-meta -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.", "description": "fs:allow-temp-meta -> This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-temp-meta" "fs:allow-temp-meta"
] ]
}, },
{ {
"description": "fs:allow-temp-meta-recursive -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.", "description": "fs:allow-temp-meta-recursive -> This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-temp-meta-recursive" "fs:allow-temp-meta-recursive"
@@ -3514,14 +3604,14 @@
] ]
}, },
{ {
"description": "fs:allow-template-meta -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "description": "fs:allow-template-meta -> This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-template-meta" "fs:allow-template-meta"
] ]
}, },
{ {
"description": "fs:allow-template-meta-recursive -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "description": "fs:allow-template-meta-recursive -> This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-template-meta-recursive" "fs:allow-template-meta-recursive"
@@ -3556,14 +3646,14 @@
] ]
}, },
{ {
"description": "fs:allow-video-meta -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "description": "fs:allow-video-meta -> This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-video-meta" "fs:allow-video-meta"
] ]
}, },
{ {
"description": "fs:allow-video-meta-recursive -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "description": "fs:allow-video-meta-recursive -> This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-video-meta-recursive" "fs:allow-video-meta-recursive"

View File

@@ -149,14 +149,14 @@
] ]
}, },
{ {
"description": "fs:allow-app-meta -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.", "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-app-meta" "fs:allow-app-meta"
] ]
}, },
{ {
"description": "fs:allow-app-meta-recursive -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.", "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-app-meta-recursive" "fs:allow-app-meta-recursive"
@@ -191,14 +191,14 @@
] ]
}, },
{ {
"description": "fs:allow-appcache-meta -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "description": "fs:allow-appcache-meta -> This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appcache-meta" "fs:allow-appcache-meta"
] ]
}, },
{ {
"description": "fs:allow-appcache-meta-recursive -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "description": "fs:allow-appcache-meta-recursive -> This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appcache-meta-recursive" "fs:allow-appcache-meta-recursive"
@@ -233,14 +233,14 @@
] ]
}, },
{ {
"description": "fs:allow-appconfig-meta -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "description": "fs:allow-appconfig-meta -> This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appconfig-meta" "fs:allow-appconfig-meta"
] ]
}, },
{ {
"description": "fs:allow-appconfig-meta-recursive -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "description": "fs:allow-appconfig-meta-recursive -> This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appconfig-meta-recursive" "fs:allow-appconfig-meta-recursive"
@@ -275,14 +275,14 @@
] ]
}, },
{ {
"description": "fs:allow-appdata-meta -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "description": "fs:allow-appdata-meta -> This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appdata-meta" "fs:allow-appdata-meta"
] ]
}, },
{ {
"description": "fs:allow-appdata-meta-recursive -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "description": "fs:allow-appdata-meta-recursive -> This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appdata-meta-recursive" "fs:allow-appdata-meta-recursive"
@@ -317,14 +317,14 @@
] ]
}, },
{ {
"description": "fs:allow-applocaldata-meta -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-applocaldata-meta -> This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applocaldata-meta" "fs:allow-applocaldata-meta"
] ]
}, },
{ {
"description": "fs:allow-applocaldata-meta-recursive -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-applocaldata-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applocaldata-meta-recursive" "fs:allow-applocaldata-meta-recursive"
@@ -359,14 +359,14 @@
] ]
}, },
{ {
"description": "fs:allow-applog-meta -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "description": "fs:allow-applog-meta -> This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applog-meta" "fs:allow-applog-meta"
] ]
}, },
{ {
"description": "fs:allow-applog-meta-recursive -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "description": "fs:allow-applog-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applog-meta-recursive" "fs:allow-applog-meta-recursive"
@@ -401,14 +401,14 @@
] ]
}, },
{ {
"description": "fs:allow-audio-meta -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "description": "fs:allow-audio-meta -> This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-audio-meta" "fs:allow-audio-meta"
] ]
}, },
{ {
"description": "fs:allow-audio-meta-recursive -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "description": "fs:allow-audio-meta-recursive -> This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-audio-meta-recursive" "fs:allow-audio-meta-recursive"
@@ -443,14 +443,14 @@
] ]
}, },
{ {
"description": "fs:allow-cache-meta -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.", "description": "fs:allow-cache-meta -> This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-cache-meta" "fs:allow-cache-meta"
] ]
}, },
{ {
"description": "fs:allow-cache-meta-recursive -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.", "description": "fs:allow-cache-meta-recursive -> This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-cache-meta-recursive" "fs:allow-cache-meta-recursive"
@@ -485,14 +485,14 @@
] ]
}, },
{ {
"description": "fs:allow-config-meta -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "description": "fs:allow-config-meta -> This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-config-meta" "fs:allow-config-meta"
] ]
}, },
{ {
"description": "fs:allow-config-meta-recursive -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "description": "fs:allow-config-meta-recursive -> This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-config-meta-recursive" "fs:allow-config-meta-recursive"
@@ -527,14 +527,14 @@
] ]
}, },
{ {
"description": "fs:allow-data-meta -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.", "description": "fs:allow-data-meta -> This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-data-meta" "fs:allow-data-meta"
] ]
}, },
{ {
"description": "fs:allow-data-meta-recursive -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.", "description": "fs:allow-data-meta-recursive -> This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-data-meta-recursive" "fs:allow-data-meta-recursive"
@@ -569,14 +569,14 @@
] ]
}, },
{ {
"description": "fs:allow-desktop-meta -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "description": "fs:allow-desktop-meta -> This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-desktop-meta" "fs:allow-desktop-meta"
] ]
}, },
{ {
"description": "fs:allow-desktop-meta-recursive -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "description": "fs:allow-desktop-meta-recursive -> This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-desktop-meta-recursive" "fs:allow-desktop-meta-recursive"
@@ -611,14 +611,14 @@
] ]
}, },
{ {
"description": "fs:allow-document-meta -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "description": "fs:allow-document-meta -> This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-document-meta" "fs:allow-document-meta"
] ]
}, },
{ {
"description": "fs:allow-document-meta-recursive -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "description": "fs:allow-document-meta-recursive -> This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-document-meta-recursive" "fs:allow-document-meta-recursive"
@@ -653,14 +653,14 @@
] ]
}, },
{ {
"description": "fs:allow-download-meta -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "description": "fs:allow-download-meta -> This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-download-meta" "fs:allow-download-meta"
] ]
}, },
{ {
"description": "fs:allow-download-meta-recursive -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "description": "fs:allow-download-meta-recursive -> This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-download-meta-recursive" "fs:allow-download-meta-recursive"
@@ -695,14 +695,14 @@
] ]
}, },
{ {
"description": "fs:allow-exe-meta -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.", "description": "fs:allow-exe-meta -> This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-exe-meta" "fs:allow-exe-meta"
] ]
}, },
{ {
"description": "fs:allow-exe-meta-recursive -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.", "description": "fs:allow-exe-meta-recursive -> This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-exe-meta-recursive" "fs:allow-exe-meta-recursive"
@@ -737,14 +737,14 @@
] ]
}, },
{ {
"description": "fs:allow-font-meta -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.", "description": "fs:allow-font-meta -> This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-font-meta" "fs:allow-font-meta"
] ]
}, },
{ {
"description": "fs:allow-font-meta-recursive -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.", "description": "fs:allow-font-meta-recursive -> This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-font-meta-recursive" "fs:allow-font-meta-recursive"
@@ -779,14 +779,14 @@
] ]
}, },
{ {
"description": "fs:allow-home-meta -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.", "description": "fs:allow-home-meta -> This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-home-meta" "fs:allow-home-meta"
] ]
}, },
{ {
"description": "fs:allow-home-meta-recursive -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.", "description": "fs:allow-home-meta-recursive -> This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-home-meta-recursive" "fs:allow-home-meta-recursive"
@@ -821,14 +821,14 @@
] ]
}, },
{ {
"description": "fs:allow-localdata-meta -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-localdata-meta -> This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-localdata-meta" "fs:allow-localdata-meta"
] ]
}, },
{ {
"description": "fs:allow-localdata-meta-recursive -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-localdata-meta-recursive -> This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-localdata-meta-recursive" "fs:allow-localdata-meta-recursive"
@@ -863,14 +863,14 @@
] ]
}, },
{ {
"description": "fs:allow-log-meta -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.", "description": "fs:allow-log-meta -> This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-log-meta" "fs:allow-log-meta"
] ]
}, },
{ {
"description": "fs:allow-log-meta-recursive -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.", "description": "fs:allow-log-meta-recursive -> This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-log-meta-recursive" "fs:allow-log-meta-recursive"
@@ -905,14 +905,14 @@
] ]
}, },
{ {
"description": "fs:allow-picture-meta -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "description": "fs:allow-picture-meta -> This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-picture-meta" "fs:allow-picture-meta"
] ]
}, },
{ {
"description": "fs:allow-picture-meta-recursive -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "description": "fs:allow-picture-meta-recursive -> This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-picture-meta-recursive" "fs:allow-picture-meta-recursive"
@@ -947,14 +947,14 @@
] ]
}, },
{ {
"description": "fs:allow-public-meta -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "description": "fs:allow-public-meta -> This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-public-meta" "fs:allow-public-meta"
] ]
}, },
{ {
"description": "fs:allow-public-meta-recursive -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "description": "fs:allow-public-meta-recursive -> This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-public-meta-recursive" "fs:allow-public-meta-recursive"
@@ -989,14 +989,14 @@
] ]
}, },
{ {
"description": "fs:allow-resource-meta -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "description": "fs:allow-resource-meta -> This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-resource-meta" "fs:allow-resource-meta"
] ]
}, },
{ {
"description": "fs:allow-resource-meta-recursive -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "description": "fs:allow-resource-meta-recursive -> This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-resource-meta-recursive" "fs:allow-resource-meta-recursive"
@@ -1031,14 +1031,14 @@
] ]
}, },
{ {
"description": "fs:allow-runtime-meta -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "description": "fs:allow-runtime-meta -> This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-runtime-meta" "fs:allow-runtime-meta"
] ]
}, },
{ {
"description": "fs:allow-runtime-meta-recursive -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "description": "fs:allow-runtime-meta-recursive -> This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-runtime-meta-recursive" "fs:allow-runtime-meta-recursive"
@@ -1073,14 +1073,14 @@
] ]
}, },
{ {
"description": "fs:allow-temp-meta -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.", "description": "fs:allow-temp-meta -> This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-temp-meta" "fs:allow-temp-meta"
] ]
}, },
{ {
"description": "fs:allow-temp-meta-recursive -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.", "description": "fs:allow-temp-meta-recursive -> This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-temp-meta-recursive" "fs:allow-temp-meta-recursive"
@@ -1115,14 +1115,14 @@
] ]
}, },
{ {
"description": "fs:allow-template-meta -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "description": "fs:allow-template-meta -> This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-template-meta" "fs:allow-template-meta"
] ]
}, },
{ {
"description": "fs:allow-template-meta-recursive -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "description": "fs:allow-template-meta-recursive -> This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-template-meta-recursive" "fs:allow-template-meta-recursive"
@@ -1157,14 +1157,14 @@
] ]
}, },
{ {
"description": "fs:allow-video-meta -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "description": "fs:allow-video-meta -> This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-video-meta" "fs:allow-video-meta"
] ]
}, },
{ {
"description": "fs:allow-video-meta-recursive -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "description": "fs:allow-video-meta-recursive -> This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-video-meta-recursive" "fs:allow-video-meta-recursive"
@@ -2408,6 +2408,96 @@
"app:deny-version" "app:deny-version"
] ]
}, },
{
"type": "string",
"enum": [
"clipboard-manager:default"
]
},
{
"description": "clipboard-manager:allow-clear -> Enables the clear command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-clear"
]
},
{
"description": "clipboard-manager:allow-read-image -> Enables the read_image command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-read-image"
]
},
{
"description": "clipboard-manager:allow-read-text -> Enables the read_text command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-read-text"
]
},
{
"description": "clipboard-manager:allow-write-html -> Enables the write_html command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-write-html"
]
},
{
"description": "clipboard-manager:allow-write-image -> Enables the write_image command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-write-image"
]
},
{
"description": "clipboard-manager:allow-write-text -> Enables the write_text command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:allow-write-text"
]
},
{
"description": "clipboard-manager:deny-clear -> Denies the clear command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-clear"
]
},
{
"description": "clipboard-manager:deny-read-image -> Denies the read_image command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-read-image"
]
},
{
"description": "clipboard-manager:deny-read-text -> Denies the read_text command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-read-text"
]
},
{
"description": "clipboard-manager:deny-write-html -> Denies the write_html command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-write-html"
]
},
{
"description": "clipboard-manager:deny-write-image -> Denies the write_image command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-write-image"
]
},
{
"description": "clipboard-manager:deny-write-text -> Denies the write_text command without any pre-configured scope.",
"type": "string",
"enum": [
"clipboard-manager:deny-write-text"
]
},
{ {
"type": "string", "type": "string",
"enum": [ "enum": [
@@ -2548,14 +2638,14 @@
] ]
}, },
{ {
"description": "fs:allow-app-meta -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.", "description": "fs:allow-app-meta -> This allows non-recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-app-meta" "fs:allow-app-meta"
] ]
}, },
{ {
"description": "fs:allow-app-meta-recursive -> This allows read access to metadata of the `$APP` folder, including file listing and statistics.", "description": "fs:allow-app-meta-recursive -> This allows full recursive read access to metadata of the `$APP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-app-meta-recursive" "fs:allow-app-meta-recursive"
@@ -2590,14 +2680,14 @@
] ]
}, },
{ {
"description": "fs:allow-appcache-meta -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "description": "fs:allow-appcache-meta -> This allows non-recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appcache-meta" "fs:allow-appcache-meta"
] ]
}, },
{ {
"description": "fs:allow-appcache-meta-recursive -> This allows read access to metadata of the `$APPCACHE` folder, including file listing and statistics.", "description": "fs:allow-appcache-meta-recursive -> This allows full recursive read access to metadata of the `$APPCACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appcache-meta-recursive" "fs:allow-appcache-meta-recursive"
@@ -2632,14 +2722,14 @@
] ]
}, },
{ {
"description": "fs:allow-appconfig-meta -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "description": "fs:allow-appconfig-meta -> This allows non-recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appconfig-meta" "fs:allow-appconfig-meta"
] ]
}, },
{ {
"description": "fs:allow-appconfig-meta-recursive -> This allows read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.", "description": "fs:allow-appconfig-meta-recursive -> This allows full recursive read access to metadata of the `$APPCONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appconfig-meta-recursive" "fs:allow-appconfig-meta-recursive"
@@ -2674,14 +2764,14 @@
] ]
}, },
{ {
"description": "fs:allow-appdata-meta -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "description": "fs:allow-appdata-meta -> This allows non-recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appdata-meta" "fs:allow-appdata-meta"
] ]
}, },
{ {
"description": "fs:allow-appdata-meta-recursive -> This allows read access to metadata of the `$APPDATA` folder, including file listing and statistics.", "description": "fs:allow-appdata-meta-recursive -> This allows full recursive read access to metadata of the `$APPDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-appdata-meta-recursive" "fs:allow-appdata-meta-recursive"
@@ -2716,14 +2806,14 @@
] ]
}, },
{ {
"description": "fs:allow-applocaldata-meta -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-applocaldata-meta -> This allows non-recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applocaldata-meta" "fs:allow-applocaldata-meta"
] ]
}, },
{ {
"description": "fs:allow-applocaldata-meta-recursive -> This allows read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-applocaldata-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applocaldata-meta-recursive" "fs:allow-applocaldata-meta-recursive"
@@ -2758,14 +2848,14 @@
] ]
}, },
{ {
"description": "fs:allow-applog-meta -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "description": "fs:allow-applog-meta -> This allows non-recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applog-meta" "fs:allow-applog-meta"
] ]
}, },
{ {
"description": "fs:allow-applog-meta-recursive -> This allows read access to metadata of the `$APPLOG` folder, including file listing and statistics.", "description": "fs:allow-applog-meta-recursive -> This allows full recursive read access to metadata of the `$APPLOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-applog-meta-recursive" "fs:allow-applog-meta-recursive"
@@ -2800,14 +2890,14 @@
] ]
}, },
{ {
"description": "fs:allow-audio-meta -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "description": "fs:allow-audio-meta -> This allows non-recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-audio-meta" "fs:allow-audio-meta"
] ]
}, },
{ {
"description": "fs:allow-audio-meta-recursive -> This allows read access to metadata of the `$AUDIO` folder, including file listing and statistics.", "description": "fs:allow-audio-meta-recursive -> This allows full recursive read access to metadata of the `$AUDIO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-audio-meta-recursive" "fs:allow-audio-meta-recursive"
@@ -2842,14 +2932,14 @@
] ]
}, },
{ {
"description": "fs:allow-cache-meta -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.", "description": "fs:allow-cache-meta -> This allows non-recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-cache-meta" "fs:allow-cache-meta"
] ]
}, },
{ {
"description": "fs:allow-cache-meta-recursive -> This allows read access to metadata of the `$CACHE` folder, including file listing and statistics.", "description": "fs:allow-cache-meta-recursive -> This allows full recursive read access to metadata of the `$CACHE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-cache-meta-recursive" "fs:allow-cache-meta-recursive"
@@ -2884,14 +2974,14 @@
] ]
}, },
{ {
"description": "fs:allow-config-meta -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "description": "fs:allow-config-meta -> This allows non-recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-config-meta" "fs:allow-config-meta"
] ]
}, },
{ {
"description": "fs:allow-config-meta-recursive -> This allows read access to metadata of the `$CONFIG` folder, including file listing and statistics.", "description": "fs:allow-config-meta-recursive -> This allows full recursive read access to metadata of the `$CONFIG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-config-meta-recursive" "fs:allow-config-meta-recursive"
@@ -2926,14 +3016,14 @@
] ]
}, },
{ {
"description": "fs:allow-data-meta -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.", "description": "fs:allow-data-meta -> This allows non-recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-data-meta" "fs:allow-data-meta"
] ]
}, },
{ {
"description": "fs:allow-data-meta-recursive -> This allows read access to metadata of the `$DATA` folder, including file listing and statistics.", "description": "fs:allow-data-meta-recursive -> This allows full recursive read access to metadata of the `$DATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-data-meta-recursive" "fs:allow-data-meta-recursive"
@@ -2968,14 +3058,14 @@
] ]
}, },
{ {
"description": "fs:allow-desktop-meta -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "description": "fs:allow-desktop-meta -> This allows non-recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-desktop-meta" "fs:allow-desktop-meta"
] ]
}, },
{ {
"description": "fs:allow-desktop-meta-recursive -> This allows read access to metadata of the `$DESKTOP` folder, including file listing and statistics.", "description": "fs:allow-desktop-meta-recursive -> This allows full recursive read access to metadata of the `$DESKTOP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-desktop-meta-recursive" "fs:allow-desktop-meta-recursive"
@@ -3010,14 +3100,14 @@
] ]
}, },
{ {
"description": "fs:allow-document-meta -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "description": "fs:allow-document-meta -> This allows non-recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-document-meta" "fs:allow-document-meta"
] ]
}, },
{ {
"description": "fs:allow-document-meta-recursive -> This allows read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.", "description": "fs:allow-document-meta-recursive -> This allows full recursive read access to metadata of the `$DOCUMENT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-document-meta-recursive" "fs:allow-document-meta-recursive"
@@ -3052,14 +3142,14 @@
] ]
}, },
{ {
"description": "fs:allow-download-meta -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "description": "fs:allow-download-meta -> This allows non-recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-download-meta" "fs:allow-download-meta"
] ]
}, },
{ {
"description": "fs:allow-download-meta-recursive -> This allows read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.", "description": "fs:allow-download-meta-recursive -> This allows full recursive read access to metadata of the `$DOWNLOAD` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-download-meta-recursive" "fs:allow-download-meta-recursive"
@@ -3094,14 +3184,14 @@
] ]
}, },
{ {
"description": "fs:allow-exe-meta -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.", "description": "fs:allow-exe-meta -> This allows non-recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-exe-meta" "fs:allow-exe-meta"
] ]
}, },
{ {
"description": "fs:allow-exe-meta-recursive -> This allows read access to metadata of the `$EXE` folder, including file listing and statistics.", "description": "fs:allow-exe-meta-recursive -> This allows full recursive read access to metadata of the `$EXE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-exe-meta-recursive" "fs:allow-exe-meta-recursive"
@@ -3136,14 +3226,14 @@
] ]
}, },
{ {
"description": "fs:allow-font-meta -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.", "description": "fs:allow-font-meta -> This allows non-recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-font-meta" "fs:allow-font-meta"
] ]
}, },
{ {
"description": "fs:allow-font-meta-recursive -> This allows read access to metadata of the `$FONT` folder, including file listing and statistics.", "description": "fs:allow-font-meta-recursive -> This allows full recursive read access to metadata of the `$FONT` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-font-meta-recursive" "fs:allow-font-meta-recursive"
@@ -3178,14 +3268,14 @@
] ]
}, },
{ {
"description": "fs:allow-home-meta -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.", "description": "fs:allow-home-meta -> This allows non-recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-home-meta" "fs:allow-home-meta"
] ]
}, },
{ {
"description": "fs:allow-home-meta-recursive -> This allows read access to metadata of the `$HOME` folder, including file listing and statistics.", "description": "fs:allow-home-meta-recursive -> This allows full recursive read access to metadata of the `$HOME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-home-meta-recursive" "fs:allow-home-meta-recursive"
@@ -3220,14 +3310,14 @@
] ]
}, },
{ {
"description": "fs:allow-localdata-meta -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-localdata-meta -> This allows non-recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-localdata-meta" "fs:allow-localdata-meta"
] ]
}, },
{ {
"description": "fs:allow-localdata-meta-recursive -> This allows read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.", "description": "fs:allow-localdata-meta-recursive -> This allows full recursive read access to metadata of the `$LOCALDATA` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-localdata-meta-recursive" "fs:allow-localdata-meta-recursive"
@@ -3262,14 +3352,14 @@
] ]
}, },
{ {
"description": "fs:allow-log-meta -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.", "description": "fs:allow-log-meta -> This allows non-recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-log-meta" "fs:allow-log-meta"
] ]
}, },
{ {
"description": "fs:allow-log-meta-recursive -> This allows read access to metadata of the `$LOG` folder, including file listing and statistics.", "description": "fs:allow-log-meta-recursive -> This allows full recursive read access to metadata of the `$LOG` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-log-meta-recursive" "fs:allow-log-meta-recursive"
@@ -3304,14 +3394,14 @@
] ]
}, },
{ {
"description": "fs:allow-picture-meta -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "description": "fs:allow-picture-meta -> This allows non-recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-picture-meta" "fs:allow-picture-meta"
] ]
}, },
{ {
"description": "fs:allow-picture-meta-recursive -> This allows read access to metadata of the `$PICTURE` folder, including file listing and statistics.", "description": "fs:allow-picture-meta-recursive -> This allows full recursive read access to metadata of the `$PICTURE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-picture-meta-recursive" "fs:allow-picture-meta-recursive"
@@ -3346,14 +3436,14 @@
] ]
}, },
{ {
"description": "fs:allow-public-meta -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "description": "fs:allow-public-meta -> This allows non-recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-public-meta" "fs:allow-public-meta"
] ]
}, },
{ {
"description": "fs:allow-public-meta-recursive -> This allows read access to metadata of the `$PUBLIC` folder, including file listing and statistics.", "description": "fs:allow-public-meta-recursive -> This allows full recursive read access to metadata of the `$PUBLIC` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-public-meta-recursive" "fs:allow-public-meta-recursive"
@@ -3388,14 +3478,14 @@
] ]
}, },
{ {
"description": "fs:allow-resource-meta -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "description": "fs:allow-resource-meta -> This allows non-recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-resource-meta" "fs:allow-resource-meta"
] ]
}, },
{ {
"description": "fs:allow-resource-meta-recursive -> This allows read access to metadata of the `$RESOURCE` folder, including file listing and statistics.", "description": "fs:allow-resource-meta-recursive -> This allows full recursive read access to metadata of the `$RESOURCE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-resource-meta-recursive" "fs:allow-resource-meta-recursive"
@@ -3430,14 +3520,14 @@
] ]
}, },
{ {
"description": "fs:allow-runtime-meta -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "description": "fs:allow-runtime-meta -> This allows non-recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-runtime-meta" "fs:allow-runtime-meta"
] ]
}, },
{ {
"description": "fs:allow-runtime-meta-recursive -> This allows read access to metadata of the `$RUNTIME` folder, including file listing and statistics.", "description": "fs:allow-runtime-meta-recursive -> This allows full recursive read access to metadata of the `$RUNTIME` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-runtime-meta-recursive" "fs:allow-runtime-meta-recursive"
@@ -3472,14 +3562,14 @@
] ]
}, },
{ {
"description": "fs:allow-temp-meta -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.", "description": "fs:allow-temp-meta -> This allows non-recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-temp-meta" "fs:allow-temp-meta"
] ]
}, },
{ {
"description": "fs:allow-temp-meta-recursive -> This allows read access to metadata of the `$TEMP` folder, including file listing and statistics.", "description": "fs:allow-temp-meta-recursive -> This allows full recursive read access to metadata of the `$TEMP` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-temp-meta-recursive" "fs:allow-temp-meta-recursive"
@@ -3514,14 +3604,14 @@
] ]
}, },
{ {
"description": "fs:allow-template-meta -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "description": "fs:allow-template-meta -> This allows non-recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-template-meta" "fs:allow-template-meta"
] ]
}, },
{ {
"description": "fs:allow-template-meta-recursive -> This allows read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.", "description": "fs:allow-template-meta-recursive -> This allows full recursive read access to metadata of the `$TEMPLATE` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-template-meta-recursive" "fs:allow-template-meta-recursive"
@@ -3556,14 +3646,14 @@
] ]
}, },
{ {
"description": "fs:allow-video-meta -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "description": "fs:allow-video-meta -> This allows non-recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-video-meta" "fs:allow-video-meta"
] ]
}, },
{ {
"description": "fs:allow-video-meta-recursive -> This allows read access to metadata of the `$VIDEO` folder, including file listing and statistics.", "description": "fs:allow-video-meta-recursive -> This allows full recursive read access to metadata of the `$VIDEO` folder, including file listing and statistics.",
"type": "string", "type": "string",
"enum": [ "enum": [
"fs:allow-video-meta-recursive" "fs:allow-video-meta-recursive"

View File

@@ -174,7 +174,10 @@ pub struct GrpcHandle {
impl GrpcHandle { impl GrpcHandle {
pub fn new(app_handle: &AppHandle) -> Self { pub fn new(app_handle: &AppHandle) -> Self {
let pools = HashMap::new(); let pools = HashMap::new();
Self { pools, app_handle: app_handle.clone() } Self {
pools,
app_handle: app_handle.clone(),
}
} }
} }

View File

@@ -0,0 +1,36 @@
const o = `\\
`;
function d(n) {
var h, f, r, u, l, s;
const t = ["curl"];
n.method && t.push("-X", n.method), n.url && t.push(i(n.url)), t.push(o);
for (const a of (n.urlParameters ?? []).filter(p))
t.push("--url-query", i(`${a.name}=${a.value}`)), t.push(o);
for (const a of (n.headers ?? []).filter(p))
t.push("--header", i(`${a.name}: ${a.value}`)), t.push(o);
if (Array.isArray((h = n.body) == null ? void 0 : h.form)) {
const a = n.bodyType === "multipart/form-data" ? "--form" : "--data";
for (const e of (((f = n.body) == null ? void 0 : f.form) ?? []).filter(p)) {
if (e.file) {
let c = `${e.name}=@${e.file}`;
c += e.contentType ? `;type=${e.contentType}` : "", t.push(a, c);
} else
t.push(a, i(`${e.name}=${e.value}`));
t.push(o);
}
} else
typeof ((r = n.body) == null ? void 0 : r.text) == "string" && (t.push("--data-raw", `$${i(n.body.text)}`), t.push(o));
return (n.authenticationType === "basic" || n.authenticationType === "digest") && (n.authenticationType === "digest" && t.push("--digest"), t.push(
"--user",
i(`${((u = n.authentication) == null ? void 0 : u.username) ?? ""}:${((l = n.authentication) == null ? void 0 : l.password) ?? ""}`)
), t.push(o)), n.authenticationType === "bearer" && (t.push("--header", i(`Authorization: Bearer ${((s = n.authentication) == null ? void 0 : s.token) ?? ""}`)), t.push(o)), t[t.length - 1] === o && t.splice(t.length - 1, 1), t.join(" ");
}
function i(n) {
return `'${n.replace(/'/g, "\\'")}'`;
}
function p(n) {
return n.enabled !== !1 && !!n.name;
}
export {
d as pluginHookExport
};

View File

@@ -114,7 +114,8 @@ const ae = "curl", se = "cURL", ie = "cURL command line tool", H = ["d", "data",
["request", "X"], ["request", "X"],
// Request method // Request method
H H
].flatMap((n) => n), oe = (n) => { ].flatMap((n) => n);
function oe(n) {
if (!n.match(/^\s*curl /)) if (!n.match(/^\s*curl /))
return null; return null;
const s = [], e = n.replace(/([^\\])\n/g, "$1; "); const s = [], e = n.replace(/([^\\])\n/g, "$1; ");
@@ -151,7 +152,7 @@ const ae = "curl", se = "cURL", ie = "cURL command line tool", H = ["d", "data",
workspaces: [f] workspaces: [f]
} }
}; };
}; }
function te(n, s) { function te(n, s) {
const e = {}, t = []; const e = {}, t = [];
for (let o = 1; o < n.length; o++) { for (let o = 1; o < n.length; o++) {

View File

@@ -1,13 +1,15 @@
use std::fmt::Display; use std::fmt::Display;
use log::{warn}; use log::warn;
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serde_json::json; use serde_json::json;
use sqlx::types::JsonValue; use sqlx::types::JsonValue;
use tauri::{AppHandle, Manager}; use tauri::{AppHandle, Manager};
use crate::is_dev; use crate::is_dev;
use crate::models::{generate_id, get_key_value_int, get_key_value_string, set_key_value_int, set_key_value_string}; use crate::models::{
generate_id, get_key_value_int, get_key_value_string, set_key_value_int, set_key_value_string,
};
// serializable // serializable
#[derive(Serialize, Deserialize, Debug)] #[derive(Serialize, Deserialize, Debug)]

View File

@@ -7,11 +7,11 @@ use std::sync::Arc;
use std::time::Duration; use std::time::Duration;
use base64::Engine; use base64::Engine;
use http::{HeaderMap, HeaderName, HeaderValue, Method};
use http::header::{ACCEPT, USER_AGENT}; use http::header::{ACCEPT, USER_AGENT};
use http::{HeaderMap, HeaderName, HeaderValue, Method};
use log::{error, info, warn}; use log::{error, info, warn};
use reqwest::{multipart, Url};
use reqwest::redirect::Policy; use reqwest::redirect::Policy;
use reqwest::{multipart, Url};
use sqlx::types::{Json, JsonValue}; use sqlx::types::{Json, JsonValue};
use tauri::{Manager, WebviewWindow}; use tauri::{Manager, WebviewWindow};
use tokio::sync::oneshot; use tokio::sync::oneshot;

View File

@@ -38,8 +38,24 @@ use window_ext::TrafficLightWindowExt;
use crate::analytics::{AnalyticsAction, AnalyticsResource}; use crate::analytics::{AnalyticsAction, AnalyticsResource};
use crate::grpc::metadata_to_map; use crate::grpc::metadata_to_map;
use crate::http::send_http_request; use crate::http::send_http_request;
use crate::models::{cancel_pending_grpc_connections, cancel_pending_responses, create_http_response, delete_all_grpc_connections, delete_all_http_responses, delete_cookie_jar, delete_environment, delete_folder, delete_grpc_connection, delete_grpc_request, delete_http_request, delete_http_response, delete_workspace, duplicate_grpc_request, duplicate_http_request, get_cookie_jar, get_environment, get_folder, get_grpc_connection, get_grpc_request, get_http_request, get_http_response, get_key_value_raw, get_or_create_settings, get_workspace, get_workspace_export_resources, list_cookie_jars, list_environments, list_folders, list_grpc_connections, list_grpc_events, list_grpc_requests, list_http_requests, list_responses, list_workspaces, set_key_value_raw, update_response_if_id, update_settings, upsert_cookie_jar, upsert_environment, upsert_folder, upsert_grpc_connection, upsert_grpc_event, upsert_grpc_request, upsert_http_request, upsert_workspace, CookieJar, Environment, EnvironmentVariable, Folder, GrpcConnection, GrpcEvent, GrpcEventType, GrpcRequest, HttpRequest, HttpRequestHeader, HttpResponse, KeyValue, Settings, Workspace, WorkspaceExportResources, generate_model_id, ModelType}; use crate::models::{
use crate::plugin::ImportResult; cancel_pending_grpc_connections, cancel_pending_responses, create_http_response,
delete_all_grpc_connections, delete_all_http_responses, delete_cookie_jar, delete_environment,
delete_folder, delete_grpc_connection, delete_grpc_request, delete_http_request,
delete_http_response, delete_workspace, duplicate_grpc_request, duplicate_http_request,
generate_model_id, get_cookie_jar, get_environment, get_folder, get_grpc_connection,
get_grpc_request, get_http_request, get_http_response, get_key_value_raw,
get_or_create_settings, get_workspace, get_workspace_export_resources, list_cookie_jars,
list_environments, list_folders, list_grpc_connections, list_grpc_events, list_grpc_requests,
list_http_requests, list_responses, list_workspaces, set_key_value_raw, update_response_if_id,
update_settings, upsert_cookie_jar, upsert_environment, upsert_folder, upsert_grpc_connection,
upsert_grpc_event, upsert_grpc_request, upsert_http_request, upsert_workspace, CookieJar,
Environment, EnvironmentVariable, Folder, GrpcConnection, GrpcEvent, GrpcEventType,
GrpcRequest, HttpRequest, HttpRequestHeader, HttpResponse, KeyValue, ModelType, Settings,
Workspace, WorkspaceExportResources,
};
use crate::plugin::{run_plugin_export_curl, ImportResult};
use crate::render::render_request;
use crate::updates::{update_mode_from_str, UpdateMode, YaakUpdater}; use crate::updates::{update_mode_from_str, UpdateMode, YaakUpdater};
use crate::window_menu::app_menu; use crate::window_menu::app_menu;
@@ -744,57 +760,73 @@ async fn cmd_import_data(
let mut imported_resources = WorkspaceExportResources::default(); let mut imported_resources = WorkspaceExportResources::default();
let mut id_map: HashMap<String, String> = HashMap::new(); let mut id_map: HashMap<String, String> = HashMap::new();
let maybe_gen_id = |id: &str, model: ModelType, ids: &mut HashMap<String, String>| -> String { let maybe_gen_id =
if !id.starts_with("GENERATE_ID::") { |id: &str, model: ModelType, ids: &mut HashMap<String, String>| -> String {
return id.to_string(); if !id.starts_with("GENERATE_ID::") {
} return id.to_string();
}
let unique_key = id.replace("GENERATE_ID", ""); let unique_key = id.replace("GENERATE_ID", "");
if let Some(existing) = ids.get(unique_key.as_str()) { if let Some(existing) = ids.get(unique_key.as_str()) {
existing.to_string() existing.to_string()
} else { } else {
let new_id = generate_model_id(model); let new_id = generate_model_id(model);
ids.insert(unique_key, new_id.clone()); ids.insert(unique_key, new_id.clone());
new_id new_id
} }
}; };
let maybe_gen_id_opt = |id: Option<String>, model: ModelType, ids: &mut HashMap<String, String>| -> Option<String> { let maybe_gen_id_opt = |id: Option<String>,
match id { model: ModelType,
Some(id) => Some(maybe_gen_id(id.as_str(), model, ids)), ids: &mut HashMap<String, String>|
None => None, -> Option<String> {
} match id {
Some(id) => Some(maybe_gen_id(id.as_str(), model, ids)),
None => None,
}
}; };
info!("Importing resources"); info!("Importing resources");
for mut v in r.resources.workspaces { for mut v in r.resources.workspaces {
v.id = maybe_gen_id(v.id.as_str(), ModelType::Workspace, &mut id_map); v.id = maybe_gen_id(v.id.as_str(), ModelType::TypeWorkspace, &mut id_map);
let x = upsert_workspace(&w, v).await.map_err(|e| e.to_string())?; let x = upsert_workspace(&w, v).await.map_err(|e| e.to_string())?;
imported_resources.workspaces.push(x.clone()); imported_resources.workspaces.push(x.clone());
info!("Imported workspace: {}", x.name); info!("Imported workspace: {}", x.name);
} }
for mut v in r.resources.environments { for mut v in r.resources.environments {
v.id = maybe_gen_id(v.id.as_str(), ModelType::Environment, &mut id_map); v.id = maybe_gen_id(v.id.as_str(), ModelType::TypeEnvironment, &mut id_map);
v.workspace_id = maybe_gen_id(v.workspace_id.as_str(), ModelType::Workspace, &mut id_map); v.workspace_id = maybe_gen_id(
v.workspace_id.as_str(),
ModelType::TypeWorkspace,
&mut id_map,
);
let x = upsert_environment(&w, v).await.map_err(|e| e.to_string())?; let x = upsert_environment(&w, v).await.map_err(|e| e.to_string())?;
imported_resources.environments.push(x.clone()); imported_resources.environments.push(x.clone());
info!("Imported environment: {}", x.name); info!("Imported environment: {}", x.name);
} }
for mut v in r.resources.folders { for mut v in r.resources.folders {
v.id = maybe_gen_id(v.id.as_str(), ModelType::Folder, &mut id_map); v.id = maybe_gen_id(v.id.as_str(), ModelType::TypeFolder, &mut id_map);
v.workspace_id = maybe_gen_id(v.workspace_id.as_str(), ModelType::Workspace, &mut id_map); v.workspace_id = maybe_gen_id(
v.folder_id = maybe_gen_id_opt(v.folder_id, ModelType::Folder, &mut id_map); v.workspace_id.as_str(),
ModelType::TypeWorkspace,
&mut id_map,
);
v.folder_id = maybe_gen_id_opt(v.folder_id, ModelType::TypeFolder, &mut id_map);
let x = upsert_folder(&w, v).await.map_err(|e| e.to_string())?; let x = upsert_folder(&w, v).await.map_err(|e| e.to_string())?;
imported_resources.folders.push(x.clone()); imported_resources.folders.push(x.clone());
info!("Imported folder: {}", x.name); info!("Imported folder: {}", x.name);
} }
for mut v in r.resources.http_requests { for mut v in r.resources.http_requests {
v.id = maybe_gen_id(v.id.as_str(), ModelType::HttpRequest, &mut id_map); v.id = maybe_gen_id(v.id.as_str(), ModelType::TypeHttpRequest, &mut id_map);
v.workspace_id = maybe_gen_id(v.workspace_id.as_str(), ModelType::Workspace, &mut id_map); v.workspace_id = maybe_gen_id(
v.folder_id = maybe_gen_id_opt(v.folder_id, ModelType::Folder, &mut id_map); v.workspace_id.as_str(),
ModelType::TypeWorkspace,
&mut id_map,
);
v.folder_id = maybe_gen_id_opt(v.folder_id, ModelType::TypeFolder, &mut id_map);
let x = upsert_http_request(&w, v) let x = upsert_http_request(&w, v)
.await .await
.map_err(|e| e.to_string())?; .map_err(|e| e.to_string())?;
@@ -803,9 +835,13 @@ async fn cmd_import_data(
} }
for mut v in r.resources.grpc_requests { for mut v in r.resources.grpc_requests {
v.id = maybe_gen_id(v.id.as_str(), ModelType::GrpcRequest, &mut id_map); v.id = maybe_gen_id(v.id.as_str(), ModelType::TypeGrpcRequest, &mut id_map);
v.workspace_id = maybe_gen_id(v.workspace_id.as_str(), ModelType::Workspace, &mut id_map); v.workspace_id = maybe_gen_id(
v.folder_id = maybe_gen_id_opt(v.folder_id, ModelType::Folder, &mut id_map); v.workspace_id.as_str(),
ModelType::TypeWorkspace,
&mut id_map,
);
v.folder_id = maybe_gen_id_opt(v.folder_id, ModelType::TypeFolder, &mut id_map);
let x = upsert_grpc_request(&w, &v) let x = upsert_grpc_request(&w, &v)
.await .await
.map_err(|e| e.to_string())?; .map_err(|e| e.to_string())?;
@@ -818,6 +854,26 @@ async fn cmd_import_data(
} }
} }
#[tauri::command]
async fn cmd_request_to_curl(
app: AppHandle,
request_id: &str,
environment_id: Option<&str>,
) -> Result<String, String> {
let request = get_http_request(&app, request_id)
.await
.map_err(|e| e.to_string())?;
let environment = match environment_id {
Some(id) => Some(get_environment(&app, id).await.map_err(|e| e.to_string())?),
None => None,
};
let workspace = get_workspace(&app, &request.workspace_id)
.await
.map_err(|e| e.to_string())?;
let rendered = render_request(&request, &workspace, environment.as_ref());
Ok(run_plugin_export_curl(&app, &rendered)?)
}
#[tauri::command] #[tauri::command]
async fn cmd_export_data( async fn cmd_export_data(
window: WebviewWindow, window: WebviewWindow,
@@ -1437,6 +1493,7 @@ async fn cmd_check_for_updates(
#[cfg_attr(mobile, tauri::mobile_entry_point)] #[cfg_attr(mobile, tauri::mobile_entry_point)]
pub fn run() { pub fn run() {
tauri::Builder::default() tauri::Builder::default()
.plugin(tauri_plugin_clipboard_manager::init())
.plugin(tauri_plugin_window_state::Builder::default().build()) .plugin(tauri_plugin_window_state::Builder::default().build())
.plugin(tauri_plugin_shell::init()) .plugin(tauri_plugin_shell::init())
.plugin(tauri_plugin_updater::Builder::new().build()) .plugin(tauri_plugin_updater::Builder::new().build())
@@ -1564,6 +1621,7 @@ pub fn run() {
cmd_list_workspaces, cmd_list_workspaces,
cmd_metadata, cmd_metadata,
cmd_new_window, cmd_new_window,
cmd_request_to_curl,
cmd_send_ephemeral_request, cmd_send_ephemeral_request,
cmd_send_http_request, cmd_send_http_request,
cmd_set_key_value, cmd_set_key_value,

View File

@@ -11,31 +11,31 @@ use tauri::{AppHandle, Manager, WebviewWindow, Wry};
use tokio::sync::Mutex; use tokio::sync::Mutex;
pub enum ModelType { pub enum ModelType {
CookieJar, TypeCookieJar,
Environment, TypeEnvironment,
Folder, TypeFolder,
GrpcConnection, TypeGrpcConnection,
GrpcEvent, TypeGrpcEvent,
GrpcRequest, TypeGrpcRequest,
HttpRequest, TypeHttpRequest,
HttpResponse, TypeHttpResponse,
Workspace, TypeWorkspace,
} }
impl ModelType { impl ModelType {
pub fn id_prefix(&self) -> String { pub fn id_prefix(&self) -> String {
match self { match self {
ModelType::CookieJar => "cj", ModelType::TypeCookieJar => "cj",
ModelType::Environment => "ev", ModelType::TypeEnvironment => "ev",
ModelType::Folder => "fl", ModelType::TypeFolder => "fl",
ModelType::GrpcConnection => "gc", ModelType::TypeGrpcConnection => "gc",
ModelType::GrpcEvent => "ge", ModelType::TypeGrpcEvent => "ge",
ModelType::GrpcRequest => "gr", ModelType::TypeGrpcRequest => "gr",
ModelType::HttpRequest => "rq", ModelType::TypeHttpRequest => "rq",
ModelType::HttpResponse => "rs", ModelType::TypeHttpResponse => "rs",
ModelType::Workspace => "wk", ModelType::TypeWorkspace => "wk",
} }
.to_string() .to_string()
} }
} }
@@ -542,7 +542,7 @@ pub async fn upsert_grpc_request(
) -> Result<GrpcRequest, sqlx::Error> { ) -> Result<GrpcRequest, sqlx::Error> {
let db = get_db(window).await; let db = get_db(window).await;
let id = match request.id.as_str() { let id = match request.id.as_str() {
"" => generate_model_id(ModelType::GrpcRequest), "" => generate_model_id(ModelType::TypeGrpcRequest),
_ => request.id.to_string(), _ => request.id.to_string(),
}; };
let trimmed_name = request.name.trim(); let trimmed_name = request.name.trim();
@@ -638,7 +638,7 @@ pub async fn upsert_grpc_connection(
) -> Result<GrpcConnection, sqlx::Error> { ) -> Result<GrpcConnection, sqlx::Error> {
let db = get_db(window).await; let db = get_db(window).await;
let id = match connection.id.as_str() { let id = match connection.id.as_str() {
"" => generate_model_id(ModelType::GrpcConnection), "" => generate_model_id(ModelType::TypeGrpcConnection),
_ => connection.id.to_string(), _ => connection.id.to_string(),
}; };
sqlx::query!( sqlx::query!(
@@ -727,7 +727,7 @@ pub async fn upsert_grpc_event(
) -> Result<GrpcEvent, sqlx::Error> { ) -> Result<GrpcEvent, sqlx::Error> {
let db = get_db(window).await; let db = get_db(window).await;
let id = match event.id.as_str() { let id = match event.id.as_str() {
"" => generate_model_id(ModelType::GrpcEvent), "" => generate_model_id(ModelType::TypeGrpcEvent),
_ => event.id.to_string(), _ => event.id.to_string(),
}; };
sqlx::query!( sqlx::query!(
@@ -808,7 +808,7 @@ pub async fn upsert_cookie_jar(
cookie_jar: &CookieJar, cookie_jar: &CookieJar,
) -> Result<CookieJar, sqlx::Error> { ) -> Result<CookieJar, sqlx::Error> {
let id = match cookie_jar.id.as_str() { let id = match cookie_jar.id.as_str() {
"" => generate_model_id(ModelType::CookieJar), "" => generate_model_id(ModelType::TypeCookieJar),
_ => cookie_jar.id.to_string(), _ => cookie_jar.id.to_string(),
}; };
let trimmed_name = cookie_jar.name.trim(); let trimmed_name = cookie_jar.name.trim();
@@ -940,7 +940,7 @@ pub async fn upsert_environment(
environment: Environment, environment: Environment,
) -> Result<Environment, sqlx::Error> { ) -> Result<Environment, sqlx::Error> {
let id = match environment.id.as_str() { let id = match environment.id.as_str() {
"" => generate_model_id(ModelType::Environment), "" => generate_model_id(ModelType::TypeEnvironment),
_ => environment.id.to_string(), _ => environment.id.to_string(),
}; };
let trimmed_name = environment.name.trim(); let trimmed_name = environment.name.trim();
@@ -1043,7 +1043,7 @@ pub async fn delete_folder(window: &WebviewWindow, id: &str) -> Result<Folder, s
pub async fn upsert_folder(window: &WebviewWindow, r: Folder) -> Result<Folder, sqlx::Error> { pub async fn upsert_folder(window: &WebviewWindow, r: Folder) -> Result<Folder, sqlx::Error> {
let id = match r.id.as_str() { let id = match r.id.as_str() {
"" => generate_model_id(ModelType::Folder), "" => generate_model_id(ModelType::TypeFolder),
_ => r.id.to_string(), _ => r.id.to_string(),
}; };
let trimmed_name = r.name.trim(); let trimmed_name = r.name.trim();
@@ -1090,7 +1090,7 @@ pub async fn upsert_http_request(
r: HttpRequest, r: HttpRequest,
) -> Result<HttpRequest, sqlx::Error> { ) -> Result<HttpRequest, sqlx::Error> {
let id = match r.id.as_str() { let id = match r.id.as_str() {
"" => generate_model_id(ModelType::HttpRequest), "" => generate_model_id(ModelType::TypeHttpRequest),
_ => r.id.to_string(), _ => r.id.to_string(),
}; };
let trimmed_name = r.name.trim(); let trimmed_name = r.name.trim();
@@ -1229,7 +1229,7 @@ pub async fn create_http_response(
remote_addr: Option<&str>, remote_addr: Option<&str>,
) -> Result<HttpResponse, sqlx::Error> { ) -> Result<HttpResponse, sqlx::Error> {
let req = get_http_request(window, request_id).await?; let req = get_http_request(window, request_id).await?;
let id = generate_model_id(ModelType::HttpResponse); let id = generate_model_id(ModelType::TypeHttpResponse);
let headers_json = Json(headers); let headers_json = Json(headers);
let db = get_db(window).await; let db = get_db(window).await;
sqlx::query!( sqlx::query!(
@@ -1307,7 +1307,7 @@ pub async fn upsert_workspace(
workspace: Workspace, workspace: Workspace,
) -> Result<Workspace, sqlx::Error> { ) -> Result<Workspace, sqlx::Error> {
let id = match workspace.id.as_str() { let id = match workspace.id.as_str() {
"" => generate_model_id(ModelType::Workspace), "" => generate_model_id(ModelType::TypeWorkspace),
_ => workspace.id.to_string(), _ => workspace.id.to_string(),
}; };
let trimmed_name = workspace.name.trim(); let trimmed_name = workspace.name.trim();

View File

@@ -1,19 +1,19 @@
use std::fs; use std::fs;
use std::rc::Rc; use std::rc::Rc;
use boa_engine::{
Context, js_string, JsNativeError, JsValue, Module, module::SimpleModuleLoader,
property::Attribute, Source,
};
use boa_engine::builtins::promise::PromiseState; use boa_engine::builtins::promise::PromiseState;
use boa_engine::{
js_string, module::SimpleModuleLoader, property::Attribute, Context, JsNativeError, JsValue,
Module, Source,
};
use boa_runtime::Console; use boa_runtime::Console;
use log::{debug, error}; use log::{debug, error};
use serde::{Deserialize, Serialize}; use serde::{Deserialize, Serialize};
use serde_json::json; use serde_json::json;
use tauri::{AppHandle, Manager};
use tauri::path::BaseDirectory; use tauri::path::BaseDirectory;
use tauri::{AppHandle, Manager};
use crate::models::WorkspaceExportResources; use crate::models::{HttpRequest, WorkspaceExportResources};
#[derive(Default, Debug, Deserialize, Serialize)] #[derive(Default, Debug, Deserialize, Serialize)]
pub struct FilterResult { pub struct FilterResult {
@@ -48,6 +48,23 @@ pub async fn run_plugin_filter(
Some(resources) Some(resources)
} }
pub fn run_plugin_export_curl(
app_handle: &AppHandle,
request: &HttpRequest,
) -> Result<String, String> {
let mut context = Context::default();
let request_json = serde_json::to_value(request).map_err(|e| e.to_string())?;
let result_json = run_plugin(
app_handle,
"exporter-curl",
"pluginHookExport",
&[JsValue::from_json(&request_json, &mut context).map_err(|e| e.to_string())?],
);
let resources: String = serde_json::from_value(result_json).map_err(|e| e.to_string())?;
Ok(resources)
}
pub async fn run_plugin_import( pub async fn run_plugin_import(
app_handle: &AppHandle, app_handle: &AppHandle,
plugin_name: &str, plugin_name: &str,

View File

@@ -1,7 +1,67 @@
use crate::models::{Environment, Workspace};
use std::collections::HashMap; use std::collections::HashMap;
use regex::Regex;
use regex::Regex;
use sqlx::types::{Json, JsonValue};
use crate::models::{Environment, HttpRequest, HttpRequestHeader, HttpUrlParameter, Workspace};
pub fn render_request(r: &HttpRequest, w: &Workspace, e: Option<&Environment>) -> HttpRequest {
let r = r.clone();
HttpRequest {
url: render(r.url.as_str(), w, e),
url_parameters: Json(
r.url_parameters
.0
.iter()
.map(|p| HttpUrlParameter {
enabled: p.enabled,
name: render(p.name.as_str(), w, e),
value: render(p.value.as_str(), w, e),
})
.collect::<Vec<HttpUrlParameter>>(),
),
headers: Json(
r.headers
.0
.iter()
.map(|p| HttpRequestHeader {
enabled: p.enabled,
name: render(p.name.as_str(), w, e),
value: render(p.value.as_str(), w, e),
})
.collect::<Vec<HttpRequestHeader>>(),
),
body: Json(
r.body
.0
.iter()
.map(|(k, v)| {
let v = if v.is_string() {
render(v.as_str().unwrap(), w, e)
} else {
v.to_string()
};
(render(k, w, e), JsonValue::from(v))
})
.collect::<HashMap<String, JsonValue>>(),
),
authentication: Json(
r.authentication
.0
.iter()
.map(|(k, v)| {
let v = if v.is_string() {
render(v.as_str().unwrap(), w, e)
} else {
v.to_string()
};
(render(k, w, e), JsonValue::from(v))
})
.collect::<HashMap<String, JsonValue>>(),
),
..r
}
}
pub fn render(template: &str, workspace: &Workspace, environment: Option<&Environment>) -> String { pub fn render(template: &str, workspace: &Workspace, environment: Option<&Environment>) -> String {
let mut map = HashMap::new(); let mut map = HashMap::new();

View File

@@ -1,7 +1,7 @@
use std::time::SystemTime; use std::time::SystemTime;
use log::info; use log::info;
use tauri::{AppHandle}; use tauri::AppHandle;
use tauri_plugin_dialog::DialogExt; use tauri_plugin_dialog::DialogExt;
use tauri_plugin_updater::UpdaterExt; use tauri_plugin_updater::UpdaterExt;
@@ -67,8 +67,7 @@ impl YaakUpdater {
tauri::async_runtime::spawn(async move { tauri::async_runtime::spawn(async move {
match update.download_and_install(|_, _| {}, || {}).await { match update.download_and_install(|_, _| {}, || {}).await {
Ok(_) => { Ok(_) => {
if h if h.dialog()
.dialog()
.message("Would you like to restart the app?") .message("Would you like to restart the app?")
.title("Update Installed") .title("Update Installed")
.blocking_show() .blocking_show()
@@ -77,8 +76,7 @@ impl YaakUpdater {
} }
} }
Err(e) => { Err(e) => {
h h.dialog()
.dialog()
.message(format!("The update failed to install: {}", e)); .message(format!("The update failed to install: {}", e));
} }
} }

View File

@@ -1,4 +1,4 @@
use tauri::{WebviewWindow}; use tauri::WebviewWindow;
const TRAFFIC_LIGHT_OFFSET_X: f64 = 13.0; const TRAFFIC_LIGHT_OFFSET_X: f64 = 13.0;
const TRAFFIC_LIGHT_OFFSET_Y: f64 = 18.0; const TRAFFIC_LIGHT_OFFSET_Y: f64 = 18.0;

View File

@@ -107,7 +107,6 @@ pub fn app_menu(app_handle: &AppHandle) -> tauri::Result<Menu<Wry>> {
&PredefinedMenuItem::fullscreen(app_handle, None)?, &PredefinedMenuItem::fullscreen(app_handle, None)?,
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]
&PredefinedMenuItem::separator(app_handle)?, &PredefinedMenuItem::separator(app_handle)?,
&MenuItemBuilder::with_id("zoom_reset".to_string(), "Zoom to Actual Size") &MenuItemBuilder::with_id("zoom_reset".to_string(), "Zoom to Actual Size")
.accelerator("CmdOrCtrl+0") .accelerator("CmdOrCtrl+0")
.build(app_handle)?, .build(app_handle)?,

View File

@@ -9,6 +9,7 @@ import { useActiveEnvironmentId } from '../hooks/useActiveEnvironmentId';
import { useActiveRequest } from '../hooks/useActiveRequest'; import { useActiveRequest } from '../hooks/useActiveRequest';
import { useActiveWorkspace } from '../hooks/useActiveWorkspace'; import { useActiveWorkspace } from '../hooks/useActiveWorkspace';
import { useAppRoutes } from '../hooks/useAppRoutes'; import { useAppRoutes } from '../hooks/useAppRoutes';
import { useCopyAsCurl } from '../hooks/useCopyAsCurl';
import { useCreateDropdownItems } from '../hooks/useCreateDropdownItems'; import { useCreateDropdownItems } from '../hooks/useCreateDropdownItems';
import { useDeleteFolder } from '../hooks/useDeleteFolder'; import { useDeleteFolder } from '../hooks/useDeleteFolder';
import { useDeleteRequest } from '../hooks/useDeleteRequest'; import { useDeleteRequest } from '../hooks/useDeleteRequest';
@@ -607,6 +608,7 @@ const SidebarItem = forwardRef(function SidebarItem(
const deleteRequest = useDeleteRequest(activeRequest ?? null); const deleteRequest = useDeleteRequest(activeRequest ?? null);
const duplicateHttpRequest = useDuplicateHttpRequest({ id: itemId, navigateAfter: true }); const duplicateHttpRequest = useDuplicateHttpRequest({ id: itemId, navigateAfter: true });
const duplicateGrpcRequest = useDuplicateGrpcRequest({ id: itemId, navigateAfter: true }); const duplicateGrpcRequest = useDuplicateGrpcRequest({ id: itemId, navigateAfter: true });
const copyAsCurl = useCopyAsCurl(itemId);
const sendRequest = useSendRequest(itemId); const sendRequest = useSendRequest(itemId);
const sendManyRequests = useSendManyRequests(); const sendManyRequests = useSendManyRequests();
const latestHttpResponse = useLatestHttpResponse(itemId); const latestHttpResponse = useLatestHttpResponse(itemId);
@@ -734,6 +736,14 @@ const SidebarItem = forwardRef(function SidebarItem(
leftSlot: <Icon icon="sendHorizontal" />, leftSlot: <Icon icon="sendHorizontal" />,
onSelect: () => sendRequest.mutate(), onSelect: () => sendRequest.mutate(),
}, },
{
key: 'copyCurl',
label: 'Copy as Curl',
leftSlot: <Icon icon="copy" />,
onSelect: async () => {
await copyAsCurl.mutateAsync();
},
},
{ type: 'separator' }, { type: 'separator' },
] ]
: []) as DropdownItem[]), : []) as DropdownItem[]),

View File

@@ -0,0 +1,13 @@
import { useMutation } from '@tanstack/react-query';
import { invoke } from '@tauri-apps/api/core';
import { writeText } from '@tauri-apps/plugin-clipboard-manager';
export function useCopyAsCurl(requestId: string) {
return useMutation<string>({
mutationFn: async () => {
const cmd: string = await invoke('cmd_request_to_curl', { requestId });
await writeText(cmd);
return cmd;
},
});
}