From 28b2494a082828ad086e768c9e428ea79cb6a828 Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Tue, 24 Mar 2026 18:14:32 +0100 Subject: [PATCH] rebrand app from Bocken Fitness to Bocken, track Android project MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Manifest: name/short_name → "Bocken", start_url → "/" - Tauri: productName → "Bocken", identifier → org.bocken.app, url → "/" - Cargo: package → bocken, lib → bocken_lib - Page titles: "- Fitness" → "- Bocken" across all fitness routes - Build script: auto-regenerate android project on identifier change - Regenerate app icon from website favicon - Track Android project source in git (ignore only build output/caches) - Add native GPS foreground service and AndroidBridge for background location tracking (LocationForegroundService, AndroidBridge.kt) - Add ACCESS_BACKGROUND_LOCATION permission for screen-off GPS --- .gitignore | 9 +- scripts/android-build-deploy.sh | 14 +- src-tauri/Cargo.lock | 2 +- src-tauri/Cargo.toml | 4 +- src-tauri/gen/android/.editorconfig | 12 + src-tauri/gen/android/.gitignore | 19 + src-tauri/gen/android/app/.gitignore | 6 + src-tauri/gen/android/app/build.gradle.kts | 70 + src-tauri/gen/android/app/proguard-rules.pro | 21 + .../android/app/src/main/AndroidManifest.xml | 48 + .../main/java/org/bocken/app/AndroidBridge.kt | 55 + .../bocken/app/LocationForegroundService.kt | 138 + .../main/java/org/bocken/app/MainActivity.kt | 16 + .../drawable-v24/ic_launcher_foreground.xml | 30 + .../res/drawable/ic_launcher_background.xml | 170 ++ .../app/src/main/res/layout/activity_main.xml | 18 + .../res/mipmap-anydpi-v26/ic_launcher.xml | 5 + .../src/main/res/mipmap-hdpi/ic_launcher.png | Bin 0 -> 1826 bytes .../mipmap-hdpi/ic_launcher_foreground.png | Bin 0 -> 9260 bytes .../res/mipmap-hdpi/ic_launcher_round.png | Bin 0 -> 1956 bytes .../src/main/res/mipmap-mdpi/ic_launcher.png | Bin 0 -> 1789 bytes .../mipmap-mdpi/ic_launcher_foreground.png | Bin 0 -> 5799 bytes .../res/mipmap-mdpi/ic_launcher_round.png | Bin 0 -> 1891 bytes .../src/main/res/mipmap-xhdpi/ic_launcher.png | Bin 0 -> 4415 bytes .../mipmap-xhdpi/ic_launcher_foreground.png | Bin 0 -> 13295 bytes .../res/mipmap-xhdpi/ic_launcher_round.png | Bin 0 -> 4731 bytes .../main/res/mipmap-xxhdpi/ic_launcher.png | Bin 0 -> 7247 bytes .../mipmap-xxhdpi/ic_launcher_foreground.png | Bin 0 -> 22371 bytes .../res/mipmap-xxhdpi/ic_launcher_round.png | Bin 0 -> 7741 bytes .../main/res/mipmap-xxxhdpi/ic_launcher.png | Bin 0 -> 10081 bytes .../mipmap-xxxhdpi/ic_launcher_foreground.png | Bin 0 -> 32929 bytes .../res/mipmap-xxxhdpi/ic_launcher_round.png | Bin 0 -> 10692 bytes .../app/src/main/res/values-night/themes.xml | 6 + .../app/src/main/res/values/colors.xml | 10 + .../res/values/ic_launcher_background.xml | 4 + .../app/src/main/res/values/strings.xml | 4 + .../app/src/main/res/values/themes.xml | 6 + .../app/src/main/res/xml/file_paths.xml | 5 + src-tauri/gen/android/build.gradle.kts | 22 + .../gen/android/buildSrc/build.gradle.kts | 23 + .../java/org/bocken/app/kotlin/BuildTask.kt | 68 + .../java/org/bocken/app/kotlin/RustPlugin.kt | 85 + src-tauri/gen/android/gradle.properties | 24 + src-tauri/gen/android/settings.gradle | 3 + src-tauri/gen/schemas/acl-manifests.json | 1 + src-tauri/gen/schemas/android-schema.json | 2316 +++++++++++++++++ src-tauri/gen/schemas/capabilities.json | 1 + src-tauri/gen/schemas/mobile-schema.json | 2316 +++++++++++++++++ src-tauri/icons/icon.icns | Bin 241131 -> 241131 bytes src-tauri/src/main.rs | 2 +- src-tauri/tauri.conf.json | 8 +- static/manifest.json | 8 +- 52 files changed, 5535 insertions(+), 14 deletions(-) create mode 100644 src-tauri/gen/android/.editorconfig create mode 100644 src-tauri/gen/android/.gitignore create mode 100644 src-tauri/gen/android/app/.gitignore create mode 100644 src-tauri/gen/android/app/build.gradle.kts create mode 100644 src-tauri/gen/android/app/proguard-rules.pro create mode 100644 src-tauri/gen/android/app/src/main/AndroidManifest.xml create mode 100644 src-tauri/gen/android/app/src/main/java/org/bocken/app/AndroidBridge.kt create mode 100644 src-tauri/gen/android/app/src/main/java/org/bocken/app/LocationForegroundService.kt create mode 100644 src-tauri/gen/android/app/src/main/java/org/bocken/app/MainActivity.kt create mode 100644 src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml create mode 100644 src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml create mode 100644 src-tauri/gen/android/app/src/main/res/layout/activity_main.xml create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png create mode 100644 src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png create mode 100644 src-tauri/gen/android/app/src/main/res/values-night/themes.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/colors.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/strings.xml create mode 100644 src-tauri/gen/android/app/src/main/res/values/themes.xml create mode 100644 src-tauri/gen/android/app/src/main/res/xml/file_paths.xml create mode 100644 src-tauri/gen/android/build.gradle.kts create mode 100644 src-tauri/gen/android/buildSrc/build.gradle.kts create mode 100644 src-tauri/gen/android/buildSrc/src/main/java/org/bocken/app/kotlin/BuildTask.kt create mode 100644 src-tauri/gen/android/buildSrc/src/main/java/org/bocken/app/kotlin/RustPlugin.kt create mode 100644 src-tauri/gen/android/gradle.properties create mode 100644 src-tauri/gen/android/settings.gradle create mode 100644 src-tauri/gen/schemas/acl-manifests.json create mode 100644 src-tauri/gen/schemas/android-schema.json create mode 100644 src-tauri/gen/schemas/capabilities.json create mode 100644 src-tauri/gen/schemas/mobile-schema.json diff --git a/.gitignore b/.gitignore index b65ca9d..84dde2e 100644 --- a/.gitignore +++ b/.gitignore @@ -10,6 +10,13 @@ node_modules !.env.example vite.config.js.timestamp-* vite.config.ts.timestamp-* -src-tauri/gen/ src-tauri/target/ src-tauri/*.keystore +# Android: ignore build output and caches, track source files +src-tauri/gen/android/.gradle/ +src-tauri/gen/android/app/build/ +src-tauri/gen/android/buildSrc/.gradle/ +src-tauri/gen/android/buildSrc/build/ +src-tauri/gen/android/gradle/ +src-tauri/gen/android/gradlew +src-tauri/gen/android/gradlew.bat diff --git a/scripts/android-build-deploy.sh b/scripts/android-build-deploy.sh index b254c07..62add7a 100755 --- a/scripts/android-build-deploy.sh +++ b/scripts/android-build-deploy.sh @@ -10,7 +10,7 @@ APK_DIR="src-tauri/gen/android/app/build/outputs/apk/universal/release" APK_UNSIGNED="$APK_DIR/app-universal-release-unsigned.apk" APK_SIGNED="$APK_DIR/app-universal-release-signed.apk" KEYSTORE="src-tauri/debug.keystore" -PACKAGE="org.bocken.fitness" +PACKAGE="org.bocken.app" usage() { echo "Usage: $0 [build|deploy|run]" @@ -30,7 +30,19 @@ ensure_keystore() { fi } +ensure_android_project() { + local id_path + id_path="src-tauri/gen/android/app/src/main/java/$(echo "$PACKAGE" | tr '.' '/')" + if [ ! -d "$id_path" ]; then + echo ":: Android project missing or identifier changed, regenerating..." + rm -rf src-tauri/gen/android + pnpm tauri android init + fi +} + build() { + ensure_android_project + echo ":: Building Android APK..." pnpm tauri android build --apk diff --git a/src-tauri/Cargo.lock b/src-tauri/Cargo.lock index 95d0b93..94f8452 100644 --- a/src-tauri/Cargo.lock +++ b/src-tauri/Cargo.lock @@ -143,7 +143,7 @@ dependencies = [ ] [[package]] -name = "bocken-fitness" +name = "bocken" version = "0.1.0" dependencies = [ "serde", diff --git a/src-tauri/Cargo.toml b/src-tauri/Cargo.toml index 3964b59..4d84992 100644 --- a/src-tauri/Cargo.toml +++ b/src-tauri/Cargo.toml @@ -1,10 +1,10 @@ [package] -name = "bocken-fitness" +name = "bocken" version = "0.1.0" edition = "2021" [lib] -name = "bocken_fitness_lib" +name = "bocken_lib" crate-type = ["lib", "cdylib", "staticlib"] [build-dependencies] diff --git a/src-tauri/gen/android/.editorconfig b/src-tauri/gen/android/.editorconfig new file mode 100644 index 0000000..ebe51d3 --- /dev/null +++ b/src-tauri/gen/android/.editorconfig @@ -0,0 +1,12 @@ +# EditorConfig is awesome: https://EditorConfig.org + +# top-most EditorConfig file +root = true + +[*] +indent_style = space +indent_size = 2 +end_of_line = lf +charset = utf-8 +trim_trailing_whitespace = false +insert_final_newline = false \ No newline at end of file diff --git a/src-tauri/gen/android/.gitignore b/src-tauri/gen/android/.gitignore new file mode 100644 index 0000000..b248203 --- /dev/null +++ b/src-tauri/gen/android/.gitignore @@ -0,0 +1,19 @@ +*.iml +.gradle +/local.properties +/.idea/caches +/.idea/libraries +/.idea/modules.xml +/.idea/workspace.xml +/.idea/navEditor.xml +/.idea/assetWizardSettings.xml +.DS_Store +build +/captures +.externalNativeBuild +.cxx +local.properties +key.properties + +/.tauri +/tauri.settings.gradle \ No newline at end of file diff --git a/src-tauri/gen/android/app/.gitignore b/src-tauri/gen/android/app/.gitignore new file mode 100644 index 0000000..6c4d56b --- /dev/null +++ b/src-tauri/gen/android/app/.gitignore @@ -0,0 +1,6 @@ +/src/main/**/generated +/src/main/jniLibs/**/*.so +/src/main/assets/tauri.conf.json +/tauri.build.gradle.kts +/proguard-tauri.pro +/tauri.properties \ No newline at end of file diff --git a/src-tauri/gen/android/app/build.gradle.kts b/src-tauri/gen/android/app/build.gradle.kts new file mode 100644 index 0000000..b6db71f --- /dev/null +++ b/src-tauri/gen/android/app/build.gradle.kts @@ -0,0 +1,70 @@ +import java.util.Properties + +plugins { + id("com.android.application") + id("org.jetbrains.kotlin.android") + id("rust") +} + +val tauriProperties = Properties().apply { + val propFile = file("tauri.properties") + if (propFile.exists()) { + propFile.inputStream().use { load(it) } + } +} + +android { + compileSdk = 36 + namespace = "org.bocken.app" + defaultConfig { + manifestPlaceholders["usesCleartextTraffic"] = "false" + applicationId = "org.bocken.app" + minSdk = 24 + targetSdk = 36 + versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt() + versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0") + } + buildTypes { + getByName("debug") { + manifestPlaceholders["usesCleartextTraffic"] = "true" + isDebuggable = true + isJniDebuggable = true + isMinifyEnabled = false + packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so") + jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so") + jniLibs.keepDebugSymbols.add("*/x86/*.so") + jniLibs.keepDebugSymbols.add("*/x86_64/*.so") + } + } + getByName("release") { + isMinifyEnabled = true + proguardFiles( + *fileTree(".") { include("**/*.pro") } + .plus(getDefaultProguardFile("proguard-android-optimize.txt")) + .toList().toTypedArray() + ) + } + } + kotlinOptions { + jvmTarget = "1.8" + } + buildFeatures { + buildConfig = true + } +} + +rust { + rootDirRel = "../../../" +} + +dependencies { + implementation("androidx.webkit:webkit:1.14.0") + implementation("androidx.appcompat:appcompat:1.7.1") + implementation("androidx.activity:activity-ktx:1.10.1") + implementation("com.google.android.material:material:1.12.0") + testImplementation("junit:junit:4.13.2") + androidTestImplementation("androidx.test.ext:junit:1.1.4") + androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0") +} + +apply(from = "tauri.build.gradle.kts") \ No newline at end of file diff --git a/src-tauri/gen/android/app/proguard-rules.pro b/src-tauri/gen/android/app/proguard-rules.pro new file mode 100644 index 0000000..481bb43 --- /dev/null +++ b/src-tauri/gen/android/app/proguard-rules.pro @@ -0,0 +1,21 @@ +# Add project specific ProGuard rules here. +# You can control the set of applied configuration files using the +# proguardFiles setting in build.gradle. +# +# For more details, see +# http://developer.android.com/guide/developing/tools/proguard.html + +# If your project uses WebView with JS, uncomment the following +# and specify the fully qualified class name to the JavaScript interface +# class: +#-keepclassmembers class fqcn.of.javascript.interface.for.webview { +# public *; +#} + +# Uncomment this to preserve the line number information for +# debugging stack traces. +#-keepattributes SourceFile,LineNumberTable + +# If you keep the line number information, uncomment this to +# hide the original source file name. +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/AndroidManifest.xml b/src-tauri/gen/android/app/src/main/AndroidManifest.xml new file mode 100644 index 0000000..d58ef9a --- /dev/null +++ b/src-tauri/gen/android/app/src/main/AndroidManifest.xml @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src-tauri/gen/android/app/src/main/java/org/bocken/app/AndroidBridge.kt b/src-tauri/gen/android/app/src/main/java/org/bocken/app/AndroidBridge.kt new file mode 100644 index 0000000..662ee25 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/java/org/bocken/app/AndroidBridge.kt @@ -0,0 +1,55 @@ +package org.bocken.app + +import android.Manifest +import android.app.Activity +import android.content.Context +import android.content.Intent +import android.content.pm.PackageManager +import android.os.Build +import android.webkit.JavascriptInterface +import androidx.core.app.ActivityCompat +import androidx.core.content.ContextCompat + +class AndroidBridge(private val context: Context) { + + @JavascriptInterface + fun startLocationService() { + // Request background location if not yet granted (Android 10+) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + if (ContextCompat.checkSelfPermission(context, Manifest.permission.ACCESS_BACKGROUND_LOCATION) + != PackageManager.PERMISSION_GRANTED + ) { + if (context is Activity) { + ActivityCompat.requestPermissions( + context, + arrayOf(Manifest.permission.ACCESS_BACKGROUND_LOCATION), + 1002 + ) + } + } + } + + val intent = Intent(context, LocationForegroundService::class.java) + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + context.startForegroundService(intent) + } else { + context.startService(intent) + } + } + + @JavascriptInterface + fun stopLocationService() { + val intent = Intent(context, LocationForegroundService::class.java) + context.stopService(intent) + } + + @JavascriptInterface + fun getPoints(): String { + return LocationForegroundService.drainPoints() + } + + @JavascriptInterface + fun isTracking(): Boolean { + return LocationForegroundService.tracking + } +} diff --git a/src-tauri/gen/android/app/src/main/java/org/bocken/app/LocationForegroundService.kt b/src-tauri/gen/android/app/src/main/java/org/bocken/app/LocationForegroundService.kt new file mode 100644 index 0000000..8b747c0 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/java/org/bocken/app/LocationForegroundService.kt @@ -0,0 +1,138 @@ +package org.bocken.app + +import android.app.Notification +import android.app.NotificationChannel +import android.app.NotificationManager +import android.app.PendingIntent +import android.app.Service +import android.content.Context +import android.content.Intent +import android.location.Location +import android.location.LocationListener +import android.location.LocationManager +import android.os.Build +import android.os.IBinder +import org.json.JSONArray +import org.json.JSONObject +import java.util.Collections + +class LocationForegroundService : Service() { + + private var locationManager: LocationManager? = null + private var locationListener: LocationListener? = null + + companion object { + const val CHANNEL_ID = "gps_tracking" + const val NOTIFICATION_ID = 1001 + const val MIN_TIME_MS = 3000L + const val MIN_DISTANCE_M = 0f + + private val pointBuffer = Collections.synchronizedList(mutableListOf()) + var tracking = false + private set + + /** Drain all accumulated points and return as JSON string. Clears the buffer. */ + fun drainPoints(): String { + val drained: List + synchronized(pointBuffer) { + drained = ArrayList(pointBuffer) + pointBuffer.clear() + } + val arr = JSONArray() + for (p in drained) arr.put(p) + return arr.toString() + } + } + + override fun onBind(intent: Intent?): IBinder? = null + + override fun onCreate() { + super.onCreate() + createNotificationChannel() + } + + override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int { + val notificationIntent = Intent(this, MainActivity::class.java).apply { + addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP or Intent.FLAG_ACTIVITY_CLEAR_TOP) + } + val pendingIntent = PendingIntent.getActivity( + this, 0, notificationIntent, + PendingIntent.FLAG_UPDATE_CURRENT or PendingIntent.FLAG_IMMUTABLE + ) + + val notification = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + Notification.Builder(this, CHANNEL_ID) + .setContentTitle("GPS Tracking") + .setContentText("Recording your workout route") + .setSmallIcon(android.R.drawable.ic_menu_mylocation) + .setContentIntent(pendingIntent) + .setOngoing(true) + .build() + } else { + @Suppress("DEPRECATION") + Notification.Builder(this) + .setContentTitle("GPS Tracking") + .setContentText("Recording your workout route") + .setSmallIcon(android.R.drawable.ic_menu_mylocation) + .setContentIntent(pendingIntent) + .setOngoing(true) + .build() + } + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) { + startForeground(NOTIFICATION_ID, notification, android.content.pm.ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION) + } else { + startForeground(NOTIFICATION_ID, notification) + } + + startLocationUpdates() + tracking = true + + return START_STICKY + } + + @Suppress("MissingPermission") + private fun startLocationUpdates() { + locationManager = getSystemService(Context.LOCATION_SERVICE) as LocationManager + + locationListener = LocationListener { location -> + val point = JSONObject().apply { + put("lat", location.latitude) + put("lng", location.longitude) + if (location.hasAltitude()) put("altitude", location.altitude) + if (location.hasSpeed()) put("speed", location.speed.toDouble()) + put("timestamp", location.time) + } + pointBuffer.add(point) + } + + locationManager?.requestLocationUpdates( + LocationManager.GPS_PROVIDER, + MIN_TIME_MS, + MIN_DISTANCE_M, + locationListener!! + ) + } + + override fun onDestroy() { + tracking = false + locationListener?.let { locationManager?.removeUpdates(it) } + locationListener = null + locationManager = null + super.onDestroy() + } + + private fun createNotificationChannel() { + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { + val channel = NotificationChannel( + CHANNEL_ID, + "GPS Tracking", + NotificationManager.IMPORTANCE_LOW + ).apply { + description = "Shows while GPS is recording your workout" + } + val manager = getSystemService(NotificationManager::class.java) + manager?.createNotificationChannel(channel) + } + } +} diff --git a/src-tauri/gen/android/app/src/main/java/org/bocken/app/MainActivity.kt b/src-tauri/gen/android/app/src/main/java/org/bocken/app/MainActivity.kt new file mode 100644 index 0000000..4d654a2 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/java/org/bocken/app/MainActivity.kt @@ -0,0 +1,16 @@ +package org.bocken.app + +import android.os.Bundle +import android.webkit.WebView +import androidx.activity.enableEdgeToEdge + +class MainActivity : TauriActivity() { + override fun onCreate(savedInstanceState: Bundle?) { + enableEdgeToEdge() + super.onCreate(savedInstanceState) + } + + override fun onWebViewCreate(webView: WebView) { + webView.addJavascriptInterface(AndroidBridge(this), "AndroidBridge") + } +} diff --git a/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml b/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml new file mode 100644 index 0000000..2b068d1 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml @@ -0,0 +1,30 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml b/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml new file mode 100644 index 0000000..07d5da9 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml @@ -0,0 +1,170 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml b/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml new file mode 100644 index 0000000..4fc2444 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml @@ -0,0 +1,18 @@ + + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml b/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml new file mode 100644 index 0000000..2ffbf24 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..e44a30c851f169dc5fef02918aa4ad11b2b5b98c GIT binary patch literal 1826 zcmeAS@N?(olHy`uVBq!ia0y~yU@!z>4mJh`hT=JnG7JoCFFjoxLn>~)oyD0G;wo|c zepx@$(no=vF@cUYJ50D{U18QYILIs-Xn60Vf(uhtPq>O8zkrgIgGrXnB0)|$m!ly) z3mV)FG(hTog2yGtNwHO?`M0>Ki7Va{Xg@%%Ln_6 zPBYb8Q#9hVH7{9s{+pK_k!P{4)3xY&Y?n>Bfc_-Y%NifL9vV2G`XJWSrZLkr#`VA1 z6yFQ`!>1O!Pv>cux@RDxb6s94i)U#Y+q<()C%JcApQBV5pu~Misl4mt>5XZ3KAJg~ zx0DKpO0c=ivpig|W?|oJc3$`7qZPv4vmfqrzj5gRpR#^ss*zFP;)Rh?b$Qm(QNq_!?v=v`5W%&w`x3O$vvO-?s&^>-u+zyS^p06#y-6} zW6h#?p6lfSM-Hu&+R%>6??xr*tTu_c`n<*q@Qmm%oV1L{#`+Yu}=f{KFB4 zl@6cfc@w@ijP0CKM{t#^%gX%EEO`w_moISG+cV#Fp1p@0E9c0SZR z%=_qYHt+0I#+d5M8@jH{TJ}EJXwtX8eWEeemks(1gOW1!j~{N+U#j*r^w3vb6Pwcs zk{dmg_oqwzGB}vu_Wgyvafr0qsiq~8&$SPGf2mfzCSmreI!0yLo~3hA{LtKN@oM=u0_+Q)q%RzskFiO==E17Aio4Jaye|MSE6uuM#<#pJy@P1V;=JUV|}O3zqF@cM2h@ADHy*6FGy zw@j4K^x({&sN#4xr20ew|Hn&{AB3{1by}ZMJ#YQ`t5Wk$*O_TMtRJ!R9$ob4rkaR{ zka)e)miN~8Kd7vJ9rIe|@LP^2Q>5ISBKlHmrT))KpS0)sox%+dMY2xnWgWS_BfEP_ z!J#k7N#R$vO?qawpdtIc#IX-|G^TvGnO>u^blSn`(}XuL9@3o<^-$x?;9uwH-54c0?S*(>(_s_~c;60pb5=#252$){dx);Qf!)C>J3R2Lq6^6utfRa149 z9p0Mzf}?`oG@Upsyg-2S;g_Xrl6HnXFaKFB;<($-$cMQ&H1VX}7yUy<)44+ZJ90E{ z9MH&eKgS#5Y5coWC@ha<^|X#0OKHIy4=qKsRkhbHQ^=a#_|$4*>Z%v-yR5HG?tHaC zGnw<*+D#q0b{ZenTq&Fryzu1fnHq}kzb}+pKP5KC((zSuC0kyhV69$&xbd+Pt#7S6 zqEx5N)U@7TQXIPT!rm>}wjRxMH+t}1{hi)*OJ$0@;~E{O2NyLAq_ce+yj5Ex%v|d~ zZF8FXf%(|yx22vd=O5m=EbxWZL#;f)c?*{9kSdlEwbpYn>dEQeT=^{P>dwjMZziS) zPMY+sPT@8S$IaFmTpxcs-idByvfEdqmX)$b=%MGvr1=bC5B{@H(%qMC|A2XKU(TaT zZ#dhO3peYiY_flRreDX;e#WNdlDs=!x^Sh(ZTAv+;T9QIDpz7TVeLxolK#LyOsmRm z>*{wsRQ{#SS@68?eK%9NQjS)8_BpL1Z@CNA^Dn)1;(zs0fAKH9l=Nq}`U{k=pF8CA zoAYdh=9fgPcA= zC2i|uqcD$BxkG=szFik(`T1Ff=S#vGS&_rn3)b(PI5+X4{iYYs>Xo)6aooNna&W&7 zQ-#FwIdL=e7wC9zbgQ1S{_Mdio2x&02Zs6Vbv-v}Q7$W!`cs{)QGe_X*QPShyjHV5 z%{eREug&$fmeJcL~`P42M36Ni#4gfA(~745_&FHkNZrTxjk7 z@3r@JPWl+l)DfPTNSo^c+UFmS8?^< zjeE1+gr=^q{dOx=|8QJd*Y`=szVp7;HurL@=-vBn>vi7=UFY`4=B)qtt?F1@y707+ zM{#O5S09Oc?zX$+Os|o^GzZc8({bJ(^TjI9)>O-Gy?%|wQSseT#=q%rzRFdX-g^B& zU%&#{JJ&&%Kb#GLmV9@tdzo44DE8UYT|NI};bb;ri5wbAL?*U(R6M z*x~piwAz=EgSY>BT*7+eZ&l~w_RextZ1`(d{g?S&s({(6sA}J>*H?eblFv<$;dLlk zC#}etZR4P^KV2>7Xj*SjpoPljH>K0}PJ8&j_(wkHzdXA+%MLH*?AaNpz`MT5*TP${ zh3DIC&Fb7sDxxb>_Ay_YIk|da-<6nZ-7VMSZuHtPKRU6uMWoo~;qJFvgBV+SEc9ix zehF4@&6v>j=x=_5*Ssf>W?Znh7TU>|_3J_g!{WdtlPU*UpH=pj3Uh4oxuW2x^&nx&v5@oA z9ZlW;`u2VPRCr^ptEOmoppwUmpj_)y2kBhw&LQgAs8GpPjv;MbPwXeLJWv1K)x3w-MS3XLA{7_ms zGx_Gv9r07LrLiYAyU;qBG z$5B+_lR(2`XP$E}kBB8pg+64^zM}5N>YvH9ZAU=wZj;%HYHt$N?f>VwC>&$6xops+ z+0HyAJoIeLrwG@12~S0~QsoSIjKAnYZ$$di$OH?N?p8 z)Cl6?%o=gKV6auXyCVX2Qf-k1w5G{MqUd*VEj24ohAx zF+a!`$q~I!%_VIC_q|Jk44*u!bEi1WbSX>lad~gXVdI`q;2!#(uj99=sBTBCc6Vft zqy6d1WA*I6*T%eh>iH%a9n{M#-5 z-QMO3rA*Nb#{y4VGc3{go^;Uq&D9EzBYSDe52FCcTt~udRq=cY(M zl|S#bbe5PY8O-51Yk% zsjIT;I|DDSedcle{jJy1YXam_GdIk?WpeE5k=l-b&n&LX-8k+!gFlT$U?1b850^yV zIA&ckJ#4c1jt}Qy*BZHAMb;3;%!6!yTlT(FuT?EPaHGp0=nlKyz1J%)f1S`(X!qG9 zC*|(%%+@X3x<};y%QY#i-R1W2jQsX+=Nl5&xjjy+JiJ?^>G!hY#r?)rW=T0040#j9 zs!WyVOK&e+$vcBSmAy(gA@seIdboz4ESSc%VypLd;n z-sF|s{n(L^lk!MeV7; z`tBp=<~iIr=poUg?n^7DPRYv)>-R*sc1q zp`@G=i+7lh=4D?Quc@#1u9>jUdv)8yw(Nbbiwwf1*u2Qgx#!>|dhn6k>kFrMD>QZ8 z6MOuDqjc-hxcv+nC4chzTpAb8i@&%fTz%rg56og`=j_pUTg}wHqd%SDkosb^Cr8g( z70#Cz;GeZL;>jzQU-l=t9B&)Uetsj--`zm7#re^Sul1>|Ib7GzJbHEGjytsN5KEX+A+f0jE-!~{b$SA@4wXI!QV9(V%9D4(_xz9{@~+k zFV|mE>W@FqZn+fA#~|N!rLX#}`xJ#0Wrb=|zb`+qF!Frx%bH=4Q65h#`)}?Q8Pkl) zdnd2|C%oc?LEJq*mk*I1mzLg7{_Lk#@Z!i{>u2Zo3uL8eGcE9UzWZ~j?9sTZ%dgDP zcX+Yladku^(+2G``DZj69_gq&7F}_~^YGW_M=CR2Ej+*0))w$xQ{4Z0`J^LkW{320 zJpw*;S6lRWeNt7ty0qf0qKMX(Ujmk$b+2Z7+?k**p>DFEbzj@z8m%{W&qT~WSk(Q{ zx^ifyX4wQ^rsZ3?rW&Zf+}Azv+#^QmA6yPUD!87tZ*Z3FFLyoBtQ)skPR*sBVet(f zmJQEU66B*?oQhfg&Ao7&|8LVZs|JlXM~x@+Ox0|d7{vLW@8Z^Do}pi*Lh_>ZTzATd zo|}L8u&f%e+z1hY%lZV5m;&dHQ>Tt!B=mk=45Cy&WimQ+voBp!GodmdMx|CBmYxdgT5XV zIX-7&gF!bd!@ah>djeKHHlFZyr|hMGulqh038fQO`icq^9@AYgN#Nl$ z&Y;U>G7l~XoOTPj;lk*$KSg_~Ap6>eZ8I8wxt&&jl60u?X3ujY;Rk!9=e=BTrAcs_ z-qQJ7j%|Bb_s!|k+k^A@A0L?Cnj%x8n3#09bWiIIm*Z)FWarGR%Skf*r~P^53W+mD z)gf}M%c4)Ptu%_*sOS-R&2dsKZ`wgKn;QG`GZx=`Ww@tII%iYxq|J$~XJmGM6{`Fw zEp=vZgXPxV%b`!SLLLfvG>dNVPIG^glHIm(4|C;%=e4tz+{u}K)Zmu1aK^e%%G{#G z-;O+ea=@Ogx|{uqK$P9R4_AN4Mtevz%e%?A9Byhnz{_z}!*v&nS&FVitop$)O~s`_ z=^J*+GCXj!P`CD|oPMf2jDcl!Vz``pL3zH@q`(#b3s*G#6WLSZtyQ(-d|bWr85Zw{ z<`?bbdz$WQr8LcRjr+S*aY2RTHHVOoVyhE0!kG;!nT~8`={c@c@ZwBTtJ@m$jZSPC zdJA2CS~v;p+MDX7^uFP*UyDzM>XsjyCkOuI4%1NLtX7zF{r}3n`+QFr{sY< zGK>0CLl`c;wXSG6XT0vhMl&|U9nuP{;s+xa`F^)Fd0!*N-=Cc`RaD^*(}B2$fqnY_ z@@zZ$`ZVvc^M15p$P&1G)J^2!H21{S@~JmvjwLn&EmW z)#ukAt{b6erL@_C4l(vZ=Z**V z(!If~8V7tbBNg{#@rllBw{_cFbl6o$-=QyN`d^iO&&3#)I4Q>G97^2HxNXzYh%cuv zw1&T4l*;pRd$^Lq-Q$}+imjX_>VG&Qe4+c!HVeU+!{zb4IVW6>zO(Rq#^c@Dp*O3yUrnKlH&1~l*m3qgwpZTnVJ8!PfAGjCX|t?d|6yIY zwnt!9gP4YycW%qih0-N)$+~y8%zVmpVG-M+#!LTv8EsEoS++-uh2hV)x5^*RE%v&s zZD8KY8WQ!K;fU1y>TMj=H=EZ?kbNlSVZ$qa;OPR!w1)*(9v57H_&%#+Zr(1Di<^?> zXepRgG0$LG_a$)mqxW+YKG$z@;tZQ2(3Nm`S8L7=!HEi=jr3=k63*W770>hR1mB2`_Lt&8yQJ19Gv2dsuK85p((c2z{_N4lXh$I-@s>Yl{HEO7+oN&t za@^j#KUtC|g`K(Hx_2Iv_1fz_X;HU-xOY6?>ZYL?%{$3kw(y44o%gHd?whhsy{2ln zV7o_OmGaA%X39(jmNOK?9FxM2R)h(Es64l8qG;DdVa7#X2O{e(ggH%SH*+|3HXz{q z>cU6Skw134F0EM4$2ZekAiO5@mb%}H)^Lrcf0<97M6&F%VvBws_GjPGH~i6wi?>N} z{N8Z9ze8*NNw?FEsZ*1amrpi{le|=J8{l|cASvVc%eRyL@^8#C@4irw(_n0*rr=`C z8I&viu2H*$oon~IUa8GNmpR1E$}J7FH%?D$h!XqLd|YIyqV11R1*09zLI&!B%cZ26 z{_%W!?5F?RluzKaK--MwcICEY|6}{7Zu)#U&*kg-2VY*h`rhHY!55u)qs%LE;)YkL zwtl5^`>VuUS6pBC=U+s}`FO79j^9(Xwij)+V!hCP{zhNbg$)mOh$yZo7ZS~BTT>ab zw{LNS>ueVh`zN{{*}6_b`;-n{IVY;{!lw1h?PiZV@(ME>4erGYFNv9Z$gOMN^ZQ!I z{%IBNe>&@Tan=VJwk2PlT@twWDLCav|5A=ar5?R{(-|^U1d?7mulepHRCuIv!`5Yj z0#&T$y8Q|ndQv>vn5Rh+u@VqGL(C=%p9j zf*XZz28*%kv<KewWoDFIK54~JfddzUOV0k znQc`2k#R%j521ZhhE8U+8+`rL4``fTn&?=3;AfHeqTh~_HhM0+eO}2{_bXRfjIR^_ zs<|638$HRsu63_kS@Xw-?8Jx`NAJzSOo~fQYZ%zuT$k#F=^nJ2n9$FnKHE~PwElaN z^WOs%LO~nj4`$9}Qcd|B;kCw_3wSe4WcgXSR2;5;Y@^uZk@@=)Sy+~(~rDRR%?;C z^|!B~(pW5$x5DY+?t9I)$(qmqpI7v|y~K$*HzQ%Ycw5G$+QVNy=ez9x5W;U@6jGlP zvf^QKK&-at?%Eh;p0#t#c<E^k=%F%j0hs&a}+> zTs~Rku}aG7Ph43)7o5Mr;pcV6Zo(oK5x)zLGyHlJ)r?;RnfJE~9+r~6m2JS5yfdXE zI%Ua`WW`-i!m3t$DrS7RU`5(lKcV+Aoa#PL%kw`oH%9_1#OZhK*;ICchKlDU`kR z!Shkh6NWjSTv=PVCo=386nZQuaz6WBwfCx-Z(I{k$tFDNRjuh^$!T>?*z+sb>&T2p zpN}6rx2kMnOs~sa*1M;(LiV4Ku5P*V=cwhHcE|PV84b@TT>7)1`nH~7y&=ESs+Y4E zGrZ0hnR6_+>vfj|B-A_h)ZQaUmcNyHS7>`> z^^Sh?jh|UXZ4x}5zpwpecjUF+)K|`HJ0_i1IUjuCm8^^GL%mVzHeQgo0ZBiGTza*VFXaBRoY|)SH?JJ&!P7+DC`}sND_S9{Q zpL;Yf{V(R9r?_7AdQaJ*hrjtwov>rq%y=bYu(KsJjXgr5XhO(T&aD_-#4DX8ztmAC7Vtu15v2cHAwa}Vv~-|*S- z$413tQC}who0M*Ndb-tZjOfq(U(p1?Wec}8rS)rn(Dylo4y^n6}nrv2-WcjFp zH{iaO?~l?K2bap`wm)oKA8d2Pgy&0xNb=?fAu)>685e;f3!QEHanhtChSf&Q_i~ZShE~qzh6fg zeSa+dkRq>K80dCv!d_v&UP*(j8G>wWyA{v2+zjZtk+{^U_dy}cfwKZ?=Q6Ko+43COzW%X zg$%K~r!35HE_^37e~*Ew{XCY^yK*l}PZww`*9_sXZL-u(SK5})vDempN2XuGR)&sd zyT#`tHhxeJ`fA2t`Z+Re#D|Q#3sh634U+wbsz3+@{E-A(6M2B*jMlQTpxRU+D z|L(c-6?1Kb}t|;mWlYx1O5vKfG_R$GBG7@1%L`Gqx^!{j!rxm9euq zJc9$93RYyk)Dds`URSYf%aN5WbMqaR2OIyc_2E73o;t5_RrKP3oi&U$x38c4y^^_1 z|4>kV`t#H0_O(w;jkQ}*>trmS1{{3t`KM>!GT})ziaF=cH}2ncT=_+g;_@2nH|G`FS8^U@X>Y4ok{{^p zvVTImmxp?v;a!%}@`+3bC$6}2?{VS!+lKqL&s}o=ju9V|N7E|Trvdw1eg$=jwJ5hb z-|n_o=ew|5Q29+@hWXmY;76=&jw_y=YcLRbsyJu$hZr`7BkPjNg1Q>d*!uYtGu$g^ zZ<1Q?mgsa(eVL@m$>2Y?Q0}EqE|L6g!Ui4X0PaQ z^z_~K^BbQ8uhW`2ji*D?7cV<3*^3KGmcFbp*_q`5kX$-mYNi4`FJ9E*G#YcXpssuVDZ)|$L zM_$c){+GX#;kpV~9QX+|EZya<{;i zdM?r1*3Q!w^F}KKeeiLdcvvKazh8ZGq|b^r}SUBL)JY__V49Bc@7roH4g7~iY=%zV6pJJ z=wR>n&{lSWOS$*hs@#ZHE7 z%a>WVn}UDwsCedkI7GD^d#rjzlkI7}_+!QG8g=I*{=5rnoz}pdVihc*S;4t#Z@yaa zyR`xfxL0+VbDnf47P>jF=G30H$$>^kZEvaHl@VFr9?PrrZTrIhU!EcRYZYW=s|?K7*Hvy|3P`ZiVlz>VGdE3YLeyDAv1xR`9` zc-4S0qFdtGXNTHC`z)5%v3uSteEqY@Nw8&tU8&FBHE*?yo}GCgckWR1yWki1Hzv5< z>8yLabrRQ8&MD8|DkooCGx5&mLk|kxcq({kJ6KBVuC`BVJ!qCJdLTpaTUhAU9V`w8 zwN+UXk4nNlrc}mV7i@hmzW-{W+`g>!`UhhSh0nBg{Jkk{vL#(5H7sh$w__^H_zjNy ze&@`czIIVc4p-psa!bXlPZ*OQJ<~FJkQe4-?st68l>SL|Ggamu_`Gj_uPsc|}D0LlTqsPO{*)Nk}{EmLwl#XZc>gY0?fA zR)JYA(KbgS3ZKsUo_TKZFUjjN3wz!>xw2hlc&9Muw&NcQZ$Tr&+F!H6A2_ghJ~313 z1-kI->gvhCO}5!+JkV}HyI#jf*<^eQep5dYFJVAAB9wcH{c zj1pJk1m>Rj{r0OM|GQ%<*1GY|^4n*oct+iF5czg2_``zB5Bx;#zpYq*U*XD;w&N#m z#&(jy02!uG}6G_4h>+=Umy`hU!C{qi7vg1%pN%ghe7KWxuJ0;e`cF4_KLyXMq` z!3J^MPAfF+f}X0fae^TOHOaz=^Xy>&wDCwzX+eCr_o(BYC( zvPMIOLfW_NmZBb!gC`vR{7anQ_%NE&b)%?52)-NBIRj-u}td+{$ z>!>S;-$8=6cQWcW{l?bKQ7bmfT zIoeM5UcZ|A#2y2q#FG8)4b^%fMN$qEGQaFQ6O=aHpv`gTzrzcTzxBHqXCgTLx5CGq zmtVPxjqYqnakUiJ9BX}>_-}ot{)ndcM{TW4XY$VP>IcY!lmQ|w?0c<-E>FRlEW=py{B|~irj{a=e{U7iO5Qe>Wbg!{;Ifyi5e|qp~-L#@Bfpy!TI<}k=ob^k`;YYzG%M>#w={LSX zlS=Kc9GyF(H|W*F*jEAPH%BO%|Ka%gyN+e{ZdJSd?ce*`tIRG;l~DQleR5B$wCTwh ze#gY0K86qM{%WRA-1Ud|kg@fWwo2{fp0E7h zH@x}9#p|$DcT-V|)Rp4`PwQD0>=2E68o_@mNzSO@v>^MO=bzp$7YvS;IG{7zeaBOc z;N?edzdtysnkz@B{~^N}=R#LomG3Ec^8JDi#%7pjxHaZ8CoNq2!)Lo!*)&GOm^s-D ztKP(wyxKce^iup+4V$$+9z7`sjo(c%;+(U>h;HL`S&2L``=2tTp?Gske z)jGMy(l6wmrOgsQh64U53v}hg#Kuyp^eydJ#fPHh3evh$jx6q7aoOv`0=`4bUbh|=c%G$dxaZBO72VG9$CV9^ z?vkA{xvS5M?Z}%V)&O?Sokw=|O=`OR=9I-2=lHjV4Ia_PvnMV2f3_jwj?hJiKZWII zN*-xW(BbWymKiiN%kP<0)1?g?6c#52kGDsJxpJ2|zN)R?Hdj)hwBlTK zGRx`m$u~7`PQBT&F-r2AYfV1?o5TBZtc^QQn2203bAQtK(zVgG{@IEYhm=_o`TedH z@%mbAM((Q2i_F@eX0&`S7wWfWPGUQ9L!329;_EK?jVF9`)6bon;Nfy{*UzYyL)Uzi z(x&IDp4&L#fvkh#yPY}Q#tN_Y^eK8T@{&+(xH12#LYl*smGk;r)+~6b{P{K5tYJpw znVG#aPF!93;s%FW=b9UelRG+N(nXK^M!YD0c{=BakCIy9SB+z=x{Ho&-g~ZL#ot$< zIZc~Hu2htzuCn}OD$x|Jwwd2pfzNWcOVFSDk^-B%d9&vo#%9~2|PPxF99)95K|HB-0o$J5v{Kmk*z~JfX=d#Wz Gp$PyU^iMzl literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..3fe9e43eb24db6008fea85d86109a2173b9a5823 GIT binary patch literal 1956 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..d26b48284c379728d0db5a33e9531185477677b8 GIT binary patch literal 1789 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png new file mode 100644 index 0000000000000000000000000000000000000000..01cca6a5d591d1d62fd454aa9dbefe3107ff1aa1 GIT binary patch literal 7247 zcmeAS@N?(olHy`uVBq!ia0y~yV3+{H9Bd2>4A0#j?O{EbIz3^V4fqx9-BGW+dfY%*!ETM<-Kf1mj^S& z&dqQ8EaRaxN$k}^f6nKhAJ#}tx^Z5kQl!F<-9!KQ#%;_Vix?WL7)qO?!XC_&Irsap zrShD)Kdc+w|JFNLw6}c@e`s^&z=W_|&8a_{3(m259B==;_+bwJ^UFW{)-#yCWVqt$ z*T{7IM8Q4bbDt$EmNaeFKWoFAR+uw- zY`VU`@nFnR(^&_C8)cW=`<%_-yDVhld;aI&4_P)f9!a)8fAsumM!A=FejH<)P~{=s z_SygD{gg9X=kqG4Yz_ZWZO5p*chz0*{>sF7{^!rDR@*-Ls`O#S)VdIh{XDyuNEO$n zaQpH+Uo+)+(0pq-x6KbbQa+q5ICs!;noNUKcErnf8_X^a|z4e z|7Qy39lJ91?1J!BA7>Q&6J_33!jNTi^{RZ~j3o{alB+EG{T8Ho{4#M2t>Wx+Rc!kC z@K1^P3ZuyLk1O}42(nDzkoWo7@S^syM8l*#^%-5sAOGJMIA)%xA)OrJmY=R5mvd>M(#_+`7_{%Ei%$L(A-iP4aj{AKnvn;yuYTBl{t#bW z{JGYN+l^hWFjXokH(aTeIAWJC{bm1Tp;b0^C&Fg+uP9Ybm-E|Hyy(YOh9`g3T0UC@ zcDM5$sOE1g4!5|^@%;6}JGxm1{Vr-SOcIpyO!&ETMRK28meTqc{#M5n+on8?N@IGX zZLAin`q}E_?b)p&r(`6)DJKYq!~p2A<0!ItT+m1ffOZK|Y-YItzUiT?{%u<9IFskoLp?a)k-bN%g~ ze?R=g#9Vygs*ne}w{T9ETG>YS#yVR+rOk7;B+4{PPrkZsL8zwCx+6s`TY8ySF&$i~ zlRmxVX>sOKnKu2_&qB+*nBRs-8cPkHf&YQ=OC zw2~Qey`IZ(JfHP$Lt}<%jPN;WS6wY@nJV+Fl1GlYe9w~?9pn4sd&JAr>eq9huvMWI z8b?2V&$y(u_KGy?$&0fdY!=B5(t0I-=qLM|xM{|2+g{EQeVQ`ab@CNnhoJ6b^N#wh zN)lN3r{(kx!Q>B?Q#b#5U+`}NA6HeuwI&3fada>ii)n{PeV_~ z`NjUzc`-ZF=;l1d52iA6p2i;#U8}}%kbRa*hJU59#>SnB&9WOLkBgK(`Z3|`;-uj1 z?Vk@ziib_P{8?i1FUN5AMK2rHw-x91O`gEx5qiW(j_3LN%?0~?6a=FZIMR2vP2Ipc zslxfo|Jn$fNcX9MIk{(;O!I`c{+SuCP~jEv#r}|G#a%{)T??EYitb(5lk%lKdExu@ zUImYt)Edi{F>K;DU3BC}{U&K?m6F3#Z^g}W{v)4gHa$0R#ihmjPYA~LPqO>oS{x}T zbmjC)@2eFo?{=QaI+?w#k?G=wf_swZPA65^+A&`!)@<;3{%^$!*W^?$tJMuZ?oXM- z<$XMNtHj$$fl2v}2i8Xkw6AFTz52>m`$s#LzGIuP>%sL6UEQ15Ib2R%-OKz@^|r6d z;aJa>`)VR5RdS;QTi+U7DOH`gkISapSn92`;@>5V4p}i;S#w@361vACS9-QyGi&Dt zr>yH;r;h!X5LzIz@b=~g4^`cK=Y&hoQZF)BOmYpK%n;f5yj<$9iLXiIf>+9C4=Ws4 z<1Vv&NvkbWMSA$dtsJ-58`JHV+?q5cX!AOTMYDgh9Z6Dk@11(G_v=BUJ!Z!gLd}1= z-kGCe>L!%sXz^dQ{fbKGiYo`t3oUc-NZQZK@bb8tL10jb2**4#m-X+j7fs|n%Kl68 zk?5iYE}Hu*wQA~UO}j?Mj?Khx#IP3=bawSQhG zZhtEJxa6)@%ZKY5G8ctNHa@)m;gF4QZRkUrIkOG73T!xHa`dJgYvbF8RacjahAKLU z?fs+^)+zNob=?UL%{H#%*v%RfYJGkFbSzJu$({}}nav|l) zpO#DKx?KAo88T^_l7)NMw2k3cX4Idp5cuxQyYCE7Nua^XTwVvu^9)M6{^c(^5g_$O zUS95bXu)G|ws%wPET8|Bb-7yKvEtt$9=Wvb;ma<$zHM@}=CMi8PpneXGV;!Q@rXtH zC2K=EkKC>Mol>ovIj)CFy_5EwAnLJl4!3?+#fj88-|t7g`tb6(bB1LxM_iQgfhUpA z{B$&?itP2ivgs>#!T-Hh%c6`XF5Gm%cGkr!FHieOvHE;DJtgjZ6pQ%%E(YecI}!{2 zZx_3<***Sj%%l(hS7!g4wxV#dX2B1`8yTJ|3HB~e{2AV-tE_A7yWaL7Q~S+M**2H# zt=in5UU4chGF|08Q7D^y;o%`C#*6#&#hY^cBN-I8s;s?m#Ut*ViRa}0#jV}vvY#o; z>fH2<`+?Jcm*4fC!R~)7>eyy^bjFrnxGFk#(Yey}lFMn1O)*?zj{`OLt!5UyBR$bg z!*J`1jcuGwQ(wvG9jJJ6-GH_2WodwHcvqBC82iM8wefzfukZDJ=WXkHmEd^!z=6z9 zI*H7Q4;QlEjTE{QdVFEG4EOC9J|>M)%{Pu;JhQ;2*==Qzd4Jrynw0Q)x5KPTvbWF zJ6}8s%8LJeJA=7_Pw~d}B!wrh`CmjxtedXbU8}R?;?j=R6y5oX7wWyPC|y^cS?$Xo z!}uazSK;ZTL+@yGU;VRsGbi%qiM_cJ?-G&@hyE>=8avA28OcsZxH(#(1*yBC@ zMZd;eZKTRtMbxtVaxg=!FIFGCNC+m!w$Hp<*jAiRqT=Z(&6sGHxy|i2^M{)M) zn50^f=NV=EJAbM_v~CkWvUbv}+=%UL+;?N8^ zzEEjbe{br&>Ap?%Y*`i?rkv+skxQ5;W^mtxDtUgUjWb!gu}i`!>(X;fl0WuYKo<&n9WpKO8NTYxppmWgF{K1-;~x zx0eJKv0iD{`I@vj;9Sn>rMV71nx1>QZuf;QJ9S?@Yv&eDjjzkvUWqO#iweB3ll6FY z^p^#GUyYU(1f(r!oFHi65c=W_-F0wk|uG7+_)T%Jb&~l zPc%SfU6bIeZ2o{lbNA1-y|W_Jj=#Zs)uWe+Xs@qSLMZ z1}c{^FL|B7%&+k(#y!!`>E4<|#v|5oGQ9rJEF_j5E_kEd@ioVNPrCdg<@ z#W(x>WfklD7;@)LyN-6qrmXYY8+K`HzCRyu_VMCu3vsha`5k)R9>=a4#>rH!Ualxq z$C|Asn4ubA)b`8!`d2QdEjxwQePx*tC7FJpbZ&3ij>8+8er=q6hf#SGZ`@U_J6B5A z{MwxJ@{!}W<9Q+NF$*O3Op=`Xnb)jq-8;1drT(|o^cjA*Wjr@yI4&Ahp_nkgTBWJ% zVCb!{3hR7R?yKv*Y0&U|X_)kXog0h5-Hw+J9`^JFI{sBy=;pL0j?ZDmmZSQK@-AEB z7T%xkB;&u~L;ty^uA2!POkY^1IeW25+Ju~BaJg?j^DEy6o}6RTBV*_Ke){74_)GLn zr%y#wmR?>|rL^?=^{07%>eL*qw$A!-K!E+x-oI`MPwz3W{OBn*;j*hq`tP+p69gs; zO}Lu=s4?}a@@wu-LL2yfUU@Irc%-aZBWrsu655BP5LC)@!p|3@q_gLj)i7En?kEOKd-alO-OB6!yy#LYB+;i zDeLAf#o8L@N`A(7W(JzIzN}qyrmo~So)>bVgJIFKzVm4s|DR60+OYP>`Gr3ZMYg#y zf4O^lMqNvszZR;}3JsR`6~4dwd^X<_qzds;zuW zsslxGkE~AKHdjkYKIM_|droskm&FOfzUFU^Zk1ZdFjqV#>E4YJ?*#o58+YArxvMT9 zX=mBA>^ILPeKpUDt*Yy%iQD{ke04u8Au>2tb;9{WUruvPaFTHm6*#y5@V8f!bT;k2 zbBODUpwW(i?xh@VYfo62883e*=+@bJ8!#m+m=E@u1fbpLAl6g9?g%0hZZIklPs+q2x)WcEF* z=J3fk5RaN}C(oF=tt0)g?b-K9U2ZzLea1SrJFeSn1#o?wU2hxW7MeYOlO7XKa707D z-R8+R4IEDu-#Fa!-B^HcgXDhy$9I1C*RS3?$Ber*_Z)MwT|{5xO#8Or z>aRJCbEYl1dw1`Sd7aa4@Yh}so91-E`n3Py=c^_6IMjZho7!>jeyV22o5Cq!pIFQe zdeqoCF0)-Lvdic4-}9T_tyZ(n;HthM_xjyN^@ZKuL0_i#gjMtP{5~*gSH+yAdL_=~ z(-tN+<%VswGU{Kdv5)P8&P6juG26MqzE4k{U$m*1b8(88V(+sJH#ixyIZw;8w%N55 zZ?g6)+KXV?upQ?%Af1@Io5uBAGxYkR^_vf>g%Ymt`+Uyw=^~XU2*cimdeNN z0_j?=IW@sIUSxS?PfcC8zOAraRx9LhPt08*@0NLs0!^nc6!>W2?efEB#m2Q29qbQY z#YtS0o%-GRmt1ynO_0yCzm{SlSFc_dthp|HgY%<_#3Sa!@ToV-_cnj7nfh@-nAES* za?jkF@`6Ptjk8-PZkJhK%=7h==jlKz#zQMBIQC5|{kO&SlN|s0Ol|9PN*n$zlk`Z9 z>AKsSptf>%WW|epNB>2#?&{3VIUdt6<&?pMD{UKkQ>-59zH45*;rs=qW!~LF-gjd{ z9kU(_vOH>Q7Qb@-&|*HF5dU3$x&_O3N=bA5_IU0c{vqMp!yjK}-mS=x7y70r^L=sR z)5K{%{&G2pXNc}l_2{)0sNE*{LT+)^9_EHE40qNiZrqtx9EvD`JTYUdy`LbnB{Y)!npfYtz;{3}0hyl6JAL>~A&bxX(ZD zqea2Wm9cjfTUg5+baRrb!(XhNA}**pFD21$9@E#)Qj;aD1-AcUSTeC;VU4<3tK|~O z`|_7=U3-yS$@QtKKWoDUjnc$rab5Y*S<_RRE-A>Wcqg(~O0AwaX^;3p+4m{hHHHU1 zfn~W)tkQkz(7byTzV6ZhD@7sLoyq<~{XcK8XikF&z+o+G@p6+SsTk z=p31CxP^7kMoG>0r)R!sQ{yRAYYg%7X8X0`%BqkY&0eG5`z8w?G7C0;z7m#|>Mi-U)^YDR5)aqvi@!8vv1cyp9utam#(cKqQ?oXQRb?ca<$so6}Cz3wBQ5K$%yPJRzFDDFuA3uDXz_!XWm2cv*6XkPHs|>UwuP)` zO&1;0loC;NwPep=c;=Dv@wh@xz}r=M>w6g%?0oUWPS!lBq2v6s_ly(74%)^a4^rCp z*Z*f-tgb;_t!{p3QJ(?YP6R>UDEOZA=u)v@a}cZL%hru&W;EcF>L$bbP3?!G<~S+(yB_e9Mn+ zIWn8AG=1?pJJ#Jtwxv3=20as-^S{7*{`@71T(7onxp-mzitAO0B_E{=K8B|Gzj&AJ zSsY%e-oJ6d$$v7XNy)lLOoaZ*>X<3>9{U)v<%y_a?3p%+T?;QpB;E+=+nyuYUz@g{ z@k2?LT*Nekquy)89WPA3^TRj5eW}P@Pv5yVZVQ!%&>=bn2Zx$AAA*5rVo&1YFo{E^=B`s0izJEc!X+q;%;-0|paY=lK!`13n^ z*j{|S!?^yr$GPt3EPprNh6=q9Hf6dL! z^XKB%H7SnX`}N%xO?Tir$<(vo$h+hoYv{x5SR0nxmN$((x)>EsR7Z)r&J=v^8*5%> z>>RiKYu>TCOh?C^I#$o(3O3)@EI9pDj#**f=a0;;rnX7njwx*5NSEGKvBte9)U6^) z+4Q7I+to=kyF~9Nyy~9cUi8yGKjTF}%a=-qDKYD{nLBz_8kx4e|8uH?eb&|&1u_w> zi?_6Yw{lS7nK#KHpt!4S{xYL?{hF1#xZYX6|6wSw?pH+EVl}Q+Ig!2Dug$d9TvxdH z$>_!E?bla!w-@dH@1nd$K8;tx$5ym`v!7&B=sZ57Cl^nAi^|nV+0zkvR;+NpcF*?O z?DEN1rH-;K5?$K$YhV0vJ-OxCE8FjPmJ2UmcI55N6V9cNO4}aZVcNFw9rvw68E))< z|F!LXvbkwFkMiHNCEh9JE7rL&3yAOEQd$}qYh$ym_OhuI!?uWBQ@yS=B=XeN$xm9o z?OdY%!Pe*ZO{bPhf96{7J!t>Z*$KZr+%>A#N8e{_F3$96GC94j=QCpqSMcoB${Ncb zN1REQx_#_+%KtU(>PN1gJj$?O{$fLme(_wVj7N6dtjo>|pE{vkEo`18xcb@}u?x2U zQ^E?p%1&!FS1n{Wo)8){=bV)Kij0}Sbwv7T5osjYHnlctGh2U7xHGE_fI>v#7FY%)0^Ko1K8z)q-OJ| z7)z-i=$01Wn0nc`P3c77nkzf!D?UxsGF+a0lY4_s!;_m~@7)4zH=5aH{(q_^cR_f9 z%j1g%2aPW{JU-RPk~8Tz!yL60^JgY7&3YrPlk`=SOc3RK=0wE2{4zGxb@h)o7H<{#HU8E)?%~qDLH2B+S z!>eE_9mLz5XfC_dv$LV}XT`|{TKtRD-UJ5NA8T$lVVV4?;jP7TF^^e)+bpKN|JJMT z7FD$Arp1n%>4!H<9lyfH_&{KfRn}yuNpDQ2?OA)sHoob-$1B5&zvCQ^Z}pwkb#Z&9 zNAcWE7aK1No8MiVrSePc1_yUSat~_*n<0Zt6IaH?S%#d4<)oz<6=rVg{H}J*Ld&2; zZsM(T4u_I@UPqU5UyoV1kI`Mu_T2&J8e7+&0{8v*^1l1CXUeLnOdW3p+4B0cu3wtI z?e90`vNpe{aCrmMZ#7(7;pM=5u(-aAj73v`60mJq(&p7_J;|PZ3q}e8+9Rz?%CO_gTgj z;yuqF{5qbx)3${*?(J*yGmJ0x3N6)jQ)OLa_+#6?HTz^5?pc3}_*S_6Yi!MB#uL1I zS3b+;wEryjDK?c|!Q8^|&D0soW~e^<_C53EV}_J%&D&HagtVJ7-||#2|Hto;-#A}5 zRO|9Nl?k5@-T6_U%)aTf+DWJV+gryyLX+kJueORZ`Utwn8VdA zFKhU}oNWv91P|xwqHIn3rTH9YGCpZz4p_f>b}>WNf{o&3eDAk7evLir*Sb^mS=(g7 i^K5($d0+m0+|U1sElsAo`XmDb1B0ilpUXO@geCwP(~QUf literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..2f33153c384324a434705f6a16b2c142bf567031 GIT binary patch literal 22371 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..52b768662b77cb15ffc8cdff7d12c280defc5894 GIT binary patch literal 32929 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 Bi-Q0F literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png b/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png new file mode 100644 index 0000000000000000000000000000000000000000..0812eb17771f54005df85a9611ffc81dfbc31f54 GIT binary patch literal 10692 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 literal 0 HcmV?d00001 diff --git a/src-tauri/gen/android/app/src/main/res/values-night/themes.xml b/src-tauri/gen/android/app/src/main/res/values-night/themes.xml new file mode 100644 index 0000000..c5630d0 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values-night/themes.xml @@ -0,0 +1,6 @@ + + + + diff --git a/src-tauri/gen/android/app/src/main/res/values/colors.xml b/src-tauri/gen/android/app/src/main/res/values/colors.xml new file mode 100644 index 0000000..f8c6127 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/colors.xml @@ -0,0 +1,10 @@ + + + #FFBB86FC + #FF6200EE + #FF3700B3 + #FF03DAC5 + #FF018786 + #FF000000 + #FFFFFFFF + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml b/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml new file mode 100644 index 0000000..ea9c223 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/ic_launcher_background.xml @@ -0,0 +1,4 @@ + + + #fff + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/strings.xml b/src-tauri/gen/android/app/src/main/res/values/strings.xml new file mode 100644 index 0000000..6aa81d7 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/strings.xml @@ -0,0 +1,4 @@ + + Bocken + Bocken + \ No newline at end of file diff --git a/src-tauri/gen/android/app/src/main/res/values/themes.xml b/src-tauri/gen/android/app/src/main/res/values/themes.xml new file mode 100644 index 0000000..c5630d0 --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/values/themes.xml @@ -0,0 +1,6 @@ + + + + diff --git a/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml b/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml new file mode 100644 index 0000000..782d63b --- /dev/null +++ b/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/src-tauri/gen/android/build.gradle.kts b/src-tauri/gen/android/build.gradle.kts new file mode 100644 index 0000000..607240b --- /dev/null +++ b/src-tauri/gen/android/build.gradle.kts @@ -0,0 +1,22 @@ +buildscript { + repositories { + google() + mavenCentral() + } + dependencies { + classpath("com.android.tools.build:gradle:8.11.0") + classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.9.25") + } +} + +allprojects { + repositories { + google() + mavenCentral() + } +} + +tasks.register("clean").configure { + delete("build") +} + diff --git a/src-tauri/gen/android/buildSrc/build.gradle.kts b/src-tauri/gen/android/buildSrc/build.gradle.kts new file mode 100644 index 0000000..5c55bba --- /dev/null +++ b/src-tauri/gen/android/buildSrc/build.gradle.kts @@ -0,0 +1,23 @@ +plugins { + `kotlin-dsl` +} + +gradlePlugin { + plugins { + create("pluginsForCoolKids") { + id = "rust" + implementationClass = "RustPlugin" + } + } +} + +repositories { + google() + mavenCentral() +} + +dependencies { + compileOnly(gradleApi()) + implementation("com.android.tools.build:gradle:8.11.0") +} + diff --git a/src-tauri/gen/android/buildSrc/src/main/java/org/bocken/app/kotlin/BuildTask.kt b/src-tauri/gen/android/buildSrc/src/main/java/org/bocken/app/kotlin/BuildTask.kt new file mode 100644 index 0000000..f764e2a --- /dev/null +++ b/src-tauri/gen/android/buildSrc/src/main/java/org/bocken/app/kotlin/BuildTask.kt @@ -0,0 +1,68 @@ +import java.io.File +import org.apache.tools.ant.taskdefs.condition.Os +import org.gradle.api.DefaultTask +import org.gradle.api.GradleException +import org.gradle.api.logging.LogLevel +import org.gradle.api.tasks.Input +import org.gradle.api.tasks.TaskAction + +open class BuildTask : DefaultTask() { + @Input + var rootDirRel: String? = null + @Input + var target: String? = null + @Input + var release: Boolean? = null + + @TaskAction + fun assemble() { + val executable = """pnpm"""; + try { + runTauriCli(executable) + } catch (e: Exception) { + if (Os.isFamily(Os.FAMILY_WINDOWS)) { + // Try different Windows-specific extensions + val fallbacks = listOf( + "$executable.exe", + "$executable.cmd", + "$executable.bat", + ) + + var lastException: Exception = e + for (fallback in fallbacks) { + try { + runTauriCli(fallback) + return + } catch (fallbackException: Exception) { + lastException = fallbackException + } + } + throw lastException + } else { + throw e; + } + } + } + + fun runTauriCli(executable: String) { + val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null") + val target = target ?: throw GradleException("target cannot be null") + val release = release ?: throw GradleException("release cannot be null") + val args = listOf("tauri", "android", "android-studio-script"); + + project.exec { + workingDir(File(project.projectDir, rootDirRel)) + executable(executable) + args(args) + if (project.logger.isEnabled(LogLevel.DEBUG)) { + args("-vv") + } else if (project.logger.isEnabled(LogLevel.INFO)) { + args("-v") + } + if (release) { + args("--release") + } + args(listOf("--target", target)) + }.assertNormalExitValue() + } +} \ No newline at end of file diff --git a/src-tauri/gen/android/buildSrc/src/main/java/org/bocken/app/kotlin/RustPlugin.kt b/src-tauri/gen/android/buildSrc/src/main/java/org/bocken/app/kotlin/RustPlugin.kt new file mode 100644 index 0000000..4aa7fca --- /dev/null +++ b/src-tauri/gen/android/buildSrc/src/main/java/org/bocken/app/kotlin/RustPlugin.kt @@ -0,0 +1,85 @@ +import com.android.build.api.dsl.ApplicationExtension +import org.gradle.api.DefaultTask +import org.gradle.api.Plugin +import org.gradle.api.Project +import org.gradle.kotlin.dsl.configure +import org.gradle.kotlin.dsl.get + +const val TASK_GROUP = "rust" + +open class Config { + lateinit var rootDirRel: String +} + +open class RustPlugin : Plugin { + private lateinit var config: Config + + override fun apply(project: Project) = with(project) { + config = extensions.create("rust", Config::class.java) + + val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64"); + val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList + + val defaultArchList = listOf("arm64", "arm", "x86", "x86_64"); + val archList = (findProperty("archList") as? String)?.split(',') ?: defaultArchList + + val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64") + + extensions.configure { + @Suppress("UnstableApiUsage") + flavorDimensions.add("abi") + productFlavors { + create("universal") { + dimension = "abi" + ndk { + abiFilters += abiList + } + } + defaultArchList.forEachIndexed { index, arch -> + create(arch) { + dimension = "abi" + ndk { + abiFilters.add(defaultAbiList[index]) + } + } + } + } + } + + afterEvaluate { + for (profile in listOf("debug", "release")) { + val profileCapitalized = profile.replaceFirstChar { it.uppercase() } + val buildTask = tasks.maybeCreate( + "rustBuildUniversal$profileCapitalized", + DefaultTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for all targets" + } + + tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask) + + for (targetPair in targetsList.withIndex()) { + val targetName = targetPair.value + val targetArch = archList[targetPair.index] + val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() } + val targetBuildTask = project.tasks.maybeCreate( + "rustBuild$targetArchCapitalized$profileCapitalized", + BuildTask::class.java + ).apply { + group = TASK_GROUP + description = "Build dynamic library in $profile mode for $targetArch" + rootDirRel = config.rootDirRel + target = targetName + release = profile == "release" + } + + buildTask.dependsOn(targetBuildTask) + tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn( + targetBuildTask + ) + } + } + } + } +} \ No newline at end of file diff --git a/src-tauri/gen/android/gradle.properties b/src-tauri/gen/android/gradle.properties new file mode 100644 index 0000000..2a7ec69 --- /dev/null +++ b/src-tauri/gen/android/gradle.properties @@ -0,0 +1,24 @@ +# Project-wide Gradle settings. +# IDE (e.g. Android Studio) users: +# Gradle settings configured through the IDE *will override* +# any settings specified in this file. +# For more details on how to configure your build environment visit +# http://www.gradle.org/docs/current/userguide/build_environment.html +# Specifies the JVM arguments used for the daemon process. +# The setting is particularly useful for tweaking memory settings. +org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8 +# When configured, Gradle will run in incubating parallel mode. +# This option should only be used with decoupled projects. More details, visit +# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects +# org.gradle.parallel=true +# AndroidX package structure to make it clearer which packages are bundled with the +# Android operating system, and which are packaged with your app"s APK +# https://developer.android.com/topic/libraries/support-library/androidx-rn +android.useAndroidX=true +# Kotlin code style for this project: "official" or "obsolete": +kotlin.code.style=official +# Enables namespacing of each library's R class so that its R class includes only the +# resources declared in the library itself and none from the library's dependencies, +# thereby reducing the size of the R class for that library +android.nonTransitiveRClass=true +android.nonFinalResIds=false \ No newline at end of file diff --git a/src-tauri/gen/android/settings.gradle b/src-tauri/gen/android/settings.gradle new file mode 100644 index 0000000..3939116 --- /dev/null +++ b/src-tauri/gen/android/settings.gradle @@ -0,0 +1,3 @@ +include ':app' + +apply from: 'tauri.settings.gradle' diff --git a/src-tauri/gen/schemas/acl-manifests.json b/src-tauri/gen/schemas/acl-manifests.json new file mode 100644 index 0000000..af0301d --- /dev/null +++ b/src-tauri/gen/schemas/acl-manifests.json @@ -0,0 +1 @@ +{"core":{"default_permission":{"identifier":"default","description":"Default core plugins set.","permissions":["core:path:default","core:event:default","core:window:default","core:webview:default","core:app:default","core:image:default","core:resources:default","core:menu:default","core:tray:default"]},"permissions":{},"permission_sets":{},"global_scope_schema":null},"core:app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version","allow-identifier","allow-bundle-type","allow-register-listener","allow-remove-listener"]},"permissions":{"allow-app-hide":{"identifier":"allow-app-hide","description":"Enables the app_hide command without any pre-configured scope.","commands":{"allow":["app_hide"],"deny":[]}},"allow-app-show":{"identifier":"allow-app-show","description":"Enables the app_show command without any pre-configured scope.","commands":{"allow":["app_show"],"deny":[]}},"allow-bundle-type":{"identifier":"allow-bundle-type","description":"Enables the bundle_type command without any pre-configured scope.","commands":{"allow":["bundle_type"],"deny":[]}},"allow-default-window-icon":{"identifier":"allow-default-window-icon","description":"Enables the default_window_icon command without any pre-configured scope.","commands":{"allow":["default_window_icon"],"deny":[]}},"allow-fetch-data-store-identifiers":{"identifier":"allow-fetch-data-store-identifiers","description":"Enables the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":["fetch_data_store_identifiers"],"deny":[]}},"allow-identifier":{"identifier":"allow-identifier","description":"Enables the identifier command without any pre-configured scope.","commands":{"allow":["identifier"],"deny":[]}},"allow-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"deny":[]}},"allow-register-listener":{"identifier":"allow-register-listener","description":"Enables the register_listener command without any pre-configured scope.","commands":{"allow":["register_listener"],"deny":[]}},"allow-remove-data-store":{"identifier":"allow-remove-data-store","description":"Enables the remove_data_store command without any pre-configured scope.","commands":{"allow":["remove_data_store"],"deny":[]}},"allow-remove-listener":{"identifier":"allow-remove-listener","description":"Enables the remove_listener command without any pre-configured scope.","commands":{"allow":["remove_listener"],"deny":[]}},"allow-set-app-theme":{"identifier":"allow-set-app-theme","description":"Enables the set_app_theme command without any pre-configured scope.","commands":{"allow":["set_app_theme"],"deny":[]}},"allow-set-dock-visibility":{"identifier":"allow-set-dock-visibility","description":"Enables the set_dock_visibility command without any pre-configured scope.","commands":{"allow":["set_dock_visibility"],"deny":[]}},"allow-tauri-version":{"identifier":"allow-tauri-version","description":"Enables the tauri_version command without any pre-configured scope.","commands":{"allow":["tauri_version"],"deny":[]}},"allow-version":{"identifier":"allow-version","description":"Enables the version command without any pre-configured scope.","commands":{"allow":["version"],"deny":[]}},"deny-app-hide":{"identifier":"deny-app-hide","description":"Denies the app_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["app_hide"]}},"deny-app-show":{"identifier":"deny-app-show","description":"Denies the app_show command without any pre-configured scope.","commands":{"allow":[],"deny":["app_show"]}},"deny-bundle-type":{"identifier":"deny-bundle-type","description":"Denies the bundle_type command without any pre-configured scope.","commands":{"allow":[],"deny":["bundle_type"]}},"deny-default-window-icon":{"identifier":"deny-default-window-icon","description":"Denies the default_window_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["default_window_icon"]}},"deny-fetch-data-store-identifiers":{"identifier":"deny-fetch-data-store-identifiers","description":"Denies the fetch_data_store_identifiers command without any pre-configured scope.","commands":{"allow":[],"deny":["fetch_data_store_identifiers"]}},"deny-identifier":{"identifier":"deny-identifier","description":"Denies the identifier command without any pre-configured scope.","commands":{"allow":[],"deny":["identifier"]}},"deny-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"deny-register-listener":{"identifier":"deny-register-listener","description":"Denies the register_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["register_listener"]}},"deny-remove-data-store":{"identifier":"deny-remove-data-store","description":"Denies the remove_data_store command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_data_store"]}},"deny-remove-listener":{"identifier":"deny-remove-listener","description":"Denies the remove_listener command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_listener"]}},"deny-set-app-theme":{"identifier":"deny-set-app-theme","description":"Denies the set_app_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_app_theme"]}},"deny-set-dock-visibility":{"identifier":"deny-set-dock-visibility","description":"Denies the set_dock_visibility command without any pre-configured scope.","commands":{"allow":[],"deny":["set_dock_visibility"]}},"deny-tauri-version":{"identifier":"deny-tauri-version","description":"Denies the tauri_version command without any pre-configured scope.","commands":{"allow":[],"deny":["tauri_version"]}},"deny-version":{"identifier":"deny-version","description":"Denies the version command without any pre-configured scope.","commands":{"allow":[],"deny":["version"]}}},"permission_sets":{},"global_scope_schema":null},"core:event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-listen","allow-unlisten","allow-emit","allow-emit-to"]},"permissions":{"allow-emit":{"identifier":"allow-emit","description":"Enables the emit command without any pre-configured scope.","commands":{"allow":["emit"],"deny":[]}},"allow-emit-to":{"identifier":"allow-emit-to","description":"Enables the emit_to command without any pre-configured scope.","commands":{"allow":["emit_to"],"deny":[]}},"allow-listen":{"identifier":"allow-listen","description":"Enables the listen command without any pre-configured scope.","commands":{"allow":["listen"],"deny":[]}},"allow-unlisten":{"identifier":"allow-unlisten","description":"Enables the unlisten command without any pre-configured scope.","commands":{"allow":["unlisten"],"deny":[]}},"deny-emit":{"identifier":"deny-emit","description":"Denies the emit command without any pre-configured scope.","commands":{"allow":[],"deny":["emit"]}},"deny-emit-to":{"identifier":"deny-emit-to","description":"Denies the emit_to command without any pre-configured scope.","commands":{"allow":[],"deny":["emit_to"]}},"deny-listen":{"identifier":"deny-listen","description":"Denies the listen command without any pre-configured scope.","commands":{"allow":[],"deny":["listen"]}},"deny-unlisten":{"identifier":"deny-unlisten","description":"Denies the unlisten command without any pre-configured scope.","commands":{"allow":[],"deny":["unlisten"]}}},"permission_sets":{},"global_scope_schema":null},"core:image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-from-bytes","allow-from-path","allow-rgba","allow-size"]},"permissions":{"allow-from-bytes":{"identifier":"allow-from-bytes","description":"Enables the from_bytes command without any pre-configured scope.","commands":{"allow":["from_bytes"],"deny":[]}},"allow-from-path":{"identifier":"allow-from-path","description":"Enables the from_path command without any pre-configured scope.","commands":{"allow":["from_path"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-rgba":{"identifier":"allow-rgba","description":"Enables the rgba command without any pre-configured scope.","commands":{"allow":["rgba"],"deny":[]}},"allow-size":{"identifier":"allow-size","description":"Enables the size command without any pre-configured scope.","commands":{"allow":["size"],"deny":[]}},"deny-from-bytes":{"identifier":"deny-from-bytes","description":"Denies the from_bytes command without any pre-configured scope.","commands":{"allow":[],"deny":["from_bytes"]}},"deny-from-path":{"identifier":"deny-from-path","description":"Denies the from_path command without any pre-configured scope.","commands":{"allow":[],"deny":["from_path"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-rgba":{"identifier":"deny-rgba","description":"Denies the rgba command without any pre-configured scope.","commands":{"allow":[],"deny":["rgba"]}},"deny-size":{"identifier":"deny-size","description":"Denies the size command without any pre-configured scope.","commands":{"allow":[],"deny":["size"]}}},"permission_sets":{},"global_scope_schema":null},"core:menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-append","allow-prepend","allow-insert","allow-remove","allow-remove-at","allow-items","allow-get","allow-popup","allow-create-default","allow-set-as-app-menu","allow-set-as-window-menu","allow-text","allow-set-text","allow-is-enabled","allow-set-enabled","allow-set-accelerator","allow-set-as-windows-menu-for-nsapp","allow-set-as-help-menu-for-nsapp","allow-is-checked","allow-set-checked","allow-set-icon"]},"permissions":{"allow-append":{"identifier":"allow-append","description":"Enables the append command without any pre-configured scope.","commands":{"allow":["append"],"deny":[]}},"allow-create-default":{"identifier":"allow-create-default","description":"Enables the create_default command without any pre-configured scope.","commands":{"allow":["create_default"],"deny":[]}},"allow-get":{"identifier":"allow-get","description":"Enables the get command without any pre-configured scope.","commands":{"allow":["get"],"deny":[]}},"allow-insert":{"identifier":"allow-insert","description":"Enables the insert command without any pre-configured scope.","commands":{"allow":["insert"],"deny":[]}},"allow-is-checked":{"identifier":"allow-is-checked","description":"Enables the is_checked command without any pre-configured scope.","commands":{"allow":["is_checked"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-items":{"identifier":"allow-items","description":"Enables the items command without any pre-configured scope.","commands":{"allow":["items"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-popup":{"identifier":"allow-popup","description":"Enables the popup command without any pre-configured scope.","commands":{"allow":["popup"],"deny":[]}},"allow-prepend":{"identifier":"allow-prepend","description":"Enables the prepend command without any pre-configured scope.","commands":{"allow":["prepend"],"deny":[]}},"allow-remove":{"identifier":"allow-remove","description":"Enables the remove command without any pre-configured scope.","commands":{"allow":["remove"],"deny":[]}},"allow-remove-at":{"identifier":"allow-remove-at","description":"Enables the remove_at command without any pre-configured scope.","commands":{"allow":["remove_at"],"deny":[]}},"allow-set-accelerator":{"identifier":"allow-set-accelerator","description":"Enables the set_accelerator command without any pre-configured scope.","commands":{"allow":["set_accelerator"],"deny":[]}},"allow-set-as-app-menu":{"identifier":"allow-set-as-app-menu","description":"Enables the set_as_app_menu command without any pre-configured scope.","commands":{"allow":["set_as_app_menu"],"deny":[]}},"allow-set-as-help-menu-for-nsapp":{"identifier":"allow-set-as-help-menu-for-nsapp","description":"Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_help_menu_for_nsapp"],"deny":[]}},"allow-set-as-window-menu":{"identifier":"allow-set-as-window-menu","description":"Enables the set_as_window_menu command without any pre-configured scope.","commands":{"allow":["set_as_window_menu"],"deny":[]}},"allow-set-as-windows-menu-for-nsapp":{"identifier":"allow-set-as-windows-menu-for-nsapp","description":"Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":["set_as_windows_menu_for_nsapp"],"deny":[]}},"allow-set-checked":{"identifier":"allow-set-checked","description":"Enables the set_checked command without any pre-configured scope.","commands":{"allow":["set_checked"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-text":{"identifier":"allow-set-text","description":"Enables the set_text command without any pre-configured scope.","commands":{"allow":["set_text"],"deny":[]}},"allow-text":{"identifier":"allow-text","description":"Enables the text command without any pre-configured scope.","commands":{"allow":["text"],"deny":[]}},"deny-append":{"identifier":"deny-append","description":"Denies the append command without any pre-configured scope.","commands":{"allow":[],"deny":["append"]}},"deny-create-default":{"identifier":"deny-create-default","description":"Denies the create_default command without any pre-configured scope.","commands":{"allow":[],"deny":["create_default"]}},"deny-get":{"identifier":"deny-get","description":"Denies the get command without any pre-configured scope.","commands":{"allow":[],"deny":["get"]}},"deny-insert":{"identifier":"deny-insert","description":"Denies the insert command without any pre-configured scope.","commands":{"allow":[],"deny":["insert"]}},"deny-is-checked":{"identifier":"deny-is-checked","description":"Denies the is_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["is_checked"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-items":{"identifier":"deny-items","description":"Denies the items command without any pre-configured scope.","commands":{"allow":[],"deny":["items"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-popup":{"identifier":"deny-popup","description":"Denies the popup command without any pre-configured scope.","commands":{"allow":[],"deny":["popup"]}},"deny-prepend":{"identifier":"deny-prepend","description":"Denies the prepend command without any pre-configured scope.","commands":{"allow":[],"deny":["prepend"]}},"deny-remove":{"identifier":"deny-remove","description":"Denies the remove command without any pre-configured scope.","commands":{"allow":[],"deny":["remove"]}},"deny-remove-at":{"identifier":"deny-remove-at","description":"Denies the remove_at command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_at"]}},"deny-set-accelerator":{"identifier":"deny-set-accelerator","description":"Denies the set_accelerator command without any pre-configured scope.","commands":{"allow":[],"deny":["set_accelerator"]}},"deny-set-as-app-menu":{"identifier":"deny-set-as-app-menu","description":"Denies the set_as_app_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_app_menu"]}},"deny-set-as-help-menu-for-nsapp":{"identifier":"deny-set-as-help-menu-for-nsapp","description":"Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_help_menu_for_nsapp"]}},"deny-set-as-window-menu":{"identifier":"deny-set-as-window-menu","description":"Denies the set_as_window_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_window_menu"]}},"deny-set-as-windows-menu-for-nsapp":{"identifier":"deny-set-as-windows-menu-for-nsapp","description":"Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.","commands":{"allow":[],"deny":["set_as_windows_menu_for_nsapp"]}},"deny-set-checked":{"identifier":"deny-set-checked","description":"Denies the set_checked command without any pre-configured scope.","commands":{"allow":[],"deny":["set_checked"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-text":{"identifier":"deny-set-text","description":"Denies the set_text command without any pre-configured scope.","commands":{"allow":[],"deny":["set_text"]}},"deny-text":{"identifier":"deny-text","description":"Denies the text command without any pre-configured scope.","commands":{"allow":[],"deny":["text"]}}},"permission_sets":{},"global_scope_schema":null},"core:path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-resolve-directory","allow-resolve","allow-normalize","allow-join","allow-dirname","allow-extname","allow-basename","allow-is-absolute"]},"permissions":{"allow-basename":{"identifier":"allow-basename","description":"Enables the basename command without any pre-configured scope.","commands":{"allow":["basename"],"deny":[]}},"allow-dirname":{"identifier":"allow-dirname","description":"Enables the dirname command without any pre-configured scope.","commands":{"allow":["dirname"],"deny":[]}},"allow-extname":{"identifier":"allow-extname","description":"Enables the extname command without any pre-configured scope.","commands":{"allow":["extname"],"deny":[]}},"allow-is-absolute":{"identifier":"allow-is-absolute","description":"Enables the is_absolute command without any pre-configured scope.","commands":{"allow":["is_absolute"],"deny":[]}},"allow-join":{"identifier":"allow-join","description":"Enables the join command without any pre-configured scope.","commands":{"allow":["join"],"deny":[]}},"allow-normalize":{"identifier":"allow-normalize","description":"Enables the normalize command without any pre-configured scope.","commands":{"allow":["normalize"],"deny":[]}},"allow-resolve":{"identifier":"allow-resolve","description":"Enables the resolve command without any pre-configured scope.","commands":{"allow":["resolve"],"deny":[]}},"allow-resolve-directory":{"identifier":"allow-resolve-directory","description":"Enables the resolve_directory command without any pre-configured scope.","commands":{"allow":["resolve_directory"],"deny":[]}},"deny-basename":{"identifier":"deny-basename","description":"Denies the basename command without any pre-configured scope.","commands":{"allow":[],"deny":["basename"]}},"deny-dirname":{"identifier":"deny-dirname","description":"Denies the dirname command without any pre-configured scope.","commands":{"allow":[],"deny":["dirname"]}},"deny-extname":{"identifier":"deny-extname","description":"Denies the extname command without any pre-configured scope.","commands":{"allow":[],"deny":["extname"]}},"deny-is-absolute":{"identifier":"deny-is-absolute","description":"Denies the is_absolute command without any pre-configured scope.","commands":{"allow":[],"deny":["is_absolute"]}},"deny-join":{"identifier":"deny-join","description":"Denies the join command without any pre-configured scope.","commands":{"allow":[],"deny":["join"]}},"deny-normalize":{"identifier":"deny-normalize","description":"Denies the normalize command without any pre-configured scope.","commands":{"allow":[],"deny":["normalize"]}},"deny-resolve":{"identifier":"deny-resolve","description":"Denies the resolve command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve"]}},"deny-resolve-directory":{"identifier":"deny-resolve-directory","description":"Denies the resolve_directory command without any pre-configured scope.","commands":{"allow":[],"deny":["resolve_directory"]}}},"permission_sets":{},"global_scope_schema":null},"core:resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-close"]},"permissions":{"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}}},"permission_sets":{},"global_scope_schema":null},"core:tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin, which enables all commands.","permissions":["allow-new","allow-get-by-id","allow-remove-by-id","allow-set-icon","allow-set-menu","allow-set-tooltip","allow-set-title","allow-set-visible","allow-set-temp-dir-path","allow-set-icon-as-template","allow-set-show-menu-on-left-click"]},"permissions":{"allow-get-by-id":{"identifier":"allow-get-by-id","description":"Enables the get_by_id command without any pre-configured scope.","commands":{"allow":["get_by_id"],"deny":[]}},"allow-new":{"identifier":"allow-new","description":"Enables the new command without any pre-configured scope.","commands":{"allow":["new"],"deny":[]}},"allow-remove-by-id":{"identifier":"allow-remove-by-id","description":"Enables the remove_by_id command without any pre-configured scope.","commands":{"allow":["remove_by_id"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-icon-as-template":{"identifier":"allow-set-icon-as-template","description":"Enables the set_icon_as_template command without any pre-configured scope.","commands":{"allow":["set_icon_as_template"],"deny":[]}},"allow-set-menu":{"identifier":"allow-set-menu","description":"Enables the set_menu command without any pre-configured scope.","commands":{"allow":["set_menu"],"deny":[]}},"allow-set-show-menu-on-left-click":{"identifier":"allow-set-show-menu-on-left-click","description":"Enables the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":["set_show_menu_on_left_click"],"deny":[]}},"allow-set-temp-dir-path":{"identifier":"allow-set-temp-dir-path","description":"Enables the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":["set_temp_dir_path"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-tooltip":{"identifier":"allow-set-tooltip","description":"Enables the set_tooltip command without any pre-configured scope.","commands":{"allow":["set_tooltip"],"deny":[]}},"allow-set-visible":{"identifier":"allow-set-visible","description":"Enables the set_visible command without any pre-configured scope.","commands":{"allow":["set_visible"],"deny":[]}},"deny-get-by-id":{"identifier":"deny-get-by-id","description":"Denies the get_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["get_by_id"]}},"deny-new":{"identifier":"deny-new","description":"Denies the new command without any pre-configured scope.","commands":{"allow":[],"deny":["new"]}},"deny-remove-by-id":{"identifier":"deny-remove-by-id","description":"Denies the remove_by_id command without any pre-configured scope.","commands":{"allow":[],"deny":["remove_by_id"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-icon-as-template":{"identifier":"deny-set-icon-as-template","description":"Denies the set_icon_as_template command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon_as_template"]}},"deny-set-menu":{"identifier":"deny-set-menu","description":"Denies the set_menu command without any pre-configured scope.","commands":{"allow":[],"deny":["set_menu"]}},"deny-set-show-menu-on-left-click":{"identifier":"deny-set-show-menu-on-left-click","description":"Denies the set_show_menu_on_left_click command without any pre-configured scope.","commands":{"allow":[],"deny":["set_show_menu_on_left_click"]}},"deny-set-temp-dir-path":{"identifier":"deny-set-temp-dir-path","description":"Denies the set_temp_dir_path command without any pre-configured scope.","commands":{"allow":[],"deny":["set_temp_dir_path"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-tooltip":{"identifier":"deny-set-tooltip","description":"Denies the set_tooltip command without any pre-configured scope.","commands":{"allow":[],"deny":["set_tooltip"]}},"deny-set-visible":{"identifier":"deny-set-visible","description":"Denies the set_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible"]}}},"permission_sets":{},"global_scope_schema":null},"core:webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-webviews","allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"allow-clear-all-browsing-data":{"identifier":"allow-clear-all-browsing-data","description":"Enables the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":["clear_all_browsing_data"],"deny":[]}},"allow-create-webview":{"identifier":"allow-create-webview","description":"Enables the create_webview command without any pre-configured scope.","commands":{"allow":["create_webview"],"deny":[]}},"allow-create-webview-window":{"identifier":"allow-create-webview-window","description":"Enables the create_webview_window command without any pre-configured scope.","commands":{"allow":["create_webview_window"],"deny":[]}},"allow-get-all-webviews":{"identifier":"allow-get-all-webviews","description":"Enables the get_all_webviews command without any pre-configured scope.","commands":{"allow":["get_all_webviews"],"deny":[]}},"allow-internal-toggle-devtools":{"identifier":"allow-internal-toggle-devtools","description":"Enables the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":["internal_toggle_devtools"],"deny":[]}},"allow-print":{"identifier":"allow-print","description":"Enables the print command without any pre-configured scope.","commands":{"allow":["print"],"deny":[]}},"allow-reparent":{"identifier":"allow-reparent","description":"Enables the reparent command without any pre-configured scope.","commands":{"allow":["reparent"],"deny":[]}},"allow-set-webview-auto-resize":{"identifier":"allow-set-webview-auto-resize","description":"Enables the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":["set_webview_auto_resize"],"deny":[]}},"allow-set-webview-background-color":{"identifier":"allow-set-webview-background-color","description":"Enables the set_webview_background_color command without any pre-configured scope.","commands":{"allow":["set_webview_background_color"],"deny":[]}},"allow-set-webview-focus":{"identifier":"allow-set-webview-focus","description":"Enables the set_webview_focus command without any pre-configured scope.","commands":{"allow":["set_webview_focus"],"deny":[]}},"allow-set-webview-position":{"identifier":"allow-set-webview-position","description":"Enables the set_webview_position command without any pre-configured scope.","commands":{"allow":["set_webview_position"],"deny":[]}},"allow-set-webview-size":{"identifier":"allow-set-webview-size","description":"Enables the set_webview_size command without any pre-configured scope.","commands":{"allow":["set_webview_size"],"deny":[]}},"allow-set-webview-zoom":{"identifier":"allow-set-webview-zoom","description":"Enables the set_webview_zoom command without any pre-configured scope.","commands":{"allow":["set_webview_zoom"],"deny":[]}},"allow-webview-close":{"identifier":"allow-webview-close","description":"Enables the webview_close command without any pre-configured scope.","commands":{"allow":["webview_close"],"deny":[]}},"allow-webview-hide":{"identifier":"allow-webview-hide","description":"Enables the webview_hide command without any pre-configured scope.","commands":{"allow":["webview_hide"],"deny":[]}},"allow-webview-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"deny":[]}},"allow-webview-show":{"identifier":"allow-webview-show","description":"Enables the webview_show command without any pre-configured scope.","commands":{"allow":["webview_show"],"deny":[]}},"allow-webview-size":{"identifier":"allow-webview-size","description":"Enables the webview_size command without any pre-configured scope.","commands":{"allow":["webview_size"],"deny":[]}},"deny-clear-all-browsing-data":{"identifier":"deny-clear-all-browsing-data","description":"Denies the clear_all_browsing_data command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_all_browsing_data"]}},"deny-create-webview":{"identifier":"deny-create-webview","description":"Denies the create_webview command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview"]}},"deny-create-webview-window":{"identifier":"deny-create-webview-window","description":"Denies the create_webview_window command without any pre-configured scope.","commands":{"allow":[],"deny":["create_webview_window"]}},"deny-get-all-webviews":{"identifier":"deny-get-all-webviews","description":"Denies the get_all_webviews command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_webviews"]}},"deny-internal-toggle-devtools":{"identifier":"deny-internal-toggle-devtools","description":"Denies the internal_toggle_devtools command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_devtools"]}},"deny-print":{"identifier":"deny-print","description":"Denies the print command without any pre-configured scope.","commands":{"allow":[],"deny":["print"]}},"deny-reparent":{"identifier":"deny-reparent","description":"Denies the reparent command without any pre-configured scope.","commands":{"allow":[],"deny":["reparent"]}},"deny-set-webview-auto-resize":{"identifier":"deny-set-webview-auto-resize","description":"Denies the set_webview_auto_resize command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_auto_resize"]}},"deny-set-webview-background-color":{"identifier":"deny-set-webview-background-color","description":"Denies the set_webview_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_background_color"]}},"deny-set-webview-focus":{"identifier":"deny-set-webview-focus","description":"Denies the set_webview_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_focus"]}},"deny-set-webview-position":{"identifier":"deny-set-webview-position","description":"Denies the set_webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_position"]}},"deny-set-webview-size":{"identifier":"deny-set-webview-size","description":"Denies the set_webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_size"]}},"deny-set-webview-zoom":{"identifier":"deny-set-webview-zoom","description":"Denies the set_webview_zoom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_webview_zoom"]}},"deny-webview-close":{"identifier":"deny-webview-close","description":"Denies the webview_close command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_close"]}},"deny-webview-hide":{"identifier":"deny-webview-hide","description":"Denies the webview_hide command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_hide"]}},"deny-webview-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"deny-webview-show":{"identifier":"deny-webview-show","description":"Denies the webview_show command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_show"]}},"deny-webview-size":{"identifier":"deny-webview-size","description":"Denies the webview_size command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_size"]}}},"permission_sets":{},"global_scope_schema":null},"core:window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-get-all-windows","allow-scale-factor","allow-inner-position","allow-outer-position","allow-inner-size","allow-outer-size","allow-is-fullscreen","allow-is-minimized","allow-is-maximized","allow-is-focused","allow-is-decorated","allow-is-resizable","allow-is-maximizable","allow-is-minimizable","allow-is-closable","allow-is-visible","allow-is-enabled","allow-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","allow-is-always-on-top","allow-internal-toggle-maximize"]},"permissions":{"allow-available-monitors":{"identifier":"allow-available-monitors","description":"Enables the available_monitors command without any pre-configured scope.","commands":{"allow":["available_monitors"],"deny":[]}},"allow-center":{"identifier":"allow-center","description":"Enables the center command without any pre-configured scope.","commands":{"allow":["center"],"deny":[]}},"allow-close":{"identifier":"allow-close","description":"Enables the close command without any pre-configured scope.","commands":{"allow":["close"],"deny":[]}},"allow-create":{"identifier":"allow-create","description":"Enables the create command without any pre-configured scope.","commands":{"allow":["create"],"deny":[]}},"allow-current-monitor":{"identifier":"allow-current-monitor","description":"Enables the current_monitor command without any pre-configured scope.","commands":{"allow":["current_monitor"],"deny":[]}},"allow-cursor-position":{"identifier":"allow-cursor-position","description":"Enables the cursor_position command without any pre-configured scope.","commands":{"allow":["cursor_position"],"deny":[]}},"allow-destroy":{"identifier":"allow-destroy","description":"Enables the destroy command without any pre-configured scope.","commands":{"allow":["destroy"],"deny":[]}},"allow-get-all-windows":{"identifier":"allow-get-all-windows","description":"Enables the get_all_windows command without any pre-configured scope.","commands":{"allow":["get_all_windows"],"deny":[]}},"allow-hide":{"identifier":"allow-hide","description":"Enables the hide command without any pre-configured scope.","commands":{"allow":["hide"],"deny":[]}},"allow-inner-position":{"identifier":"allow-inner-position","description":"Enables the inner_position command without any pre-configured scope.","commands":{"allow":["inner_position"],"deny":[]}},"allow-inner-size":{"identifier":"allow-inner-size","description":"Enables the inner_size command without any pre-configured scope.","commands":{"allow":["inner_size"],"deny":[]}},"allow-internal-toggle-maximize":{"identifier":"allow-internal-toggle-maximize","description":"Enables the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":["internal_toggle_maximize"],"deny":[]}},"allow-is-always-on-top":{"identifier":"allow-is-always-on-top","description":"Enables the is_always_on_top command without any pre-configured scope.","commands":{"allow":["is_always_on_top"],"deny":[]}},"allow-is-closable":{"identifier":"allow-is-closable","description":"Enables the is_closable command without any pre-configured scope.","commands":{"allow":["is_closable"],"deny":[]}},"allow-is-decorated":{"identifier":"allow-is-decorated","description":"Enables the is_decorated command without any pre-configured scope.","commands":{"allow":["is_decorated"],"deny":[]}},"allow-is-enabled":{"identifier":"allow-is-enabled","description":"Enables the is_enabled command without any pre-configured scope.","commands":{"allow":["is_enabled"],"deny":[]}},"allow-is-focused":{"identifier":"allow-is-focused","description":"Enables the is_focused command without any pre-configured scope.","commands":{"allow":["is_focused"],"deny":[]}},"allow-is-fullscreen":{"identifier":"allow-is-fullscreen","description":"Enables the is_fullscreen command without any pre-configured scope.","commands":{"allow":["is_fullscreen"],"deny":[]}},"allow-is-maximizable":{"identifier":"allow-is-maximizable","description":"Enables the is_maximizable command without any pre-configured scope.","commands":{"allow":["is_maximizable"],"deny":[]}},"allow-is-maximized":{"identifier":"allow-is-maximized","description":"Enables the is_maximized command without any pre-configured scope.","commands":{"allow":["is_maximized"],"deny":[]}},"allow-is-minimizable":{"identifier":"allow-is-minimizable","description":"Enables the is_minimizable command without any pre-configured scope.","commands":{"allow":["is_minimizable"],"deny":[]}},"allow-is-minimized":{"identifier":"allow-is-minimized","description":"Enables the is_minimized command without any pre-configured scope.","commands":{"allow":["is_minimized"],"deny":[]}},"allow-is-resizable":{"identifier":"allow-is-resizable","description":"Enables the is_resizable command without any pre-configured scope.","commands":{"allow":["is_resizable"],"deny":[]}},"allow-is-visible":{"identifier":"allow-is-visible","description":"Enables the is_visible command without any pre-configured scope.","commands":{"allow":["is_visible"],"deny":[]}},"allow-maximize":{"identifier":"allow-maximize","description":"Enables the maximize command without any pre-configured scope.","commands":{"allow":["maximize"],"deny":[]}},"allow-minimize":{"identifier":"allow-minimize","description":"Enables the minimize command without any pre-configured scope.","commands":{"allow":["minimize"],"deny":[]}},"allow-monitor-from-point":{"identifier":"allow-monitor-from-point","description":"Enables the monitor_from_point command without any pre-configured scope.","commands":{"allow":["monitor_from_point"],"deny":[]}},"allow-outer-position":{"identifier":"allow-outer-position","description":"Enables the outer_position command without any pre-configured scope.","commands":{"allow":["outer_position"],"deny":[]}},"allow-outer-size":{"identifier":"allow-outer-size","description":"Enables the outer_size command without any pre-configured scope.","commands":{"allow":["outer_size"],"deny":[]}},"allow-primary-monitor":{"identifier":"allow-primary-monitor","description":"Enables the primary_monitor command without any pre-configured scope.","commands":{"allow":["primary_monitor"],"deny":[]}},"allow-request-user-attention":{"identifier":"allow-request-user-attention","description":"Enables the request_user_attention command without any pre-configured scope.","commands":{"allow":["request_user_attention"],"deny":[]}},"allow-scale-factor":{"identifier":"allow-scale-factor","description":"Enables the scale_factor command without any pre-configured scope.","commands":{"allow":["scale_factor"],"deny":[]}},"allow-set-always-on-bottom":{"identifier":"allow-set-always-on-bottom","description":"Enables the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":["set_always_on_bottom"],"deny":[]}},"allow-set-always-on-top":{"identifier":"allow-set-always-on-top","description":"Enables the set_always_on_top command without any pre-configured scope.","commands":{"allow":["set_always_on_top"],"deny":[]}},"allow-set-background-color":{"identifier":"allow-set-background-color","description":"Enables the set_background_color command without any pre-configured scope.","commands":{"allow":["set_background_color"],"deny":[]}},"allow-set-badge-count":{"identifier":"allow-set-badge-count","description":"Enables the set_badge_count command without any pre-configured scope.","commands":{"allow":["set_badge_count"],"deny":[]}},"allow-set-badge-label":{"identifier":"allow-set-badge-label","description":"Enables the set_badge_label command without any pre-configured scope.","commands":{"allow":["set_badge_label"],"deny":[]}},"allow-set-closable":{"identifier":"allow-set-closable","description":"Enables the set_closable command without any pre-configured scope.","commands":{"allow":["set_closable"],"deny":[]}},"allow-set-content-protected":{"identifier":"allow-set-content-protected","description":"Enables the set_content_protected command without any pre-configured scope.","commands":{"allow":["set_content_protected"],"deny":[]}},"allow-set-cursor-grab":{"identifier":"allow-set-cursor-grab","description":"Enables the set_cursor_grab command without any pre-configured scope.","commands":{"allow":["set_cursor_grab"],"deny":[]}},"allow-set-cursor-icon":{"identifier":"allow-set-cursor-icon","description":"Enables the set_cursor_icon command without any pre-configured scope.","commands":{"allow":["set_cursor_icon"],"deny":[]}},"allow-set-cursor-position":{"identifier":"allow-set-cursor-position","description":"Enables the set_cursor_position command without any pre-configured scope.","commands":{"allow":["set_cursor_position"],"deny":[]}},"allow-set-cursor-visible":{"identifier":"allow-set-cursor-visible","description":"Enables the set_cursor_visible command without any pre-configured scope.","commands":{"allow":["set_cursor_visible"],"deny":[]}},"allow-set-decorations":{"identifier":"allow-set-decorations","description":"Enables the set_decorations command without any pre-configured scope.","commands":{"allow":["set_decorations"],"deny":[]}},"allow-set-effects":{"identifier":"allow-set-effects","description":"Enables the set_effects command without any pre-configured scope.","commands":{"allow":["set_effects"],"deny":[]}},"allow-set-enabled":{"identifier":"allow-set-enabled","description":"Enables the set_enabled command without any pre-configured scope.","commands":{"allow":["set_enabled"],"deny":[]}},"allow-set-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"deny":[]}},"allow-set-focusable":{"identifier":"allow-set-focusable","description":"Enables the set_focusable command without any pre-configured scope.","commands":{"allow":["set_focusable"],"deny":[]}},"allow-set-fullscreen":{"identifier":"allow-set-fullscreen","description":"Enables the set_fullscreen command without any pre-configured scope.","commands":{"allow":["set_fullscreen"],"deny":[]}},"allow-set-icon":{"identifier":"allow-set-icon","description":"Enables the set_icon command without any pre-configured scope.","commands":{"allow":["set_icon"],"deny":[]}},"allow-set-ignore-cursor-events":{"identifier":"allow-set-ignore-cursor-events","description":"Enables the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":["set_ignore_cursor_events"],"deny":[]}},"allow-set-max-size":{"identifier":"allow-set-max-size","description":"Enables the set_max_size command without any pre-configured scope.","commands":{"allow":["set_max_size"],"deny":[]}},"allow-set-maximizable":{"identifier":"allow-set-maximizable","description":"Enables the set_maximizable command without any pre-configured scope.","commands":{"allow":["set_maximizable"],"deny":[]}},"allow-set-min-size":{"identifier":"allow-set-min-size","description":"Enables the set_min_size command without any pre-configured scope.","commands":{"allow":["set_min_size"],"deny":[]}},"allow-set-minimizable":{"identifier":"allow-set-minimizable","description":"Enables the set_minimizable command without any pre-configured scope.","commands":{"allow":["set_minimizable"],"deny":[]}},"allow-set-overlay-icon":{"identifier":"allow-set-overlay-icon","description":"Enables the set_overlay_icon command without any pre-configured scope.","commands":{"allow":["set_overlay_icon"],"deny":[]}},"allow-set-position":{"identifier":"allow-set-position","description":"Enables the set_position command without any pre-configured scope.","commands":{"allow":["set_position"],"deny":[]}},"allow-set-progress-bar":{"identifier":"allow-set-progress-bar","description":"Enables the set_progress_bar command without any pre-configured scope.","commands":{"allow":["set_progress_bar"],"deny":[]}},"allow-set-resizable":{"identifier":"allow-set-resizable","description":"Enables the set_resizable command without any pre-configured scope.","commands":{"allow":["set_resizable"],"deny":[]}},"allow-set-shadow":{"identifier":"allow-set-shadow","description":"Enables the set_shadow command without any pre-configured scope.","commands":{"allow":["set_shadow"],"deny":[]}},"allow-set-simple-fullscreen":{"identifier":"allow-set-simple-fullscreen","description":"Enables the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":["set_simple_fullscreen"],"deny":[]}},"allow-set-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"deny":[]}},"allow-set-size-constraints":{"identifier":"allow-set-size-constraints","description":"Enables the set_size_constraints command without any pre-configured scope.","commands":{"allow":["set_size_constraints"],"deny":[]}},"allow-set-skip-taskbar":{"identifier":"allow-set-skip-taskbar","description":"Enables the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":["set_skip_taskbar"],"deny":[]}},"allow-set-theme":{"identifier":"allow-set-theme","description":"Enables the set_theme command without any pre-configured scope.","commands":{"allow":["set_theme"],"deny":[]}},"allow-set-title":{"identifier":"allow-set-title","description":"Enables the set_title command without any pre-configured scope.","commands":{"allow":["set_title"],"deny":[]}},"allow-set-title-bar-style":{"identifier":"allow-set-title-bar-style","description":"Enables the set_title_bar_style command without any pre-configured scope.","commands":{"allow":["set_title_bar_style"],"deny":[]}},"allow-set-visible-on-all-workspaces":{"identifier":"allow-set-visible-on-all-workspaces","description":"Enables the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":["set_visible_on_all_workspaces"],"deny":[]}},"allow-show":{"identifier":"allow-show","description":"Enables the show command without any pre-configured scope.","commands":{"allow":["show"],"deny":[]}},"allow-start-dragging":{"identifier":"allow-start-dragging","description":"Enables the start_dragging command without any pre-configured scope.","commands":{"allow":["start_dragging"],"deny":[]}},"allow-start-resize-dragging":{"identifier":"allow-start-resize-dragging","description":"Enables the start_resize_dragging command without any pre-configured scope.","commands":{"allow":["start_resize_dragging"],"deny":[]}},"allow-theme":{"identifier":"allow-theme","description":"Enables the theme command without any pre-configured scope.","commands":{"allow":["theme"],"deny":[]}},"allow-title":{"identifier":"allow-title","description":"Enables the title command without any pre-configured scope.","commands":{"allow":["title"],"deny":[]}},"allow-toggle-maximize":{"identifier":"allow-toggle-maximize","description":"Enables the toggle_maximize command without any pre-configured scope.","commands":{"allow":["toggle_maximize"],"deny":[]}},"allow-unmaximize":{"identifier":"allow-unmaximize","description":"Enables the unmaximize command without any pre-configured scope.","commands":{"allow":["unmaximize"],"deny":[]}},"allow-unminimize":{"identifier":"allow-unminimize","description":"Enables the unminimize command without any pre-configured scope.","commands":{"allow":["unminimize"],"deny":[]}},"deny-available-monitors":{"identifier":"deny-available-monitors","description":"Denies the available_monitors command without any pre-configured scope.","commands":{"allow":[],"deny":["available_monitors"]}},"deny-center":{"identifier":"deny-center","description":"Denies the center command without any pre-configured scope.","commands":{"allow":[],"deny":["center"]}},"deny-close":{"identifier":"deny-close","description":"Denies the close command without any pre-configured scope.","commands":{"allow":[],"deny":["close"]}},"deny-create":{"identifier":"deny-create","description":"Denies the create command without any pre-configured scope.","commands":{"allow":[],"deny":["create"]}},"deny-current-monitor":{"identifier":"deny-current-monitor","description":"Denies the current_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["current_monitor"]}},"deny-cursor-position":{"identifier":"deny-cursor-position","description":"Denies the cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["cursor_position"]}},"deny-destroy":{"identifier":"deny-destroy","description":"Denies the destroy command without any pre-configured scope.","commands":{"allow":[],"deny":["destroy"]}},"deny-get-all-windows":{"identifier":"deny-get-all-windows","description":"Denies the get_all_windows command without any pre-configured scope.","commands":{"allow":[],"deny":["get_all_windows"]}},"deny-hide":{"identifier":"deny-hide","description":"Denies the hide command without any pre-configured scope.","commands":{"allow":[],"deny":["hide"]}},"deny-inner-position":{"identifier":"deny-inner-position","description":"Denies the inner_position command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_position"]}},"deny-inner-size":{"identifier":"deny-inner-size","description":"Denies the inner_size command without any pre-configured scope.","commands":{"allow":[],"deny":["inner_size"]}},"deny-internal-toggle-maximize":{"identifier":"deny-internal-toggle-maximize","description":"Denies the internal_toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["internal_toggle_maximize"]}},"deny-is-always-on-top":{"identifier":"deny-is-always-on-top","description":"Denies the is_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["is_always_on_top"]}},"deny-is-closable":{"identifier":"deny-is-closable","description":"Denies the is_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_closable"]}},"deny-is-decorated":{"identifier":"deny-is-decorated","description":"Denies the is_decorated command without any pre-configured scope.","commands":{"allow":[],"deny":["is_decorated"]}},"deny-is-enabled":{"identifier":"deny-is-enabled","description":"Denies the is_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["is_enabled"]}},"deny-is-focused":{"identifier":"deny-is-focused","description":"Denies the is_focused command without any pre-configured scope.","commands":{"allow":[],"deny":["is_focused"]}},"deny-is-fullscreen":{"identifier":"deny-is-fullscreen","description":"Denies the is_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["is_fullscreen"]}},"deny-is-maximizable":{"identifier":"deny-is-maximizable","description":"Denies the is_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximizable"]}},"deny-is-maximized":{"identifier":"deny-is-maximized","description":"Denies the is_maximized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_maximized"]}},"deny-is-minimizable":{"identifier":"deny-is-minimizable","description":"Denies the is_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimizable"]}},"deny-is-minimized":{"identifier":"deny-is-minimized","description":"Denies the is_minimized command without any pre-configured scope.","commands":{"allow":[],"deny":["is_minimized"]}},"deny-is-resizable":{"identifier":"deny-is-resizable","description":"Denies the is_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["is_resizable"]}},"deny-is-visible":{"identifier":"deny-is-visible","description":"Denies the is_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["is_visible"]}},"deny-maximize":{"identifier":"deny-maximize","description":"Denies the maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["maximize"]}},"deny-minimize":{"identifier":"deny-minimize","description":"Denies the minimize command without any pre-configured scope.","commands":{"allow":[],"deny":["minimize"]}},"deny-monitor-from-point":{"identifier":"deny-monitor-from-point","description":"Denies the monitor_from_point command without any pre-configured scope.","commands":{"allow":[],"deny":["monitor_from_point"]}},"deny-outer-position":{"identifier":"deny-outer-position","description":"Denies the outer_position command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_position"]}},"deny-outer-size":{"identifier":"deny-outer-size","description":"Denies the outer_size command without any pre-configured scope.","commands":{"allow":[],"deny":["outer_size"]}},"deny-primary-monitor":{"identifier":"deny-primary-monitor","description":"Denies the primary_monitor command without any pre-configured scope.","commands":{"allow":[],"deny":["primary_monitor"]}},"deny-request-user-attention":{"identifier":"deny-request-user-attention","description":"Denies the request_user_attention command without any pre-configured scope.","commands":{"allow":[],"deny":["request_user_attention"]}},"deny-scale-factor":{"identifier":"deny-scale-factor","description":"Denies the scale_factor command without any pre-configured scope.","commands":{"allow":[],"deny":["scale_factor"]}},"deny-set-always-on-bottom":{"identifier":"deny-set-always-on-bottom","description":"Denies the set_always_on_bottom command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_bottom"]}},"deny-set-always-on-top":{"identifier":"deny-set-always-on-top","description":"Denies the set_always_on_top command without any pre-configured scope.","commands":{"allow":[],"deny":["set_always_on_top"]}},"deny-set-background-color":{"identifier":"deny-set-background-color","description":"Denies the set_background_color command without any pre-configured scope.","commands":{"allow":[],"deny":["set_background_color"]}},"deny-set-badge-count":{"identifier":"deny-set-badge-count","description":"Denies the set_badge_count command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_count"]}},"deny-set-badge-label":{"identifier":"deny-set-badge-label","description":"Denies the set_badge_label command without any pre-configured scope.","commands":{"allow":[],"deny":["set_badge_label"]}},"deny-set-closable":{"identifier":"deny-set-closable","description":"Denies the set_closable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_closable"]}},"deny-set-content-protected":{"identifier":"deny-set-content-protected","description":"Denies the set_content_protected command without any pre-configured scope.","commands":{"allow":[],"deny":["set_content_protected"]}},"deny-set-cursor-grab":{"identifier":"deny-set-cursor-grab","description":"Denies the set_cursor_grab command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_grab"]}},"deny-set-cursor-icon":{"identifier":"deny-set-cursor-icon","description":"Denies the set_cursor_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_icon"]}},"deny-set-cursor-position":{"identifier":"deny-set-cursor-position","description":"Denies the set_cursor_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_position"]}},"deny-set-cursor-visible":{"identifier":"deny-set-cursor-visible","description":"Denies the set_cursor_visible command without any pre-configured scope.","commands":{"allow":[],"deny":["set_cursor_visible"]}},"deny-set-decorations":{"identifier":"deny-set-decorations","description":"Denies the set_decorations command without any pre-configured scope.","commands":{"allow":[],"deny":["set_decorations"]}},"deny-set-effects":{"identifier":"deny-set-effects","description":"Denies the set_effects command without any pre-configured scope.","commands":{"allow":[],"deny":["set_effects"]}},"deny-set-enabled":{"identifier":"deny-set-enabled","description":"Denies the set_enabled command without any pre-configured scope.","commands":{"allow":[],"deny":["set_enabled"]}},"deny-set-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"deny-set-focusable":{"identifier":"deny-set-focusable","description":"Denies the set_focusable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focusable"]}},"deny-set-fullscreen":{"identifier":"deny-set-fullscreen","description":"Denies the set_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_fullscreen"]}},"deny-set-icon":{"identifier":"deny-set-icon","description":"Denies the set_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_icon"]}},"deny-set-ignore-cursor-events":{"identifier":"deny-set-ignore-cursor-events","description":"Denies the set_ignore_cursor_events command without any pre-configured scope.","commands":{"allow":[],"deny":["set_ignore_cursor_events"]}},"deny-set-max-size":{"identifier":"deny-set-max-size","description":"Denies the set_max_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_max_size"]}},"deny-set-maximizable":{"identifier":"deny-set-maximizable","description":"Denies the set_maximizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_maximizable"]}},"deny-set-min-size":{"identifier":"deny-set-min-size","description":"Denies the set_min_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_min_size"]}},"deny-set-minimizable":{"identifier":"deny-set-minimizable","description":"Denies the set_minimizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_minimizable"]}},"deny-set-overlay-icon":{"identifier":"deny-set-overlay-icon","description":"Denies the set_overlay_icon command without any pre-configured scope.","commands":{"allow":[],"deny":["set_overlay_icon"]}},"deny-set-position":{"identifier":"deny-set-position","description":"Denies the set_position command without any pre-configured scope.","commands":{"allow":[],"deny":["set_position"]}},"deny-set-progress-bar":{"identifier":"deny-set-progress-bar","description":"Denies the set_progress_bar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_progress_bar"]}},"deny-set-resizable":{"identifier":"deny-set-resizable","description":"Denies the set_resizable command without any pre-configured scope.","commands":{"allow":[],"deny":["set_resizable"]}},"deny-set-shadow":{"identifier":"deny-set-shadow","description":"Denies the set_shadow command without any pre-configured scope.","commands":{"allow":[],"deny":["set_shadow"]}},"deny-set-simple-fullscreen":{"identifier":"deny-set-simple-fullscreen","description":"Denies the set_simple_fullscreen command without any pre-configured scope.","commands":{"allow":[],"deny":["set_simple_fullscreen"]}},"deny-set-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"deny-set-size-constraints":{"identifier":"deny-set-size-constraints","description":"Denies the set_size_constraints command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size_constraints"]}},"deny-set-skip-taskbar":{"identifier":"deny-set-skip-taskbar","description":"Denies the set_skip_taskbar command without any pre-configured scope.","commands":{"allow":[],"deny":["set_skip_taskbar"]}},"deny-set-theme":{"identifier":"deny-set-theme","description":"Denies the set_theme command without any pre-configured scope.","commands":{"allow":[],"deny":["set_theme"]}},"deny-set-title":{"identifier":"deny-set-title","description":"Denies the set_title command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title"]}},"deny-set-title-bar-style":{"identifier":"deny-set-title-bar-style","description":"Denies the set_title_bar_style command without any pre-configured scope.","commands":{"allow":[],"deny":["set_title_bar_style"]}},"deny-set-visible-on-all-workspaces":{"identifier":"deny-set-visible-on-all-workspaces","description":"Denies the set_visible_on_all_workspaces command without any pre-configured scope.","commands":{"allow":[],"deny":["set_visible_on_all_workspaces"]}},"deny-show":{"identifier":"deny-show","description":"Denies the show command without any pre-configured scope.","commands":{"allow":[],"deny":["show"]}},"deny-start-dragging":{"identifier":"deny-start-dragging","description":"Denies the start_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_dragging"]}},"deny-start-resize-dragging":{"identifier":"deny-start-resize-dragging","description":"Denies the start_resize_dragging command without any pre-configured scope.","commands":{"allow":[],"deny":["start_resize_dragging"]}},"deny-theme":{"identifier":"deny-theme","description":"Denies the theme command without any pre-configured scope.","commands":{"allow":[],"deny":["theme"]}},"deny-title":{"identifier":"deny-title","description":"Denies the title command without any pre-configured scope.","commands":{"allow":[],"deny":["title"]}},"deny-toggle-maximize":{"identifier":"deny-toggle-maximize","description":"Denies the toggle_maximize command without any pre-configured scope.","commands":{"allow":[],"deny":["toggle_maximize"]}},"deny-unmaximize":{"identifier":"deny-unmaximize","description":"Denies the unmaximize command without any pre-configured scope.","commands":{"allow":[],"deny":["unmaximize"]}},"deny-unminimize":{"identifier":"deny-unminimize","description":"Denies the unminimize command without any pre-configured scope.","commands":{"allow":[],"deny":["unminimize"]}}},"permission_sets":{},"global_scope_schema":null},"geolocation":{"default_permission":null,"permissions":{"allow-check-permissions":{"identifier":"allow-check-permissions","description":"Enables the check_permissions command without any pre-configured scope.","commands":{"allow":["check_permissions"],"deny":[]}},"allow-clear-permissions":{"identifier":"allow-clear-permissions","description":"Enables the clear_permissions command without any pre-configured scope.","commands":{"allow":["clear_permissions"],"deny":[]}},"allow-clear-watch":{"identifier":"allow-clear-watch","description":"Enables the clear_watch command without any pre-configured scope.","commands":{"allow":["clear_watch"],"deny":[]}},"allow-get-current-position":{"identifier":"allow-get-current-position","description":"Enables the get_current_position command without any pre-configured scope.","commands":{"allow":["get_current_position"],"deny":[]}},"allow-request-permissions":{"identifier":"allow-request-permissions","description":"Enables the request_permissions command without any pre-configured scope.","commands":{"allow":["request_permissions"],"deny":[]}},"allow-watch-position":{"identifier":"allow-watch-position","description":"Enables the watch_position command without any pre-configured scope.","commands":{"allow":["watch_position"],"deny":[]}},"deny-check-permissions":{"identifier":"deny-check-permissions","description":"Denies the check_permissions command without any pre-configured scope.","commands":{"allow":[],"deny":["check_permissions"]}},"deny-clear-permissions":{"identifier":"deny-clear-permissions","description":"Denies the clear_permissions command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_permissions"]}},"deny-clear-watch":{"identifier":"deny-clear-watch","description":"Denies the clear_watch command without any pre-configured scope.","commands":{"allow":[],"deny":["clear_watch"]}},"deny-get-current-position":{"identifier":"deny-get-current-position","description":"Denies the get_current_position command without any pre-configured scope.","commands":{"allow":[],"deny":["get_current_position"]}},"deny-request-permissions":{"identifier":"deny-request-permissions","description":"Denies the request_permissions command without any pre-configured scope.","commands":{"allow":[],"deny":["request_permissions"]}},"deny-watch-position":{"identifier":"deny-watch-position","description":"Denies the watch_position command without any pre-configured scope.","commands":{"allow":[],"deny":["watch_position"]}}},"permission_sets":{},"global_scope_schema":null}} \ No newline at end of file diff --git a/src-tauri/gen/schemas/android-schema.json b/src-tauri/gen/schemas/android-schema.json new file mode 100644 index 0000000..2b0c175 --- /dev/null +++ b/src-tauri/gen/schemas/android-schema.json @@ -0,0 +1,2316 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CapabilityFile", + "description": "Capability formats accepted in a capability file.", + "anyOf": [ + { + "description": "A single capability.", + "allOf": [ + { + "$ref": "#/definitions/Capability" + } + ] + }, + { + "description": "A list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + }, + { + "description": "A list of capabilities.", + "type": "object", + "required": [ + "capabilities" + ], + "properties": { + "capabilities": { + "description": "The list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + } + } + } + ], + "definitions": { + "Capability": { + "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", + "type": "object", + "required": [ + "identifier", + "permissions" + ], + "properties": { + "identifier": { + "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", + "type": "string" + }, + "description": { + "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.", + "default": "", + "type": "string" + }, + "remote": { + "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", + "anyOf": [ + { + "$ref": "#/definitions/CapabilityRemote" + }, + { + "type": "null" + } + ] + }, + "local": { + "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", + "default": true, + "type": "boolean" + }, + "windows": { + "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "webviews": { + "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ] ```", + "type": "array", + "items": { + "$ref": "#/definitions/PermissionEntry" + }, + "uniqueItems": true + }, + "platforms": { + "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Target" + } + } + } + }, + "CapabilityRemote": { + "description": "Configuration for remote URLs that are associated with the capability.", + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PermissionEntry": { + "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", + "anyOf": [ + { + "description": "Reference a permission or permission set by identifier.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + { + "description": "Reference a permission or permission set by identifier and extends its scope.", + "type": "object", + "allOf": [ + { + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + "allow": { + "description": "Data that defines what is allowed by the scope.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + }, + "deny": { + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + } + } + } + ], + "required": [ + "identifier" + ] + } + ] + }, + "Identifier": { + "description": "Permission identifier", + "oneOf": [ + { + "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", + "type": "string", + "const": "core:default", + "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`", + "type": "string", + "const": "core:app:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`" + }, + { + "description": "Enables the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-hide", + "markdownDescription": "Enables the app_hide command without any pre-configured scope." + }, + { + "description": "Enables the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-show", + "markdownDescription": "Enables the app_show command without any pre-configured scope." + }, + { + "description": "Enables the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-bundle-type", + "markdownDescription": "Enables the bundle_type command without any pre-configured scope." + }, + { + "description": "Enables the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-default-window-icon", + "markdownDescription": "Enables the default_window_icon command without any pre-configured scope." + }, + { + "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-fetch-data-store-identifiers", + "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Enables the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-identifier", + "markdownDescription": "Enables the identifier command without any pre-configured scope." + }, + { + "description": "Enables the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-name", + "markdownDescription": "Enables the name command without any pre-configured scope." + }, + { + "description": "Enables the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-register-listener", + "markdownDescription": "Enables the register_listener command without any pre-configured scope." + }, + { + "description": "Enables the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-data-store", + "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." + }, + { + "description": "Enables the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-listener", + "markdownDescription": "Enables the remove_listener command without any pre-configured scope." + }, + { + "description": "Enables the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-app-theme", + "markdownDescription": "Enables the set_app_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-dock-visibility", + "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Enables the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-tauri-version", + "markdownDescription": "Enables the tauri_version command without any pre-configured scope." + }, + { + "description": "Enables the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-version", + "markdownDescription": "Enables the version command without any pre-configured scope." + }, + { + "description": "Denies the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-hide", + "markdownDescription": "Denies the app_hide command without any pre-configured scope." + }, + { + "description": "Denies the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-show", + "markdownDescription": "Denies the app_show command without any pre-configured scope." + }, + { + "description": "Denies the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-bundle-type", + "markdownDescription": "Denies the bundle_type command without any pre-configured scope." + }, + { + "description": "Denies the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-default-window-icon", + "markdownDescription": "Denies the default_window_icon command without any pre-configured scope." + }, + { + "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-fetch-data-store-identifiers", + "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Denies the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-identifier", + "markdownDescription": "Denies the identifier command without any pre-configured scope." + }, + { + "description": "Denies the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-name", + "markdownDescription": "Denies the name command without any pre-configured scope." + }, + { + "description": "Denies the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-register-listener", + "markdownDescription": "Denies the register_listener command without any pre-configured scope." + }, + { + "description": "Denies the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-data-store", + "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." + }, + { + "description": "Denies the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-listener", + "markdownDescription": "Denies the remove_listener command without any pre-configured scope." + }, + { + "description": "Denies the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-app-theme", + "markdownDescription": "Denies the set_app_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-dock-visibility", + "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Denies the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-tauri-version", + "markdownDescription": "Denies the tauri_version command without any pre-configured scope." + }, + { + "description": "Denies the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-version", + "markdownDescription": "Denies the version command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`", + "type": "string", + "const": "core:event:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`" + }, + { + "description": "Enables the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit", + "markdownDescription": "Enables the emit command without any pre-configured scope." + }, + { + "description": "Enables the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit-to", + "markdownDescription": "Enables the emit_to command without any pre-configured scope." + }, + { + "description": "Enables the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-listen", + "markdownDescription": "Enables the listen command without any pre-configured scope." + }, + { + "description": "Enables the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-unlisten", + "markdownDescription": "Enables the unlisten command without any pre-configured scope." + }, + { + "description": "Denies the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit", + "markdownDescription": "Denies the emit command without any pre-configured scope." + }, + { + "description": "Denies the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit-to", + "markdownDescription": "Denies the emit_to command without any pre-configured scope." + }, + { + "description": "Denies the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-listen", + "markdownDescription": "Denies the listen command without any pre-configured scope." + }, + { + "description": "Denies the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-unlisten", + "markdownDescription": "Denies the unlisten command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`", + "type": "string", + "const": "core:image:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`" + }, + { + "description": "Enables the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-bytes", + "markdownDescription": "Enables the from_bytes command without any pre-configured scope." + }, + { + "description": "Enables the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-path", + "markdownDescription": "Enables the from_path command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-rgba", + "markdownDescription": "Enables the rgba command without any pre-configured scope." + }, + { + "description": "Enables the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-size", + "markdownDescription": "Enables the size command without any pre-configured scope." + }, + { + "description": "Denies the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-bytes", + "markdownDescription": "Denies the from_bytes command without any pre-configured scope." + }, + { + "description": "Denies the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-path", + "markdownDescription": "Denies the from_path command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-rgba", + "markdownDescription": "Denies the rgba command without any pre-configured scope." + }, + { + "description": "Denies the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-size", + "markdownDescription": "Denies the size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`", + "type": "string", + "const": "core:menu:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`" + }, + { + "description": "Enables the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-append", + "markdownDescription": "Enables the append command without any pre-configured scope." + }, + { + "description": "Enables the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-create-default", + "markdownDescription": "Enables the create_default command without any pre-configured scope." + }, + { + "description": "Enables the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-get", + "markdownDescription": "Enables the get command without any pre-configured scope." + }, + { + "description": "Enables the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-insert", + "markdownDescription": "Enables the insert command without any pre-configured scope." + }, + { + "description": "Enables the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-checked", + "markdownDescription": "Enables the is_checked command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-items", + "markdownDescription": "Enables the items command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-popup", + "markdownDescription": "Enables the popup command without any pre-configured scope." + }, + { + "description": "Enables the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-prepend", + "markdownDescription": "Enables the prepend command without any pre-configured scope." + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." + }, + { + "description": "Enables the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove-at", + "markdownDescription": "Enables the remove_at command without any pre-configured scope." + }, + { + "description": "Enables the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-accelerator", + "markdownDescription": "Enables the set_accelerator command without any pre-configured scope." + }, + { + "description": "Enables the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-app-menu", + "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-help-menu-for-nsapp", + "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-window-menu", + "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-windows-menu-for-nsapp", + "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-checked", + "markdownDescription": "Enables the set_checked command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-text", + "markdownDescription": "Enables the set_text command without any pre-configured scope." + }, + { + "description": "Enables the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-text", + "markdownDescription": "Enables the text command without any pre-configured scope." + }, + { + "description": "Denies the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-append", + "markdownDescription": "Denies the append command without any pre-configured scope." + }, + { + "description": "Denies the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-create-default", + "markdownDescription": "Denies the create_default command without any pre-configured scope." + }, + { + "description": "Denies the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-get", + "markdownDescription": "Denies the get command without any pre-configured scope." + }, + { + "description": "Denies the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-insert", + "markdownDescription": "Denies the insert command without any pre-configured scope." + }, + { + "description": "Denies the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-checked", + "markdownDescription": "Denies the is_checked command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-items", + "markdownDescription": "Denies the items command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-popup", + "markdownDescription": "Denies the popup command without any pre-configured scope." + }, + { + "description": "Denies the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-prepend", + "markdownDescription": "Denies the prepend command without any pre-configured scope." + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." + }, + { + "description": "Denies the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove-at", + "markdownDescription": "Denies the remove_at command without any pre-configured scope." + }, + { + "description": "Denies the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-accelerator", + "markdownDescription": "Denies the set_accelerator command without any pre-configured scope." + }, + { + "description": "Denies the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-app-menu", + "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-help-menu-for-nsapp", + "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-window-menu", + "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-windows-menu-for-nsapp", + "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-checked", + "markdownDescription": "Denies the set_checked command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-text", + "markdownDescription": "Denies the set_text command without any pre-configured scope." + }, + { + "description": "Denies the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-text", + "markdownDescription": "Denies the text command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`", + "type": "string", + "const": "core:path:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`" + }, + { + "description": "Enables the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-basename", + "markdownDescription": "Enables the basename command without any pre-configured scope." + }, + { + "description": "Enables the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-dirname", + "markdownDescription": "Enables the dirname command without any pre-configured scope." + }, + { + "description": "Enables the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-extname", + "markdownDescription": "Enables the extname command without any pre-configured scope." + }, + { + "description": "Enables the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-is-absolute", + "markdownDescription": "Enables the is_absolute command without any pre-configured scope." + }, + { + "description": "Enables the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-join", + "markdownDescription": "Enables the join command without any pre-configured scope." + }, + { + "description": "Enables the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-normalize", + "markdownDescription": "Enables the normalize command without any pre-configured scope." + }, + { + "description": "Enables the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve", + "markdownDescription": "Enables the resolve command without any pre-configured scope." + }, + { + "description": "Enables the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve-directory", + "markdownDescription": "Enables the resolve_directory command without any pre-configured scope." + }, + { + "description": "Denies the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-basename", + "markdownDescription": "Denies the basename command without any pre-configured scope." + }, + { + "description": "Denies the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-dirname", + "markdownDescription": "Denies the dirname command without any pre-configured scope." + }, + { + "description": "Denies the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-extname", + "markdownDescription": "Denies the extname command without any pre-configured scope." + }, + { + "description": "Denies the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-is-absolute", + "markdownDescription": "Denies the is_absolute command without any pre-configured scope." + }, + { + "description": "Denies the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-join", + "markdownDescription": "Denies the join command without any pre-configured scope." + }, + { + "description": "Denies the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-normalize", + "markdownDescription": "Denies the normalize command without any pre-configured scope." + }, + { + "description": "Denies the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve", + "markdownDescription": "Denies the resolve command without any pre-configured scope." + }, + { + "description": "Denies the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve-directory", + "markdownDescription": "Denies the resolve_directory command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`", + "type": "string", + "const": "core:resources:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`" + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-show-menu-on-left-click`", + "type": "string", + "const": "core:tray:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-show-menu-on-left-click`" + }, + { + "description": "Enables the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-get-by-id", + "markdownDescription": "Enables the get_by_id command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-remove-by-id", + "markdownDescription": "Enables the remove_by_id command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-as-template", + "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Enables the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-menu", + "markdownDescription": "Enables the set_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-show-menu-on-left-click", + "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Enables the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-temp-dir-path", + "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-tooltip", + "markdownDescription": "Enables the set_tooltip command without any pre-configured scope." + }, + { + "description": "Enables the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-visible", + "markdownDescription": "Enables the set_visible command without any pre-configured scope." + }, + { + "description": "Denies the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-get-by-id", + "markdownDescription": "Denies the get_by_id command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-remove-by-id", + "markdownDescription": "Denies the remove_by_id command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-as-template", + "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Denies the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-menu", + "markdownDescription": "Denies the set_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-show-menu-on-left-click", + "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Denies the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-temp-dir-path", + "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-tooltip", + "markdownDescription": "Denies the set_tooltip command without any pre-configured scope." + }, + { + "description": "Denies the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-visible", + "markdownDescription": "Denies the set_visible command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`", + "type": "string", + "const": "core:webview:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`" + }, + { + "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-clear-all-browsing-data", + "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Enables the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview", + "markdownDescription": "Enables the create_webview command without any pre-configured scope." + }, + { + "description": "Enables the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview-window", + "markdownDescription": "Enables the create_webview_window command without any pre-configured scope." + }, + { + "description": "Enables the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-get-all-webviews", + "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-internal-toggle-devtools", + "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Enables the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-print", + "markdownDescription": "Enables the print command without any pre-configured scope." + }, + { + "description": "Enables the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-reparent", + "markdownDescription": "Enables the reparent command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-auto-resize", + "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-background-color", + "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-focus", + "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-position", + "markdownDescription": "Enables the set_webview_position command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-size", + "markdownDescription": "Enables the set_webview_size command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-zoom", + "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Enables the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-close", + "markdownDescription": "Enables the webview_close command without any pre-configured scope." + }, + { + "description": "Enables the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-hide", + "markdownDescription": "Enables the webview_hide command without any pre-configured scope." + }, + { + "description": "Enables the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-position", + "markdownDescription": "Enables the webview_position command without any pre-configured scope." + }, + { + "description": "Enables the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-show", + "markdownDescription": "Enables the webview_show command without any pre-configured scope." + }, + { + "description": "Enables the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-size", + "markdownDescription": "Enables the webview_size command without any pre-configured scope." + }, + { + "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-clear-all-browsing-data", + "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Denies the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview", + "markdownDescription": "Denies the create_webview command without any pre-configured scope." + }, + { + "description": "Denies the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview-window", + "markdownDescription": "Denies the create_webview_window command without any pre-configured scope." + }, + { + "description": "Denies the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-get-all-webviews", + "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-internal-toggle-devtools", + "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Denies the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-print", + "markdownDescription": "Denies the print command without any pre-configured scope." + }, + { + "description": "Denies the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-reparent", + "markdownDescription": "Denies the reparent command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-auto-resize", + "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-background-color", + "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-focus", + "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-position", + "markdownDescription": "Denies the set_webview_position command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-size", + "markdownDescription": "Denies the set_webview_size command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-zoom", + "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Denies the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-close", + "markdownDescription": "Denies the webview_close command without any pre-configured scope." + }, + { + "description": "Denies the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-hide", + "markdownDescription": "Denies the webview_hide command without any pre-configured scope." + }, + { + "description": "Denies the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-position", + "markdownDescription": "Denies the webview_position command without any pre-configured scope." + }, + { + "description": "Denies the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-show", + "markdownDescription": "Denies the webview_show command without any pre-configured scope." + }, + { + "description": "Denies the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-size", + "markdownDescription": "Denies the webview_size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-internal-toggle-maximize`", + "type": "string", + "const": "core:window:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-internal-toggle-maximize`" + }, + { + "description": "Enables the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-available-monitors", + "markdownDescription": "Enables the available_monitors command without any pre-configured scope." + }, + { + "description": "Enables the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-center", + "markdownDescription": "Enables the center command without any pre-configured scope." + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." + }, + { + "description": "Enables the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-current-monitor", + "markdownDescription": "Enables the current_monitor command without any pre-configured scope." + }, + { + "description": "Enables the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-cursor-position", + "markdownDescription": "Enables the cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-destroy", + "markdownDescription": "Enables the destroy command without any pre-configured scope." + }, + { + "description": "Enables the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-get-all-windows", + "markdownDescription": "Enables the get_all_windows command without any pre-configured scope." + }, + { + "description": "Enables the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-hide", + "markdownDescription": "Enables the hide command without any pre-configured scope." + }, + { + "description": "Enables the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-position", + "markdownDescription": "Enables the inner_position command without any pre-configured scope." + }, + { + "description": "Enables the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-size", + "markdownDescription": "Enables the inner_size command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-internal-toggle-maximize", + "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-always-on-top", + "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-closable", + "markdownDescription": "Enables the is_closable command without any pre-configured scope." + }, + { + "description": "Enables the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-decorated", + "markdownDescription": "Enables the is_decorated command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-focused", + "markdownDescription": "Enables the is_focused command without any pre-configured scope." + }, + { + "description": "Enables the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-fullscreen", + "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximizable", + "markdownDescription": "Enables the is_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximized", + "markdownDescription": "Enables the is_maximized command without any pre-configured scope." + }, + { + "description": "Enables the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimizable", + "markdownDescription": "Enables the is_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimized", + "markdownDescription": "Enables the is_minimized command without any pre-configured scope." + }, + { + "description": "Enables the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-resizable", + "markdownDescription": "Enables the is_resizable command without any pre-configured scope." + }, + { + "description": "Enables the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-visible", + "markdownDescription": "Enables the is_visible command without any pre-configured scope." + }, + { + "description": "Enables the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-maximize", + "markdownDescription": "Enables the maximize command without any pre-configured scope." + }, + { + "description": "Enables the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-minimize", + "markdownDescription": "Enables the minimize command without any pre-configured scope." + }, + { + "description": "Enables the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-monitor-from-point", + "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Enables the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-position", + "markdownDescription": "Enables the outer_position command without any pre-configured scope." + }, + { + "description": "Enables the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-size", + "markdownDescription": "Enables the outer_size command without any pre-configured scope." + }, + { + "description": "Enables the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-primary-monitor", + "markdownDescription": "Enables the primary_monitor command without any pre-configured scope." + }, + { + "description": "Enables the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-request-user-attention", + "markdownDescription": "Enables the request_user_attention command without any pre-configured scope." + }, + { + "description": "Enables the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scale-factor", + "markdownDescription": "Enables the scale_factor command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-bottom", + "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-top", + "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-background-color", + "markdownDescription": "Enables the set_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-count", + "markdownDescription": "Enables the set_badge_count command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-label", + "markdownDescription": "Enables the set_badge_label command without any pre-configured scope." + }, + { + "description": "Enables the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-closable", + "markdownDescription": "Enables the set_closable command without any pre-configured scope." + }, + { + "description": "Enables the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-content-protected", + "markdownDescription": "Enables the set_content_protected command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-grab", + "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-icon", + "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-position", + "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-visible", + "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Enables the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-decorations", + "markdownDescription": "Enables the set_decorations command without any pre-configured scope." + }, + { + "description": "Enables the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-effects", + "markdownDescription": "Enables the set_effects command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focus", + "markdownDescription": "Enables the set_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focusable", + "markdownDescription": "Enables the set_focusable command without any pre-configured scope." + }, + { + "description": "Enables the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-fullscreen", + "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-ignore-cursor-events", + "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Enables the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-max-size", + "markdownDescription": "Enables the set_max_size command without any pre-configured scope." + }, + { + "description": "Enables the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-maximizable", + "markdownDescription": "Enables the set_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-min-size", + "markdownDescription": "Enables the set_min_size command without any pre-configured scope." + }, + { + "description": "Enables the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-minimizable", + "markdownDescription": "Enables the set_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-overlay-icon", + "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-position", + "markdownDescription": "Enables the set_position command without any pre-configured scope." + }, + { + "description": "Enables the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-progress-bar", + "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Enables the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-resizable", + "markdownDescription": "Enables the set_resizable command without any pre-configured scope." + }, + { + "description": "Enables the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-shadow", + "markdownDescription": "Enables the set_shadow command without any pre-configured scope." + }, + { + "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-simple-fullscreen", + "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size", + "markdownDescription": "Enables the set_size command without any pre-configured scope." + }, + { + "description": "Enables the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size-constraints", + "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Enables the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-skip-taskbar", + "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Enables the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-theme", + "markdownDescription": "Enables the set_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title-bar-style", + "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-visible-on-all-workspaces", + "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Enables the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-show", + "markdownDescription": "Enables the show command without any pre-configured scope." + }, + { + "description": "Enables the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-dragging", + "markdownDescription": "Enables the start_dragging command without any pre-configured scope." + }, + { + "description": "Enables the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-resize-dragging", + "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Enables the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-theme", + "markdownDescription": "Enables the theme command without any pre-configured scope." + }, + { + "description": "Enables the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-title", + "markdownDescription": "Enables the title command without any pre-configured scope." + }, + { + "description": "Enables the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-toggle-maximize", + "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unmaximize", + "markdownDescription": "Enables the unmaximize command without any pre-configured scope." + }, + { + "description": "Enables the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unminimize", + "markdownDescription": "Enables the unminimize command without any pre-configured scope." + }, + { + "description": "Denies the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-available-monitors", + "markdownDescription": "Denies the available_monitors command without any pre-configured scope." + }, + { + "description": "Denies the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-center", + "markdownDescription": "Denies the center command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." + }, + { + "description": "Denies the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-current-monitor", + "markdownDescription": "Denies the current_monitor command without any pre-configured scope." + }, + { + "description": "Denies the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-cursor-position", + "markdownDescription": "Denies the cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-destroy", + "markdownDescription": "Denies the destroy command without any pre-configured scope." + }, + { + "description": "Denies the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-get-all-windows", + "markdownDescription": "Denies the get_all_windows command without any pre-configured scope." + }, + { + "description": "Denies the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-hide", + "markdownDescription": "Denies the hide command without any pre-configured scope." + }, + { + "description": "Denies the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-position", + "markdownDescription": "Denies the inner_position command without any pre-configured scope." + }, + { + "description": "Denies the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-size", + "markdownDescription": "Denies the inner_size command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-internal-toggle-maximize", + "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-always-on-top", + "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-closable", + "markdownDescription": "Denies the is_closable command without any pre-configured scope." + }, + { + "description": "Denies the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-decorated", + "markdownDescription": "Denies the is_decorated command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-focused", + "markdownDescription": "Denies the is_focused command without any pre-configured scope." + }, + { + "description": "Denies the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-fullscreen", + "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximizable", + "markdownDescription": "Denies the is_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximized", + "markdownDescription": "Denies the is_maximized command without any pre-configured scope." + }, + { + "description": "Denies the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimizable", + "markdownDescription": "Denies the is_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimized", + "markdownDescription": "Denies the is_minimized command without any pre-configured scope." + }, + { + "description": "Denies the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-resizable", + "markdownDescription": "Denies the is_resizable command without any pre-configured scope." + }, + { + "description": "Denies the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-visible", + "markdownDescription": "Denies the is_visible command without any pre-configured scope." + }, + { + "description": "Denies the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-maximize", + "markdownDescription": "Denies the maximize command without any pre-configured scope." + }, + { + "description": "Denies the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-minimize", + "markdownDescription": "Denies the minimize command without any pre-configured scope." + }, + { + "description": "Denies the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-monitor-from-point", + "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Denies the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-position", + "markdownDescription": "Denies the outer_position command without any pre-configured scope." + }, + { + "description": "Denies the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-size", + "markdownDescription": "Denies the outer_size command without any pre-configured scope." + }, + { + "description": "Denies the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-primary-monitor", + "markdownDescription": "Denies the primary_monitor command without any pre-configured scope." + }, + { + "description": "Denies the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-request-user-attention", + "markdownDescription": "Denies the request_user_attention command without any pre-configured scope." + }, + { + "description": "Denies the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scale-factor", + "markdownDescription": "Denies the scale_factor command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-bottom", + "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-top", + "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-background-color", + "markdownDescription": "Denies the set_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-count", + "markdownDescription": "Denies the set_badge_count command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-label", + "markdownDescription": "Denies the set_badge_label command without any pre-configured scope." + }, + { + "description": "Denies the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-closable", + "markdownDescription": "Denies the set_closable command without any pre-configured scope." + }, + { + "description": "Denies the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-content-protected", + "markdownDescription": "Denies the set_content_protected command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-grab", + "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-icon", + "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-position", + "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-visible", + "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Denies the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-decorations", + "markdownDescription": "Denies the set_decorations command without any pre-configured scope." + }, + { + "description": "Denies the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-effects", + "markdownDescription": "Denies the set_effects command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focus", + "markdownDescription": "Denies the set_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focusable", + "markdownDescription": "Denies the set_focusable command without any pre-configured scope." + }, + { + "description": "Denies the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-fullscreen", + "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-ignore-cursor-events", + "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Denies the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-max-size", + "markdownDescription": "Denies the set_max_size command without any pre-configured scope." + }, + { + "description": "Denies the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-maximizable", + "markdownDescription": "Denies the set_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-min-size", + "markdownDescription": "Denies the set_min_size command without any pre-configured scope." + }, + { + "description": "Denies the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-minimizable", + "markdownDescription": "Denies the set_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-overlay-icon", + "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-position", + "markdownDescription": "Denies the set_position command without any pre-configured scope." + }, + { + "description": "Denies the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-progress-bar", + "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Denies the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-resizable", + "markdownDescription": "Denies the set_resizable command without any pre-configured scope." + }, + { + "description": "Denies the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-shadow", + "markdownDescription": "Denies the set_shadow command without any pre-configured scope." + }, + { + "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-simple-fullscreen", + "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size", + "markdownDescription": "Denies the set_size command without any pre-configured scope." + }, + { + "description": "Denies the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size-constraints", + "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Denies the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-skip-taskbar", + "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Denies the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-theme", + "markdownDescription": "Denies the set_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title-bar-style", + "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-visible-on-all-workspaces", + "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Denies the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-show", + "markdownDescription": "Denies the show command without any pre-configured scope." + }, + { + "description": "Denies the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-dragging", + "markdownDescription": "Denies the start_dragging command without any pre-configured scope." + }, + { + "description": "Denies the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-resize-dragging", + "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Denies the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-theme", + "markdownDescription": "Denies the theme command without any pre-configured scope." + }, + { + "description": "Denies the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-title", + "markdownDescription": "Denies the title command without any pre-configured scope." + }, + { + "description": "Denies the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-toggle-maximize", + "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unmaximize", + "markdownDescription": "Denies the unmaximize command without any pre-configured scope." + }, + { + "description": "Denies the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unminimize", + "markdownDescription": "Denies the unminimize command without any pre-configured scope." + }, + { + "description": "Enables the check_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-check-permissions", + "markdownDescription": "Enables the check_permissions command without any pre-configured scope." + }, + { + "description": "Enables the clear_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-clear-permissions", + "markdownDescription": "Enables the clear_permissions command without any pre-configured scope." + }, + { + "description": "Enables the clear_watch command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-clear-watch", + "markdownDescription": "Enables the clear_watch command without any pre-configured scope." + }, + { + "description": "Enables the get_current_position command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-get-current-position", + "markdownDescription": "Enables the get_current_position command without any pre-configured scope." + }, + { + "description": "Enables the request_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-request-permissions", + "markdownDescription": "Enables the request_permissions command without any pre-configured scope." + }, + { + "description": "Enables the watch_position command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-watch-position", + "markdownDescription": "Enables the watch_position command without any pre-configured scope." + }, + { + "description": "Denies the check_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-check-permissions", + "markdownDescription": "Denies the check_permissions command without any pre-configured scope." + }, + { + "description": "Denies the clear_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-clear-permissions", + "markdownDescription": "Denies the clear_permissions command without any pre-configured scope." + }, + { + "description": "Denies the clear_watch command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-clear-watch", + "markdownDescription": "Denies the clear_watch command without any pre-configured scope." + }, + { + "description": "Denies the get_current_position command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-get-current-position", + "markdownDescription": "Denies the get_current_position command without any pre-configured scope." + }, + { + "description": "Denies the request_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-request-permissions", + "markdownDescription": "Denies the request_permissions command without any pre-configured scope." + }, + { + "description": "Denies the watch_position command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-watch-position", + "markdownDescription": "Denies the watch_position command without any pre-configured scope." + } + ] + }, + "Value": { + "description": "All supported ACL values.", + "anyOf": [ + { + "description": "Represents a null JSON value.", + "type": "null" + }, + { + "description": "Represents a [`bool`].", + "type": "boolean" + }, + { + "description": "Represents a valid ACL [`Number`].", + "allOf": [ + { + "$ref": "#/definitions/Number" + } + ] + }, + { + "description": "Represents a [`String`].", + "type": "string" + }, + { + "description": "Represents a list of other [`Value`]s.", + "type": "array", + "items": { + "$ref": "#/definitions/Value" + } + }, + { + "description": "Represents a map of [`String`] keys to [`Value`]s.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Value" + } + } + ] + }, + "Number": { + "description": "A valid ACL number.", + "anyOf": [ + { + "description": "Represents an [`i64`].", + "type": "integer", + "format": "int64" + }, + { + "description": "Represents a [`f64`].", + "type": "number", + "format": "double" + } + ] + }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/src-tauri/gen/schemas/capabilities.json b/src-tauri/gen/schemas/capabilities.json new file mode 100644 index 0000000..924f1af --- /dev/null +++ b/src-tauri/gen/schemas/capabilities.json @@ -0,0 +1 @@ +{"bocken-remote":{"identifier":"bocken-remote","description":"","remote":{"urls":["https://bocken.org/*","http://192.168.1.4:5173/*"]},"local":true,"windows":["main"],"permissions":["geolocation:allow-check-permissions","geolocation:allow-request-permissions","geolocation:allow-get-current-position","geolocation:allow-watch-position","geolocation:allow-clear-watch"]}} \ No newline at end of file diff --git a/src-tauri/gen/schemas/mobile-schema.json b/src-tauri/gen/schemas/mobile-schema.json new file mode 100644 index 0000000..2b0c175 --- /dev/null +++ b/src-tauri/gen/schemas/mobile-schema.json @@ -0,0 +1,2316 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "title": "CapabilityFile", + "description": "Capability formats accepted in a capability file.", + "anyOf": [ + { + "description": "A single capability.", + "allOf": [ + { + "$ref": "#/definitions/Capability" + } + ] + }, + { + "description": "A list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + }, + { + "description": "A list of capabilities.", + "type": "object", + "required": [ + "capabilities" + ], + "properties": { + "capabilities": { + "description": "The list of capabilities.", + "type": "array", + "items": { + "$ref": "#/definitions/Capability" + } + } + } + } + ], + "definitions": { + "Capability": { + "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows' and webviews' fine grained access to the Tauri core, application, or plugin commands. If a webview or its window is not matching any capability then it has no access to the IPC layer at all.\n\nThis can be done to create groups of windows, based on their required system access, which can reduce impact of frontend vulnerabilities in less privileged windows. Windows can be added to a capability by exact name (e.g. `main-window`) or glob patterns like `*` or `admin-*`. A Window can have none, one, or multiple associated capabilities.\n\n## Example\n\n```json { \"identifier\": \"main-user-files-write\", \"description\": \"This capability allows the `main` window on macOS and Windows access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"core:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, ], \"platforms\": [\"macOS\",\"windows\"] } ```", + "type": "object", + "required": [ + "identifier", + "permissions" + ], + "properties": { + "identifier": { + "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`", + "type": "string" + }, + "description": { + "description": "Description of what the capability is intended to allow on associated windows.\n\nIt should contain a description of what the grouped permissions should allow.\n\n## Example\n\nThis capability allows the `main` window access to `filesystem` write related commands and `dialog` commands to enable programmatic access to files selected by the user.", + "default": "", + "type": "string" + }, + "remote": { + "description": "Configure remote URLs that can use the capability permissions.\n\nThis setting is optional and defaults to not being set, as our default use case is that the content is served from our local application.\n\n:::caution Make sure you understand the security implications of providing remote sources with local system access. :::\n\n## Example\n\n```json { \"urls\": [\"https://*.mydomain.dev\"] } ```", + "anyOf": [ + { + "$ref": "#/definitions/CapabilityRemote" + }, + { + "type": "null" + } + ] + }, + "local": { + "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.", + "default": true, + "type": "boolean" + }, + "windows": { + "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nIf a window label matches any of the patterns in this list, the capability will be enabled on all the webviews of that window, regardless of the value of [`Self::webviews`].\n\nOn multiwebview windows, prefer specifying [`Self::webviews`] and omitting [`Self::windows`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "webviews": { + "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThe capability will be enabled on all the webviews whose label matches any of the patterns in this list, regardless of whether the webview's window label matches a pattern in [`Self::windows`].\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`", + "type": "array", + "items": { + "type": "string" + } + }, + "permissions": { + "description": "List of permissions attached to this capability.\n\nMust include the plugin name as prefix in the form of `${plugin-name}:${permission-name}`. For commands directly implemented in the application itself only `${permission-name}` is required.\n\n## Example\n\n```json [ \"core:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ] ```", + "type": "array", + "items": { + "$ref": "#/definitions/PermissionEntry" + }, + "uniqueItems": true + }, + "platforms": { + "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Target" + } + } + } + }, + "CapabilityRemote": { + "description": "Configuration for remote URLs that are associated with the capability.", + "type": "object", + "required": [ + "urls" + ], + "properties": { + "urls": { + "description": "Remote domains this capability refers to using the [URLPattern standard](https://urlpattern.spec.whatwg.org/).\n\n## Examples\n\n- \"https://*.mydomain.dev\": allows subdomains of mydomain.dev - \"https://mydomain.dev/api/*\": allows any subpath of mydomain.dev/api", + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "PermissionEntry": { + "description": "An entry for a permission value in a [`Capability`] can be either a raw permission [`Identifier`] or an object that references a permission and extends its scope.", + "anyOf": [ + { + "description": "Reference a permission or permission set by identifier.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + { + "description": "Reference a permission or permission set by identifier and extends its scope.", + "type": "object", + "allOf": [ + { + "properties": { + "identifier": { + "description": "Identifier of the permission or permission set.", + "allOf": [ + { + "$ref": "#/definitions/Identifier" + } + ] + }, + "allow": { + "description": "Data that defines what is allowed by the scope.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + }, + "deny": { + "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.", + "type": [ + "array", + "null" + ], + "items": { + "$ref": "#/definitions/Value" + } + } + } + } + ], + "required": [ + "identifier" + ] + } + ] + }, + "Identifier": { + "description": "Permission identifier", + "oneOf": [ + { + "description": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`", + "type": "string", + "const": "core:default", + "markdownDescription": "Default core plugins set.\n#### This default permission set includes:\n\n- `core:path:default`\n- `core:event:default`\n- `core:window:default`\n- `core:webview:default`\n- `core:app:default`\n- `core:image:default`\n- `core:resources:default`\n- `core:menu:default`\n- `core:tray:default`" + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`", + "type": "string", + "const": "core:app:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-version`\n- `allow-name`\n- `allow-tauri-version`\n- `allow-identifier`\n- `allow-bundle-type`\n- `allow-register-listener`\n- `allow-remove-listener`" + }, + { + "description": "Enables the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-hide", + "markdownDescription": "Enables the app_hide command without any pre-configured scope." + }, + { + "description": "Enables the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-app-show", + "markdownDescription": "Enables the app_show command without any pre-configured scope." + }, + { + "description": "Enables the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-bundle-type", + "markdownDescription": "Enables the bundle_type command without any pre-configured scope." + }, + { + "description": "Enables the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-default-window-icon", + "markdownDescription": "Enables the default_window_icon command without any pre-configured scope." + }, + { + "description": "Enables the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-fetch-data-store-identifiers", + "markdownDescription": "Enables the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Enables the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-identifier", + "markdownDescription": "Enables the identifier command without any pre-configured scope." + }, + { + "description": "Enables the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-name", + "markdownDescription": "Enables the name command without any pre-configured scope." + }, + { + "description": "Enables the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-register-listener", + "markdownDescription": "Enables the register_listener command without any pre-configured scope." + }, + { + "description": "Enables the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-data-store", + "markdownDescription": "Enables the remove_data_store command without any pre-configured scope." + }, + { + "description": "Enables the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-remove-listener", + "markdownDescription": "Enables the remove_listener command without any pre-configured scope." + }, + { + "description": "Enables the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-app-theme", + "markdownDescription": "Enables the set_app_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-set-dock-visibility", + "markdownDescription": "Enables the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Enables the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-tauri-version", + "markdownDescription": "Enables the tauri_version command without any pre-configured scope." + }, + { + "description": "Enables the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:allow-version", + "markdownDescription": "Enables the version command without any pre-configured scope." + }, + { + "description": "Denies the app_hide command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-hide", + "markdownDescription": "Denies the app_hide command without any pre-configured scope." + }, + { + "description": "Denies the app_show command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-app-show", + "markdownDescription": "Denies the app_show command without any pre-configured scope." + }, + { + "description": "Denies the bundle_type command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-bundle-type", + "markdownDescription": "Denies the bundle_type command without any pre-configured scope." + }, + { + "description": "Denies the default_window_icon command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-default-window-icon", + "markdownDescription": "Denies the default_window_icon command without any pre-configured scope." + }, + { + "description": "Denies the fetch_data_store_identifiers command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-fetch-data-store-identifiers", + "markdownDescription": "Denies the fetch_data_store_identifiers command without any pre-configured scope." + }, + { + "description": "Denies the identifier command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-identifier", + "markdownDescription": "Denies the identifier command without any pre-configured scope." + }, + { + "description": "Denies the name command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-name", + "markdownDescription": "Denies the name command without any pre-configured scope." + }, + { + "description": "Denies the register_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-register-listener", + "markdownDescription": "Denies the register_listener command without any pre-configured scope." + }, + { + "description": "Denies the remove_data_store command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-data-store", + "markdownDescription": "Denies the remove_data_store command without any pre-configured scope." + }, + { + "description": "Denies the remove_listener command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-remove-listener", + "markdownDescription": "Denies the remove_listener command without any pre-configured scope." + }, + { + "description": "Denies the set_app_theme command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-app-theme", + "markdownDescription": "Denies the set_app_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_dock_visibility command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-set-dock-visibility", + "markdownDescription": "Denies the set_dock_visibility command without any pre-configured scope." + }, + { + "description": "Denies the tauri_version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-tauri-version", + "markdownDescription": "Denies the tauri_version command without any pre-configured scope." + }, + { + "description": "Denies the version command without any pre-configured scope.", + "type": "string", + "const": "core:app:deny-version", + "markdownDescription": "Denies the version command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`", + "type": "string", + "const": "core:event:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-listen`\n- `allow-unlisten`\n- `allow-emit`\n- `allow-emit-to`" + }, + { + "description": "Enables the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit", + "markdownDescription": "Enables the emit command without any pre-configured scope." + }, + { + "description": "Enables the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-emit-to", + "markdownDescription": "Enables the emit_to command without any pre-configured scope." + }, + { + "description": "Enables the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-listen", + "markdownDescription": "Enables the listen command without any pre-configured scope." + }, + { + "description": "Enables the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:allow-unlisten", + "markdownDescription": "Enables the unlisten command without any pre-configured scope." + }, + { + "description": "Denies the emit command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit", + "markdownDescription": "Denies the emit command without any pre-configured scope." + }, + { + "description": "Denies the emit_to command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-emit-to", + "markdownDescription": "Denies the emit_to command without any pre-configured scope." + }, + { + "description": "Denies the listen command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-listen", + "markdownDescription": "Denies the listen command without any pre-configured scope." + }, + { + "description": "Denies the unlisten command without any pre-configured scope.", + "type": "string", + "const": "core:event:deny-unlisten", + "markdownDescription": "Denies the unlisten command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`", + "type": "string", + "const": "core:image:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-from-bytes`\n- `allow-from-path`\n- `allow-rgba`\n- `allow-size`" + }, + { + "description": "Enables the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-bytes", + "markdownDescription": "Enables the from_bytes command without any pre-configured scope." + }, + { + "description": "Enables the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-from-path", + "markdownDescription": "Enables the from_path command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-rgba", + "markdownDescription": "Enables the rgba command without any pre-configured scope." + }, + { + "description": "Enables the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:allow-size", + "markdownDescription": "Enables the size command without any pre-configured scope." + }, + { + "description": "Denies the from_bytes command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-bytes", + "markdownDescription": "Denies the from_bytes command without any pre-configured scope." + }, + { + "description": "Denies the from_path command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-from-path", + "markdownDescription": "Denies the from_path command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the rgba command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-rgba", + "markdownDescription": "Denies the rgba command without any pre-configured scope." + }, + { + "description": "Denies the size command without any pre-configured scope.", + "type": "string", + "const": "core:image:deny-size", + "markdownDescription": "Denies the size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`", + "type": "string", + "const": "core:menu:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-append`\n- `allow-prepend`\n- `allow-insert`\n- `allow-remove`\n- `allow-remove-at`\n- `allow-items`\n- `allow-get`\n- `allow-popup`\n- `allow-create-default`\n- `allow-set-as-app-menu`\n- `allow-set-as-window-menu`\n- `allow-text`\n- `allow-set-text`\n- `allow-is-enabled`\n- `allow-set-enabled`\n- `allow-set-accelerator`\n- `allow-set-as-windows-menu-for-nsapp`\n- `allow-set-as-help-menu-for-nsapp`\n- `allow-is-checked`\n- `allow-set-checked`\n- `allow-set-icon`" + }, + { + "description": "Enables the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-append", + "markdownDescription": "Enables the append command without any pre-configured scope." + }, + { + "description": "Enables the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-create-default", + "markdownDescription": "Enables the create_default command without any pre-configured scope." + }, + { + "description": "Enables the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-get", + "markdownDescription": "Enables the get command without any pre-configured scope." + }, + { + "description": "Enables the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-insert", + "markdownDescription": "Enables the insert command without any pre-configured scope." + }, + { + "description": "Enables the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-checked", + "markdownDescription": "Enables the is_checked command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-items", + "markdownDescription": "Enables the items command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-popup", + "markdownDescription": "Enables the popup command without any pre-configured scope." + }, + { + "description": "Enables the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-prepend", + "markdownDescription": "Enables the prepend command without any pre-configured scope." + }, + { + "description": "Enables the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove", + "markdownDescription": "Enables the remove command without any pre-configured scope." + }, + { + "description": "Enables the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-remove-at", + "markdownDescription": "Enables the remove_at command without any pre-configured scope." + }, + { + "description": "Enables the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-accelerator", + "markdownDescription": "Enables the set_accelerator command without any pre-configured scope." + }, + { + "description": "Enables the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-app-menu", + "markdownDescription": "Enables the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-help-menu-for-nsapp", + "markdownDescription": "Enables the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-window-menu", + "markdownDescription": "Enables the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-as-windows-menu-for-nsapp", + "markdownDescription": "Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Enables the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-checked", + "markdownDescription": "Enables the set_checked command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-set-text", + "markdownDescription": "Enables the set_text command without any pre-configured scope." + }, + { + "description": "Enables the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:allow-text", + "markdownDescription": "Enables the text command without any pre-configured scope." + }, + { + "description": "Denies the append command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-append", + "markdownDescription": "Denies the append command without any pre-configured scope." + }, + { + "description": "Denies the create_default command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-create-default", + "markdownDescription": "Denies the create_default command without any pre-configured scope." + }, + { + "description": "Denies the get command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-get", + "markdownDescription": "Denies the get command without any pre-configured scope." + }, + { + "description": "Denies the insert command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-insert", + "markdownDescription": "Denies the insert command without any pre-configured scope." + }, + { + "description": "Denies the is_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-checked", + "markdownDescription": "Denies the is_checked command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the items command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-items", + "markdownDescription": "Denies the items command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the popup command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-popup", + "markdownDescription": "Denies the popup command without any pre-configured scope." + }, + { + "description": "Denies the prepend command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-prepend", + "markdownDescription": "Denies the prepend command without any pre-configured scope." + }, + { + "description": "Denies the remove command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove", + "markdownDescription": "Denies the remove command without any pre-configured scope." + }, + { + "description": "Denies the remove_at command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-remove-at", + "markdownDescription": "Denies the remove_at command without any pre-configured scope." + }, + { + "description": "Denies the set_accelerator command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-accelerator", + "markdownDescription": "Denies the set_accelerator command without any pre-configured scope." + }, + { + "description": "Denies the set_as_app_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-app-menu", + "markdownDescription": "Denies the set_as_app_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-help-menu-for-nsapp", + "markdownDescription": "Denies the set_as_help_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_as_window_menu command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-window-menu", + "markdownDescription": "Denies the set_as_window_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-as-windows-menu-for-nsapp", + "markdownDescription": "Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope." + }, + { + "description": "Denies the set_checked command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-checked", + "markdownDescription": "Denies the set_checked command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-set-text", + "markdownDescription": "Denies the set_text command without any pre-configured scope." + }, + { + "description": "Denies the text command without any pre-configured scope.", + "type": "string", + "const": "core:menu:deny-text", + "markdownDescription": "Denies the text command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`", + "type": "string", + "const": "core:path:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-resolve-directory`\n- `allow-resolve`\n- `allow-normalize`\n- `allow-join`\n- `allow-dirname`\n- `allow-extname`\n- `allow-basename`\n- `allow-is-absolute`" + }, + { + "description": "Enables the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-basename", + "markdownDescription": "Enables the basename command without any pre-configured scope." + }, + { + "description": "Enables the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-dirname", + "markdownDescription": "Enables the dirname command without any pre-configured scope." + }, + { + "description": "Enables the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-extname", + "markdownDescription": "Enables the extname command without any pre-configured scope." + }, + { + "description": "Enables the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-is-absolute", + "markdownDescription": "Enables the is_absolute command without any pre-configured scope." + }, + { + "description": "Enables the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-join", + "markdownDescription": "Enables the join command without any pre-configured scope." + }, + { + "description": "Enables the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-normalize", + "markdownDescription": "Enables the normalize command without any pre-configured scope." + }, + { + "description": "Enables the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve", + "markdownDescription": "Enables the resolve command without any pre-configured scope." + }, + { + "description": "Enables the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:allow-resolve-directory", + "markdownDescription": "Enables the resolve_directory command without any pre-configured scope." + }, + { + "description": "Denies the basename command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-basename", + "markdownDescription": "Denies the basename command without any pre-configured scope." + }, + { + "description": "Denies the dirname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-dirname", + "markdownDescription": "Denies the dirname command without any pre-configured scope." + }, + { + "description": "Denies the extname command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-extname", + "markdownDescription": "Denies the extname command without any pre-configured scope." + }, + { + "description": "Denies the is_absolute command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-is-absolute", + "markdownDescription": "Denies the is_absolute command without any pre-configured scope." + }, + { + "description": "Denies the join command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-join", + "markdownDescription": "Denies the join command without any pre-configured scope." + }, + { + "description": "Denies the normalize command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-normalize", + "markdownDescription": "Denies the normalize command without any pre-configured scope." + }, + { + "description": "Denies the resolve command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve", + "markdownDescription": "Denies the resolve command without any pre-configured scope." + }, + { + "description": "Denies the resolve_directory command without any pre-configured scope.", + "type": "string", + "const": "core:path:deny-resolve-directory", + "markdownDescription": "Denies the resolve_directory command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`", + "type": "string", + "const": "core:resources:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-close`" + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:resources:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-show-menu-on-left-click`", + "type": "string", + "const": "core:tray:default", + "markdownDescription": "Default permissions for the plugin, which enables all commands.\n#### This default permission set includes:\n\n- `allow-new`\n- `allow-get-by-id`\n- `allow-remove-by-id`\n- `allow-set-icon`\n- `allow-set-menu`\n- `allow-set-tooltip`\n- `allow-set-title`\n- `allow-set-visible`\n- `allow-set-temp-dir-path`\n- `allow-set-icon-as-template`\n- `allow-set-show-menu-on-left-click`" + }, + { + "description": "Enables the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-get-by-id", + "markdownDescription": "Enables the get_by_id command without any pre-configured scope." + }, + { + "description": "Enables the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-new", + "markdownDescription": "Enables the new command without any pre-configured scope." + }, + { + "description": "Enables the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-remove-by-id", + "markdownDescription": "Enables the remove_by_id command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-icon-as-template", + "markdownDescription": "Enables the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Enables the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-menu", + "markdownDescription": "Enables the set_menu command without any pre-configured scope." + }, + { + "description": "Enables the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-show-menu-on-left-click", + "markdownDescription": "Enables the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Enables the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-temp-dir-path", + "markdownDescription": "Enables the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-tooltip", + "markdownDescription": "Enables the set_tooltip command without any pre-configured scope." + }, + { + "description": "Enables the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:allow-set-visible", + "markdownDescription": "Enables the set_visible command without any pre-configured scope." + }, + { + "description": "Denies the get_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-get-by-id", + "markdownDescription": "Denies the get_by_id command without any pre-configured scope." + }, + { + "description": "Denies the new command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-new", + "markdownDescription": "Denies the new command without any pre-configured scope." + }, + { + "description": "Denies the remove_by_id command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-remove-by-id", + "markdownDescription": "Denies the remove_by_id command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_icon_as_template command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-icon-as-template", + "markdownDescription": "Denies the set_icon_as_template command without any pre-configured scope." + }, + { + "description": "Denies the set_menu command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-menu", + "markdownDescription": "Denies the set_menu command without any pre-configured scope." + }, + { + "description": "Denies the set_show_menu_on_left_click command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-show-menu-on-left-click", + "markdownDescription": "Denies the set_show_menu_on_left_click command without any pre-configured scope." + }, + { + "description": "Denies the set_temp_dir_path command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-temp-dir-path", + "markdownDescription": "Denies the set_temp_dir_path command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_tooltip command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-tooltip", + "markdownDescription": "Denies the set_tooltip command without any pre-configured scope." + }, + { + "description": "Denies the set_visible command without any pre-configured scope.", + "type": "string", + "const": "core:tray:deny-set-visible", + "markdownDescription": "Denies the set_visible command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`", + "type": "string", + "const": "core:webview:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-webviews`\n- `allow-webview-position`\n- `allow-webview-size`\n- `allow-internal-toggle-devtools`" + }, + { + "description": "Enables the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-clear-all-browsing-data", + "markdownDescription": "Enables the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Enables the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview", + "markdownDescription": "Enables the create_webview command without any pre-configured scope." + }, + { + "description": "Enables the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-create-webview-window", + "markdownDescription": "Enables the create_webview_window command without any pre-configured scope." + }, + { + "description": "Enables the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-get-all-webviews", + "markdownDescription": "Enables the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-internal-toggle-devtools", + "markdownDescription": "Enables the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Enables the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-print", + "markdownDescription": "Enables the print command without any pre-configured scope." + }, + { + "description": "Enables the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-reparent", + "markdownDescription": "Enables the reparent command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-auto-resize", + "markdownDescription": "Enables the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-background-color", + "markdownDescription": "Enables the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-focus", + "markdownDescription": "Enables the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-position", + "markdownDescription": "Enables the set_webview_position command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-size", + "markdownDescription": "Enables the set_webview_size command without any pre-configured scope." + }, + { + "description": "Enables the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-set-webview-zoom", + "markdownDescription": "Enables the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Enables the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-close", + "markdownDescription": "Enables the webview_close command without any pre-configured scope." + }, + { + "description": "Enables the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-hide", + "markdownDescription": "Enables the webview_hide command without any pre-configured scope." + }, + { + "description": "Enables the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-position", + "markdownDescription": "Enables the webview_position command without any pre-configured scope." + }, + { + "description": "Enables the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-show", + "markdownDescription": "Enables the webview_show command without any pre-configured scope." + }, + { + "description": "Enables the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:allow-webview-size", + "markdownDescription": "Enables the webview_size command without any pre-configured scope." + }, + { + "description": "Denies the clear_all_browsing_data command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-clear-all-browsing-data", + "markdownDescription": "Denies the clear_all_browsing_data command without any pre-configured scope." + }, + { + "description": "Denies the create_webview command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview", + "markdownDescription": "Denies the create_webview command without any pre-configured scope." + }, + { + "description": "Denies the create_webview_window command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-create-webview-window", + "markdownDescription": "Denies the create_webview_window command without any pre-configured scope." + }, + { + "description": "Denies the get_all_webviews command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-get-all-webviews", + "markdownDescription": "Denies the get_all_webviews command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_devtools command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-internal-toggle-devtools", + "markdownDescription": "Denies the internal_toggle_devtools command without any pre-configured scope." + }, + { + "description": "Denies the print command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-print", + "markdownDescription": "Denies the print command without any pre-configured scope." + }, + { + "description": "Denies the reparent command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-reparent", + "markdownDescription": "Denies the reparent command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_auto_resize command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-auto-resize", + "markdownDescription": "Denies the set_webview_auto_resize command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-background-color", + "markdownDescription": "Denies the set_webview_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_focus command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-focus", + "markdownDescription": "Denies the set_webview_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-position", + "markdownDescription": "Denies the set_webview_position command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-size", + "markdownDescription": "Denies the set_webview_size command without any pre-configured scope." + }, + { + "description": "Denies the set_webview_zoom command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-set-webview-zoom", + "markdownDescription": "Denies the set_webview_zoom command without any pre-configured scope." + }, + { + "description": "Denies the webview_close command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-close", + "markdownDescription": "Denies the webview_close command without any pre-configured scope." + }, + { + "description": "Denies the webview_hide command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-hide", + "markdownDescription": "Denies the webview_hide command without any pre-configured scope." + }, + { + "description": "Denies the webview_position command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-position", + "markdownDescription": "Denies the webview_position command without any pre-configured scope." + }, + { + "description": "Denies the webview_show command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-show", + "markdownDescription": "Denies the webview_show command without any pre-configured scope." + }, + { + "description": "Denies the webview_size command without any pre-configured scope.", + "type": "string", + "const": "core:webview:deny-webview-size", + "markdownDescription": "Denies the webview_size command without any pre-configured scope." + }, + { + "description": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-internal-toggle-maximize`", + "type": "string", + "const": "core:window:default", + "markdownDescription": "Default permissions for the plugin.\n#### This default permission set includes:\n\n- `allow-get-all-windows`\n- `allow-scale-factor`\n- `allow-inner-position`\n- `allow-outer-position`\n- `allow-inner-size`\n- `allow-outer-size`\n- `allow-is-fullscreen`\n- `allow-is-minimized`\n- `allow-is-maximized`\n- `allow-is-focused`\n- `allow-is-decorated`\n- `allow-is-resizable`\n- `allow-is-maximizable`\n- `allow-is-minimizable`\n- `allow-is-closable`\n- `allow-is-visible`\n- `allow-is-enabled`\n- `allow-title`\n- `allow-current-monitor`\n- `allow-primary-monitor`\n- `allow-monitor-from-point`\n- `allow-available-monitors`\n- `allow-cursor-position`\n- `allow-theme`\n- `allow-is-always-on-top`\n- `allow-internal-toggle-maximize`" + }, + { + "description": "Enables the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-available-monitors", + "markdownDescription": "Enables the available_monitors command without any pre-configured scope." + }, + { + "description": "Enables the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-center", + "markdownDescription": "Enables the center command without any pre-configured scope." + }, + { + "description": "Enables the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-close", + "markdownDescription": "Enables the close command without any pre-configured scope." + }, + { + "description": "Enables the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-create", + "markdownDescription": "Enables the create command without any pre-configured scope." + }, + { + "description": "Enables the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-current-monitor", + "markdownDescription": "Enables the current_monitor command without any pre-configured scope." + }, + { + "description": "Enables the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-cursor-position", + "markdownDescription": "Enables the cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-destroy", + "markdownDescription": "Enables the destroy command without any pre-configured scope." + }, + { + "description": "Enables the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-get-all-windows", + "markdownDescription": "Enables the get_all_windows command without any pre-configured scope." + }, + { + "description": "Enables the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-hide", + "markdownDescription": "Enables the hide command without any pre-configured scope." + }, + { + "description": "Enables the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-position", + "markdownDescription": "Enables the inner_position command without any pre-configured scope." + }, + { + "description": "Enables the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-inner-size", + "markdownDescription": "Enables the inner_size command without any pre-configured scope." + }, + { + "description": "Enables the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-internal-toggle-maximize", + "markdownDescription": "Enables the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-always-on-top", + "markdownDescription": "Enables the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-closable", + "markdownDescription": "Enables the is_closable command without any pre-configured scope." + }, + { + "description": "Enables the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-decorated", + "markdownDescription": "Enables the is_decorated command without any pre-configured scope." + }, + { + "description": "Enables the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-enabled", + "markdownDescription": "Enables the is_enabled command without any pre-configured scope." + }, + { + "description": "Enables the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-focused", + "markdownDescription": "Enables the is_focused command without any pre-configured scope." + }, + { + "description": "Enables the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-fullscreen", + "markdownDescription": "Enables the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximizable", + "markdownDescription": "Enables the is_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-maximized", + "markdownDescription": "Enables the is_maximized command without any pre-configured scope." + }, + { + "description": "Enables the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimizable", + "markdownDescription": "Enables the is_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-minimized", + "markdownDescription": "Enables the is_minimized command without any pre-configured scope." + }, + { + "description": "Enables the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-resizable", + "markdownDescription": "Enables the is_resizable command without any pre-configured scope." + }, + { + "description": "Enables the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-is-visible", + "markdownDescription": "Enables the is_visible command without any pre-configured scope." + }, + { + "description": "Enables the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-maximize", + "markdownDescription": "Enables the maximize command without any pre-configured scope." + }, + { + "description": "Enables the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-minimize", + "markdownDescription": "Enables the minimize command without any pre-configured scope." + }, + { + "description": "Enables the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-monitor-from-point", + "markdownDescription": "Enables the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Enables the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-position", + "markdownDescription": "Enables the outer_position command without any pre-configured scope." + }, + { + "description": "Enables the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-outer-size", + "markdownDescription": "Enables the outer_size command without any pre-configured scope." + }, + { + "description": "Enables the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-primary-monitor", + "markdownDescription": "Enables the primary_monitor command without any pre-configured scope." + }, + { + "description": "Enables the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-request-user-attention", + "markdownDescription": "Enables the request_user_attention command without any pre-configured scope." + }, + { + "description": "Enables the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-scale-factor", + "markdownDescription": "Enables the scale_factor command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-bottom", + "markdownDescription": "Enables the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Enables the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-always-on-top", + "markdownDescription": "Enables the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Enables the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-background-color", + "markdownDescription": "Enables the set_background_color command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-count", + "markdownDescription": "Enables the set_badge_count command without any pre-configured scope." + }, + { + "description": "Enables the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-badge-label", + "markdownDescription": "Enables the set_badge_label command without any pre-configured scope." + }, + { + "description": "Enables the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-closable", + "markdownDescription": "Enables the set_closable command without any pre-configured scope." + }, + { + "description": "Enables the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-content-protected", + "markdownDescription": "Enables the set_content_protected command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-grab", + "markdownDescription": "Enables the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-icon", + "markdownDescription": "Enables the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-position", + "markdownDescription": "Enables the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Enables the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-cursor-visible", + "markdownDescription": "Enables the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Enables the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-decorations", + "markdownDescription": "Enables the set_decorations command without any pre-configured scope." + }, + { + "description": "Enables the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-effects", + "markdownDescription": "Enables the set_effects command without any pre-configured scope." + }, + { + "description": "Enables the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-enabled", + "markdownDescription": "Enables the set_enabled command without any pre-configured scope." + }, + { + "description": "Enables the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focus", + "markdownDescription": "Enables the set_focus command without any pre-configured scope." + }, + { + "description": "Enables the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-focusable", + "markdownDescription": "Enables the set_focusable command without any pre-configured scope." + }, + { + "description": "Enables the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-fullscreen", + "markdownDescription": "Enables the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-icon", + "markdownDescription": "Enables the set_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-ignore-cursor-events", + "markdownDescription": "Enables the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Enables the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-max-size", + "markdownDescription": "Enables the set_max_size command without any pre-configured scope." + }, + { + "description": "Enables the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-maximizable", + "markdownDescription": "Enables the set_maximizable command without any pre-configured scope." + }, + { + "description": "Enables the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-min-size", + "markdownDescription": "Enables the set_min_size command without any pre-configured scope." + }, + { + "description": "Enables the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-minimizable", + "markdownDescription": "Enables the set_minimizable command without any pre-configured scope." + }, + { + "description": "Enables the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-overlay-icon", + "markdownDescription": "Enables the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Enables the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-position", + "markdownDescription": "Enables the set_position command without any pre-configured scope." + }, + { + "description": "Enables the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-progress-bar", + "markdownDescription": "Enables the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Enables the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-resizable", + "markdownDescription": "Enables the set_resizable command without any pre-configured scope." + }, + { + "description": "Enables the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-shadow", + "markdownDescription": "Enables the set_shadow command without any pre-configured scope." + }, + { + "description": "Enables the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-simple-fullscreen", + "markdownDescription": "Enables the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Enables the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size", + "markdownDescription": "Enables the set_size command without any pre-configured scope." + }, + { + "description": "Enables the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-size-constraints", + "markdownDescription": "Enables the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Enables the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-skip-taskbar", + "markdownDescription": "Enables the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Enables the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-theme", + "markdownDescription": "Enables the set_theme command without any pre-configured scope." + }, + { + "description": "Enables the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title", + "markdownDescription": "Enables the set_title command without any pre-configured scope." + }, + { + "description": "Enables the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-title-bar-style", + "markdownDescription": "Enables the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Enables the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-set-visible-on-all-workspaces", + "markdownDescription": "Enables the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Enables the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-show", + "markdownDescription": "Enables the show command without any pre-configured scope." + }, + { + "description": "Enables the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-dragging", + "markdownDescription": "Enables the start_dragging command without any pre-configured scope." + }, + { + "description": "Enables the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-start-resize-dragging", + "markdownDescription": "Enables the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Enables the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-theme", + "markdownDescription": "Enables the theme command without any pre-configured scope." + }, + { + "description": "Enables the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-title", + "markdownDescription": "Enables the title command without any pre-configured scope." + }, + { + "description": "Enables the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-toggle-maximize", + "markdownDescription": "Enables the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Enables the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unmaximize", + "markdownDescription": "Enables the unmaximize command without any pre-configured scope." + }, + { + "description": "Enables the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:allow-unminimize", + "markdownDescription": "Enables the unminimize command without any pre-configured scope." + }, + { + "description": "Denies the available_monitors command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-available-monitors", + "markdownDescription": "Denies the available_monitors command without any pre-configured scope." + }, + { + "description": "Denies the center command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-center", + "markdownDescription": "Denies the center command without any pre-configured scope." + }, + { + "description": "Denies the close command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-close", + "markdownDescription": "Denies the close command without any pre-configured scope." + }, + { + "description": "Denies the create command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-create", + "markdownDescription": "Denies the create command without any pre-configured scope." + }, + { + "description": "Denies the current_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-current-monitor", + "markdownDescription": "Denies the current_monitor command without any pre-configured scope." + }, + { + "description": "Denies the cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-cursor-position", + "markdownDescription": "Denies the cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the destroy command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-destroy", + "markdownDescription": "Denies the destroy command without any pre-configured scope." + }, + { + "description": "Denies the get_all_windows command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-get-all-windows", + "markdownDescription": "Denies the get_all_windows command without any pre-configured scope." + }, + { + "description": "Denies the hide command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-hide", + "markdownDescription": "Denies the hide command without any pre-configured scope." + }, + { + "description": "Denies the inner_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-position", + "markdownDescription": "Denies the inner_position command without any pre-configured scope." + }, + { + "description": "Denies the inner_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-inner-size", + "markdownDescription": "Denies the inner_size command without any pre-configured scope." + }, + { + "description": "Denies the internal_toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-internal-toggle-maximize", + "markdownDescription": "Denies the internal_toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the is_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-always-on-top", + "markdownDescription": "Denies the is_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the is_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-closable", + "markdownDescription": "Denies the is_closable command without any pre-configured scope." + }, + { + "description": "Denies the is_decorated command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-decorated", + "markdownDescription": "Denies the is_decorated command without any pre-configured scope." + }, + { + "description": "Denies the is_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-enabled", + "markdownDescription": "Denies the is_enabled command without any pre-configured scope." + }, + { + "description": "Denies the is_focused command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-focused", + "markdownDescription": "Denies the is_focused command without any pre-configured scope." + }, + { + "description": "Denies the is_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-fullscreen", + "markdownDescription": "Denies the is_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the is_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximizable", + "markdownDescription": "Denies the is_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the is_maximized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-maximized", + "markdownDescription": "Denies the is_maximized command without any pre-configured scope." + }, + { + "description": "Denies the is_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimizable", + "markdownDescription": "Denies the is_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the is_minimized command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-minimized", + "markdownDescription": "Denies the is_minimized command without any pre-configured scope." + }, + { + "description": "Denies the is_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-resizable", + "markdownDescription": "Denies the is_resizable command without any pre-configured scope." + }, + { + "description": "Denies the is_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-is-visible", + "markdownDescription": "Denies the is_visible command without any pre-configured scope." + }, + { + "description": "Denies the maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-maximize", + "markdownDescription": "Denies the maximize command without any pre-configured scope." + }, + { + "description": "Denies the minimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-minimize", + "markdownDescription": "Denies the minimize command without any pre-configured scope." + }, + { + "description": "Denies the monitor_from_point command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-monitor-from-point", + "markdownDescription": "Denies the monitor_from_point command without any pre-configured scope." + }, + { + "description": "Denies the outer_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-position", + "markdownDescription": "Denies the outer_position command without any pre-configured scope." + }, + { + "description": "Denies the outer_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-outer-size", + "markdownDescription": "Denies the outer_size command without any pre-configured scope." + }, + { + "description": "Denies the primary_monitor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-primary-monitor", + "markdownDescription": "Denies the primary_monitor command without any pre-configured scope." + }, + { + "description": "Denies the request_user_attention command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-request-user-attention", + "markdownDescription": "Denies the request_user_attention command without any pre-configured scope." + }, + { + "description": "Denies the scale_factor command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-scale-factor", + "markdownDescription": "Denies the scale_factor command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_bottom command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-bottom", + "markdownDescription": "Denies the set_always_on_bottom command without any pre-configured scope." + }, + { + "description": "Denies the set_always_on_top command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-always-on-top", + "markdownDescription": "Denies the set_always_on_top command without any pre-configured scope." + }, + { + "description": "Denies the set_background_color command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-background-color", + "markdownDescription": "Denies the set_background_color command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_count command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-count", + "markdownDescription": "Denies the set_badge_count command without any pre-configured scope." + }, + { + "description": "Denies the set_badge_label command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-badge-label", + "markdownDescription": "Denies the set_badge_label command without any pre-configured scope." + }, + { + "description": "Denies the set_closable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-closable", + "markdownDescription": "Denies the set_closable command without any pre-configured scope." + }, + { + "description": "Denies the set_content_protected command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-content-protected", + "markdownDescription": "Denies the set_content_protected command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_grab command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-grab", + "markdownDescription": "Denies the set_cursor_grab command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-icon", + "markdownDescription": "Denies the set_cursor_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-position", + "markdownDescription": "Denies the set_cursor_position command without any pre-configured scope." + }, + { + "description": "Denies the set_cursor_visible command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-cursor-visible", + "markdownDescription": "Denies the set_cursor_visible command without any pre-configured scope." + }, + { + "description": "Denies the set_decorations command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-decorations", + "markdownDescription": "Denies the set_decorations command without any pre-configured scope." + }, + { + "description": "Denies the set_effects command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-effects", + "markdownDescription": "Denies the set_effects command without any pre-configured scope." + }, + { + "description": "Denies the set_enabled command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-enabled", + "markdownDescription": "Denies the set_enabled command without any pre-configured scope." + }, + { + "description": "Denies the set_focus command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focus", + "markdownDescription": "Denies the set_focus command without any pre-configured scope." + }, + { + "description": "Denies the set_focusable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-focusable", + "markdownDescription": "Denies the set_focusable command without any pre-configured scope." + }, + { + "description": "Denies the set_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-fullscreen", + "markdownDescription": "Denies the set_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-icon", + "markdownDescription": "Denies the set_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_ignore_cursor_events command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-ignore-cursor-events", + "markdownDescription": "Denies the set_ignore_cursor_events command without any pre-configured scope." + }, + { + "description": "Denies the set_max_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-max-size", + "markdownDescription": "Denies the set_max_size command without any pre-configured scope." + }, + { + "description": "Denies the set_maximizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-maximizable", + "markdownDescription": "Denies the set_maximizable command without any pre-configured scope." + }, + { + "description": "Denies the set_min_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-min-size", + "markdownDescription": "Denies the set_min_size command without any pre-configured scope." + }, + { + "description": "Denies the set_minimizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-minimizable", + "markdownDescription": "Denies the set_minimizable command without any pre-configured scope." + }, + { + "description": "Denies the set_overlay_icon command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-overlay-icon", + "markdownDescription": "Denies the set_overlay_icon command without any pre-configured scope." + }, + { + "description": "Denies the set_position command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-position", + "markdownDescription": "Denies the set_position command without any pre-configured scope." + }, + { + "description": "Denies the set_progress_bar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-progress-bar", + "markdownDescription": "Denies the set_progress_bar command without any pre-configured scope." + }, + { + "description": "Denies the set_resizable command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-resizable", + "markdownDescription": "Denies the set_resizable command without any pre-configured scope." + }, + { + "description": "Denies the set_shadow command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-shadow", + "markdownDescription": "Denies the set_shadow command without any pre-configured scope." + }, + { + "description": "Denies the set_simple_fullscreen command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-simple-fullscreen", + "markdownDescription": "Denies the set_simple_fullscreen command without any pre-configured scope." + }, + { + "description": "Denies the set_size command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size", + "markdownDescription": "Denies the set_size command without any pre-configured scope." + }, + { + "description": "Denies the set_size_constraints command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-size-constraints", + "markdownDescription": "Denies the set_size_constraints command without any pre-configured scope." + }, + { + "description": "Denies the set_skip_taskbar command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-skip-taskbar", + "markdownDescription": "Denies the set_skip_taskbar command without any pre-configured scope." + }, + { + "description": "Denies the set_theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-theme", + "markdownDescription": "Denies the set_theme command without any pre-configured scope." + }, + { + "description": "Denies the set_title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title", + "markdownDescription": "Denies the set_title command without any pre-configured scope." + }, + { + "description": "Denies the set_title_bar_style command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-title-bar-style", + "markdownDescription": "Denies the set_title_bar_style command without any pre-configured scope." + }, + { + "description": "Denies the set_visible_on_all_workspaces command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-set-visible-on-all-workspaces", + "markdownDescription": "Denies the set_visible_on_all_workspaces command without any pre-configured scope." + }, + { + "description": "Denies the show command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-show", + "markdownDescription": "Denies the show command without any pre-configured scope." + }, + { + "description": "Denies the start_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-dragging", + "markdownDescription": "Denies the start_dragging command without any pre-configured scope." + }, + { + "description": "Denies the start_resize_dragging command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-start-resize-dragging", + "markdownDescription": "Denies the start_resize_dragging command without any pre-configured scope." + }, + { + "description": "Denies the theme command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-theme", + "markdownDescription": "Denies the theme command without any pre-configured scope." + }, + { + "description": "Denies the title command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-title", + "markdownDescription": "Denies the title command without any pre-configured scope." + }, + { + "description": "Denies the toggle_maximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-toggle-maximize", + "markdownDescription": "Denies the toggle_maximize command without any pre-configured scope." + }, + { + "description": "Denies the unmaximize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unmaximize", + "markdownDescription": "Denies the unmaximize command without any pre-configured scope." + }, + { + "description": "Denies the unminimize command without any pre-configured scope.", + "type": "string", + "const": "core:window:deny-unminimize", + "markdownDescription": "Denies the unminimize command without any pre-configured scope." + }, + { + "description": "Enables the check_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-check-permissions", + "markdownDescription": "Enables the check_permissions command without any pre-configured scope." + }, + { + "description": "Enables the clear_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-clear-permissions", + "markdownDescription": "Enables the clear_permissions command without any pre-configured scope." + }, + { + "description": "Enables the clear_watch command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-clear-watch", + "markdownDescription": "Enables the clear_watch command without any pre-configured scope." + }, + { + "description": "Enables the get_current_position command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-get-current-position", + "markdownDescription": "Enables the get_current_position command without any pre-configured scope." + }, + { + "description": "Enables the request_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-request-permissions", + "markdownDescription": "Enables the request_permissions command without any pre-configured scope." + }, + { + "description": "Enables the watch_position command without any pre-configured scope.", + "type": "string", + "const": "geolocation:allow-watch-position", + "markdownDescription": "Enables the watch_position command without any pre-configured scope." + }, + { + "description": "Denies the check_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-check-permissions", + "markdownDescription": "Denies the check_permissions command without any pre-configured scope." + }, + { + "description": "Denies the clear_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-clear-permissions", + "markdownDescription": "Denies the clear_permissions command without any pre-configured scope." + }, + { + "description": "Denies the clear_watch command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-clear-watch", + "markdownDescription": "Denies the clear_watch command without any pre-configured scope." + }, + { + "description": "Denies the get_current_position command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-get-current-position", + "markdownDescription": "Denies the get_current_position command without any pre-configured scope." + }, + { + "description": "Denies the request_permissions command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-request-permissions", + "markdownDescription": "Denies the request_permissions command without any pre-configured scope." + }, + { + "description": "Denies the watch_position command without any pre-configured scope.", + "type": "string", + "const": "geolocation:deny-watch-position", + "markdownDescription": "Denies the watch_position command without any pre-configured scope." + } + ] + }, + "Value": { + "description": "All supported ACL values.", + "anyOf": [ + { + "description": "Represents a null JSON value.", + "type": "null" + }, + { + "description": "Represents a [`bool`].", + "type": "boolean" + }, + { + "description": "Represents a valid ACL [`Number`].", + "allOf": [ + { + "$ref": "#/definitions/Number" + } + ] + }, + { + "description": "Represents a [`String`].", + "type": "string" + }, + { + "description": "Represents a list of other [`Value`]s.", + "type": "array", + "items": { + "$ref": "#/definitions/Value" + } + }, + { + "description": "Represents a map of [`String`] keys to [`Value`]s.", + "type": "object", + "additionalProperties": { + "$ref": "#/definitions/Value" + } + } + ] + }, + "Number": { + "description": "A valid ACL number.", + "anyOf": [ + { + "description": "Represents an [`i64`].", + "type": "integer", + "format": "int64" + }, + { + "description": "Represents a [`f64`].", + "type": "number", + "format": "double" + } + ] + }, + "Target": { + "description": "Platform target.", + "oneOf": [ + { + "description": "MacOS.", + "type": "string", + "enum": [ + "macOS" + ] + }, + { + "description": "Windows.", + "type": "string", + "enum": [ + "windows" + ] + }, + { + "description": "Linux.", + "type": "string", + "enum": [ + "linux" + ] + }, + { + "description": "Android.", + "type": "string", + "enum": [ + "android" + ] + }, + { + "description": "iOS.", + "type": "string", + "enum": [ + "iOS" + ] + } + ] + } + } +} \ No newline at end of file diff --git a/src-tauri/icons/icon.icns b/src-tauri/icons/icon.icns index 7add4c0a89d25e2c4d94939724c013f458128f04..7fc9e2d5089749311d6b13b157fa5d499d354a4b 100644 GIT binary patch delta 44 zcmaEToA32)z71-O+ovWnyE$xrB%|lL{q{m;0iI^wq;}pU#_haGOdbC>t1<4B1^}#? B5pn1gQMymnIi+DVMt*G^(;{l8g_(amA=tTq820J

A`2YX_ diff --git a/src-tauri/src/main.rs b/src-tauri/src/main.rs index 56fd6f9..0cf095e 100644 --- a/src-tauri/src/main.rs +++ b/src-tauri/src/main.rs @@ -1,5 +1,5 @@ #![cfg_attr(not(debug_assertions), windows_subsystem = "windows")] fn main() { - bocken_fitness_lib::run(); + bocken_lib::run(); } diff --git a/src-tauri/tauri.conf.json b/src-tauri/tauri.conf.json index 9410605..c633047 100644 --- a/src-tauri/tauri.conf.json +++ b/src-tauri/tauri.conf.json @@ -1,6 +1,6 @@ { - "productName": "Bocken Fitness", - "identifier": "org.bocken.fitness", + "productName": "Bocken", + "identifier": "org.bocken.app", "version": "0.1.0", "build": { "devUrl": "http://192.168.1.4:5173", @@ -10,8 +10,8 @@ "withGlobalTauri": true, "windows": [ { - "title": "Bocken Fitness", - "url": "/fitness", + "title": "Bocken", + "url": "/", "fullscreen": false, "useHttpsScheme": true } diff --git a/static/manifest.json b/static/manifest.json index 1e846be..5b06cbd 100644 --- a/static/manifest.json +++ b/static/manifest.json @@ -1,8 +1,8 @@ { - "name": "Bocken Rezepte", - "short_name": "Rezepte", - "description": "Eine stetig wachsende Ansammlung an Rezepten aus der Bockenschen Küche", - "start_url": "/rezepte", + "name": "Bocken", + "short_name": "Bocken", + "description": "bocken.org", + "start_url": "/", "scope": "/", "display": "standalone", "theme_color": "#5E81AC",