Initial implementation
DreamingCodes committed
Jul 24, 2024 at 01:14 UTC
7b2caeaf164eccab00b9b7786bfe81cb47d61e2d
52 files changed
+6662
-184
README.md
+23
-9
@@ -1,7 +1,12 @@
1
# Tauri Plugin admob
2
3
+> For now this is just a copy of [admob-plus](https://github.com/admob-plus/admob-plus) in the future I would like to refactor the code to be more Tauri friendly.
4
+
5
### How to install
4
-1. Since google library uses different Kotlin version than Tauri you may need to add the following compiler arg: `-Xskip-metadata-version-check`
6
+
7
+1. Since google library uses different Kotlin version than Tauri you may need to add the following compiler
8
+ arg: `-Xskip-metadata-version-check`
9
+
10
```kotlin
11
// src-tauri/gen/android/app/build.gradle.kts
12
kotlinOptions {
@@ -9,17 +14,26 @@ kotlinOptions {
14
freeCompilerArgs += "-Xskip-metadata-version-check"
15
}
16
```
12
-2. Add your AdMob app ID, as [identified in the AdMob web interface](https://support.google.com/admob/answer/7356431), to your app's AndroidManifest.xml.
13
-To do so, add a `<meta-data>` tag with `android:name="com.google.android.gms.ads.APPLICATION_ID"`. You can find your **app ID** in the AdMob web interface. For `android:value`, insert your own AdMob app ID, surrounded by quotation marks.
17
+
18
+2. Add your AdMob app ID, as [identified in the AdMob web interface](https://support.google.com/admob/answer/7356431),
19
+ to your app's AndroidManifest.xml.
20
+ To do so, add a `<meta-data>` tag with `android:name="com.google.android.gms.ads.APPLICATION_ID"`. You can find your
21
+ **app ID** in the AdMob web interface. For `android:value`, insert your own AdMob app ID, surrounded by quotation
22
+ marks.
23
+
24
```xml
25
<!-- ./src-tauri/gen/android/app/src/main/AndroidManifest.xml -->
26
<manifest>
17
- <application>
18
- <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
19
- <meta-data
20
- android:name="com.google.android.gms.ads.APPLICATION_ID"
21
- android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
22
- </application>
27
+ <application>
28
+ <!-- Sample AdMob app ID: ca-app-pub-3940256099942544~3347511713 -->
29
+ <meta-data
30
+ android:name="com.google.android.gms.ads.APPLICATION_ID"
31
+ android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>
32
+ <meta-data
33
+ android:name="com.google.android.gms.ads.DELAY_APP_MEASUREMENT_INIT"
34
+ android:value="true"/>
35
+ </application>
36
</manifest>
37
```
38
+
39
3. Install this plugin as any other Tauri plugin
android/src/main/AndroidManifest.xml
+1
@@ -1,4 +1,5 @@
1
<?xml version="1.0" encoding="utf-8"?>
2
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
4
<uses-permission android:name="android.permission.INTERNET"/>
5
</manifest>
android/src/main/java/AdmobImpl.kt
deleted
-23
@@ -1,23 +0,0 @@
1
-package com.plugin.admob
2
-
3
-import android.app.Activity
4
-import android.util.Log
5
-import com.google.android.gms.ads.MobileAds
6
-import kotlinx.coroutines.CoroutineScope
7
-import kotlinx.coroutines.Dispatchers
8
-import kotlinx.coroutines.launch
9
-
10
-class AdmobImpl(private val activity: Activity) {
11
- fun initialize() {
12
- val backgroundScope = CoroutineScope(Dispatchers.IO)
13
- backgroundScope.launch {
14
- // Initialize the Google Mobile Ads SDK on a background thread.
15
- MobileAds.initialize(activity)
16
- }
17
- }
18
-
19
- fun pong(value: String): String {
20
- Log.i("Pong", value)
21
- return value
22
- }
23
-}
android/src/main/java/AdmobPlugin.kt
+143
-10
@@ -8,27 +8,160 @@ import app.tauri.annotation.TauriPlugin
8
import app.tauri.plugin.JSObject
9
import app.tauri.plugin.Plugin
10
import app.tauri.plugin.Invoke
11
+import com.google.android.gms.ads.MobileAds
12
+import com.google.android.gms.ads.initialization.InitializationStatus
13
+import com.plugin.admob.ads.Banner
14
+import com.plugin.admob.ads.Interstitial
15
+import com.plugin.admob.ads.Rewarded
16
+import com.plugin.admob.ads.RewardedInterstitial
17
+import com.plugin.admob.core.GenericAd
18
+import com.plugin.admob.core.Helper
19
+import org.json.JSONException
20
+import org.json.JSONObject
21
22
@InvokeArg
13
-class PingArgs {
14
- var value: String? = null
23
+class InvokeArgs {
24
+ var payload: JSObject? = null
25
+ var ctx: String? = null
26
+ var adUnitId: String? = null
27
+ var appMuted: Boolean? = null
28
+ var appVolume: Float? = null
29
+ var position: String? = null
30
+ var contentUrl: String? = null
31
+ var npa: String? = null
32
+ var maxAdContentRating: String? = null
33
+ val tagForChildDirectedTreatment: Boolean? = null
34
+ val tagForUnderAgeOfConsent: Boolean? = null
35
+ val testDeviceIds: List<String?>? = null
36
+ val serverSideVerification: JSObject? = null
37
+ val customData: String? = null
38
+ val userId: String? = null
39
}
40
41
@TauriPlugin
18
-class AdmobPlugin(private val activity: Activity): Plugin(activity) {
19
- private val implementation = AdmobImpl(activity)
42
+class AdmobPlugin(var activity: Activity) : Plugin(activity) {
43
+ private var helper: Helper? = null
44
+ var webView: WebView? = null
45
46
override fun load(webView: WebView) {
22
- implementation.initialize()
47
super.load(webView)
48
+ this.webView = webView
49
+ helper = Helper(this)
50
+ ExecuteContext.Companion.plugin = this
51
+
52
+ MobileAds.initialize(activity.baseContext) { status: InitializationStatus? ->
53
+ helper!!.configForTestLab()
54
+ }
55
+ }
56
+
57
+ @Command
58
+ fun trackingAuthorizationStatus(call: Invoke) {
59
+ try {
60
+ call.resolve(JSObject("{\"status\": false}"))
61
+ } catch (ex: JSONException) {
62
+ call.reject(ex.toString())
63
+ }
64
}
65
66
@Command
27
- fun ping(invoke: Invoke) {
28
- val args = invoke.parseArgs(PingArgs::class.java)
67
+ fun requestTrackingAuthorization(call: Invoke) {
68
+ try {
69
+ call.resolve(JSObject("{\"status\": false}"))
70
+ } catch (ex: JSONException) {
71
+ call.reject(ex.toString())
72
+ }
73
+ }
74
+
75
+ @Command
76
+ fun configure(call: Invoke) {
77
+ val ctx = ExecuteContext(call)
78
+ ctx.configure(helper!!)
79
+ }
80
+
81
+ @Command
82
+ fun configRequest(call: Invoke) {
83
+ val ctx = ExecuteContext(call)
84
+ MobileAds.setRequestConfiguration(ctx.optRequestConfiguration())
85
+ helper!!.configForTestLab()
86
+ ctx.resolve()
87
+ }
88
+
89
+ @Command
90
+ fun adCreate(call: Invoke) {
91
+ println("adCreate 1 ${call.parseArgs(InvokeArgs::class.java).ctx} ${call.parseArgs(JSObject::class.java).toString()}")
92
+
93
+ val ctx = ExecuteContext(call)
94
+ android.os.Handler(activity.mainLooper).post {
95
+ println("adCreate 2 ${call.parseArgs(InvokeArgs::class.java).ctx} ${call.parseArgs(JSObject::class.java).toString()}")
96
+
97
+ val adClass = ctx.optString("cls")
98
+ if (adClass == null) {
99
+ ctx.reject("ad cls is missing")
100
+ } else {
101
+ when (adClass) {
102
+ "BannerAd" -> Banner(ctx)
103
+ "InterstitialAd" -> Interstitial(ctx)
104
+ "RewardedAd" -> Rewarded(ctx)
105
+ "RewardedInterstitialAd" -> RewardedInterstitial(ctx)
106
+ else -> ctx.reject("ad cls is not supported: $adClass")
107
+ }
108
+ ctx.resolve()
109
+ }
110
+ }
111
+ }
112
+
113
+ @Command
114
+ fun adIsLoaded(call: Invoke) {
115
+ val ctx = ExecuteContext(call)
116
+ android.os.Handler(activity.mainLooper).post {
117
+ val ad = ctx.optAdOrError() as GenericAd?
118
+ if (ad != null) {
119
+ ctx.resolve(ad.isLoaded)
120
+ }
121
+ }
122
+ }
123
+
124
+ @Command
125
+ fun adLoad(call: Invoke) {
126
+ val ctx = ExecuteContext(call)
127
+ android.os.Handler(activity.mainLooper).post {
128
+ val ad = ctx.optAdOrError() as GenericAd?
129
+ ad?.load(ctx)
130
+ }
131
+ }
132
+
133
+ @Command
134
+ fun adShow(call: Invoke) {
135
+ val ctx = ExecuteContext(call)
136
+
137
+ android.os.Handler(activity.mainLooper).post {
138
+ val ad = ctx.optAdOrError() as GenericAd?
139
+ if (ad != null) {
140
+ if (ad.isLoaded) {
141
+ ad.show(ctx)
142
+ } else {
143
+ ctx.reject("ad is not loaded")
144
+ }
145
+ }
146
+ }
147
+ }
148
+
149
+ @Command
150
+ fun adHide(call: Invoke) {
151
+ val ctx = ExecuteContext(call)
152
+ android.os.Handler(activity.mainLooper).post {
153
+ val ad = ctx.optAdOrError() as GenericAd?
154
+ ad?.hide(ctx)
155
+ }
156
+ }
157
30
- val ret = JSObject()
31
- ret.put("value", implementation.pong(args.value ?: "default value :("))
32
- invoke.resolve(ret)
158
+ fun emit(eventName: String?, data: Map<String?, Any?>?) {
159
+ try {
160
+ if (eventName != null) {
161
+ trigger(eventName, JSObject.fromJSONObject(JSONObject(data)))
162
+ }
163
+ } catch (e: JSONException) {
164
+ e.printStackTrace()
165
+ }
166
}
167
}
android/src/main/java/ExecuteContext.kt
new
+119
@@ -0,0 +1,119 @@
1
+package com.plugin.admob
2
+
3
+import com.plugin.admob.ads.AdBase
4
+import com.plugin.admob.core.Context
5
+import com.plugin.admob.core.Helper.Companion.jsonArray2stringList
6
+import android.app.Activity
7
+import app.tauri.plugin.Invoke
8
+import app.tauri.plugin.JSObject
9
+import org.json.JSONException
10
+import org.json.JSONObject
11
+import java.lang.reflect.InvocationTargetException
12
+
13
+class ExecuteContext internal constructor(private val call: Invoke) : Context {
14
+ fun <T : AdBase?> optAdOrCreate(type: Class<T>): T? {
15
+ var ad = type.cast(optAd())
16
+ if (ad == null) {
17
+ try {
18
+ ad = type.getDeclaredConstructor(ExecuteContext::class.java).newInstance(this)
19
+ } catch (e: IllegalAccessException) {
20
+ e.printStackTrace()
21
+ this.reject("Fail to create ad")
22
+ } catch (e: InstantiationException) {
23
+ e.printStackTrace()
24
+ this.reject("Fail to create ad")
25
+ } catch (e: InvocationTargetException) {
26
+ e.printStackTrace()
27
+ this.reject("Fail to create ad")
28
+ } catch (e: NoSuchMethodException) {
29
+ e.printStackTrace()
30
+ this.reject("Fail to create ad")
31
+ }
32
+ }
33
+ return ad
34
+ }
35
+
36
+ val activity: Activity
37
+ get() = plugin!!.activity
38
+
39
+ private fun getData(): InvokeArgs {
40
+ return call.parseArgs(InvokeArgs::class.java);
41
+ }
42
+
43
+ private fun getProperty(args: InvokeArgs, name: String): Any? {
44
+ return when (name) {
45
+ "ctx" -> args.ctx
46
+ "adUnitId" -> args.adUnitId
47
+ "appMuted" -> args.appMuted
48
+ "appVolume" -> args.appVolume
49
+ "position" -> args.position
50
+ "contentUrl" -> args.contentUrl
51
+ "npa" -> args.npa
52
+ "maxAdContentRating" -> args.maxAdContentRating
53
+ "tagForChildDirectedTreatment" -> args.tagForChildDirectedTreatment
54
+ "tagForUnderAgeOfConsent" -> args.tagForUnderAgeOfConsent
55
+ "testDeviceIds" -> args.testDeviceIds
56
+ "serverSideVerification" -> args.serverSideVerification
57
+ "customData" -> args.customData
58
+ "userId" -> args.userId
59
+ else -> null
60
+ }
61
+ }
62
+
63
+ override fun has(name: String): Boolean {
64
+ return getProperty(getData(), name) != null
65
+ }
66
+
67
+ override fun opt(name: String): Any? {
68
+ return getProperty(getData(), name)
69
+ }
70
+
71
+ override fun optBoolean(name: String): Boolean? {
72
+ return opt(name) as Boolean?
73
+ }
74
+
75
+ override fun optDouble(name: String): Double? {
76
+ return opt(name) as Double?
77
+ }
78
+
79
+ override fun optFloat(name: String): Float? {
80
+ return opt(name) as Float?
81
+ }
82
+
83
+ override fun optInt(name: String): Int? {
84
+ return opt(name) as Int?
85
+ }
86
+
87
+ override fun optString(name: String): String? {
88
+ return opt(name) as String?
89
+ }
90
+
91
+ override fun optStringList(name: String): List<String?> {
92
+ return opt(name) as List<String?>
93
+ }
94
+
95
+ override fun optObject(name: String): JSONObject? {
96
+ return opt(name) as JSONObject?
97
+ }
98
+
99
+ override fun resolve() {
100
+ call.resolve()
101
+ }
102
+
103
+ override fun resolve(data: Boolean) {
104
+ try {
105
+ call.resolve(JSObject("true"))
106
+ } catch (e: JSONException) {
107
+ e.printStackTrace()
108
+ reject()
109
+ }
110
+ }
111
+
112
+ override fun reject(msg: String?) {
113
+ call.reject(msg)
114
+ }
115
+
116
+ companion object {
117
+ var plugin: AdmobPlugin? = null
118
+ }
119
+}
android/src/main/java/Generated.kt
new
+41
@@ -0,0 +1,41 @@
1
+package com.plugin.admob
2
+
3
+class Generated {
4
+ object Events {
5
+ const val AD_CLICK = "ad.click"
6
+ const val AD_DISMISS = "ad.dismiss"
7
+ const val AD_IMPRESSION = "ad.impression"
8
+ const val AD_LOAD = "ad.load"
9
+ const val AD_LOAD_FAIL = "ad.loadfail"
10
+ const val AD_REWARD = "ad.reward"
11
+ const val AD_SHOW = "ad.show"
12
+ const val AD_SHOW_FAIL = "ad.showfail"
13
+ const val BANNER_CLICK = "banner.click"
14
+ const val BANNER_CLOSE = "banner.close"
15
+ const val BANNER_IMPRESSION = "banner.impression"
16
+ const val BANNER_LOAD = "banner.load"
17
+ const val BANNER_LOAD_FAIL = "banner.loadfail"
18
+ const val BANNER_OPEN = "banner.open"
19
+ const val BANNER_SIZE_CHANGE = "banner.sizechange"
20
+ const val INTERSTITIAL_DISMISS = "interstitial.dismiss"
21
+ const val INTERSTITIAL_IMPRESSION = "interstitial.impression"
22
+ const val INTERSTITIAL_LOAD = "interstitial.load"
23
+ const val INTERSTITIAL_LOAD_FAIL = "interstitial.loadfail"
24
+ const val INTERSTITIAL_SHOW = "interstitial.show"
25
+ const val INTERSTITIAL_SHOW_FAIL = "interstitial.showfail"
26
+ const val REWARDED_DISMISS = "rewarded.dismiss"
27
+ const val REWARDED_IMPRESSION = "rewarded.impression"
28
+ const val REWARDED_INTERSTITIAL_DISMISS = "rewardedi.dismiss"
29
+ const val REWARDED_INTERSTITIAL_IMPRESSION = "rewardedi.impression"
30
+ const val REWARDED_INTERSTITIAL_LOAD = "rewardedi.load"
31
+ const val REWARDED_INTERSTITIAL_LOAD_FAIL = "rewardedi.loadfail"
32
+ const val REWARDED_INTERSTITIAL_REWARD = "rewardedi.reward"
33
+ const val REWARDED_INTERSTITIAL_SHOW = "rewardedi.show"
34
+ const val REWARDED_INTERSTITIAL_SHOW_FAIL = "rewardedi.showfail"
35
+ const val REWARDED_LOAD = "rewarded.load"
36
+ const val REWARDED_LOAD_FAIL = "rewarded.loadfail"
37
+ const val REWARDED_REWARD = "rewarded.reward"
38
+ const val REWARDED_SHOW = "rewarded.show"
39
+ const val REWARDED_SHOW_FAIL = "rewarded.showfail"
40
+ }
41
+}
android/src/main/java/ads/AdBase.kt
new
+11
@@ -0,0 +1,11 @@
1
+package com.plugin.admob.ads
2
+
3
+import com.plugin.admob.AdmobPlugin
4
+import com.plugin.admob.ExecuteContext
5
+import com.plugin.admob.core.Ad
6
+import com.plugin.admob.core.Helper
7
+
8
+open class AdBase(ctx: ExecuteContext?) : Ad(ctx!!) {
9
+ override val plugin: AdmobPlugin
10
+ get() = ExecuteContext.Companion.plugin!!
11
+}
android/src/main/java/ads/Banner.kt
new
+148
@@ -0,0 +1,148 @@
1
+package com.plugin.admob.ads
2
+
3
+import com.plugin.admob.AdmobPlugin
4
+import com.plugin.admob.ExecuteContext
5
+import com.plugin.admob.Generated
6
+import com.plugin.admob.core.Context
7
+import com.plugin.admob.core.GenericAd
8
+import com.plugin.admob.core.Helper.Companion.getParentView
9
+import com.plugin.admob.core.Helper.Companion.removeFromParentView
10
+import android.annotation.SuppressLint
11
+import android.view.Gravity
12
+import android.view.View
13
+import android.view.ViewGroup
14
+import android.webkit.WebView
15
+import android.widget.LinearLayout
16
+import com.google.android.gms.ads.AdListener
17
+import com.google.android.gms.ads.AdSize
18
+import com.google.android.gms.ads.AdView
19
+import com.google.android.gms.ads.LoadAdError
20
+import java.util.Objects
21
+
22
+class Banner(ctx: ExecuteContext) : AdBase(ctx), GenericAd {
23
+ private val adSize: AdSize
24
+ private val gravity: Int
25
+ private var adView: AdView? = null
26
+
27
+ init {
28
+ adSize = AdSize.SMART_BANNER
29
+ gravity = if ("top" == ctx.optPosition()) Gravity.TOP else Gravity.BOTTOM
30
+ }
31
+
32
+ override val isLoaded: Boolean
33
+ get() = adView != null
34
+
35
+ override fun load(ctx: Context?) {
36
+ if (adView == null) {
37
+ adView = AdView(activity)
38
+ adView!!.adUnitId = adUnitId
39
+ // adView!!.adSize = adSize
40
+ adView!!.adListener = object : AdListener() {
41
+ override fun onAdClicked() {
42
+ emit(Generated.Events.BANNER_CLICK)
43
+ }
44
+
45
+ override fun onAdClosed() {
46
+ emit(Generated.Events.BANNER_CLOSE)
47
+ }
48
+
49
+ override fun onAdFailedToLoad(error: LoadAdError) {
50
+ emit(Generated.Events.BANNER_LOAD_FAIL, error)
51
+ }
52
+
53
+ override fun onAdImpression() {
54
+ emit(Generated.Events.BANNER_IMPRESSION)
55
+ }
56
+
57
+ override fun onAdLoaded() {
58
+ emit(Generated.Events.BANNER_LOAD)
59
+ }
60
+
61
+ override fun onAdOpened() {
62
+ emit(Generated.Events.BANNER_OPEN)
63
+ }
64
+ }
65
+ }
66
+ adView!!.loadAd(ctx!!.optAdRequest())
67
+ ctx.resolve()
68
+ }
69
+
70
+ override fun show(ctx: Context?) {
71
+ Objects.requireNonNull(adView)
72
+ val webView: WebView = ExecuteContext.Companion.plugin!!.webView!!
73
+ if (getParentView(adView) == null) {
74
+ addBannerView(ExecuteContext.Companion.plugin, adView)
75
+ } else if (adView!!.visibility == View.GONE) {
76
+ adView!!.resume()
77
+ adView!!.visibility = View.VISIBLE
78
+ } else {
79
+ val wvParentView = getParentView(webView)
80
+ if (parentView !== wvParentView) {
81
+ parentView!!.removeAllViews()
82
+ removeFromParentView(parentView)
83
+ addBannerView(ExecuteContext.Companion.plugin, adView)
84
+ }
85
+ }
86
+ ctx!!.resolve()
87
+ }
88
+
89
+ override fun hide(ctx: Context?) {
90
+ if (adView != null) {
91
+ adView!!.pause()
92
+ adView!!.visibility = View.GONE
93
+ }
94
+ ctx!!.resolve()
95
+ }
96
+
97
+ override fun destroy() {
98
+ if (adView != null) {
99
+ adView!!.destroy()
100
+ adView = null
101
+ }
102
+ super.destroy()
103
+ }
104
+
105
+ private fun addBannerView(plugin: AdmobPlugin?, adView: AdView?) {
106
+ val webView = plugin!!.webView!!
107
+ val wvParentView = webView.parent as ViewGroup
108
+ if (parentView == null) {
109
+ parentView = LinearLayout(webView.context)
110
+ }
111
+ if (wvParentView != null && wvParentView !== parentView) {
112
+ if (getParentView(parentView) != null) {
113
+ parentView!!.removeAllViews()
114
+ removeFromParentView(parentView)
115
+ }
116
+ wvParentView.removeView(webView)
117
+ val content = parentView as LinearLayout?
118
+ content!!.orientation = LinearLayout.VERTICAL
119
+ content.setLayoutParams(
120
+ LinearLayout.LayoutParams(
121
+ ViewGroup.LayoutParams.MATCH_PARENT,
122
+ ViewGroup.LayoutParams.MATCH_PARENT,
123
+ 0.0f
124
+ )
125
+ )
126
+ webView.layoutParams = LinearLayout.LayoutParams(
127
+ ViewGroup.LayoutParams.MATCH_PARENT,
128
+ ViewGroup.LayoutParams.MATCH_PARENT,
129
+ 1.0f
130
+ )
131
+ content.addView(webView)
132
+ wvParentView.addView(parentView)
133
+ }
134
+ if (gravity == Gravity.TOP) {
135
+ parentView!!.addView(adView, 0)
136
+ } else {
137
+ parentView!!.addView(adView)
138
+ }
139
+ parentView!!.bringToFront()
140
+ parentView!!.requestLayout()
141
+ parentView!!.requestFocus()
142
+ }
143
+
144
+ companion object {
145
+ @SuppressLint("StaticFieldLeak")
146
+ private var parentView: ViewGroup? = null
147
+ }
148
+}
android/src/main/java/ads/Interstitial.kt
new
+73
@@ -0,0 +1,73 @@
1
+package com.plugin.admob.ads
2
+
3
+import com.plugin.admob.ExecuteContext
4
+import com.plugin.admob.Generated
5
+import com.plugin.admob.core.Context
6
+import com.plugin.admob.core.GenericAd
7
+import com.google.android.gms.ads.AdError
8
+import com.google.android.gms.ads.FullScreenContentCallback
9
+import com.google.android.gms.ads.LoadAdError
10
+import com.google.android.gms.ads.interstitial.InterstitialAd
11
+import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback
12
+
13
+class Interstitial(ctx: ExecuteContext?) : AdBase(ctx), GenericAd {
14
+ private var mAd: InterstitialAd? = null
15
+ override fun destroy() {
16
+ clear()
17
+ super.destroy()
18
+ }
19
+
20
+ override fun load(ctx: Context?) {
21
+ clear()
22
+ InterstitialAd.load(
23
+ activity,
24
+ adUnitId,
25
+ ctx!!.optAdRequest(),
26
+ object : InterstitialAdLoadCallback() {
27
+ override fun onAdLoaded(interstitialAd: InterstitialAd) {
28
+ mAd = interstitialAd
29
+ mAd!!.fullScreenContentCallback = object : FullScreenContentCallback() {
30
+ override fun onAdDismissedFullScreenContent() {
31
+ clear()
32
+ emit(Generated.Events.INTERSTITIAL_DISMISS)
33
+ }
34
+
35
+ override fun onAdFailedToShowFullScreenContent(adError: AdError) {
36
+ emit(Generated.Events.INTERSTITIAL_SHOW_FAIL, adError)
37
+ }
38
+
39
+ override fun onAdShowedFullScreenContent() {
40
+ emit(Generated.Events.INTERSTITIAL_SHOW)
41
+ }
42
+
43
+ override fun onAdImpression() {
44
+ emit(Generated.Events.INTERSTITIAL_IMPRESSION)
45
+ }
46
+ }
47
+ emit(Generated.Events.INTERSTITIAL_LOAD)
48
+ ctx.resolve()
49
+ }
50
+
51
+ override fun onAdFailedToLoad(loadAdError: LoadAdError) {
52
+ clear()
53
+ emit(Generated.Events.INTERSTITIAL_LOAD_FAIL, loadAdError)
54
+ ctx.reject(loadAdError.message)
55
+ }
56
+ })
57
+ }
58
+
59
+ override val isLoaded: Boolean
60
+ get() = mAd != null
61
+
62
+ override fun show(ctx: Context?) {
63
+ mAd!!.show(activity)
64
+ ctx!!.resolve()
65
+ }
66
+
67
+ private fun clear() {
68
+ if (mAd != null) {
69
+ mAd!!.fullScreenContentCallback = null
70
+ mAd = null
71
+ }
72
+ }
73
+}
android/src/main/java/ads/Rewarded.kt
new
+83
@@ -0,0 +1,83 @@
1
+package com.plugin.admob.ads
2
+
3
+import com.plugin.admob.ExecuteContext
4
+import com.plugin.admob.Generated
5
+import com.plugin.admob.core.Context
6
+import com.plugin.admob.core.GenericAd
7
+import com.google.android.gms.ads.AdError
8
+import com.google.android.gms.ads.FullScreenContentCallback
9
+import com.google.android.gms.ads.LoadAdError
10
+import com.google.android.gms.ads.rewarded.RewardItem
11
+import com.google.android.gms.ads.rewarded.RewardedAd
12
+import com.google.android.gms.ads.rewarded.RewardedAdLoadCallback
13
+
14
+class Rewarded(ctx: ExecuteContext?) : AdBase(ctx), GenericAd {
15
+ private var mAd: RewardedAd? = null
16
+ override fun destroy() {
17
+ clear()
18
+ super.destroy()
19
+ }
20
+
21
+ override fun load(ctx: Context?) {
22
+ clear()
23
+ RewardedAd.load(
24
+ activity,
25
+ adUnitId,
26
+ ctx!!.optAdRequest(),
27
+ object : RewardedAdLoadCallback() {
28
+ override fun onAdFailedToLoad(loadAdError: LoadAdError) {
29
+ clear()
30
+ emit(Generated.Events.REWARDED_LOAD_FAIL, loadAdError)
31
+ ctx.reject(loadAdError)
32
+ }
33
+
34
+ override fun onAdLoaded(rewardedAd: RewardedAd) {
35
+ mAd = rewardedAd
36
+ val ssv = ctx.optServerSideVerificationOptions()
37
+ if (ssv != null) {
38
+ mAd!!.setServerSideVerificationOptions(ssv)
39
+ }
40
+ mAd!!.fullScreenContentCallback = object : FullScreenContentCallback() {
41
+ override fun onAdDismissedFullScreenContent() {
42
+ clear()
43
+ emit(Generated.Events.REWARDED_DISMISS)
44
+ }
45
+
46
+ override fun onAdFailedToShowFullScreenContent(adError: AdError) {
47
+ emit(Generated.Events.REWARDED_SHOW_FAIL, adError)
48
+ }
49
+
50
+ override fun onAdShowedFullScreenContent() {
51
+ emit(Generated.Events.REWARDED_SHOW)
52
+ }
53
+
54
+ override fun onAdImpression() {
55
+ emit(Generated.Events.REWARDED_IMPRESSION)
56
+ }
57
+ }
58
+ emit(Generated.Events.REWARDED_LOAD)
59
+ ctx.resolve()
60
+ }
61
+ })
62
+ }
63
+
64
+ override val isLoaded: Boolean
65
+ get() = mAd != null
66
+
67
+ override fun show(ctx: Context?) {
68
+ mAd!!.show(activity) { rewardItem: RewardItem? ->
69
+ emit(
70
+ Generated.Events.REWARDED_REWARD,
71
+ rewardItem!!
72
+ )
73
+ }
74
+ ctx!!.resolve()
75
+ }
76
+
77
+ private fun clear() {
78
+ if (mAd != null) {
79
+ mAd!!.fullScreenContentCallback = null
80
+ mAd = null
81
+ }
82
+ }
83
+}
android/src/main/java/ads/RewardedInterstitial.kt
new
+83
@@ -0,0 +1,83 @@
1
+package com.plugin.admob.ads
2
+
3
+import com.plugin.admob.ExecuteContext
4
+import com.plugin.admob.Generated
5
+import com.plugin.admob.core.Context
6
+import com.plugin.admob.core.GenericAd
7
+import com.google.android.gms.ads.AdError
8
+import com.google.android.gms.ads.FullScreenContentCallback
9
+import com.google.android.gms.ads.LoadAdError
10
+import com.google.android.gms.ads.rewarded.RewardItem
11
+import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAd
12
+import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAdLoadCallback
13
+
14
+class RewardedInterstitial(ctx: ExecuteContext?) : AdBase(ctx), GenericAd {
15
+ private var mAd: RewardedInterstitialAd? = null
16
+ override fun destroy() {
17
+ clear()
18
+ super.destroy()
19
+ }
20
+
21
+ override fun load(ctx: Context?) {
22
+ clear()
23
+ RewardedInterstitialAd.load(
24
+ activity,
25
+ adUnitId,
26
+ ctx!!.optAdRequest(),
27
+ object : RewardedInterstitialAdLoadCallback() {
28
+ override fun onAdFailedToLoad(loadAdError: LoadAdError) {
29
+ clear()
30
+ emit(Generated.Events.REWARDED_INTERSTITIAL_LOAD_FAIL, loadAdError)
31
+ ctx.reject(loadAdError)
32
+ }
33
+
34
+ override fun onAdLoaded(rewardedAd: RewardedInterstitialAd) {
35
+ mAd = rewardedAd
36
+ val ssv = ctx.optServerSideVerificationOptions()
37
+ if (ssv != null) {
38
+ mAd!!.setServerSideVerificationOptions(ssv)
39
+ }
40
+ mAd!!.fullScreenContentCallback = object : FullScreenContentCallback() {
41
+ override fun onAdDismissedFullScreenContent() {
42
+ clear()
43
+ emit(Generated.Events.REWARDED_INTERSTITIAL_DISMISS)
44
+ }
45
+
46
+ override fun onAdFailedToShowFullScreenContent(adError: AdError) {
47
+ emit(Generated.Events.REWARDED_INTERSTITIAL_SHOW_FAIL, adError)
48
+ }
49
+
50
+ override fun onAdShowedFullScreenContent() {
51
+ emit(Generated.Events.REWARDED_INTERSTITIAL_SHOW)
52
+ }
53
+
54
+ override fun onAdImpression() {
55
+ emit(Generated.Events.REWARDED_INTERSTITIAL_IMPRESSION)
56
+ }
57
+ }
58
+ emit(Generated.Events.REWARDED_INTERSTITIAL_LOAD)
59
+ ctx.resolve()
60
+ }
61
+ })
62
+ }
63
+
64
+ override val isLoaded: Boolean
65
+ get() = mAd != null
66
+
67
+ override fun show(ctx: Context?) {
68
+ mAd!!.show(activity) { rewardItem: RewardItem? ->
69
+ emit(
70
+ Generated.Events.REWARDED_INTERSTITIAL_REWARD,
71
+ rewardItem!!
72
+ )
73
+ }
74
+ ctx!!.resolve()
75
+ }
76
+
77
+ private fun clear() {
78
+ if (mAd != null) {
79
+ mAd!!.fullScreenContentCallback = null
80
+ mAd = null
81
+ }
82
+ }
83
+}
android/src/main/java/core/Ad.kt
new
+61
@@ -0,0 +1,61 @@
1
+package com.plugin.admob.core
2
+
3
+import android.R
4
+import android.app.Activity
5
+import android.view.ViewGroup
6
+import com.google.android.gms.ads.AdError
7
+import com.google.android.gms.ads.rewarded.RewardItem
8
+import com.plugin.admob.AdmobPlugin
9
+import java.util.Objects
10
+
11
+abstract class Ad(val id: Int, val adUnitId: String) {
12
+ init {
13
+ Helper.ads.put(id, this)
14
+ }
15
+
16
+ constructor(ctx: Context) : this(
17
+ Objects.requireNonNull<Int?>(ctx.optId()),
18
+ Objects.requireNonNull<String?>(ctx.optAdUnitID())
19
+ )
20
+
21
+ open fun destroy() {
22
+ Helper.ads.remove(id)
23
+ }
24
+
25
+ protected abstract val plugin: AdmobPlugin
26
+ val activity: Activity
27
+ get() = plugin.activity
28
+ val contentView: ViewGroup?
29
+ get() = activity.findViewById(R.id.content)
30
+
31
+ protected fun emit(eventName: String?, error: AdError) {
32
+ this.emit(eventName, object : HashMap<String?, Any?>() {
33
+ init {
34
+ put("code", error.code)
35
+ put("message", error.message)
36
+ put("cause", error.cause)
37
+ }
38
+ })
39
+ }
40
+
41
+ protected fun emit(eventName: String?, rewardItem: RewardItem) {
42
+ this.emit(eventName, object : HashMap<String?, Any?>() {
43
+ init {
44
+ put("reward", object : HashMap<String?, Any?>() {
45
+ init {
46
+ put("amount", rewardItem.amount)
47
+ put("type", rewardItem.type)
48
+ }
49
+ })
50
+ }
51
+ })
52
+ }
53
+
54
+ protected fun emit(eventName: String?, data: Map<String?, Any?>? = HashMap()) {
55
+ plugin.emit(eventName, object : HashMap<String?, Any?>(data) {
56
+ init {
57
+ put("adId", id)
58
+ }
59
+ })
60
+ }
61
+}
android/src/main/java/core/Context.kt
new
+149
@@ -0,0 +1,149 @@
1
+package com.plugin.admob.core
2
+
3
+import android.os.Bundle
4
+import com.google.ads.mediation.admob.AdMobAdapter
5
+import com.google.android.gms.ads.AdRequest
6
+import com.google.android.gms.ads.LoadAdError
7
+import com.google.android.gms.ads.MobileAds
8
+import com.google.android.gms.ads.RequestConfiguration
9
+import com.google.android.gms.ads.rewarded.ServerSideVerificationOptions
10
+import org.json.JSONObject
11
+import java.util.Objects
12
+
13
+interface Context {
14
+ fun has(name: String): Boolean
15
+ fun opt(name: String): Any?
16
+ fun optBoolean(name: String): Boolean?
17
+ fun optDouble(name: String): Double?
18
+ fun optDouble(name: String, defaultValue: Double): Double {
19
+ return optDouble(name) ?: return defaultValue
20
+ }
21
+
22
+ fun optFloat(name: String): Float? {
23
+ val v = optDouble(name) ?: return null
24
+ return v.toFloat()
25
+ }
26
+
27
+ fun optInt(name: String): Int?
28
+ fun optString(name: String): String?
29
+ fun optStringList(name: String): List<String?>
30
+ fun optObject(name: String): JSONObject?
31
+ fun resolve()
32
+ fun resolve(data: Boolean)
33
+ fun reject(msg: String?)
34
+ fun reject() {
35
+ reject("unknown error")
36
+ }
37
+
38
+ fun reject(loadAdError: LoadAdError) {
39
+ reject(loadAdError.message)
40
+ }
41
+
42
+ fun optId(): Int? {
43
+ return optInt("id")
44
+ }
45
+
46
+ fun optAd(): Ad? {
47
+ return Helper.getAd(optId())
48
+ }
49
+
50
+ fun optAdOrError(): Ad? {
51
+ val ad = optAd()
52
+ if (ad == null) {
53
+ this.reject("Ad not found")
54
+ }
55
+ return ad
56
+ }
57
+
58
+ fun optAdUnitID(): String? {
59
+ return optString("adUnitId")
60
+ }
61
+
62
+ fun optAppMuted(): Boolean? {
63
+ return optBoolean("appMuted")
64
+ }
65
+
66
+ fun optAppVolume(): Float? {
67
+ return optFloat("appVolume")
68
+ }
69
+
70
+ fun optPosition(): String? {
71
+ return optString("position")
72
+ }
73
+
74
+ fun optAdRequest(): AdRequest {
75
+ val builder = AdRequest.Builder()
76
+ if (has("contentUrl")) {
77
+ Objects.requireNonNull(optString("contentUrl"))?.let { builder.setContentUrl(it) }
78
+ }
79
+ val extras = Bundle()
80
+ if (has("npa")) {
81
+ extras.putString("npa", optString("npa"))
82
+ }
83
+ return builder.addNetworkExtrasBundle(AdMobAdapter::class.java, extras).build()
84
+ }
85
+
86
+ fun optRequestConfiguration(): RequestConfiguration {
87
+ val builder = RequestConfiguration.Builder()
88
+ if (has("maxAdContentRating")) {
89
+ builder.setMaxAdContentRating(optString("maxAdContentRating"))
90
+ }
91
+ val tagForChildDirectedTreatment = intFromBool(
92
+ this, "tagForChildDirectedTreatment",
93
+ RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_UNSPECIFIED,
94
+ RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_TRUE,
95
+ RequestConfiguration.TAG_FOR_CHILD_DIRECTED_TREATMENT_FALSE
96
+ )
97
+ if (tagForChildDirectedTreatment != null) {
98
+ builder.setTagForChildDirectedTreatment(tagForChildDirectedTreatment)
99
+ }
100
+ val tagForUnderAgeOfConsent = intFromBool(
101
+ this, "tagForUnderAgeOfConsent",
102
+ RequestConfiguration.TAG_FOR_UNDER_AGE_OF_CONSENT_UNSPECIFIED,
103
+ RequestConfiguration.TAG_FOR_UNDER_AGE_OF_CONSENT_TRUE,
104
+ RequestConfiguration.TAG_FOR_UNDER_AGE_OF_CONSENT_FALSE
105
+ )
106
+ if (tagForUnderAgeOfConsent != null) {
107
+ builder.setTagForUnderAgeOfConsent(tagForUnderAgeOfConsent)
108
+ }
109
+ if (has("testDeviceIds")) {
110
+ builder.setTestDeviceIds(optStringList("testDeviceIds"))
111
+ }
112
+ return builder.build()
113
+ }
114
+
115
+ fun optServerSideVerificationOptions(): ServerSideVerificationOptions? {
116
+ val param = "serverSideVerification"
117
+ val serverSideVerification = optObject(param) ?: return null
118
+ val builder = ServerSideVerificationOptions.Builder()
119
+ if (serverSideVerification.has("customData")) {
120
+ builder.setCustomData(serverSideVerification.optString("customData"))
121
+ }
122
+ if (serverSideVerification.has("userId")) {
123
+ builder.setUserId(serverSideVerification.optString("userId"))
124
+ }
125
+ return builder.build()
126
+ }
127
+
128
+ fun configure(helper: Helper) {
129
+ val appMuted = optAppMuted()
130
+ if (appMuted != null) {
131
+ MobileAds.setAppMuted(appMuted)
132
+ }
133
+ val appVolume = optAppVolume()
134
+ if (appVolume != null) {
135
+ MobileAds.setAppVolume(appVolume)
136
+ }
137
+ MobileAds.setRequestConfiguration(optRequestConfiguration())
138
+ helper.configForTestLab()
139
+ resolve()
140
+ }
141
+
142
+ companion object {
143
+ fun intFromBool(ctx: Context, name: String, vNull: Int, vTrue: Int, vFalse: Int): Int? {
144
+ if (!ctx.has(name)) return null
145
+ val v = ctx.optBoolean(name) ?: return vNull
146
+ return if (v) vTrue else vFalse
147
+ }
148
+ }
149
+}
android/src/main/java/core/GenericAd.kt
new
+21
@@ -0,0 +1,21 @@
1
+package com.plugin.admob.core
2
+
3
+interface GenericAd {
4
+ val isLoaded: Boolean
5
+ get() {
6
+ Helper.Companion.NOT_IMPLEMENTED()
7
+ return false
8
+ }
9
+
10
+ fun load(ctx: Context?) {
11
+ Helper.Companion.NOT_IMPLEMENTED()
12
+ }
13
+
14
+ fun show(ctx: Context?) {
15
+ Helper.Companion.NOT_IMPLEMENTED()
16
+ }
17
+
18
+ fun hide(ctx: Context?) {
19
+ Helper.Companion.NOT_IMPLEMENTED()
20
+ }
21
+}
android/src/main/java/core/Helper.kt
new
+112
@@ -0,0 +1,112 @@
1
+package com.plugin.admob.core
2
+
3
+import android.annotation.SuppressLint
4
+import android.app.Activity
5
+import android.content.res.Resources
6
+import android.provider.Settings
7
+import android.util.DisplayMetrics
8
+import android.util.SparseArray
9
+import android.view.View
10
+import android.view.ViewGroup
11
+import com.google.android.gms.ads.MobileAds
12
+import com.plugin.admob.AdmobPlugin
13
+import org.json.JSONArray
14
+import java.math.BigInteger
15
+import java.security.MessageDigest
16
+import java.security.NoSuchAlgorithmException
17
+import java.util.Locale
18
+
19
+class Helper(private val plugin: AdmobPlugin) {
20
+ val activity: Activity
21
+ get() = plugin.activity
22
+ val isRunningInTestLab: Boolean
23
+ get() {
24
+ val testLabSetting =
25
+ Settings.System.getString(activity.contentResolver, "firebase.test.lab")
26
+ return "true" == testLabSetting
27
+ }
28
+
29
+ fun configForTestLab() {
30
+ if (!isRunningInTestLab) {
31
+ return
32
+ }
33
+ val config = MobileAds.getRequestConfiguration()
34
+ val testDeviceIds = config.testDeviceIds
35
+ val deviceId = deviceId
36
+ if (testDeviceIds.contains(deviceId)) {
37
+ return
38
+ }
39
+ testDeviceIds.add(deviceId)
40
+ val builder = config.toBuilder()
41
+ builder.setTestDeviceIds(testDeviceIds)
42
+ MobileAds.setRequestConfiguration(builder.build())
43
+ }
44
+
45
+ private val deviceId: String
46
+ private get() {
47
+ // This will request test ads on the emulator and device by passing this hashed device ID.
48
+ @SuppressLint("HardwareIds") val ANDROID_ID = Settings.Secure.getString(
49
+ activity.contentResolver, Settings.Secure.ANDROID_ID
50
+ )
51
+ return md5(ANDROID_ID).uppercase(Locale.getDefault())
52
+ }
53
+
54
+ companion object {
55
+ val ads = SparseArray<Ad>()
56
+ fun getAd(id: Int?): Ad {
57
+ return ads[id!!]
58
+ }
59
+
60
+ fun dpToPx(dp: Double): Double {
61
+ return dp * Resources.getSystem().displayMetrics.density
62
+ }
63
+
64
+ fun pxToDp(px: Int): Int {
65
+ val displayMetrics =
66
+ Resources.getSystem().displayMetrics
67
+ return Math.round(px / (displayMetrics.xdpi / DisplayMetrics.DENSITY_DEFAULT))
68
+ }
69
+
70
+ @JvmStatic
71
+ fun jsonArray2stringList(a: JSONArray?): List<String> {
72
+ val result: MutableList<String> = ArrayList()
73
+ if (a == null) {
74
+ return result
75
+ }
76
+ for (i in 0 until a.length()) {
77
+ val testDeviceId = a.optString(i)
78
+ if (testDeviceId != null) {
79
+ result.add(testDeviceId)
80
+ }
81
+ }
82
+ return result
83
+ }
84
+
85
+ @JvmStatic
86
+ fun getParentView(view: View?): ViewGroup? {
87
+ return if (view == null) null else view.parent as ViewGroup
88
+ }
89
+
90
+ @JvmStatic
91
+ fun removeFromParentView(view: View?): ViewGroup? {
92
+ val viewParent = getParentView(view)
93
+ viewParent?.removeView(view)
94
+ return viewParent
95
+ }
96
+
97
+ fun NOT_IMPLEMENTED() {
98
+ throw UnsupportedOperationException("Not implemented.")
99
+ }
100
+
101
+ private fun md5(s: String): String {
102
+ try {
103
+ val digest = MessageDigest.getInstance("MD5")
104
+ digest.update(s.toByteArray())
105
+ val bigInt = BigInteger(1, digest.digest())
106
+ return String.format("%32s", bigInt.toString(16)).replace(' ', '0')
107
+ } catch (ignore: NoSuchAlgorithmException) {
108
+ }
109
+ return ""
110
+ }
111
+ }
112
+}
build.rs
+1
-1
@@ -1,4 +1,4 @@
1
-const COMMANDS: &[&str] = &["ping"];
1
+const COMMANDS: &[&str] = &["trackingAuthorizationStatus", "requestTrackingAuthorization", "configure", "configRequest", "adCreate", "adIsLoaded", "adLoad", "adShow", "adHide"];
2
3
fn main() {
4
tauri_plugin::Builder::new(COMMANDS)
bun.lockb
Binary files a/bun.lockb and b/bun.lockb differ
examples/tauri-app/bun.lockb
Binary files a/examples/tauri-app/bun.lockb and b/examples/tauri-app/bun.lockb differ
examples/tauri-app/package.json
+6
-6
@@ -10,14 +10,14 @@
10
"tauri": "tauri"
11
},
12
"dependencies": {
13
- "@tauri-apps/api": "^2.0.0-alpha.11",
14
- "tauri-plugin-admob-api": "link:../../"
13
+ "@tauri-apps/api": "^2.0.0-beta.15",
14
+ "tauri-plugin-admob-api": "../../"
15
},
16
"devDependencies": {
17
- "@sveltejs/vite-plugin-svelte": "^1.0.1",
17
+ "@sveltejs/vite-plugin-svelte": "^1.4.0",
18
"internal-ip": "^7.0.0",
19
- "svelte": "^3.49.0",
20
- "vite": "^3.0.2",
21
- "@tauri-apps/cli": "^2.0.0-alpha.17"
19
+ "svelte": "^3.59.2",
20
+ "vite": "^3.2.10",
21
+ "@tauri-apps/cli": "next"
22
}
23
}
examples/tauri-app/src-tauri/Cargo.toml
+1
@@ -20,3 +20,4 @@ tauri-build = { version = "2.0.0-beta.19", default-features = false , features =
20
[dependencies]
21
tauri = { version = "2.0.0-beta.24", features = [] }
22
tauri-plugin-admob = { path = "../../../" }
23
+tauri-plugin-devtools = "2.0.0-beta"
examples/tauri-app/src-tauri/gen/android/app/src/main/AndroidManifest.xml
+3
@@ -9,6 +9,9 @@
9
<meta-data
10
android:name="com.google.android.gms.ads.APPLICATION_ID"
11
android:value="ca-app-pub-3940256099942544~3347511713"/>
12
+ <meta-data
13
+ android:name="com.google.android.gms.ads.DELAY_APP_MEASUREMENT_INIT"
14
+ android:value="true" />
15
<activity
16
android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode"
17
android:launchMode="singleTask"
examples/tauri-app/src-tauri/gen/schemas/acl-manifests.json
+1
-1
@@ -1 +1 @@
1
-{"admob":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin","permissions":["allow-ping"]},"permissions":{"allow-ping":{"identifier":"allow-ping","description":"Enables the ping command without any pre-configured scope.","commands":{"allow":["ping"],"deny":[]}},"deny-ping":{"identifier":"deny-ping","description":"Denies the ping command without any pre-configured scope.","commands":{"allow":[],"deny":["ping"]}}},"permission_sets":{},"global_scope_schema":null},"app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version"]},"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-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-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"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-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-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"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},"event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"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-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-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-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"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-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-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-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-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"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},"window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["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-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","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-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-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-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-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-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"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-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-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"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-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-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-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-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-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-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"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-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-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"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-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}}
\ No newline at end of file
1
+{"admob":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin","permissions":["allow-adCreate","allow-adHide","allow-adIsLoaded","allow-adLoad","allow-adShow","allow-configRequest","allow-configure","allow-requestTrackingAuthorization","allow-trackingAuthorizationStatus"]},"permissions":{"allow-adCreate":{"identifier":"allow-adCreate","description":"Enables the adCreate command without any pre-configured scope.","commands":{"allow":["adCreate"],"deny":[]}},"allow-adHide":{"identifier":"allow-adHide","description":"Enables the adHide command without any pre-configured scope.","commands":{"allow":["adHide"],"deny":[]}},"allow-adIsLoaded":{"identifier":"allow-adIsLoaded","description":"Enables the adIsLoaded command without any pre-configured scope.","commands":{"allow":["adIsLoaded"],"deny":[]}},"allow-adLoad":{"identifier":"allow-adLoad","description":"Enables the adLoad command without any pre-configured scope.","commands":{"allow":["adLoad"],"deny":[]}},"allow-adShow":{"identifier":"allow-adShow","description":"Enables the adShow command without any pre-configured scope.","commands":{"allow":["adShow"],"deny":[]}},"allow-configRequest":{"identifier":"allow-configRequest","description":"Enables the configRequest command without any pre-configured scope.","commands":{"allow":["configRequest"],"deny":[]}},"allow-configure":{"identifier":"allow-configure","description":"Enables the configure command without any pre-configured scope.","commands":{"allow":["configure"],"deny":[]}},"allow-requestTrackingAuthorization":{"identifier":"allow-requestTrackingAuthorization","description":"Enables the requestTrackingAuthorization command without any pre-configured scope.","commands":{"allow":["requestTrackingAuthorization"],"deny":[]}},"allow-trackingAuthorizationStatus":{"identifier":"allow-trackingAuthorizationStatus","description":"Enables the trackingAuthorizationStatus command without any pre-configured scope.","commands":{"allow":["trackingAuthorizationStatus"],"deny":[]}},"deny-adCreate":{"identifier":"deny-adCreate","description":"Denies the adCreate command without any pre-configured scope.","commands":{"allow":[],"deny":["adCreate"]}},"deny-adHide":{"identifier":"deny-adHide","description":"Denies the adHide command without any pre-configured scope.","commands":{"allow":[],"deny":["adHide"]}},"deny-adIsLoaded":{"identifier":"deny-adIsLoaded","description":"Denies the adIsLoaded command without any pre-configured scope.","commands":{"allow":[],"deny":["adIsLoaded"]}},"deny-adLoad":{"identifier":"deny-adLoad","description":"Denies the adLoad command without any pre-configured scope.","commands":{"allow":[],"deny":["adLoad"]}},"deny-adShow":{"identifier":"deny-adShow","description":"Denies the adShow command without any pre-configured scope.","commands":{"allow":[],"deny":["adShow"]}},"deny-configRequest":{"identifier":"deny-configRequest","description":"Denies the configRequest command without any pre-configured scope.","commands":{"allow":[],"deny":["configRequest"]}},"deny-configure":{"identifier":"deny-configure","description":"Denies the configure command without any pre-configured scope.","commands":{"allow":[],"deny":["configure"]}},"deny-requestTrackingAuthorization":{"identifier":"deny-requestTrackingAuthorization","description":"Denies the requestTrackingAuthorization command without any pre-configured scope.","commands":{"allow":[],"deny":["requestTrackingAuthorization"]}},"deny-trackingAuthorizationStatus":{"identifier":"deny-trackingAuthorizationStatus","description":"Denies the trackingAuthorizationStatus command without any pre-configured scope.","commands":{"allow":[],"deny":["trackingAuthorizationStatus"]}}},"permission_sets":{},"global_scope_schema":null},"app":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-version","allow-name","allow-tauri-version"]},"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-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-name":{"identifier":"allow-name","description":"Enables the name command without any pre-configured scope.","commands":{"allow":["name"],"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-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-name":{"identifier":"deny-name","description":"Denies the name command without any pre-configured scope.","commands":{"allow":[],"deny":["name"]}},"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},"devtools":{"default_permission":null,"permissions":{},"permission_sets":{},"global_scope_schema":null},"event":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"image":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"menu":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"path":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"resources":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"tray":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","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},"webview":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["allow-webview-position","allow-webview-size","allow-internal-toggle-devtools"]},"permissions":{"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-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-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-position":{"identifier":"allow-webview-position","description":"Enables the webview_position command without any pre-configured scope.","commands":{"allow":["webview_position"],"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-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-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-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-position":{"identifier":"deny-webview-position","description":"Denies the webview_position command without any pre-configured scope.","commands":{"allow":[],"deny":["webview_position"]}},"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},"window":{"default_permission":{"identifier":"default","description":"Default permissions for the plugin.","permissions":["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-title","allow-current-monitor","allow-primary-monitor","allow-monitor-from-point","allow-available-monitors","allow-cursor-position","allow-theme","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-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-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-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-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-focus":{"identifier":"allow-set-focus","description":"Enables the set_focus command without any pre-configured scope.","commands":{"allow":["set_focus"],"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-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-size":{"identifier":"allow-set-size","description":"Enables the set_size command without any pre-configured scope.","commands":{"allow":["set_size"],"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-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-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-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-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-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-focus":{"identifier":"deny-set-focus","description":"Denies the set_focus command without any pre-configured scope.","commands":{"allow":[],"deny":["set_focus"]}},"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-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-size":{"identifier":"deny-set-size","description":"Denies the set_size command without any pre-configured scope.","commands":{"allow":[],"deny":["set_size"]}},"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-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}}
\ No newline at end of file
examples/tauri-app/src-tauri/gen/schemas/android-schema.json
+122
-4
@@ -179,17 +179,129 @@
179
]
180
},
181
{
182
- "description": "admob:allow-ping -> Enables the ping command without any pre-configured scope.",
182
+ "description": "admob:allow-adCreate -> Enables the adCreate command without any pre-configured scope.",
183
"type": "string",
184
"enum": [
185
- "admob:allow-ping"
185
+ "admob:allow-adCreate"
186
]
187
},
188
{
189
- "description": "admob:deny-ping -> Denies the ping command without any pre-configured scope.",
189
+ "description": "admob:allow-adHide -> Enables the adHide command without any pre-configured scope.",
190
"type": "string",
191
"enum": [
192
- "admob:deny-ping"
192
+ "admob:allow-adHide"
193
+ ]
194
+ },
195
+ {
196
+ "description": "admob:allow-adIsLoaded -> Enables the adIsLoaded command without any pre-configured scope.",
197
+ "type": "string",
198
+ "enum": [
199
+ "admob:allow-adIsLoaded"
200
+ ]
201
+ },
202
+ {
203
+ "description": "admob:allow-adLoad -> Enables the adLoad command without any pre-configured scope.",
204
+ "type": "string",
205
+ "enum": [
206
+ "admob:allow-adLoad"
207
+ ]
208
+ },
209
+ {
210
+ "description": "admob:allow-adShow -> Enables the adShow command without any pre-configured scope.",
211
+ "type": "string",
212
+ "enum": [
213
+ "admob:allow-adShow"
214
+ ]
215
+ },
216
+ {
217
+ "description": "admob:allow-configRequest -> Enables the configRequest command without any pre-configured scope.",
218
+ "type": "string",
219
+ "enum": [
220
+ "admob:allow-configRequest"
221
+ ]
222
+ },
223
+ {
224
+ "description": "admob:allow-configure -> Enables the configure command without any pre-configured scope.",
225
+ "type": "string",
226
+ "enum": [
227
+ "admob:allow-configure"
228
+ ]
229
+ },
230
+ {
231
+ "description": "admob:allow-requestTrackingAuthorization -> Enables the requestTrackingAuthorization command without any pre-configured scope.",
232
+ "type": "string",
233
+ "enum": [
234
+ "admob:allow-requestTrackingAuthorization"
235
+ ]
236
+ },
237
+ {
238
+ "description": "admob:allow-trackingAuthorizationStatus -> Enables the trackingAuthorizationStatus command without any pre-configured scope.",
239
+ "type": "string",
240
+ "enum": [
241
+ "admob:allow-trackingAuthorizationStatus"
242
+ ]
243
+ },
244
+ {
245
+ "description": "admob:deny-adCreate -> Denies the adCreate command without any pre-configured scope.",
246
+ "type": "string",
247
+ "enum": [
248
+ "admob:deny-adCreate"
249
+ ]
250
+ },
251
+ {
252
+ "description": "admob:deny-adHide -> Denies the adHide command without any pre-configured scope.",
253
+ "type": "string",
254
+ "enum": [
255
+ "admob:deny-adHide"
256
+ ]
257
+ },
258
+ {
259
+ "description": "admob:deny-adIsLoaded -> Denies the adIsLoaded command without any pre-configured scope.",
260
+ "type": "string",
261
+ "enum": [
262
+ "admob:deny-adIsLoaded"
263
+ ]
264
+ },
265
+ {
266
+ "description": "admob:deny-adLoad -> Denies the adLoad command without any pre-configured scope.",
267
+ "type": "string",
268
+ "enum": [
269
+ "admob:deny-adLoad"
270
+ ]
271
+ },
272
+ {
273
+ "description": "admob:deny-adShow -> Denies the adShow command without any pre-configured scope.",
274
+ "type": "string",
275
+ "enum": [
276
+ "admob:deny-adShow"
277
+ ]
278
+ },
279
+ {
280
+ "description": "admob:deny-configRequest -> Denies the configRequest command without any pre-configured scope.",
281
+ "type": "string",
282
+ "enum": [
283
+ "admob:deny-configRequest"
284
+ ]
285
+ },
286
+ {
287
+ "description": "admob:deny-configure -> Denies the configure command without any pre-configured scope.",
288
+ "type": "string",
289
+ "enum": [
290
+ "admob:deny-configure"
291
+ ]
292
+ },
293
+ {
294
+ "description": "admob:deny-requestTrackingAuthorization -> Denies the requestTrackingAuthorization command without any pre-configured scope.",
295
+ "type": "string",
296
+ "enum": [
297
+ "admob:deny-requestTrackingAuthorization"
298
+ ]
299
+ },
300
+ {
301
+ "description": "admob:deny-trackingAuthorizationStatus -> Denies the trackingAuthorizationStatus command without any pre-configured scope.",
302
+ "type": "string",
303
+ "enum": [
304
+ "admob:deny-trackingAuthorizationStatus"
305
]
306
},
307
{
@@ -283,6 +395,12 @@
395
"app:deny-version"
396
]
397
},
398
+ {
399
+ "type": "string",
400
+ "enum": [
401
+ "devtools:default"
402
+ ]
403
+ },
404
{
405
"description": "event:default -> Default permissions for the plugin.",
406
"type": "string",
examples/tauri-app/src-tauri/gen/schemas/desktop-schema.json
new
+2329
@@ -0,0 +1,2329 @@
1
+{
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "CapabilityFile",
4
+ "description": "Capability formats accepted in a capability file.",
5
+ "anyOf": [
6
+ {
7
+ "description": "A single capability.",
8
+ "allOf": [
9
+ {
10
+ "$ref": "#/definitions/Capability"
11
+ }
12
+ ]
13
+ },
14
+ {
15
+ "description": "A list of capabilities.",
16
+ "type": "array",
17
+ "items": {
18
+ "$ref": "#/definitions/Capability"
19
+ }
20
+ },
21
+ {
22
+ "description": "A list of capabilities.",
23
+ "type": "object",
24
+ "required": [
25
+ "capabilities"
26
+ ],
27
+ "properties": {
28
+ "capabilities": {
29
+ "description": "The list of capabilities.",
30
+ "type": "array",
31
+ "items": {
32
+ "$ref": "#/definitions/Capability"
33
+ }
34
+ }
35
+ }
36
+ }
37
+ ],
38
+ "definitions": {
39
+ "Capability": {
40
+ "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows fine grained access to the Tauri core, application, or plugin commands. If a 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 programatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"path:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, \"platforms\": [\"macOS\",\"windows\"] } ```",
41
+ "type": "object",
42
+ "required": [
43
+ "identifier",
44
+ "permissions"
45
+ ],
46
+ "properties": {
47
+ "identifier": {
48
+ "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`",
49
+ "type": "string"
50
+ },
51
+ "description": {
52
+ "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 programatic access to files selected by the user.",
53
+ "default": "",
54
+ "type": "string"
55
+ },
56
+ "remote": {
57
+ "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\"] } ```",
58
+ "anyOf": [
59
+ {
60
+ "$ref": "#/definitions/CapabilityRemote"
61
+ },
62
+ {
63
+ "type": "null"
64
+ }
65
+ ]
66
+ },
67
+ "local": {
68
+ "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.",
69
+ "default": true,
70
+ "type": "boolean"
71
+ },
72
+ "windows": {
73
+ "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`",
74
+ "type": "array",
75
+ "items": {
76
+ "type": "string"
77
+ }
78
+ },
79
+ "webviews": {
80
+ "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`",
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string"
84
+ }
85
+ },
86
+ "permissions": {
87
+ "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 [ \"path:default\", \"event:default\", \"window:default\", \"app:default\", \"image:default\", \"resources:default\", \"menu:default\", \"tray:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ```",
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "#/definitions/PermissionEntry"
91
+ },
92
+ "uniqueItems": true
93
+ },
94
+ "platforms": {
95
+ "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`",
96
+ "type": [
97
+ "array",
98
+ "null"
99
+ ],
100
+ "items": {
101
+ "$ref": "#/definitions/Target"
102
+ }
103
+ }
104
+ }
105
+ },
106
+ "CapabilityRemote": {
107
+ "description": "Configuration for remote URLs that are associated with the capability.",
108
+ "type": "object",
109
+ "required": [
110
+ "urls"
111
+ ],
112
+ "properties": {
113
+ "urls": {
114
+ "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",
115
+ "type": "array",
116
+ "items": {
117
+ "type": "string"
118
+ }
119
+ }
120
+ }
121
+ },
122
+ "PermissionEntry": {
123
+ "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.",
124
+ "anyOf": [
125
+ {
126
+ "description": "Reference a permission or permission set by identifier.",
127
+ "allOf": [
128
+ {
129
+ "$ref": "#/definitions/Identifier"
130
+ }
131
+ ]
132
+ },
133
+ {
134
+ "description": "Reference a permission or permission set by identifier and extends its scope.",
135
+ "type": "object",
136
+ "required": [
137
+ "identifier"
138
+ ],
139
+ "properties": {
140
+ "identifier": {
141
+ "description": "Identifier of the permission or permission set.",
142
+ "allOf": [
143
+ {
144
+ "$ref": "#/definitions/Identifier"
145
+ }
146
+ ]
147
+ },
148
+ "allow": {
149
+ "description": "Data that defines what is allowed by the scope.",
150
+ "type": [
151
+ "array",
152
+ "null"
153
+ ],
154
+ "items": {
155
+ "$ref": "#/definitions/Value"
156
+ }
157
+ },
158
+ "deny": {
159
+ "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.",
160
+ "type": [
161
+ "array",
162
+ "null"
163
+ ],
164
+ "items": {
165
+ "$ref": "#/definitions/Value"
166
+ }
167
+ }
168
+ }
169
+ }
170
+ ]
171
+ },
172
+ "Identifier": {
173
+ "oneOf": [
174
+ {
175
+ "description": "admob:default -> Default permissions for the plugin",
176
+ "type": "string",
177
+ "enum": [
178
+ "admob:default"
179
+ ]
180
+ },
181
+ {
182
+ "description": "admob:allow-adCreate -> Enables the adCreate command without any pre-configured scope.",
183
+ "type": "string",
184
+ "enum": [
185
+ "admob:allow-adCreate"
186
+ ]
187
+ },
188
+ {
189
+ "description": "admob:allow-adHide -> Enables the adHide command without any pre-configured scope.",
190
+ "type": "string",
191
+ "enum": [
192
+ "admob:allow-adHide"
193
+ ]
194
+ },
195
+ {
196
+ "description": "admob:allow-adIsLoaded -> Enables the adIsLoaded command without any pre-configured scope.",
197
+ "type": "string",
198
+ "enum": [
199
+ "admob:allow-adIsLoaded"
200
+ ]
201
+ },
202
+ {
203
+ "description": "admob:allow-adLoad -> Enables the adLoad command without any pre-configured scope.",
204
+ "type": "string",
205
+ "enum": [
206
+ "admob:allow-adLoad"
207
+ ]
208
+ },
209
+ {
210
+ "description": "admob:allow-adShow -> Enables the adShow command without any pre-configured scope.",
211
+ "type": "string",
212
+ "enum": [
213
+ "admob:allow-adShow"
214
+ ]
215
+ },
216
+ {
217
+ "description": "admob:allow-configRequest -> Enables the configRequest command without any pre-configured scope.",
218
+ "type": "string",
219
+ "enum": [
220
+ "admob:allow-configRequest"
221
+ ]
222
+ },
223
+ {
224
+ "description": "admob:allow-configure -> Enables the configure command without any pre-configured scope.",
225
+ "type": "string",
226
+ "enum": [
227
+ "admob:allow-configure"
228
+ ]
229
+ },
230
+ {
231
+ "description": "admob:allow-requestTrackingAuthorization -> Enables the requestTrackingAuthorization command without any pre-configured scope.",
232
+ "type": "string",
233
+ "enum": [
234
+ "admob:allow-requestTrackingAuthorization"
235
+ ]
236
+ },
237
+ {
238
+ "description": "admob:allow-trackingAuthorizationStatus -> Enables the trackingAuthorizationStatus command without any pre-configured scope.",
239
+ "type": "string",
240
+ "enum": [
241
+ "admob:allow-trackingAuthorizationStatus"
242
+ ]
243
+ },
244
+ {
245
+ "description": "admob:deny-adCreate -> Denies the adCreate command without any pre-configured scope.",
246
+ "type": "string",
247
+ "enum": [
248
+ "admob:deny-adCreate"
249
+ ]
250
+ },
251
+ {
252
+ "description": "admob:deny-adHide -> Denies the adHide command without any pre-configured scope.",
253
+ "type": "string",
254
+ "enum": [
255
+ "admob:deny-adHide"
256
+ ]
257
+ },
258
+ {
259
+ "description": "admob:deny-adIsLoaded -> Denies the adIsLoaded command without any pre-configured scope.",
260
+ "type": "string",
261
+ "enum": [
262
+ "admob:deny-adIsLoaded"
263
+ ]
264
+ },
265
+ {
266
+ "description": "admob:deny-adLoad -> Denies the adLoad command without any pre-configured scope.",
267
+ "type": "string",
268
+ "enum": [
269
+ "admob:deny-adLoad"
270
+ ]
271
+ },
272
+ {
273
+ "description": "admob:deny-adShow -> Denies the adShow command without any pre-configured scope.",
274
+ "type": "string",
275
+ "enum": [
276
+ "admob:deny-adShow"
277
+ ]
278
+ },
279
+ {
280
+ "description": "admob:deny-configRequest -> Denies the configRequest command without any pre-configured scope.",
281
+ "type": "string",
282
+ "enum": [
283
+ "admob:deny-configRequest"
284
+ ]
285
+ },
286
+ {
287
+ "description": "admob:deny-configure -> Denies the configure command without any pre-configured scope.",
288
+ "type": "string",
289
+ "enum": [
290
+ "admob:deny-configure"
291
+ ]
292
+ },
293
+ {
294
+ "description": "admob:deny-requestTrackingAuthorization -> Denies the requestTrackingAuthorization command without any pre-configured scope.",
295
+ "type": "string",
296
+ "enum": [
297
+ "admob:deny-requestTrackingAuthorization"
298
+ ]
299
+ },
300
+ {
301
+ "description": "admob:deny-trackingAuthorizationStatus -> Denies the trackingAuthorizationStatus command without any pre-configured scope.",
302
+ "type": "string",
303
+ "enum": [
304
+ "admob:deny-trackingAuthorizationStatus"
305
+ ]
306
+ },
307
+ {
308
+ "description": "app:default -> Default permissions for the plugin.",
309
+ "type": "string",
310
+ "enum": [
311
+ "app:default"
312
+ ]
313
+ },
314
+ {
315
+ "description": "app:allow-app-hide -> Enables the app_hide command without any pre-configured scope.",
316
+ "type": "string",
317
+ "enum": [
318
+ "app:allow-app-hide"
319
+ ]
320
+ },
321
+ {
322
+ "description": "app:allow-app-show -> Enables the app_show command without any pre-configured scope.",
323
+ "type": "string",
324
+ "enum": [
325
+ "app:allow-app-show"
326
+ ]
327
+ },
328
+ {
329
+ "description": "app:allow-default-window-icon -> Enables the default_window_icon command without any pre-configured scope.",
330
+ "type": "string",
331
+ "enum": [
332
+ "app:allow-default-window-icon"
333
+ ]
334
+ },
335
+ {
336
+ "description": "app:allow-name -> Enables the name command without any pre-configured scope.",
337
+ "type": "string",
338
+ "enum": [
339
+ "app:allow-name"
340
+ ]
341
+ },
342
+ {
343
+ "description": "app:allow-tauri-version -> Enables the tauri_version command without any pre-configured scope.",
344
+ "type": "string",
345
+ "enum": [
346
+ "app:allow-tauri-version"
347
+ ]
348
+ },
349
+ {
350
+ "description": "app:allow-version -> Enables the version command without any pre-configured scope.",
351
+ "type": "string",
352
+ "enum": [
353
+ "app:allow-version"
354
+ ]
355
+ },
356
+ {
357
+ "description": "app:deny-app-hide -> Denies the app_hide command without any pre-configured scope.",
358
+ "type": "string",
359
+ "enum": [
360
+ "app:deny-app-hide"
361
+ ]
362
+ },
363
+ {
364
+ "description": "app:deny-app-show -> Denies the app_show command without any pre-configured scope.",
365
+ "type": "string",
366
+ "enum": [
367
+ "app:deny-app-show"
368
+ ]
369
+ },
370
+ {
371
+ "description": "app:deny-default-window-icon -> Denies the default_window_icon command without any pre-configured scope.",
372
+ "type": "string",
373
+ "enum": [
374
+ "app:deny-default-window-icon"
375
+ ]
376
+ },
377
+ {
378
+ "description": "app:deny-name -> Denies the name command without any pre-configured scope.",
379
+ "type": "string",
380
+ "enum": [
381
+ "app:deny-name"
382
+ ]
383
+ },
384
+ {
385
+ "description": "app:deny-tauri-version -> Denies the tauri_version command without any pre-configured scope.",
386
+ "type": "string",
387
+ "enum": [
388
+ "app:deny-tauri-version"
389
+ ]
390
+ },
391
+ {
392
+ "description": "app:deny-version -> Denies the version command without any pre-configured scope.",
393
+ "type": "string",
394
+ "enum": [
395
+ "app:deny-version"
396
+ ]
397
+ },
398
+ {
399
+ "description": "event:default -> Default permissions for the plugin.",
400
+ "type": "string",
401
+ "enum": [
402
+ "event:default"
403
+ ]
404
+ },
405
+ {
406
+ "description": "event:allow-emit -> Enables the emit command without any pre-configured scope.",
407
+ "type": "string",
408
+ "enum": [
409
+ "event:allow-emit"
410
+ ]
411
+ },
412
+ {
413
+ "description": "event:allow-emit-to -> Enables the emit_to command without any pre-configured scope.",
414
+ "type": "string",
415
+ "enum": [
416
+ "event:allow-emit-to"
417
+ ]
418
+ },
419
+ {
420
+ "description": "event:allow-listen -> Enables the listen command without any pre-configured scope.",
421
+ "type": "string",
422
+ "enum": [
423
+ "event:allow-listen"
424
+ ]
425
+ },
426
+ {
427
+ "description": "event:allow-unlisten -> Enables the unlisten command without any pre-configured scope.",
428
+ "type": "string",
429
+ "enum": [
430
+ "event:allow-unlisten"
431
+ ]
432
+ },
433
+ {
434
+ "description": "event:deny-emit -> Denies the emit command without any pre-configured scope.",
435
+ "type": "string",
436
+ "enum": [
437
+ "event:deny-emit"
438
+ ]
439
+ },
440
+ {
441
+ "description": "event:deny-emit-to -> Denies the emit_to command without any pre-configured scope.",
442
+ "type": "string",
443
+ "enum": [
444
+ "event:deny-emit-to"
445
+ ]
446
+ },
447
+ {
448
+ "description": "event:deny-listen -> Denies the listen command without any pre-configured scope.",
449
+ "type": "string",
450
+ "enum": [
451
+ "event:deny-listen"
452
+ ]
453
+ },
454
+ {
455
+ "description": "event:deny-unlisten -> Denies the unlisten command without any pre-configured scope.",
456
+ "type": "string",
457
+ "enum": [
458
+ "event:deny-unlisten"
459
+ ]
460
+ },
461
+ {
462
+ "description": "image:default -> Default permissions for the plugin.",
463
+ "type": "string",
464
+ "enum": [
465
+ "image:default"
466
+ ]
467
+ },
468
+ {
469
+ "description": "image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.",
470
+ "type": "string",
471
+ "enum": [
472
+ "image:allow-from-bytes"
473
+ ]
474
+ },
475
+ {
476
+ "description": "image:allow-from-path -> Enables the from_path command without any pre-configured scope.",
477
+ "type": "string",
478
+ "enum": [
479
+ "image:allow-from-path"
480
+ ]
481
+ },
482
+ {
483
+ "description": "image:allow-new -> Enables the new command without any pre-configured scope.",
484
+ "type": "string",
485
+ "enum": [
486
+ "image:allow-new"
487
+ ]
488
+ },
489
+ {
490
+ "description": "image:allow-rgba -> Enables the rgba command without any pre-configured scope.",
491
+ "type": "string",
492
+ "enum": [
493
+ "image:allow-rgba"
494
+ ]
495
+ },
496
+ {
497
+ "description": "image:allow-size -> Enables the size command without any pre-configured scope.",
498
+ "type": "string",
499
+ "enum": [
500
+ "image:allow-size"
501
+ ]
502
+ },
503
+ {
504
+ "description": "image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.",
505
+ "type": "string",
506
+ "enum": [
507
+ "image:deny-from-bytes"
508
+ ]
509
+ },
510
+ {
511
+ "description": "image:deny-from-path -> Denies the from_path command without any pre-configured scope.",
512
+ "type": "string",
513
+ "enum": [
514
+ "image:deny-from-path"
515
+ ]
516
+ },
517
+ {
518
+ "description": "image:deny-new -> Denies the new command without any pre-configured scope.",
519
+ "type": "string",
520
+ "enum": [
521
+ "image:deny-new"
522
+ ]
523
+ },
524
+ {
525
+ "description": "image:deny-rgba -> Denies the rgba command without any pre-configured scope.",
526
+ "type": "string",
527
+ "enum": [
528
+ "image:deny-rgba"
529
+ ]
530
+ },
531
+ {
532
+ "description": "image:deny-size -> Denies the size command without any pre-configured scope.",
533
+ "type": "string",
534
+ "enum": [
535
+ "image:deny-size"
536
+ ]
537
+ },
538
+ {
539
+ "description": "menu:default -> Default permissions for the plugin.",
540
+ "type": "string",
541
+ "enum": [
542
+ "menu:default"
543
+ ]
544
+ },
545
+ {
546
+ "description": "menu:allow-append -> Enables the append command without any pre-configured scope.",
547
+ "type": "string",
548
+ "enum": [
549
+ "menu:allow-append"
550
+ ]
551
+ },
552
+ {
553
+ "description": "menu:allow-create-default -> Enables the create_default command without any pre-configured scope.",
554
+ "type": "string",
555
+ "enum": [
556
+ "menu:allow-create-default"
557
+ ]
558
+ },
559
+ {
560
+ "description": "menu:allow-get -> Enables the get command without any pre-configured scope.",
561
+ "type": "string",
562
+ "enum": [
563
+ "menu:allow-get"
564
+ ]
565
+ },
566
+ {
567
+ "description": "menu:allow-insert -> Enables the insert command without any pre-configured scope.",
568
+ "type": "string",
569
+ "enum": [
570
+ "menu:allow-insert"
571
+ ]
572
+ },
573
+ {
574
+ "description": "menu:allow-is-checked -> Enables the is_checked command without any pre-configured scope.",
575
+ "type": "string",
576
+ "enum": [
577
+ "menu:allow-is-checked"
578
+ ]
579
+ },
580
+ {
581
+ "description": "menu:allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.",
582
+ "type": "string",
583
+ "enum": [
584
+ "menu:allow-is-enabled"
585
+ ]
586
+ },
587
+ {
588
+ "description": "menu:allow-items -> Enables the items command without any pre-configured scope.",
589
+ "type": "string",
590
+ "enum": [
591
+ "menu:allow-items"
592
+ ]
593
+ },
594
+ {
595
+ "description": "menu:allow-new -> Enables the new command without any pre-configured scope.",
596
+ "type": "string",
597
+ "enum": [
598
+ "menu:allow-new"
599
+ ]
600
+ },
601
+ {
602
+ "description": "menu:allow-popup -> Enables the popup command without any pre-configured scope.",
603
+ "type": "string",
604
+ "enum": [
605
+ "menu:allow-popup"
606
+ ]
607
+ },
608
+ {
609
+ "description": "menu:allow-prepend -> Enables the prepend command without any pre-configured scope.",
610
+ "type": "string",
611
+ "enum": [
612
+ "menu:allow-prepend"
613
+ ]
614
+ },
615
+ {
616
+ "description": "menu:allow-remove -> Enables the remove command without any pre-configured scope.",
617
+ "type": "string",
618
+ "enum": [
619
+ "menu:allow-remove"
620
+ ]
621
+ },
622
+ {
623
+ "description": "menu:allow-remove-at -> Enables the remove_at command without any pre-configured scope.",
624
+ "type": "string",
625
+ "enum": [
626
+ "menu:allow-remove-at"
627
+ ]
628
+ },
629
+ {
630
+ "description": "menu:allow-set-accelerator -> Enables the set_accelerator command without any pre-configured scope.",
631
+ "type": "string",
632
+ "enum": [
633
+ "menu:allow-set-accelerator"
634
+ ]
635
+ },
636
+ {
637
+ "description": "menu:allow-set-as-app-menu -> Enables the set_as_app_menu command without any pre-configured scope.",
638
+ "type": "string",
639
+ "enum": [
640
+ "menu:allow-set-as-app-menu"
641
+ ]
642
+ },
643
+ {
644
+ "description": "menu:allow-set-as-help-menu-for-nsapp -> Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.",
645
+ "type": "string",
646
+ "enum": [
647
+ "menu:allow-set-as-help-menu-for-nsapp"
648
+ ]
649
+ },
650
+ {
651
+ "description": "menu:allow-set-as-window-menu -> Enables the set_as_window_menu command without any pre-configured scope.",
652
+ "type": "string",
653
+ "enum": [
654
+ "menu:allow-set-as-window-menu"
655
+ ]
656
+ },
657
+ {
658
+ "description": "menu:allow-set-as-windows-menu-for-nsapp -> Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.",
659
+ "type": "string",
660
+ "enum": [
661
+ "menu:allow-set-as-windows-menu-for-nsapp"
662
+ ]
663
+ },
664
+ {
665
+ "description": "menu:allow-set-checked -> Enables the set_checked command without any pre-configured scope.",
666
+ "type": "string",
667
+ "enum": [
668
+ "menu:allow-set-checked"
669
+ ]
670
+ },
671
+ {
672
+ "description": "menu:allow-set-enabled -> Enables the set_enabled command without any pre-configured scope.",
673
+ "type": "string",
674
+ "enum": [
675
+ "menu:allow-set-enabled"
676
+ ]
677
+ },
678
+ {
679
+ "description": "menu:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
680
+ "type": "string",
681
+ "enum": [
682
+ "menu:allow-set-icon"
683
+ ]
684
+ },
685
+ {
686
+ "description": "menu:allow-set-text -> Enables the set_text command without any pre-configured scope.",
687
+ "type": "string",
688
+ "enum": [
689
+ "menu:allow-set-text"
690
+ ]
691
+ },
692
+ {
693
+ "description": "menu:allow-text -> Enables the text command without any pre-configured scope.",
694
+ "type": "string",
695
+ "enum": [
696
+ "menu:allow-text"
697
+ ]
698
+ },
699
+ {
700
+ "description": "menu:deny-append -> Denies the append command without any pre-configured scope.",
701
+ "type": "string",
702
+ "enum": [
703
+ "menu:deny-append"
704
+ ]
705
+ },
706
+ {
707
+ "description": "menu:deny-create-default -> Denies the create_default command without any pre-configured scope.",
708
+ "type": "string",
709
+ "enum": [
710
+ "menu:deny-create-default"
711
+ ]
712
+ },
713
+ {
714
+ "description": "menu:deny-get -> Denies the get command without any pre-configured scope.",
715
+ "type": "string",
716
+ "enum": [
717
+ "menu:deny-get"
718
+ ]
719
+ },
720
+ {
721
+ "description": "menu:deny-insert -> Denies the insert command without any pre-configured scope.",
722
+ "type": "string",
723
+ "enum": [
724
+ "menu:deny-insert"
725
+ ]
726
+ },
727
+ {
728
+ "description": "menu:deny-is-checked -> Denies the is_checked command without any pre-configured scope.",
729
+ "type": "string",
730
+ "enum": [
731
+ "menu:deny-is-checked"
732
+ ]
733
+ },
734
+ {
735
+ "description": "menu:deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.",
736
+ "type": "string",
737
+ "enum": [
738
+ "menu:deny-is-enabled"
739
+ ]
740
+ },
741
+ {
742
+ "description": "menu:deny-items -> Denies the items command without any pre-configured scope.",
743
+ "type": "string",
744
+ "enum": [
745
+ "menu:deny-items"
746
+ ]
747
+ },
748
+ {
749
+ "description": "menu:deny-new -> Denies the new command without any pre-configured scope.",
750
+ "type": "string",
751
+ "enum": [
752
+ "menu:deny-new"
753
+ ]
754
+ },
755
+ {
756
+ "description": "menu:deny-popup -> Denies the popup command without any pre-configured scope.",
757
+ "type": "string",
758
+ "enum": [
759
+ "menu:deny-popup"
760
+ ]
761
+ },
762
+ {
763
+ "description": "menu:deny-prepend -> Denies the prepend command without any pre-configured scope.",
764
+ "type": "string",
765
+ "enum": [
766
+ "menu:deny-prepend"
767
+ ]
768
+ },
769
+ {
770
+ "description": "menu:deny-remove -> Denies the remove command without any pre-configured scope.",
771
+ "type": "string",
772
+ "enum": [
773
+ "menu:deny-remove"
774
+ ]
775
+ },
776
+ {
777
+ "description": "menu:deny-remove-at -> Denies the remove_at command without any pre-configured scope.",
778
+ "type": "string",
779
+ "enum": [
780
+ "menu:deny-remove-at"
781
+ ]
782
+ },
783
+ {
784
+ "description": "menu:deny-set-accelerator -> Denies the set_accelerator command without any pre-configured scope.",
785
+ "type": "string",
786
+ "enum": [
787
+ "menu:deny-set-accelerator"
788
+ ]
789
+ },
790
+ {
791
+ "description": "menu:deny-set-as-app-menu -> Denies the set_as_app_menu command without any pre-configured scope.",
792
+ "type": "string",
793
+ "enum": [
794
+ "menu:deny-set-as-app-menu"
795
+ ]
796
+ },
797
+ {
798
+ "description": "menu:deny-set-as-help-menu-for-nsapp -> Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.",
799
+ "type": "string",
800
+ "enum": [
801
+ "menu:deny-set-as-help-menu-for-nsapp"
802
+ ]
803
+ },
804
+ {
805
+ "description": "menu:deny-set-as-window-menu -> Denies the set_as_window_menu command without any pre-configured scope.",
806
+ "type": "string",
807
+ "enum": [
808
+ "menu:deny-set-as-window-menu"
809
+ ]
810
+ },
811
+ {
812
+ "description": "menu:deny-set-as-windows-menu-for-nsapp -> Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.",
813
+ "type": "string",
814
+ "enum": [
815
+ "menu:deny-set-as-windows-menu-for-nsapp"
816
+ ]
817
+ },
818
+ {
819
+ "description": "menu:deny-set-checked -> Denies the set_checked command without any pre-configured scope.",
820
+ "type": "string",
821
+ "enum": [
822
+ "menu:deny-set-checked"
823
+ ]
824
+ },
825
+ {
826
+ "description": "menu:deny-set-enabled -> Denies the set_enabled command without any pre-configured scope.",
827
+ "type": "string",
828
+ "enum": [
829
+ "menu:deny-set-enabled"
830
+ ]
831
+ },
832
+ {
833
+ "description": "menu:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
834
+ "type": "string",
835
+ "enum": [
836
+ "menu:deny-set-icon"
837
+ ]
838
+ },
839
+ {
840
+ "description": "menu:deny-set-text -> Denies the set_text command without any pre-configured scope.",
841
+ "type": "string",
842
+ "enum": [
843
+ "menu:deny-set-text"
844
+ ]
845
+ },
846
+ {
847
+ "description": "menu:deny-text -> Denies the text command without any pre-configured scope.",
848
+ "type": "string",
849
+ "enum": [
850
+ "menu:deny-text"
851
+ ]
852
+ },
853
+ {
854
+ "description": "path:default -> Default permissions for the plugin.",
855
+ "type": "string",
856
+ "enum": [
857
+ "path:default"
858
+ ]
859
+ },
860
+ {
861
+ "description": "path:allow-basename -> Enables the basename command without any pre-configured scope.",
862
+ "type": "string",
863
+ "enum": [
864
+ "path:allow-basename"
865
+ ]
866
+ },
867
+ {
868
+ "description": "path:allow-dirname -> Enables the dirname command without any pre-configured scope.",
869
+ "type": "string",
870
+ "enum": [
871
+ "path:allow-dirname"
872
+ ]
873
+ },
874
+ {
875
+ "description": "path:allow-extname -> Enables the extname command without any pre-configured scope.",
876
+ "type": "string",
877
+ "enum": [
878
+ "path:allow-extname"
879
+ ]
880
+ },
881
+ {
882
+ "description": "path:allow-is-absolute -> Enables the is_absolute command without any pre-configured scope.",
883
+ "type": "string",
884
+ "enum": [
885
+ "path:allow-is-absolute"
886
+ ]
887
+ },
888
+ {
889
+ "description": "path:allow-join -> Enables the join command without any pre-configured scope.",
890
+ "type": "string",
891
+ "enum": [
892
+ "path:allow-join"
893
+ ]
894
+ },
895
+ {
896
+ "description": "path:allow-normalize -> Enables the normalize command without any pre-configured scope.",
897
+ "type": "string",
898
+ "enum": [
899
+ "path:allow-normalize"
900
+ ]
901
+ },
902
+ {
903
+ "description": "path:allow-resolve -> Enables the resolve command without any pre-configured scope.",
904
+ "type": "string",
905
+ "enum": [
906
+ "path:allow-resolve"
907
+ ]
908
+ },
909
+ {
910
+ "description": "path:allow-resolve-directory -> Enables the resolve_directory command without any pre-configured scope.",
911
+ "type": "string",
912
+ "enum": [
913
+ "path:allow-resolve-directory"
914
+ ]
915
+ },
916
+ {
917
+ "description": "path:deny-basename -> Denies the basename command without any pre-configured scope.",
918
+ "type": "string",
919
+ "enum": [
920
+ "path:deny-basename"
921
+ ]
922
+ },
923
+ {
924
+ "description": "path:deny-dirname -> Denies the dirname command without any pre-configured scope.",
925
+ "type": "string",
926
+ "enum": [
927
+ "path:deny-dirname"
928
+ ]
929
+ },
930
+ {
931
+ "description": "path:deny-extname -> Denies the extname command without any pre-configured scope.",
932
+ "type": "string",
933
+ "enum": [
934
+ "path:deny-extname"
935
+ ]
936
+ },
937
+ {
938
+ "description": "path:deny-is-absolute -> Denies the is_absolute command without any pre-configured scope.",
939
+ "type": "string",
940
+ "enum": [
941
+ "path:deny-is-absolute"
942
+ ]
943
+ },
944
+ {
945
+ "description": "path:deny-join -> Denies the join command without any pre-configured scope.",
946
+ "type": "string",
947
+ "enum": [
948
+ "path:deny-join"
949
+ ]
950
+ },
951
+ {
952
+ "description": "path:deny-normalize -> Denies the normalize command without any pre-configured scope.",
953
+ "type": "string",
954
+ "enum": [
955
+ "path:deny-normalize"
956
+ ]
957
+ },
958
+ {
959
+ "description": "path:deny-resolve -> Denies the resolve command without any pre-configured scope.",
960
+ "type": "string",
961
+ "enum": [
962
+ "path:deny-resolve"
963
+ ]
964
+ },
965
+ {
966
+ "description": "path:deny-resolve-directory -> Denies the resolve_directory command without any pre-configured scope.",
967
+ "type": "string",
968
+ "enum": [
969
+ "path:deny-resolve-directory"
970
+ ]
971
+ },
972
+ {
973
+ "description": "resources:default -> Default permissions for the plugin.",
974
+ "type": "string",
975
+ "enum": [
976
+ "resources:default"
977
+ ]
978
+ },
979
+ {
980
+ "description": "resources:allow-close -> Enables the close command without any pre-configured scope.",
981
+ "type": "string",
982
+ "enum": [
983
+ "resources:allow-close"
984
+ ]
985
+ },
986
+ {
987
+ "description": "resources:deny-close -> Denies the close command without any pre-configured scope.",
988
+ "type": "string",
989
+ "enum": [
990
+ "resources:deny-close"
991
+ ]
992
+ },
993
+ {
994
+ "description": "tray:default -> Default permissions for the plugin.",
995
+ "type": "string",
996
+ "enum": [
997
+ "tray:default"
998
+ ]
999
+ },
1000
+ {
1001
+ "description": "tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.",
1002
+ "type": "string",
1003
+ "enum": [
1004
+ "tray:allow-get-by-id"
1005
+ ]
1006
+ },
1007
+ {
1008
+ "description": "tray:allow-new -> Enables the new command without any pre-configured scope.",
1009
+ "type": "string",
1010
+ "enum": [
1011
+ "tray:allow-new"
1012
+ ]
1013
+ },
1014
+ {
1015
+ "description": "tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.",
1016
+ "type": "string",
1017
+ "enum": [
1018
+ "tray:allow-remove-by-id"
1019
+ ]
1020
+ },
1021
+ {
1022
+ "description": "tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
1023
+ "type": "string",
1024
+ "enum": [
1025
+ "tray:allow-set-icon"
1026
+ ]
1027
+ },
1028
+ {
1029
+ "description": "tray:allow-set-icon-as-template -> Enables the set_icon_as_template command without any pre-configured scope.",
1030
+ "type": "string",
1031
+ "enum": [
1032
+ "tray:allow-set-icon-as-template"
1033
+ ]
1034
+ },
1035
+ {
1036
+ "description": "tray:allow-set-menu -> Enables the set_menu command without any pre-configured scope.",
1037
+ "type": "string",
1038
+ "enum": [
1039
+ "tray:allow-set-menu"
1040
+ ]
1041
+ },
1042
+ {
1043
+ "description": "tray:allow-set-show-menu-on-left-click -> Enables the set_show_menu_on_left_click command without any pre-configured scope.",
1044
+ "type": "string",
1045
+ "enum": [
1046
+ "tray:allow-set-show-menu-on-left-click"
1047
+ ]
1048
+ },
1049
+ {
1050
+ "description": "tray:allow-set-temp-dir-path -> Enables the set_temp_dir_path command without any pre-configured scope.",
1051
+ "type": "string",
1052
+ "enum": [
1053
+ "tray:allow-set-temp-dir-path"
1054
+ ]
1055
+ },
1056
+ {
1057
+ "description": "tray:allow-set-title -> Enables the set_title command without any pre-configured scope.",
1058
+ "type": "string",
1059
+ "enum": [
1060
+ "tray:allow-set-title"
1061
+ ]
1062
+ },
1063
+ {
1064
+ "description": "tray:allow-set-tooltip -> Enables the set_tooltip command without any pre-configured scope.",
1065
+ "type": "string",
1066
+ "enum": [
1067
+ "tray:allow-set-tooltip"
1068
+ ]
1069
+ },
1070
+ {
1071
+ "description": "tray:allow-set-visible -> Enables the set_visible command without any pre-configured scope.",
1072
+ "type": "string",
1073
+ "enum": [
1074
+ "tray:allow-set-visible"
1075
+ ]
1076
+ },
1077
+ {
1078
+ "description": "tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.",
1079
+ "type": "string",
1080
+ "enum": [
1081
+ "tray:deny-get-by-id"
1082
+ ]
1083
+ },
1084
+ {
1085
+ "description": "tray:deny-new -> Denies the new command without any pre-configured scope.",
1086
+ "type": "string",
1087
+ "enum": [
1088
+ "tray:deny-new"
1089
+ ]
1090
+ },
1091
+ {
1092
+ "description": "tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.",
1093
+ "type": "string",
1094
+ "enum": [
1095
+ "tray:deny-remove-by-id"
1096
+ ]
1097
+ },
1098
+ {
1099
+ "description": "tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
1100
+ "type": "string",
1101
+ "enum": [
1102
+ "tray:deny-set-icon"
1103
+ ]
1104
+ },
1105
+ {
1106
+ "description": "tray:deny-set-icon-as-template -> Denies the set_icon_as_template command without any pre-configured scope.",
1107
+ "type": "string",
1108
+ "enum": [
1109
+ "tray:deny-set-icon-as-template"
1110
+ ]
1111
+ },
1112
+ {
1113
+ "description": "tray:deny-set-menu -> Denies the set_menu command without any pre-configured scope.",
1114
+ "type": "string",
1115
+ "enum": [
1116
+ "tray:deny-set-menu"
1117
+ ]
1118
+ },
1119
+ {
1120
+ "description": "tray:deny-set-show-menu-on-left-click -> Denies the set_show_menu_on_left_click command without any pre-configured scope.",
1121
+ "type": "string",
1122
+ "enum": [
1123
+ "tray:deny-set-show-menu-on-left-click"
1124
+ ]
1125
+ },
1126
+ {
1127
+ "description": "tray:deny-set-temp-dir-path -> Denies the set_temp_dir_path command without any pre-configured scope.",
1128
+ "type": "string",
1129
+ "enum": [
1130
+ "tray:deny-set-temp-dir-path"
1131
+ ]
1132
+ },
1133
+ {
1134
+ "description": "tray:deny-set-title -> Denies the set_title command without any pre-configured scope.",
1135
+ "type": "string",
1136
+ "enum": [
1137
+ "tray:deny-set-title"
1138
+ ]
1139
+ },
1140
+ {
1141
+ "description": "tray:deny-set-tooltip -> Denies the set_tooltip command without any pre-configured scope.",
1142
+ "type": "string",
1143
+ "enum": [
1144
+ "tray:deny-set-tooltip"
1145
+ ]
1146
+ },
1147
+ {
1148
+ "description": "tray:deny-set-visible -> Denies the set_visible command without any pre-configured scope.",
1149
+ "type": "string",
1150
+ "enum": [
1151
+ "tray:deny-set-visible"
1152
+ ]
1153
+ },
1154
+ {
1155
+ "description": "webview:default -> Default permissions for the plugin.",
1156
+ "type": "string",
1157
+ "enum": [
1158
+ "webview:default"
1159
+ ]
1160
+ },
1161
+ {
1162
+ "description": "webview:allow-create-webview -> Enables the create_webview command without any pre-configured scope.",
1163
+ "type": "string",
1164
+ "enum": [
1165
+ "webview:allow-create-webview"
1166
+ ]
1167
+ },
1168
+ {
1169
+ "description": "webview:allow-create-webview-window -> Enables the create_webview_window command without any pre-configured scope.",
1170
+ "type": "string",
1171
+ "enum": [
1172
+ "webview:allow-create-webview-window"
1173
+ ]
1174
+ },
1175
+ {
1176
+ "description": "webview:allow-internal-toggle-devtools -> Enables the internal_toggle_devtools command without any pre-configured scope.",
1177
+ "type": "string",
1178
+ "enum": [
1179
+ "webview:allow-internal-toggle-devtools"
1180
+ ]
1181
+ },
1182
+ {
1183
+ "description": "webview:allow-print -> Enables the print command without any pre-configured scope.",
1184
+ "type": "string",
1185
+ "enum": [
1186
+ "webview:allow-print"
1187
+ ]
1188
+ },
1189
+ {
1190
+ "description": "webview:allow-reparent -> Enables the reparent command without any pre-configured scope.",
1191
+ "type": "string",
1192
+ "enum": [
1193
+ "webview:allow-reparent"
1194
+ ]
1195
+ },
1196
+ {
1197
+ "description": "webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.",
1198
+ "type": "string",
1199
+ "enum": [
1200
+ "webview:allow-set-webview-focus"
1201
+ ]
1202
+ },
1203
+ {
1204
+ "description": "webview:allow-set-webview-position -> Enables the set_webview_position command without any pre-configured scope.",
1205
+ "type": "string",
1206
+ "enum": [
1207
+ "webview:allow-set-webview-position"
1208
+ ]
1209
+ },
1210
+ {
1211
+ "description": "webview:allow-set-webview-size -> Enables the set_webview_size command without any pre-configured scope.",
1212
+ "type": "string",
1213
+ "enum": [
1214
+ "webview:allow-set-webview-size"
1215
+ ]
1216
+ },
1217
+ {
1218
+ "description": "webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.",
1219
+ "type": "string",
1220
+ "enum": [
1221
+ "webview:allow-set-webview-zoom"
1222
+ ]
1223
+ },
1224
+ {
1225
+ "description": "webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.",
1226
+ "type": "string",
1227
+ "enum": [
1228
+ "webview:allow-webview-close"
1229
+ ]
1230
+ },
1231
+ {
1232
+ "description": "webview:allow-webview-position -> Enables the webview_position command without any pre-configured scope.",
1233
+ "type": "string",
1234
+ "enum": [
1235
+ "webview:allow-webview-position"
1236
+ ]
1237
+ },
1238
+ {
1239
+ "description": "webview:allow-webview-size -> Enables the webview_size command without any pre-configured scope.",
1240
+ "type": "string",
1241
+ "enum": [
1242
+ "webview:allow-webview-size"
1243
+ ]
1244
+ },
1245
+ {
1246
+ "description": "webview:deny-create-webview -> Denies the create_webview command without any pre-configured scope.",
1247
+ "type": "string",
1248
+ "enum": [
1249
+ "webview:deny-create-webview"
1250
+ ]
1251
+ },
1252
+ {
1253
+ "description": "webview:deny-create-webview-window -> Denies the create_webview_window command without any pre-configured scope.",
1254
+ "type": "string",
1255
+ "enum": [
1256
+ "webview:deny-create-webview-window"
1257
+ ]
1258
+ },
1259
+ {
1260
+ "description": "webview:deny-internal-toggle-devtools -> Denies the internal_toggle_devtools command without any pre-configured scope.",
1261
+ "type": "string",
1262
+ "enum": [
1263
+ "webview:deny-internal-toggle-devtools"
1264
+ ]
1265
+ },
1266
+ {
1267
+ "description": "webview:deny-print -> Denies the print command without any pre-configured scope.",
1268
+ "type": "string",
1269
+ "enum": [
1270
+ "webview:deny-print"
1271
+ ]
1272
+ },
1273
+ {
1274
+ "description": "webview:deny-reparent -> Denies the reparent command without any pre-configured scope.",
1275
+ "type": "string",
1276
+ "enum": [
1277
+ "webview:deny-reparent"
1278
+ ]
1279
+ },
1280
+ {
1281
+ "description": "webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.",
1282
+ "type": "string",
1283
+ "enum": [
1284
+ "webview:deny-set-webview-focus"
1285
+ ]
1286
+ },
1287
+ {
1288
+ "description": "webview:deny-set-webview-position -> Denies the set_webview_position command without any pre-configured scope.",
1289
+ "type": "string",
1290
+ "enum": [
1291
+ "webview:deny-set-webview-position"
1292
+ ]
1293
+ },
1294
+ {
1295
+ "description": "webview:deny-set-webview-size -> Denies the set_webview_size command without any pre-configured scope.",
1296
+ "type": "string",
1297
+ "enum": [
1298
+ "webview:deny-set-webview-size"
1299
+ ]
1300
+ },
1301
+ {
1302
+ "description": "webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.",
1303
+ "type": "string",
1304
+ "enum": [
1305
+ "webview:deny-set-webview-zoom"
1306
+ ]
1307
+ },
1308
+ {
1309
+ "description": "webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.",
1310
+ "type": "string",
1311
+ "enum": [
1312
+ "webview:deny-webview-close"
1313
+ ]
1314
+ },
1315
+ {
1316
+ "description": "webview:deny-webview-position -> Denies the webview_position command without any pre-configured scope.",
1317
+ "type": "string",
1318
+ "enum": [
1319
+ "webview:deny-webview-position"
1320
+ ]
1321
+ },
1322
+ {
1323
+ "description": "webview:deny-webview-size -> Denies the webview_size command without any pre-configured scope.",
1324
+ "type": "string",
1325
+ "enum": [
1326
+ "webview:deny-webview-size"
1327
+ ]
1328
+ },
1329
+ {
1330
+ "description": "window:default -> Default permissions for the plugin.",
1331
+ "type": "string",
1332
+ "enum": [
1333
+ "window:default"
1334
+ ]
1335
+ },
1336
+ {
1337
+ "description": "window:allow-available-monitors -> Enables the available_monitors command without any pre-configured scope.",
1338
+ "type": "string",
1339
+ "enum": [
1340
+ "window:allow-available-monitors"
1341
+ ]
1342
+ },
1343
+ {
1344
+ "description": "window:allow-center -> Enables the center command without any pre-configured scope.",
1345
+ "type": "string",
1346
+ "enum": [
1347
+ "window:allow-center"
1348
+ ]
1349
+ },
1350
+ {
1351
+ "description": "window:allow-close -> Enables the close command without any pre-configured scope.",
1352
+ "type": "string",
1353
+ "enum": [
1354
+ "window:allow-close"
1355
+ ]
1356
+ },
1357
+ {
1358
+ "description": "window:allow-create -> Enables the create command without any pre-configured scope.",
1359
+ "type": "string",
1360
+ "enum": [
1361
+ "window:allow-create"
1362
+ ]
1363
+ },
1364
+ {
1365
+ "description": "window:allow-current-monitor -> Enables the current_monitor command without any pre-configured scope.",
1366
+ "type": "string",
1367
+ "enum": [
1368
+ "window:allow-current-monitor"
1369
+ ]
1370
+ },
1371
+ {
1372
+ "description": "window:allow-cursor-position -> Enables the cursor_position command without any pre-configured scope.",
1373
+ "type": "string",
1374
+ "enum": [
1375
+ "window:allow-cursor-position"
1376
+ ]
1377
+ },
1378
+ {
1379
+ "description": "window:allow-destroy -> Enables the destroy command without any pre-configured scope.",
1380
+ "type": "string",
1381
+ "enum": [
1382
+ "window:allow-destroy"
1383
+ ]
1384
+ },
1385
+ {
1386
+ "description": "window:allow-hide -> Enables the hide command without any pre-configured scope.",
1387
+ "type": "string",
1388
+ "enum": [
1389
+ "window:allow-hide"
1390
+ ]
1391
+ },
1392
+ {
1393
+ "description": "window:allow-inner-position -> Enables the inner_position command without any pre-configured scope.",
1394
+ "type": "string",
1395
+ "enum": [
1396
+ "window:allow-inner-position"
1397
+ ]
1398
+ },
1399
+ {
1400
+ "description": "window:allow-inner-size -> Enables the inner_size command without any pre-configured scope.",
1401
+ "type": "string",
1402
+ "enum": [
1403
+ "window:allow-inner-size"
1404
+ ]
1405
+ },
1406
+ {
1407
+ "description": "window:allow-internal-toggle-maximize -> Enables the internal_toggle_maximize command without any pre-configured scope.",
1408
+ "type": "string",
1409
+ "enum": [
1410
+ "window:allow-internal-toggle-maximize"
1411
+ ]
1412
+ },
1413
+ {
1414
+ "description": "window:allow-is-closable -> Enables the is_closable command without any pre-configured scope.",
1415
+ "type": "string",
1416
+ "enum": [
1417
+ "window:allow-is-closable"
1418
+ ]
1419
+ },
1420
+ {
1421
+ "description": "window:allow-is-decorated -> Enables the is_decorated command without any pre-configured scope.",
1422
+ "type": "string",
1423
+ "enum": [
1424
+ "window:allow-is-decorated"
1425
+ ]
1426
+ },
1427
+ {
1428
+ "description": "window:allow-is-focused -> Enables the is_focused command without any pre-configured scope.",
1429
+ "type": "string",
1430
+ "enum": [
1431
+ "window:allow-is-focused"
1432
+ ]
1433
+ },
1434
+ {
1435
+ "description": "window:allow-is-fullscreen -> Enables the is_fullscreen command without any pre-configured scope.",
1436
+ "type": "string",
1437
+ "enum": [
1438
+ "window:allow-is-fullscreen"
1439
+ ]
1440
+ },
1441
+ {
1442
+ "description": "window:allow-is-maximizable -> Enables the is_maximizable command without any pre-configured scope.",
1443
+ "type": "string",
1444
+ "enum": [
1445
+ "window:allow-is-maximizable"
1446
+ ]
1447
+ },
1448
+ {
1449
+ "description": "window:allow-is-maximized -> Enables the is_maximized command without any pre-configured scope.",
1450
+ "type": "string",
1451
+ "enum": [
1452
+ "window:allow-is-maximized"
1453
+ ]
1454
+ },
1455
+ {
1456
+ "description": "window:allow-is-minimizable -> Enables the is_minimizable command without any pre-configured scope.",
1457
+ "type": "string",
1458
+ "enum": [
1459
+ "window:allow-is-minimizable"
1460
+ ]
1461
+ },
1462
+ {
1463
+ "description": "window:allow-is-minimized -> Enables the is_minimized command without any pre-configured scope.",
1464
+ "type": "string",
1465
+ "enum": [
1466
+ "window:allow-is-minimized"
1467
+ ]
1468
+ },
1469
+ {
1470
+ "description": "window:allow-is-resizable -> Enables the is_resizable command without any pre-configured scope.",
1471
+ "type": "string",
1472
+ "enum": [
1473
+ "window:allow-is-resizable"
1474
+ ]
1475
+ },
1476
+ {
1477
+ "description": "window:allow-is-visible -> Enables the is_visible command without any pre-configured scope.",
1478
+ "type": "string",
1479
+ "enum": [
1480
+ "window:allow-is-visible"
1481
+ ]
1482
+ },
1483
+ {
1484
+ "description": "window:allow-maximize -> Enables the maximize command without any pre-configured scope.",
1485
+ "type": "string",
1486
+ "enum": [
1487
+ "window:allow-maximize"
1488
+ ]
1489
+ },
1490
+ {
1491
+ "description": "window:allow-minimize -> Enables the minimize command without any pre-configured scope.",
1492
+ "type": "string",
1493
+ "enum": [
1494
+ "window:allow-minimize"
1495
+ ]
1496
+ },
1497
+ {
1498
+ "description": "window:allow-monitor-from-point -> Enables the monitor_from_point command without any pre-configured scope.",
1499
+ "type": "string",
1500
+ "enum": [
1501
+ "window:allow-monitor-from-point"
1502
+ ]
1503
+ },
1504
+ {
1505
+ "description": "window:allow-outer-position -> Enables the outer_position command without any pre-configured scope.",
1506
+ "type": "string",
1507
+ "enum": [
1508
+ "window:allow-outer-position"
1509
+ ]
1510
+ },
1511
+ {
1512
+ "description": "window:allow-outer-size -> Enables the outer_size command without any pre-configured scope.",
1513
+ "type": "string",
1514
+ "enum": [
1515
+ "window:allow-outer-size"
1516
+ ]
1517
+ },
1518
+ {
1519
+ "description": "window:allow-primary-monitor -> Enables the primary_monitor command without any pre-configured scope.",
1520
+ "type": "string",
1521
+ "enum": [
1522
+ "window:allow-primary-monitor"
1523
+ ]
1524
+ },
1525
+ {
1526
+ "description": "window:allow-request-user-attention -> Enables the request_user_attention command without any pre-configured scope.",
1527
+ "type": "string",
1528
+ "enum": [
1529
+ "window:allow-request-user-attention"
1530
+ ]
1531
+ },
1532
+ {
1533
+ "description": "window:allow-scale-factor -> Enables the scale_factor command without any pre-configured scope.",
1534
+ "type": "string",
1535
+ "enum": [
1536
+ "window:allow-scale-factor"
1537
+ ]
1538
+ },
1539
+ {
1540
+ "description": "window:allow-set-always-on-bottom -> Enables the set_always_on_bottom command without any pre-configured scope.",
1541
+ "type": "string",
1542
+ "enum": [
1543
+ "window:allow-set-always-on-bottom"
1544
+ ]
1545
+ },
1546
+ {
1547
+ "description": "window:allow-set-always-on-top -> Enables the set_always_on_top command without any pre-configured scope.",
1548
+ "type": "string",
1549
+ "enum": [
1550
+ "window:allow-set-always-on-top"
1551
+ ]
1552
+ },
1553
+ {
1554
+ "description": "window:allow-set-closable -> Enables the set_closable command without any pre-configured scope.",
1555
+ "type": "string",
1556
+ "enum": [
1557
+ "window:allow-set-closable"
1558
+ ]
1559
+ },
1560
+ {
1561
+ "description": "window:allow-set-content-protected -> Enables the set_content_protected command without any pre-configured scope.",
1562
+ "type": "string",
1563
+ "enum": [
1564
+ "window:allow-set-content-protected"
1565
+ ]
1566
+ },
1567
+ {
1568
+ "description": "window:allow-set-cursor-grab -> Enables the set_cursor_grab command without any pre-configured scope.",
1569
+ "type": "string",
1570
+ "enum": [
1571
+ "window:allow-set-cursor-grab"
1572
+ ]
1573
+ },
1574
+ {
1575
+ "description": "window:allow-set-cursor-icon -> Enables the set_cursor_icon command without any pre-configured scope.",
1576
+ "type": "string",
1577
+ "enum": [
1578
+ "window:allow-set-cursor-icon"
1579
+ ]
1580
+ },
1581
+ {
1582
+ "description": "window:allow-set-cursor-position -> Enables the set_cursor_position command without any pre-configured scope.",
1583
+ "type": "string",
1584
+ "enum": [
1585
+ "window:allow-set-cursor-position"
1586
+ ]
1587
+ },
1588
+ {
1589
+ "description": "window:allow-set-cursor-visible -> Enables the set_cursor_visible command without any pre-configured scope.",
1590
+ "type": "string",
1591
+ "enum": [
1592
+ "window:allow-set-cursor-visible"
1593
+ ]
1594
+ },
1595
+ {
1596
+ "description": "window:allow-set-decorations -> Enables the set_decorations command without any pre-configured scope.",
1597
+ "type": "string",
1598
+ "enum": [
1599
+ "window:allow-set-decorations"
1600
+ ]
1601
+ },
1602
+ {
1603
+ "description": "window:allow-set-effects -> Enables the set_effects command without any pre-configured scope.",
1604
+ "type": "string",
1605
+ "enum": [
1606
+ "window:allow-set-effects"
1607
+ ]
1608
+ },
1609
+ {
1610
+ "description": "window:allow-set-focus -> Enables the set_focus command without any pre-configured scope.",
1611
+ "type": "string",
1612
+ "enum": [
1613
+ "window:allow-set-focus"
1614
+ ]
1615
+ },
1616
+ {
1617
+ "description": "window:allow-set-fullscreen -> Enables the set_fullscreen command without any pre-configured scope.",
1618
+ "type": "string",
1619
+ "enum": [
1620
+ "window:allow-set-fullscreen"
1621
+ ]
1622
+ },
1623
+ {
1624
+ "description": "window:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
1625
+ "type": "string",
1626
+ "enum": [
1627
+ "window:allow-set-icon"
1628
+ ]
1629
+ },
1630
+ {
1631
+ "description": "window:allow-set-ignore-cursor-events -> Enables the set_ignore_cursor_events command without any pre-configured scope.",
1632
+ "type": "string",
1633
+ "enum": [
1634
+ "window:allow-set-ignore-cursor-events"
1635
+ ]
1636
+ },
1637
+ {
1638
+ "description": "window:allow-set-max-size -> Enables the set_max_size command without any pre-configured scope.",
1639
+ "type": "string",
1640
+ "enum": [
1641
+ "window:allow-set-max-size"
1642
+ ]
1643
+ },
1644
+ {
1645
+ "description": "window:allow-set-maximizable -> Enables the set_maximizable command without any pre-configured scope.",
1646
+ "type": "string",
1647
+ "enum": [
1648
+ "window:allow-set-maximizable"
1649
+ ]
1650
+ },
1651
+ {
1652
+ "description": "window:allow-set-min-size -> Enables the set_min_size command without any pre-configured scope.",
1653
+ "type": "string",
1654
+ "enum": [
1655
+ "window:allow-set-min-size"
1656
+ ]
1657
+ },
1658
+ {
1659
+ "description": "window:allow-set-minimizable -> Enables the set_minimizable command without any pre-configured scope.",
1660
+ "type": "string",
1661
+ "enum": [
1662
+ "window:allow-set-minimizable"
1663
+ ]
1664
+ },
1665
+ {
1666
+ "description": "window:allow-set-position -> Enables the set_position command without any pre-configured scope.",
1667
+ "type": "string",
1668
+ "enum": [
1669
+ "window:allow-set-position"
1670
+ ]
1671
+ },
1672
+ {
1673
+ "description": "window:allow-set-progress-bar -> Enables the set_progress_bar command without any pre-configured scope.",
1674
+ "type": "string",
1675
+ "enum": [
1676
+ "window:allow-set-progress-bar"
1677
+ ]
1678
+ },
1679
+ {
1680
+ "description": "window:allow-set-resizable -> Enables the set_resizable command without any pre-configured scope.",
1681
+ "type": "string",
1682
+ "enum": [
1683
+ "window:allow-set-resizable"
1684
+ ]
1685
+ },
1686
+ {
1687
+ "description": "window:allow-set-shadow -> Enables the set_shadow command without any pre-configured scope.",
1688
+ "type": "string",
1689
+ "enum": [
1690
+ "window:allow-set-shadow"
1691
+ ]
1692
+ },
1693
+ {
1694
+ "description": "window:allow-set-size -> Enables the set_size command without any pre-configured scope.",
1695
+ "type": "string",
1696
+ "enum": [
1697
+ "window:allow-set-size"
1698
+ ]
1699
+ },
1700
+ {
1701
+ "description": "window:allow-set-skip-taskbar -> Enables the set_skip_taskbar command without any pre-configured scope.",
1702
+ "type": "string",
1703
+ "enum": [
1704
+ "window:allow-set-skip-taskbar"
1705
+ ]
1706
+ },
1707
+ {
1708
+ "description": "window:allow-set-title -> Enables the set_title command without any pre-configured scope.",
1709
+ "type": "string",
1710
+ "enum": [
1711
+ "window:allow-set-title"
1712
+ ]
1713
+ },
1714
+ {
1715
+ "description": "window:allow-set-title-bar-style -> Enables the set_title_bar_style command without any pre-configured scope.",
1716
+ "type": "string",
1717
+ "enum": [
1718
+ "window:allow-set-title-bar-style"
1719
+ ]
1720
+ },
1721
+ {
1722
+ "description": "window:allow-set-visible-on-all-workspaces -> Enables the set_visible_on_all_workspaces command without any pre-configured scope.",
1723
+ "type": "string",
1724
+ "enum": [
1725
+ "window:allow-set-visible-on-all-workspaces"
1726
+ ]
1727
+ },
1728
+ {
1729
+ "description": "window:allow-show -> Enables the show command without any pre-configured scope.",
1730
+ "type": "string",
1731
+ "enum": [
1732
+ "window:allow-show"
1733
+ ]
1734
+ },
1735
+ {
1736
+ "description": "window:allow-start-dragging -> Enables the start_dragging command without any pre-configured scope.",
1737
+ "type": "string",
1738
+ "enum": [
1739
+ "window:allow-start-dragging"
1740
+ ]
1741
+ },
1742
+ {
1743
+ "description": "window:allow-start-resize-dragging -> Enables the start_resize_dragging command without any pre-configured scope.",
1744
+ "type": "string",
1745
+ "enum": [
1746
+ "window:allow-start-resize-dragging"
1747
+ ]
1748
+ },
1749
+ {
1750
+ "description": "window:allow-theme -> Enables the theme command without any pre-configured scope.",
1751
+ "type": "string",
1752
+ "enum": [
1753
+ "window:allow-theme"
1754
+ ]
1755
+ },
1756
+ {
1757
+ "description": "window:allow-title -> Enables the title command without any pre-configured scope.",
1758
+ "type": "string",
1759
+ "enum": [
1760
+ "window:allow-title"
1761
+ ]
1762
+ },
1763
+ {
1764
+ "description": "window:allow-toggle-maximize -> Enables the toggle_maximize command without any pre-configured scope.",
1765
+ "type": "string",
1766
+ "enum": [
1767
+ "window:allow-toggle-maximize"
1768
+ ]
1769
+ },
1770
+ {
1771
+ "description": "window:allow-unmaximize -> Enables the unmaximize command without any pre-configured scope.",
1772
+ "type": "string",
1773
+ "enum": [
1774
+ "window:allow-unmaximize"
1775
+ ]
1776
+ },
1777
+ {
1778
+ "description": "window:allow-unminimize -> Enables the unminimize command without any pre-configured scope.",
1779
+ "type": "string",
1780
+ "enum": [
1781
+ "window:allow-unminimize"
1782
+ ]
1783
+ },
1784
+ {
1785
+ "description": "window:deny-available-monitors -> Denies the available_monitors command without any pre-configured scope.",
1786
+ "type": "string",
1787
+ "enum": [
1788
+ "window:deny-available-monitors"
1789
+ ]
1790
+ },
1791
+ {
1792
+ "description": "window:deny-center -> Denies the center command without any pre-configured scope.",
1793
+ "type": "string",
1794
+ "enum": [
1795
+ "window:deny-center"
1796
+ ]
1797
+ },
1798
+ {
1799
+ "description": "window:deny-close -> Denies the close command without any pre-configured scope.",
1800
+ "type": "string",
1801
+ "enum": [
1802
+ "window:deny-close"
1803
+ ]
1804
+ },
1805
+ {
1806
+ "description": "window:deny-create -> Denies the create command without any pre-configured scope.",
1807
+ "type": "string",
1808
+ "enum": [
1809
+ "window:deny-create"
1810
+ ]
1811
+ },
1812
+ {
1813
+ "description": "window:deny-current-monitor -> Denies the current_monitor command without any pre-configured scope.",
1814
+ "type": "string",
1815
+ "enum": [
1816
+ "window:deny-current-monitor"
1817
+ ]
1818
+ },
1819
+ {
1820
+ "description": "window:deny-cursor-position -> Denies the cursor_position command without any pre-configured scope.",
1821
+ "type": "string",
1822
+ "enum": [
1823
+ "window:deny-cursor-position"
1824
+ ]
1825
+ },
1826
+ {
1827
+ "description": "window:deny-destroy -> Denies the destroy command without any pre-configured scope.",
1828
+ "type": "string",
1829
+ "enum": [
1830
+ "window:deny-destroy"
1831
+ ]
1832
+ },
1833
+ {
1834
+ "description": "window:deny-hide -> Denies the hide command without any pre-configured scope.",
1835
+ "type": "string",
1836
+ "enum": [
1837
+ "window:deny-hide"
1838
+ ]
1839
+ },
1840
+ {
1841
+ "description": "window:deny-inner-position -> Denies the inner_position command without any pre-configured scope.",
1842
+ "type": "string",
1843
+ "enum": [
1844
+ "window:deny-inner-position"
1845
+ ]
1846
+ },
1847
+ {
1848
+ "description": "window:deny-inner-size -> Denies the inner_size command without any pre-configured scope.",
1849
+ "type": "string",
1850
+ "enum": [
1851
+ "window:deny-inner-size"
1852
+ ]
1853
+ },
1854
+ {
1855
+ "description": "window:deny-internal-toggle-maximize -> Denies the internal_toggle_maximize command without any pre-configured scope.",
1856
+ "type": "string",
1857
+ "enum": [
1858
+ "window:deny-internal-toggle-maximize"
1859
+ ]
1860
+ },
1861
+ {
1862
+ "description": "window:deny-is-closable -> Denies the is_closable command without any pre-configured scope.",
1863
+ "type": "string",
1864
+ "enum": [
1865
+ "window:deny-is-closable"
1866
+ ]
1867
+ },
1868
+ {
1869
+ "description": "window:deny-is-decorated -> Denies the is_decorated command without any pre-configured scope.",
1870
+ "type": "string",
1871
+ "enum": [
1872
+ "window:deny-is-decorated"
1873
+ ]
1874
+ },
1875
+ {
1876
+ "description": "window:deny-is-focused -> Denies the is_focused command without any pre-configured scope.",
1877
+ "type": "string",
1878
+ "enum": [
1879
+ "window:deny-is-focused"
1880
+ ]
1881
+ },
1882
+ {
1883
+ "description": "window:deny-is-fullscreen -> Denies the is_fullscreen command without any pre-configured scope.",
1884
+ "type": "string",
1885
+ "enum": [
1886
+ "window:deny-is-fullscreen"
1887
+ ]
1888
+ },
1889
+ {
1890
+ "description": "window:deny-is-maximizable -> Denies the is_maximizable command without any pre-configured scope.",
1891
+ "type": "string",
1892
+ "enum": [
1893
+ "window:deny-is-maximizable"
1894
+ ]
1895
+ },
1896
+ {
1897
+ "description": "window:deny-is-maximized -> Denies the is_maximized command without any pre-configured scope.",
1898
+ "type": "string",
1899
+ "enum": [
1900
+ "window:deny-is-maximized"
1901
+ ]
1902
+ },
1903
+ {
1904
+ "description": "window:deny-is-minimizable -> Denies the is_minimizable command without any pre-configured scope.",
1905
+ "type": "string",
1906
+ "enum": [
1907
+ "window:deny-is-minimizable"
1908
+ ]
1909
+ },
1910
+ {
1911
+ "description": "window:deny-is-minimized -> Denies the is_minimized command without any pre-configured scope.",
1912
+ "type": "string",
1913
+ "enum": [
1914
+ "window:deny-is-minimized"
1915
+ ]
1916
+ },
1917
+ {
1918
+ "description": "window:deny-is-resizable -> Denies the is_resizable command without any pre-configured scope.",
1919
+ "type": "string",
1920
+ "enum": [
1921
+ "window:deny-is-resizable"
1922
+ ]
1923
+ },
1924
+ {
1925
+ "description": "window:deny-is-visible -> Denies the is_visible command without any pre-configured scope.",
1926
+ "type": "string",
1927
+ "enum": [
1928
+ "window:deny-is-visible"
1929
+ ]
1930
+ },
1931
+ {
1932
+ "description": "window:deny-maximize -> Denies the maximize command without any pre-configured scope.",
1933
+ "type": "string",
1934
+ "enum": [
1935
+ "window:deny-maximize"
1936
+ ]
1937
+ },
1938
+ {
1939
+ "description": "window:deny-minimize -> Denies the minimize command without any pre-configured scope.",
1940
+ "type": "string",
1941
+ "enum": [
1942
+ "window:deny-minimize"
1943
+ ]
1944
+ },
1945
+ {
1946
+ "description": "window:deny-monitor-from-point -> Denies the monitor_from_point command without any pre-configured scope.",
1947
+ "type": "string",
1948
+ "enum": [
1949
+ "window:deny-monitor-from-point"
1950
+ ]
1951
+ },
1952
+ {
1953
+ "description": "window:deny-outer-position -> Denies the outer_position command without any pre-configured scope.",
1954
+ "type": "string",
1955
+ "enum": [
1956
+ "window:deny-outer-position"
1957
+ ]
1958
+ },
1959
+ {
1960
+ "description": "window:deny-outer-size -> Denies the outer_size command without any pre-configured scope.",
1961
+ "type": "string",
1962
+ "enum": [
1963
+ "window:deny-outer-size"
1964
+ ]
1965
+ },
1966
+ {
1967
+ "description": "window:deny-primary-monitor -> Denies the primary_monitor command without any pre-configured scope.",
1968
+ "type": "string",
1969
+ "enum": [
1970
+ "window:deny-primary-monitor"
1971
+ ]
1972
+ },
1973
+ {
1974
+ "description": "window:deny-request-user-attention -> Denies the request_user_attention command without any pre-configured scope.",
1975
+ "type": "string",
1976
+ "enum": [
1977
+ "window:deny-request-user-attention"
1978
+ ]
1979
+ },
1980
+ {
1981
+ "description": "window:deny-scale-factor -> Denies the scale_factor command without any pre-configured scope.",
1982
+ "type": "string",
1983
+ "enum": [
1984
+ "window:deny-scale-factor"
1985
+ ]
1986
+ },
1987
+ {
1988
+ "description": "window:deny-set-always-on-bottom -> Denies the set_always_on_bottom command without any pre-configured scope.",
1989
+ "type": "string",
1990
+ "enum": [
1991
+ "window:deny-set-always-on-bottom"
1992
+ ]
1993
+ },
1994
+ {
1995
+ "description": "window:deny-set-always-on-top -> Denies the set_always_on_top command without any pre-configured scope.",
1996
+ "type": "string",
1997
+ "enum": [
1998
+ "window:deny-set-always-on-top"
1999
+ ]
2000
+ },
2001
+ {
2002
+ "description": "window:deny-set-closable -> Denies the set_closable command without any pre-configured scope.",
2003
+ "type": "string",
2004
+ "enum": [
2005
+ "window:deny-set-closable"
2006
+ ]
2007
+ },
2008
+ {
2009
+ "description": "window:deny-set-content-protected -> Denies the set_content_protected command without any pre-configured scope.",
2010
+ "type": "string",
2011
+ "enum": [
2012
+ "window:deny-set-content-protected"
2013
+ ]
2014
+ },
2015
+ {
2016
+ "description": "window:deny-set-cursor-grab -> Denies the set_cursor_grab command without any pre-configured scope.",
2017
+ "type": "string",
2018
+ "enum": [
2019
+ "window:deny-set-cursor-grab"
2020
+ ]
2021
+ },
2022
+ {
2023
+ "description": "window:deny-set-cursor-icon -> Denies the set_cursor_icon command without any pre-configured scope.",
2024
+ "type": "string",
2025
+ "enum": [
2026
+ "window:deny-set-cursor-icon"
2027
+ ]
2028
+ },
2029
+ {
2030
+ "description": "window:deny-set-cursor-position -> Denies the set_cursor_position command without any pre-configured scope.",
2031
+ "type": "string",
2032
+ "enum": [
2033
+ "window:deny-set-cursor-position"
2034
+ ]
2035
+ },
2036
+ {
2037
+ "description": "window:deny-set-cursor-visible -> Denies the set_cursor_visible command without any pre-configured scope.",
2038
+ "type": "string",
2039
+ "enum": [
2040
+ "window:deny-set-cursor-visible"
2041
+ ]
2042
+ },
2043
+ {
2044
+ "description": "window:deny-set-decorations -> Denies the set_decorations command without any pre-configured scope.",
2045
+ "type": "string",
2046
+ "enum": [
2047
+ "window:deny-set-decorations"
2048
+ ]
2049
+ },
2050
+ {
2051
+ "description": "window:deny-set-effects -> Denies the set_effects command without any pre-configured scope.",
2052
+ "type": "string",
2053
+ "enum": [
2054
+ "window:deny-set-effects"
2055
+ ]
2056
+ },
2057
+ {
2058
+ "description": "window:deny-set-focus -> Denies the set_focus command without any pre-configured scope.",
2059
+ "type": "string",
2060
+ "enum": [
2061
+ "window:deny-set-focus"
2062
+ ]
2063
+ },
2064
+ {
2065
+ "description": "window:deny-set-fullscreen -> Denies the set_fullscreen command without any pre-configured scope.",
2066
+ "type": "string",
2067
+ "enum": [
2068
+ "window:deny-set-fullscreen"
2069
+ ]
2070
+ },
2071
+ {
2072
+ "description": "window:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
2073
+ "type": "string",
2074
+ "enum": [
2075
+ "window:deny-set-icon"
2076
+ ]
2077
+ },
2078
+ {
2079
+ "description": "window:deny-set-ignore-cursor-events -> Denies the set_ignore_cursor_events command without any pre-configured scope.",
2080
+ "type": "string",
2081
+ "enum": [
2082
+ "window:deny-set-ignore-cursor-events"
2083
+ ]
2084
+ },
2085
+ {
2086
+ "description": "window:deny-set-max-size -> Denies the set_max_size command without any pre-configured scope.",
2087
+ "type": "string",
2088
+ "enum": [
2089
+ "window:deny-set-max-size"
2090
+ ]
2091
+ },
2092
+ {
2093
+ "description": "window:deny-set-maximizable -> Denies the set_maximizable command without any pre-configured scope.",
2094
+ "type": "string",
2095
+ "enum": [
2096
+ "window:deny-set-maximizable"
2097
+ ]
2098
+ },
2099
+ {
2100
+ "description": "window:deny-set-min-size -> Denies the set_min_size command without any pre-configured scope.",
2101
+ "type": "string",
2102
+ "enum": [
2103
+ "window:deny-set-min-size"
2104
+ ]
2105
+ },
2106
+ {
2107
+ "description": "window:deny-set-minimizable -> Denies the set_minimizable command without any pre-configured scope.",
2108
+ "type": "string",
2109
+ "enum": [
2110
+ "window:deny-set-minimizable"
2111
+ ]
2112
+ },
2113
+ {
2114
+ "description": "window:deny-set-position -> Denies the set_position command without any pre-configured scope.",
2115
+ "type": "string",
2116
+ "enum": [
2117
+ "window:deny-set-position"
2118
+ ]
2119
+ },
2120
+ {
2121
+ "description": "window:deny-set-progress-bar -> Denies the set_progress_bar command without any pre-configured scope.",
2122
+ "type": "string",
2123
+ "enum": [
2124
+ "window:deny-set-progress-bar"
2125
+ ]
2126
+ },
2127
+ {
2128
+ "description": "window:deny-set-resizable -> Denies the set_resizable command without any pre-configured scope.",
2129
+ "type": "string",
2130
+ "enum": [
2131
+ "window:deny-set-resizable"
2132
+ ]
2133
+ },
2134
+ {
2135
+ "description": "window:deny-set-shadow -> Denies the set_shadow command without any pre-configured scope.",
2136
+ "type": "string",
2137
+ "enum": [
2138
+ "window:deny-set-shadow"
2139
+ ]
2140
+ },
2141
+ {
2142
+ "description": "window:deny-set-size -> Denies the set_size command without any pre-configured scope.",
2143
+ "type": "string",
2144
+ "enum": [
2145
+ "window:deny-set-size"
2146
+ ]
2147
+ },
2148
+ {
2149
+ "description": "window:deny-set-skip-taskbar -> Denies the set_skip_taskbar command without any pre-configured scope.",
2150
+ "type": "string",
2151
+ "enum": [
2152
+ "window:deny-set-skip-taskbar"
2153
+ ]
2154
+ },
2155
+ {
2156
+ "description": "window:deny-set-title -> Denies the set_title command without any pre-configured scope.",
2157
+ "type": "string",
2158
+ "enum": [
2159
+ "window:deny-set-title"
2160
+ ]
2161
+ },
2162
+ {
2163
+ "description": "window:deny-set-title-bar-style -> Denies the set_title_bar_style command without any pre-configured scope.",
2164
+ "type": "string",
2165
+ "enum": [
2166
+ "window:deny-set-title-bar-style"
2167
+ ]
2168
+ },
2169
+ {
2170
+ "description": "window:deny-set-visible-on-all-workspaces -> Denies the set_visible_on_all_workspaces command without any pre-configured scope.",
2171
+ "type": "string",
2172
+ "enum": [
2173
+ "window:deny-set-visible-on-all-workspaces"
2174
+ ]
2175
+ },
2176
+ {
2177
+ "description": "window:deny-show -> Denies the show command without any pre-configured scope.",
2178
+ "type": "string",
2179
+ "enum": [
2180
+ "window:deny-show"
2181
+ ]
2182
+ },
2183
+ {
2184
+ "description": "window:deny-start-dragging -> Denies the start_dragging command without any pre-configured scope.",
2185
+ "type": "string",
2186
+ "enum": [
2187
+ "window:deny-start-dragging"
2188
+ ]
2189
+ },
2190
+ {
2191
+ "description": "window:deny-start-resize-dragging -> Denies the start_resize_dragging command without any pre-configured scope.",
2192
+ "type": "string",
2193
+ "enum": [
2194
+ "window:deny-start-resize-dragging"
2195
+ ]
2196
+ },
2197
+ {
2198
+ "description": "window:deny-theme -> Denies the theme command without any pre-configured scope.",
2199
+ "type": "string",
2200
+ "enum": [
2201
+ "window:deny-theme"
2202
+ ]
2203
+ },
2204
+ {
2205
+ "description": "window:deny-title -> Denies the title command without any pre-configured scope.",
2206
+ "type": "string",
2207
+ "enum": [
2208
+ "window:deny-title"
2209
+ ]
2210
+ },
2211
+ {
2212
+ "description": "window:deny-toggle-maximize -> Denies the toggle_maximize command without any pre-configured scope.",
2213
+ "type": "string",
2214
+ "enum": [
2215
+ "window:deny-toggle-maximize"
2216
+ ]
2217
+ },
2218
+ {
2219
+ "description": "window:deny-unmaximize -> Denies the unmaximize command without any pre-configured scope.",
2220
+ "type": "string",
2221
+ "enum": [
2222
+ "window:deny-unmaximize"
2223
+ ]
2224
+ },
2225
+ {
2226
+ "description": "window:deny-unminimize -> Denies the unminimize command without any pre-configured scope.",
2227
+ "type": "string",
2228
+ "enum": [
2229
+ "window:deny-unminimize"
2230
+ ]
2231
+ }
2232
+ ]
2233
+ },
2234
+ "Value": {
2235
+ "description": "All supported ACL values.",
2236
+ "anyOf": [
2237
+ {
2238
+ "description": "Represents a null JSON value.",
2239
+ "type": "null"
2240
+ },
2241
+ {
2242
+ "description": "Represents a [`bool`].",
2243
+ "type": "boolean"
2244
+ },
2245
+ {
2246
+ "description": "Represents a valid ACL [`Number`].",
2247
+ "allOf": [
2248
+ {
2249
+ "$ref": "#/definitions/Number"
2250
+ }
2251
+ ]
2252
+ },
2253
+ {
2254
+ "description": "Represents a [`String`].",
2255
+ "type": "string"
2256
+ },
2257
+ {
2258
+ "description": "Represents a list of other [`Value`]s.",
2259
+ "type": "array",
2260
+ "items": {
2261
+ "$ref": "#/definitions/Value"
2262
+ }
2263
+ },
2264
+ {
2265
+ "description": "Represents a map of [`String`] keys to [`Value`]s.",
2266
+ "type": "object",
2267
+ "additionalProperties": {
2268
+ "$ref": "#/definitions/Value"
2269
+ }
2270
+ }
2271
+ ]
2272
+ },
2273
+ "Number": {
2274
+ "description": "A valid ACL number.",
2275
+ "anyOf": [
2276
+ {
2277
+ "description": "Represents an [`i64`].",
2278
+ "type": "integer",
2279
+ "format": "int64"
2280
+ },
2281
+ {
2282
+ "description": "Represents a [`f64`].",
2283
+ "type": "number",
2284
+ "format": "double"
2285
+ }
2286
+ ]
2287
+ },
2288
+ "Target": {
2289
+ "description": "Platform target.",
2290
+ "oneOf": [
2291
+ {
2292
+ "description": "MacOS.",
2293
+ "type": "string",
2294
+ "enum": [
2295
+ "macOS"
2296
+ ]
2297
+ },
2298
+ {
2299
+ "description": "Windows.",
2300
+ "type": "string",
2301
+ "enum": [
2302
+ "windows"
2303
+ ]
2304
+ },
2305
+ {
2306
+ "description": "Linux.",
2307
+ "type": "string",
2308
+ "enum": [
2309
+ "linux"
2310
+ ]
2311
+ },
2312
+ {
2313
+ "description": "Android.",
2314
+ "type": "string",
2315
+ "enum": [
2316
+ "android"
2317
+ ]
2318
+ },
2319
+ {
2320
+ "description": "iOS.",
2321
+ "type": "string",
2322
+ "enum": [
2323
+ "iOS"
2324
+ ]
2325
+ }
2326
+ ]
2327
+ }
2328
+ }
2329
+}
\ No newline at end of file
examples/tauri-app/src-tauri/gen/schemas/linux-schema.json
new
+2329
@@ -0,0 +1,2329 @@
1
+{
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "CapabilityFile",
4
+ "description": "Capability formats accepted in a capability file.",
5
+ "anyOf": [
6
+ {
7
+ "description": "A single capability.",
8
+ "allOf": [
9
+ {
10
+ "$ref": "#/definitions/Capability"
11
+ }
12
+ ]
13
+ },
14
+ {
15
+ "description": "A list of capabilities.",
16
+ "type": "array",
17
+ "items": {
18
+ "$ref": "#/definitions/Capability"
19
+ }
20
+ },
21
+ {
22
+ "description": "A list of capabilities.",
23
+ "type": "object",
24
+ "required": [
25
+ "capabilities"
26
+ ],
27
+ "properties": {
28
+ "capabilities": {
29
+ "description": "The list of capabilities.",
30
+ "type": "array",
31
+ "items": {
32
+ "$ref": "#/definitions/Capability"
33
+ }
34
+ }
35
+ }
36
+ }
37
+ ],
38
+ "definitions": {
39
+ "Capability": {
40
+ "description": "A grouping and boundary mechanism developers can use to isolate access to the IPC layer.\n\nIt controls application windows fine grained access to the Tauri core, application, or plugin commands. If a 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 programatic access to files selected by the user.\", \"windows\": [ \"main\" ], \"permissions\": [ \"path:default\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] }, \"platforms\": [\"macOS\",\"windows\"] } ```",
41
+ "type": "object",
42
+ "required": [
43
+ "identifier",
44
+ "permissions"
45
+ ],
46
+ "properties": {
47
+ "identifier": {
48
+ "description": "Identifier of the capability.\n\n## Example\n\n`main-user-files-write`",
49
+ "type": "string"
50
+ },
51
+ "description": {
52
+ "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 programatic access to files selected by the user.",
53
+ "default": "",
54
+ "type": "string"
55
+ },
56
+ "remote": {
57
+ "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\"] } ```",
58
+ "anyOf": [
59
+ {
60
+ "$ref": "#/definitions/CapabilityRemote"
61
+ },
62
+ {
63
+ "type": "null"
64
+ }
65
+ ]
66
+ },
67
+ "local": {
68
+ "description": "Whether this capability is enabled for local app URLs or not. Defaults to `true`.",
69
+ "default": true,
70
+ "type": "boolean"
71
+ },
72
+ "windows": {
73
+ "description": "List of windows that are affected by this capability. Can be a glob pattern.\n\nOn multiwebview windows, prefer [`Self::webviews`] for a fine grained access control.\n\n## Example\n\n`[\"main\"]`",
74
+ "type": "array",
75
+ "items": {
76
+ "type": "string"
77
+ }
78
+ },
79
+ "webviews": {
80
+ "description": "List of webviews that are affected by this capability. Can be a glob pattern.\n\nThis is only required when using on multiwebview contexts, by default all child webviews of a window that matches [`Self::windows`] are linked.\n\n## Example\n\n`[\"sub-webview-one\", \"sub-webview-two\"]`",
81
+ "type": "array",
82
+ "items": {
83
+ "type": "string"
84
+ }
85
+ },
86
+ "permissions": {
87
+ "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 [ \"path:default\", \"event:default\", \"window:default\", \"app:default\", \"image:default\", \"resources:default\", \"menu:default\", \"tray:default\", \"shell:allow-open\", \"dialog:open\", { \"identifier\": \"fs:allow-write-text-file\", \"allow\": [{ \"path\": \"$HOME/test.txt\" }] } ```",
88
+ "type": "array",
89
+ "items": {
90
+ "$ref": "#/definitions/PermissionEntry"
91
+ },
92
+ "uniqueItems": true
93
+ },
94
+ "platforms": {
95
+ "description": "Limit which target platforms this capability applies to.\n\nBy default all platforms are targeted.\n\n## Example\n\n`[\"macOS\",\"windows\"]`",
96
+ "type": [
97
+ "array",
98
+ "null"
99
+ ],
100
+ "items": {
101
+ "$ref": "#/definitions/Target"
102
+ }
103
+ }
104
+ }
105
+ },
106
+ "CapabilityRemote": {
107
+ "description": "Configuration for remote URLs that are associated with the capability.",
108
+ "type": "object",
109
+ "required": [
110
+ "urls"
111
+ ],
112
+ "properties": {
113
+ "urls": {
114
+ "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",
115
+ "type": "array",
116
+ "items": {
117
+ "type": "string"
118
+ }
119
+ }
120
+ }
121
+ },
122
+ "PermissionEntry": {
123
+ "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.",
124
+ "anyOf": [
125
+ {
126
+ "description": "Reference a permission or permission set by identifier.",
127
+ "allOf": [
128
+ {
129
+ "$ref": "#/definitions/Identifier"
130
+ }
131
+ ]
132
+ },
133
+ {
134
+ "description": "Reference a permission or permission set by identifier and extends its scope.",
135
+ "type": "object",
136
+ "required": [
137
+ "identifier"
138
+ ],
139
+ "properties": {
140
+ "identifier": {
141
+ "description": "Identifier of the permission or permission set.",
142
+ "allOf": [
143
+ {
144
+ "$ref": "#/definitions/Identifier"
145
+ }
146
+ ]
147
+ },
148
+ "allow": {
149
+ "description": "Data that defines what is allowed by the scope.",
150
+ "type": [
151
+ "array",
152
+ "null"
153
+ ],
154
+ "items": {
155
+ "$ref": "#/definitions/Value"
156
+ }
157
+ },
158
+ "deny": {
159
+ "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.",
160
+ "type": [
161
+ "array",
162
+ "null"
163
+ ],
164
+ "items": {
165
+ "$ref": "#/definitions/Value"
166
+ }
167
+ }
168
+ }
169
+ }
170
+ ]
171
+ },
172
+ "Identifier": {
173
+ "oneOf": [
174
+ {
175
+ "description": "admob:default -> Default permissions for the plugin",
176
+ "type": "string",
177
+ "enum": [
178
+ "admob:default"
179
+ ]
180
+ },
181
+ {
182
+ "description": "admob:allow-adCreate -> Enables the adCreate command without any pre-configured scope.",
183
+ "type": "string",
184
+ "enum": [
185
+ "admob:allow-adCreate"
186
+ ]
187
+ },
188
+ {
189
+ "description": "admob:allow-adHide -> Enables the adHide command without any pre-configured scope.",
190
+ "type": "string",
191
+ "enum": [
192
+ "admob:allow-adHide"
193
+ ]
194
+ },
195
+ {
196
+ "description": "admob:allow-adIsLoaded -> Enables the adIsLoaded command without any pre-configured scope.",
197
+ "type": "string",
198
+ "enum": [
199
+ "admob:allow-adIsLoaded"
200
+ ]
201
+ },
202
+ {
203
+ "description": "admob:allow-adLoad -> Enables the adLoad command without any pre-configured scope.",
204
+ "type": "string",
205
+ "enum": [
206
+ "admob:allow-adLoad"
207
+ ]
208
+ },
209
+ {
210
+ "description": "admob:allow-adShow -> Enables the adShow command without any pre-configured scope.",
211
+ "type": "string",
212
+ "enum": [
213
+ "admob:allow-adShow"
214
+ ]
215
+ },
216
+ {
217
+ "description": "admob:allow-configRequest -> Enables the configRequest command without any pre-configured scope.",
218
+ "type": "string",
219
+ "enum": [
220
+ "admob:allow-configRequest"
221
+ ]
222
+ },
223
+ {
224
+ "description": "admob:allow-configure -> Enables the configure command without any pre-configured scope.",
225
+ "type": "string",
226
+ "enum": [
227
+ "admob:allow-configure"
228
+ ]
229
+ },
230
+ {
231
+ "description": "admob:allow-requestTrackingAuthorization -> Enables the requestTrackingAuthorization command without any pre-configured scope.",
232
+ "type": "string",
233
+ "enum": [
234
+ "admob:allow-requestTrackingAuthorization"
235
+ ]
236
+ },
237
+ {
238
+ "description": "admob:allow-trackingAuthorizationStatus -> Enables the trackingAuthorizationStatus command without any pre-configured scope.",
239
+ "type": "string",
240
+ "enum": [
241
+ "admob:allow-trackingAuthorizationStatus"
242
+ ]
243
+ },
244
+ {
245
+ "description": "admob:deny-adCreate -> Denies the adCreate command without any pre-configured scope.",
246
+ "type": "string",
247
+ "enum": [
248
+ "admob:deny-adCreate"
249
+ ]
250
+ },
251
+ {
252
+ "description": "admob:deny-adHide -> Denies the adHide command without any pre-configured scope.",
253
+ "type": "string",
254
+ "enum": [
255
+ "admob:deny-adHide"
256
+ ]
257
+ },
258
+ {
259
+ "description": "admob:deny-adIsLoaded -> Denies the adIsLoaded command without any pre-configured scope.",
260
+ "type": "string",
261
+ "enum": [
262
+ "admob:deny-adIsLoaded"
263
+ ]
264
+ },
265
+ {
266
+ "description": "admob:deny-adLoad -> Denies the adLoad command without any pre-configured scope.",
267
+ "type": "string",
268
+ "enum": [
269
+ "admob:deny-adLoad"
270
+ ]
271
+ },
272
+ {
273
+ "description": "admob:deny-adShow -> Denies the adShow command without any pre-configured scope.",
274
+ "type": "string",
275
+ "enum": [
276
+ "admob:deny-adShow"
277
+ ]
278
+ },
279
+ {
280
+ "description": "admob:deny-configRequest -> Denies the configRequest command without any pre-configured scope.",
281
+ "type": "string",
282
+ "enum": [
283
+ "admob:deny-configRequest"
284
+ ]
285
+ },
286
+ {
287
+ "description": "admob:deny-configure -> Denies the configure command without any pre-configured scope.",
288
+ "type": "string",
289
+ "enum": [
290
+ "admob:deny-configure"
291
+ ]
292
+ },
293
+ {
294
+ "description": "admob:deny-requestTrackingAuthorization -> Denies the requestTrackingAuthorization command without any pre-configured scope.",
295
+ "type": "string",
296
+ "enum": [
297
+ "admob:deny-requestTrackingAuthorization"
298
+ ]
299
+ },
300
+ {
301
+ "description": "admob:deny-trackingAuthorizationStatus -> Denies the trackingAuthorizationStatus command without any pre-configured scope.",
302
+ "type": "string",
303
+ "enum": [
304
+ "admob:deny-trackingAuthorizationStatus"
305
+ ]
306
+ },
307
+ {
308
+ "description": "app:default -> Default permissions for the plugin.",
309
+ "type": "string",
310
+ "enum": [
311
+ "app:default"
312
+ ]
313
+ },
314
+ {
315
+ "description": "app:allow-app-hide -> Enables the app_hide command without any pre-configured scope.",
316
+ "type": "string",
317
+ "enum": [
318
+ "app:allow-app-hide"
319
+ ]
320
+ },
321
+ {
322
+ "description": "app:allow-app-show -> Enables the app_show command without any pre-configured scope.",
323
+ "type": "string",
324
+ "enum": [
325
+ "app:allow-app-show"
326
+ ]
327
+ },
328
+ {
329
+ "description": "app:allow-default-window-icon -> Enables the default_window_icon command without any pre-configured scope.",
330
+ "type": "string",
331
+ "enum": [
332
+ "app:allow-default-window-icon"
333
+ ]
334
+ },
335
+ {
336
+ "description": "app:allow-name -> Enables the name command without any pre-configured scope.",
337
+ "type": "string",
338
+ "enum": [
339
+ "app:allow-name"
340
+ ]
341
+ },
342
+ {
343
+ "description": "app:allow-tauri-version -> Enables the tauri_version command without any pre-configured scope.",
344
+ "type": "string",
345
+ "enum": [
346
+ "app:allow-tauri-version"
347
+ ]
348
+ },
349
+ {
350
+ "description": "app:allow-version -> Enables the version command without any pre-configured scope.",
351
+ "type": "string",
352
+ "enum": [
353
+ "app:allow-version"
354
+ ]
355
+ },
356
+ {
357
+ "description": "app:deny-app-hide -> Denies the app_hide command without any pre-configured scope.",
358
+ "type": "string",
359
+ "enum": [
360
+ "app:deny-app-hide"
361
+ ]
362
+ },
363
+ {
364
+ "description": "app:deny-app-show -> Denies the app_show command without any pre-configured scope.",
365
+ "type": "string",
366
+ "enum": [
367
+ "app:deny-app-show"
368
+ ]
369
+ },
370
+ {
371
+ "description": "app:deny-default-window-icon -> Denies the default_window_icon command without any pre-configured scope.",
372
+ "type": "string",
373
+ "enum": [
374
+ "app:deny-default-window-icon"
375
+ ]
376
+ },
377
+ {
378
+ "description": "app:deny-name -> Denies the name command without any pre-configured scope.",
379
+ "type": "string",
380
+ "enum": [
381
+ "app:deny-name"
382
+ ]
383
+ },
384
+ {
385
+ "description": "app:deny-tauri-version -> Denies the tauri_version command without any pre-configured scope.",
386
+ "type": "string",
387
+ "enum": [
388
+ "app:deny-tauri-version"
389
+ ]
390
+ },
391
+ {
392
+ "description": "app:deny-version -> Denies the version command without any pre-configured scope.",
393
+ "type": "string",
394
+ "enum": [
395
+ "app:deny-version"
396
+ ]
397
+ },
398
+ {
399
+ "description": "event:default -> Default permissions for the plugin.",
400
+ "type": "string",
401
+ "enum": [
402
+ "event:default"
403
+ ]
404
+ },
405
+ {
406
+ "description": "event:allow-emit -> Enables the emit command without any pre-configured scope.",
407
+ "type": "string",
408
+ "enum": [
409
+ "event:allow-emit"
410
+ ]
411
+ },
412
+ {
413
+ "description": "event:allow-emit-to -> Enables the emit_to command without any pre-configured scope.",
414
+ "type": "string",
415
+ "enum": [
416
+ "event:allow-emit-to"
417
+ ]
418
+ },
419
+ {
420
+ "description": "event:allow-listen -> Enables the listen command without any pre-configured scope.",
421
+ "type": "string",
422
+ "enum": [
423
+ "event:allow-listen"
424
+ ]
425
+ },
426
+ {
427
+ "description": "event:allow-unlisten -> Enables the unlisten command without any pre-configured scope.",
428
+ "type": "string",
429
+ "enum": [
430
+ "event:allow-unlisten"
431
+ ]
432
+ },
433
+ {
434
+ "description": "event:deny-emit -> Denies the emit command without any pre-configured scope.",
435
+ "type": "string",
436
+ "enum": [
437
+ "event:deny-emit"
438
+ ]
439
+ },
440
+ {
441
+ "description": "event:deny-emit-to -> Denies the emit_to command without any pre-configured scope.",
442
+ "type": "string",
443
+ "enum": [
444
+ "event:deny-emit-to"
445
+ ]
446
+ },
447
+ {
448
+ "description": "event:deny-listen -> Denies the listen command without any pre-configured scope.",
449
+ "type": "string",
450
+ "enum": [
451
+ "event:deny-listen"
452
+ ]
453
+ },
454
+ {
455
+ "description": "event:deny-unlisten -> Denies the unlisten command without any pre-configured scope.",
456
+ "type": "string",
457
+ "enum": [
458
+ "event:deny-unlisten"
459
+ ]
460
+ },
461
+ {
462
+ "description": "image:default -> Default permissions for the plugin.",
463
+ "type": "string",
464
+ "enum": [
465
+ "image:default"
466
+ ]
467
+ },
468
+ {
469
+ "description": "image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.",
470
+ "type": "string",
471
+ "enum": [
472
+ "image:allow-from-bytes"
473
+ ]
474
+ },
475
+ {
476
+ "description": "image:allow-from-path -> Enables the from_path command without any pre-configured scope.",
477
+ "type": "string",
478
+ "enum": [
479
+ "image:allow-from-path"
480
+ ]
481
+ },
482
+ {
483
+ "description": "image:allow-new -> Enables the new command without any pre-configured scope.",
484
+ "type": "string",
485
+ "enum": [
486
+ "image:allow-new"
487
+ ]
488
+ },
489
+ {
490
+ "description": "image:allow-rgba -> Enables the rgba command without any pre-configured scope.",
491
+ "type": "string",
492
+ "enum": [
493
+ "image:allow-rgba"
494
+ ]
495
+ },
496
+ {
497
+ "description": "image:allow-size -> Enables the size command without any pre-configured scope.",
498
+ "type": "string",
499
+ "enum": [
500
+ "image:allow-size"
501
+ ]
502
+ },
503
+ {
504
+ "description": "image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.",
505
+ "type": "string",
506
+ "enum": [
507
+ "image:deny-from-bytes"
508
+ ]
509
+ },
510
+ {
511
+ "description": "image:deny-from-path -> Denies the from_path command without any pre-configured scope.",
512
+ "type": "string",
513
+ "enum": [
514
+ "image:deny-from-path"
515
+ ]
516
+ },
517
+ {
518
+ "description": "image:deny-new -> Denies the new command without any pre-configured scope.",
519
+ "type": "string",
520
+ "enum": [
521
+ "image:deny-new"
522
+ ]
523
+ },
524
+ {
525
+ "description": "image:deny-rgba -> Denies the rgba command without any pre-configured scope.",
526
+ "type": "string",
527
+ "enum": [
528
+ "image:deny-rgba"
529
+ ]
530
+ },
531
+ {
532
+ "description": "image:deny-size -> Denies the size command without any pre-configured scope.",
533
+ "type": "string",
534
+ "enum": [
535
+ "image:deny-size"
536
+ ]
537
+ },
538
+ {
539
+ "description": "menu:default -> Default permissions for the plugin.",
540
+ "type": "string",
541
+ "enum": [
542
+ "menu:default"
543
+ ]
544
+ },
545
+ {
546
+ "description": "menu:allow-append -> Enables the append command without any pre-configured scope.",
547
+ "type": "string",
548
+ "enum": [
549
+ "menu:allow-append"
550
+ ]
551
+ },
552
+ {
553
+ "description": "menu:allow-create-default -> Enables the create_default command without any pre-configured scope.",
554
+ "type": "string",
555
+ "enum": [
556
+ "menu:allow-create-default"
557
+ ]
558
+ },
559
+ {
560
+ "description": "menu:allow-get -> Enables the get command without any pre-configured scope.",
561
+ "type": "string",
562
+ "enum": [
563
+ "menu:allow-get"
564
+ ]
565
+ },
566
+ {
567
+ "description": "menu:allow-insert -> Enables the insert command without any pre-configured scope.",
568
+ "type": "string",
569
+ "enum": [
570
+ "menu:allow-insert"
571
+ ]
572
+ },
573
+ {
574
+ "description": "menu:allow-is-checked -> Enables the is_checked command without any pre-configured scope.",
575
+ "type": "string",
576
+ "enum": [
577
+ "menu:allow-is-checked"
578
+ ]
579
+ },
580
+ {
581
+ "description": "menu:allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.",
582
+ "type": "string",
583
+ "enum": [
584
+ "menu:allow-is-enabled"
585
+ ]
586
+ },
587
+ {
588
+ "description": "menu:allow-items -> Enables the items command without any pre-configured scope.",
589
+ "type": "string",
590
+ "enum": [
591
+ "menu:allow-items"
592
+ ]
593
+ },
594
+ {
595
+ "description": "menu:allow-new -> Enables the new command without any pre-configured scope.",
596
+ "type": "string",
597
+ "enum": [
598
+ "menu:allow-new"
599
+ ]
600
+ },
601
+ {
602
+ "description": "menu:allow-popup -> Enables the popup command without any pre-configured scope.",
603
+ "type": "string",
604
+ "enum": [
605
+ "menu:allow-popup"
606
+ ]
607
+ },
608
+ {
609
+ "description": "menu:allow-prepend -> Enables the prepend command without any pre-configured scope.",
610
+ "type": "string",
611
+ "enum": [
612
+ "menu:allow-prepend"
613
+ ]
614
+ },
615
+ {
616
+ "description": "menu:allow-remove -> Enables the remove command without any pre-configured scope.",
617
+ "type": "string",
618
+ "enum": [
619
+ "menu:allow-remove"
620
+ ]
621
+ },
622
+ {
623
+ "description": "menu:allow-remove-at -> Enables the remove_at command without any pre-configured scope.",
624
+ "type": "string",
625
+ "enum": [
626
+ "menu:allow-remove-at"
627
+ ]
628
+ },
629
+ {
630
+ "description": "menu:allow-set-accelerator -> Enables the set_accelerator command without any pre-configured scope.",
631
+ "type": "string",
632
+ "enum": [
633
+ "menu:allow-set-accelerator"
634
+ ]
635
+ },
636
+ {
637
+ "description": "menu:allow-set-as-app-menu -> Enables the set_as_app_menu command without any pre-configured scope.",
638
+ "type": "string",
639
+ "enum": [
640
+ "menu:allow-set-as-app-menu"
641
+ ]
642
+ },
643
+ {
644
+ "description": "menu:allow-set-as-help-menu-for-nsapp -> Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.",
645
+ "type": "string",
646
+ "enum": [
647
+ "menu:allow-set-as-help-menu-for-nsapp"
648
+ ]
649
+ },
650
+ {
651
+ "description": "menu:allow-set-as-window-menu -> Enables the set_as_window_menu command without any pre-configured scope.",
652
+ "type": "string",
653
+ "enum": [
654
+ "menu:allow-set-as-window-menu"
655
+ ]
656
+ },
657
+ {
658
+ "description": "menu:allow-set-as-windows-menu-for-nsapp -> Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.",
659
+ "type": "string",
660
+ "enum": [
661
+ "menu:allow-set-as-windows-menu-for-nsapp"
662
+ ]
663
+ },
664
+ {
665
+ "description": "menu:allow-set-checked -> Enables the set_checked command without any pre-configured scope.",
666
+ "type": "string",
667
+ "enum": [
668
+ "menu:allow-set-checked"
669
+ ]
670
+ },
671
+ {
672
+ "description": "menu:allow-set-enabled -> Enables the set_enabled command without any pre-configured scope.",
673
+ "type": "string",
674
+ "enum": [
675
+ "menu:allow-set-enabled"
676
+ ]
677
+ },
678
+ {
679
+ "description": "menu:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
680
+ "type": "string",
681
+ "enum": [
682
+ "menu:allow-set-icon"
683
+ ]
684
+ },
685
+ {
686
+ "description": "menu:allow-set-text -> Enables the set_text command without any pre-configured scope.",
687
+ "type": "string",
688
+ "enum": [
689
+ "menu:allow-set-text"
690
+ ]
691
+ },
692
+ {
693
+ "description": "menu:allow-text -> Enables the text command without any pre-configured scope.",
694
+ "type": "string",
695
+ "enum": [
696
+ "menu:allow-text"
697
+ ]
698
+ },
699
+ {
700
+ "description": "menu:deny-append -> Denies the append command without any pre-configured scope.",
701
+ "type": "string",
702
+ "enum": [
703
+ "menu:deny-append"
704
+ ]
705
+ },
706
+ {
707
+ "description": "menu:deny-create-default -> Denies the create_default command without any pre-configured scope.",
708
+ "type": "string",
709
+ "enum": [
710
+ "menu:deny-create-default"
711
+ ]
712
+ },
713
+ {
714
+ "description": "menu:deny-get -> Denies the get command without any pre-configured scope.",
715
+ "type": "string",
716
+ "enum": [
717
+ "menu:deny-get"
718
+ ]
719
+ },
720
+ {
721
+ "description": "menu:deny-insert -> Denies the insert command without any pre-configured scope.",
722
+ "type": "string",
723
+ "enum": [
724
+ "menu:deny-insert"
725
+ ]
726
+ },
727
+ {
728
+ "description": "menu:deny-is-checked -> Denies the is_checked command without any pre-configured scope.",
729
+ "type": "string",
730
+ "enum": [
731
+ "menu:deny-is-checked"
732
+ ]
733
+ },
734
+ {
735
+ "description": "menu:deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.",
736
+ "type": "string",
737
+ "enum": [
738
+ "menu:deny-is-enabled"
739
+ ]
740
+ },
741
+ {
742
+ "description": "menu:deny-items -> Denies the items command without any pre-configured scope.",
743
+ "type": "string",
744
+ "enum": [
745
+ "menu:deny-items"
746
+ ]
747
+ },
748
+ {
749
+ "description": "menu:deny-new -> Denies the new command without any pre-configured scope.",
750
+ "type": "string",
751
+ "enum": [
752
+ "menu:deny-new"
753
+ ]
754
+ },
755
+ {
756
+ "description": "menu:deny-popup -> Denies the popup command without any pre-configured scope.",
757
+ "type": "string",
758
+ "enum": [
759
+ "menu:deny-popup"
760
+ ]
761
+ },
762
+ {
763
+ "description": "menu:deny-prepend -> Denies the prepend command without any pre-configured scope.",
764
+ "type": "string",
765
+ "enum": [
766
+ "menu:deny-prepend"
767
+ ]
768
+ },
769
+ {
770
+ "description": "menu:deny-remove -> Denies the remove command without any pre-configured scope.",
771
+ "type": "string",
772
+ "enum": [
773
+ "menu:deny-remove"
774
+ ]
775
+ },
776
+ {
777
+ "description": "menu:deny-remove-at -> Denies the remove_at command without any pre-configured scope.",
778
+ "type": "string",
779
+ "enum": [
780
+ "menu:deny-remove-at"
781
+ ]
782
+ },
783
+ {
784
+ "description": "menu:deny-set-accelerator -> Denies the set_accelerator command without any pre-configured scope.",
785
+ "type": "string",
786
+ "enum": [
787
+ "menu:deny-set-accelerator"
788
+ ]
789
+ },
790
+ {
791
+ "description": "menu:deny-set-as-app-menu -> Denies the set_as_app_menu command without any pre-configured scope.",
792
+ "type": "string",
793
+ "enum": [
794
+ "menu:deny-set-as-app-menu"
795
+ ]
796
+ },
797
+ {
798
+ "description": "menu:deny-set-as-help-menu-for-nsapp -> Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.",
799
+ "type": "string",
800
+ "enum": [
801
+ "menu:deny-set-as-help-menu-for-nsapp"
802
+ ]
803
+ },
804
+ {
805
+ "description": "menu:deny-set-as-window-menu -> Denies the set_as_window_menu command without any pre-configured scope.",
806
+ "type": "string",
807
+ "enum": [
808
+ "menu:deny-set-as-window-menu"
809
+ ]
810
+ },
811
+ {
812
+ "description": "menu:deny-set-as-windows-menu-for-nsapp -> Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.",
813
+ "type": "string",
814
+ "enum": [
815
+ "menu:deny-set-as-windows-menu-for-nsapp"
816
+ ]
817
+ },
818
+ {
819
+ "description": "menu:deny-set-checked -> Denies the set_checked command without any pre-configured scope.",
820
+ "type": "string",
821
+ "enum": [
822
+ "menu:deny-set-checked"
823
+ ]
824
+ },
825
+ {
826
+ "description": "menu:deny-set-enabled -> Denies the set_enabled command without any pre-configured scope.",
827
+ "type": "string",
828
+ "enum": [
829
+ "menu:deny-set-enabled"
830
+ ]
831
+ },
832
+ {
833
+ "description": "menu:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
834
+ "type": "string",
835
+ "enum": [
836
+ "menu:deny-set-icon"
837
+ ]
838
+ },
839
+ {
840
+ "description": "menu:deny-set-text -> Denies the set_text command without any pre-configured scope.",
841
+ "type": "string",
842
+ "enum": [
843
+ "menu:deny-set-text"
844
+ ]
845
+ },
846
+ {
847
+ "description": "menu:deny-text -> Denies the text command without any pre-configured scope.",
848
+ "type": "string",
849
+ "enum": [
850
+ "menu:deny-text"
851
+ ]
852
+ },
853
+ {
854
+ "description": "path:default -> Default permissions for the plugin.",
855
+ "type": "string",
856
+ "enum": [
857
+ "path:default"
858
+ ]
859
+ },
860
+ {
861
+ "description": "path:allow-basename -> Enables the basename command without any pre-configured scope.",
862
+ "type": "string",
863
+ "enum": [
864
+ "path:allow-basename"
865
+ ]
866
+ },
867
+ {
868
+ "description": "path:allow-dirname -> Enables the dirname command without any pre-configured scope.",
869
+ "type": "string",
870
+ "enum": [
871
+ "path:allow-dirname"
872
+ ]
873
+ },
874
+ {
875
+ "description": "path:allow-extname -> Enables the extname command without any pre-configured scope.",
876
+ "type": "string",
877
+ "enum": [
878
+ "path:allow-extname"
879
+ ]
880
+ },
881
+ {
882
+ "description": "path:allow-is-absolute -> Enables the is_absolute command without any pre-configured scope.",
883
+ "type": "string",
884
+ "enum": [
885
+ "path:allow-is-absolute"
886
+ ]
887
+ },
888
+ {
889
+ "description": "path:allow-join -> Enables the join command without any pre-configured scope.",
890
+ "type": "string",
891
+ "enum": [
892
+ "path:allow-join"
893
+ ]
894
+ },
895
+ {
896
+ "description": "path:allow-normalize -> Enables the normalize command without any pre-configured scope.",
897
+ "type": "string",
898
+ "enum": [
899
+ "path:allow-normalize"
900
+ ]
901
+ },
902
+ {
903
+ "description": "path:allow-resolve -> Enables the resolve command without any pre-configured scope.",
904
+ "type": "string",
905
+ "enum": [
906
+ "path:allow-resolve"
907
+ ]
908
+ },
909
+ {
910
+ "description": "path:allow-resolve-directory -> Enables the resolve_directory command without any pre-configured scope.",
911
+ "type": "string",
912
+ "enum": [
913
+ "path:allow-resolve-directory"
914
+ ]
915
+ },
916
+ {
917
+ "description": "path:deny-basename -> Denies the basename command without any pre-configured scope.",
918
+ "type": "string",
919
+ "enum": [
920
+ "path:deny-basename"
921
+ ]
922
+ },
923
+ {
924
+ "description": "path:deny-dirname -> Denies the dirname command without any pre-configured scope.",
925
+ "type": "string",
926
+ "enum": [
927
+ "path:deny-dirname"
928
+ ]
929
+ },
930
+ {
931
+ "description": "path:deny-extname -> Denies the extname command without any pre-configured scope.",
932
+ "type": "string",
933
+ "enum": [
934
+ "path:deny-extname"
935
+ ]
936
+ },
937
+ {
938
+ "description": "path:deny-is-absolute -> Denies the is_absolute command without any pre-configured scope.",
939
+ "type": "string",
940
+ "enum": [
941
+ "path:deny-is-absolute"
942
+ ]
943
+ },
944
+ {
945
+ "description": "path:deny-join -> Denies the join command without any pre-configured scope.",
946
+ "type": "string",
947
+ "enum": [
948
+ "path:deny-join"
949
+ ]
950
+ },
951
+ {
952
+ "description": "path:deny-normalize -> Denies the normalize command without any pre-configured scope.",
953
+ "type": "string",
954
+ "enum": [
955
+ "path:deny-normalize"
956
+ ]
957
+ },
958
+ {
959
+ "description": "path:deny-resolve -> Denies the resolve command without any pre-configured scope.",
960
+ "type": "string",
961
+ "enum": [
962
+ "path:deny-resolve"
963
+ ]
964
+ },
965
+ {
966
+ "description": "path:deny-resolve-directory -> Denies the resolve_directory command without any pre-configured scope.",
967
+ "type": "string",
968
+ "enum": [
969
+ "path:deny-resolve-directory"
970
+ ]
971
+ },
972
+ {
973
+ "description": "resources:default -> Default permissions for the plugin.",
974
+ "type": "string",
975
+ "enum": [
976
+ "resources:default"
977
+ ]
978
+ },
979
+ {
980
+ "description": "resources:allow-close -> Enables the close command without any pre-configured scope.",
981
+ "type": "string",
982
+ "enum": [
983
+ "resources:allow-close"
984
+ ]
985
+ },
986
+ {
987
+ "description": "resources:deny-close -> Denies the close command without any pre-configured scope.",
988
+ "type": "string",
989
+ "enum": [
990
+ "resources:deny-close"
991
+ ]
992
+ },
993
+ {
994
+ "description": "tray:default -> Default permissions for the plugin.",
995
+ "type": "string",
996
+ "enum": [
997
+ "tray:default"
998
+ ]
999
+ },
1000
+ {
1001
+ "description": "tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.",
1002
+ "type": "string",
1003
+ "enum": [
1004
+ "tray:allow-get-by-id"
1005
+ ]
1006
+ },
1007
+ {
1008
+ "description": "tray:allow-new -> Enables the new command without any pre-configured scope.",
1009
+ "type": "string",
1010
+ "enum": [
1011
+ "tray:allow-new"
1012
+ ]
1013
+ },
1014
+ {
1015
+ "description": "tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.",
1016
+ "type": "string",
1017
+ "enum": [
1018
+ "tray:allow-remove-by-id"
1019
+ ]
1020
+ },
1021
+ {
1022
+ "description": "tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
1023
+ "type": "string",
1024
+ "enum": [
1025
+ "tray:allow-set-icon"
1026
+ ]
1027
+ },
1028
+ {
1029
+ "description": "tray:allow-set-icon-as-template -> Enables the set_icon_as_template command without any pre-configured scope.",
1030
+ "type": "string",
1031
+ "enum": [
1032
+ "tray:allow-set-icon-as-template"
1033
+ ]
1034
+ },
1035
+ {
1036
+ "description": "tray:allow-set-menu -> Enables the set_menu command without any pre-configured scope.",
1037
+ "type": "string",
1038
+ "enum": [
1039
+ "tray:allow-set-menu"
1040
+ ]
1041
+ },
1042
+ {
1043
+ "description": "tray:allow-set-show-menu-on-left-click -> Enables the set_show_menu_on_left_click command without any pre-configured scope.",
1044
+ "type": "string",
1045
+ "enum": [
1046
+ "tray:allow-set-show-menu-on-left-click"
1047
+ ]
1048
+ },
1049
+ {
1050
+ "description": "tray:allow-set-temp-dir-path -> Enables the set_temp_dir_path command without any pre-configured scope.",
1051
+ "type": "string",
1052
+ "enum": [
1053
+ "tray:allow-set-temp-dir-path"
1054
+ ]
1055
+ },
1056
+ {
1057
+ "description": "tray:allow-set-title -> Enables the set_title command without any pre-configured scope.",
1058
+ "type": "string",
1059
+ "enum": [
1060
+ "tray:allow-set-title"
1061
+ ]
1062
+ },
1063
+ {
1064
+ "description": "tray:allow-set-tooltip -> Enables the set_tooltip command without any pre-configured scope.",
1065
+ "type": "string",
1066
+ "enum": [
1067
+ "tray:allow-set-tooltip"
1068
+ ]
1069
+ },
1070
+ {
1071
+ "description": "tray:allow-set-visible -> Enables the set_visible command without any pre-configured scope.",
1072
+ "type": "string",
1073
+ "enum": [
1074
+ "tray:allow-set-visible"
1075
+ ]
1076
+ },
1077
+ {
1078
+ "description": "tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.",
1079
+ "type": "string",
1080
+ "enum": [
1081
+ "tray:deny-get-by-id"
1082
+ ]
1083
+ },
1084
+ {
1085
+ "description": "tray:deny-new -> Denies the new command without any pre-configured scope.",
1086
+ "type": "string",
1087
+ "enum": [
1088
+ "tray:deny-new"
1089
+ ]
1090
+ },
1091
+ {
1092
+ "description": "tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.",
1093
+ "type": "string",
1094
+ "enum": [
1095
+ "tray:deny-remove-by-id"
1096
+ ]
1097
+ },
1098
+ {
1099
+ "description": "tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
1100
+ "type": "string",
1101
+ "enum": [
1102
+ "tray:deny-set-icon"
1103
+ ]
1104
+ },
1105
+ {
1106
+ "description": "tray:deny-set-icon-as-template -> Denies the set_icon_as_template command without any pre-configured scope.",
1107
+ "type": "string",
1108
+ "enum": [
1109
+ "tray:deny-set-icon-as-template"
1110
+ ]
1111
+ },
1112
+ {
1113
+ "description": "tray:deny-set-menu -> Denies the set_menu command without any pre-configured scope.",
1114
+ "type": "string",
1115
+ "enum": [
1116
+ "tray:deny-set-menu"
1117
+ ]
1118
+ },
1119
+ {
1120
+ "description": "tray:deny-set-show-menu-on-left-click -> Denies the set_show_menu_on_left_click command without any pre-configured scope.",
1121
+ "type": "string",
1122
+ "enum": [
1123
+ "tray:deny-set-show-menu-on-left-click"
1124
+ ]
1125
+ },
1126
+ {
1127
+ "description": "tray:deny-set-temp-dir-path -> Denies the set_temp_dir_path command without any pre-configured scope.",
1128
+ "type": "string",
1129
+ "enum": [
1130
+ "tray:deny-set-temp-dir-path"
1131
+ ]
1132
+ },
1133
+ {
1134
+ "description": "tray:deny-set-title -> Denies the set_title command without any pre-configured scope.",
1135
+ "type": "string",
1136
+ "enum": [
1137
+ "tray:deny-set-title"
1138
+ ]
1139
+ },
1140
+ {
1141
+ "description": "tray:deny-set-tooltip -> Denies the set_tooltip command without any pre-configured scope.",
1142
+ "type": "string",
1143
+ "enum": [
1144
+ "tray:deny-set-tooltip"
1145
+ ]
1146
+ },
1147
+ {
1148
+ "description": "tray:deny-set-visible -> Denies the set_visible command without any pre-configured scope.",
1149
+ "type": "string",
1150
+ "enum": [
1151
+ "tray:deny-set-visible"
1152
+ ]
1153
+ },
1154
+ {
1155
+ "description": "webview:default -> Default permissions for the plugin.",
1156
+ "type": "string",
1157
+ "enum": [
1158
+ "webview:default"
1159
+ ]
1160
+ },
1161
+ {
1162
+ "description": "webview:allow-create-webview -> Enables the create_webview command without any pre-configured scope.",
1163
+ "type": "string",
1164
+ "enum": [
1165
+ "webview:allow-create-webview"
1166
+ ]
1167
+ },
1168
+ {
1169
+ "description": "webview:allow-create-webview-window -> Enables the create_webview_window command without any pre-configured scope.",
1170
+ "type": "string",
1171
+ "enum": [
1172
+ "webview:allow-create-webview-window"
1173
+ ]
1174
+ },
1175
+ {
1176
+ "description": "webview:allow-internal-toggle-devtools -> Enables the internal_toggle_devtools command without any pre-configured scope.",
1177
+ "type": "string",
1178
+ "enum": [
1179
+ "webview:allow-internal-toggle-devtools"
1180
+ ]
1181
+ },
1182
+ {
1183
+ "description": "webview:allow-print -> Enables the print command without any pre-configured scope.",
1184
+ "type": "string",
1185
+ "enum": [
1186
+ "webview:allow-print"
1187
+ ]
1188
+ },
1189
+ {
1190
+ "description": "webview:allow-reparent -> Enables the reparent command without any pre-configured scope.",
1191
+ "type": "string",
1192
+ "enum": [
1193
+ "webview:allow-reparent"
1194
+ ]
1195
+ },
1196
+ {
1197
+ "description": "webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.",
1198
+ "type": "string",
1199
+ "enum": [
1200
+ "webview:allow-set-webview-focus"
1201
+ ]
1202
+ },
1203
+ {
1204
+ "description": "webview:allow-set-webview-position -> Enables the set_webview_position command without any pre-configured scope.",
1205
+ "type": "string",
1206
+ "enum": [
1207
+ "webview:allow-set-webview-position"
1208
+ ]
1209
+ },
1210
+ {
1211
+ "description": "webview:allow-set-webview-size -> Enables the set_webview_size command without any pre-configured scope.",
1212
+ "type": "string",
1213
+ "enum": [
1214
+ "webview:allow-set-webview-size"
1215
+ ]
1216
+ },
1217
+ {
1218
+ "description": "webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.",
1219
+ "type": "string",
1220
+ "enum": [
1221
+ "webview:allow-set-webview-zoom"
1222
+ ]
1223
+ },
1224
+ {
1225
+ "description": "webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.",
1226
+ "type": "string",
1227
+ "enum": [
1228
+ "webview:allow-webview-close"
1229
+ ]
1230
+ },
1231
+ {
1232
+ "description": "webview:allow-webview-position -> Enables the webview_position command without any pre-configured scope.",
1233
+ "type": "string",
1234
+ "enum": [
1235
+ "webview:allow-webview-position"
1236
+ ]
1237
+ },
1238
+ {
1239
+ "description": "webview:allow-webview-size -> Enables the webview_size command without any pre-configured scope.",
1240
+ "type": "string",
1241
+ "enum": [
1242
+ "webview:allow-webview-size"
1243
+ ]
1244
+ },
1245
+ {
1246
+ "description": "webview:deny-create-webview -> Denies the create_webview command without any pre-configured scope.",
1247
+ "type": "string",
1248
+ "enum": [
1249
+ "webview:deny-create-webview"
1250
+ ]
1251
+ },
1252
+ {
1253
+ "description": "webview:deny-create-webview-window -> Denies the create_webview_window command without any pre-configured scope.",
1254
+ "type": "string",
1255
+ "enum": [
1256
+ "webview:deny-create-webview-window"
1257
+ ]
1258
+ },
1259
+ {
1260
+ "description": "webview:deny-internal-toggle-devtools -> Denies the internal_toggle_devtools command without any pre-configured scope.",
1261
+ "type": "string",
1262
+ "enum": [
1263
+ "webview:deny-internal-toggle-devtools"
1264
+ ]
1265
+ },
1266
+ {
1267
+ "description": "webview:deny-print -> Denies the print command without any pre-configured scope.",
1268
+ "type": "string",
1269
+ "enum": [
1270
+ "webview:deny-print"
1271
+ ]
1272
+ },
1273
+ {
1274
+ "description": "webview:deny-reparent -> Denies the reparent command without any pre-configured scope.",
1275
+ "type": "string",
1276
+ "enum": [
1277
+ "webview:deny-reparent"
1278
+ ]
1279
+ },
1280
+ {
1281
+ "description": "webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.",
1282
+ "type": "string",
1283
+ "enum": [
1284
+ "webview:deny-set-webview-focus"
1285
+ ]
1286
+ },
1287
+ {
1288
+ "description": "webview:deny-set-webview-position -> Denies the set_webview_position command without any pre-configured scope.",
1289
+ "type": "string",
1290
+ "enum": [
1291
+ "webview:deny-set-webview-position"
1292
+ ]
1293
+ },
1294
+ {
1295
+ "description": "webview:deny-set-webview-size -> Denies the set_webview_size command without any pre-configured scope.",
1296
+ "type": "string",
1297
+ "enum": [
1298
+ "webview:deny-set-webview-size"
1299
+ ]
1300
+ },
1301
+ {
1302
+ "description": "webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.",
1303
+ "type": "string",
1304
+ "enum": [
1305
+ "webview:deny-set-webview-zoom"
1306
+ ]
1307
+ },
1308
+ {
1309
+ "description": "webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.",
1310
+ "type": "string",
1311
+ "enum": [
1312
+ "webview:deny-webview-close"
1313
+ ]
1314
+ },
1315
+ {
1316
+ "description": "webview:deny-webview-position -> Denies the webview_position command without any pre-configured scope.",
1317
+ "type": "string",
1318
+ "enum": [
1319
+ "webview:deny-webview-position"
1320
+ ]
1321
+ },
1322
+ {
1323
+ "description": "webview:deny-webview-size -> Denies the webview_size command without any pre-configured scope.",
1324
+ "type": "string",
1325
+ "enum": [
1326
+ "webview:deny-webview-size"
1327
+ ]
1328
+ },
1329
+ {
1330
+ "description": "window:default -> Default permissions for the plugin.",
1331
+ "type": "string",
1332
+ "enum": [
1333
+ "window:default"
1334
+ ]
1335
+ },
1336
+ {
1337
+ "description": "window:allow-available-monitors -> Enables the available_monitors command without any pre-configured scope.",
1338
+ "type": "string",
1339
+ "enum": [
1340
+ "window:allow-available-monitors"
1341
+ ]
1342
+ },
1343
+ {
1344
+ "description": "window:allow-center -> Enables the center command without any pre-configured scope.",
1345
+ "type": "string",
1346
+ "enum": [
1347
+ "window:allow-center"
1348
+ ]
1349
+ },
1350
+ {
1351
+ "description": "window:allow-close -> Enables the close command without any pre-configured scope.",
1352
+ "type": "string",
1353
+ "enum": [
1354
+ "window:allow-close"
1355
+ ]
1356
+ },
1357
+ {
1358
+ "description": "window:allow-create -> Enables the create command without any pre-configured scope.",
1359
+ "type": "string",
1360
+ "enum": [
1361
+ "window:allow-create"
1362
+ ]
1363
+ },
1364
+ {
1365
+ "description": "window:allow-current-monitor -> Enables the current_monitor command without any pre-configured scope.",
1366
+ "type": "string",
1367
+ "enum": [
1368
+ "window:allow-current-monitor"
1369
+ ]
1370
+ },
1371
+ {
1372
+ "description": "window:allow-cursor-position -> Enables the cursor_position command without any pre-configured scope.",
1373
+ "type": "string",
1374
+ "enum": [
1375
+ "window:allow-cursor-position"
1376
+ ]
1377
+ },
1378
+ {
1379
+ "description": "window:allow-destroy -> Enables the destroy command without any pre-configured scope.",
1380
+ "type": "string",
1381
+ "enum": [
1382
+ "window:allow-destroy"
1383
+ ]
1384
+ },
1385
+ {
1386
+ "description": "window:allow-hide -> Enables the hide command without any pre-configured scope.",
1387
+ "type": "string",
1388
+ "enum": [
1389
+ "window:allow-hide"
1390
+ ]
1391
+ },
1392
+ {
1393
+ "description": "window:allow-inner-position -> Enables the inner_position command without any pre-configured scope.",
1394
+ "type": "string",
1395
+ "enum": [
1396
+ "window:allow-inner-position"
1397
+ ]
1398
+ },
1399
+ {
1400
+ "description": "window:allow-inner-size -> Enables the inner_size command without any pre-configured scope.",
1401
+ "type": "string",
1402
+ "enum": [
1403
+ "window:allow-inner-size"
1404
+ ]
1405
+ },
1406
+ {
1407
+ "description": "window:allow-internal-toggle-maximize -> Enables the internal_toggle_maximize command without any pre-configured scope.",
1408
+ "type": "string",
1409
+ "enum": [
1410
+ "window:allow-internal-toggle-maximize"
1411
+ ]
1412
+ },
1413
+ {
1414
+ "description": "window:allow-is-closable -> Enables the is_closable command without any pre-configured scope.",
1415
+ "type": "string",
1416
+ "enum": [
1417
+ "window:allow-is-closable"
1418
+ ]
1419
+ },
1420
+ {
1421
+ "description": "window:allow-is-decorated -> Enables the is_decorated command without any pre-configured scope.",
1422
+ "type": "string",
1423
+ "enum": [
1424
+ "window:allow-is-decorated"
1425
+ ]
1426
+ },
1427
+ {
1428
+ "description": "window:allow-is-focused -> Enables the is_focused command without any pre-configured scope.",
1429
+ "type": "string",
1430
+ "enum": [
1431
+ "window:allow-is-focused"
1432
+ ]
1433
+ },
1434
+ {
1435
+ "description": "window:allow-is-fullscreen -> Enables the is_fullscreen command without any pre-configured scope.",
1436
+ "type": "string",
1437
+ "enum": [
1438
+ "window:allow-is-fullscreen"
1439
+ ]
1440
+ },
1441
+ {
1442
+ "description": "window:allow-is-maximizable -> Enables the is_maximizable command without any pre-configured scope.",
1443
+ "type": "string",
1444
+ "enum": [
1445
+ "window:allow-is-maximizable"
1446
+ ]
1447
+ },
1448
+ {
1449
+ "description": "window:allow-is-maximized -> Enables the is_maximized command without any pre-configured scope.",
1450
+ "type": "string",
1451
+ "enum": [
1452
+ "window:allow-is-maximized"
1453
+ ]
1454
+ },
1455
+ {
1456
+ "description": "window:allow-is-minimizable -> Enables the is_minimizable command without any pre-configured scope.",
1457
+ "type": "string",
1458
+ "enum": [
1459
+ "window:allow-is-minimizable"
1460
+ ]
1461
+ },
1462
+ {
1463
+ "description": "window:allow-is-minimized -> Enables the is_minimized command without any pre-configured scope.",
1464
+ "type": "string",
1465
+ "enum": [
1466
+ "window:allow-is-minimized"
1467
+ ]
1468
+ },
1469
+ {
1470
+ "description": "window:allow-is-resizable -> Enables the is_resizable command without any pre-configured scope.",
1471
+ "type": "string",
1472
+ "enum": [
1473
+ "window:allow-is-resizable"
1474
+ ]
1475
+ },
1476
+ {
1477
+ "description": "window:allow-is-visible -> Enables the is_visible command without any pre-configured scope.",
1478
+ "type": "string",
1479
+ "enum": [
1480
+ "window:allow-is-visible"
1481
+ ]
1482
+ },
1483
+ {
1484
+ "description": "window:allow-maximize -> Enables the maximize command without any pre-configured scope.",
1485
+ "type": "string",
1486
+ "enum": [
1487
+ "window:allow-maximize"
1488
+ ]
1489
+ },
1490
+ {
1491
+ "description": "window:allow-minimize -> Enables the minimize command without any pre-configured scope.",
1492
+ "type": "string",
1493
+ "enum": [
1494
+ "window:allow-minimize"
1495
+ ]
1496
+ },
1497
+ {
1498
+ "description": "window:allow-monitor-from-point -> Enables the monitor_from_point command without any pre-configured scope.",
1499
+ "type": "string",
1500
+ "enum": [
1501
+ "window:allow-monitor-from-point"
1502
+ ]
1503
+ },
1504
+ {
1505
+ "description": "window:allow-outer-position -> Enables the outer_position command without any pre-configured scope.",
1506
+ "type": "string",
1507
+ "enum": [
1508
+ "window:allow-outer-position"
1509
+ ]
1510
+ },
1511
+ {
1512
+ "description": "window:allow-outer-size -> Enables the outer_size command without any pre-configured scope.",
1513
+ "type": "string",
1514
+ "enum": [
1515
+ "window:allow-outer-size"
1516
+ ]
1517
+ },
1518
+ {
1519
+ "description": "window:allow-primary-monitor -> Enables the primary_monitor command without any pre-configured scope.",
1520
+ "type": "string",
1521
+ "enum": [
1522
+ "window:allow-primary-monitor"
1523
+ ]
1524
+ },
1525
+ {
1526
+ "description": "window:allow-request-user-attention -> Enables the request_user_attention command without any pre-configured scope.",
1527
+ "type": "string",
1528
+ "enum": [
1529
+ "window:allow-request-user-attention"
1530
+ ]
1531
+ },
1532
+ {
1533
+ "description": "window:allow-scale-factor -> Enables the scale_factor command without any pre-configured scope.",
1534
+ "type": "string",
1535
+ "enum": [
1536
+ "window:allow-scale-factor"
1537
+ ]
1538
+ },
1539
+ {
1540
+ "description": "window:allow-set-always-on-bottom -> Enables the set_always_on_bottom command without any pre-configured scope.",
1541
+ "type": "string",
1542
+ "enum": [
1543
+ "window:allow-set-always-on-bottom"
1544
+ ]
1545
+ },
1546
+ {
1547
+ "description": "window:allow-set-always-on-top -> Enables the set_always_on_top command without any pre-configured scope.",
1548
+ "type": "string",
1549
+ "enum": [
1550
+ "window:allow-set-always-on-top"
1551
+ ]
1552
+ },
1553
+ {
1554
+ "description": "window:allow-set-closable -> Enables the set_closable command without any pre-configured scope.",
1555
+ "type": "string",
1556
+ "enum": [
1557
+ "window:allow-set-closable"
1558
+ ]
1559
+ },
1560
+ {
1561
+ "description": "window:allow-set-content-protected -> Enables the set_content_protected command without any pre-configured scope.",
1562
+ "type": "string",
1563
+ "enum": [
1564
+ "window:allow-set-content-protected"
1565
+ ]
1566
+ },
1567
+ {
1568
+ "description": "window:allow-set-cursor-grab -> Enables the set_cursor_grab command without any pre-configured scope.",
1569
+ "type": "string",
1570
+ "enum": [
1571
+ "window:allow-set-cursor-grab"
1572
+ ]
1573
+ },
1574
+ {
1575
+ "description": "window:allow-set-cursor-icon -> Enables the set_cursor_icon command without any pre-configured scope.",
1576
+ "type": "string",
1577
+ "enum": [
1578
+ "window:allow-set-cursor-icon"
1579
+ ]
1580
+ },
1581
+ {
1582
+ "description": "window:allow-set-cursor-position -> Enables the set_cursor_position command without any pre-configured scope.",
1583
+ "type": "string",
1584
+ "enum": [
1585
+ "window:allow-set-cursor-position"
1586
+ ]
1587
+ },
1588
+ {
1589
+ "description": "window:allow-set-cursor-visible -> Enables the set_cursor_visible command without any pre-configured scope.",
1590
+ "type": "string",
1591
+ "enum": [
1592
+ "window:allow-set-cursor-visible"
1593
+ ]
1594
+ },
1595
+ {
1596
+ "description": "window:allow-set-decorations -> Enables the set_decorations command without any pre-configured scope.",
1597
+ "type": "string",
1598
+ "enum": [
1599
+ "window:allow-set-decorations"
1600
+ ]
1601
+ },
1602
+ {
1603
+ "description": "window:allow-set-effects -> Enables the set_effects command without any pre-configured scope.",
1604
+ "type": "string",
1605
+ "enum": [
1606
+ "window:allow-set-effects"
1607
+ ]
1608
+ },
1609
+ {
1610
+ "description": "window:allow-set-focus -> Enables the set_focus command without any pre-configured scope.",
1611
+ "type": "string",
1612
+ "enum": [
1613
+ "window:allow-set-focus"
1614
+ ]
1615
+ },
1616
+ {
1617
+ "description": "window:allow-set-fullscreen -> Enables the set_fullscreen command without any pre-configured scope.",
1618
+ "type": "string",
1619
+ "enum": [
1620
+ "window:allow-set-fullscreen"
1621
+ ]
1622
+ },
1623
+ {
1624
+ "description": "window:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
1625
+ "type": "string",
1626
+ "enum": [
1627
+ "window:allow-set-icon"
1628
+ ]
1629
+ },
1630
+ {
1631
+ "description": "window:allow-set-ignore-cursor-events -> Enables the set_ignore_cursor_events command without any pre-configured scope.",
1632
+ "type": "string",
1633
+ "enum": [
1634
+ "window:allow-set-ignore-cursor-events"
1635
+ ]
1636
+ },
1637
+ {
1638
+ "description": "window:allow-set-max-size -> Enables the set_max_size command without any pre-configured scope.",
1639
+ "type": "string",
1640
+ "enum": [
1641
+ "window:allow-set-max-size"
1642
+ ]
1643
+ },
1644
+ {
1645
+ "description": "window:allow-set-maximizable -> Enables the set_maximizable command without any pre-configured scope.",
1646
+ "type": "string",
1647
+ "enum": [
1648
+ "window:allow-set-maximizable"
1649
+ ]
1650
+ },
1651
+ {
1652
+ "description": "window:allow-set-min-size -> Enables the set_min_size command without any pre-configured scope.",
1653
+ "type": "string",
1654
+ "enum": [
1655
+ "window:allow-set-min-size"
1656
+ ]
1657
+ },
1658
+ {
1659
+ "description": "window:allow-set-minimizable -> Enables the set_minimizable command without any pre-configured scope.",
1660
+ "type": "string",
1661
+ "enum": [
1662
+ "window:allow-set-minimizable"
1663
+ ]
1664
+ },
1665
+ {
1666
+ "description": "window:allow-set-position -> Enables the set_position command without any pre-configured scope.",
1667
+ "type": "string",
1668
+ "enum": [
1669
+ "window:allow-set-position"
1670
+ ]
1671
+ },
1672
+ {
1673
+ "description": "window:allow-set-progress-bar -> Enables the set_progress_bar command without any pre-configured scope.",
1674
+ "type": "string",
1675
+ "enum": [
1676
+ "window:allow-set-progress-bar"
1677
+ ]
1678
+ },
1679
+ {
1680
+ "description": "window:allow-set-resizable -> Enables the set_resizable command without any pre-configured scope.",
1681
+ "type": "string",
1682
+ "enum": [
1683
+ "window:allow-set-resizable"
1684
+ ]
1685
+ },
1686
+ {
1687
+ "description": "window:allow-set-shadow -> Enables the set_shadow command without any pre-configured scope.",
1688
+ "type": "string",
1689
+ "enum": [
1690
+ "window:allow-set-shadow"
1691
+ ]
1692
+ },
1693
+ {
1694
+ "description": "window:allow-set-size -> Enables the set_size command without any pre-configured scope.",
1695
+ "type": "string",
1696
+ "enum": [
1697
+ "window:allow-set-size"
1698
+ ]
1699
+ },
1700
+ {
1701
+ "description": "window:allow-set-skip-taskbar -> Enables the set_skip_taskbar command without any pre-configured scope.",
1702
+ "type": "string",
1703
+ "enum": [
1704
+ "window:allow-set-skip-taskbar"
1705
+ ]
1706
+ },
1707
+ {
1708
+ "description": "window:allow-set-title -> Enables the set_title command without any pre-configured scope.",
1709
+ "type": "string",
1710
+ "enum": [
1711
+ "window:allow-set-title"
1712
+ ]
1713
+ },
1714
+ {
1715
+ "description": "window:allow-set-title-bar-style -> Enables the set_title_bar_style command without any pre-configured scope.",
1716
+ "type": "string",
1717
+ "enum": [
1718
+ "window:allow-set-title-bar-style"
1719
+ ]
1720
+ },
1721
+ {
1722
+ "description": "window:allow-set-visible-on-all-workspaces -> Enables the set_visible_on_all_workspaces command without any pre-configured scope.",
1723
+ "type": "string",
1724
+ "enum": [
1725
+ "window:allow-set-visible-on-all-workspaces"
1726
+ ]
1727
+ },
1728
+ {
1729
+ "description": "window:allow-show -> Enables the show command without any pre-configured scope.",
1730
+ "type": "string",
1731
+ "enum": [
1732
+ "window:allow-show"
1733
+ ]
1734
+ },
1735
+ {
1736
+ "description": "window:allow-start-dragging -> Enables the start_dragging command without any pre-configured scope.",
1737
+ "type": "string",
1738
+ "enum": [
1739
+ "window:allow-start-dragging"
1740
+ ]
1741
+ },
1742
+ {
1743
+ "description": "window:allow-start-resize-dragging -> Enables the start_resize_dragging command without any pre-configured scope.",
1744
+ "type": "string",
1745
+ "enum": [
1746
+ "window:allow-start-resize-dragging"
1747
+ ]
1748
+ },
1749
+ {
1750
+ "description": "window:allow-theme -> Enables the theme command without any pre-configured scope.",
1751
+ "type": "string",
1752
+ "enum": [
1753
+ "window:allow-theme"
1754
+ ]
1755
+ },
1756
+ {
1757
+ "description": "window:allow-title -> Enables the title command without any pre-configured scope.",
1758
+ "type": "string",
1759
+ "enum": [
1760
+ "window:allow-title"
1761
+ ]
1762
+ },
1763
+ {
1764
+ "description": "window:allow-toggle-maximize -> Enables the toggle_maximize command without any pre-configured scope.",
1765
+ "type": "string",
1766
+ "enum": [
1767
+ "window:allow-toggle-maximize"
1768
+ ]
1769
+ },
1770
+ {
1771
+ "description": "window:allow-unmaximize -> Enables the unmaximize command without any pre-configured scope.",
1772
+ "type": "string",
1773
+ "enum": [
1774
+ "window:allow-unmaximize"
1775
+ ]
1776
+ },
1777
+ {
1778
+ "description": "window:allow-unminimize -> Enables the unminimize command without any pre-configured scope.",
1779
+ "type": "string",
1780
+ "enum": [
1781
+ "window:allow-unminimize"
1782
+ ]
1783
+ },
1784
+ {
1785
+ "description": "window:deny-available-monitors -> Denies the available_monitors command without any pre-configured scope.",
1786
+ "type": "string",
1787
+ "enum": [
1788
+ "window:deny-available-monitors"
1789
+ ]
1790
+ },
1791
+ {
1792
+ "description": "window:deny-center -> Denies the center command without any pre-configured scope.",
1793
+ "type": "string",
1794
+ "enum": [
1795
+ "window:deny-center"
1796
+ ]
1797
+ },
1798
+ {
1799
+ "description": "window:deny-close -> Denies the close command without any pre-configured scope.",
1800
+ "type": "string",
1801
+ "enum": [
1802
+ "window:deny-close"
1803
+ ]
1804
+ },
1805
+ {
1806
+ "description": "window:deny-create -> Denies the create command without any pre-configured scope.",
1807
+ "type": "string",
1808
+ "enum": [
1809
+ "window:deny-create"
1810
+ ]
1811
+ },
1812
+ {
1813
+ "description": "window:deny-current-monitor -> Denies the current_monitor command without any pre-configured scope.",
1814
+ "type": "string",
1815
+ "enum": [
1816
+ "window:deny-current-monitor"
1817
+ ]
1818
+ },
1819
+ {
1820
+ "description": "window:deny-cursor-position -> Denies the cursor_position command without any pre-configured scope.",
1821
+ "type": "string",
1822
+ "enum": [
1823
+ "window:deny-cursor-position"
1824
+ ]
1825
+ },
1826
+ {
1827
+ "description": "window:deny-destroy -> Denies the destroy command without any pre-configured scope.",
1828
+ "type": "string",
1829
+ "enum": [
1830
+ "window:deny-destroy"
1831
+ ]
1832
+ },
1833
+ {
1834
+ "description": "window:deny-hide -> Denies the hide command without any pre-configured scope.",
1835
+ "type": "string",
1836
+ "enum": [
1837
+ "window:deny-hide"
1838
+ ]
1839
+ },
1840
+ {
1841
+ "description": "window:deny-inner-position -> Denies the inner_position command without any pre-configured scope.",
1842
+ "type": "string",
1843
+ "enum": [
1844
+ "window:deny-inner-position"
1845
+ ]
1846
+ },
1847
+ {
1848
+ "description": "window:deny-inner-size -> Denies the inner_size command without any pre-configured scope.",
1849
+ "type": "string",
1850
+ "enum": [
1851
+ "window:deny-inner-size"
1852
+ ]
1853
+ },
1854
+ {
1855
+ "description": "window:deny-internal-toggle-maximize -> Denies the internal_toggle_maximize command without any pre-configured scope.",
1856
+ "type": "string",
1857
+ "enum": [
1858
+ "window:deny-internal-toggle-maximize"
1859
+ ]
1860
+ },
1861
+ {
1862
+ "description": "window:deny-is-closable -> Denies the is_closable command without any pre-configured scope.",
1863
+ "type": "string",
1864
+ "enum": [
1865
+ "window:deny-is-closable"
1866
+ ]
1867
+ },
1868
+ {
1869
+ "description": "window:deny-is-decorated -> Denies the is_decorated command without any pre-configured scope.",
1870
+ "type": "string",
1871
+ "enum": [
1872
+ "window:deny-is-decorated"
1873
+ ]
1874
+ },
1875
+ {
1876
+ "description": "window:deny-is-focused -> Denies the is_focused command without any pre-configured scope.",
1877
+ "type": "string",
1878
+ "enum": [
1879
+ "window:deny-is-focused"
1880
+ ]
1881
+ },
1882
+ {
1883
+ "description": "window:deny-is-fullscreen -> Denies the is_fullscreen command without any pre-configured scope.",
1884
+ "type": "string",
1885
+ "enum": [
1886
+ "window:deny-is-fullscreen"
1887
+ ]
1888
+ },
1889
+ {
1890
+ "description": "window:deny-is-maximizable -> Denies the is_maximizable command without any pre-configured scope.",
1891
+ "type": "string",
1892
+ "enum": [
1893
+ "window:deny-is-maximizable"
1894
+ ]
1895
+ },
1896
+ {
1897
+ "description": "window:deny-is-maximized -> Denies the is_maximized command without any pre-configured scope.",
1898
+ "type": "string",
1899
+ "enum": [
1900
+ "window:deny-is-maximized"
1901
+ ]
1902
+ },
1903
+ {
1904
+ "description": "window:deny-is-minimizable -> Denies the is_minimizable command without any pre-configured scope.",
1905
+ "type": "string",
1906
+ "enum": [
1907
+ "window:deny-is-minimizable"
1908
+ ]
1909
+ },
1910
+ {
1911
+ "description": "window:deny-is-minimized -> Denies the is_minimized command without any pre-configured scope.",
1912
+ "type": "string",
1913
+ "enum": [
1914
+ "window:deny-is-minimized"
1915
+ ]
1916
+ },
1917
+ {
1918
+ "description": "window:deny-is-resizable -> Denies the is_resizable command without any pre-configured scope.",
1919
+ "type": "string",
1920
+ "enum": [
1921
+ "window:deny-is-resizable"
1922
+ ]
1923
+ },
1924
+ {
1925
+ "description": "window:deny-is-visible -> Denies the is_visible command without any pre-configured scope.",
1926
+ "type": "string",
1927
+ "enum": [
1928
+ "window:deny-is-visible"
1929
+ ]
1930
+ },
1931
+ {
1932
+ "description": "window:deny-maximize -> Denies the maximize command without any pre-configured scope.",
1933
+ "type": "string",
1934
+ "enum": [
1935
+ "window:deny-maximize"
1936
+ ]
1937
+ },
1938
+ {
1939
+ "description": "window:deny-minimize -> Denies the minimize command without any pre-configured scope.",
1940
+ "type": "string",
1941
+ "enum": [
1942
+ "window:deny-minimize"
1943
+ ]
1944
+ },
1945
+ {
1946
+ "description": "window:deny-monitor-from-point -> Denies the monitor_from_point command without any pre-configured scope.",
1947
+ "type": "string",
1948
+ "enum": [
1949
+ "window:deny-monitor-from-point"
1950
+ ]
1951
+ },
1952
+ {
1953
+ "description": "window:deny-outer-position -> Denies the outer_position command without any pre-configured scope.",
1954
+ "type": "string",
1955
+ "enum": [
1956
+ "window:deny-outer-position"
1957
+ ]
1958
+ },
1959
+ {
1960
+ "description": "window:deny-outer-size -> Denies the outer_size command without any pre-configured scope.",
1961
+ "type": "string",
1962
+ "enum": [
1963
+ "window:deny-outer-size"
1964
+ ]
1965
+ },
1966
+ {
1967
+ "description": "window:deny-primary-monitor -> Denies the primary_monitor command without any pre-configured scope.",
1968
+ "type": "string",
1969
+ "enum": [
1970
+ "window:deny-primary-monitor"
1971
+ ]
1972
+ },
1973
+ {
1974
+ "description": "window:deny-request-user-attention -> Denies the request_user_attention command without any pre-configured scope.",
1975
+ "type": "string",
1976
+ "enum": [
1977
+ "window:deny-request-user-attention"
1978
+ ]
1979
+ },
1980
+ {
1981
+ "description": "window:deny-scale-factor -> Denies the scale_factor command without any pre-configured scope.",
1982
+ "type": "string",
1983
+ "enum": [
1984
+ "window:deny-scale-factor"
1985
+ ]
1986
+ },
1987
+ {
1988
+ "description": "window:deny-set-always-on-bottom -> Denies the set_always_on_bottom command without any pre-configured scope.",
1989
+ "type": "string",
1990
+ "enum": [
1991
+ "window:deny-set-always-on-bottom"
1992
+ ]
1993
+ },
1994
+ {
1995
+ "description": "window:deny-set-always-on-top -> Denies the set_always_on_top command without any pre-configured scope.",
1996
+ "type": "string",
1997
+ "enum": [
1998
+ "window:deny-set-always-on-top"
1999
+ ]
2000
+ },
2001
+ {
2002
+ "description": "window:deny-set-closable -> Denies the set_closable command without any pre-configured scope.",
2003
+ "type": "string",
2004
+ "enum": [
2005
+ "window:deny-set-closable"
2006
+ ]
2007
+ },
2008
+ {
2009
+ "description": "window:deny-set-content-protected -> Denies the set_content_protected command without any pre-configured scope.",
2010
+ "type": "string",
2011
+ "enum": [
2012
+ "window:deny-set-content-protected"
2013
+ ]
2014
+ },
2015
+ {
2016
+ "description": "window:deny-set-cursor-grab -> Denies the set_cursor_grab command without any pre-configured scope.",
2017
+ "type": "string",
2018
+ "enum": [
2019
+ "window:deny-set-cursor-grab"
2020
+ ]
2021
+ },
2022
+ {
2023
+ "description": "window:deny-set-cursor-icon -> Denies the set_cursor_icon command without any pre-configured scope.",
2024
+ "type": "string",
2025
+ "enum": [
2026
+ "window:deny-set-cursor-icon"
2027
+ ]
2028
+ },
2029
+ {
2030
+ "description": "window:deny-set-cursor-position -> Denies the set_cursor_position command without any pre-configured scope.",
2031
+ "type": "string",
2032
+ "enum": [
2033
+ "window:deny-set-cursor-position"
2034
+ ]
2035
+ },
2036
+ {
2037
+ "description": "window:deny-set-cursor-visible -> Denies the set_cursor_visible command without any pre-configured scope.",
2038
+ "type": "string",
2039
+ "enum": [
2040
+ "window:deny-set-cursor-visible"
2041
+ ]
2042
+ },
2043
+ {
2044
+ "description": "window:deny-set-decorations -> Denies the set_decorations command without any pre-configured scope.",
2045
+ "type": "string",
2046
+ "enum": [
2047
+ "window:deny-set-decorations"
2048
+ ]
2049
+ },
2050
+ {
2051
+ "description": "window:deny-set-effects -> Denies the set_effects command without any pre-configured scope.",
2052
+ "type": "string",
2053
+ "enum": [
2054
+ "window:deny-set-effects"
2055
+ ]
2056
+ },
2057
+ {
2058
+ "description": "window:deny-set-focus -> Denies the set_focus command without any pre-configured scope.",
2059
+ "type": "string",
2060
+ "enum": [
2061
+ "window:deny-set-focus"
2062
+ ]
2063
+ },
2064
+ {
2065
+ "description": "window:deny-set-fullscreen -> Denies the set_fullscreen command without any pre-configured scope.",
2066
+ "type": "string",
2067
+ "enum": [
2068
+ "window:deny-set-fullscreen"
2069
+ ]
2070
+ },
2071
+ {
2072
+ "description": "window:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
2073
+ "type": "string",
2074
+ "enum": [
2075
+ "window:deny-set-icon"
2076
+ ]
2077
+ },
2078
+ {
2079
+ "description": "window:deny-set-ignore-cursor-events -> Denies the set_ignore_cursor_events command without any pre-configured scope.",
2080
+ "type": "string",
2081
+ "enum": [
2082
+ "window:deny-set-ignore-cursor-events"
2083
+ ]
2084
+ },
2085
+ {
2086
+ "description": "window:deny-set-max-size -> Denies the set_max_size command without any pre-configured scope.",
2087
+ "type": "string",
2088
+ "enum": [
2089
+ "window:deny-set-max-size"
2090
+ ]
2091
+ },
2092
+ {
2093
+ "description": "window:deny-set-maximizable -> Denies the set_maximizable command without any pre-configured scope.",
2094
+ "type": "string",
2095
+ "enum": [
2096
+ "window:deny-set-maximizable"
2097
+ ]
2098
+ },
2099
+ {
2100
+ "description": "window:deny-set-min-size -> Denies the set_min_size command without any pre-configured scope.",
2101
+ "type": "string",
2102
+ "enum": [
2103
+ "window:deny-set-min-size"
2104
+ ]
2105
+ },
2106
+ {
2107
+ "description": "window:deny-set-minimizable -> Denies the set_minimizable command without any pre-configured scope.",
2108
+ "type": "string",
2109
+ "enum": [
2110
+ "window:deny-set-minimizable"
2111
+ ]
2112
+ },
2113
+ {
2114
+ "description": "window:deny-set-position -> Denies the set_position command without any pre-configured scope.",
2115
+ "type": "string",
2116
+ "enum": [
2117
+ "window:deny-set-position"
2118
+ ]
2119
+ },
2120
+ {
2121
+ "description": "window:deny-set-progress-bar -> Denies the set_progress_bar command without any pre-configured scope.",
2122
+ "type": "string",
2123
+ "enum": [
2124
+ "window:deny-set-progress-bar"
2125
+ ]
2126
+ },
2127
+ {
2128
+ "description": "window:deny-set-resizable -> Denies the set_resizable command without any pre-configured scope.",
2129
+ "type": "string",
2130
+ "enum": [
2131
+ "window:deny-set-resizable"
2132
+ ]
2133
+ },
2134
+ {
2135
+ "description": "window:deny-set-shadow -> Denies the set_shadow command without any pre-configured scope.",
2136
+ "type": "string",
2137
+ "enum": [
2138
+ "window:deny-set-shadow"
2139
+ ]
2140
+ },
2141
+ {
2142
+ "description": "window:deny-set-size -> Denies the set_size command without any pre-configured scope.",
2143
+ "type": "string",
2144
+ "enum": [
2145
+ "window:deny-set-size"
2146
+ ]
2147
+ },
2148
+ {
2149
+ "description": "window:deny-set-skip-taskbar -> Denies the set_skip_taskbar command without any pre-configured scope.",
2150
+ "type": "string",
2151
+ "enum": [
2152
+ "window:deny-set-skip-taskbar"
2153
+ ]
2154
+ },
2155
+ {
2156
+ "description": "window:deny-set-title -> Denies the set_title command without any pre-configured scope.",
2157
+ "type": "string",
2158
+ "enum": [
2159
+ "window:deny-set-title"
2160
+ ]
2161
+ },
2162
+ {
2163
+ "description": "window:deny-set-title-bar-style -> Denies the set_title_bar_style command without any pre-configured scope.",
2164
+ "type": "string",
2165
+ "enum": [
2166
+ "window:deny-set-title-bar-style"
2167
+ ]
2168
+ },
2169
+ {
2170
+ "description": "window:deny-set-visible-on-all-workspaces -> Denies the set_visible_on_all_workspaces command without any pre-configured scope.",
2171
+ "type": "string",
2172
+ "enum": [
2173
+ "window:deny-set-visible-on-all-workspaces"
2174
+ ]
2175
+ },
2176
+ {
2177
+ "description": "window:deny-show -> Denies the show command without any pre-configured scope.",
2178
+ "type": "string",
2179
+ "enum": [
2180
+ "window:deny-show"
2181
+ ]
2182
+ },
2183
+ {
2184
+ "description": "window:deny-start-dragging -> Denies the start_dragging command without any pre-configured scope.",
2185
+ "type": "string",
2186
+ "enum": [
2187
+ "window:deny-start-dragging"
2188
+ ]
2189
+ },
2190
+ {
2191
+ "description": "window:deny-start-resize-dragging -> Denies the start_resize_dragging command without any pre-configured scope.",
2192
+ "type": "string",
2193
+ "enum": [
2194
+ "window:deny-start-resize-dragging"
2195
+ ]
2196
+ },
2197
+ {
2198
+ "description": "window:deny-theme -> Denies the theme command without any pre-configured scope.",
2199
+ "type": "string",
2200
+ "enum": [
2201
+ "window:deny-theme"
2202
+ ]
2203
+ },
2204
+ {
2205
+ "description": "window:deny-title -> Denies the title command without any pre-configured scope.",
2206
+ "type": "string",
2207
+ "enum": [
2208
+ "window:deny-title"
2209
+ ]
2210
+ },
2211
+ {
2212
+ "description": "window:deny-toggle-maximize -> Denies the toggle_maximize command without any pre-configured scope.",
2213
+ "type": "string",
2214
+ "enum": [
2215
+ "window:deny-toggle-maximize"
2216
+ ]
2217
+ },
2218
+ {
2219
+ "description": "window:deny-unmaximize -> Denies the unmaximize command without any pre-configured scope.",
2220
+ "type": "string",
2221
+ "enum": [
2222
+ "window:deny-unmaximize"
2223
+ ]
2224
+ },
2225
+ {
2226
+ "description": "window:deny-unminimize -> Denies the unminimize command without any pre-configured scope.",
2227
+ "type": "string",
2228
+ "enum": [
2229
+ "window:deny-unminimize"
2230
+ ]
2231
+ }
2232
+ ]
2233
+ },
2234
+ "Value": {
2235
+ "description": "All supported ACL values.",
2236
+ "anyOf": [
2237
+ {
2238
+ "description": "Represents a null JSON value.",
2239
+ "type": "null"
2240
+ },
2241
+ {
2242
+ "description": "Represents a [`bool`].",
2243
+ "type": "boolean"
2244
+ },
2245
+ {
2246
+ "description": "Represents a valid ACL [`Number`].",
2247
+ "allOf": [
2248
+ {
2249
+ "$ref": "#/definitions/Number"
2250
+ }
2251
+ ]
2252
+ },
2253
+ {
2254
+ "description": "Represents a [`String`].",
2255
+ "type": "string"
2256
+ },
2257
+ {
2258
+ "description": "Represents a list of other [`Value`]s.",
2259
+ "type": "array",
2260
+ "items": {
2261
+ "$ref": "#/definitions/Value"
2262
+ }
2263
+ },
2264
+ {
2265
+ "description": "Represents a map of [`String`] keys to [`Value`]s.",
2266
+ "type": "object",
2267
+ "additionalProperties": {
2268
+ "$ref": "#/definitions/Value"
2269
+ }
2270
+ }
2271
+ ]
2272
+ },
2273
+ "Number": {
2274
+ "description": "A valid ACL number.",
2275
+ "anyOf": [
2276
+ {
2277
+ "description": "Represents an [`i64`].",
2278
+ "type": "integer",
2279
+ "format": "int64"
2280
+ },
2281
+ {
2282
+ "description": "Represents a [`f64`].",
2283
+ "type": "number",
2284
+ "format": "double"
2285
+ }
2286
+ ]
2287
+ },
2288
+ "Target": {
2289
+ "description": "Platform target.",
2290
+ "oneOf": [
2291
+ {
2292
+ "description": "MacOS.",
2293
+ "type": "string",
2294
+ "enum": [
2295
+ "macOS"
2296
+ ]
2297
+ },
2298
+ {
2299
+ "description": "Windows.",
2300
+ "type": "string",
2301
+ "enum": [
2302
+ "windows"
2303
+ ]
2304
+ },
2305
+ {
2306
+ "description": "Linux.",
2307
+ "type": "string",
2308
+ "enum": [
2309
+ "linux"
2310
+ ]
2311
+ },
2312
+ {
2313
+ "description": "Android.",
2314
+ "type": "string",
2315
+ "enum": [
2316
+ "android"
2317
+ ]
2318
+ },
2319
+ {
2320
+ "description": "iOS.",
2321
+ "type": "string",
2322
+ "enum": [
2323
+ "iOS"
2324
+ ]
2325
+ }
2326
+ ]
2327
+ }
2328
+ }
2329
+}
\ No newline at end of file
examples/tauri-app/src-tauri/gen/schemas/mobile-schema.json
+122
-4
@@ -179,17 +179,129 @@
179
]
180
},
181
{
182
- "description": "admob:allow-ping -> Enables the ping command without any pre-configured scope.",
182
+ "description": "admob:allow-adCreate -> Enables the adCreate command without any pre-configured scope.",
183
"type": "string",
184
"enum": [
185
- "admob:allow-ping"
185
+ "admob:allow-adCreate"
186
]
187
},
188
{
189
- "description": "admob:deny-ping -> Denies the ping command without any pre-configured scope.",
189
+ "description": "admob:allow-adHide -> Enables the adHide command without any pre-configured scope.",
190
"type": "string",
191
"enum": [
192
- "admob:deny-ping"
192
+ "admob:allow-adHide"
193
+ ]
194
+ },
195
+ {
196
+ "description": "admob:allow-adIsLoaded -> Enables the adIsLoaded command without any pre-configured scope.",
197
+ "type": "string",
198
+ "enum": [
199
+ "admob:allow-adIsLoaded"
200
+ ]
201
+ },
202
+ {
203
+ "description": "admob:allow-adLoad -> Enables the adLoad command without any pre-configured scope.",
204
+ "type": "string",
205
+ "enum": [
206
+ "admob:allow-adLoad"
207
+ ]
208
+ },
209
+ {
210
+ "description": "admob:allow-adShow -> Enables the adShow command without any pre-configured scope.",
211
+ "type": "string",
212
+ "enum": [
213
+ "admob:allow-adShow"
214
+ ]
215
+ },
216
+ {
217
+ "description": "admob:allow-configRequest -> Enables the configRequest command without any pre-configured scope.",
218
+ "type": "string",
219
+ "enum": [
220
+ "admob:allow-configRequest"
221
+ ]
222
+ },
223
+ {
224
+ "description": "admob:allow-configure -> Enables the configure command without any pre-configured scope.",
225
+ "type": "string",
226
+ "enum": [
227
+ "admob:allow-configure"
228
+ ]
229
+ },
230
+ {
231
+ "description": "admob:allow-requestTrackingAuthorization -> Enables the requestTrackingAuthorization command without any pre-configured scope.",
232
+ "type": "string",
233
+ "enum": [
234
+ "admob:allow-requestTrackingAuthorization"
235
+ ]
236
+ },
237
+ {
238
+ "description": "admob:allow-trackingAuthorizationStatus -> Enables the trackingAuthorizationStatus command without any pre-configured scope.",
239
+ "type": "string",
240
+ "enum": [
241
+ "admob:allow-trackingAuthorizationStatus"
242
+ ]
243
+ },
244
+ {
245
+ "description": "admob:deny-adCreate -> Denies the adCreate command without any pre-configured scope.",
246
+ "type": "string",
247
+ "enum": [
248
+ "admob:deny-adCreate"
249
+ ]
250
+ },
251
+ {
252
+ "description": "admob:deny-adHide -> Denies the adHide command without any pre-configured scope.",
253
+ "type": "string",
254
+ "enum": [
255
+ "admob:deny-adHide"
256
+ ]
257
+ },
258
+ {
259
+ "description": "admob:deny-adIsLoaded -> Denies the adIsLoaded command without any pre-configured scope.",
260
+ "type": "string",
261
+ "enum": [
262
+ "admob:deny-adIsLoaded"
263
+ ]
264
+ },
265
+ {
266
+ "description": "admob:deny-adLoad -> Denies the adLoad command without any pre-configured scope.",
267
+ "type": "string",
268
+ "enum": [
269
+ "admob:deny-adLoad"
270
+ ]
271
+ },
272
+ {
273
+ "description": "admob:deny-adShow -> Denies the adShow command without any pre-configured scope.",
274
+ "type": "string",
275
+ "enum": [
276
+ "admob:deny-adShow"
277
+ ]
278
+ },
279
+ {
280
+ "description": "admob:deny-configRequest -> Denies the configRequest command without any pre-configured scope.",
281
+ "type": "string",
282
+ "enum": [
283
+ "admob:deny-configRequest"
284
+ ]
285
+ },
286
+ {
287
+ "description": "admob:deny-configure -> Denies the configure command without any pre-configured scope.",
288
+ "type": "string",
289
+ "enum": [
290
+ "admob:deny-configure"
291
+ ]
292
+ },
293
+ {
294
+ "description": "admob:deny-requestTrackingAuthorization -> Denies the requestTrackingAuthorization command without any pre-configured scope.",
295
+ "type": "string",
296
+ "enum": [
297
+ "admob:deny-requestTrackingAuthorization"
298
+ ]
299
+ },
300
+ {
301
+ "description": "admob:deny-trackingAuthorizationStatus -> Denies the trackingAuthorizationStatus command without any pre-configured scope.",
302
+ "type": "string",
303
+ "enum": [
304
+ "admob:deny-trackingAuthorizationStatus"
305
]
306
},
307
{
@@ -283,6 +395,12 @@
395
"app:deny-version"
396
]
397
},
398
+ {
399
+ "type": "string",
400
+ "enum": [
401
+ "devtools:default"
402
+ ]
403
+ },
404
{
405
"description": "event:default -> Default permissions for the plugin.",
406
"type": "string",
examples/tauri-app/src-tauri/src/lib.rs
+6
-1
@@ -6,7 +6,12 @@ fn greet(name: &str) -> String {
6
7
#[cfg_attr(mobile, tauri::mobile_entry_point)]
8
pub fn run() {
9
- tauri::Builder::default()
9
+ #[cfg(debug_assertions)]
10
+ let builder = tauri::Builder::default().plugin(tauri_plugin_devtools::init());
11
+ #[cfg(not(debug_assertions))]
12
+ let builder = tauri::Builder::default();
13
+
14
+ builder
15
.invoke_handler(tauri::generate_handler![greet])
16
.plugin(tauri_plugin_admob::init())
17
.run(tauri::generate_context!())
examples/tauri-app/src/App.svelte
+48
-45
@@ -1,54 +1,57 @@
1
-<script>
2
- import Greet from './lib/Greet.svelte'
3
- import { ping } from 'tauri-plugin-admob-api'
4
-
5
- let response = ''
6
-
7
- function updateResponse(returnValue) {
8
- response += `[${new Date().toLocaleTimeString()}] ` + (typeof returnValue === 'string' ? returnValue : JSON.stringify(returnValue)) + '<br>'
9
- }
10
-
11
- function _ping() {
12
- ping("Pong!").then(updateResponse).catch(updateResponse)
13
- }
1
+<script lang="ts">
2
+ import Greet from './lib/Greet.svelte'
3
+ import {BannerAd} from "tauri-plugin-admob-api";
4
+
5
+ let response = ''
6
+
7
+ function updateResponse(returnValue) {
8
+ response += `[${new Date().toLocaleTimeString()}] ` + (typeof returnValue === 'string' ? returnValue : JSON.stringify(returnValue)) + '<br>'
9
+ }
10
+
11
+ async function _ping() {
12
+ const banner = new BannerAd({
13
+ adUnitId: 'ca-app-pub-3940256099942544/6300978111',
14
+ });
15
+ await banner.show();
16
+ }
17
</script>
18
19
<main class="container">
17
- <h1>Welcome to Tauri!</h1>
18
-
19
- <div class="row">
20
- <a href="https://vitejs.dev" target="_blank">
21
- <img src="/vite.svg" class="logo vite" alt="Vite Logo" />
22
- </a>
23
- <a href="https://tauri.app" target="_blank">
24
- <img src="/tauri.svg" class="logo tauri" alt="Tauri Logo" />
25
- </a>
26
- <a href="https://svelte.dev" target="_blank">
27
- <img src="/svelte.svg" class="logo svelte" alt="Svelte Logo" />
28
- </a>
29
- </div>
30
-
31
- <p>
32
- Click on the Tauri, Vite, and Svelte logos to learn more.
33
- </p>
34
-
35
- <div class="row">
36
- <Greet />
37
- </div>
38
-
39
- <div>
40
- <button on:click="{_ping}">Ping</button>
41
- <div>{@html response}</div>
42
- </div>
20
+ <h1>Welcome to Tauri!</h1>
21
+
22
+ <div class="row">
23
+ <a href="https://vitejs.dev" target="_blank">
24
+ <img alt="Vite Logo" class="logo vite" src="/vite.svg"/>
25
+ </a>
26
+ <a href="https://tauri.app" target="_blank">
27
+ <img alt="Tauri Logo" class="logo tauri" src="/tauri.svg"/>
28
+ </a>
29
+ <a href="https://svelte.dev" target="_blank">
30
+ <img alt="Svelte Logo" class="logo svelte" src="/svelte.svg"/>
31
+ </a>
32
+ </div>
33
+
34
+ <p>
35
+ Click on the Tauri, Vite, and Svelte logos to learn more.
36
+ </p>
37
+
38
+ <div class="row">
39
+ <Greet/>
40
+ </div>
41
+
42
+ <div>
43
+ <button on:click="{_ping}">Ping</button>
44
+ <div>{@html response}</div>
45
+ </div>
46
47
</main>
48
49
<style>
47
- .logo.vite:hover {
48
- filter: drop-shadow(0 0 2em #747bff);
49
- }
50
+ .logo.vite:hover {
51
+ filter: drop-shadow(0 0 2em #747bff);
52
+ }
53
51
- .logo.svelte:hover {
52
- filter: drop-shadow(0 0 2em #ff3e00);
53
- }
54
+ .logo.svelte:hover {
55
+ filter: drop-shadow(0 0 2em #ff3e00);
56
+ }
57
</style>
guest-js/ads/banner.ts
new
+37
@@ -0,0 +1,37 @@
1
+import {MobileAd, MobileAdOptions} from "./common";
2
+
3
+export class BannerAd extends MobileAd<BannerAdOptions> {
4
+ static cls = 'BannerAd';
5
+ #loaded = false;
6
+
7
+ constructor(opts: BannerAdOptions) {
8
+ super({
9
+ position: 'bottom',
10
+ ...opts,
11
+ })
12
+ }
13
+
14
+ isLoaded() {
15
+ return super.isLoaded();
16
+ }
17
+
18
+ async load() {
19
+ await super.load();
20
+ this.#loaded = true;
21
+ }
22
+
23
+ async show() {
24
+ if (!this.#loaded) await this.load();
25
+ await super.show();
26
+ }
27
+
28
+ hide() {
29
+ return super.hide();
30
+ }
31
+}
32
+
33
+export type BannerPosition = 'top' | 'bottom';
34
+
35
+export interface BannerAdOptions extends MobileAdOptions {
36
+ position?: BannerPosition;
37
+}
guest-js/ads/common.ts
new
+75
@@ -0,0 +1,75 @@
1
+import {invoke} from '@tauri-apps/api/core'
2
+
3
+export class MobileAd<T extends MobileAdOptions = MobileAdOptions> {
4
+ private static allAdds: { [s: number]: MobileAd } = {};
5
+ private static idCounter = 0;
6
+
7
+ public readonly id: number;
8
+
9
+ protected readonly opts: T;
10
+
11
+ #created = false;
12
+ #init: Promise<void> | null = null;
13
+
14
+ constructor(opts: T) {
15
+ this.opts = opts;
16
+
17
+ this.id = MobileAd.nextId();
18
+ MobileAd.allAdds[this.id] = this;
19
+ }
20
+
21
+ private static nextId() {
22
+ return MobileAd.idCounter++;
23
+ }
24
+
25
+ public get adUnitId() {
26
+ return this.opts.adUnitId;
27
+ }
28
+
29
+ protected async isLoaded() {
30
+ await this.init();
31
+ return await invoke('plugin:admob|adIsLoaded', {
32
+ id: this.id
33
+ } as unknown as Record<string, unknown>)
34
+ }
35
+
36
+ protected async load() {
37
+ await this.init();
38
+ await invoke('plugin:admob|adLoad', {
39
+ ...this.opts, id: this.id
40
+ } as unknown as Record<string, unknown>)
41
+ }
42
+
43
+ protected async show() {
44
+ await this.init();
45
+ await invoke('plugin:admob|adShow', {
46
+ id: this.id
47
+ })
48
+ }
49
+
50
+ protected async hide() {
51
+ await this.init();
52
+ await invoke('plugin:admob|adHide', {
53
+ id: this.id
54
+ })
55
+ }
56
+
57
+ protected async init() {
58
+ if (this.#created) return;
59
+
60
+ if (this.#init === null) {
61
+ const cls = (this.constructor as unknown as { cls?: string }).cls ?? this.constructor.name;
62
+
63
+ await invoke('plugin:admob|adCreate', {
64
+ ...this.opts, id: this.id, cls
65
+ } as unknown as Record<string, unknown>);
66
+ }
67
+
68
+ await this.#init;
69
+ this.#created = true;
70
+ }
71
+}
72
+
73
+export interface MobileAdOptions {
74
+ adUnitId: string;
75
+}
guest-js/ads/interstitial.ts
new
+33
@@ -0,0 +1,33 @@
1
+import {MobileAd} from "./common";
2
+
3
+export class InterstitialAd extends MobileAd {
4
+ static cls = 'InterstitialAd'
5
+
6
+ isLoaded() {
7
+ return super.isLoaded()
8
+ }
9
+
10
+ async load() {
11
+ return super.load()
12
+ }
13
+
14
+ async show() {
15
+ return super.show()
16
+ }
17
+}
18
+
19
+export class RewardedInterstitialAd extends MobileAd {
20
+ static cls = 'RewardedInterstitialAd'
21
+
22
+ isLoaded() {
23
+ return super.isLoaded()
24
+ }
25
+
26
+ async load() {
27
+ return super.load()
28
+ }
29
+
30
+ async show() {
31
+ return super.show()
32
+ }
33
+}
guest-js/ads/rewarded.ts
new
+17
@@ -0,0 +1,17 @@
1
+import {MobileAd} from "./common";
2
+
3
+export class RewardedAd extends MobileAd {
4
+ static cls = 'RewardedAd'
5
+
6
+ isLoaded() {
7
+ return super.isLoaded()
8
+ }
9
+
10
+ async load() {
11
+ return super.load()
12
+ }
13
+
14
+ async show() {
15
+ return super.show()
16
+ }
17
+}
guest-js/index.ts
+4
-9
@@ -1,9 +1,4 @@
1
-import { invoke } from '@tauri-apps/api/core'
2
-
3
-export async function ping(value: string): Promise<string | null> {
4
- return await invoke<{value?: string}>('plugin:admob|ping', {
5
- payload: {
6
- value,
7
- },
8
- }).then((r) => (r.value ? r.value : null));
9
-}
1
+export * from './ads/common';
2
+export * from './ads/banner';
3
+export * from './ads/interstitial';
4
+export * from './ads/rewarded';
package.json
+4
-4
@@ -23,13 +23,13 @@
23
"tauri": "tauri"
24
},
25
"dependencies": {
26
- "@tauri-apps/api": ">=2.0.0-beta.6"
26
+ "@tauri-apps/api": "^2.0.0-beta.15"
27
},
28
"devDependencies": {
29
"@tauri-apps/cli": "next",
30
"@rollup/plugin-typescript": "^11.1.6",
31
- "rollup": "^4.9.6",
32
- "typescript": "^5.3.3",
33
- "tslib": "^2.6.2"
31
+ "rollup": "^4.18.1",
32
+ "typescript": "^5.5.3",
33
+ "tslib": "^2.6.3"
34
}
35
}
permissions/autogenerated/commands/adCreate.toml
new
+13
@@ -0,0 +1,13 @@
1
+# Automatically generated - DO NOT EDIT!
2
+
3
+"$schema" = "../../schemas/schema.json"
4
+
5
+[[permission]]
6
+identifier = "allow-adCreate"
7
+description = "Enables the adCreate command without any pre-configured scope."
8
+commands.allow = ["adCreate"]
9
+
10
+[[permission]]
11
+identifier = "deny-adCreate"
12
+description = "Denies the adCreate command without any pre-configured scope."
13
+commands.deny = ["adCreate"]
permissions/autogenerated/commands/adHide.toml
new
+13
@@ -0,0 +1,13 @@
1
+# Automatically generated - DO NOT EDIT!
2
+
3
+"$schema" = "../../schemas/schema.json"
4
+
5
+[[permission]]
6
+identifier = "allow-adHide"
7
+description = "Enables the adHide command without any pre-configured scope."
8
+commands.allow = ["adHide"]
9
+
10
+[[permission]]
11
+identifier = "deny-adHide"
12
+description = "Denies the adHide command without any pre-configured scope."
13
+commands.deny = ["adHide"]
permissions/autogenerated/commands/adIsLoaded.toml
new
+13
@@ -0,0 +1,13 @@
1
+# Automatically generated - DO NOT EDIT!
2
+
3
+"$schema" = "../../schemas/schema.json"
4
+
5
+[[permission]]
6
+identifier = "allow-adIsLoaded"
7
+description = "Enables the adIsLoaded command without any pre-configured scope."
8
+commands.allow = ["adIsLoaded"]
9
+
10
+[[permission]]
11
+identifier = "deny-adIsLoaded"
12
+description = "Denies the adIsLoaded command without any pre-configured scope."
13
+commands.deny = ["adIsLoaded"]
permissions/autogenerated/commands/adLoad.toml
new
+13
@@ -0,0 +1,13 @@
1
+# Automatically generated - DO NOT EDIT!
2
+
3
+"$schema" = "../../schemas/schema.json"
4
+
5
+[[permission]]
6
+identifier = "allow-adLoad"
7
+description = "Enables the adLoad command without any pre-configured scope."
8
+commands.allow = ["adLoad"]
9
+
10
+[[permission]]
11
+identifier = "deny-adLoad"
12
+description = "Denies the adLoad command without any pre-configured scope."
13
+commands.deny = ["adLoad"]
permissions/autogenerated/commands/adShow.toml
new
+13
@@ -0,0 +1,13 @@
1
+# Automatically generated - DO NOT EDIT!
2
+
3
+"$schema" = "../../schemas/schema.json"
4
+
5
+[[permission]]
6
+identifier = "allow-adShow"
7
+description = "Enables the adShow command without any pre-configured scope."
8
+commands.allow = ["adShow"]
9
+
10
+[[permission]]
11
+identifier = "deny-adShow"
12
+description = "Denies the adShow command without any pre-configured scope."
13
+commands.deny = ["adShow"]
permissions/autogenerated/commands/configRequest.toml
new
+13
@@ -0,0 +1,13 @@
1
+# Automatically generated - DO NOT EDIT!
2
+
3
+"$schema" = "../../schemas/schema.json"
4
+
5
+[[permission]]
6
+identifier = "allow-configRequest"
7
+description = "Enables the configRequest command without any pre-configured scope."
8
+commands.allow = ["configRequest"]
9
+
10
+[[permission]]
11
+identifier = "deny-configRequest"
12
+description = "Denies the configRequest command without any pre-configured scope."
13
+commands.deny = ["configRequest"]
permissions/autogenerated/commands/configure.toml
new
+13
@@ -0,0 +1,13 @@
1
+# Automatically generated - DO NOT EDIT!
2
+
3
+"$schema" = "../../schemas/schema.json"
4
+
5
+[[permission]]
6
+identifier = "allow-configure"
7
+description = "Enables the configure command without any pre-configured scope."
8
+commands.allow = ["configure"]
9
+
10
+[[permission]]
11
+identifier = "deny-configure"
12
+description = "Denies the configure command without any pre-configured scope."
13
+commands.deny = ["configure"]
permissions/autogenerated/commands/ping.toml
deleted
-13
@@ -1,13 +0,0 @@
1
-# Automatically generated - DO NOT EDIT!
2
-
3
-"$schema" = "../../schemas/schema.json"
4
-
5
-[[permission]]
6
-identifier = "allow-ping"
7
-description = "Enables the ping command without any pre-configured scope."
8
-commands.allow = ["ping"]
9
-
10
-[[permission]]
11
-identifier = "deny-ping"
12
-description = "Denies the ping command without any pre-configured scope."
13
-commands.deny = ["ping"]
permissions/autogenerated/commands/requestTrackingAuthorization.toml
new
+13
@@ -0,0 +1,13 @@
1
+# Automatically generated - DO NOT EDIT!
2
+
3
+"$schema" = "../../schemas/schema.json"
4
+
5
+[[permission]]
6
+identifier = "allow-requestTrackingAuthorization"
7
+description = "Enables the requestTrackingAuthorization command without any pre-configured scope."
8
+commands.allow = ["requestTrackingAuthorization"]
9
+
10
+[[permission]]
11
+identifier = "deny-requestTrackingAuthorization"
12
+description = "Denies the requestTrackingAuthorization command without any pre-configured scope."
13
+commands.deny = ["requestTrackingAuthorization"]
permissions/autogenerated/commands/trackingAuthorizationStatus.toml
new
+13
@@ -0,0 +1,13 @@
1
+# Automatically generated - DO NOT EDIT!
2
+
3
+"$schema" = "../../schemas/schema.json"
4
+
5
+[[permission]]
6
+identifier = "allow-trackingAuthorizationStatus"
7
+description = "Enables the trackingAuthorizationStatus command without any pre-configured scope."
8
+commands.allow = ["trackingAuthorizationStatus"]
9
+
10
+[[permission]]
11
+identifier = "deny-trackingAuthorizationStatus"
12
+description = "Denies the trackingAuthorizationStatus command without any pre-configured scope."
13
+commands.deny = ["trackingAuthorizationStatus"]
permissions/autogenerated/reference.md
+221
-5
@@ -2,7 +2,15 @@
2
3
Default permissions for the plugin
4
5
-- `allow-ping`
5
+- `allow-adCreate`
6
+- `allow-adHide`
7
+- `allow-adIsLoaded`
8
+- `allow-adLoad`
9
+- `allow-adShow`
10
+- `allow-configRequest`
11
+- `allow-configure`
12
+- `allow-requestTrackingAuthorization`
13
+- `allow-trackingAuthorizationStatus`
14
15
### Permission Table
16
@@ -16,12 +24,12 @@ Default permissions for the plugin
24
<tr>
25
<td>
26
19
-`admob:allow-ping`
27
+`admob:allow-adCreate`
28
29
</td>
30
<td>
31
24
-Enables the ping command without any pre-configured scope.
32
+Enables the adCreate command without any pre-configured scope.
33
34
</td>
35
</tr>
@@ -29,12 +37,220 @@ Enables the ping command without any pre-configured scope.
37
<tr>
38
<td>
39
32
-`admob:deny-ping`
40
+`admob:deny-adCreate`
41
42
</td>
43
<td>
44
37
-Denies the ping command without any pre-configured scope.
45
+Denies the adCreate command without any pre-configured scope.
46
+
47
+</td>
48
+</tr>
49
+
50
+<tr>
51
+<td>
52
+
53
+`admob:allow-adHide`
54
+
55
+</td>
56
+<td>
57
+
58
+Enables the adHide command without any pre-configured scope.
59
+
60
+</td>
61
+</tr>
62
+
63
+<tr>
64
+<td>
65
+
66
+`admob:deny-adHide`
67
+
68
+</td>
69
+<td>
70
+
71
+Denies the adHide command without any pre-configured scope.
72
+
73
+</td>
74
+</tr>
75
+
76
+<tr>
77
+<td>
78
+
79
+`admob:allow-adIsLoaded`
80
+
81
+</td>
82
+<td>
83
+
84
+Enables the adIsLoaded command without any pre-configured scope.
85
+
86
+</td>
87
+</tr>
88
+
89
+<tr>
90
+<td>
91
+
92
+`admob:deny-adIsLoaded`
93
+
94
+</td>
95
+<td>
96
+
97
+Denies the adIsLoaded command without any pre-configured scope.
98
+
99
+</td>
100
+</tr>
101
+
102
+<tr>
103
+<td>
104
+
105
+`admob:allow-adLoad`
106
+
107
+</td>
108
+<td>
109
+
110
+Enables the adLoad command without any pre-configured scope.
111
+
112
+</td>
113
+</tr>
114
+
115
+<tr>
116
+<td>
117
+
118
+`admob:deny-adLoad`
119
+
120
+</td>
121
+<td>
122
+
123
+Denies the adLoad command without any pre-configured scope.
124
+
125
+</td>
126
+</tr>
127
+
128
+<tr>
129
+<td>
130
+
131
+`admob:allow-adShow`
132
+
133
+</td>
134
+<td>
135
+
136
+Enables the adShow command without any pre-configured scope.
137
+
138
+</td>
139
+</tr>
140
+
141
+<tr>
142
+<td>
143
+
144
+`admob:deny-adShow`
145
+
146
+</td>
147
+<td>
148
+
149
+Denies the adShow command without any pre-configured scope.
150
+
151
+</td>
152
+</tr>
153
+
154
+<tr>
155
+<td>
156
+
157
+`admob:allow-configRequest`
158
+
159
+</td>
160
+<td>
161
+
162
+Enables the configRequest command without any pre-configured scope.
163
+
164
+</td>
165
+</tr>
166
+
167
+<tr>
168
+<td>
169
+
170
+`admob:deny-configRequest`
171
+
172
+</td>
173
+<td>
174
+
175
+Denies the configRequest command without any pre-configured scope.
176
+
177
+</td>
178
+</tr>
179
+
180
+<tr>
181
+<td>
182
+
183
+`admob:allow-configure`
184
+
185
+</td>
186
+<td>
187
+
188
+Enables the configure command without any pre-configured scope.
189
+
190
+</td>
191
+</tr>
192
+
193
+<tr>
194
+<td>
195
+
196
+`admob:deny-configure`
197
+
198
+</td>
199
+<td>
200
+
201
+Denies the configure command without any pre-configured scope.
202
+
203
+</td>
204
+</tr>
205
+
206
+<tr>
207
+<td>
208
+
209
+`admob:allow-requestTrackingAuthorization`
210
+
211
+</td>
212
+<td>
213
+
214
+Enables the requestTrackingAuthorization command without any pre-configured scope.
215
+
216
+</td>
217
+</tr>
218
+
219
+<tr>
220
+<td>
221
+
222
+`admob:deny-requestTrackingAuthorization`
223
+
224
+</td>
225
+<td>
226
+
227
+Denies the requestTrackingAuthorization command without any pre-configured scope.
228
+
229
+</td>
230
+</tr>
231
+
232
+<tr>
233
+<td>
234
+
235
+`admob:allow-trackingAuthorizationStatus`
236
+
237
+</td>
238
+<td>
239
+
240
+Enables the trackingAuthorizationStatus command without any pre-configured scope.
241
+
242
+</td>
243
+</tr>
244
+
245
+<tr>
246
+<td>
247
+
248
+`admob:deny-trackingAuthorizationStatus`
249
+
250
+</td>
251
+<td>
252
+
253
+Denies the trackingAuthorizationStatus command without any pre-configured scope.
254
255
</td>
256
</tr>
permissions/default.toml
+1
-1
@@ -1,3 +1,3 @@
1
[default]
2
description = "Default permissions for the plugin"
3
-permissions = ["allow-ping"]
3
+permissions = ["allow-adCreate", "allow-adHide", "allow-adIsLoaded", "allow-adLoad", "allow-adShow", "allow-configRequest", "allow-configure", "allow-requestTrackingAuthorization", "allow-trackingAuthorizationStatus"]
permissions/schemas/schema.json
+116
-4
@@ -295,17 +295,129 @@
295
"type": "string",
296
"oneOf": [
297
{
298
- "description": "allow-ping -> Enables the ping command without any pre-configured scope.",
298
+ "description": "allow-adCreate -> Enables the adCreate command without any pre-configured scope.",
299
"type": "string",
300
"enum": [
301
- "allow-ping"
301
+ "allow-adCreate"
302
]
303
},
304
{
305
- "description": "deny-ping -> Denies the ping command without any pre-configured scope.",
305
+ "description": "deny-adCreate -> Denies the adCreate command without any pre-configured scope.",
306
"type": "string",
307
"enum": [
308
- "deny-ping"
308
+ "deny-adCreate"
309
+ ]
310
+ },
311
+ {
312
+ "description": "allow-adHide -> Enables the adHide command without any pre-configured scope.",
313
+ "type": "string",
314
+ "enum": [
315
+ "allow-adHide"
316
+ ]
317
+ },
318
+ {
319
+ "description": "deny-adHide -> Denies the adHide command without any pre-configured scope.",
320
+ "type": "string",
321
+ "enum": [
322
+ "deny-adHide"
323
+ ]
324
+ },
325
+ {
326
+ "description": "allow-adIsLoaded -> Enables the adIsLoaded command without any pre-configured scope.",
327
+ "type": "string",
328
+ "enum": [
329
+ "allow-adIsLoaded"
330
+ ]
331
+ },
332
+ {
333
+ "description": "deny-adIsLoaded -> Denies the adIsLoaded command without any pre-configured scope.",
334
+ "type": "string",
335
+ "enum": [
336
+ "deny-adIsLoaded"
337
+ ]
338
+ },
339
+ {
340
+ "description": "allow-adLoad -> Enables the adLoad command without any pre-configured scope.",
341
+ "type": "string",
342
+ "enum": [
343
+ "allow-adLoad"
344
+ ]
345
+ },
346
+ {
347
+ "description": "deny-adLoad -> Denies the adLoad command without any pre-configured scope.",
348
+ "type": "string",
349
+ "enum": [
350
+ "deny-adLoad"
351
+ ]
352
+ },
353
+ {
354
+ "description": "allow-adShow -> Enables the adShow command without any pre-configured scope.",
355
+ "type": "string",
356
+ "enum": [
357
+ "allow-adShow"
358
+ ]
359
+ },
360
+ {
361
+ "description": "deny-adShow -> Denies the adShow command without any pre-configured scope.",
362
+ "type": "string",
363
+ "enum": [
364
+ "deny-adShow"
365
+ ]
366
+ },
367
+ {
368
+ "description": "allow-configRequest -> Enables the configRequest command without any pre-configured scope.",
369
+ "type": "string",
370
+ "enum": [
371
+ "allow-configRequest"
372
+ ]
373
+ },
374
+ {
375
+ "description": "deny-configRequest -> Denies the configRequest command without any pre-configured scope.",
376
+ "type": "string",
377
+ "enum": [
378
+ "deny-configRequest"
379
+ ]
380
+ },
381
+ {
382
+ "description": "allow-configure -> Enables the configure command without any pre-configured scope.",
383
+ "type": "string",
384
+ "enum": [
385
+ "allow-configure"
386
+ ]
387
+ },
388
+ {
389
+ "description": "deny-configure -> Denies the configure command without any pre-configured scope.",
390
+ "type": "string",
391
+ "enum": [
392
+ "deny-configure"
393
+ ]
394
+ },
395
+ {
396
+ "description": "allow-requestTrackingAuthorization -> Enables the requestTrackingAuthorization command without any pre-configured scope.",
397
+ "type": "string",
398
+ "enum": [
399
+ "allow-requestTrackingAuthorization"
400
+ ]
401
+ },
402
+ {
403
+ "description": "deny-requestTrackingAuthorization -> Denies the requestTrackingAuthorization command without any pre-configured scope.",
404
+ "type": "string",
405
+ "enum": [
406
+ "deny-requestTrackingAuthorization"
407
+ ]
408
+ },
409
+ {
410
+ "description": "allow-trackingAuthorizationStatus -> Enables the trackingAuthorizationStatus command without any pre-configured scope.",
411
+ "type": "string",
412
+ "enum": [
413
+ "allow-trackingAuthorizationStatus"
414
+ ]
415
+ },
416
+ {
417
+ "description": "deny-trackingAuthorizationStatus -> Denies the trackingAuthorizationStatus command without any pre-configured scope.",
418
+ "type": "string",
419
+ "enum": [
420
+ "deny-trackingAuthorizationStatus"
421
]
422
},
423
{
src/commands.rs
deleted
-13
@@ -1,13 +0,0 @@
1
-use tauri::{AppHandle, command, Runtime};
2
-
3
-use crate::models::*;
4
-use crate::Result;
5
-use crate::AdmobExt;
6
-
7
-#[command]
8
-pub(crate) async fn ping<R: Runtime>(
9
- app: AppHandle<R>,
10
- payload: PingRequest,
11
-) -> Result<PingResponse> {
12
- app.admob().ping(payload)
13
-}
src/error.rs
-3
@@ -4,9 +4,6 @@ pub type Result<T> = std::result::Result<T, Error>;
4
5
#[derive(Debug, thiserror::Error)]
6
pub enum Error {
7
- #[error(transparent)]
8
- Io(#[from] std::io::Error),
9
- #[cfg(mobile)]
7
#[error(transparent)]
8
PluginInvoke(#[from] tauri::plugin::mobile::PluginInvokeError),
9
}
src/lib.rs
-5
@@ -5,13 +5,9 @@ use tauri::{
5
Manager, Runtime,
6
};
7
8
-pub use models::*;
9
-
8
mod mobile;
9
12
-mod commands;
10
mod error;
14
-mod models;
11
12
pub use error::{Error, Result};
13
@@ -31,7 +27,6 @@ impl<R: Runtime, T: Manager<R>> crate::AdmobExt<R> for T {
27
/// Initializes the plugin.
28
pub fn init<R: Runtime>() -> TauriPlugin<R> {
29
Builder::new("admob")
34
- .invoke_handler(tauri::generate_handler![commands::ping])
30
.setup(|app, api| {
31
let admob = mobile::init(app, api)?;
32
app.manage(admob);
src/mobile.rs
+1
-10
@@ -4,8 +4,6 @@ use tauri::{
4
AppHandle, Runtime,
5
};
6
7
-use crate::models::*;
8
-
7
#[cfg(target_os = "android")]
8
const PLUGIN_IDENTIFIER: &str = "com.plugin.admob";
9
@@ -27,11 +25,4 @@ pub fn init<R: Runtime, C: DeserializeOwned>(
25
/// Access to the admob APIs.
26
pub struct Admob<R: Runtime>(PluginHandle<R>);
27
30
-impl<R: Runtime> Admob<R> {
31
- pub fn ping(&self, payload: PingRequest) -> crate::Result<PingResponse> {
32
- self
33
- .0
34
- .run_mobile_plugin("ping", payload)
35
- .map_err(Into::into)
36
- }
37
-}
28
+impl<R: Runtime> Admob<R> {}
src/models.rs
deleted
-13
@@ -1,13 +0,0 @@
1
-use serde::{Deserialize, Serialize};
2
-
3
-#[derive(Debug, Deserialize, Serialize)]
4
-#[serde(rename_all = "camelCase")]
5
-pub struct PingRequest {
6
- pub value: Option<String>,
7
-}
8
-
9
-#[derive(Debug, Clone, Default, Deserialize, Serialize)]
10
-#[serde(rename_all = "camelCase")]
11
-pub struct PingResponse {
12
- pub value: Option<String>,
13
-}