Initial commit
DreamingCodes committed
Jul 18, 2024 at 17:17 UTC
b3ae89ebfcef85d0c1c11586f29477c8f68f8629
108 files changed
+7109
.github/workflows/audit.yml
new
+32
@@ -0,0 +1,32 @@
1
+name: Audit
2
+
3
+on:
4
+ schedule:
5
+ - cron: '0 0 * * *'
6
+ push:
7
+ branches:
8
+ - main
9
+ paths:
10
+ - ".github/workflows/audit.yml"
11
+ - "**/Cargo.lock"
12
+ - "**/Cargo.toml"
13
+ pull_request:
14
+ branches:
15
+ - main
16
+ paths:
17
+ - ".github/workflows/audit.yml"
18
+ - "**/Cargo.lock"
19
+ - "**/Cargo.toml"
20
+
21
+concurrency:
22
+ group: ${{ github.workflow }}-${{ github.ref }}
23
+ cancel-in-progress: true
24
+
25
+jobs:
26
+ audit:
27
+ runs-on: ubuntu-latest
28
+ steps:
29
+ - uses: actions/checkout@v4
30
+ - uses: rustsec/audit-check@v1
31
+ with:
32
+ token: ${{ secrets.GITHUB_TOKEN }}
.github/workflows/clippy.yml
new
+53
@@ -0,0 +1,53 @@
1
+name: Check
2
+
3
+on:
4
+ push:
5
+ branches:
6
+ - main
7
+ paths:
8
+ - ".github/workflows/check.yml"
9
+ - "**/*.rs"
10
+ - "**/Cargo.toml"
11
+ pull_request:
12
+ branches:
13
+ - main
14
+ paths:
15
+ - ".github/workflows/check.yml"
16
+ - "**/*.rs"
17
+ - "**/Cargo.toml"
18
+
19
+concurrency:
20
+ group: ${{ github.workflow }}-${{ github.ref }}
21
+ cancel-in-progress: true
22
+
23
+jobs:
24
+ fmt:
25
+ runs-on: ubuntu-latest
26
+
27
+ steps:
28
+ - uses: actions/checkout@v4
29
+ - uses: dtolnay/rust-toolchain@stable
30
+ with:
31
+ components: rustfmt
32
+ - run: cargo fmt --all -- --check
33
+
34
+ clippy:
35
+ strategy:
36
+ fail-fast: false
37
+ matrix:
38
+ platform: [ubuntu-latest, macos-latest, windows-latest]
39
+
40
+ runs-on: ${{ matrix.platform }}
41
+
42
+ steps:
43
+ - uses: actions/checkout@v4
44
+ - uses: dtolnay/rust-toolchain@stable
45
+ with:
46
+ components: clippy
47
+ - name: install webkit2gtk
48
+ if: matrix.platform == 'ubuntu-latest'
49
+ run: |
50
+ sudo apt-get update
51
+ sudo apt-get install -y webkit2gtk-4.1
52
+ - uses: Swatinem/rust-cache@v2
53
+ - run: cargo clippy --all-targets --all-features -- -D warnings
.github/workflows/test.yml
new
+33
@@ -0,0 +1,33 @@
1
+name: Test
2
+
3
+on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ branches:
9
+ - main
10
+
11
+concurrency:
12
+ group: ${{ github.workflow }}-${{ github.ref }}
13
+ cancel-in-progress: true
14
+
15
+jobs:
16
+ test:
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ platform: [ubuntu-latest, macos-latest, windows-latest]
21
+
22
+ runs-on: ${{ matrix.platform }}
23
+
24
+ steps:
25
+ - uses: actions/checkout@v4
26
+ - uses: dtolnay/rust-toolchain@stable
27
+ - name: install webkit2gtk
28
+ if: matrix.platform == 'ubuntu-latest'
29
+ run: |
30
+ sudo apt-get update
31
+ sudo apt-get install -y webkit2gtk-4.1
32
+ - uses: Swatinem/rust-cache@v2
33
+ - run: cargo test --all-targets --all-features -- -D warnings
.gitignore
new
+20
@@ -0,0 +1,20 @@
1
+/.vs
2
+.DS_Store
3
+.Thumbs.db
4
+*.sublime*
5
+.idea/
6
+debug.log
7
+package-lock.json
8
+.vscode/settings.json
9
+yarn.lock
10
+
11
+/.tauri
12
+/target
13
+Cargo.lock
14
+node_modules/
15
+
16
+dist-js
17
+dist
18
+
19
+# Project exclude paths
20
+/android/.gradle/
\ No newline at end of file
Cargo.toml
new
+17
@@ -0,0 +1,17 @@
1
+ [package]
2
+name = "tauri-plugin-admob"
3
+version = "0.0.0"
4
+authors = [ "You" ]
5
+description = ""
6
+edition = "2021"
7
+rust-version = "1.70"
8
+exclude = ["/examples", "/webview-dist", "/webview-src", "/node_modules"]
9
+links = "tauri-plugin-admob"
10
+
11
+[dependencies]
12
+tauri = { version = "2.0.0-beta.24" }
13
+serde = "1.0"
14
+thiserror = "1.0"
15
+
16
+[build-dependencies]
17
+tauri-plugin = { version = "2.0.0-beta.19", features = ["build"] }
README.md
new
+25
@@ -0,0 +1,25 @@
1
+# Tauri Plugin admob
2
+
3
+### 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`
5
+```kotlin
6
+// src-tauri/gen/android/app/build.gradle.kts
7
+kotlinOptions {
8
+ // ...
9
+ freeCompilerArgs += "-Xskip-metadata-version-check"
10
+}
11
+```
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.
14
+```xml
15
+<!-- ./src-tauri/gen/android/app/src/main/AndroidManifest.xml -->
16
+<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>
23
+</manifest>
24
+```
25
+3. Install this plugin as any other Tauri plugin
android/.gitignore
new
+2
@@ -0,0 +1,2 @@
1
+/build
2
+/.tauri
android/build.gradle.kts
new
+47
@@ -0,0 +1,47 @@
1
+plugins {
2
+ id("com.android.library")
3
+ id("org.jetbrains.kotlin.android")
4
+}
5
+
6
+android {
7
+ namespace = "com.plugin.admob"
8
+ compileSdk = 34
9
+
10
+ defaultConfig {
11
+ minSdk = 21
12
+ targetSdk = 34
13
+
14
+ testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
15
+ consumerProguardFiles("consumer-rules.pro")
16
+ }
17
+
18
+ buildTypes {
19
+ release {
20
+ isMinifyEnabled = false
21
+ proguardFiles(
22
+ getDefaultProguardFile("proguard-android-optimize.txt"),
23
+ "proguard-rules.pro"
24
+ )
25
+ }
26
+ }
27
+ compileOptions {
28
+ sourceCompatibility = JavaVersion.VERSION_1_8
29
+ targetCompatibility = JavaVersion.VERSION_1_8
30
+ }
31
+ kotlinOptions {
32
+ jvmTarget = "1.8"
33
+ freeCompilerArgs += "-Xskip-metadata-version-check"
34
+ }
35
+}
36
+
37
+dependencies {
38
+ // admob plugin
39
+ implementation("com.google.android.gms:play-services-ads:23.2.0")
40
+ implementation("androidx.core:core-ktx:1.9.0")
41
+ implementation("androidx.appcompat:appcompat:1.6.0")
42
+ implementation("com.google.android.material:material:1.7.0")
43
+ testImplementation("junit:junit:4.13.2")
44
+ androidTestImplementation("androidx.test.ext:junit:1.1.5")
45
+ androidTestImplementation("androidx.test.espresso:espresso-core:3.5.1")
46
+ implementation(project(":tauri-android"))
47
+}
android/gradle/wrapper/gradle-wrapper.jar
Binary files /dev/null and b/android/gradle/wrapper/gradle-wrapper.jar differ
android/gradle/wrapper/gradle-wrapper.properties
new
+7
@@ -0,0 +1,7 @@
1
+distributionBase=GRADLE_USER_HOME
2
+distributionPath=wrapper/dists
3
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.5-bin.zip
4
+networkTimeout=10000
5
+validateDistributionUrl=true
6
+zipStoreBase=GRADLE_USER_HOME
7
+zipStorePath=wrapper/dists
android/gradlew
new
+249
@@ -0,0 +1,249 @@
1
+#!/bin/sh
2
+
3
+#
4
+# Copyright © 2015-2021 the original authors.
5
+#
6
+# Licensed under the Apache License, Version 2.0 (the "License");
7
+# you may not use this file except in compliance with the License.
8
+# You may obtain a copy of the License at
9
+#
10
+# https://www.apache.org/licenses/LICENSE-2.0
11
+#
12
+# Unless required by applicable law or agreed to in writing, software
13
+# distributed under the License is distributed on an "AS IS" BASIS,
14
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+# See the License for the specific language governing permissions and
16
+# limitations under the License.
17
+#
18
+
19
+##############################################################################
20
+#
21
+# Gradle start up script for POSIX generated by Gradle.
22
+#
23
+# Important for running:
24
+#
25
+# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is
26
+# noncompliant, but you have some other compliant shell such as ksh or
27
+# bash, then to run this script, type that shell name before the whole
28
+# command line, like:
29
+#
30
+# ksh Gradle
31
+#
32
+# Busybox and similar reduced shells will NOT work, because this script
33
+# requires all of these POSIX shell features:
34
+# * functions;
35
+# * expansions «$var», «${var}», «${var:-default}», «${var+SET}»,
36
+# «${var#prefix}», «${var%suffix}», and «$( cmd )»;
37
+# * compound commands having a testable exit status, especially «case»;
38
+# * various built-in commands including «command», «set», and «ulimit».
39
+#
40
+# Important for patching:
41
+#
42
+# (2) This script targets any POSIX shell, so it avoids extensions provided
43
+# by Bash, Ksh, etc; in particular arrays are avoided.
44
+#
45
+# The "traditional" practice of packing multiple parameters into a
46
+# space-separated string is a well documented source of bugs and security
47
+# problems, so this is (mostly) avoided, by progressively accumulating
48
+# options in "$@", and eventually passing that to Java.
49
+#
50
+# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS,
51
+# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly;
52
+# see the in-line comments for details.
53
+#
54
+# There are tweaks for specific operating systems such as AIX, CygWin,
55
+# Darwin, MinGW, and NonStop.
56
+#
57
+# (3) This script is generated from the Groovy template
58
+# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
59
+# within the Gradle project.
60
+#
61
+# You can find Gradle at https://github.com/gradle/gradle/.
62
+#
63
+##############################################################################
64
+
65
+# Attempt to set APP_HOME
66
+
67
+# Resolve links: $0 may be a link
68
+app_path=$0
69
+
70
+# Need this for daisy-chained symlinks.
71
+while
72
+ APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path
73
+ [ -h "$app_path" ]
74
+do
75
+ ls=$( ls -ld "$app_path" )
76
+ link=${ls#*' -> '}
77
+ case $link in #(
78
+ /*) app_path=$link ;; #(
79
+ *) app_path=$APP_HOME$link ;;
80
+ esac
81
+done
82
+
83
+# This is normally unused
84
+# shellcheck disable=SC2034
85
+APP_BASE_NAME=${0##*/}
86
+# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036)
87
+APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit
88
+
89
+# Use the maximum available, or set MAX_FD != -1 to use that value.
90
+MAX_FD=maximum
91
+
92
+warn () {
93
+ echo "$*"
94
+} >&2
95
+
96
+die () {
97
+ echo
98
+ echo "$*"
99
+ echo
100
+ exit 1
101
+} >&2
102
+
103
+# OS specific support (must be 'true' or 'false').
104
+cygwin=false
105
+msys=false
106
+darwin=false
107
+nonstop=false
108
+case "$( uname )" in #(
109
+ CYGWIN* ) cygwin=true ;; #(
110
+ Darwin* ) darwin=true ;; #(
111
+ MSYS* | MINGW* ) msys=true ;; #(
112
+ NONSTOP* ) nonstop=true ;;
113
+esac
114
+
115
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
116
+
117
+
118
+# Determine the Java command to use to start the JVM.
119
+if [ -n "$JAVA_HOME" ] ; then
120
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
121
+ # IBM's JDK on AIX uses strange locations for the executables
122
+ JAVACMD=$JAVA_HOME/jre/sh/java
123
+ else
124
+ JAVACMD=$JAVA_HOME/bin/java
125
+ fi
126
+ if [ ! -x "$JAVACMD" ] ; then
127
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
128
+
129
+Please set the JAVA_HOME variable in your environment to match the
130
+location of your Java installation."
131
+ fi
132
+else
133
+ JAVACMD=java
134
+ if ! command -v java >/dev/null 2>&1
135
+ then
136
+ die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
137
+
138
+Please set the JAVA_HOME variable in your environment to match the
139
+location of your Java installation."
140
+ fi
141
+fi
142
+
143
+# Increase the maximum file descriptors if we can.
144
+if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then
145
+ case $MAX_FD in #(
146
+ max*)
147
+ # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked.
148
+ # shellcheck disable=SC2039,SC3045
149
+ MAX_FD=$( ulimit -H -n ) ||
150
+ warn "Could not query maximum file descriptor limit"
151
+ esac
152
+ case $MAX_FD in #(
153
+ '' | soft) :;; #(
154
+ *)
155
+ # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked.
156
+ # shellcheck disable=SC2039,SC3045
157
+ ulimit -n "$MAX_FD" ||
158
+ warn "Could not set maximum file descriptor limit to $MAX_FD"
159
+ esac
160
+fi
161
+
162
+# Collect all arguments for the java command, stacking in reverse order:
163
+# * args from the command line
164
+# * the main class name
165
+# * -classpath
166
+# * -D...appname settings
167
+# * --module-path (only if needed)
168
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables.
169
+
170
+# For Cygwin or MSYS, switch paths to Windows format before running java
171
+if "$cygwin" || "$msys" ; then
172
+ APP_HOME=$( cygpath --path --mixed "$APP_HOME" )
173
+ CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" )
174
+
175
+ JAVACMD=$( cygpath --unix "$JAVACMD" )
176
+
177
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
178
+ for arg do
179
+ if
180
+ case $arg in #(
181
+ -*) false ;; # don't mess with options #(
182
+ /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath
183
+ [ -e "$t" ] ;; #(
184
+ *) false ;;
185
+ esac
186
+ then
187
+ arg=$( cygpath --path --ignore --mixed "$arg" )
188
+ fi
189
+ # Roll the args list around exactly as many times as the number of
190
+ # args, so each arg winds up back in the position where it started, but
191
+ # possibly modified.
192
+ #
193
+ # NB: a `for` loop captures its iteration list before it begins, so
194
+ # changing the positional parameters here affects neither the number of
195
+ # iterations, nor the values presented in `arg`.
196
+ shift # remove old arg
197
+ set -- "$@" "$arg" # push replacement arg
198
+ done
199
+fi
200
+
201
+
202
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
203
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
204
+
205
+# Collect all arguments for the java command:
206
+# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments,
207
+# and any embedded shellness will be escaped.
208
+# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be
209
+# treated as '${Hostname}' itself on the command line.
210
+
211
+set -- \
212
+ "-Dorg.gradle.appname=$APP_BASE_NAME" \
213
+ -classpath "$CLASSPATH" \
214
+ org.gradle.wrapper.GradleWrapperMain \
215
+ "$@"
216
+
217
+# Stop when "xargs" is not available.
218
+if ! command -v xargs >/dev/null 2>&1
219
+then
220
+ die "xargs is not available"
221
+fi
222
+
223
+# Use "xargs" to parse quoted args.
224
+#
225
+# With -n1 it outputs one arg per line, with the quotes and backslashes removed.
226
+#
227
+# In Bash we could simply go:
228
+#
229
+# readarray ARGS < <( xargs -n1 <<<"$var" ) &&
230
+# set -- "${ARGS[@]}" "$@"
231
+#
232
+# but POSIX shell has neither arrays nor command substitution, so instead we
233
+# post-process each arg (as a line of input to sed) to backslash-escape any
234
+# character that might be a shell metacharacter, then use eval to reverse
235
+# that process (while maintaining the separation between arguments), and wrap
236
+# the whole thing up as a single "set" statement.
237
+#
238
+# This will of course break if any of these variables contains a newline or
239
+# an unmatched quote.
240
+#
241
+
242
+eval "set -- $(
243
+ printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" |
244
+ xargs -n1 |
245
+ sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' |
246
+ tr '\n' ' '
247
+ )" '"$@"'
248
+
249
+exec "$JAVACMD" "$@"
android/gradlew.bat
new
+92
@@ -0,0 +1,92 @@
1
+@rem
2
+@rem Copyright 2015 the original author or authors.
3
+@rem
4
+@rem Licensed under the Apache License, Version 2.0 (the "License");
5
+@rem you may not use this file except in compliance with the License.
6
+@rem You may obtain a copy of the License at
7
+@rem
8
+@rem https://www.apache.org/licenses/LICENSE-2.0
9
+@rem
10
+@rem Unless required by applicable law or agreed to in writing, software
11
+@rem distributed under the License is distributed on an "AS IS" BASIS,
12
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+@rem See the License for the specific language governing permissions and
14
+@rem limitations under the License.
15
+@rem
16
+
17
+@if "%DEBUG%"=="" @echo off
18
+@rem ##########################################################################
19
+@rem
20
+@rem Gradle startup script for Windows
21
+@rem
22
+@rem ##########################################################################
23
+
24
+@rem Set local scope for the variables with windows NT shell
25
+if "%OS%"=="Windows_NT" setlocal
26
+
27
+set DIRNAME=%~dp0
28
+if "%DIRNAME%"=="" set DIRNAME=.
29
+@rem This is normally unused
30
+set APP_BASE_NAME=%~n0
31
+set APP_HOME=%DIRNAME%
32
+
33
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
34
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
35
+
36
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
37
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
38
+
39
+@rem Find java.exe
40
+if defined JAVA_HOME goto findJavaFromJavaHome
41
+
42
+set JAVA_EXE=java.exe
43
+%JAVA_EXE% -version >NUL 2>&1
44
+if %ERRORLEVEL% equ 0 goto execute
45
+
46
+echo.
47
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
48
+echo.
49
+echo Please set the JAVA_HOME variable in your environment to match the
50
+echo location of your Java installation.
51
+
52
+goto fail
53
+
54
+:findJavaFromJavaHome
55
+set JAVA_HOME=%JAVA_HOME:"=%
56
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
57
+
58
+if exist "%JAVA_EXE%" goto execute
59
+
60
+echo.
61
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
62
+echo.
63
+echo Please set the JAVA_HOME variable in your environment to match the
64
+echo location of your Java installation.
65
+
66
+goto fail
67
+
68
+:execute
69
+@rem Setup the command line
70
+
71
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
72
+
73
+
74
+@rem Execute Gradle
75
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
76
+
77
+:end
78
+@rem End local scope for the variables with windows NT shell
79
+if %ERRORLEVEL% equ 0 goto mainEnd
80
+
81
+:fail
82
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
83
+rem the _cmd.exe /c_ return code!
84
+set EXIT_CODE=%ERRORLEVEL%
85
+if %EXIT_CODE% equ 0 set EXIT_CODE=1
86
+if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE%
87
+exit /b %EXIT_CODE%
88
+
89
+:mainEnd
90
+if "%OS%"=="Windows_NT" endlocal
91
+
92
+:omega
android/proguard-rules.pro
new
+21
@@ -0,0 +1,21 @@
1
+# Add project specific ProGuard rules here.
2
+# You can control the set of applied configuration files using the
3
+# proguardFiles setting in build.gradle.
4
+#
5
+# For more details, see
6
+# http://developer.android.com/guide/developing/tools/proguard.html
7
+
8
+# If your project uses WebView with JS, uncomment the following
9
+# and specify the fully qualified class name to the JavaScript interface
10
+# class:
11
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12
+# public *;
13
+#}
14
+
15
+# Uncomment this to preserve the line number information for
16
+# debugging stack traces.
17
+#-keepattributes SourceFile,LineNumberTable
18
+
19
+# If you keep the line number information, uncomment this to
20
+# hide the original source file name.
21
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
android/settings.gradle
new
+31
@@ -0,0 +1,31 @@
1
+pluginManagement {
2
+ repositories {
3
+ mavenCentral()
4
+ gradlePluginPortal()
5
+ google()
6
+ }
7
+ resolutionStrategy {
8
+ eachPlugin {
9
+ switch (requested.id.id) {
10
+ case "com.android.library":
11
+ useVersion("8.0.2")
12
+ break
13
+ case "org.jetbrains.kotlin.android":
14
+ useVersion("1.8.20")
15
+ break
16
+ }
17
+ }
18
+ }
19
+}
20
+
21
+dependencyResolutionManagement {
22
+ repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
23
+ repositories {
24
+ mavenCentral()
25
+ google()
26
+
27
+ }
28
+}
29
+
30
+include ':tauri-android'
31
+project(':tauri-android').projectDir = new File('./.tauri/tauri-api')
android/src/androidTest/java/AdmobImplInstrumentedTest.kt
new
+24
@@ -0,0 +1,24 @@
1
+package com.plugin.admob
2
+
3
+import androidx.test.platform.app.InstrumentationRegistry
4
+import androidx.test.ext.junit.runners.AndroidJUnit4
5
+
6
+import org.junit.Test
7
+import org.junit.runner.RunWith
8
+
9
+import org.junit.Assert.*
10
+
11
+/**
12
+ * Instrumented test, which will execute on an Android device.
13
+ *
14
+ * See [testing documentation](http://d.android.com/tools/testing).
15
+ */
16
+@RunWith(AndroidJUnit4::class)
17
+class AdmobImplInstrumentedTest {
18
+ @Test
19
+ fun useAppContext() {
20
+ // Context of the app under test.
21
+ val appContext = InstrumentationRegistry.getInstrumentation().targetContext
22
+ assertEquals("com.plugin.admob", appContext.packageName)
23
+ }
24
+}
android/src/main/AndroidManifest.xml
new
+4
@@ -0,0 +1,4 @@
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.INTERNET"/>
4
+</manifest>
android/src/main/java/AdmobImpl.kt
new
+23
@@ -0,0 +1,23 @@
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
new
+34
@@ -0,0 +1,34 @@
1
+package com.plugin.admob
2
+
3
+import android.app.Activity
4
+import android.webkit.WebView
5
+import app.tauri.annotation.Command
6
+import app.tauri.annotation.InvokeArg
7
+import app.tauri.annotation.TauriPlugin
8
+import app.tauri.plugin.JSObject
9
+import app.tauri.plugin.Plugin
10
+import app.tauri.plugin.Invoke
11
+
12
+@InvokeArg
13
+class PingArgs {
14
+ var value: String? = null
15
+}
16
+
17
+@TauriPlugin
18
+class AdmobPlugin(private val activity: Activity): Plugin(activity) {
19
+ private val implementation = AdmobImpl(activity)
20
+
21
+ override fun load(webView: WebView) {
22
+ implementation.initialize()
23
+ super.load(webView)
24
+ }
25
+
26
+ @Command
27
+ fun ping(invoke: Invoke) {
28
+ val args = invoke.parseArgs(PingArgs::class.java)
29
+
30
+ val ret = JSObject()
31
+ ret.put("value", implementation.pong(args.value ?: "default value :("))
32
+ invoke.resolve(ret)
33
+ }
34
+}
android/src/test/java/AdmobImplUnitTest.kt
new
+17
@@ -0,0 +1,17 @@
1
+package com.plugin.admob
2
+
3
+import org.junit.Test
4
+
5
+import org.junit.Assert.*
6
+
7
+/**
8
+ * Example local unit test, which will execute on the development machine (host).
9
+ *
10
+ * See [testing documentation](http://d.android.com/tools/testing).
11
+ */
12
+class AdmobImplUnitTest {
13
+ @Test
14
+ fun addition_isCorrect() {
15
+ assertEquals(4, 2 + 2)
16
+ }
17
+}
build.rs
new
+8
@@ -0,0 +1,8 @@
1
+const COMMANDS: &[&str] = &["ping"];
2
+
3
+fn main() {
4
+ tauri_plugin::Builder::new(COMMANDS)
5
+ .android_path("android")
6
+ .ios_path("ios")
7
+ .build();
8
+}
bun.lockb
Binary files /dev/null and b/bun.lockb differ
examples/tauri-app/.gitignore
new
+24
@@ -0,0 +1,24 @@
1
+# Logs
2
+logs
3
+*.log
4
+npm-debug.log*
5
+yarn-debug.log*
6
+yarn-error.log*
7
+pnpm-debug.log*
8
+lerna-debug.log*
9
+
10
+node_modules
11
+dist
12
+dist-ssr
13
+*.local
14
+
15
+# Editor directories and files
16
+.vscode/*
17
+!.vscode/extensions.json
18
+.idea
19
+.DS_Store
20
+*.suo
21
+*.ntvs*
22
+*.njsproj
23
+*.sln
24
+*.sw?
examples/tauri-app/.vscode/extensions.json
new
+7
@@ -0,0 +1,7 @@
1
+{
2
+ "recommendations": [
3
+ "svelte.svelte-vscode",
4
+ "tauri-apps.tauri-vscode",
5
+ "rust-lang.rust-analyzer"
6
+ ]
7
+}
examples/tauri-app/README.md
new
+8
@@ -0,0 +1,8 @@
1
+# Svelte + Vite
2
+
3
+This template should help get you started developing with Tauri and Svelte in Vite.
4
+
5
+## Recommended IDE Setup
6
+
7
+[VS Code](https://code.visualstudio.com/) + [Svelte](https://marketplace.visualstudio.com/items?itemName=svelte.svelte-vscode) + [Tauri](https://marketplace.visualstudio.com/items?itemName=tauri-apps.tauri-vscode) + [rust-analyzer](https://marketplace.visualstudio.com/items?itemName=rust-lang.rust-analyzer).
8
+
examples/tauri-app/bun.lockb
Binary files /dev/null and b/examples/tauri-app/bun.lockb differ
examples/tauri-app/index.html
new
+14
@@ -0,0 +1,14 @@
1
+<!DOCTYPE html>
2
+<html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <link rel="icon" type="image/svg+xml" href="/vite.svg" />
6
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
+ <title>Tauri + Svelte</title>
8
+ </head>
9
+
10
+ <body>
11
+ <div id="app"></div>
12
+ <script type="module" src="/src/main.js"></script>
13
+ </body>
14
+</html>
examples/tauri-app/jsconfig.json
new
+34
@@ -0,0 +1,34 @@
1
+{
2
+ "compilerOptions": {
3
+ "moduleResolution": "Node",
4
+ "target": "ESNext",
5
+ "module": "ESNext",
6
+ /**
7
+ * svelte-preprocess cannot figure out whether you have
8
+ * a value or a type, so tell TypeScript to enforce using
9
+ * `import type` instead of `import` for Types.
10
+ */
11
+ "importsNotUsedAsValues": "error",
12
+ "isolatedModules": true,
13
+ "resolveJsonModule": true,
14
+ /**
15
+ * To have warnings / errors of the Svelte compiler at the
16
+ * correct position, enable source maps by default.
17
+ */
18
+ "sourceMap": true,
19
+ "esModuleInterop": true,
20
+ "skipLibCheck": true,
21
+ "forceConsistentCasingInFileNames": true,
22
+ "baseUrl": ".",
23
+ /**
24
+ * Typecheck JS in `.svelte` and `.js` files by default.
25
+ * Disable this if you'd like to use dynamic types.
26
+ */
27
+ "checkJs": true
28
+ },
29
+ /**
30
+ * Use global.d.ts instead of compilerOptions.types
31
+ * to avoid limiting type declarations.
32
+ */
33
+ "include": ["src/**/*.d.ts", "src/**/*.js", "src/**/*.svelte"]
34
+}
examples/tauri-app/package.json
new
+23
@@ -0,0 +1,23 @@
1
+{
2
+ "name": "tauri-app",
3
+ "private": true,
4
+ "version": "0.0.0",
5
+ "type": "module",
6
+ "scripts": {
7
+ "dev": "vite",
8
+ "build": "vite build",
9
+ "preview": "vite preview",
10
+ "tauri": "tauri"
11
+ },
12
+ "dependencies": {
13
+ "@tauri-apps/api": "^2.0.0-alpha.11",
14
+ "tauri-plugin-admob-api": "link:../../"
15
+ },
16
+ "devDependencies": {
17
+ "@sveltejs/vite-plugin-svelte": "^1.0.1",
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"
22
+ }
23
+}
examples/tauri-app/public/svelte.svg
new
+1
@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="26.6" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 308"><path fill="#FF3E00" d="M239.682 40.707C211.113-.182 154.69-12.301 113.895 13.69L42.247 59.356a82.198 82.198 0 0 0-37.135 55.056a86.566 86.566 0 0 0 8.536 55.576a82.425 82.425 0 0 0-12.296 30.719a87.596 87.596 0 0 0 14.964 66.244c28.574 40.893 84.997 53.007 125.787 27.016l71.648-45.664a82.182 82.182 0 0 0 37.135-55.057a86.601 86.601 0 0 0-8.53-55.577a82.409 82.409 0 0 0 12.29-30.718a87.573 87.573 0 0 0-14.963-66.244"></path><path fill="#FFF" d="M106.889 270.841c-23.102 6.007-47.497-3.036-61.103-22.648a52.685 52.685 0 0 1-9.003-39.85a49.978 49.978 0 0 1 1.713-6.693l1.35-4.115l3.671 2.697a92.447 92.447 0 0 0 28.036 14.007l2.663.808l-.245 2.659a16.067 16.067 0 0 0 2.89 10.656a17.143 17.143 0 0 0 18.397 6.828a15.786 15.786 0 0 0 4.403-1.935l71.67-45.672a14.922 14.922 0 0 0 6.734-9.977a15.923 15.923 0 0 0-2.713-12.011a17.156 17.156 0 0 0-18.404-6.832a15.78 15.78 0 0 0-4.396 1.933l-27.35 17.434a52.298 52.298 0 0 1-14.553 6.391c-23.101 6.007-47.497-3.036-61.101-22.649a52.681 52.681 0 0 1-9.004-39.849a49.428 49.428 0 0 1 22.34-33.114l71.664-45.677a52.218 52.218 0 0 1 14.563-6.398c23.101-6.007 47.497 3.036 61.101 22.648a52.685 52.685 0 0 1 9.004 39.85a50.559 50.559 0 0 1-1.713 6.692l-1.35 4.116l-3.67-2.693a92.373 92.373 0 0 0-28.037-14.013l-2.664-.809l.246-2.658a16.099 16.099 0 0 0-2.89-10.656a17.143 17.143 0 0 0-18.398-6.828a15.786 15.786 0 0 0-4.402 1.935l-71.67 45.674a14.898 14.898 0 0 0-6.73 9.975a15.9 15.9 0 0 0 2.709 12.012a17.156 17.156 0 0 0 18.404 6.832a15.841 15.841 0 0 0 4.402-1.935l27.345-17.427a52.147 52.147 0 0 1 14.552-6.397c23.101-6.006 47.497 3.037 61.102 22.65a52.681 52.681 0 0 1 9.003 39.848a49.453 49.453 0 0 1-22.34 33.12l-71.664 45.673a52.218 52.218 0 0 1-14.563 6.398"></path></svg>
\ No newline at end of file
examples/tauri-app/public/tauri.svg
new
+6
@@ -0,0 +1,6 @@
1
+<svg width="206" height="231" viewBox="0 0 206 231" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+<path d="M143.143 84C143.143 96.1503 133.293 106 121.143 106C108.992 106 99.1426 96.1503 99.1426 84C99.1426 71.8497 108.992 62 121.143 62C133.293 62 143.143 71.8497 143.143 84Z" fill="#FFC131"/>
3
+<ellipse cx="84.1426" cy="147" rx="22" ry="22" transform="rotate(180 84.1426 147)" fill="#24C8DB"/>
4
+<path fill-rule="evenodd" clip-rule="evenodd" d="M166.738 154.548C157.86 160.286 148.023 164.269 137.757 166.341C139.858 160.282 141 153.774 141 147C141 144.543 140.85 142.121 140.558 139.743C144.975 138.204 149.215 136.139 153.183 133.575C162.73 127.404 170.292 118.608 174.961 108.244C179.63 97.8797 181.207 86.3876 179.502 75.1487C177.798 63.9098 172.884 53.4021 165.352 44.8883C157.82 36.3744 147.99 30.2165 137.042 27.1546C126.095 24.0926 114.496 24.2568 103.64 27.6274C92.7839 30.998 83.1319 37.4317 75.8437 46.1553C74.9102 47.2727 74.0206 48.4216 73.176 49.5993C61.9292 50.8488 51.0363 54.0318 40.9629 58.9556C44.2417 48.4586 49.5653 38.6591 56.679 30.1442C67.0505 17.7298 80.7861 8.57426 96.2354 3.77762C111.685 -1.01901 128.19 -1.25267 143.769 3.10474C159.348 7.46215 173.337 16.2252 184.056 28.3411C194.775 40.457 201.767 55.4101 204.193 71.404C206.619 87.3978 204.374 103.752 197.73 118.501C191.086 133.25 180.324 145.767 166.738 154.548ZM41.9631 74.275L62.5557 76.8042C63.0459 72.813 63.9401 68.9018 65.2138 65.1274C57.0465 67.0016 49.2088 70.087 41.9631 74.275Z" fill="#FFC131"/>
5
+<path fill-rule="evenodd" clip-rule="evenodd" d="M38.4045 76.4519C47.3493 70.6709 57.2677 66.6712 67.6171 64.6132C65.2774 70.9669 64 77.8343 64 85.0001C64 87.1434 64.1143 89.26 64.3371 91.3442C60.0093 92.8732 55.8533 94.9092 51.9599 97.4256C42.4128 103.596 34.8505 112.392 30.1816 122.756C25.5126 133.12 23.9357 144.612 25.6403 155.851C27.3449 167.09 32.2584 177.598 39.7906 186.112C47.3227 194.626 57.153 200.784 68.1003 203.846C79.0476 206.907 90.6462 206.743 101.502 203.373C112.359 200.002 122.011 193.568 129.299 184.845C130.237 183.722 131.131 182.567 131.979 181.383C143.235 180.114 154.132 176.91 164.205 171.962C160.929 182.49 155.596 192.319 148.464 200.856C138.092 213.27 124.357 222.426 108.907 227.222C93.458 232.019 76.9524 232.253 61.3736 227.895C45.7948 223.538 31.8055 214.775 21.0867 202.659C10.3679 190.543 3.37557 175.59 0.949823 159.596C-1.47592 143.602 0.768139 127.248 7.41237 112.499C14.0566 97.7497 24.8183 85.2327 38.4045 76.4519ZM163.062 156.711L163.062 156.711C162.954 156.773 162.846 156.835 162.738 156.897C162.846 156.835 162.954 156.773 163.062 156.711Z" fill="#24C8DB"/>
6
+</svg>
examples/tauri-app/public/vite.svg
new
+1
@@ -0,0 +1 @@
1
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" aria-hidden="true" role="img" class="iconify iconify--logos" width="31.88" height="32" preserveAspectRatio="xMidYMid meet" viewBox="0 0 256 257"><defs><linearGradient id="IconifyId1813088fe1fbc01fb466" x1="-.828%" x2="57.636%" y1="7.652%" y2="78.411%"><stop offset="0%" stop-color="#41D1FF"></stop><stop offset="100%" stop-color="#BD34FE"></stop></linearGradient><linearGradient id="IconifyId1813088fe1fbc01fb467" x1="43.376%" x2="50.316%" y1="2.242%" y2="89.03%"><stop offset="0%" stop-color="#FFEA83"></stop><stop offset="8.333%" stop-color="#FFDD35"></stop><stop offset="100%" stop-color="#FFA800"></stop></linearGradient></defs><path fill="url(#IconifyId1813088fe1fbc01fb466)" d="M255.153 37.938L134.897 252.976c-2.483 4.44-8.862 4.466-11.382.048L.875 37.958c-2.746-4.814 1.371-10.646 6.827-9.67l120.385 21.517a6.537 6.537 0 0 0 2.322-.004l117.867-21.483c5.438-.991 9.574 4.796 6.877 9.62Z"></path><path fill="url(#IconifyId1813088fe1fbc01fb467)" d="M185.432.063L96.44 17.501a3.268 3.268 0 0 0-2.634 3.014l-5.474 92.456a3.268 3.268 0 0 0 3.997 3.378l24.777-5.718c2.318-.535 4.413 1.507 3.936 3.838l-7.361 36.047c-.495 2.426 1.782 4.5 4.151 3.78l15.304-4.649c2.372-.72 4.652 1.36 4.15 3.788l-11.698 56.621c-.732 3.542 3.979 5.473 5.943 2.437l1.313-2.028l72.516-144.72c1.215-2.423-.88-5.186-3.54-4.672l-25.505 4.922c-2.396.462-4.435-1.77-3.759-4.114l16.646-57.705c.677-2.35-1.37-4.583-3.769-4.113Z"></path></svg>
\ No newline at end of file
examples/tauri-app/src-tauri/.cargo/config.toml
new
+4
@@ -0,0 +1,4 @@
1
+[build]
2
+target = "x86_64-unknown-linux-gnu"
3
+
4
+[target]
examples/tauri-app/src-tauri/.gitignore
new
+4
@@ -0,0 +1,4 @@
1
+# Generated by Cargo
2
+# will have compiled files and executables
3
+/target/
4
+
examples/tauri-app/src-tauri/Cargo.toml
new
+22
@@ -0,0 +1,22 @@
1
+[package]
2
+name = "tauri-app"
3
+version = "0.0.0"
4
+description = "A Tauri App"
5
+authors = ["you"]
6
+license = ""
7
+repository = ""
8
+edition = "2021"
9
+rust-version = "1.70"
10
+
11
+[lib]
12
+name = "tauri_app_lib"
13
+crate-type = ["staticlib", "cdylib", "lib"]
14
+
15
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
16
+
17
+[build-dependencies]
18
+tauri-build = { version = "2.0.0-beta.19", default-features = false , features = [] }
19
+
20
+[dependencies]
21
+tauri = { version = "2.0.0-beta.24", features = [] }
22
+tauri-plugin-admob = { path = "../../../" }
examples/tauri-app/src-tauri/build.rs
new
+3
@@ -0,0 +1,3 @@
1
+fn main() {
2
+ tauri_build::build()
3
+}
examples/tauri-app/src-tauri/capabilities/default.json
new
+18
@@ -0,0 +1,18 @@
1
+{
2
+ "$schema": "../gen/schemas/desktop-schema.json",
3
+ "identifier": "default",
4
+ "description": "enables the default permissions",
5
+ "windows": ["main"],
6
+ "permissions": [
7
+ "path:default",
8
+ "event:default",
9
+ "window:default",
10
+ "webview:default",
11
+ "app:default",
12
+ "resources:default",
13
+ "image:default",
14
+ "menu:default",
15
+ "tray:default",
16
+ "admob:default"
17
+ ]
18
+}
examples/tauri-app/src-tauri/gen/android/.editorconfig
new
+12
@@ -0,0 +1,12 @@
1
+# EditorConfig is awesome: https://EditorConfig.org
2
+
3
+# top-most EditorConfig file
4
+root = true
5
+
6
+[*]
7
+indent_style = space
8
+indent_size = 2
9
+end_of_line = lf
10
+charset = utf-8
11
+trim_trailing_whitespace = false
12
+insert_final_newline = false
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/.gitignore
new
+19
@@ -0,0 +1,19 @@
1
+*.iml
2
+.gradle
3
+/local.properties
4
+/.idea/caches
5
+/.idea/libraries
6
+/.idea/modules.xml
7
+/.idea/workspace.xml
8
+/.idea/navEditor.xml
9
+/.idea/assetWizardSettings.xml
10
+.DS_Store
11
+build
12
+/captures
13
+.externalNativeBuild
14
+.cxx
15
+local.properties
16
+key.properties
17
+
18
+/.tauri
19
+/tauri.settings.gradle
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/app/.gitignore
new
+6
@@ -0,0 +1,6 @@
1
+/src/main/java/com/tauri/dev/generated
2
+/src/main/jniLibs/**/*.so
3
+/src/main/assets/tauri.conf.json
4
+/tauri.build.gradle.kts
5
+/proguard-tauri.pro
6
+/tauri.properties
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/app/build.gradle.kts
new
+70
@@ -0,0 +1,70 @@
1
+import java.util.Properties
2
+
3
+plugins {
4
+ id("com.android.application")
5
+ id("org.jetbrains.kotlin.android")
6
+ id("rust")
7
+}
8
+
9
+val tauriProperties = Properties().apply {
10
+ val propFile = file("tauri.properties")
11
+ if (propFile.exists()) {
12
+ propFile.inputStream().use { load(it) }
13
+ }
14
+}
15
+
16
+android {
17
+ compileSdk = 34
18
+ namespace = "com.tauri.dev"
19
+ defaultConfig {
20
+ manifestPlaceholders["usesCleartextTraffic"] = "false"
21
+ applicationId = "com.tauri.dev"
22
+ minSdk = 24
23
+ targetSdk = 34
24
+ versionCode = tauriProperties.getProperty("tauri.android.versionCode", "1").toInt()
25
+ versionName = tauriProperties.getProperty("tauri.android.versionName", "1.0")
26
+ }
27
+ buildTypes {
28
+ getByName("debug") {
29
+ manifestPlaceholders["usesCleartextTraffic"] = "true"
30
+ isDebuggable = true
31
+ isJniDebuggable = true
32
+ isMinifyEnabled = false
33
+ packaging { jniLibs.keepDebugSymbols.add("*/arm64-v8a/*.so")
34
+ jniLibs.keepDebugSymbols.add("*/armeabi-v7a/*.so")
35
+ jniLibs.keepDebugSymbols.add("*/x86/*.so")
36
+ jniLibs.keepDebugSymbols.add("*/x86_64/*.so")
37
+ }
38
+ }
39
+ getByName("release") {
40
+ isMinifyEnabled = true
41
+ proguardFiles(
42
+ *fileTree(".") { include("**/*.pro") }
43
+ .plus(getDefaultProguardFile("proguard-android-optimize.txt"))
44
+ .toList().toTypedArray()
45
+ )
46
+ }
47
+ }
48
+ kotlinOptions {
49
+ jvmTarget = "1.8"
50
+ freeCompilerArgs += "-Xskip-metadata-version-check"
51
+ }
52
+ buildFeatures {
53
+ buildConfig = true
54
+ }
55
+}
56
+
57
+rust {
58
+ rootDirRel = "../../../"
59
+}
60
+
61
+dependencies {
62
+ implementation("androidx.webkit:webkit:1.6.1")
63
+ implementation("androidx.appcompat:appcompat:1.6.1")
64
+ implementation("com.google.android.material:material:1.8.0")
65
+ testImplementation("junit:junit:4.13.2")
66
+ androidTestImplementation("androidx.test.ext:junit:1.1.4")
67
+ androidTestImplementation("androidx.test.espresso:espresso-core:3.5.0")
68
+}
69
+
70
+apply(from = "tauri.build.gradle.kts")
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/app/proguard-rules.pro
new
+21
@@ -0,0 +1,21 @@
1
+# Add project specific ProGuard rules here.
2
+# You can control the set of applied configuration files using the
3
+# proguardFiles setting in build.gradle.
4
+#
5
+# For more details, see
6
+# http://developer.android.com/guide/developing/tools/proguard.html
7
+
8
+# If your project uses WebView with JS, uncomment the following
9
+# and specify the fully qualified class name to the JavaScript interface
10
+# class:
11
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
12
+# public *;
13
+#}
14
+
15
+# Uncomment this to preserve the line number information for
16
+# debugging stack traces.
17
+#-keepattributes SourceFile,LineNumberTable
18
+
19
+# If you keep the line number information, uncomment this to
20
+# hide the original source file name.
21
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/app/src/main/AndroidManifest.xml
new
+34
@@ -0,0 +1,34 @@
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.INTERNET" />
4
+ <application
5
+ android:icon="@mipmap/ic_launcher"
6
+ android:label="@string/app_name"
7
+ android:theme="@style/Theme.tauri_app"
8
+ android:usesCleartextTraffic="${usesCleartextTraffic}">
9
+ <meta-data
10
+ android:name="com.google.android.gms.ads.APPLICATION_ID"
11
+ android:value="ca-app-pub-3940256099942544~3347511713"/>
12
+ <activity
13
+ android:configChanges="orientation|keyboardHidden|keyboard|screenSize|locale|smallestScreenSize|screenLayout|uiMode"
14
+ android:launchMode="singleTask"
15
+ android:label="@string/main_activity_title"
16
+ android:name=".MainActivity"
17
+ android:exported="true">
18
+ <intent-filter>
19
+ <action android:name="android.intent.action.MAIN" />
20
+ <category android:name="android.intent.category.LAUNCHER" />
21
+ </intent-filter>
22
+ </activity>
23
+
24
+ <provider
25
+ android:name="androidx.core.content.FileProvider"
26
+ android:authorities="${applicationId}.fileprovider"
27
+ android:exported="false"
28
+ android:grantUriPermissions="true">
29
+ <meta-data
30
+ android:name="android.support.FILE_PROVIDER_PATHS"
31
+ android:resource="@xml/file_paths" />
32
+ </provider>
33
+ </application>
34
+</manifest>
examples/tauri-app/src-tauri/gen/android/app/src/main/java/com/tauri/dev/MainActivity.kt
new
+3
@@ -0,0 +1,3 @@
1
+package com.tauri.dev
2
+
3
+class MainActivity : TauriActivity()
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/app/src/main/res/drawable-v24/ic_launcher_foreground.xml
new
+30
@@ -0,0 +1,30 @@
1
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
2
+ xmlns:aapt="http://schemas.android.com/aapt"
3
+ android:width="108dp"
4
+ android:height="108dp"
5
+ android:viewportWidth="108"
6
+ android:viewportHeight="108">
7
+ <path android:pathData="M31,63.928c0,0 6.4,-11 12.1,-13.1c7.2,-2.6 26,-1.4 26,-1.4l38.1,38.1L107,108.928l-32,-1L31,63.928z">
8
+ <aapt:attr name="android:fillColor">
9
+ <gradient
10
+ android:endX="85.84757"
11
+ android:endY="92.4963"
12
+ android:startX="42.9492"
13
+ android:startY="49.59793"
14
+ android:type="linear">
15
+ <item
16
+ android:color="#44000000"
17
+ android:offset="0.0" />
18
+ <item
19
+ android:color="#00000000"
20
+ android:offset="1.0" />
21
+ </gradient>
22
+ </aapt:attr>
23
+ </path>
24
+ <path
25
+ android:fillColor="#FFFFFF"
26
+ android:fillType="nonZero"
27
+ android:pathData="M65.3,45.828l3.8,-6.6c0.2,-0.4 0.1,-0.9 -0.3,-1.1c-0.4,-0.2 -0.9,-0.1 -1.1,0.3l-3.9,6.7c-6.3,-2.8 -13.4,-2.8 -19.7,0l-3.9,-6.7c-0.2,-0.4 -0.7,-0.5 -1.1,-0.3C38.8,38.328 38.7,38.828 38.9,39.228l3.8,6.6C36.2,49.428 31.7,56.028 31,63.928h46C76.3,56.028 71.8,49.428 65.3,45.828zM43.4,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2c-0.3,-0.7 -0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C45.3,56.528 44.5,57.328 43.4,57.328L43.4,57.328zM64.6,57.328c-0.8,0 -1.5,-0.5 -1.8,-1.2s-0.1,-1.5 0.4,-2.1c0.5,-0.5 1.4,-0.7 2.1,-0.4c0.7,0.3 1.2,1 1.2,1.8C66.5,56.528 65.6,57.328 64.6,57.328L64.6,57.328z"
28
+ android:strokeWidth="1"
29
+ android:strokeColor="#00000000" />
30
+</vector>
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/app/src/main/res/drawable/ic_launcher_background.xml
new
+170
@@ -0,0 +1,170 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
3
+ android:width="108dp"
4
+ android:height="108dp"
5
+ android:viewportWidth="108"
6
+ android:viewportHeight="108">
7
+ <path
8
+ android:fillColor="#3DDC84"
9
+ android:pathData="M0,0h108v108h-108z" />
10
+ <path
11
+ android:fillColor="#00000000"
12
+ android:pathData="M9,0L9,108"
13
+ android:strokeWidth="0.8"
14
+ android:strokeColor="#33FFFFFF" />
15
+ <path
16
+ android:fillColor="#00000000"
17
+ android:pathData="M19,0L19,108"
18
+ android:strokeWidth="0.8"
19
+ android:strokeColor="#33FFFFFF" />
20
+ <path
21
+ android:fillColor="#00000000"
22
+ android:pathData="M29,0L29,108"
23
+ android:strokeWidth="0.8"
24
+ android:strokeColor="#33FFFFFF" />
25
+ <path
26
+ android:fillColor="#00000000"
27
+ android:pathData="M39,0L39,108"
28
+ android:strokeWidth="0.8"
29
+ android:strokeColor="#33FFFFFF" />
30
+ <path
31
+ android:fillColor="#00000000"
32
+ android:pathData="M49,0L49,108"
33
+ android:strokeWidth="0.8"
34
+ android:strokeColor="#33FFFFFF" />
35
+ <path
36
+ android:fillColor="#00000000"
37
+ android:pathData="M59,0L59,108"
38
+ android:strokeWidth="0.8"
39
+ android:strokeColor="#33FFFFFF" />
40
+ <path
41
+ android:fillColor="#00000000"
42
+ android:pathData="M69,0L69,108"
43
+ android:strokeWidth="0.8"
44
+ android:strokeColor="#33FFFFFF" />
45
+ <path
46
+ android:fillColor="#00000000"
47
+ android:pathData="M79,0L79,108"
48
+ android:strokeWidth="0.8"
49
+ android:strokeColor="#33FFFFFF" />
50
+ <path
51
+ android:fillColor="#00000000"
52
+ android:pathData="M89,0L89,108"
53
+ android:strokeWidth="0.8"
54
+ android:strokeColor="#33FFFFFF" />
55
+ <path
56
+ android:fillColor="#00000000"
57
+ android:pathData="M99,0L99,108"
58
+ android:strokeWidth="0.8"
59
+ android:strokeColor="#33FFFFFF" />
60
+ <path
61
+ android:fillColor="#00000000"
62
+ android:pathData="M0,9L108,9"
63
+ android:strokeWidth="0.8"
64
+ android:strokeColor="#33FFFFFF" />
65
+ <path
66
+ android:fillColor="#00000000"
67
+ android:pathData="M0,19L108,19"
68
+ android:strokeWidth="0.8"
69
+ android:strokeColor="#33FFFFFF" />
70
+ <path
71
+ android:fillColor="#00000000"
72
+ android:pathData="M0,29L108,29"
73
+ android:strokeWidth="0.8"
74
+ android:strokeColor="#33FFFFFF" />
75
+ <path
76
+ android:fillColor="#00000000"
77
+ android:pathData="M0,39L108,39"
78
+ android:strokeWidth="0.8"
79
+ android:strokeColor="#33FFFFFF" />
80
+ <path
81
+ android:fillColor="#00000000"
82
+ android:pathData="M0,49L108,49"
83
+ android:strokeWidth="0.8"
84
+ android:strokeColor="#33FFFFFF" />
85
+ <path
86
+ android:fillColor="#00000000"
87
+ android:pathData="M0,59L108,59"
88
+ android:strokeWidth="0.8"
89
+ android:strokeColor="#33FFFFFF" />
90
+ <path
91
+ android:fillColor="#00000000"
92
+ android:pathData="M0,69L108,69"
93
+ android:strokeWidth="0.8"
94
+ android:strokeColor="#33FFFFFF" />
95
+ <path
96
+ android:fillColor="#00000000"
97
+ android:pathData="M0,79L108,79"
98
+ android:strokeWidth="0.8"
99
+ android:strokeColor="#33FFFFFF" />
100
+ <path
101
+ android:fillColor="#00000000"
102
+ android:pathData="M0,89L108,89"
103
+ android:strokeWidth="0.8"
104
+ android:strokeColor="#33FFFFFF" />
105
+ <path
106
+ android:fillColor="#00000000"
107
+ android:pathData="M0,99L108,99"
108
+ android:strokeWidth="0.8"
109
+ android:strokeColor="#33FFFFFF" />
110
+ <path
111
+ android:fillColor="#00000000"
112
+ android:pathData="M19,29L89,29"
113
+ android:strokeWidth="0.8"
114
+ android:strokeColor="#33FFFFFF" />
115
+ <path
116
+ android:fillColor="#00000000"
117
+ android:pathData="M19,39L89,39"
118
+ android:strokeWidth="0.8"
119
+ android:strokeColor="#33FFFFFF" />
120
+ <path
121
+ android:fillColor="#00000000"
122
+ android:pathData="M19,49L89,49"
123
+ android:strokeWidth="0.8"
124
+ android:strokeColor="#33FFFFFF" />
125
+ <path
126
+ android:fillColor="#00000000"
127
+ android:pathData="M19,59L89,59"
128
+ android:strokeWidth="0.8"
129
+ android:strokeColor="#33FFFFFF" />
130
+ <path
131
+ android:fillColor="#00000000"
132
+ android:pathData="M19,69L89,69"
133
+ android:strokeWidth="0.8"
134
+ android:strokeColor="#33FFFFFF" />
135
+ <path
136
+ android:fillColor="#00000000"
137
+ android:pathData="M19,79L89,79"
138
+ android:strokeWidth="0.8"
139
+ android:strokeColor="#33FFFFFF" />
140
+ <path
141
+ android:fillColor="#00000000"
142
+ android:pathData="M29,19L29,89"
143
+ android:strokeWidth="0.8"
144
+ android:strokeColor="#33FFFFFF" />
145
+ <path
146
+ android:fillColor="#00000000"
147
+ android:pathData="M39,19L39,89"
148
+ android:strokeWidth="0.8"
149
+ android:strokeColor="#33FFFFFF" />
150
+ <path
151
+ android:fillColor="#00000000"
152
+ android:pathData="M49,19L49,89"
153
+ android:strokeWidth="0.8"
154
+ android:strokeColor="#33FFFFFF" />
155
+ <path
156
+ android:fillColor="#00000000"
157
+ android:pathData="M59,19L59,89"
158
+ android:strokeWidth="0.8"
159
+ android:strokeColor="#33FFFFFF" />
160
+ <path
161
+ android:fillColor="#00000000"
162
+ android:pathData="M69,19L69,89"
163
+ android:strokeWidth="0.8"
164
+ android:strokeColor="#33FFFFFF" />
165
+ <path
166
+ android:fillColor="#00000000"
167
+ android:pathData="M79,19L79,89"
168
+ android:strokeWidth="0.8"
169
+ android:strokeColor="#33FFFFFF" />
170
+</vector>
examples/tauri-app/src-tauri/gen/android/app/src/main/res/layout/activity_main.xml
new
+18
@@ -0,0 +1,18 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
3
+ xmlns:app="http://schemas.android.com/apk/res-auto"
4
+ xmlns:tools="http://schemas.android.com/tools"
5
+ android:layout_width="match_parent"
6
+ android:layout_height="match_parent"
7
+ tools:context=".MainActivity">
8
+
9
+ <TextView
10
+ android:layout_width="wrap_content"
11
+ android:layout_height="wrap_content"
12
+ android:text="Hello World!"
13
+ app:layout_constraintBottom_toBottomOf="parent"
14
+ app:layout_constraintLeft_toLeftOf="parent"
15
+ app:layout_constraintRight_toRightOf="parent"
16
+ app:layout_constraintTop_toTopOf="parent" />
17
+
18
+</androidx.constraintlayout.widget.ConstraintLayout>
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.png differ
examples/tauri-app/src-tauri/gen/android/app/src/main/res/values-night/themes.xml
new
+6
@@ -0,0 +1,6 @@
1
+<resources xmlns:tools="http://schemas.android.com/tools">
2
+ <!-- Base application theme. -->
3
+ <style name="Theme.tauri_app" parent="Theme.MaterialComponents.DayNight.NoActionBar">
4
+ <!-- Customize your theme here. -->
5
+ </style>
6
+</resources>
examples/tauri-app/src-tauri/gen/android/app/src/main/res/values/colors.xml
new
+10
@@ -0,0 +1,10 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<resources>
3
+ <color name="purple_200">#FFBB86FC</color>
4
+ <color name="purple_500">#FF6200EE</color>
5
+ <color name="purple_700">#FF3700B3</color>
6
+ <color name="teal_200">#FF03DAC5</color>
7
+ <color name="teal_700">#FF018786</color>
8
+ <color name="black">#FF000000</color>
9
+ <color name="white">#FFFFFFFF</color>
10
+</resources>
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/app/src/main/res/values/strings.xml
new
+4
@@ -0,0 +1,4 @@
1
+<resources>
2
+ <string name="app_name">tauri-app</string>
3
+ <string name="main_activity_title">tauri-app</string>
4
+</resources>
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/app/src/main/res/values/themes.xml
new
+6
@@ -0,0 +1,6 @@
1
+<resources xmlns:tools="http://schemas.android.com/tools">
2
+ <!-- Base application theme. -->
3
+ <style name="Theme.tauri_app" parent="Theme.MaterialComponents.DayNight.NoActionBar">
4
+ <!-- Customize your theme here. -->
5
+ </style>
6
+</resources>
examples/tauri-app/src-tauri/gen/android/app/src/main/res/xml/file_paths.xml
new
+5
@@ -0,0 +1,5 @@
1
+<?xml version="1.0" encoding="utf-8"?>
2
+<paths xmlns:android="http://schemas.android.com/apk/res/android">
3
+ <external-path name="my_images" path="." />
4
+ <cache-path name="my_cache_images" path="." />
5
+</paths>
examples/tauri-app/src-tauri/gen/android/build.gradle.kts
new
+22
@@ -0,0 +1,22 @@
1
+buildscript {
2
+ repositories {
3
+ google()
4
+ mavenCentral()
5
+ }
6
+ dependencies {
7
+ classpath("com.android.tools.build:gradle:8.3.2")
8
+ classpath("org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.21")
9
+ }
10
+}
11
+
12
+allprojects {
13
+ repositories {
14
+ google()
15
+ mavenCentral()
16
+ }
17
+}
18
+
19
+tasks.register("clean").configure {
20
+ delete("build")
21
+}
22
+
examples/tauri-app/src-tauri/gen/android/buildSrc/build.gradle.kts
new
+23
@@ -0,0 +1,23 @@
1
+plugins {
2
+ `kotlin-dsl`
3
+}
4
+
5
+gradlePlugin {
6
+ plugins {
7
+ create("pluginsForCoolKids") {
8
+ id = "rust"
9
+ implementationClass = "RustPlugin"
10
+ }
11
+ }
12
+}
13
+
14
+repositories {
15
+ google()
16
+ mavenCentral()
17
+}
18
+
19
+dependencies {
20
+ compileOnly(gradleApi())
21
+ implementation("com.android.tools.build:gradle:8.3.2")
22
+}
23
+
examples/tauri-app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/dev/kotlin/BuildTask.kt
new
+52
@@ -0,0 +1,52 @@
1
+import java.io.File
2
+import org.apache.tools.ant.taskdefs.condition.Os
3
+import org.gradle.api.DefaultTask
4
+import org.gradle.api.GradleException
5
+import org.gradle.api.logging.LogLevel
6
+import org.gradle.api.tasks.Input
7
+import org.gradle.api.tasks.TaskAction
8
+
9
+open class BuildTask : DefaultTask() {
10
+ @Input
11
+ var rootDirRel: String? = null
12
+ @Input
13
+ var target: String? = null
14
+ @Input
15
+ var release: Boolean? = null
16
+
17
+ @TaskAction
18
+ fun assemble() {
19
+ val executable = """bun""";
20
+ try {
21
+ runTauriCli(executable)
22
+ } catch (e: Exception) {
23
+ if (Os.isFamily(Os.FAMILY_WINDOWS)) {
24
+ runTauriCli("$executable.cmd")
25
+ } else {
26
+ throw e;
27
+ }
28
+ }
29
+ }
30
+
31
+ fun runTauriCli(executable: String) {
32
+ val rootDirRel = rootDirRel ?: throw GradleException("rootDirRel cannot be null")
33
+ val target = target ?: throw GradleException("target cannot be null")
34
+ val release = release ?: throw GradleException("release cannot be null")
35
+ val args = listOf("tauri", "android", "android-studio-script");
36
+
37
+ project.exec {
38
+ workingDir(File(project.projectDir, rootDirRel))
39
+ executable(executable)
40
+ args(args)
41
+ if (project.logger.isEnabled(LogLevel.DEBUG)) {
42
+ args("-vv")
43
+ } else if (project.logger.isEnabled(LogLevel.INFO)) {
44
+ args("-v")
45
+ }
46
+ if (release) {
47
+ args("--release")
48
+ }
49
+ args(listOf("--target", target))
50
+ }.assertNormalExitValue()
51
+ }
52
+}
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/buildSrc/src/main/java/com/tauri/dev/kotlin/RustPlugin.kt
new
+85
@@ -0,0 +1,85 @@
1
+import com.android.build.api.dsl.ApplicationExtension
2
+import org.gradle.api.DefaultTask
3
+import org.gradle.api.Plugin
4
+import org.gradle.api.Project
5
+import org.gradle.kotlin.dsl.configure
6
+import org.gradle.kotlin.dsl.get
7
+
8
+const val TASK_GROUP = "rust"
9
+
10
+open class Config {
11
+ lateinit var rootDirRel: String
12
+}
13
+
14
+open class RustPlugin : Plugin<Project> {
15
+ private lateinit var config: Config
16
+
17
+ override fun apply(project: Project) = with(project) {
18
+ config = extensions.create("rust", Config::class.java)
19
+
20
+ val defaultAbiList = listOf("arm64-v8a", "armeabi-v7a", "x86", "x86_64");
21
+ val abiList = (findProperty("abiList") as? String)?.split(',') ?: defaultAbiList
22
+
23
+ val defaultArchList = listOf("arm64", "arm", "x86", "x86_64");
24
+ val archList = (findProperty("archList") as? String)?.split(',') ?: defaultArchList
25
+
26
+ val targetsList = (findProperty("targetList") as? String)?.split(',') ?: listOf("aarch64", "armv7", "i686", "x86_64")
27
+
28
+ extensions.configure<ApplicationExtension> {
29
+ @Suppress("UnstableApiUsage")
30
+ flavorDimensions.add("abi")
31
+ productFlavors {
32
+ create("universal") {
33
+ dimension = "abi"
34
+ ndk {
35
+ abiFilters += abiList
36
+ }
37
+ }
38
+ defaultArchList.forEachIndexed { index, arch ->
39
+ create(arch) {
40
+ dimension = "abi"
41
+ ndk {
42
+ abiFilters.add(defaultAbiList[index])
43
+ }
44
+ }
45
+ }
46
+ }
47
+ }
48
+
49
+ afterEvaluate {
50
+ for (profile in listOf("debug", "release")) {
51
+ val profileCapitalized = profile.replaceFirstChar { it.uppercase() }
52
+ val buildTask = tasks.maybeCreate(
53
+ "rustBuildUniversal$profileCapitalized",
54
+ DefaultTask::class.java
55
+ ).apply {
56
+ group = TASK_GROUP
57
+ description = "Build dynamic library in $profile mode for all targets"
58
+ }
59
+
60
+ tasks["mergeUniversal${profileCapitalized}JniLibFolders"].dependsOn(buildTask)
61
+
62
+ for (targetPair in targetsList.withIndex()) {
63
+ val targetName = targetPair.value
64
+ val targetArch = archList[targetPair.index]
65
+ val targetArchCapitalized = targetArch.replaceFirstChar { it.uppercase() }
66
+ val targetBuildTask = project.tasks.maybeCreate(
67
+ "rustBuild$targetArchCapitalized$profileCapitalized",
68
+ BuildTask::class.java
69
+ ).apply {
70
+ group = TASK_GROUP
71
+ description = "Build dynamic library in $profile mode for $targetArch"
72
+ rootDirRel = config.rootDirRel
73
+ target = targetName
74
+ release = profile == "release"
75
+ }
76
+
77
+ buildTask.dependsOn(targetBuildTask)
78
+ tasks["merge$targetArchCapitalized${profileCapitalized}JniLibFolders"].dependsOn(
79
+ targetBuildTask
80
+ )
81
+ }
82
+ }
83
+ }
84
+ }
85
+}
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/gradle.properties
new
+24
@@ -0,0 +1,24 @@
1
+# Project-wide Gradle settings.
2
+# IDE (e.g. Android Studio) users:
3
+# Gradle settings configured through the IDE *will override*
4
+# any settings specified in this file.
5
+# For more details on how to configure your build environment visit
6
+# http://www.gradle.org/docs/current/userguide/build_environment.html
7
+# Specifies the JVM arguments used for the daemon process.
8
+# The setting is particularly useful for tweaking memory settings.
9
+org.gradle.jvmargs=-Xmx2048m -Dfile.encoding=UTF-8
10
+# When configured, Gradle will run in incubating parallel mode.
11
+# This option should only be used with decoupled projects. More details, visit
12
+# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
13
+# org.gradle.parallel=true
14
+# AndroidX package structure to make it clearer which packages are bundled with the
15
+# Android operating system, and which are packaged with your app"s APK
16
+# https://developer.android.com/topic/libraries/support-library/androidx-rn
17
+android.useAndroidX=true
18
+# Kotlin code style for this project: "official" or "obsolete":
19
+kotlin.code.style=official
20
+# Enables namespacing of each library's R class so that its R class includes only the
21
+# resources declared in the library itself and none from the library's dependencies,
22
+# thereby reducing the size of the R class for that library
23
+android.nonTransitiveRClass=true
24
+android.nonFinalResIds=false
\ No newline at end of file
examples/tauri-app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar
Binary files /dev/null and b/examples/tauri-app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.jar differ
examples/tauri-app/src-tauri/gen/android/gradle/wrapper/gradle-wrapper.properties
new
+6
@@ -0,0 +1,6 @@
1
+#Tue May 10 19:22:52 CST 2022
2
+distributionBase=GRADLE_USER_HOME
3
+distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
4
+distributionPath=wrapper/dists
5
+zipStorePath=wrapper/dists
6
+zipStoreBase=GRADLE_USER_HOME
examples/tauri-app/src-tauri/gen/android/gradlew
new
+185
@@ -0,0 +1,185 @@
1
+#!/usr/bin/env sh
2
+
3
+#
4
+# Copyright 2015 the original author or authors.
5
+#
6
+# Licensed under the Apache License, Version 2.0 (the "License");
7
+# you may not use this file except in compliance with the License.
8
+# You may obtain a copy of the License at
9
+#
10
+# https://www.apache.org/licenses/LICENSE-2.0
11
+#
12
+# Unless required by applicable law or agreed to in writing, software
13
+# distributed under the License is distributed on an "AS IS" BASIS,
14
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+# See the License for the specific language governing permissions and
16
+# limitations under the License.
17
+#
18
+
19
+##############################################################################
20
+##
21
+## Gradle start up script for UN*X
22
+##
23
+##############################################################################
24
+
25
+# Attempt to set APP_HOME
26
+# Resolve links: $0 may be a link
27
+PRG="$0"
28
+# Need this for relative symlinks.
29
+while [ -h "$PRG" ] ; do
30
+ ls=`ls -ld "$PRG"`
31
+ link=`expr "$ls" : '.*-> \(.*\)$'`
32
+ if expr "$link" : '/.*' > /dev/null; then
33
+ PRG="$link"
34
+ else
35
+ PRG=`dirname "$PRG"`"/$link"
36
+ fi
37
+done
38
+SAVED="`pwd`"
39
+cd "`dirname \"$PRG\"`/" >/dev/null
40
+APP_HOME="`pwd -P`"
41
+cd "$SAVED" >/dev/null
42
+
43
+APP_NAME="Gradle"
44
+APP_BASE_NAME=`basename "$0"`
45
+
46
+# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
47
+DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
48
+
49
+# Use the maximum available, or set MAX_FD != -1 to use that value.
50
+MAX_FD="maximum"
51
+
52
+warn () {
53
+ echo "$*"
54
+}
55
+
56
+die () {
57
+ echo
58
+ echo "$*"
59
+ echo
60
+ exit 1
61
+}
62
+
63
+# OS specific support (must be 'true' or 'false').
64
+cygwin=false
65
+msys=false
66
+darwin=false
67
+nonstop=false
68
+case "`uname`" in
69
+ CYGWIN* )
70
+ cygwin=true
71
+ ;;
72
+ Darwin* )
73
+ darwin=true
74
+ ;;
75
+ MINGW* )
76
+ msys=true
77
+ ;;
78
+ NONSTOP* )
79
+ nonstop=true
80
+ ;;
81
+esac
82
+
83
+CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
84
+
85
+
86
+# Determine the Java command to use to start the JVM.
87
+if [ -n "$JAVA_HOME" ] ; then
88
+ if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
89
+ # IBM's JDK on AIX uses strange locations for the executables
90
+ JAVACMD="$JAVA_HOME/jre/sh/java"
91
+ else
92
+ JAVACMD="$JAVA_HOME/bin/java"
93
+ fi
94
+ if [ ! -x "$JAVACMD" ] ; then
95
+ die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
96
+
97
+Please set the JAVA_HOME variable in your environment to match the
98
+location of your Java installation."
99
+ fi
100
+else
101
+ JAVACMD="java"
102
+ which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
103
+
104
+Please set the JAVA_HOME variable in your environment to match the
105
+location of your Java installation."
106
+fi
107
+
108
+# Increase the maximum file descriptors if we can.
109
+if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
110
+ MAX_FD_LIMIT=`ulimit -H -n`
111
+ if [ $? -eq 0 ] ; then
112
+ if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
113
+ MAX_FD="$MAX_FD_LIMIT"
114
+ fi
115
+ ulimit -n $MAX_FD
116
+ if [ $? -ne 0 ] ; then
117
+ warn "Could not set maximum file descriptor limit: $MAX_FD"
118
+ fi
119
+ else
120
+ warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
121
+ fi
122
+fi
123
+
124
+# For Darwin, add options to specify how the application appears in the dock
125
+if $darwin; then
126
+ GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
127
+fi
128
+
129
+# For Cygwin or MSYS, switch paths to Windows format before running java
130
+if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
131
+ APP_HOME=`cygpath --path --mixed "$APP_HOME"`
132
+ CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
133
+
134
+ JAVACMD=`cygpath --unix "$JAVACMD"`
135
+
136
+ # We build the pattern for arguments to be converted via cygpath
137
+ ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
138
+ SEP=""
139
+ for dir in $ROOTDIRSRAW ; do
140
+ ROOTDIRS="$ROOTDIRS$SEP$dir"
141
+ SEP="|"
142
+ done
143
+ OURCYGPATTERN="(^($ROOTDIRS))"
144
+ # Add a user-defined pattern to the cygpath arguments
145
+ if [ "$GRADLE_CYGPATTERN" != "" ] ; then
146
+ OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
147
+ fi
148
+ # Now convert the arguments - kludge to limit ourselves to /bin/sh
149
+ i=0
150
+ for arg in "$@" ; do
151
+ CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
152
+ CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
153
+
154
+ if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
155
+ eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
156
+ else
157
+ eval `echo args$i`="\"$arg\""
158
+ fi
159
+ i=`expr $i + 1`
160
+ done
161
+ case $i in
162
+ 0) set -- ;;
163
+ 1) set -- "$args0" ;;
164
+ 2) set -- "$args0" "$args1" ;;
165
+ 3) set -- "$args0" "$args1" "$args2" ;;
166
+ 4) set -- "$args0" "$args1" "$args2" "$args3" ;;
167
+ 5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
168
+ 6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
169
+ 7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
170
+ 8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
171
+ 9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
172
+ esac
173
+fi
174
+
175
+# Escape application args
176
+save () {
177
+ for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
178
+ echo " "
179
+}
180
+APP_ARGS=`save "$@"`
181
+
182
+# Collect all arguments for the java command, following the shell quoting and substitution rules
183
+eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
184
+
185
+exec "$JAVACMD" "$@"
examples/tauri-app/src-tauri/gen/android/gradlew.bat
new
+89
@@ -0,0 +1,89 @@
1
+@rem
2
+@rem Copyright 2015 the original author or authors.
3
+@rem
4
+@rem Licensed under the Apache License, Version 2.0 (the "License");
5
+@rem you may not use this file except in compliance with the License.
6
+@rem You may obtain a copy of the License at
7
+@rem
8
+@rem https://www.apache.org/licenses/LICENSE-2.0
9
+@rem
10
+@rem Unless required by applicable law or agreed to in writing, software
11
+@rem distributed under the License is distributed on an "AS IS" BASIS,
12
+@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+@rem See the License for the specific language governing permissions and
14
+@rem limitations under the License.
15
+@rem
16
+
17
+@if "%DEBUG%" == "" @echo off
18
+@rem ##########################################################################
19
+@rem
20
+@rem Gradle startup script for Windows
21
+@rem
22
+@rem ##########################################################################
23
+
24
+@rem Set local scope for the variables with windows NT shell
25
+if "%OS%"=="Windows_NT" setlocal
26
+
27
+set DIRNAME=%~dp0
28
+if "%DIRNAME%" == "" set DIRNAME=.
29
+set APP_BASE_NAME=%~n0
30
+set APP_HOME=%DIRNAME%
31
+
32
+@rem Resolve any "." and ".." in APP_HOME to make it shorter.
33
+for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
34
+
35
+@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
36
+set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
37
+
38
+@rem Find java.exe
39
+if defined JAVA_HOME goto findJavaFromJavaHome
40
+
41
+set JAVA_EXE=java.exe
42
+%JAVA_EXE% -version >NUL 2>&1
43
+if "%ERRORLEVEL%" == "0" goto execute
44
+
45
+echo.
46
+echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
47
+echo.
48
+echo Please set the JAVA_HOME variable in your environment to match the
49
+echo location of your Java installation.
50
+
51
+goto fail
52
+
53
+:findJavaFromJavaHome
54
+set JAVA_HOME=%JAVA_HOME:"=%
55
+set JAVA_EXE=%JAVA_HOME%/bin/java.exe
56
+
57
+if exist "%JAVA_EXE%" goto execute
58
+
59
+echo.
60
+echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
61
+echo.
62
+echo Please set the JAVA_HOME variable in your environment to match the
63
+echo location of your Java installation.
64
+
65
+goto fail
66
+
67
+:execute
68
+@rem Setup the command line
69
+
70
+set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
71
+
72
+
73
+@rem Execute Gradle
74
+"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %*
75
+
76
+:end
77
+@rem End local scope for the variables with windows NT shell
78
+if "%ERRORLEVEL%"=="0" goto mainEnd
79
+
80
+:fail
81
+rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
82
+rem the _cmd.exe /c_ return code!
83
+if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
84
+exit /b 1
85
+
86
+:mainEnd
87
+if "%OS%"=="Windows_NT" endlocal
88
+
89
+:omega
examples/tauri-app/src-tauri/gen/android/settings.gradle
new
+3
@@ -0,0 +1,3 @@
1
+include ':app'
2
+
3
+apply from: 'tauri.settings.gradle'
examples/tauri-app/src-tauri/gen/schemas/acl-manifests.json
new
+1
@@ -0,0 +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
examples/tauri-app/src-tauri/gen/schemas/android-schema.json
new
+2217
@@ -0,0 +1,2217 @@
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-ping -> Enables the ping command without any pre-configured scope.",
183
+ "type": "string",
184
+ "enum": [
185
+ "admob:allow-ping"
186
+ ]
187
+ },
188
+ {
189
+ "description": "admob:deny-ping -> Denies the ping command without any pre-configured scope.",
190
+ "type": "string",
191
+ "enum": [
192
+ "admob:deny-ping"
193
+ ]
194
+ },
195
+ {
196
+ "description": "app:default -> Default permissions for the plugin.",
197
+ "type": "string",
198
+ "enum": [
199
+ "app:default"
200
+ ]
201
+ },
202
+ {
203
+ "description": "app:allow-app-hide -> Enables the app_hide command without any pre-configured scope.",
204
+ "type": "string",
205
+ "enum": [
206
+ "app:allow-app-hide"
207
+ ]
208
+ },
209
+ {
210
+ "description": "app:allow-app-show -> Enables the app_show command without any pre-configured scope.",
211
+ "type": "string",
212
+ "enum": [
213
+ "app:allow-app-show"
214
+ ]
215
+ },
216
+ {
217
+ "description": "app:allow-default-window-icon -> Enables the default_window_icon command without any pre-configured scope.",
218
+ "type": "string",
219
+ "enum": [
220
+ "app:allow-default-window-icon"
221
+ ]
222
+ },
223
+ {
224
+ "description": "app:allow-name -> Enables the name command without any pre-configured scope.",
225
+ "type": "string",
226
+ "enum": [
227
+ "app:allow-name"
228
+ ]
229
+ },
230
+ {
231
+ "description": "app:allow-tauri-version -> Enables the tauri_version command without any pre-configured scope.",
232
+ "type": "string",
233
+ "enum": [
234
+ "app:allow-tauri-version"
235
+ ]
236
+ },
237
+ {
238
+ "description": "app:allow-version -> Enables the version command without any pre-configured scope.",
239
+ "type": "string",
240
+ "enum": [
241
+ "app:allow-version"
242
+ ]
243
+ },
244
+ {
245
+ "description": "app:deny-app-hide -> Denies the app_hide command without any pre-configured scope.",
246
+ "type": "string",
247
+ "enum": [
248
+ "app:deny-app-hide"
249
+ ]
250
+ },
251
+ {
252
+ "description": "app:deny-app-show -> Denies the app_show command without any pre-configured scope.",
253
+ "type": "string",
254
+ "enum": [
255
+ "app:deny-app-show"
256
+ ]
257
+ },
258
+ {
259
+ "description": "app:deny-default-window-icon -> Denies the default_window_icon command without any pre-configured scope.",
260
+ "type": "string",
261
+ "enum": [
262
+ "app:deny-default-window-icon"
263
+ ]
264
+ },
265
+ {
266
+ "description": "app:deny-name -> Denies the name command without any pre-configured scope.",
267
+ "type": "string",
268
+ "enum": [
269
+ "app:deny-name"
270
+ ]
271
+ },
272
+ {
273
+ "description": "app:deny-tauri-version -> Denies the tauri_version command without any pre-configured scope.",
274
+ "type": "string",
275
+ "enum": [
276
+ "app:deny-tauri-version"
277
+ ]
278
+ },
279
+ {
280
+ "description": "app:deny-version -> Denies the version command without any pre-configured scope.",
281
+ "type": "string",
282
+ "enum": [
283
+ "app:deny-version"
284
+ ]
285
+ },
286
+ {
287
+ "description": "event:default -> Default permissions for the plugin.",
288
+ "type": "string",
289
+ "enum": [
290
+ "event:default"
291
+ ]
292
+ },
293
+ {
294
+ "description": "event:allow-emit -> Enables the emit command without any pre-configured scope.",
295
+ "type": "string",
296
+ "enum": [
297
+ "event:allow-emit"
298
+ ]
299
+ },
300
+ {
301
+ "description": "event:allow-emit-to -> Enables the emit_to command without any pre-configured scope.",
302
+ "type": "string",
303
+ "enum": [
304
+ "event:allow-emit-to"
305
+ ]
306
+ },
307
+ {
308
+ "description": "event:allow-listen -> Enables the listen command without any pre-configured scope.",
309
+ "type": "string",
310
+ "enum": [
311
+ "event:allow-listen"
312
+ ]
313
+ },
314
+ {
315
+ "description": "event:allow-unlisten -> Enables the unlisten command without any pre-configured scope.",
316
+ "type": "string",
317
+ "enum": [
318
+ "event:allow-unlisten"
319
+ ]
320
+ },
321
+ {
322
+ "description": "event:deny-emit -> Denies the emit command without any pre-configured scope.",
323
+ "type": "string",
324
+ "enum": [
325
+ "event:deny-emit"
326
+ ]
327
+ },
328
+ {
329
+ "description": "event:deny-emit-to -> Denies the emit_to command without any pre-configured scope.",
330
+ "type": "string",
331
+ "enum": [
332
+ "event:deny-emit-to"
333
+ ]
334
+ },
335
+ {
336
+ "description": "event:deny-listen -> Denies the listen command without any pre-configured scope.",
337
+ "type": "string",
338
+ "enum": [
339
+ "event:deny-listen"
340
+ ]
341
+ },
342
+ {
343
+ "description": "event:deny-unlisten -> Denies the unlisten command without any pre-configured scope.",
344
+ "type": "string",
345
+ "enum": [
346
+ "event:deny-unlisten"
347
+ ]
348
+ },
349
+ {
350
+ "description": "image:default -> Default permissions for the plugin.",
351
+ "type": "string",
352
+ "enum": [
353
+ "image:default"
354
+ ]
355
+ },
356
+ {
357
+ "description": "image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.",
358
+ "type": "string",
359
+ "enum": [
360
+ "image:allow-from-bytes"
361
+ ]
362
+ },
363
+ {
364
+ "description": "image:allow-from-path -> Enables the from_path command without any pre-configured scope.",
365
+ "type": "string",
366
+ "enum": [
367
+ "image:allow-from-path"
368
+ ]
369
+ },
370
+ {
371
+ "description": "image:allow-new -> Enables the new command without any pre-configured scope.",
372
+ "type": "string",
373
+ "enum": [
374
+ "image:allow-new"
375
+ ]
376
+ },
377
+ {
378
+ "description": "image:allow-rgba -> Enables the rgba command without any pre-configured scope.",
379
+ "type": "string",
380
+ "enum": [
381
+ "image:allow-rgba"
382
+ ]
383
+ },
384
+ {
385
+ "description": "image:allow-size -> Enables the size command without any pre-configured scope.",
386
+ "type": "string",
387
+ "enum": [
388
+ "image:allow-size"
389
+ ]
390
+ },
391
+ {
392
+ "description": "image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.",
393
+ "type": "string",
394
+ "enum": [
395
+ "image:deny-from-bytes"
396
+ ]
397
+ },
398
+ {
399
+ "description": "image:deny-from-path -> Denies the from_path command without any pre-configured scope.",
400
+ "type": "string",
401
+ "enum": [
402
+ "image:deny-from-path"
403
+ ]
404
+ },
405
+ {
406
+ "description": "image:deny-new -> Denies the new command without any pre-configured scope.",
407
+ "type": "string",
408
+ "enum": [
409
+ "image:deny-new"
410
+ ]
411
+ },
412
+ {
413
+ "description": "image:deny-rgba -> Denies the rgba command without any pre-configured scope.",
414
+ "type": "string",
415
+ "enum": [
416
+ "image:deny-rgba"
417
+ ]
418
+ },
419
+ {
420
+ "description": "image:deny-size -> Denies the size command without any pre-configured scope.",
421
+ "type": "string",
422
+ "enum": [
423
+ "image:deny-size"
424
+ ]
425
+ },
426
+ {
427
+ "description": "menu:default -> Default permissions for the plugin.",
428
+ "type": "string",
429
+ "enum": [
430
+ "menu:default"
431
+ ]
432
+ },
433
+ {
434
+ "description": "menu:allow-append -> Enables the append command without any pre-configured scope.",
435
+ "type": "string",
436
+ "enum": [
437
+ "menu:allow-append"
438
+ ]
439
+ },
440
+ {
441
+ "description": "menu:allow-create-default -> Enables the create_default command without any pre-configured scope.",
442
+ "type": "string",
443
+ "enum": [
444
+ "menu:allow-create-default"
445
+ ]
446
+ },
447
+ {
448
+ "description": "menu:allow-get -> Enables the get command without any pre-configured scope.",
449
+ "type": "string",
450
+ "enum": [
451
+ "menu:allow-get"
452
+ ]
453
+ },
454
+ {
455
+ "description": "menu:allow-insert -> Enables the insert command without any pre-configured scope.",
456
+ "type": "string",
457
+ "enum": [
458
+ "menu:allow-insert"
459
+ ]
460
+ },
461
+ {
462
+ "description": "menu:allow-is-checked -> Enables the is_checked command without any pre-configured scope.",
463
+ "type": "string",
464
+ "enum": [
465
+ "menu:allow-is-checked"
466
+ ]
467
+ },
468
+ {
469
+ "description": "menu:allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.",
470
+ "type": "string",
471
+ "enum": [
472
+ "menu:allow-is-enabled"
473
+ ]
474
+ },
475
+ {
476
+ "description": "menu:allow-items -> Enables the items command without any pre-configured scope.",
477
+ "type": "string",
478
+ "enum": [
479
+ "menu:allow-items"
480
+ ]
481
+ },
482
+ {
483
+ "description": "menu:allow-new -> Enables the new command without any pre-configured scope.",
484
+ "type": "string",
485
+ "enum": [
486
+ "menu:allow-new"
487
+ ]
488
+ },
489
+ {
490
+ "description": "menu:allow-popup -> Enables the popup command without any pre-configured scope.",
491
+ "type": "string",
492
+ "enum": [
493
+ "menu:allow-popup"
494
+ ]
495
+ },
496
+ {
497
+ "description": "menu:allow-prepend -> Enables the prepend command without any pre-configured scope.",
498
+ "type": "string",
499
+ "enum": [
500
+ "menu:allow-prepend"
501
+ ]
502
+ },
503
+ {
504
+ "description": "menu:allow-remove -> Enables the remove command without any pre-configured scope.",
505
+ "type": "string",
506
+ "enum": [
507
+ "menu:allow-remove"
508
+ ]
509
+ },
510
+ {
511
+ "description": "menu:allow-remove-at -> Enables the remove_at command without any pre-configured scope.",
512
+ "type": "string",
513
+ "enum": [
514
+ "menu:allow-remove-at"
515
+ ]
516
+ },
517
+ {
518
+ "description": "menu:allow-set-accelerator -> Enables the set_accelerator command without any pre-configured scope.",
519
+ "type": "string",
520
+ "enum": [
521
+ "menu:allow-set-accelerator"
522
+ ]
523
+ },
524
+ {
525
+ "description": "menu:allow-set-as-app-menu -> Enables the set_as_app_menu command without any pre-configured scope.",
526
+ "type": "string",
527
+ "enum": [
528
+ "menu:allow-set-as-app-menu"
529
+ ]
530
+ },
531
+ {
532
+ "description": "menu:allow-set-as-help-menu-for-nsapp -> Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.",
533
+ "type": "string",
534
+ "enum": [
535
+ "menu:allow-set-as-help-menu-for-nsapp"
536
+ ]
537
+ },
538
+ {
539
+ "description": "menu:allow-set-as-window-menu -> Enables the set_as_window_menu command without any pre-configured scope.",
540
+ "type": "string",
541
+ "enum": [
542
+ "menu:allow-set-as-window-menu"
543
+ ]
544
+ },
545
+ {
546
+ "description": "menu:allow-set-as-windows-menu-for-nsapp -> Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.",
547
+ "type": "string",
548
+ "enum": [
549
+ "menu:allow-set-as-windows-menu-for-nsapp"
550
+ ]
551
+ },
552
+ {
553
+ "description": "menu:allow-set-checked -> Enables the set_checked command without any pre-configured scope.",
554
+ "type": "string",
555
+ "enum": [
556
+ "menu:allow-set-checked"
557
+ ]
558
+ },
559
+ {
560
+ "description": "menu:allow-set-enabled -> Enables the set_enabled command without any pre-configured scope.",
561
+ "type": "string",
562
+ "enum": [
563
+ "menu:allow-set-enabled"
564
+ ]
565
+ },
566
+ {
567
+ "description": "menu:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
568
+ "type": "string",
569
+ "enum": [
570
+ "menu:allow-set-icon"
571
+ ]
572
+ },
573
+ {
574
+ "description": "menu:allow-set-text -> Enables the set_text command without any pre-configured scope.",
575
+ "type": "string",
576
+ "enum": [
577
+ "menu:allow-set-text"
578
+ ]
579
+ },
580
+ {
581
+ "description": "menu:allow-text -> Enables the text command without any pre-configured scope.",
582
+ "type": "string",
583
+ "enum": [
584
+ "menu:allow-text"
585
+ ]
586
+ },
587
+ {
588
+ "description": "menu:deny-append -> Denies the append command without any pre-configured scope.",
589
+ "type": "string",
590
+ "enum": [
591
+ "menu:deny-append"
592
+ ]
593
+ },
594
+ {
595
+ "description": "menu:deny-create-default -> Denies the create_default command without any pre-configured scope.",
596
+ "type": "string",
597
+ "enum": [
598
+ "menu:deny-create-default"
599
+ ]
600
+ },
601
+ {
602
+ "description": "menu:deny-get -> Denies the get command without any pre-configured scope.",
603
+ "type": "string",
604
+ "enum": [
605
+ "menu:deny-get"
606
+ ]
607
+ },
608
+ {
609
+ "description": "menu:deny-insert -> Denies the insert command without any pre-configured scope.",
610
+ "type": "string",
611
+ "enum": [
612
+ "menu:deny-insert"
613
+ ]
614
+ },
615
+ {
616
+ "description": "menu:deny-is-checked -> Denies the is_checked command without any pre-configured scope.",
617
+ "type": "string",
618
+ "enum": [
619
+ "menu:deny-is-checked"
620
+ ]
621
+ },
622
+ {
623
+ "description": "menu:deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.",
624
+ "type": "string",
625
+ "enum": [
626
+ "menu:deny-is-enabled"
627
+ ]
628
+ },
629
+ {
630
+ "description": "menu:deny-items -> Denies the items command without any pre-configured scope.",
631
+ "type": "string",
632
+ "enum": [
633
+ "menu:deny-items"
634
+ ]
635
+ },
636
+ {
637
+ "description": "menu:deny-new -> Denies the new command without any pre-configured scope.",
638
+ "type": "string",
639
+ "enum": [
640
+ "menu:deny-new"
641
+ ]
642
+ },
643
+ {
644
+ "description": "menu:deny-popup -> Denies the popup command without any pre-configured scope.",
645
+ "type": "string",
646
+ "enum": [
647
+ "menu:deny-popup"
648
+ ]
649
+ },
650
+ {
651
+ "description": "menu:deny-prepend -> Denies the prepend command without any pre-configured scope.",
652
+ "type": "string",
653
+ "enum": [
654
+ "menu:deny-prepend"
655
+ ]
656
+ },
657
+ {
658
+ "description": "menu:deny-remove -> Denies the remove command without any pre-configured scope.",
659
+ "type": "string",
660
+ "enum": [
661
+ "menu:deny-remove"
662
+ ]
663
+ },
664
+ {
665
+ "description": "menu:deny-remove-at -> Denies the remove_at command without any pre-configured scope.",
666
+ "type": "string",
667
+ "enum": [
668
+ "menu:deny-remove-at"
669
+ ]
670
+ },
671
+ {
672
+ "description": "menu:deny-set-accelerator -> Denies the set_accelerator command without any pre-configured scope.",
673
+ "type": "string",
674
+ "enum": [
675
+ "menu:deny-set-accelerator"
676
+ ]
677
+ },
678
+ {
679
+ "description": "menu:deny-set-as-app-menu -> Denies the set_as_app_menu command without any pre-configured scope.",
680
+ "type": "string",
681
+ "enum": [
682
+ "menu:deny-set-as-app-menu"
683
+ ]
684
+ },
685
+ {
686
+ "description": "menu:deny-set-as-help-menu-for-nsapp -> Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.",
687
+ "type": "string",
688
+ "enum": [
689
+ "menu:deny-set-as-help-menu-for-nsapp"
690
+ ]
691
+ },
692
+ {
693
+ "description": "menu:deny-set-as-window-menu -> Denies the set_as_window_menu command without any pre-configured scope.",
694
+ "type": "string",
695
+ "enum": [
696
+ "menu:deny-set-as-window-menu"
697
+ ]
698
+ },
699
+ {
700
+ "description": "menu:deny-set-as-windows-menu-for-nsapp -> Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.",
701
+ "type": "string",
702
+ "enum": [
703
+ "menu:deny-set-as-windows-menu-for-nsapp"
704
+ ]
705
+ },
706
+ {
707
+ "description": "menu:deny-set-checked -> Denies the set_checked command without any pre-configured scope.",
708
+ "type": "string",
709
+ "enum": [
710
+ "menu:deny-set-checked"
711
+ ]
712
+ },
713
+ {
714
+ "description": "menu:deny-set-enabled -> Denies the set_enabled command without any pre-configured scope.",
715
+ "type": "string",
716
+ "enum": [
717
+ "menu:deny-set-enabled"
718
+ ]
719
+ },
720
+ {
721
+ "description": "menu:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
722
+ "type": "string",
723
+ "enum": [
724
+ "menu:deny-set-icon"
725
+ ]
726
+ },
727
+ {
728
+ "description": "menu:deny-set-text -> Denies the set_text command without any pre-configured scope.",
729
+ "type": "string",
730
+ "enum": [
731
+ "menu:deny-set-text"
732
+ ]
733
+ },
734
+ {
735
+ "description": "menu:deny-text -> Denies the text command without any pre-configured scope.",
736
+ "type": "string",
737
+ "enum": [
738
+ "menu:deny-text"
739
+ ]
740
+ },
741
+ {
742
+ "description": "path:default -> Default permissions for the plugin.",
743
+ "type": "string",
744
+ "enum": [
745
+ "path:default"
746
+ ]
747
+ },
748
+ {
749
+ "description": "path:allow-basename -> Enables the basename command without any pre-configured scope.",
750
+ "type": "string",
751
+ "enum": [
752
+ "path:allow-basename"
753
+ ]
754
+ },
755
+ {
756
+ "description": "path:allow-dirname -> Enables the dirname command without any pre-configured scope.",
757
+ "type": "string",
758
+ "enum": [
759
+ "path:allow-dirname"
760
+ ]
761
+ },
762
+ {
763
+ "description": "path:allow-extname -> Enables the extname command without any pre-configured scope.",
764
+ "type": "string",
765
+ "enum": [
766
+ "path:allow-extname"
767
+ ]
768
+ },
769
+ {
770
+ "description": "path:allow-is-absolute -> Enables the is_absolute command without any pre-configured scope.",
771
+ "type": "string",
772
+ "enum": [
773
+ "path:allow-is-absolute"
774
+ ]
775
+ },
776
+ {
777
+ "description": "path:allow-join -> Enables the join command without any pre-configured scope.",
778
+ "type": "string",
779
+ "enum": [
780
+ "path:allow-join"
781
+ ]
782
+ },
783
+ {
784
+ "description": "path:allow-normalize -> Enables the normalize command without any pre-configured scope.",
785
+ "type": "string",
786
+ "enum": [
787
+ "path:allow-normalize"
788
+ ]
789
+ },
790
+ {
791
+ "description": "path:allow-resolve -> Enables the resolve command without any pre-configured scope.",
792
+ "type": "string",
793
+ "enum": [
794
+ "path:allow-resolve"
795
+ ]
796
+ },
797
+ {
798
+ "description": "path:allow-resolve-directory -> Enables the resolve_directory command without any pre-configured scope.",
799
+ "type": "string",
800
+ "enum": [
801
+ "path:allow-resolve-directory"
802
+ ]
803
+ },
804
+ {
805
+ "description": "path:deny-basename -> Denies the basename command without any pre-configured scope.",
806
+ "type": "string",
807
+ "enum": [
808
+ "path:deny-basename"
809
+ ]
810
+ },
811
+ {
812
+ "description": "path:deny-dirname -> Denies the dirname command without any pre-configured scope.",
813
+ "type": "string",
814
+ "enum": [
815
+ "path:deny-dirname"
816
+ ]
817
+ },
818
+ {
819
+ "description": "path:deny-extname -> Denies the extname command without any pre-configured scope.",
820
+ "type": "string",
821
+ "enum": [
822
+ "path:deny-extname"
823
+ ]
824
+ },
825
+ {
826
+ "description": "path:deny-is-absolute -> Denies the is_absolute command without any pre-configured scope.",
827
+ "type": "string",
828
+ "enum": [
829
+ "path:deny-is-absolute"
830
+ ]
831
+ },
832
+ {
833
+ "description": "path:deny-join -> Denies the join command without any pre-configured scope.",
834
+ "type": "string",
835
+ "enum": [
836
+ "path:deny-join"
837
+ ]
838
+ },
839
+ {
840
+ "description": "path:deny-normalize -> Denies the normalize command without any pre-configured scope.",
841
+ "type": "string",
842
+ "enum": [
843
+ "path:deny-normalize"
844
+ ]
845
+ },
846
+ {
847
+ "description": "path:deny-resolve -> Denies the resolve command without any pre-configured scope.",
848
+ "type": "string",
849
+ "enum": [
850
+ "path:deny-resolve"
851
+ ]
852
+ },
853
+ {
854
+ "description": "path:deny-resolve-directory -> Denies the resolve_directory command without any pre-configured scope.",
855
+ "type": "string",
856
+ "enum": [
857
+ "path:deny-resolve-directory"
858
+ ]
859
+ },
860
+ {
861
+ "description": "resources:default -> Default permissions for the plugin.",
862
+ "type": "string",
863
+ "enum": [
864
+ "resources:default"
865
+ ]
866
+ },
867
+ {
868
+ "description": "resources:allow-close -> Enables the close command without any pre-configured scope.",
869
+ "type": "string",
870
+ "enum": [
871
+ "resources:allow-close"
872
+ ]
873
+ },
874
+ {
875
+ "description": "resources:deny-close -> Denies the close command without any pre-configured scope.",
876
+ "type": "string",
877
+ "enum": [
878
+ "resources:deny-close"
879
+ ]
880
+ },
881
+ {
882
+ "description": "tray:default -> Default permissions for the plugin.",
883
+ "type": "string",
884
+ "enum": [
885
+ "tray:default"
886
+ ]
887
+ },
888
+ {
889
+ "description": "tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.",
890
+ "type": "string",
891
+ "enum": [
892
+ "tray:allow-get-by-id"
893
+ ]
894
+ },
895
+ {
896
+ "description": "tray:allow-new -> Enables the new command without any pre-configured scope.",
897
+ "type": "string",
898
+ "enum": [
899
+ "tray:allow-new"
900
+ ]
901
+ },
902
+ {
903
+ "description": "tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.",
904
+ "type": "string",
905
+ "enum": [
906
+ "tray:allow-remove-by-id"
907
+ ]
908
+ },
909
+ {
910
+ "description": "tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
911
+ "type": "string",
912
+ "enum": [
913
+ "tray:allow-set-icon"
914
+ ]
915
+ },
916
+ {
917
+ "description": "tray:allow-set-icon-as-template -> Enables the set_icon_as_template command without any pre-configured scope.",
918
+ "type": "string",
919
+ "enum": [
920
+ "tray:allow-set-icon-as-template"
921
+ ]
922
+ },
923
+ {
924
+ "description": "tray:allow-set-menu -> Enables the set_menu command without any pre-configured scope.",
925
+ "type": "string",
926
+ "enum": [
927
+ "tray:allow-set-menu"
928
+ ]
929
+ },
930
+ {
931
+ "description": "tray:allow-set-show-menu-on-left-click -> Enables the set_show_menu_on_left_click command without any pre-configured scope.",
932
+ "type": "string",
933
+ "enum": [
934
+ "tray:allow-set-show-menu-on-left-click"
935
+ ]
936
+ },
937
+ {
938
+ "description": "tray:allow-set-temp-dir-path -> Enables the set_temp_dir_path command without any pre-configured scope.",
939
+ "type": "string",
940
+ "enum": [
941
+ "tray:allow-set-temp-dir-path"
942
+ ]
943
+ },
944
+ {
945
+ "description": "tray:allow-set-title -> Enables the set_title command without any pre-configured scope.",
946
+ "type": "string",
947
+ "enum": [
948
+ "tray:allow-set-title"
949
+ ]
950
+ },
951
+ {
952
+ "description": "tray:allow-set-tooltip -> Enables the set_tooltip command without any pre-configured scope.",
953
+ "type": "string",
954
+ "enum": [
955
+ "tray:allow-set-tooltip"
956
+ ]
957
+ },
958
+ {
959
+ "description": "tray:allow-set-visible -> Enables the set_visible command without any pre-configured scope.",
960
+ "type": "string",
961
+ "enum": [
962
+ "tray:allow-set-visible"
963
+ ]
964
+ },
965
+ {
966
+ "description": "tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.",
967
+ "type": "string",
968
+ "enum": [
969
+ "tray:deny-get-by-id"
970
+ ]
971
+ },
972
+ {
973
+ "description": "tray:deny-new -> Denies the new command without any pre-configured scope.",
974
+ "type": "string",
975
+ "enum": [
976
+ "tray:deny-new"
977
+ ]
978
+ },
979
+ {
980
+ "description": "tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.",
981
+ "type": "string",
982
+ "enum": [
983
+ "tray:deny-remove-by-id"
984
+ ]
985
+ },
986
+ {
987
+ "description": "tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
988
+ "type": "string",
989
+ "enum": [
990
+ "tray:deny-set-icon"
991
+ ]
992
+ },
993
+ {
994
+ "description": "tray:deny-set-icon-as-template -> Denies the set_icon_as_template command without any pre-configured scope.",
995
+ "type": "string",
996
+ "enum": [
997
+ "tray:deny-set-icon-as-template"
998
+ ]
999
+ },
1000
+ {
1001
+ "description": "tray:deny-set-menu -> Denies the set_menu command without any pre-configured scope.",
1002
+ "type": "string",
1003
+ "enum": [
1004
+ "tray:deny-set-menu"
1005
+ ]
1006
+ },
1007
+ {
1008
+ "description": "tray:deny-set-show-menu-on-left-click -> Denies the set_show_menu_on_left_click command without any pre-configured scope.",
1009
+ "type": "string",
1010
+ "enum": [
1011
+ "tray:deny-set-show-menu-on-left-click"
1012
+ ]
1013
+ },
1014
+ {
1015
+ "description": "tray:deny-set-temp-dir-path -> Denies the set_temp_dir_path command without any pre-configured scope.",
1016
+ "type": "string",
1017
+ "enum": [
1018
+ "tray:deny-set-temp-dir-path"
1019
+ ]
1020
+ },
1021
+ {
1022
+ "description": "tray:deny-set-title -> Denies the set_title command without any pre-configured scope.",
1023
+ "type": "string",
1024
+ "enum": [
1025
+ "tray:deny-set-title"
1026
+ ]
1027
+ },
1028
+ {
1029
+ "description": "tray:deny-set-tooltip -> Denies the set_tooltip command without any pre-configured scope.",
1030
+ "type": "string",
1031
+ "enum": [
1032
+ "tray:deny-set-tooltip"
1033
+ ]
1034
+ },
1035
+ {
1036
+ "description": "tray:deny-set-visible -> Denies the set_visible command without any pre-configured scope.",
1037
+ "type": "string",
1038
+ "enum": [
1039
+ "tray:deny-set-visible"
1040
+ ]
1041
+ },
1042
+ {
1043
+ "description": "webview:default -> Default permissions for the plugin.",
1044
+ "type": "string",
1045
+ "enum": [
1046
+ "webview:default"
1047
+ ]
1048
+ },
1049
+ {
1050
+ "description": "webview:allow-create-webview -> Enables the create_webview command without any pre-configured scope.",
1051
+ "type": "string",
1052
+ "enum": [
1053
+ "webview:allow-create-webview"
1054
+ ]
1055
+ },
1056
+ {
1057
+ "description": "webview:allow-create-webview-window -> Enables the create_webview_window command without any pre-configured scope.",
1058
+ "type": "string",
1059
+ "enum": [
1060
+ "webview:allow-create-webview-window"
1061
+ ]
1062
+ },
1063
+ {
1064
+ "description": "webview:allow-internal-toggle-devtools -> Enables the internal_toggle_devtools command without any pre-configured scope.",
1065
+ "type": "string",
1066
+ "enum": [
1067
+ "webview:allow-internal-toggle-devtools"
1068
+ ]
1069
+ },
1070
+ {
1071
+ "description": "webview:allow-print -> Enables the print command without any pre-configured scope.",
1072
+ "type": "string",
1073
+ "enum": [
1074
+ "webview:allow-print"
1075
+ ]
1076
+ },
1077
+ {
1078
+ "description": "webview:allow-reparent -> Enables the reparent command without any pre-configured scope.",
1079
+ "type": "string",
1080
+ "enum": [
1081
+ "webview:allow-reparent"
1082
+ ]
1083
+ },
1084
+ {
1085
+ "description": "webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.",
1086
+ "type": "string",
1087
+ "enum": [
1088
+ "webview:allow-set-webview-focus"
1089
+ ]
1090
+ },
1091
+ {
1092
+ "description": "webview:allow-set-webview-position -> Enables the set_webview_position command without any pre-configured scope.",
1093
+ "type": "string",
1094
+ "enum": [
1095
+ "webview:allow-set-webview-position"
1096
+ ]
1097
+ },
1098
+ {
1099
+ "description": "webview:allow-set-webview-size -> Enables the set_webview_size command without any pre-configured scope.",
1100
+ "type": "string",
1101
+ "enum": [
1102
+ "webview:allow-set-webview-size"
1103
+ ]
1104
+ },
1105
+ {
1106
+ "description": "webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.",
1107
+ "type": "string",
1108
+ "enum": [
1109
+ "webview:allow-set-webview-zoom"
1110
+ ]
1111
+ },
1112
+ {
1113
+ "description": "webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.",
1114
+ "type": "string",
1115
+ "enum": [
1116
+ "webview:allow-webview-close"
1117
+ ]
1118
+ },
1119
+ {
1120
+ "description": "webview:allow-webview-position -> Enables the webview_position command without any pre-configured scope.",
1121
+ "type": "string",
1122
+ "enum": [
1123
+ "webview:allow-webview-position"
1124
+ ]
1125
+ },
1126
+ {
1127
+ "description": "webview:allow-webview-size -> Enables the webview_size command without any pre-configured scope.",
1128
+ "type": "string",
1129
+ "enum": [
1130
+ "webview:allow-webview-size"
1131
+ ]
1132
+ },
1133
+ {
1134
+ "description": "webview:deny-create-webview -> Denies the create_webview command without any pre-configured scope.",
1135
+ "type": "string",
1136
+ "enum": [
1137
+ "webview:deny-create-webview"
1138
+ ]
1139
+ },
1140
+ {
1141
+ "description": "webview:deny-create-webview-window -> Denies the create_webview_window command without any pre-configured scope.",
1142
+ "type": "string",
1143
+ "enum": [
1144
+ "webview:deny-create-webview-window"
1145
+ ]
1146
+ },
1147
+ {
1148
+ "description": "webview:deny-internal-toggle-devtools -> Denies the internal_toggle_devtools command without any pre-configured scope.",
1149
+ "type": "string",
1150
+ "enum": [
1151
+ "webview:deny-internal-toggle-devtools"
1152
+ ]
1153
+ },
1154
+ {
1155
+ "description": "webview:deny-print -> Denies the print command without any pre-configured scope.",
1156
+ "type": "string",
1157
+ "enum": [
1158
+ "webview:deny-print"
1159
+ ]
1160
+ },
1161
+ {
1162
+ "description": "webview:deny-reparent -> Denies the reparent command without any pre-configured scope.",
1163
+ "type": "string",
1164
+ "enum": [
1165
+ "webview:deny-reparent"
1166
+ ]
1167
+ },
1168
+ {
1169
+ "description": "webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.",
1170
+ "type": "string",
1171
+ "enum": [
1172
+ "webview:deny-set-webview-focus"
1173
+ ]
1174
+ },
1175
+ {
1176
+ "description": "webview:deny-set-webview-position -> Denies the set_webview_position command without any pre-configured scope.",
1177
+ "type": "string",
1178
+ "enum": [
1179
+ "webview:deny-set-webview-position"
1180
+ ]
1181
+ },
1182
+ {
1183
+ "description": "webview:deny-set-webview-size -> Denies the set_webview_size command without any pre-configured scope.",
1184
+ "type": "string",
1185
+ "enum": [
1186
+ "webview:deny-set-webview-size"
1187
+ ]
1188
+ },
1189
+ {
1190
+ "description": "webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.",
1191
+ "type": "string",
1192
+ "enum": [
1193
+ "webview:deny-set-webview-zoom"
1194
+ ]
1195
+ },
1196
+ {
1197
+ "description": "webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.",
1198
+ "type": "string",
1199
+ "enum": [
1200
+ "webview:deny-webview-close"
1201
+ ]
1202
+ },
1203
+ {
1204
+ "description": "webview:deny-webview-position -> Denies the webview_position command without any pre-configured scope.",
1205
+ "type": "string",
1206
+ "enum": [
1207
+ "webview:deny-webview-position"
1208
+ ]
1209
+ },
1210
+ {
1211
+ "description": "webview:deny-webview-size -> Denies the webview_size command without any pre-configured scope.",
1212
+ "type": "string",
1213
+ "enum": [
1214
+ "webview:deny-webview-size"
1215
+ ]
1216
+ },
1217
+ {
1218
+ "description": "window:default -> Default permissions for the plugin.",
1219
+ "type": "string",
1220
+ "enum": [
1221
+ "window:default"
1222
+ ]
1223
+ },
1224
+ {
1225
+ "description": "window:allow-available-monitors -> Enables the available_monitors command without any pre-configured scope.",
1226
+ "type": "string",
1227
+ "enum": [
1228
+ "window:allow-available-monitors"
1229
+ ]
1230
+ },
1231
+ {
1232
+ "description": "window:allow-center -> Enables the center command without any pre-configured scope.",
1233
+ "type": "string",
1234
+ "enum": [
1235
+ "window:allow-center"
1236
+ ]
1237
+ },
1238
+ {
1239
+ "description": "window:allow-close -> Enables the close command without any pre-configured scope.",
1240
+ "type": "string",
1241
+ "enum": [
1242
+ "window:allow-close"
1243
+ ]
1244
+ },
1245
+ {
1246
+ "description": "window:allow-create -> Enables the create command without any pre-configured scope.",
1247
+ "type": "string",
1248
+ "enum": [
1249
+ "window:allow-create"
1250
+ ]
1251
+ },
1252
+ {
1253
+ "description": "window:allow-current-monitor -> Enables the current_monitor command without any pre-configured scope.",
1254
+ "type": "string",
1255
+ "enum": [
1256
+ "window:allow-current-monitor"
1257
+ ]
1258
+ },
1259
+ {
1260
+ "description": "window:allow-cursor-position -> Enables the cursor_position command without any pre-configured scope.",
1261
+ "type": "string",
1262
+ "enum": [
1263
+ "window:allow-cursor-position"
1264
+ ]
1265
+ },
1266
+ {
1267
+ "description": "window:allow-destroy -> Enables the destroy command without any pre-configured scope.",
1268
+ "type": "string",
1269
+ "enum": [
1270
+ "window:allow-destroy"
1271
+ ]
1272
+ },
1273
+ {
1274
+ "description": "window:allow-hide -> Enables the hide command without any pre-configured scope.",
1275
+ "type": "string",
1276
+ "enum": [
1277
+ "window:allow-hide"
1278
+ ]
1279
+ },
1280
+ {
1281
+ "description": "window:allow-inner-position -> Enables the inner_position command without any pre-configured scope.",
1282
+ "type": "string",
1283
+ "enum": [
1284
+ "window:allow-inner-position"
1285
+ ]
1286
+ },
1287
+ {
1288
+ "description": "window:allow-inner-size -> Enables the inner_size command without any pre-configured scope.",
1289
+ "type": "string",
1290
+ "enum": [
1291
+ "window:allow-inner-size"
1292
+ ]
1293
+ },
1294
+ {
1295
+ "description": "window:allow-internal-toggle-maximize -> Enables the internal_toggle_maximize command without any pre-configured scope.",
1296
+ "type": "string",
1297
+ "enum": [
1298
+ "window:allow-internal-toggle-maximize"
1299
+ ]
1300
+ },
1301
+ {
1302
+ "description": "window:allow-is-closable -> Enables the is_closable command without any pre-configured scope.",
1303
+ "type": "string",
1304
+ "enum": [
1305
+ "window:allow-is-closable"
1306
+ ]
1307
+ },
1308
+ {
1309
+ "description": "window:allow-is-decorated -> Enables the is_decorated command without any pre-configured scope.",
1310
+ "type": "string",
1311
+ "enum": [
1312
+ "window:allow-is-decorated"
1313
+ ]
1314
+ },
1315
+ {
1316
+ "description": "window:allow-is-focused -> Enables the is_focused command without any pre-configured scope.",
1317
+ "type": "string",
1318
+ "enum": [
1319
+ "window:allow-is-focused"
1320
+ ]
1321
+ },
1322
+ {
1323
+ "description": "window:allow-is-fullscreen -> Enables the is_fullscreen command without any pre-configured scope.",
1324
+ "type": "string",
1325
+ "enum": [
1326
+ "window:allow-is-fullscreen"
1327
+ ]
1328
+ },
1329
+ {
1330
+ "description": "window:allow-is-maximizable -> Enables the is_maximizable command without any pre-configured scope.",
1331
+ "type": "string",
1332
+ "enum": [
1333
+ "window:allow-is-maximizable"
1334
+ ]
1335
+ },
1336
+ {
1337
+ "description": "window:allow-is-maximized -> Enables the is_maximized command without any pre-configured scope.",
1338
+ "type": "string",
1339
+ "enum": [
1340
+ "window:allow-is-maximized"
1341
+ ]
1342
+ },
1343
+ {
1344
+ "description": "window:allow-is-minimizable -> Enables the is_minimizable command without any pre-configured scope.",
1345
+ "type": "string",
1346
+ "enum": [
1347
+ "window:allow-is-minimizable"
1348
+ ]
1349
+ },
1350
+ {
1351
+ "description": "window:allow-is-minimized -> Enables the is_minimized command without any pre-configured scope.",
1352
+ "type": "string",
1353
+ "enum": [
1354
+ "window:allow-is-minimized"
1355
+ ]
1356
+ },
1357
+ {
1358
+ "description": "window:allow-is-resizable -> Enables the is_resizable command without any pre-configured scope.",
1359
+ "type": "string",
1360
+ "enum": [
1361
+ "window:allow-is-resizable"
1362
+ ]
1363
+ },
1364
+ {
1365
+ "description": "window:allow-is-visible -> Enables the is_visible command without any pre-configured scope.",
1366
+ "type": "string",
1367
+ "enum": [
1368
+ "window:allow-is-visible"
1369
+ ]
1370
+ },
1371
+ {
1372
+ "description": "window:allow-maximize -> Enables the maximize command without any pre-configured scope.",
1373
+ "type": "string",
1374
+ "enum": [
1375
+ "window:allow-maximize"
1376
+ ]
1377
+ },
1378
+ {
1379
+ "description": "window:allow-minimize -> Enables the minimize command without any pre-configured scope.",
1380
+ "type": "string",
1381
+ "enum": [
1382
+ "window:allow-minimize"
1383
+ ]
1384
+ },
1385
+ {
1386
+ "description": "window:allow-monitor-from-point -> Enables the monitor_from_point command without any pre-configured scope.",
1387
+ "type": "string",
1388
+ "enum": [
1389
+ "window:allow-monitor-from-point"
1390
+ ]
1391
+ },
1392
+ {
1393
+ "description": "window:allow-outer-position -> Enables the outer_position command without any pre-configured scope.",
1394
+ "type": "string",
1395
+ "enum": [
1396
+ "window:allow-outer-position"
1397
+ ]
1398
+ },
1399
+ {
1400
+ "description": "window:allow-outer-size -> Enables the outer_size command without any pre-configured scope.",
1401
+ "type": "string",
1402
+ "enum": [
1403
+ "window:allow-outer-size"
1404
+ ]
1405
+ },
1406
+ {
1407
+ "description": "window:allow-primary-monitor -> Enables the primary_monitor command without any pre-configured scope.",
1408
+ "type": "string",
1409
+ "enum": [
1410
+ "window:allow-primary-monitor"
1411
+ ]
1412
+ },
1413
+ {
1414
+ "description": "window:allow-request-user-attention -> Enables the request_user_attention command without any pre-configured scope.",
1415
+ "type": "string",
1416
+ "enum": [
1417
+ "window:allow-request-user-attention"
1418
+ ]
1419
+ },
1420
+ {
1421
+ "description": "window:allow-scale-factor -> Enables the scale_factor command without any pre-configured scope.",
1422
+ "type": "string",
1423
+ "enum": [
1424
+ "window:allow-scale-factor"
1425
+ ]
1426
+ },
1427
+ {
1428
+ "description": "window:allow-set-always-on-bottom -> Enables the set_always_on_bottom command without any pre-configured scope.",
1429
+ "type": "string",
1430
+ "enum": [
1431
+ "window:allow-set-always-on-bottom"
1432
+ ]
1433
+ },
1434
+ {
1435
+ "description": "window:allow-set-always-on-top -> Enables the set_always_on_top command without any pre-configured scope.",
1436
+ "type": "string",
1437
+ "enum": [
1438
+ "window:allow-set-always-on-top"
1439
+ ]
1440
+ },
1441
+ {
1442
+ "description": "window:allow-set-closable -> Enables the set_closable command without any pre-configured scope.",
1443
+ "type": "string",
1444
+ "enum": [
1445
+ "window:allow-set-closable"
1446
+ ]
1447
+ },
1448
+ {
1449
+ "description": "window:allow-set-content-protected -> Enables the set_content_protected command without any pre-configured scope.",
1450
+ "type": "string",
1451
+ "enum": [
1452
+ "window:allow-set-content-protected"
1453
+ ]
1454
+ },
1455
+ {
1456
+ "description": "window:allow-set-cursor-grab -> Enables the set_cursor_grab command without any pre-configured scope.",
1457
+ "type": "string",
1458
+ "enum": [
1459
+ "window:allow-set-cursor-grab"
1460
+ ]
1461
+ },
1462
+ {
1463
+ "description": "window:allow-set-cursor-icon -> Enables the set_cursor_icon command without any pre-configured scope.",
1464
+ "type": "string",
1465
+ "enum": [
1466
+ "window:allow-set-cursor-icon"
1467
+ ]
1468
+ },
1469
+ {
1470
+ "description": "window:allow-set-cursor-position -> Enables the set_cursor_position command without any pre-configured scope.",
1471
+ "type": "string",
1472
+ "enum": [
1473
+ "window:allow-set-cursor-position"
1474
+ ]
1475
+ },
1476
+ {
1477
+ "description": "window:allow-set-cursor-visible -> Enables the set_cursor_visible command without any pre-configured scope.",
1478
+ "type": "string",
1479
+ "enum": [
1480
+ "window:allow-set-cursor-visible"
1481
+ ]
1482
+ },
1483
+ {
1484
+ "description": "window:allow-set-decorations -> Enables the set_decorations command without any pre-configured scope.",
1485
+ "type": "string",
1486
+ "enum": [
1487
+ "window:allow-set-decorations"
1488
+ ]
1489
+ },
1490
+ {
1491
+ "description": "window:allow-set-effects -> Enables the set_effects command without any pre-configured scope.",
1492
+ "type": "string",
1493
+ "enum": [
1494
+ "window:allow-set-effects"
1495
+ ]
1496
+ },
1497
+ {
1498
+ "description": "window:allow-set-focus -> Enables the set_focus command without any pre-configured scope.",
1499
+ "type": "string",
1500
+ "enum": [
1501
+ "window:allow-set-focus"
1502
+ ]
1503
+ },
1504
+ {
1505
+ "description": "window:allow-set-fullscreen -> Enables the set_fullscreen command without any pre-configured scope.",
1506
+ "type": "string",
1507
+ "enum": [
1508
+ "window:allow-set-fullscreen"
1509
+ ]
1510
+ },
1511
+ {
1512
+ "description": "window:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
1513
+ "type": "string",
1514
+ "enum": [
1515
+ "window:allow-set-icon"
1516
+ ]
1517
+ },
1518
+ {
1519
+ "description": "window:allow-set-ignore-cursor-events -> Enables the set_ignore_cursor_events command without any pre-configured scope.",
1520
+ "type": "string",
1521
+ "enum": [
1522
+ "window:allow-set-ignore-cursor-events"
1523
+ ]
1524
+ },
1525
+ {
1526
+ "description": "window:allow-set-max-size -> Enables the set_max_size command without any pre-configured scope.",
1527
+ "type": "string",
1528
+ "enum": [
1529
+ "window:allow-set-max-size"
1530
+ ]
1531
+ },
1532
+ {
1533
+ "description": "window:allow-set-maximizable -> Enables the set_maximizable command without any pre-configured scope.",
1534
+ "type": "string",
1535
+ "enum": [
1536
+ "window:allow-set-maximizable"
1537
+ ]
1538
+ },
1539
+ {
1540
+ "description": "window:allow-set-min-size -> Enables the set_min_size command without any pre-configured scope.",
1541
+ "type": "string",
1542
+ "enum": [
1543
+ "window:allow-set-min-size"
1544
+ ]
1545
+ },
1546
+ {
1547
+ "description": "window:allow-set-minimizable -> Enables the set_minimizable command without any pre-configured scope.",
1548
+ "type": "string",
1549
+ "enum": [
1550
+ "window:allow-set-minimizable"
1551
+ ]
1552
+ },
1553
+ {
1554
+ "description": "window:allow-set-position -> Enables the set_position command without any pre-configured scope.",
1555
+ "type": "string",
1556
+ "enum": [
1557
+ "window:allow-set-position"
1558
+ ]
1559
+ },
1560
+ {
1561
+ "description": "window:allow-set-progress-bar -> Enables the set_progress_bar command without any pre-configured scope.",
1562
+ "type": "string",
1563
+ "enum": [
1564
+ "window:allow-set-progress-bar"
1565
+ ]
1566
+ },
1567
+ {
1568
+ "description": "window:allow-set-resizable -> Enables the set_resizable command without any pre-configured scope.",
1569
+ "type": "string",
1570
+ "enum": [
1571
+ "window:allow-set-resizable"
1572
+ ]
1573
+ },
1574
+ {
1575
+ "description": "window:allow-set-shadow -> Enables the set_shadow command without any pre-configured scope.",
1576
+ "type": "string",
1577
+ "enum": [
1578
+ "window:allow-set-shadow"
1579
+ ]
1580
+ },
1581
+ {
1582
+ "description": "window:allow-set-size -> Enables the set_size command without any pre-configured scope.",
1583
+ "type": "string",
1584
+ "enum": [
1585
+ "window:allow-set-size"
1586
+ ]
1587
+ },
1588
+ {
1589
+ "description": "window:allow-set-skip-taskbar -> Enables the set_skip_taskbar command without any pre-configured scope.",
1590
+ "type": "string",
1591
+ "enum": [
1592
+ "window:allow-set-skip-taskbar"
1593
+ ]
1594
+ },
1595
+ {
1596
+ "description": "window:allow-set-title -> Enables the set_title command without any pre-configured scope.",
1597
+ "type": "string",
1598
+ "enum": [
1599
+ "window:allow-set-title"
1600
+ ]
1601
+ },
1602
+ {
1603
+ "description": "window:allow-set-title-bar-style -> Enables the set_title_bar_style command without any pre-configured scope.",
1604
+ "type": "string",
1605
+ "enum": [
1606
+ "window:allow-set-title-bar-style"
1607
+ ]
1608
+ },
1609
+ {
1610
+ "description": "window:allow-set-visible-on-all-workspaces -> Enables the set_visible_on_all_workspaces command without any pre-configured scope.",
1611
+ "type": "string",
1612
+ "enum": [
1613
+ "window:allow-set-visible-on-all-workspaces"
1614
+ ]
1615
+ },
1616
+ {
1617
+ "description": "window:allow-show -> Enables the show command without any pre-configured scope.",
1618
+ "type": "string",
1619
+ "enum": [
1620
+ "window:allow-show"
1621
+ ]
1622
+ },
1623
+ {
1624
+ "description": "window:allow-start-dragging -> Enables the start_dragging command without any pre-configured scope.",
1625
+ "type": "string",
1626
+ "enum": [
1627
+ "window:allow-start-dragging"
1628
+ ]
1629
+ },
1630
+ {
1631
+ "description": "window:allow-start-resize-dragging -> Enables the start_resize_dragging command without any pre-configured scope.",
1632
+ "type": "string",
1633
+ "enum": [
1634
+ "window:allow-start-resize-dragging"
1635
+ ]
1636
+ },
1637
+ {
1638
+ "description": "window:allow-theme -> Enables the theme command without any pre-configured scope.",
1639
+ "type": "string",
1640
+ "enum": [
1641
+ "window:allow-theme"
1642
+ ]
1643
+ },
1644
+ {
1645
+ "description": "window:allow-title -> Enables the title command without any pre-configured scope.",
1646
+ "type": "string",
1647
+ "enum": [
1648
+ "window:allow-title"
1649
+ ]
1650
+ },
1651
+ {
1652
+ "description": "window:allow-toggle-maximize -> Enables the toggle_maximize command without any pre-configured scope.",
1653
+ "type": "string",
1654
+ "enum": [
1655
+ "window:allow-toggle-maximize"
1656
+ ]
1657
+ },
1658
+ {
1659
+ "description": "window:allow-unmaximize -> Enables the unmaximize command without any pre-configured scope.",
1660
+ "type": "string",
1661
+ "enum": [
1662
+ "window:allow-unmaximize"
1663
+ ]
1664
+ },
1665
+ {
1666
+ "description": "window:allow-unminimize -> Enables the unminimize command without any pre-configured scope.",
1667
+ "type": "string",
1668
+ "enum": [
1669
+ "window:allow-unminimize"
1670
+ ]
1671
+ },
1672
+ {
1673
+ "description": "window:deny-available-monitors -> Denies the available_monitors command without any pre-configured scope.",
1674
+ "type": "string",
1675
+ "enum": [
1676
+ "window:deny-available-monitors"
1677
+ ]
1678
+ },
1679
+ {
1680
+ "description": "window:deny-center -> Denies the center command without any pre-configured scope.",
1681
+ "type": "string",
1682
+ "enum": [
1683
+ "window:deny-center"
1684
+ ]
1685
+ },
1686
+ {
1687
+ "description": "window:deny-close -> Denies the close command without any pre-configured scope.",
1688
+ "type": "string",
1689
+ "enum": [
1690
+ "window:deny-close"
1691
+ ]
1692
+ },
1693
+ {
1694
+ "description": "window:deny-create -> Denies the create command without any pre-configured scope.",
1695
+ "type": "string",
1696
+ "enum": [
1697
+ "window:deny-create"
1698
+ ]
1699
+ },
1700
+ {
1701
+ "description": "window:deny-current-monitor -> Denies the current_monitor command without any pre-configured scope.",
1702
+ "type": "string",
1703
+ "enum": [
1704
+ "window:deny-current-monitor"
1705
+ ]
1706
+ },
1707
+ {
1708
+ "description": "window:deny-cursor-position -> Denies the cursor_position command without any pre-configured scope.",
1709
+ "type": "string",
1710
+ "enum": [
1711
+ "window:deny-cursor-position"
1712
+ ]
1713
+ },
1714
+ {
1715
+ "description": "window:deny-destroy -> Denies the destroy command without any pre-configured scope.",
1716
+ "type": "string",
1717
+ "enum": [
1718
+ "window:deny-destroy"
1719
+ ]
1720
+ },
1721
+ {
1722
+ "description": "window:deny-hide -> Denies the hide command without any pre-configured scope.",
1723
+ "type": "string",
1724
+ "enum": [
1725
+ "window:deny-hide"
1726
+ ]
1727
+ },
1728
+ {
1729
+ "description": "window:deny-inner-position -> Denies the inner_position command without any pre-configured scope.",
1730
+ "type": "string",
1731
+ "enum": [
1732
+ "window:deny-inner-position"
1733
+ ]
1734
+ },
1735
+ {
1736
+ "description": "window:deny-inner-size -> Denies the inner_size command without any pre-configured scope.",
1737
+ "type": "string",
1738
+ "enum": [
1739
+ "window:deny-inner-size"
1740
+ ]
1741
+ },
1742
+ {
1743
+ "description": "window:deny-internal-toggle-maximize -> Denies the internal_toggle_maximize command without any pre-configured scope.",
1744
+ "type": "string",
1745
+ "enum": [
1746
+ "window:deny-internal-toggle-maximize"
1747
+ ]
1748
+ },
1749
+ {
1750
+ "description": "window:deny-is-closable -> Denies the is_closable command without any pre-configured scope.",
1751
+ "type": "string",
1752
+ "enum": [
1753
+ "window:deny-is-closable"
1754
+ ]
1755
+ },
1756
+ {
1757
+ "description": "window:deny-is-decorated -> Denies the is_decorated command without any pre-configured scope.",
1758
+ "type": "string",
1759
+ "enum": [
1760
+ "window:deny-is-decorated"
1761
+ ]
1762
+ },
1763
+ {
1764
+ "description": "window:deny-is-focused -> Denies the is_focused command without any pre-configured scope.",
1765
+ "type": "string",
1766
+ "enum": [
1767
+ "window:deny-is-focused"
1768
+ ]
1769
+ },
1770
+ {
1771
+ "description": "window:deny-is-fullscreen -> Denies the is_fullscreen command without any pre-configured scope.",
1772
+ "type": "string",
1773
+ "enum": [
1774
+ "window:deny-is-fullscreen"
1775
+ ]
1776
+ },
1777
+ {
1778
+ "description": "window:deny-is-maximizable -> Denies the is_maximizable command without any pre-configured scope.",
1779
+ "type": "string",
1780
+ "enum": [
1781
+ "window:deny-is-maximizable"
1782
+ ]
1783
+ },
1784
+ {
1785
+ "description": "window:deny-is-maximized -> Denies the is_maximized command without any pre-configured scope.",
1786
+ "type": "string",
1787
+ "enum": [
1788
+ "window:deny-is-maximized"
1789
+ ]
1790
+ },
1791
+ {
1792
+ "description": "window:deny-is-minimizable -> Denies the is_minimizable command without any pre-configured scope.",
1793
+ "type": "string",
1794
+ "enum": [
1795
+ "window:deny-is-minimizable"
1796
+ ]
1797
+ },
1798
+ {
1799
+ "description": "window:deny-is-minimized -> Denies the is_minimized command without any pre-configured scope.",
1800
+ "type": "string",
1801
+ "enum": [
1802
+ "window:deny-is-minimized"
1803
+ ]
1804
+ },
1805
+ {
1806
+ "description": "window:deny-is-resizable -> Denies the is_resizable command without any pre-configured scope.",
1807
+ "type": "string",
1808
+ "enum": [
1809
+ "window:deny-is-resizable"
1810
+ ]
1811
+ },
1812
+ {
1813
+ "description": "window:deny-is-visible -> Denies the is_visible command without any pre-configured scope.",
1814
+ "type": "string",
1815
+ "enum": [
1816
+ "window:deny-is-visible"
1817
+ ]
1818
+ },
1819
+ {
1820
+ "description": "window:deny-maximize -> Denies the maximize command without any pre-configured scope.",
1821
+ "type": "string",
1822
+ "enum": [
1823
+ "window:deny-maximize"
1824
+ ]
1825
+ },
1826
+ {
1827
+ "description": "window:deny-minimize -> Denies the minimize command without any pre-configured scope.",
1828
+ "type": "string",
1829
+ "enum": [
1830
+ "window:deny-minimize"
1831
+ ]
1832
+ },
1833
+ {
1834
+ "description": "window:deny-monitor-from-point -> Denies the monitor_from_point command without any pre-configured scope.",
1835
+ "type": "string",
1836
+ "enum": [
1837
+ "window:deny-monitor-from-point"
1838
+ ]
1839
+ },
1840
+ {
1841
+ "description": "window:deny-outer-position -> Denies the outer_position command without any pre-configured scope.",
1842
+ "type": "string",
1843
+ "enum": [
1844
+ "window:deny-outer-position"
1845
+ ]
1846
+ },
1847
+ {
1848
+ "description": "window:deny-outer-size -> Denies the outer_size command without any pre-configured scope.",
1849
+ "type": "string",
1850
+ "enum": [
1851
+ "window:deny-outer-size"
1852
+ ]
1853
+ },
1854
+ {
1855
+ "description": "window:deny-primary-monitor -> Denies the primary_monitor command without any pre-configured scope.",
1856
+ "type": "string",
1857
+ "enum": [
1858
+ "window:deny-primary-monitor"
1859
+ ]
1860
+ },
1861
+ {
1862
+ "description": "window:deny-request-user-attention -> Denies the request_user_attention command without any pre-configured scope.",
1863
+ "type": "string",
1864
+ "enum": [
1865
+ "window:deny-request-user-attention"
1866
+ ]
1867
+ },
1868
+ {
1869
+ "description": "window:deny-scale-factor -> Denies the scale_factor command without any pre-configured scope.",
1870
+ "type": "string",
1871
+ "enum": [
1872
+ "window:deny-scale-factor"
1873
+ ]
1874
+ },
1875
+ {
1876
+ "description": "window:deny-set-always-on-bottom -> Denies the set_always_on_bottom command without any pre-configured scope.",
1877
+ "type": "string",
1878
+ "enum": [
1879
+ "window:deny-set-always-on-bottom"
1880
+ ]
1881
+ },
1882
+ {
1883
+ "description": "window:deny-set-always-on-top -> Denies the set_always_on_top command without any pre-configured scope.",
1884
+ "type": "string",
1885
+ "enum": [
1886
+ "window:deny-set-always-on-top"
1887
+ ]
1888
+ },
1889
+ {
1890
+ "description": "window:deny-set-closable -> Denies the set_closable command without any pre-configured scope.",
1891
+ "type": "string",
1892
+ "enum": [
1893
+ "window:deny-set-closable"
1894
+ ]
1895
+ },
1896
+ {
1897
+ "description": "window:deny-set-content-protected -> Denies the set_content_protected command without any pre-configured scope.",
1898
+ "type": "string",
1899
+ "enum": [
1900
+ "window:deny-set-content-protected"
1901
+ ]
1902
+ },
1903
+ {
1904
+ "description": "window:deny-set-cursor-grab -> Denies the set_cursor_grab command without any pre-configured scope.",
1905
+ "type": "string",
1906
+ "enum": [
1907
+ "window:deny-set-cursor-grab"
1908
+ ]
1909
+ },
1910
+ {
1911
+ "description": "window:deny-set-cursor-icon -> Denies the set_cursor_icon command without any pre-configured scope.",
1912
+ "type": "string",
1913
+ "enum": [
1914
+ "window:deny-set-cursor-icon"
1915
+ ]
1916
+ },
1917
+ {
1918
+ "description": "window:deny-set-cursor-position -> Denies the set_cursor_position command without any pre-configured scope.",
1919
+ "type": "string",
1920
+ "enum": [
1921
+ "window:deny-set-cursor-position"
1922
+ ]
1923
+ },
1924
+ {
1925
+ "description": "window:deny-set-cursor-visible -> Denies the set_cursor_visible command without any pre-configured scope.",
1926
+ "type": "string",
1927
+ "enum": [
1928
+ "window:deny-set-cursor-visible"
1929
+ ]
1930
+ },
1931
+ {
1932
+ "description": "window:deny-set-decorations -> Denies the set_decorations command without any pre-configured scope.",
1933
+ "type": "string",
1934
+ "enum": [
1935
+ "window:deny-set-decorations"
1936
+ ]
1937
+ },
1938
+ {
1939
+ "description": "window:deny-set-effects -> Denies the set_effects command without any pre-configured scope.",
1940
+ "type": "string",
1941
+ "enum": [
1942
+ "window:deny-set-effects"
1943
+ ]
1944
+ },
1945
+ {
1946
+ "description": "window:deny-set-focus -> Denies the set_focus command without any pre-configured scope.",
1947
+ "type": "string",
1948
+ "enum": [
1949
+ "window:deny-set-focus"
1950
+ ]
1951
+ },
1952
+ {
1953
+ "description": "window:deny-set-fullscreen -> Denies the set_fullscreen command without any pre-configured scope.",
1954
+ "type": "string",
1955
+ "enum": [
1956
+ "window:deny-set-fullscreen"
1957
+ ]
1958
+ },
1959
+ {
1960
+ "description": "window:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
1961
+ "type": "string",
1962
+ "enum": [
1963
+ "window:deny-set-icon"
1964
+ ]
1965
+ },
1966
+ {
1967
+ "description": "window:deny-set-ignore-cursor-events -> Denies the set_ignore_cursor_events command without any pre-configured scope.",
1968
+ "type": "string",
1969
+ "enum": [
1970
+ "window:deny-set-ignore-cursor-events"
1971
+ ]
1972
+ },
1973
+ {
1974
+ "description": "window:deny-set-max-size -> Denies the set_max_size command without any pre-configured scope.",
1975
+ "type": "string",
1976
+ "enum": [
1977
+ "window:deny-set-max-size"
1978
+ ]
1979
+ },
1980
+ {
1981
+ "description": "window:deny-set-maximizable -> Denies the set_maximizable command without any pre-configured scope.",
1982
+ "type": "string",
1983
+ "enum": [
1984
+ "window:deny-set-maximizable"
1985
+ ]
1986
+ },
1987
+ {
1988
+ "description": "window:deny-set-min-size -> Denies the set_min_size command without any pre-configured scope.",
1989
+ "type": "string",
1990
+ "enum": [
1991
+ "window:deny-set-min-size"
1992
+ ]
1993
+ },
1994
+ {
1995
+ "description": "window:deny-set-minimizable -> Denies the set_minimizable command without any pre-configured scope.",
1996
+ "type": "string",
1997
+ "enum": [
1998
+ "window:deny-set-minimizable"
1999
+ ]
2000
+ },
2001
+ {
2002
+ "description": "window:deny-set-position -> Denies the set_position command without any pre-configured scope.",
2003
+ "type": "string",
2004
+ "enum": [
2005
+ "window:deny-set-position"
2006
+ ]
2007
+ },
2008
+ {
2009
+ "description": "window:deny-set-progress-bar -> Denies the set_progress_bar command without any pre-configured scope.",
2010
+ "type": "string",
2011
+ "enum": [
2012
+ "window:deny-set-progress-bar"
2013
+ ]
2014
+ },
2015
+ {
2016
+ "description": "window:deny-set-resizable -> Denies the set_resizable command without any pre-configured scope.",
2017
+ "type": "string",
2018
+ "enum": [
2019
+ "window:deny-set-resizable"
2020
+ ]
2021
+ },
2022
+ {
2023
+ "description": "window:deny-set-shadow -> Denies the set_shadow command without any pre-configured scope.",
2024
+ "type": "string",
2025
+ "enum": [
2026
+ "window:deny-set-shadow"
2027
+ ]
2028
+ },
2029
+ {
2030
+ "description": "window:deny-set-size -> Denies the set_size command without any pre-configured scope.",
2031
+ "type": "string",
2032
+ "enum": [
2033
+ "window:deny-set-size"
2034
+ ]
2035
+ },
2036
+ {
2037
+ "description": "window:deny-set-skip-taskbar -> Denies the set_skip_taskbar command without any pre-configured scope.",
2038
+ "type": "string",
2039
+ "enum": [
2040
+ "window:deny-set-skip-taskbar"
2041
+ ]
2042
+ },
2043
+ {
2044
+ "description": "window:deny-set-title -> Denies the set_title command without any pre-configured scope.",
2045
+ "type": "string",
2046
+ "enum": [
2047
+ "window:deny-set-title"
2048
+ ]
2049
+ },
2050
+ {
2051
+ "description": "window:deny-set-title-bar-style -> Denies the set_title_bar_style command without any pre-configured scope.",
2052
+ "type": "string",
2053
+ "enum": [
2054
+ "window:deny-set-title-bar-style"
2055
+ ]
2056
+ },
2057
+ {
2058
+ "description": "window:deny-set-visible-on-all-workspaces -> Denies the set_visible_on_all_workspaces command without any pre-configured scope.",
2059
+ "type": "string",
2060
+ "enum": [
2061
+ "window:deny-set-visible-on-all-workspaces"
2062
+ ]
2063
+ },
2064
+ {
2065
+ "description": "window:deny-show -> Denies the show command without any pre-configured scope.",
2066
+ "type": "string",
2067
+ "enum": [
2068
+ "window:deny-show"
2069
+ ]
2070
+ },
2071
+ {
2072
+ "description": "window:deny-start-dragging -> Denies the start_dragging command without any pre-configured scope.",
2073
+ "type": "string",
2074
+ "enum": [
2075
+ "window:deny-start-dragging"
2076
+ ]
2077
+ },
2078
+ {
2079
+ "description": "window:deny-start-resize-dragging -> Denies the start_resize_dragging command without any pre-configured scope.",
2080
+ "type": "string",
2081
+ "enum": [
2082
+ "window:deny-start-resize-dragging"
2083
+ ]
2084
+ },
2085
+ {
2086
+ "description": "window:deny-theme -> Denies the theme command without any pre-configured scope.",
2087
+ "type": "string",
2088
+ "enum": [
2089
+ "window:deny-theme"
2090
+ ]
2091
+ },
2092
+ {
2093
+ "description": "window:deny-title -> Denies the title command without any pre-configured scope.",
2094
+ "type": "string",
2095
+ "enum": [
2096
+ "window:deny-title"
2097
+ ]
2098
+ },
2099
+ {
2100
+ "description": "window:deny-toggle-maximize -> Denies the toggle_maximize command without any pre-configured scope.",
2101
+ "type": "string",
2102
+ "enum": [
2103
+ "window:deny-toggle-maximize"
2104
+ ]
2105
+ },
2106
+ {
2107
+ "description": "window:deny-unmaximize -> Denies the unmaximize command without any pre-configured scope.",
2108
+ "type": "string",
2109
+ "enum": [
2110
+ "window:deny-unmaximize"
2111
+ ]
2112
+ },
2113
+ {
2114
+ "description": "window:deny-unminimize -> Denies the unminimize command without any pre-configured scope.",
2115
+ "type": "string",
2116
+ "enum": [
2117
+ "window:deny-unminimize"
2118
+ ]
2119
+ }
2120
+ ]
2121
+ },
2122
+ "Value": {
2123
+ "description": "All supported ACL values.",
2124
+ "anyOf": [
2125
+ {
2126
+ "description": "Represents a null JSON value.",
2127
+ "type": "null"
2128
+ },
2129
+ {
2130
+ "description": "Represents a [`bool`].",
2131
+ "type": "boolean"
2132
+ },
2133
+ {
2134
+ "description": "Represents a valid ACL [`Number`].",
2135
+ "allOf": [
2136
+ {
2137
+ "$ref": "#/definitions/Number"
2138
+ }
2139
+ ]
2140
+ },
2141
+ {
2142
+ "description": "Represents a [`String`].",
2143
+ "type": "string"
2144
+ },
2145
+ {
2146
+ "description": "Represents a list of other [`Value`]s.",
2147
+ "type": "array",
2148
+ "items": {
2149
+ "$ref": "#/definitions/Value"
2150
+ }
2151
+ },
2152
+ {
2153
+ "description": "Represents a map of [`String`] keys to [`Value`]s.",
2154
+ "type": "object",
2155
+ "additionalProperties": {
2156
+ "$ref": "#/definitions/Value"
2157
+ }
2158
+ }
2159
+ ]
2160
+ },
2161
+ "Number": {
2162
+ "description": "A valid ACL number.",
2163
+ "anyOf": [
2164
+ {
2165
+ "description": "Represents an [`i64`].",
2166
+ "type": "integer",
2167
+ "format": "int64"
2168
+ },
2169
+ {
2170
+ "description": "Represents a [`f64`].",
2171
+ "type": "number",
2172
+ "format": "double"
2173
+ }
2174
+ ]
2175
+ },
2176
+ "Target": {
2177
+ "description": "Platform target.",
2178
+ "oneOf": [
2179
+ {
2180
+ "description": "MacOS.",
2181
+ "type": "string",
2182
+ "enum": [
2183
+ "macOS"
2184
+ ]
2185
+ },
2186
+ {
2187
+ "description": "Windows.",
2188
+ "type": "string",
2189
+ "enum": [
2190
+ "windows"
2191
+ ]
2192
+ },
2193
+ {
2194
+ "description": "Linux.",
2195
+ "type": "string",
2196
+ "enum": [
2197
+ "linux"
2198
+ ]
2199
+ },
2200
+ {
2201
+ "description": "Android.",
2202
+ "type": "string",
2203
+ "enum": [
2204
+ "android"
2205
+ ]
2206
+ },
2207
+ {
2208
+ "description": "iOS.",
2209
+ "type": "string",
2210
+ "enum": [
2211
+ "iOS"
2212
+ ]
2213
+ }
2214
+ ]
2215
+ }
2216
+ }
2217
+}
\ No newline at end of file
examples/tauri-app/src-tauri/gen/schemas/capabilities.json
new
+1
@@ -0,0 +1 @@
1
+{"default":{"identifier":"default","description":"enables the default permissions","local":true,"windows":["main"],"permissions":["path:default","event:default","window:default","webview:default","app:default","resources:default","image:default","menu:default","tray:default","admob:default"]}}
\ No newline at end of file
examples/tauri-app/src-tauri/gen/schemas/mobile-schema.json
new
+2217
@@ -0,0 +1,2217 @@
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-ping -> Enables the ping command without any pre-configured scope.",
183
+ "type": "string",
184
+ "enum": [
185
+ "admob:allow-ping"
186
+ ]
187
+ },
188
+ {
189
+ "description": "admob:deny-ping -> Denies the ping command without any pre-configured scope.",
190
+ "type": "string",
191
+ "enum": [
192
+ "admob:deny-ping"
193
+ ]
194
+ },
195
+ {
196
+ "description": "app:default -> Default permissions for the plugin.",
197
+ "type": "string",
198
+ "enum": [
199
+ "app:default"
200
+ ]
201
+ },
202
+ {
203
+ "description": "app:allow-app-hide -> Enables the app_hide command without any pre-configured scope.",
204
+ "type": "string",
205
+ "enum": [
206
+ "app:allow-app-hide"
207
+ ]
208
+ },
209
+ {
210
+ "description": "app:allow-app-show -> Enables the app_show command without any pre-configured scope.",
211
+ "type": "string",
212
+ "enum": [
213
+ "app:allow-app-show"
214
+ ]
215
+ },
216
+ {
217
+ "description": "app:allow-default-window-icon -> Enables the default_window_icon command without any pre-configured scope.",
218
+ "type": "string",
219
+ "enum": [
220
+ "app:allow-default-window-icon"
221
+ ]
222
+ },
223
+ {
224
+ "description": "app:allow-name -> Enables the name command without any pre-configured scope.",
225
+ "type": "string",
226
+ "enum": [
227
+ "app:allow-name"
228
+ ]
229
+ },
230
+ {
231
+ "description": "app:allow-tauri-version -> Enables the tauri_version command without any pre-configured scope.",
232
+ "type": "string",
233
+ "enum": [
234
+ "app:allow-tauri-version"
235
+ ]
236
+ },
237
+ {
238
+ "description": "app:allow-version -> Enables the version command without any pre-configured scope.",
239
+ "type": "string",
240
+ "enum": [
241
+ "app:allow-version"
242
+ ]
243
+ },
244
+ {
245
+ "description": "app:deny-app-hide -> Denies the app_hide command without any pre-configured scope.",
246
+ "type": "string",
247
+ "enum": [
248
+ "app:deny-app-hide"
249
+ ]
250
+ },
251
+ {
252
+ "description": "app:deny-app-show -> Denies the app_show command without any pre-configured scope.",
253
+ "type": "string",
254
+ "enum": [
255
+ "app:deny-app-show"
256
+ ]
257
+ },
258
+ {
259
+ "description": "app:deny-default-window-icon -> Denies the default_window_icon command without any pre-configured scope.",
260
+ "type": "string",
261
+ "enum": [
262
+ "app:deny-default-window-icon"
263
+ ]
264
+ },
265
+ {
266
+ "description": "app:deny-name -> Denies the name command without any pre-configured scope.",
267
+ "type": "string",
268
+ "enum": [
269
+ "app:deny-name"
270
+ ]
271
+ },
272
+ {
273
+ "description": "app:deny-tauri-version -> Denies the tauri_version command without any pre-configured scope.",
274
+ "type": "string",
275
+ "enum": [
276
+ "app:deny-tauri-version"
277
+ ]
278
+ },
279
+ {
280
+ "description": "app:deny-version -> Denies the version command without any pre-configured scope.",
281
+ "type": "string",
282
+ "enum": [
283
+ "app:deny-version"
284
+ ]
285
+ },
286
+ {
287
+ "description": "event:default -> Default permissions for the plugin.",
288
+ "type": "string",
289
+ "enum": [
290
+ "event:default"
291
+ ]
292
+ },
293
+ {
294
+ "description": "event:allow-emit -> Enables the emit command without any pre-configured scope.",
295
+ "type": "string",
296
+ "enum": [
297
+ "event:allow-emit"
298
+ ]
299
+ },
300
+ {
301
+ "description": "event:allow-emit-to -> Enables the emit_to command without any pre-configured scope.",
302
+ "type": "string",
303
+ "enum": [
304
+ "event:allow-emit-to"
305
+ ]
306
+ },
307
+ {
308
+ "description": "event:allow-listen -> Enables the listen command without any pre-configured scope.",
309
+ "type": "string",
310
+ "enum": [
311
+ "event:allow-listen"
312
+ ]
313
+ },
314
+ {
315
+ "description": "event:allow-unlisten -> Enables the unlisten command without any pre-configured scope.",
316
+ "type": "string",
317
+ "enum": [
318
+ "event:allow-unlisten"
319
+ ]
320
+ },
321
+ {
322
+ "description": "event:deny-emit -> Denies the emit command without any pre-configured scope.",
323
+ "type": "string",
324
+ "enum": [
325
+ "event:deny-emit"
326
+ ]
327
+ },
328
+ {
329
+ "description": "event:deny-emit-to -> Denies the emit_to command without any pre-configured scope.",
330
+ "type": "string",
331
+ "enum": [
332
+ "event:deny-emit-to"
333
+ ]
334
+ },
335
+ {
336
+ "description": "event:deny-listen -> Denies the listen command without any pre-configured scope.",
337
+ "type": "string",
338
+ "enum": [
339
+ "event:deny-listen"
340
+ ]
341
+ },
342
+ {
343
+ "description": "event:deny-unlisten -> Denies the unlisten command without any pre-configured scope.",
344
+ "type": "string",
345
+ "enum": [
346
+ "event:deny-unlisten"
347
+ ]
348
+ },
349
+ {
350
+ "description": "image:default -> Default permissions for the plugin.",
351
+ "type": "string",
352
+ "enum": [
353
+ "image:default"
354
+ ]
355
+ },
356
+ {
357
+ "description": "image:allow-from-bytes -> Enables the from_bytes command without any pre-configured scope.",
358
+ "type": "string",
359
+ "enum": [
360
+ "image:allow-from-bytes"
361
+ ]
362
+ },
363
+ {
364
+ "description": "image:allow-from-path -> Enables the from_path command without any pre-configured scope.",
365
+ "type": "string",
366
+ "enum": [
367
+ "image:allow-from-path"
368
+ ]
369
+ },
370
+ {
371
+ "description": "image:allow-new -> Enables the new command without any pre-configured scope.",
372
+ "type": "string",
373
+ "enum": [
374
+ "image:allow-new"
375
+ ]
376
+ },
377
+ {
378
+ "description": "image:allow-rgba -> Enables the rgba command without any pre-configured scope.",
379
+ "type": "string",
380
+ "enum": [
381
+ "image:allow-rgba"
382
+ ]
383
+ },
384
+ {
385
+ "description": "image:allow-size -> Enables the size command without any pre-configured scope.",
386
+ "type": "string",
387
+ "enum": [
388
+ "image:allow-size"
389
+ ]
390
+ },
391
+ {
392
+ "description": "image:deny-from-bytes -> Denies the from_bytes command without any pre-configured scope.",
393
+ "type": "string",
394
+ "enum": [
395
+ "image:deny-from-bytes"
396
+ ]
397
+ },
398
+ {
399
+ "description": "image:deny-from-path -> Denies the from_path command without any pre-configured scope.",
400
+ "type": "string",
401
+ "enum": [
402
+ "image:deny-from-path"
403
+ ]
404
+ },
405
+ {
406
+ "description": "image:deny-new -> Denies the new command without any pre-configured scope.",
407
+ "type": "string",
408
+ "enum": [
409
+ "image:deny-new"
410
+ ]
411
+ },
412
+ {
413
+ "description": "image:deny-rgba -> Denies the rgba command without any pre-configured scope.",
414
+ "type": "string",
415
+ "enum": [
416
+ "image:deny-rgba"
417
+ ]
418
+ },
419
+ {
420
+ "description": "image:deny-size -> Denies the size command without any pre-configured scope.",
421
+ "type": "string",
422
+ "enum": [
423
+ "image:deny-size"
424
+ ]
425
+ },
426
+ {
427
+ "description": "menu:default -> Default permissions for the plugin.",
428
+ "type": "string",
429
+ "enum": [
430
+ "menu:default"
431
+ ]
432
+ },
433
+ {
434
+ "description": "menu:allow-append -> Enables the append command without any pre-configured scope.",
435
+ "type": "string",
436
+ "enum": [
437
+ "menu:allow-append"
438
+ ]
439
+ },
440
+ {
441
+ "description": "menu:allow-create-default -> Enables the create_default command without any pre-configured scope.",
442
+ "type": "string",
443
+ "enum": [
444
+ "menu:allow-create-default"
445
+ ]
446
+ },
447
+ {
448
+ "description": "menu:allow-get -> Enables the get command without any pre-configured scope.",
449
+ "type": "string",
450
+ "enum": [
451
+ "menu:allow-get"
452
+ ]
453
+ },
454
+ {
455
+ "description": "menu:allow-insert -> Enables the insert command without any pre-configured scope.",
456
+ "type": "string",
457
+ "enum": [
458
+ "menu:allow-insert"
459
+ ]
460
+ },
461
+ {
462
+ "description": "menu:allow-is-checked -> Enables the is_checked command without any pre-configured scope.",
463
+ "type": "string",
464
+ "enum": [
465
+ "menu:allow-is-checked"
466
+ ]
467
+ },
468
+ {
469
+ "description": "menu:allow-is-enabled -> Enables the is_enabled command without any pre-configured scope.",
470
+ "type": "string",
471
+ "enum": [
472
+ "menu:allow-is-enabled"
473
+ ]
474
+ },
475
+ {
476
+ "description": "menu:allow-items -> Enables the items command without any pre-configured scope.",
477
+ "type": "string",
478
+ "enum": [
479
+ "menu:allow-items"
480
+ ]
481
+ },
482
+ {
483
+ "description": "menu:allow-new -> Enables the new command without any pre-configured scope.",
484
+ "type": "string",
485
+ "enum": [
486
+ "menu:allow-new"
487
+ ]
488
+ },
489
+ {
490
+ "description": "menu:allow-popup -> Enables the popup command without any pre-configured scope.",
491
+ "type": "string",
492
+ "enum": [
493
+ "menu:allow-popup"
494
+ ]
495
+ },
496
+ {
497
+ "description": "menu:allow-prepend -> Enables the prepend command without any pre-configured scope.",
498
+ "type": "string",
499
+ "enum": [
500
+ "menu:allow-prepend"
501
+ ]
502
+ },
503
+ {
504
+ "description": "menu:allow-remove -> Enables the remove command without any pre-configured scope.",
505
+ "type": "string",
506
+ "enum": [
507
+ "menu:allow-remove"
508
+ ]
509
+ },
510
+ {
511
+ "description": "menu:allow-remove-at -> Enables the remove_at command without any pre-configured scope.",
512
+ "type": "string",
513
+ "enum": [
514
+ "menu:allow-remove-at"
515
+ ]
516
+ },
517
+ {
518
+ "description": "menu:allow-set-accelerator -> Enables the set_accelerator command without any pre-configured scope.",
519
+ "type": "string",
520
+ "enum": [
521
+ "menu:allow-set-accelerator"
522
+ ]
523
+ },
524
+ {
525
+ "description": "menu:allow-set-as-app-menu -> Enables the set_as_app_menu command without any pre-configured scope.",
526
+ "type": "string",
527
+ "enum": [
528
+ "menu:allow-set-as-app-menu"
529
+ ]
530
+ },
531
+ {
532
+ "description": "menu:allow-set-as-help-menu-for-nsapp -> Enables the set_as_help_menu_for_nsapp command without any pre-configured scope.",
533
+ "type": "string",
534
+ "enum": [
535
+ "menu:allow-set-as-help-menu-for-nsapp"
536
+ ]
537
+ },
538
+ {
539
+ "description": "menu:allow-set-as-window-menu -> Enables the set_as_window_menu command without any pre-configured scope.",
540
+ "type": "string",
541
+ "enum": [
542
+ "menu:allow-set-as-window-menu"
543
+ ]
544
+ },
545
+ {
546
+ "description": "menu:allow-set-as-windows-menu-for-nsapp -> Enables the set_as_windows_menu_for_nsapp command without any pre-configured scope.",
547
+ "type": "string",
548
+ "enum": [
549
+ "menu:allow-set-as-windows-menu-for-nsapp"
550
+ ]
551
+ },
552
+ {
553
+ "description": "menu:allow-set-checked -> Enables the set_checked command without any pre-configured scope.",
554
+ "type": "string",
555
+ "enum": [
556
+ "menu:allow-set-checked"
557
+ ]
558
+ },
559
+ {
560
+ "description": "menu:allow-set-enabled -> Enables the set_enabled command without any pre-configured scope.",
561
+ "type": "string",
562
+ "enum": [
563
+ "menu:allow-set-enabled"
564
+ ]
565
+ },
566
+ {
567
+ "description": "menu:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
568
+ "type": "string",
569
+ "enum": [
570
+ "menu:allow-set-icon"
571
+ ]
572
+ },
573
+ {
574
+ "description": "menu:allow-set-text -> Enables the set_text command without any pre-configured scope.",
575
+ "type": "string",
576
+ "enum": [
577
+ "menu:allow-set-text"
578
+ ]
579
+ },
580
+ {
581
+ "description": "menu:allow-text -> Enables the text command without any pre-configured scope.",
582
+ "type": "string",
583
+ "enum": [
584
+ "menu:allow-text"
585
+ ]
586
+ },
587
+ {
588
+ "description": "menu:deny-append -> Denies the append command without any pre-configured scope.",
589
+ "type": "string",
590
+ "enum": [
591
+ "menu:deny-append"
592
+ ]
593
+ },
594
+ {
595
+ "description": "menu:deny-create-default -> Denies the create_default command without any pre-configured scope.",
596
+ "type": "string",
597
+ "enum": [
598
+ "menu:deny-create-default"
599
+ ]
600
+ },
601
+ {
602
+ "description": "menu:deny-get -> Denies the get command without any pre-configured scope.",
603
+ "type": "string",
604
+ "enum": [
605
+ "menu:deny-get"
606
+ ]
607
+ },
608
+ {
609
+ "description": "menu:deny-insert -> Denies the insert command without any pre-configured scope.",
610
+ "type": "string",
611
+ "enum": [
612
+ "menu:deny-insert"
613
+ ]
614
+ },
615
+ {
616
+ "description": "menu:deny-is-checked -> Denies the is_checked command without any pre-configured scope.",
617
+ "type": "string",
618
+ "enum": [
619
+ "menu:deny-is-checked"
620
+ ]
621
+ },
622
+ {
623
+ "description": "menu:deny-is-enabled -> Denies the is_enabled command without any pre-configured scope.",
624
+ "type": "string",
625
+ "enum": [
626
+ "menu:deny-is-enabled"
627
+ ]
628
+ },
629
+ {
630
+ "description": "menu:deny-items -> Denies the items command without any pre-configured scope.",
631
+ "type": "string",
632
+ "enum": [
633
+ "menu:deny-items"
634
+ ]
635
+ },
636
+ {
637
+ "description": "menu:deny-new -> Denies the new command without any pre-configured scope.",
638
+ "type": "string",
639
+ "enum": [
640
+ "menu:deny-new"
641
+ ]
642
+ },
643
+ {
644
+ "description": "menu:deny-popup -> Denies the popup command without any pre-configured scope.",
645
+ "type": "string",
646
+ "enum": [
647
+ "menu:deny-popup"
648
+ ]
649
+ },
650
+ {
651
+ "description": "menu:deny-prepend -> Denies the prepend command without any pre-configured scope.",
652
+ "type": "string",
653
+ "enum": [
654
+ "menu:deny-prepend"
655
+ ]
656
+ },
657
+ {
658
+ "description": "menu:deny-remove -> Denies the remove command without any pre-configured scope.",
659
+ "type": "string",
660
+ "enum": [
661
+ "menu:deny-remove"
662
+ ]
663
+ },
664
+ {
665
+ "description": "menu:deny-remove-at -> Denies the remove_at command without any pre-configured scope.",
666
+ "type": "string",
667
+ "enum": [
668
+ "menu:deny-remove-at"
669
+ ]
670
+ },
671
+ {
672
+ "description": "menu:deny-set-accelerator -> Denies the set_accelerator command without any pre-configured scope.",
673
+ "type": "string",
674
+ "enum": [
675
+ "menu:deny-set-accelerator"
676
+ ]
677
+ },
678
+ {
679
+ "description": "menu:deny-set-as-app-menu -> Denies the set_as_app_menu command without any pre-configured scope.",
680
+ "type": "string",
681
+ "enum": [
682
+ "menu:deny-set-as-app-menu"
683
+ ]
684
+ },
685
+ {
686
+ "description": "menu:deny-set-as-help-menu-for-nsapp -> Denies the set_as_help_menu_for_nsapp command without any pre-configured scope.",
687
+ "type": "string",
688
+ "enum": [
689
+ "menu:deny-set-as-help-menu-for-nsapp"
690
+ ]
691
+ },
692
+ {
693
+ "description": "menu:deny-set-as-window-menu -> Denies the set_as_window_menu command without any pre-configured scope.",
694
+ "type": "string",
695
+ "enum": [
696
+ "menu:deny-set-as-window-menu"
697
+ ]
698
+ },
699
+ {
700
+ "description": "menu:deny-set-as-windows-menu-for-nsapp -> Denies the set_as_windows_menu_for_nsapp command without any pre-configured scope.",
701
+ "type": "string",
702
+ "enum": [
703
+ "menu:deny-set-as-windows-menu-for-nsapp"
704
+ ]
705
+ },
706
+ {
707
+ "description": "menu:deny-set-checked -> Denies the set_checked command without any pre-configured scope.",
708
+ "type": "string",
709
+ "enum": [
710
+ "menu:deny-set-checked"
711
+ ]
712
+ },
713
+ {
714
+ "description": "menu:deny-set-enabled -> Denies the set_enabled command without any pre-configured scope.",
715
+ "type": "string",
716
+ "enum": [
717
+ "menu:deny-set-enabled"
718
+ ]
719
+ },
720
+ {
721
+ "description": "menu:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
722
+ "type": "string",
723
+ "enum": [
724
+ "menu:deny-set-icon"
725
+ ]
726
+ },
727
+ {
728
+ "description": "menu:deny-set-text -> Denies the set_text command without any pre-configured scope.",
729
+ "type": "string",
730
+ "enum": [
731
+ "menu:deny-set-text"
732
+ ]
733
+ },
734
+ {
735
+ "description": "menu:deny-text -> Denies the text command without any pre-configured scope.",
736
+ "type": "string",
737
+ "enum": [
738
+ "menu:deny-text"
739
+ ]
740
+ },
741
+ {
742
+ "description": "path:default -> Default permissions for the plugin.",
743
+ "type": "string",
744
+ "enum": [
745
+ "path:default"
746
+ ]
747
+ },
748
+ {
749
+ "description": "path:allow-basename -> Enables the basename command without any pre-configured scope.",
750
+ "type": "string",
751
+ "enum": [
752
+ "path:allow-basename"
753
+ ]
754
+ },
755
+ {
756
+ "description": "path:allow-dirname -> Enables the dirname command without any pre-configured scope.",
757
+ "type": "string",
758
+ "enum": [
759
+ "path:allow-dirname"
760
+ ]
761
+ },
762
+ {
763
+ "description": "path:allow-extname -> Enables the extname command without any pre-configured scope.",
764
+ "type": "string",
765
+ "enum": [
766
+ "path:allow-extname"
767
+ ]
768
+ },
769
+ {
770
+ "description": "path:allow-is-absolute -> Enables the is_absolute command without any pre-configured scope.",
771
+ "type": "string",
772
+ "enum": [
773
+ "path:allow-is-absolute"
774
+ ]
775
+ },
776
+ {
777
+ "description": "path:allow-join -> Enables the join command without any pre-configured scope.",
778
+ "type": "string",
779
+ "enum": [
780
+ "path:allow-join"
781
+ ]
782
+ },
783
+ {
784
+ "description": "path:allow-normalize -> Enables the normalize command without any pre-configured scope.",
785
+ "type": "string",
786
+ "enum": [
787
+ "path:allow-normalize"
788
+ ]
789
+ },
790
+ {
791
+ "description": "path:allow-resolve -> Enables the resolve command without any pre-configured scope.",
792
+ "type": "string",
793
+ "enum": [
794
+ "path:allow-resolve"
795
+ ]
796
+ },
797
+ {
798
+ "description": "path:allow-resolve-directory -> Enables the resolve_directory command without any pre-configured scope.",
799
+ "type": "string",
800
+ "enum": [
801
+ "path:allow-resolve-directory"
802
+ ]
803
+ },
804
+ {
805
+ "description": "path:deny-basename -> Denies the basename command without any pre-configured scope.",
806
+ "type": "string",
807
+ "enum": [
808
+ "path:deny-basename"
809
+ ]
810
+ },
811
+ {
812
+ "description": "path:deny-dirname -> Denies the dirname command without any pre-configured scope.",
813
+ "type": "string",
814
+ "enum": [
815
+ "path:deny-dirname"
816
+ ]
817
+ },
818
+ {
819
+ "description": "path:deny-extname -> Denies the extname command without any pre-configured scope.",
820
+ "type": "string",
821
+ "enum": [
822
+ "path:deny-extname"
823
+ ]
824
+ },
825
+ {
826
+ "description": "path:deny-is-absolute -> Denies the is_absolute command without any pre-configured scope.",
827
+ "type": "string",
828
+ "enum": [
829
+ "path:deny-is-absolute"
830
+ ]
831
+ },
832
+ {
833
+ "description": "path:deny-join -> Denies the join command without any pre-configured scope.",
834
+ "type": "string",
835
+ "enum": [
836
+ "path:deny-join"
837
+ ]
838
+ },
839
+ {
840
+ "description": "path:deny-normalize -> Denies the normalize command without any pre-configured scope.",
841
+ "type": "string",
842
+ "enum": [
843
+ "path:deny-normalize"
844
+ ]
845
+ },
846
+ {
847
+ "description": "path:deny-resolve -> Denies the resolve command without any pre-configured scope.",
848
+ "type": "string",
849
+ "enum": [
850
+ "path:deny-resolve"
851
+ ]
852
+ },
853
+ {
854
+ "description": "path:deny-resolve-directory -> Denies the resolve_directory command without any pre-configured scope.",
855
+ "type": "string",
856
+ "enum": [
857
+ "path:deny-resolve-directory"
858
+ ]
859
+ },
860
+ {
861
+ "description": "resources:default -> Default permissions for the plugin.",
862
+ "type": "string",
863
+ "enum": [
864
+ "resources:default"
865
+ ]
866
+ },
867
+ {
868
+ "description": "resources:allow-close -> Enables the close command without any pre-configured scope.",
869
+ "type": "string",
870
+ "enum": [
871
+ "resources:allow-close"
872
+ ]
873
+ },
874
+ {
875
+ "description": "resources:deny-close -> Denies the close command without any pre-configured scope.",
876
+ "type": "string",
877
+ "enum": [
878
+ "resources:deny-close"
879
+ ]
880
+ },
881
+ {
882
+ "description": "tray:default -> Default permissions for the plugin.",
883
+ "type": "string",
884
+ "enum": [
885
+ "tray:default"
886
+ ]
887
+ },
888
+ {
889
+ "description": "tray:allow-get-by-id -> Enables the get_by_id command without any pre-configured scope.",
890
+ "type": "string",
891
+ "enum": [
892
+ "tray:allow-get-by-id"
893
+ ]
894
+ },
895
+ {
896
+ "description": "tray:allow-new -> Enables the new command without any pre-configured scope.",
897
+ "type": "string",
898
+ "enum": [
899
+ "tray:allow-new"
900
+ ]
901
+ },
902
+ {
903
+ "description": "tray:allow-remove-by-id -> Enables the remove_by_id command without any pre-configured scope.",
904
+ "type": "string",
905
+ "enum": [
906
+ "tray:allow-remove-by-id"
907
+ ]
908
+ },
909
+ {
910
+ "description": "tray:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
911
+ "type": "string",
912
+ "enum": [
913
+ "tray:allow-set-icon"
914
+ ]
915
+ },
916
+ {
917
+ "description": "tray:allow-set-icon-as-template -> Enables the set_icon_as_template command without any pre-configured scope.",
918
+ "type": "string",
919
+ "enum": [
920
+ "tray:allow-set-icon-as-template"
921
+ ]
922
+ },
923
+ {
924
+ "description": "tray:allow-set-menu -> Enables the set_menu command without any pre-configured scope.",
925
+ "type": "string",
926
+ "enum": [
927
+ "tray:allow-set-menu"
928
+ ]
929
+ },
930
+ {
931
+ "description": "tray:allow-set-show-menu-on-left-click -> Enables the set_show_menu_on_left_click command without any pre-configured scope.",
932
+ "type": "string",
933
+ "enum": [
934
+ "tray:allow-set-show-menu-on-left-click"
935
+ ]
936
+ },
937
+ {
938
+ "description": "tray:allow-set-temp-dir-path -> Enables the set_temp_dir_path command without any pre-configured scope.",
939
+ "type": "string",
940
+ "enum": [
941
+ "tray:allow-set-temp-dir-path"
942
+ ]
943
+ },
944
+ {
945
+ "description": "tray:allow-set-title -> Enables the set_title command without any pre-configured scope.",
946
+ "type": "string",
947
+ "enum": [
948
+ "tray:allow-set-title"
949
+ ]
950
+ },
951
+ {
952
+ "description": "tray:allow-set-tooltip -> Enables the set_tooltip command without any pre-configured scope.",
953
+ "type": "string",
954
+ "enum": [
955
+ "tray:allow-set-tooltip"
956
+ ]
957
+ },
958
+ {
959
+ "description": "tray:allow-set-visible -> Enables the set_visible command without any pre-configured scope.",
960
+ "type": "string",
961
+ "enum": [
962
+ "tray:allow-set-visible"
963
+ ]
964
+ },
965
+ {
966
+ "description": "tray:deny-get-by-id -> Denies the get_by_id command without any pre-configured scope.",
967
+ "type": "string",
968
+ "enum": [
969
+ "tray:deny-get-by-id"
970
+ ]
971
+ },
972
+ {
973
+ "description": "tray:deny-new -> Denies the new command without any pre-configured scope.",
974
+ "type": "string",
975
+ "enum": [
976
+ "tray:deny-new"
977
+ ]
978
+ },
979
+ {
980
+ "description": "tray:deny-remove-by-id -> Denies the remove_by_id command without any pre-configured scope.",
981
+ "type": "string",
982
+ "enum": [
983
+ "tray:deny-remove-by-id"
984
+ ]
985
+ },
986
+ {
987
+ "description": "tray:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
988
+ "type": "string",
989
+ "enum": [
990
+ "tray:deny-set-icon"
991
+ ]
992
+ },
993
+ {
994
+ "description": "tray:deny-set-icon-as-template -> Denies the set_icon_as_template command without any pre-configured scope.",
995
+ "type": "string",
996
+ "enum": [
997
+ "tray:deny-set-icon-as-template"
998
+ ]
999
+ },
1000
+ {
1001
+ "description": "tray:deny-set-menu -> Denies the set_menu command without any pre-configured scope.",
1002
+ "type": "string",
1003
+ "enum": [
1004
+ "tray:deny-set-menu"
1005
+ ]
1006
+ },
1007
+ {
1008
+ "description": "tray:deny-set-show-menu-on-left-click -> Denies the set_show_menu_on_left_click command without any pre-configured scope.",
1009
+ "type": "string",
1010
+ "enum": [
1011
+ "tray:deny-set-show-menu-on-left-click"
1012
+ ]
1013
+ },
1014
+ {
1015
+ "description": "tray:deny-set-temp-dir-path -> Denies the set_temp_dir_path command without any pre-configured scope.",
1016
+ "type": "string",
1017
+ "enum": [
1018
+ "tray:deny-set-temp-dir-path"
1019
+ ]
1020
+ },
1021
+ {
1022
+ "description": "tray:deny-set-title -> Denies the set_title command without any pre-configured scope.",
1023
+ "type": "string",
1024
+ "enum": [
1025
+ "tray:deny-set-title"
1026
+ ]
1027
+ },
1028
+ {
1029
+ "description": "tray:deny-set-tooltip -> Denies the set_tooltip command without any pre-configured scope.",
1030
+ "type": "string",
1031
+ "enum": [
1032
+ "tray:deny-set-tooltip"
1033
+ ]
1034
+ },
1035
+ {
1036
+ "description": "tray:deny-set-visible -> Denies the set_visible command without any pre-configured scope.",
1037
+ "type": "string",
1038
+ "enum": [
1039
+ "tray:deny-set-visible"
1040
+ ]
1041
+ },
1042
+ {
1043
+ "description": "webview:default -> Default permissions for the plugin.",
1044
+ "type": "string",
1045
+ "enum": [
1046
+ "webview:default"
1047
+ ]
1048
+ },
1049
+ {
1050
+ "description": "webview:allow-create-webview -> Enables the create_webview command without any pre-configured scope.",
1051
+ "type": "string",
1052
+ "enum": [
1053
+ "webview:allow-create-webview"
1054
+ ]
1055
+ },
1056
+ {
1057
+ "description": "webview:allow-create-webview-window -> Enables the create_webview_window command without any pre-configured scope.",
1058
+ "type": "string",
1059
+ "enum": [
1060
+ "webview:allow-create-webview-window"
1061
+ ]
1062
+ },
1063
+ {
1064
+ "description": "webview:allow-internal-toggle-devtools -> Enables the internal_toggle_devtools command without any pre-configured scope.",
1065
+ "type": "string",
1066
+ "enum": [
1067
+ "webview:allow-internal-toggle-devtools"
1068
+ ]
1069
+ },
1070
+ {
1071
+ "description": "webview:allow-print -> Enables the print command without any pre-configured scope.",
1072
+ "type": "string",
1073
+ "enum": [
1074
+ "webview:allow-print"
1075
+ ]
1076
+ },
1077
+ {
1078
+ "description": "webview:allow-reparent -> Enables the reparent command without any pre-configured scope.",
1079
+ "type": "string",
1080
+ "enum": [
1081
+ "webview:allow-reparent"
1082
+ ]
1083
+ },
1084
+ {
1085
+ "description": "webview:allow-set-webview-focus -> Enables the set_webview_focus command without any pre-configured scope.",
1086
+ "type": "string",
1087
+ "enum": [
1088
+ "webview:allow-set-webview-focus"
1089
+ ]
1090
+ },
1091
+ {
1092
+ "description": "webview:allow-set-webview-position -> Enables the set_webview_position command without any pre-configured scope.",
1093
+ "type": "string",
1094
+ "enum": [
1095
+ "webview:allow-set-webview-position"
1096
+ ]
1097
+ },
1098
+ {
1099
+ "description": "webview:allow-set-webview-size -> Enables the set_webview_size command without any pre-configured scope.",
1100
+ "type": "string",
1101
+ "enum": [
1102
+ "webview:allow-set-webview-size"
1103
+ ]
1104
+ },
1105
+ {
1106
+ "description": "webview:allow-set-webview-zoom -> Enables the set_webview_zoom command without any pre-configured scope.",
1107
+ "type": "string",
1108
+ "enum": [
1109
+ "webview:allow-set-webview-zoom"
1110
+ ]
1111
+ },
1112
+ {
1113
+ "description": "webview:allow-webview-close -> Enables the webview_close command without any pre-configured scope.",
1114
+ "type": "string",
1115
+ "enum": [
1116
+ "webview:allow-webview-close"
1117
+ ]
1118
+ },
1119
+ {
1120
+ "description": "webview:allow-webview-position -> Enables the webview_position command without any pre-configured scope.",
1121
+ "type": "string",
1122
+ "enum": [
1123
+ "webview:allow-webview-position"
1124
+ ]
1125
+ },
1126
+ {
1127
+ "description": "webview:allow-webview-size -> Enables the webview_size command without any pre-configured scope.",
1128
+ "type": "string",
1129
+ "enum": [
1130
+ "webview:allow-webview-size"
1131
+ ]
1132
+ },
1133
+ {
1134
+ "description": "webview:deny-create-webview -> Denies the create_webview command without any pre-configured scope.",
1135
+ "type": "string",
1136
+ "enum": [
1137
+ "webview:deny-create-webview"
1138
+ ]
1139
+ },
1140
+ {
1141
+ "description": "webview:deny-create-webview-window -> Denies the create_webview_window command without any pre-configured scope.",
1142
+ "type": "string",
1143
+ "enum": [
1144
+ "webview:deny-create-webview-window"
1145
+ ]
1146
+ },
1147
+ {
1148
+ "description": "webview:deny-internal-toggle-devtools -> Denies the internal_toggle_devtools command without any pre-configured scope.",
1149
+ "type": "string",
1150
+ "enum": [
1151
+ "webview:deny-internal-toggle-devtools"
1152
+ ]
1153
+ },
1154
+ {
1155
+ "description": "webview:deny-print -> Denies the print command without any pre-configured scope.",
1156
+ "type": "string",
1157
+ "enum": [
1158
+ "webview:deny-print"
1159
+ ]
1160
+ },
1161
+ {
1162
+ "description": "webview:deny-reparent -> Denies the reparent command without any pre-configured scope.",
1163
+ "type": "string",
1164
+ "enum": [
1165
+ "webview:deny-reparent"
1166
+ ]
1167
+ },
1168
+ {
1169
+ "description": "webview:deny-set-webview-focus -> Denies the set_webview_focus command without any pre-configured scope.",
1170
+ "type": "string",
1171
+ "enum": [
1172
+ "webview:deny-set-webview-focus"
1173
+ ]
1174
+ },
1175
+ {
1176
+ "description": "webview:deny-set-webview-position -> Denies the set_webview_position command without any pre-configured scope.",
1177
+ "type": "string",
1178
+ "enum": [
1179
+ "webview:deny-set-webview-position"
1180
+ ]
1181
+ },
1182
+ {
1183
+ "description": "webview:deny-set-webview-size -> Denies the set_webview_size command without any pre-configured scope.",
1184
+ "type": "string",
1185
+ "enum": [
1186
+ "webview:deny-set-webview-size"
1187
+ ]
1188
+ },
1189
+ {
1190
+ "description": "webview:deny-set-webview-zoom -> Denies the set_webview_zoom command without any pre-configured scope.",
1191
+ "type": "string",
1192
+ "enum": [
1193
+ "webview:deny-set-webview-zoom"
1194
+ ]
1195
+ },
1196
+ {
1197
+ "description": "webview:deny-webview-close -> Denies the webview_close command without any pre-configured scope.",
1198
+ "type": "string",
1199
+ "enum": [
1200
+ "webview:deny-webview-close"
1201
+ ]
1202
+ },
1203
+ {
1204
+ "description": "webview:deny-webview-position -> Denies the webview_position command without any pre-configured scope.",
1205
+ "type": "string",
1206
+ "enum": [
1207
+ "webview:deny-webview-position"
1208
+ ]
1209
+ },
1210
+ {
1211
+ "description": "webview:deny-webview-size -> Denies the webview_size command without any pre-configured scope.",
1212
+ "type": "string",
1213
+ "enum": [
1214
+ "webview:deny-webview-size"
1215
+ ]
1216
+ },
1217
+ {
1218
+ "description": "window:default -> Default permissions for the plugin.",
1219
+ "type": "string",
1220
+ "enum": [
1221
+ "window:default"
1222
+ ]
1223
+ },
1224
+ {
1225
+ "description": "window:allow-available-monitors -> Enables the available_monitors command without any pre-configured scope.",
1226
+ "type": "string",
1227
+ "enum": [
1228
+ "window:allow-available-monitors"
1229
+ ]
1230
+ },
1231
+ {
1232
+ "description": "window:allow-center -> Enables the center command without any pre-configured scope.",
1233
+ "type": "string",
1234
+ "enum": [
1235
+ "window:allow-center"
1236
+ ]
1237
+ },
1238
+ {
1239
+ "description": "window:allow-close -> Enables the close command without any pre-configured scope.",
1240
+ "type": "string",
1241
+ "enum": [
1242
+ "window:allow-close"
1243
+ ]
1244
+ },
1245
+ {
1246
+ "description": "window:allow-create -> Enables the create command without any pre-configured scope.",
1247
+ "type": "string",
1248
+ "enum": [
1249
+ "window:allow-create"
1250
+ ]
1251
+ },
1252
+ {
1253
+ "description": "window:allow-current-monitor -> Enables the current_monitor command without any pre-configured scope.",
1254
+ "type": "string",
1255
+ "enum": [
1256
+ "window:allow-current-monitor"
1257
+ ]
1258
+ },
1259
+ {
1260
+ "description": "window:allow-cursor-position -> Enables the cursor_position command without any pre-configured scope.",
1261
+ "type": "string",
1262
+ "enum": [
1263
+ "window:allow-cursor-position"
1264
+ ]
1265
+ },
1266
+ {
1267
+ "description": "window:allow-destroy -> Enables the destroy command without any pre-configured scope.",
1268
+ "type": "string",
1269
+ "enum": [
1270
+ "window:allow-destroy"
1271
+ ]
1272
+ },
1273
+ {
1274
+ "description": "window:allow-hide -> Enables the hide command without any pre-configured scope.",
1275
+ "type": "string",
1276
+ "enum": [
1277
+ "window:allow-hide"
1278
+ ]
1279
+ },
1280
+ {
1281
+ "description": "window:allow-inner-position -> Enables the inner_position command without any pre-configured scope.",
1282
+ "type": "string",
1283
+ "enum": [
1284
+ "window:allow-inner-position"
1285
+ ]
1286
+ },
1287
+ {
1288
+ "description": "window:allow-inner-size -> Enables the inner_size command without any pre-configured scope.",
1289
+ "type": "string",
1290
+ "enum": [
1291
+ "window:allow-inner-size"
1292
+ ]
1293
+ },
1294
+ {
1295
+ "description": "window:allow-internal-toggle-maximize -> Enables the internal_toggle_maximize command without any pre-configured scope.",
1296
+ "type": "string",
1297
+ "enum": [
1298
+ "window:allow-internal-toggle-maximize"
1299
+ ]
1300
+ },
1301
+ {
1302
+ "description": "window:allow-is-closable -> Enables the is_closable command without any pre-configured scope.",
1303
+ "type": "string",
1304
+ "enum": [
1305
+ "window:allow-is-closable"
1306
+ ]
1307
+ },
1308
+ {
1309
+ "description": "window:allow-is-decorated -> Enables the is_decorated command without any pre-configured scope.",
1310
+ "type": "string",
1311
+ "enum": [
1312
+ "window:allow-is-decorated"
1313
+ ]
1314
+ },
1315
+ {
1316
+ "description": "window:allow-is-focused -> Enables the is_focused command without any pre-configured scope.",
1317
+ "type": "string",
1318
+ "enum": [
1319
+ "window:allow-is-focused"
1320
+ ]
1321
+ },
1322
+ {
1323
+ "description": "window:allow-is-fullscreen -> Enables the is_fullscreen command without any pre-configured scope.",
1324
+ "type": "string",
1325
+ "enum": [
1326
+ "window:allow-is-fullscreen"
1327
+ ]
1328
+ },
1329
+ {
1330
+ "description": "window:allow-is-maximizable -> Enables the is_maximizable command without any pre-configured scope.",
1331
+ "type": "string",
1332
+ "enum": [
1333
+ "window:allow-is-maximizable"
1334
+ ]
1335
+ },
1336
+ {
1337
+ "description": "window:allow-is-maximized -> Enables the is_maximized command without any pre-configured scope.",
1338
+ "type": "string",
1339
+ "enum": [
1340
+ "window:allow-is-maximized"
1341
+ ]
1342
+ },
1343
+ {
1344
+ "description": "window:allow-is-minimizable -> Enables the is_minimizable command without any pre-configured scope.",
1345
+ "type": "string",
1346
+ "enum": [
1347
+ "window:allow-is-minimizable"
1348
+ ]
1349
+ },
1350
+ {
1351
+ "description": "window:allow-is-minimized -> Enables the is_minimized command without any pre-configured scope.",
1352
+ "type": "string",
1353
+ "enum": [
1354
+ "window:allow-is-minimized"
1355
+ ]
1356
+ },
1357
+ {
1358
+ "description": "window:allow-is-resizable -> Enables the is_resizable command without any pre-configured scope.",
1359
+ "type": "string",
1360
+ "enum": [
1361
+ "window:allow-is-resizable"
1362
+ ]
1363
+ },
1364
+ {
1365
+ "description": "window:allow-is-visible -> Enables the is_visible command without any pre-configured scope.",
1366
+ "type": "string",
1367
+ "enum": [
1368
+ "window:allow-is-visible"
1369
+ ]
1370
+ },
1371
+ {
1372
+ "description": "window:allow-maximize -> Enables the maximize command without any pre-configured scope.",
1373
+ "type": "string",
1374
+ "enum": [
1375
+ "window:allow-maximize"
1376
+ ]
1377
+ },
1378
+ {
1379
+ "description": "window:allow-minimize -> Enables the minimize command without any pre-configured scope.",
1380
+ "type": "string",
1381
+ "enum": [
1382
+ "window:allow-minimize"
1383
+ ]
1384
+ },
1385
+ {
1386
+ "description": "window:allow-monitor-from-point -> Enables the monitor_from_point command without any pre-configured scope.",
1387
+ "type": "string",
1388
+ "enum": [
1389
+ "window:allow-monitor-from-point"
1390
+ ]
1391
+ },
1392
+ {
1393
+ "description": "window:allow-outer-position -> Enables the outer_position command without any pre-configured scope.",
1394
+ "type": "string",
1395
+ "enum": [
1396
+ "window:allow-outer-position"
1397
+ ]
1398
+ },
1399
+ {
1400
+ "description": "window:allow-outer-size -> Enables the outer_size command without any pre-configured scope.",
1401
+ "type": "string",
1402
+ "enum": [
1403
+ "window:allow-outer-size"
1404
+ ]
1405
+ },
1406
+ {
1407
+ "description": "window:allow-primary-monitor -> Enables the primary_monitor command without any pre-configured scope.",
1408
+ "type": "string",
1409
+ "enum": [
1410
+ "window:allow-primary-monitor"
1411
+ ]
1412
+ },
1413
+ {
1414
+ "description": "window:allow-request-user-attention -> Enables the request_user_attention command without any pre-configured scope.",
1415
+ "type": "string",
1416
+ "enum": [
1417
+ "window:allow-request-user-attention"
1418
+ ]
1419
+ },
1420
+ {
1421
+ "description": "window:allow-scale-factor -> Enables the scale_factor command without any pre-configured scope.",
1422
+ "type": "string",
1423
+ "enum": [
1424
+ "window:allow-scale-factor"
1425
+ ]
1426
+ },
1427
+ {
1428
+ "description": "window:allow-set-always-on-bottom -> Enables the set_always_on_bottom command without any pre-configured scope.",
1429
+ "type": "string",
1430
+ "enum": [
1431
+ "window:allow-set-always-on-bottom"
1432
+ ]
1433
+ },
1434
+ {
1435
+ "description": "window:allow-set-always-on-top -> Enables the set_always_on_top command without any pre-configured scope.",
1436
+ "type": "string",
1437
+ "enum": [
1438
+ "window:allow-set-always-on-top"
1439
+ ]
1440
+ },
1441
+ {
1442
+ "description": "window:allow-set-closable -> Enables the set_closable command without any pre-configured scope.",
1443
+ "type": "string",
1444
+ "enum": [
1445
+ "window:allow-set-closable"
1446
+ ]
1447
+ },
1448
+ {
1449
+ "description": "window:allow-set-content-protected -> Enables the set_content_protected command without any pre-configured scope.",
1450
+ "type": "string",
1451
+ "enum": [
1452
+ "window:allow-set-content-protected"
1453
+ ]
1454
+ },
1455
+ {
1456
+ "description": "window:allow-set-cursor-grab -> Enables the set_cursor_grab command without any pre-configured scope.",
1457
+ "type": "string",
1458
+ "enum": [
1459
+ "window:allow-set-cursor-grab"
1460
+ ]
1461
+ },
1462
+ {
1463
+ "description": "window:allow-set-cursor-icon -> Enables the set_cursor_icon command without any pre-configured scope.",
1464
+ "type": "string",
1465
+ "enum": [
1466
+ "window:allow-set-cursor-icon"
1467
+ ]
1468
+ },
1469
+ {
1470
+ "description": "window:allow-set-cursor-position -> Enables the set_cursor_position command without any pre-configured scope.",
1471
+ "type": "string",
1472
+ "enum": [
1473
+ "window:allow-set-cursor-position"
1474
+ ]
1475
+ },
1476
+ {
1477
+ "description": "window:allow-set-cursor-visible -> Enables the set_cursor_visible command without any pre-configured scope.",
1478
+ "type": "string",
1479
+ "enum": [
1480
+ "window:allow-set-cursor-visible"
1481
+ ]
1482
+ },
1483
+ {
1484
+ "description": "window:allow-set-decorations -> Enables the set_decorations command without any pre-configured scope.",
1485
+ "type": "string",
1486
+ "enum": [
1487
+ "window:allow-set-decorations"
1488
+ ]
1489
+ },
1490
+ {
1491
+ "description": "window:allow-set-effects -> Enables the set_effects command without any pre-configured scope.",
1492
+ "type": "string",
1493
+ "enum": [
1494
+ "window:allow-set-effects"
1495
+ ]
1496
+ },
1497
+ {
1498
+ "description": "window:allow-set-focus -> Enables the set_focus command without any pre-configured scope.",
1499
+ "type": "string",
1500
+ "enum": [
1501
+ "window:allow-set-focus"
1502
+ ]
1503
+ },
1504
+ {
1505
+ "description": "window:allow-set-fullscreen -> Enables the set_fullscreen command without any pre-configured scope.",
1506
+ "type": "string",
1507
+ "enum": [
1508
+ "window:allow-set-fullscreen"
1509
+ ]
1510
+ },
1511
+ {
1512
+ "description": "window:allow-set-icon -> Enables the set_icon command without any pre-configured scope.",
1513
+ "type": "string",
1514
+ "enum": [
1515
+ "window:allow-set-icon"
1516
+ ]
1517
+ },
1518
+ {
1519
+ "description": "window:allow-set-ignore-cursor-events -> Enables the set_ignore_cursor_events command without any pre-configured scope.",
1520
+ "type": "string",
1521
+ "enum": [
1522
+ "window:allow-set-ignore-cursor-events"
1523
+ ]
1524
+ },
1525
+ {
1526
+ "description": "window:allow-set-max-size -> Enables the set_max_size command without any pre-configured scope.",
1527
+ "type": "string",
1528
+ "enum": [
1529
+ "window:allow-set-max-size"
1530
+ ]
1531
+ },
1532
+ {
1533
+ "description": "window:allow-set-maximizable -> Enables the set_maximizable command without any pre-configured scope.",
1534
+ "type": "string",
1535
+ "enum": [
1536
+ "window:allow-set-maximizable"
1537
+ ]
1538
+ },
1539
+ {
1540
+ "description": "window:allow-set-min-size -> Enables the set_min_size command without any pre-configured scope.",
1541
+ "type": "string",
1542
+ "enum": [
1543
+ "window:allow-set-min-size"
1544
+ ]
1545
+ },
1546
+ {
1547
+ "description": "window:allow-set-minimizable -> Enables the set_minimizable command without any pre-configured scope.",
1548
+ "type": "string",
1549
+ "enum": [
1550
+ "window:allow-set-minimizable"
1551
+ ]
1552
+ },
1553
+ {
1554
+ "description": "window:allow-set-position -> Enables the set_position command without any pre-configured scope.",
1555
+ "type": "string",
1556
+ "enum": [
1557
+ "window:allow-set-position"
1558
+ ]
1559
+ },
1560
+ {
1561
+ "description": "window:allow-set-progress-bar -> Enables the set_progress_bar command without any pre-configured scope.",
1562
+ "type": "string",
1563
+ "enum": [
1564
+ "window:allow-set-progress-bar"
1565
+ ]
1566
+ },
1567
+ {
1568
+ "description": "window:allow-set-resizable -> Enables the set_resizable command without any pre-configured scope.",
1569
+ "type": "string",
1570
+ "enum": [
1571
+ "window:allow-set-resizable"
1572
+ ]
1573
+ },
1574
+ {
1575
+ "description": "window:allow-set-shadow -> Enables the set_shadow command without any pre-configured scope.",
1576
+ "type": "string",
1577
+ "enum": [
1578
+ "window:allow-set-shadow"
1579
+ ]
1580
+ },
1581
+ {
1582
+ "description": "window:allow-set-size -> Enables the set_size command without any pre-configured scope.",
1583
+ "type": "string",
1584
+ "enum": [
1585
+ "window:allow-set-size"
1586
+ ]
1587
+ },
1588
+ {
1589
+ "description": "window:allow-set-skip-taskbar -> Enables the set_skip_taskbar command without any pre-configured scope.",
1590
+ "type": "string",
1591
+ "enum": [
1592
+ "window:allow-set-skip-taskbar"
1593
+ ]
1594
+ },
1595
+ {
1596
+ "description": "window:allow-set-title -> Enables the set_title command without any pre-configured scope.",
1597
+ "type": "string",
1598
+ "enum": [
1599
+ "window:allow-set-title"
1600
+ ]
1601
+ },
1602
+ {
1603
+ "description": "window:allow-set-title-bar-style -> Enables the set_title_bar_style command without any pre-configured scope.",
1604
+ "type": "string",
1605
+ "enum": [
1606
+ "window:allow-set-title-bar-style"
1607
+ ]
1608
+ },
1609
+ {
1610
+ "description": "window:allow-set-visible-on-all-workspaces -> Enables the set_visible_on_all_workspaces command without any pre-configured scope.",
1611
+ "type": "string",
1612
+ "enum": [
1613
+ "window:allow-set-visible-on-all-workspaces"
1614
+ ]
1615
+ },
1616
+ {
1617
+ "description": "window:allow-show -> Enables the show command without any pre-configured scope.",
1618
+ "type": "string",
1619
+ "enum": [
1620
+ "window:allow-show"
1621
+ ]
1622
+ },
1623
+ {
1624
+ "description": "window:allow-start-dragging -> Enables the start_dragging command without any pre-configured scope.",
1625
+ "type": "string",
1626
+ "enum": [
1627
+ "window:allow-start-dragging"
1628
+ ]
1629
+ },
1630
+ {
1631
+ "description": "window:allow-start-resize-dragging -> Enables the start_resize_dragging command without any pre-configured scope.",
1632
+ "type": "string",
1633
+ "enum": [
1634
+ "window:allow-start-resize-dragging"
1635
+ ]
1636
+ },
1637
+ {
1638
+ "description": "window:allow-theme -> Enables the theme command without any pre-configured scope.",
1639
+ "type": "string",
1640
+ "enum": [
1641
+ "window:allow-theme"
1642
+ ]
1643
+ },
1644
+ {
1645
+ "description": "window:allow-title -> Enables the title command without any pre-configured scope.",
1646
+ "type": "string",
1647
+ "enum": [
1648
+ "window:allow-title"
1649
+ ]
1650
+ },
1651
+ {
1652
+ "description": "window:allow-toggle-maximize -> Enables the toggle_maximize command without any pre-configured scope.",
1653
+ "type": "string",
1654
+ "enum": [
1655
+ "window:allow-toggle-maximize"
1656
+ ]
1657
+ },
1658
+ {
1659
+ "description": "window:allow-unmaximize -> Enables the unmaximize command without any pre-configured scope.",
1660
+ "type": "string",
1661
+ "enum": [
1662
+ "window:allow-unmaximize"
1663
+ ]
1664
+ },
1665
+ {
1666
+ "description": "window:allow-unminimize -> Enables the unminimize command without any pre-configured scope.",
1667
+ "type": "string",
1668
+ "enum": [
1669
+ "window:allow-unminimize"
1670
+ ]
1671
+ },
1672
+ {
1673
+ "description": "window:deny-available-monitors -> Denies the available_monitors command without any pre-configured scope.",
1674
+ "type": "string",
1675
+ "enum": [
1676
+ "window:deny-available-monitors"
1677
+ ]
1678
+ },
1679
+ {
1680
+ "description": "window:deny-center -> Denies the center command without any pre-configured scope.",
1681
+ "type": "string",
1682
+ "enum": [
1683
+ "window:deny-center"
1684
+ ]
1685
+ },
1686
+ {
1687
+ "description": "window:deny-close -> Denies the close command without any pre-configured scope.",
1688
+ "type": "string",
1689
+ "enum": [
1690
+ "window:deny-close"
1691
+ ]
1692
+ },
1693
+ {
1694
+ "description": "window:deny-create -> Denies the create command without any pre-configured scope.",
1695
+ "type": "string",
1696
+ "enum": [
1697
+ "window:deny-create"
1698
+ ]
1699
+ },
1700
+ {
1701
+ "description": "window:deny-current-monitor -> Denies the current_monitor command without any pre-configured scope.",
1702
+ "type": "string",
1703
+ "enum": [
1704
+ "window:deny-current-monitor"
1705
+ ]
1706
+ },
1707
+ {
1708
+ "description": "window:deny-cursor-position -> Denies the cursor_position command without any pre-configured scope.",
1709
+ "type": "string",
1710
+ "enum": [
1711
+ "window:deny-cursor-position"
1712
+ ]
1713
+ },
1714
+ {
1715
+ "description": "window:deny-destroy -> Denies the destroy command without any pre-configured scope.",
1716
+ "type": "string",
1717
+ "enum": [
1718
+ "window:deny-destroy"
1719
+ ]
1720
+ },
1721
+ {
1722
+ "description": "window:deny-hide -> Denies the hide command without any pre-configured scope.",
1723
+ "type": "string",
1724
+ "enum": [
1725
+ "window:deny-hide"
1726
+ ]
1727
+ },
1728
+ {
1729
+ "description": "window:deny-inner-position -> Denies the inner_position command without any pre-configured scope.",
1730
+ "type": "string",
1731
+ "enum": [
1732
+ "window:deny-inner-position"
1733
+ ]
1734
+ },
1735
+ {
1736
+ "description": "window:deny-inner-size -> Denies the inner_size command without any pre-configured scope.",
1737
+ "type": "string",
1738
+ "enum": [
1739
+ "window:deny-inner-size"
1740
+ ]
1741
+ },
1742
+ {
1743
+ "description": "window:deny-internal-toggle-maximize -> Denies the internal_toggle_maximize command without any pre-configured scope.",
1744
+ "type": "string",
1745
+ "enum": [
1746
+ "window:deny-internal-toggle-maximize"
1747
+ ]
1748
+ },
1749
+ {
1750
+ "description": "window:deny-is-closable -> Denies the is_closable command without any pre-configured scope.",
1751
+ "type": "string",
1752
+ "enum": [
1753
+ "window:deny-is-closable"
1754
+ ]
1755
+ },
1756
+ {
1757
+ "description": "window:deny-is-decorated -> Denies the is_decorated command without any pre-configured scope.",
1758
+ "type": "string",
1759
+ "enum": [
1760
+ "window:deny-is-decorated"
1761
+ ]
1762
+ },
1763
+ {
1764
+ "description": "window:deny-is-focused -> Denies the is_focused command without any pre-configured scope.",
1765
+ "type": "string",
1766
+ "enum": [
1767
+ "window:deny-is-focused"
1768
+ ]
1769
+ },
1770
+ {
1771
+ "description": "window:deny-is-fullscreen -> Denies the is_fullscreen command without any pre-configured scope.",
1772
+ "type": "string",
1773
+ "enum": [
1774
+ "window:deny-is-fullscreen"
1775
+ ]
1776
+ },
1777
+ {
1778
+ "description": "window:deny-is-maximizable -> Denies the is_maximizable command without any pre-configured scope.",
1779
+ "type": "string",
1780
+ "enum": [
1781
+ "window:deny-is-maximizable"
1782
+ ]
1783
+ },
1784
+ {
1785
+ "description": "window:deny-is-maximized -> Denies the is_maximized command without any pre-configured scope.",
1786
+ "type": "string",
1787
+ "enum": [
1788
+ "window:deny-is-maximized"
1789
+ ]
1790
+ },
1791
+ {
1792
+ "description": "window:deny-is-minimizable -> Denies the is_minimizable command without any pre-configured scope.",
1793
+ "type": "string",
1794
+ "enum": [
1795
+ "window:deny-is-minimizable"
1796
+ ]
1797
+ },
1798
+ {
1799
+ "description": "window:deny-is-minimized -> Denies the is_minimized command without any pre-configured scope.",
1800
+ "type": "string",
1801
+ "enum": [
1802
+ "window:deny-is-minimized"
1803
+ ]
1804
+ },
1805
+ {
1806
+ "description": "window:deny-is-resizable -> Denies the is_resizable command without any pre-configured scope.",
1807
+ "type": "string",
1808
+ "enum": [
1809
+ "window:deny-is-resizable"
1810
+ ]
1811
+ },
1812
+ {
1813
+ "description": "window:deny-is-visible -> Denies the is_visible command without any pre-configured scope.",
1814
+ "type": "string",
1815
+ "enum": [
1816
+ "window:deny-is-visible"
1817
+ ]
1818
+ },
1819
+ {
1820
+ "description": "window:deny-maximize -> Denies the maximize command without any pre-configured scope.",
1821
+ "type": "string",
1822
+ "enum": [
1823
+ "window:deny-maximize"
1824
+ ]
1825
+ },
1826
+ {
1827
+ "description": "window:deny-minimize -> Denies the minimize command without any pre-configured scope.",
1828
+ "type": "string",
1829
+ "enum": [
1830
+ "window:deny-minimize"
1831
+ ]
1832
+ },
1833
+ {
1834
+ "description": "window:deny-monitor-from-point -> Denies the monitor_from_point command without any pre-configured scope.",
1835
+ "type": "string",
1836
+ "enum": [
1837
+ "window:deny-monitor-from-point"
1838
+ ]
1839
+ },
1840
+ {
1841
+ "description": "window:deny-outer-position -> Denies the outer_position command without any pre-configured scope.",
1842
+ "type": "string",
1843
+ "enum": [
1844
+ "window:deny-outer-position"
1845
+ ]
1846
+ },
1847
+ {
1848
+ "description": "window:deny-outer-size -> Denies the outer_size command without any pre-configured scope.",
1849
+ "type": "string",
1850
+ "enum": [
1851
+ "window:deny-outer-size"
1852
+ ]
1853
+ },
1854
+ {
1855
+ "description": "window:deny-primary-monitor -> Denies the primary_monitor command without any pre-configured scope.",
1856
+ "type": "string",
1857
+ "enum": [
1858
+ "window:deny-primary-monitor"
1859
+ ]
1860
+ },
1861
+ {
1862
+ "description": "window:deny-request-user-attention -> Denies the request_user_attention command without any pre-configured scope.",
1863
+ "type": "string",
1864
+ "enum": [
1865
+ "window:deny-request-user-attention"
1866
+ ]
1867
+ },
1868
+ {
1869
+ "description": "window:deny-scale-factor -> Denies the scale_factor command without any pre-configured scope.",
1870
+ "type": "string",
1871
+ "enum": [
1872
+ "window:deny-scale-factor"
1873
+ ]
1874
+ },
1875
+ {
1876
+ "description": "window:deny-set-always-on-bottom -> Denies the set_always_on_bottom command without any pre-configured scope.",
1877
+ "type": "string",
1878
+ "enum": [
1879
+ "window:deny-set-always-on-bottom"
1880
+ ]
1881
+ },
1882
+ {
1883
+ "description": "window:deny-set-always-on-top -> Denies the set_always_on_top command without any pre-configured scope.",
1884
+ "type": "string",
1885
+ "enum": [
1886
+ "window:deny-set-always-on-top"
1887
+ ]
1888
+ },
1889
+ {
1890
+ "description": "window:deny-set-closable -> Denies the set_closable command without any pre-configured scope.",
1891
+ "type": "string",
1892
+ "enum": [
1893
+ "window:deny-set-closable"
1894
+ ]
1895
+ },
1896
+ {
1897
+ "description": "window:deny-set-content-protected -> Denies the set_content_protected command without any pre-configured scope.",
1898
+ "type": "string",
1899
+ "enum": [
1900
+ "window:deny-set-content-protected"
1901
+ ]
1902
+ },
1903
+ {
1904
+ "description": "window:deny-set-cursor-grab -> Denies the set_cursor_grab command without any pre-configured scope.",
1905
+ "type": "string",
1906
+ "enum": [
1907
+ "window:deny-set-cursor-grab"
1908
+ ]
1909
+ },
1910
+ {
1911
+ "description": "window:deny-set-cursor-icon -> Denies the set_cursor_icon command without any pre-configured scope.",
1912
+ "type": "string",
1913
+ "enum": [
1914
+ "window:deny-set-cursor-icon"
1915
+ ]
1916
+ },
1917
+ {
1918
+ "description": "window:deny-set-cursor-position -> Denies the set_cursor_position command without any pre-configured scope.",
1919
+ "type": "string",
1920
+ "enum": [
1921
+ "window:deny-set-cursor-position"
1922
+ ]
1923
+ },
1924
+ {
1925
+ "description": "window:deny-set-cursor-visible -> Denies the set_cursor_visible command without any pre-configured scope.",
1926
+ "type": "string",
1927
+ "enum": [
1928
+ "window:deny-set-cursor-visible"
1929
+ ]
1930
+ },
1931
+ {
1932
+ "description": "window:deny-set-decorations -> Denies the set_decorations command without any pre-configured scope.",
1933
+ "type": "string",
1934
+ "enum": [
1935
+ "window:deny-set-decorations"
1936
+ ]
1937
+ },
1938
+ {
1939
+ "description": "window:deny-set-effects -> Denies the set_effects command without any pre-configured scope.",
1940
+ "type": "string",
1941
+ "enum": [
1942
+ "window:deny-set-effects"
1943
+ ]
1944
+ },
1945
+ {
1946
+ "description": "window:deny-set-focus -> Denies the set_focus command without any pre-configured scope.",
1947
+ "type": "string",
1948
+ "enum": [
1949
+ "window:deny-set-focus"
1950
+ ]
1951
+ },
1952
+ {
1953
+ "description": "window:deny-set-fullscreen -> Denies the set_fullscreen command without any pre-configured scope.",
1954
+ "type": "string",
1955
+ "enum": [
1956
+ "window:deny-set-fullscreen"
1957
+ ]
1958
+ },
1959
+ {
1960
+ "description": "window:deny-set-icon -> Denies the set_icon command without any pre-configured scope.",
1961
+ "type": "string",
1962
+ "enum": [
1963
+ "window:deny-set-icon"
1964
+ ]
1965
+ },
1966
+ {
1967
+ "description": "window:deny-set-ignore-cursor-events -> Denies the set_ignore_cursor_events command without any pre-configured scope.",
1968
+ "type": "string",
1969
+ "enum": [
1970
+ "window:deny-set-ignore-cursor-events"
1971
+ ]
1972
+ },
1973
+ {
1974
+ "description": "window:deny-set-max-size -> Denies the set_max_size command without any pre-configured scope.",
1975
+ "type": "string",
1976
+ "enum": [
1977
+ "window:deny-set-max-size"
1978
+ ]
1979
+ },
1980
+ {
1981
+ "description": "window:deny-set-maximizable -> Denies the set_maximizable command without any pre-configured scope.",
1982
+ "type": "string",
1983
+ "enum": [
1984
+ "window:deny-set-maximizable"
1985
+ ]
1986
+ },
1987
+ {
1988
+ "description": "window:deny-set-min-size -> Denies the set_min_size command without any pre-configured scope.",
1989
+ "type": "string",
1990
+ "enum": [
1991
+ "window:deny-set-min-size"
1992
+ ]
1993
+ },
1994
+ {
1995
+ "description": "window:deny-set-minimizable -> Denies the set_minimizable command without any pre-configured scope.",
1996
+ "type": "string",
1997
+ "enum": [
1998
+ "window:deny-set-minimizable"
1999
+ ]
2000
+ },
2001
+ {
2002
+ "description": "window:deny-set-position -> Denies the set_position command without any pre-configured scope.",
2003
+ "type": "string",
2004
+ "enum": [
2005
+ "window:deny-set-position"
2006
+ ]
2007
+ },
2008
+ {
2009
+ "description": "window:deny-set-progress-bar -> Denies the set_progress_bar command without any pre-configured scope.",
2010
+ "type": "string",
2011
+ "enum": [
2012
+ "window:deny-set-progress-bar"
2013
+ ]
2014
+ },
2015
+ {
2016
+ "description": "window:deny-set-resizable -> Denies the set_resizable command without any pre-configured scope.",
2017
+ "type": "string",
2018
+ "enum": [
2019
+ "window:deny-set-resizable"
2020
+ ]
2021
+ },
2022
+ {
2023
+ "description": "window:deny-set-shadow -> Denies the set_shadow command without any pre-configured scope.",
2024
+ "type": "string",
2025
+ "enum": [
2026
+ "window:deny-set-shadow"
2027
+ ]
2028
+ },
2029
+ {
2030
+ "description": "window:deny-set-size -> Denies the set_size command without any pre-configured scope.",
2031
+ "type": "string",
2032
+ "enum": [
2033
+ "window:deny-set-size"
2034
+ ]
2035
+ },
2036
+ {
2037
+ "description": "window:deny-set-skip-taskbar -> Denies the set_skip_taskbar command without any pre-configured scope.",
2038
+ "type": "string",
2039
+ "enum": [
2040
+ "window:deny-set-skip-taskbar"
2041
+ ]
2042
+ },
2043
+ {
2044
+ "description": "window:deny-set-title -> Denies the set_title command without any pre-configured scope.",
2045
+ "type": "string",
2046
+ "enum": [
2047
+ "window:deny-set-title"
2048
+ ]
2049
+ },
2050
+ {
2051
+ "description": "window:deny-set-title-bar-style -> Denies the set_title_bar_style command without any pre-configured scope.",
2052
+ "type": "string",
2053
+ "enum": [
2054
+ "window:deny-set-title-bar-style"
2055
+ ]
2056
+ },
2057
+ {
2058
+ "description": "window:deny-set-visible-on-all-workspaces -> Denies the set_visible_on_all_workspaces command without any pre-configured scope.",
2059
+ "type": "string",
2060
+ "enum": [
2061
+ "window:deny-set-visible-on-all-workspaces"
2062
+ ]
2063
+ },
2064
+ {
2065
+ "description": "window:deny-show -> Denies the show command without any pre-configured scope.",
2066
+ "type": "string",
2067
+ "enum": [
2068
+ "window:deny-show"
2069
+ ]
2070
+ },
2071
+ {
2072
+ "description": "window:deny-start-dragging -> Denies the start_dragging command without any pre-configured scope.",
2073
+ "type": "string",
2074
+ "enum": [
2075
+ "window:deny-start-dragging"
2076
+ ]
2077
+ },
2078
+ {
2079
+ "description": "window:deny-start-resize-dragging -> Denies the start_resize_dragging command without any pre-configured scope.",
2080
+ "type": "string",
2081
+ "enum": [
2082
+ "window:deny-start-resize-dragging"
2083
+ ]
2084
+ },
2085
+ {
2086
+ "description": "window:deny-theme -> Denies the theme command without any pre-configured scope.",
2087
+ "type": "string",
2088
+ "enum": [
2089
+ "window:deny-theme"
2090
+ ]
2091
+ },
2092
+ {
2093
+ "description": "window:deny-title -> Denies the title command without any pre-configured scope.",
2094
+ "type": "string",
2095
+ "enum": [
2096
+ "window:deny-title"
2097
+ ]
2098
+ },
2099
+ {
2100
+ "description": "window:deny-toggle-maximize -> Denies the toggle_maximize command without any pre-configured scope.",
2101
+ "type": "string",
2102
+ "enum": [
2103
+ "window:deny-toggle-maximize"
2104
+ ]
2105
+ },
2106
+ {
2107
+ "description": "window:deny-unmaximize -> Denies the unmaximize command without any pre-configured scope.",
2108
+ "type": "string",
2109
+ "enum": [
2110
+ "window:deny-unmaximize"
2111
+ ]
2112
+ },
2113
+ {
2114
+ "description": "window:deny-unminimize -> Denies the unminimize command without any pre-configured scope.",
2115
+ "type": "string",
2116
+ "enum": [
2117
+ "window:deny-unminimize"
2118
+ ]
2119
+ }
2120
+ ]
2121
+ },
2122
+ "Value": {
2123
+ "description": "All supported ACL values.",
2124
+ "anyOf": [
2125
+ {
2126
+ "description": "Represents a null JSON value.",
2127
+ "type": "null"
2128
+ },
2129
+ {
2130
+ "description": "Represents a [`bool`].",
2131
+ "type": "boolean"
2132
+ },
2133
+ {
2134
+ "description": "Represents a valid ACL [`Number`].",
2135
+ "allOf": [
2136
+ {
2137
+ "$ref": "#/definitions/Number"
2138
+ }
2139
+ ]
2140
+ },
2141
+ {
2142
+ "description": "Represents a [`String`].",
2143
+ "type": "string"
2144
+ },
2145
+ {
2146
+ "description": "Represents a list of other [`Value`]s.",
2147
+ "type": "array",
2148
+ "items": {
2149
+ "$ref": "#/definitions/Value"
2150
+ }
2151
+ },
2152
+ {
2153
+ "description": "Represents a map of [`String`] keys to [`Value`]s.",
2154
+ "type": "object",
2155
+ "additionalProperties": {
2156
+ "$ref": "#/definitions/Value"
2157
+ }
2158
+ }
2159
+ ]
2160
+ },
2161
+ "Number": {
2162
+ "description": "A valid ACL number.",
2163
+ "anyOf": [
2164
+ {
2165
+ "description": "Represents an [`i64`].",
2166
+ "type": "integer",
2167
+ "format": "int64"
2168
+ },
2169
+ {
2170
+ "description": "Represents a [`f64`].",
2171
+ "type": "number",
2172
+ "format": "double"
2173
+ }
2174
+ ]
2175
+ },
2176
+ "Target": {
2177
+ "description": "Platform target.",
2178
+ "oneOf": [
2179
+ {
2180
+ "description": "MacOS.",
2181
+ "type": "string",
2182
+ "enum": [
2183
+ "macOS"
2184
+ ]
2185
+ },
2186
+ {
2187
+ "description": "Windows.",
2188
+ "type": "string",
2189
+ "enum": [
2190
+ "windows"
2191
+ ]
2192
+ },
2193
+ {
2194
+ "description": "Linux.",
2195
+ "type": "string",
2196
+ "enum": [
2197
+ "linux"
2198
+ ]
2199
+ },
2200
+ {
2201
+ "description": "Android.",
2202
+ "type": "string",
2203
+ "enum": [
2204
+ "android"
2205
+ ]
2206
+ },
2207
+ {
2208
+ "description": "iOS.",
2209
+ "type": "string",
2210
+ "enum": [
2211
+ "iOS"
2212
+ ]
2213
+ }
2214
+ ]
2215
+ }
2216
+ }
2217
+}
\ No newline at end of file
examples/tauri-app/src-tauri/icons/128x128.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/icons/128x128.png differ
examples/tauri-app/src-tauri/icons/128x128@2x.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/icons/128x128@2x.png differ
examples/tauri-app/src-tauri/icons/32x32.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/icons/32x32.png differ
examples/tauri-app/src-tauri/icons/icon.icns
Binary files /dev/null and b/examples/tauri-app/src-tauri/icons/icon.icns differ
examples/tauri-app/src-tauri/icons/icon.ico
Binary files /dev/null and b/examples/tauri-app/src-tauri/icons/icon.ico differ
examples/tauri-app/src-tauri/icons/icon.png
Binary files /dev/null and b/examples/tauri-app/src-tauri/icons/icon.png differ
examples/tauri-app/src-tauri/src/lib.rs
new
+14
@@ -0,0 +1,14 @@
1
+// Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
2
+#[tauri::command]
3
+fn greet(name: &str) -> String {
4
+ format!("Hello, {}! You've been greeted from Rust!", name)
5
+}
6
+
7
+#[cfg_attr(mobile, tauri::mobile_entry_point)]
8
+pub fn run() {
9
+ tauri::Builder::default()
10
+ .invoke_handler(tauri::generate_handler![greet])
11
+ .plugin(tauri_plugin_admob::init())
12
+ .run(tauri::generate_context!())
13
+ .expect("error while running tauri application");
14
+}
examples/tauri-app/src-tauri/src/main.rs
new
+6
@@ -0,0 +1,6 @@
1
+// Prevents additional console window on Windows in release, DO NOT REMOVE!!
2
+#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]
3
+
4
+fn main() {
5
+ tauri_app_lib::run();
6
+}
examples/tauri-app/src-tauri/tauri.conf.json
new
+37
@@ -0,0 +1,37 @@
1
+{
2
+ "productName": "tauri-app",
3
+ "version": "0.0.0",
4
+ "identifier": "com.tauri.dev",
5
+ "build": {
6
+ "beforeDevCommand": "yarn dev",
7
+ "beforeBuildCommand": "yarn build",
8
+ "devUrl": "http://localhost:1420",
9
+ "frontendDist": "../dist"
10
+ },
11
+ "app": {
12
+ "withGlobalTauri": false,
13
+ "security": {
14
+ "csp": null
15
+ },
16
+ "windows": [
17
+ {
18
+ "fullscreen": false,
19
+ "height": 600,
20
+ "resizable": true,
21
+ "title": "tauri-app",
22
+ "width": 800
23
+ }
24
+ ]
25
+ },
26
+ "bundle": {
27
+ "active": true,
28
+ "targets": "all",
29
+ "icon": [
30
+ "icons/32x32.png",
31
+ "icons/128x128.png",
32
+ "icons/128x128@2x.png",
33
+ "icons/icon.icns",
34
+ "icons/icon.ico"
35
+ ]
36
+ }
37
+}
examples/tauri-app/src/App.svelte
new
+54
@@ -0,0 +1,54 @@
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
+ }
14
+</script>
15
+
16
+<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>
43
+
44
+</main>
45
+
46
+<style>
47
+ .logo.vite:hover {
48
+ filter: drop-shadow(0 0 2em #747bff);
49
+ }
50
+
51
+ .logo.svelte:hover {
52
+ filter: drop-shadow(0 0 2em #ff3e00);
53
+ }
54
+</style>
examples/tauri-app/src/lib/Greet.svelte
new
+22
@@ -0,0 +1,22 @@
1
+<script>
2
+ import { invoke } from "@tauri-apps/api/core"
3
+
4
+ let name = "";
5
+ let greetMsg = ""
6
+
7
+ async function greet(){
8
+ // Learn more about Tauri commands at https://tauri.app/v1/guides/features/command
9
+ greetMsg = await invoke("greet", { name })
10
+ }
11
+</script>
12
+
13
+<div>
14
+ <div class="row">
15
+ <input id="greet-input" placeholder="Enter a name..." bind:value={name} />
16
+ <button on:click={greet}>
17
+ Greet
18
+ </button>
19
+ </div>
20
+ <p>{greetMsg}</p>
21
+</div>
22
+
examples/tauri-app/src/main.js
new
+8
@@ -0,0 +1,8 @@
1
+import "./style.css";
2
+import App from "./App.svelte";
3
+
4
+const app = new App({
5
+ target: document.getElementById("app"),
6
+});
7
+
8
+export default app;
examples/tauri-app/src/style.css
new
+102
@@ -0,0 +1,102 @@
1
+:root {
2
+ font-family: Inter, Avenir, Helvetica, Arial, sans-serif;
3
+ font-size: 16px;
4
+ line-height: 24px;
5
+ font-weight: 400;
6
+
7
+ color: #0f0f0f;
8
+ background-color: #f6f6f6;
9
+
10
+ font-synthesis: none;
11
+ text-rendering: optimizeLegibility;
12
+ -webkit-font-smoothing: antialiased;
13
+ -moz-osx-font-smoothing: grayscale;
14
+ -webkit-text-size-adjust: 100%;
15
+}
16
+
17
+.container {
18
+ margin: 0;
19
+ padding-top: 10vh;
20
+ display: flex;
21
+ flex-direction: column;
22
+ justify-content: center;
23
+ text-align: center;
24
+}
25
+
26
+.logo {
27
+ height: 6em;
28
+ padding: 1.5em;
29
+ will-change: filter;
30
+ transition: 0.75s;
31
+}
32
+
33
+.logo.tauri:hover {
34
+ filter: drop-shadow(0 0 2em #24c8db);
35
+}
36
+
37
+.row {
38
+ display: flex;
39
+ justify-content: center;
40
+}
41
+
42
+a {
43
+ font-weight: 500;
44
+ color: #646cff;
45
+ text-decoration: inherit;
46
+}
47
+
48
+a:hover {
49
+ color: #535bf2;
50
+}
51
+
52
+h1 {
53
+ text-align: center;
54
+}
55
+
56
+input,
57
+button {
58
+ border-radius: 8px;
59
+ border: 1px solid transparent;
60
+ padding: 0.6em 1.2em;
61
+ font-size: 1em;
62
+ font-weight: 500;
63
+ font-family: inherit;
64
+ color: #0f0f0f;
65
+ background-color: #ffffff;
66
+ transition: border-color 0.25s;
67
+ box-shadow: 0 2px 2px rgba(0, 0, 0, 0.2);
68
+}
69
+
70
+button {
71
+ cursor: pointer;
72
+}
73
+
74
+button:hover {
75
+ border-color: #396cd8;
76
+}
77
+
78
+input,
79
+button {
80
+ outline: none;
81
+}
82
+
83
+#greet-input {
84
+ margin-right: 5px;
85
+}
86
+
87
+@media (prefers-color-scheme: dark) {
88
+ :root {
89
+ color: #f6f6f6;
90
+ background-color: #2f2f2f;
91
+ }
92
+
93
+ a:hover {
94
+ color: #24c8db;
95
+ }
96
+
97
+ input,
98
+ button {
99
+ color: #ffffff;
100
+ background-color: #0f0f0f98;
101
+ }
102
+}
examples/tauri-app/src/vite-env.d.ts
new
+2
@@ -0,0 +1,2 @@
1
+/// <reference types="svelte" />
2
+/// <reference types="vite/client" />
examples/tauri-app/vite.config.js
new
+25
@@ -0,0 +1,25 @@
1
+import { defineConfig } from "vite";
2
+import { svelte } from "@sveltejs/vite-plugin-svelte";
3
+import { internalIpV4Sync } from 'internal-ip'
4
+
5
+const mobile = !!/android|ios/.exec(process.env.TAURI_ENV_PLATFORM);
6
+
7
+// https://vitejs.dev/config/
8
+export default defineConfig({
9
+ plugins: [svelte()],
10
+
11
+ // Vite options tailored for Tauri development and only applied in `tauri dev` or `tauri build`
12
+ // prevent vite from obscuring rust errors
13
+ clearScreen: false,
14
+ // tauri expects a fixed port, fail if that port is not available
15
+ server: {
16
+ host: mobile ? "0.0.0.0" : false,
17
+ port: 1420,
18
+ strictPort: true,
19
+ hmr: mobile ? {
20
+ protocol: 'ws',
21
+ host: internalIpV4Sync(),
22
+ port: 1421
23
+ } : undefined,
24
+ },
25
+})
guest-js/index.ts
new
+9
@@ -0,0 +1,9 @@
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
+}
package.json
new
+35
@@ -0,0 +1,35 @@
1
+{
2
+ "name": "tauri-plugin-admob-api",
3
+ "version": "0.0.0",
4
+ "author": "You",
5
+ "description": "",
6
+ "type": "module",
7
+ "types": "./dist-js/index.d.ts",
8
+ "main": "./dist-js/index.cjs",
9
+ "module": "./dist-js/index.js",
10
+ "exports": {
11
+ "types": "./dist-js/index.d.ts",
12
+ "import": "./dist-js/index.js",
13
+ "require": "./dist-js/index.cjs"
14
+ },
15
+ "files": [
16
+ "dist-js",
17
+ "README.md"
18
+ ],
19
+ "scripts": {
20
+ "build": "rollup -c",
21
+ "prepublishOnly": "yarn build",
22
+ "pretest": "yarn build",
23
+ "tauri": "tauri"
24
+ },
25
+ "dependencies": {
26
+ "@tauri-apps/api": ">=2.0.0-beta.6"
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"
34
+ }
35
+}
permissions/autogenerated/commands/ping.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-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/reference.md
new
+41
@@ -0,0 +1,41 @@
1
+## Default Permission
2
+
3
+Default permissions for the plugin
4
+
5
+- `allow-ping`
6
+
7
+### Permission Table
8
+
9
+<table>
10
+<tr>
11
+<th>Identifier</th>
12
+<th>Description</th>
13
+</tr>
14
+
15
+
16
+<tr>
17
+<td>
18
+
19
+`admob:allow-ping`
20
+
21
+</td>
22
+<td>
23
+
24
+Enables the ping command without any pre-configured scope.
25
+
26
+</td>
27
+</tr>
28
+
29
+<tr>
30
+<td>
31
+
32
+`admob:deny-ping`
33
+
34
+</td>
35
+<td>
36
+
37
+Denies the ping command without any pre-configured scope.
38
+
39
+</td>
40
+</tr>
41
+</table>
permissions/default.toml
new
+3
@@ -0,0 +1,3 @@
1
+[default]
2
+description = "Default permissions for the plugin"
3
+permissions = ["allow-ping"]
permissions/schemas/schema.json
new
+321
@@ -0,0 +1,321 @@
1
+{
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "PermissionFile",
4
+ "description": "Permission file that can define a default permission, a set of permissions or a list of inlined permissions.",
5
+ "type": "object",
6
+ "properties": {
7
+ "default": {
8
+ "description": "The default permission set for the plugin",
9
+ "anyOf": [
10
+ {
11
+ "$ref": "#/definitions/DefaultPermission"
12
+ },
13
+ {
14
+ "type": "null"
15
+ }
16
+ ]
17
+ },
18
+ "set": {
19
+ "description": "A list of permissions sets defined",
20
+ "type": "array",
21
+ "items": {
22
+ "$ref": "#/definitions/PermissionSet"
23
+ }
24
+ },
25
+ "permission": {
26
+ "description": "A list of inlined permissions",
27
+ "default": [],
28
+ "type": "array",
29
+ "items": {
30
+ "$ref": "#/definitions/Permission"
31
+ }
32
+ }
33
+ },
34
+ "definitions": {
35
+ "DefaultPermission": {
36
+ "description": "The default permission set of the plugin.\n\nWorks similarly to a permission with the \"default\" identifier.",
37
+ "type": "object",
38
+ "required": [
39
+ "permissions"
40
+ ],
41
+ "properties": {
42
+ "version": {
43
+ "description": "The version of the permission.",
44
+ "type": [
45
+ "integer",
46
+ "null"
47
+ ],
48
+ "format": "uint64",
49
+ "minimum": 1.0
50
+ },
51
+ "description": {
52
+ "description": "Human-readable description of what the permission does. Tauri convention is to use <h4> headings in markdown content for Tauri documentation generation purposes.",
53
+ "type": [
54
+ "string",
55
+ "null"
56
+ ]
57
+ },
58
+ "permissions": {
59
+ "description": "All permissions this set contains.",
60
+ "type": "array",
61
+ "items": {
62
+ "type": "string"
63
+ }
64
+ }
65
+ }
66
+ },
67
+ "PermissionSet": {
68
+ "description": "A set of direct permissions grouped together under a new name.",
69
+ "type": "object",
70
+ "required": [
71
+ "description",
72
+ "identifier",
73
+ "permissions"
74
+ ],
75
+ "properties": {
76
+ "identifier": {
77
+ "description": "A unique identifier for the permission.",
78
+ "type": "string"
79
+ },
80
+ "description": {
81
+ "description": "Human-readable description of what the permission does.",
82
+ "type": "string"
83
+ },
84
+ "permissions": {
85
+ "description": "All permissions this set contains.",
86
+ "type": "array",
87
+ "items": {
88
+ "$ref": "#/definitions/PermissionKind"
89
+ }
90
+ }
91
+ }
92
+ },
93
+ "Permission": {
94
+ "description": "Descriptions of explicit privileges of commands.\n\nIt can enable commands to be accessible in the frontend of the application.\n\nIf the scope is defined it can be used to fine grain control the access of individual or multiple commands.",
95
+ "type": "object",
96
+ "required": [
97
+ "identifier"
98
+ ],
99
+ "properties": {
100
+ "version": {
101
+ "description": "The version of the permission.",
102
+ "type": [
103
+ "integer",
104
+ "null"
105
+ ],
106
+ "format": "uint64",
107
+ "minimum": 1.0
108
+ },
109
+ "identifier": {
110
+ "description": "A unique identifier for the permission.",
111
+ "type": "string"
112
+ },
113
+ "description": {
114
+ "description": "Human-readable description of what the permission does. Tauri internal convention is to use <h4> headings in markdown content for Tauri documentation generation purposes.",
115
+ "type": [
116
+ "string",
117
+ "null"
118
+ ]
119
+ },
120
+ "commands": {
121
+ "description": "Allowed or denied commands when using this permission.",
122
+ "default": {
123
+ "allow": [],
124
+ "deny": []
125
+ },
126
+ "allOf": [
127
+ {
128
+ "$ref": "#/definitions/Commands"
129
+ }
130
+ ]
131
+ },
132
+ "scope": {
133
+ "description": "Allowed or denied scoped when using this permission.",
134
+ "allOf": [
135
+ {
136
+ "$ref": "#/definitions/Scopes"
137
+ }
138
+ ]
139
+ },
140
+ "platforms": {
141
+ "description": "Target platforms this permission applies. By default all platforms are affected by this permission.",
142
+ "type": [
143
+ "array",
144
+ "null"
145
+ ],
146
+ "items": {
147
+ "$ref": "#/definitions/Target"
148
+ }
149
+ }
150
+ }
151
+ },
152
+ "Commands": {
153
+ "description": "Allowed and denied commands inside a permission.\n\nIf two commands clash inside of `allow` and `deny`, it should be denied by default.",
154
+ "type": "object",
155
+ "properties": {
156
+ "allow": {
157
+ "description": "Allowed command.",
158
+ "default": [],
159
+ "type": "array",
160
+ "items": {
161
+ "type": "string"
162
+ }
163
+ },
164
+ "deny": {
165
+ "description": "Denied command, which takes priority.",
166
+ "default": [],
167
+ "type": "array",
168
+ "items": {
169
+ "type": "string"
170
+ }
171
+ }
172
+ }
173
+ },
174
+ "Scopes": {
175
+ "description": "An argument for fine grained behavior control of Tauri commands.\n\nIt can be of any serde serializable type and is used to allow or prevent certain actions inside a Tauri command. The configured scope is passed to the command and will be enforced by the command implementation.\n\n## Example\n\n```json { \"allow\": [{ \"path\": \"$HOME/**\" }], \"deny\": [{ \"path\": \"$HOME/secret.txt\" }] } ```",
176
+ "type": "object",
177
+ "properties": {
178
+ "allow": {
179
+ "description": "Data that defines what is allowed by the scope.",
180
+ "type": [
181
+ "array",
182
+ "null"
183
+ ],
184
+ "items": {
185
+ "$ref": "#/definitions/Value"
186
+ }
187
+ },
188
+ "deny": {
189
+ "description": "Data that defines what is denied by the scope. This should be prioritized by validation logic.",
190
+ "type": [
191
+ "array",
192
+ "null"
193
+ ],
194
+ "items": {
195
+ "$ref": "#/definitions/Value"
196
+ }
197
+ }
198
+ }
199
+ },
200
+ "Value": {
201
+ "description": "All supported ACL values.",
202
+ "anyOf": [
203
+ {
204
+ "description": "Represents a null JSON value.",
205
+ "type": "null"
206
+ },
207
+ {
208
+ "description": "Represents a [`bool`].",
209
+ "type": "boolean"
210
+ },
211
+ {
212
+ "description": "Represents a valid ACL [`Number`].",
213
+ "allOf": [
214
+ {
215
+ "$ref": "#/definitions/Number"
216
+ }
217
+ ]
218
+ },
219
+ {
220
+ "description": "Represents a [`String`].",
221
+ "type": "string"
222
+ },
223
+ {
224
+ "description": "Represents a list of other [`Value`]s.",
225
+ "type": "array",
226
+ "items": {
227
+ "$ref": "#/definitions/Value"
228
+ }
229
+ },
230
+ {
231
+ "description": "Represents a map of [`String`] keys to [`Value`]s.",
232
+ "type": "object",
233
+ "additionalProperties": {
234
+ "$ref": "#/definitions/Value"
235
+ }
236
+ }
237
+ ]
238
+ },
239
+ "Number": {
240
+ "description": "A valid ACL number.",
241
+ "anyOf": [
242
+ {
243
+ "description": "Represents an [`i64`].",
244
+ "type": "integer",
245
+ "format": "int64"
246
+ },
247
+ {
248
+ "description": "Represents a [`f64`].",
249
+ "type": "number",
250
+ "format": "double"
251
+ }
252
+ ]
253
+ },
254
+ "Target": {
255
+ "description": "Platform target.",
256
+ "oneOf": [
257
+ {
258
+ "description": "MacOS.",
259
+ "type": "string",
260
+ "enum": [
261
+ "macOS"
262
+ ]
263
+ },
264
+ {
265
+ "description": "Windows.",
266
+ "type": "string",
267
+ "enum": [
268
+ "windows"
269
+ ]
270
+ },
271
+ {
272
+ "description": "Linux.",
273
+ "type": "string",
274
+ "enum": [
275
+ "linux"
276
+ ]
277
+ },
278
+ {
279
+ "description": "Android.",
280
+ "type": "string",
281
+ "enum": [
282
+ "android"
283
+ ]
284
+ },
285
+ {
286
+ "description": "iOS.",
287
+ "type": "string",
288
+ "enum": [
289
+ "iOS"
290
+ ]
291
+ }
292
+ ]
293
+ },
294
+ "PermissionKind": {
295
+ "type": "string",
296
+ "oneOf": [
297
+ {
298
+ "description": "allow-ping -> Enables the ping command without any pre-configured scope.",
299
+ "type": "string",
300
+ "enum": [
301
+ "allow-ping"
302
+ ]
303
+ },
304
+ {
305
+ "description": "deny-ping -> Denies the ping command without any pre-configured scope.",
306
+ "type": "string",
307
+ "enum": [
308
+ "deny-ping"
309
+ ]
310
+ },
311
+ {
312
+ "description": "default -> Default permissions for the plugin",
313
+ "type": "string",
314
+ "enum": [
315
+ "default"
316
+ ]
317
+ }
318
+ ]
319
+ }
320
+ }
321
+}
\ No newline at end of file
rollup.config.js
new
+31
@@ -0,0 +1,31 @@
1
+import { readFileSync } from 'fs'
2
+import { join } from 'path'
3
+import { cwd } from 'process'
4
+import typescript from '@rollup/plugin-typescript'
5
+
6
+const pkg = JSON.parse(readFileSync(join(cwd(), 'package.json'), 'utf8'))
7
+
8
+export default {
9
+ input: 'guest-js/index.ts',
10
+ output: [
11
+ {
12
+ file: pkg.exports.import,
13
+ format: 'esm'
14
+ },
15
+ {
16
+ file: pkg.exports.require,
17
+ format: 'cjs'
18
+ }
19
+ ],
20
+ plugins: [
21
+ typescript({
22
+ declaration: true,
23
+ declarationDir: `./${pkg.exports.import.split('/')[0]}`
24
+ })
25
+ ],
26
+ external: [
27
+ /^@tauri-apps\/api/,
28
+ ...Object.keys(pkg.dependencies || {}),
29
+ ...Object.keys(pkg.peerDependencies || {})
30
+ ]
31
+}
src/commands.rs
new
+13
@@ -0,0 +1,13 @@
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
new
+21
@@ -0,0 +1,21 @@
1
+use serde::{ser::Serializer, Serialize};
2
+
3
+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)]
10
+ #[error(transparent)]
11
+ PluginInvoke(#[from] tauri::plugin::mobile::PluginInvokeError),
12
+}
13
+
14
+impl Serialize for Error {
15
+ fn serialize<S>(&self, serializer: S) -> std::result::Result<S::Ok, S::Error>
16
+ where
17
+ S: Serializer,
18
+ {
19
+ serializer.serialize_str(self.to_string().as_ref())
20
+ }
21
+}
src/lib.rs
new
+41
@@ -0,0 +1,41 @@
1
+#![cfg(mobile)]
2
+
3
+use tauri::{
4
+ plugin::{Builder, TauriPlugin},
5
+ Manager, Runtime,
6
+};
7
+
8
+pub use models::*;
9
+
10
+mod mobile;
11
+
12
+mod commands;
13
+mod error;
14
+mod models;
15
+
16
+pub use error::{Error, Result};
17
+
18
+use mobile::Admob;
19
+
20
+/// Extensions to [`tauri::App`], [`tauri::AppHandle`] and [`tauri::Window`] to access the admob APIs.
21
+pub trait AdmobExt<R: Runtime> {
22
+ fn admob(&self) -> &Admob<R>;
23
+}
24
+
25
+impl<R: Runtime, T: Manager<R>> crate::AdmobExt<R> for T {
26
+ fn admob(&self) -> &Admob<R> {
27
+ self.state::<Admob<R>>().inner()
28
+ }
29
+}
30
+
31
+/// Initializes the plugin.
32
+pub fn init<R: Runtime>() -> TauriPlugin<R> {
33
+ Builder::new("admob")
34
+ .invoke_handler(tauri::generate_handler![commands::ping])
35
+ .setup(|app, api| {
36
+ let admob = mobile::init(app, api)?;
37
+ app.manage(admob);
38
+ Ok(())
39
+ })
40
+ .build()
41
+}
src/mobile.rs
new
+37
@@ -0,0 +1,37 @@
1
+use serde::de::DeserializeOwned;
2
+use tauri::{
3
+ plugin::{PluginApi, PluginHandle},
4
+ AppHandle, Runtime,
5
+};
6
+
7
+use crate::models::*;
8
+
9
+#[cfg(target_os = "android")]
10
+const PLUGIN_IDENTIFIER: &str = "com.plugin.admob";
11
+
12
+#[cfg(target_os = "ios")]
13
+tauri::ios_plugin_binding!(init_plugin_admob);
14
+
15
+// initializes the Kotlin or Swift plugin classes
16
+pub fn init<R: Runtime, C: DeserializeOwned>(
17
+ _app: &AppHandle<R>,
18
+ api: PluginApi<R, C>,
19
+) -> crate::Result<Admob<R>> {
20
+ #[cfg(target_os = "android")]
21
+ let handle = api.register_android_plugin(PLUGIN_IDENTIFIER, "AdmobPlugin")?;
22
+ #[cfg(target_os = "ios")]
23
+ let handle = api.register_ios_plugin(init_plugin_admob)?;
24
+ Ok(Admob(handle))
25
+}
26
+
27
+/// Access to the admob APIs.
28
+pub struct Admob<R: Runtime>(PluginHandle<R>);
29
+
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
+}
src/models.rs
new
+13
@@ -0,0 +1,13 @@
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
+}
tsconfig.json
new
+14
@@ -0,0 +1,14 @@
1
+{
2
+ "compilerOptions": {
3
+ "target": "es2021",
4
+ "module": "esnext",
5
+ "moduleResolution": "bundler",
6
+ "skipLibCheck": true,
7
+ "strict": true,
8
+ "noUnusedLocals": true,
9
+ "noImplicitAny": true,
10
+ "noEmit": true
11
+ },
12
+ "include": ["guest-js/*.ts"],
13
+ "exclude": ["dist-js", "node_modules"]
14
+}