mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-02-06 10:48:16 +00:00
refactor(core&api)!: hide internal functions and reuse them in api.js & rename tauri module to primitives (#7942)
Co-authored-by: Lucas Nogueira <lucas@tauri.studio>
This commit is contained in:
parent
b89d747705
commit
a63e71f979
5
.changes/api-primitives.md
Normal file
5
.changes/api-primitives.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
'@tauri-apps/api': 'major:breaking'
|
||||
---
|
||||
|
||||
Changed `tauri` module to `primitives` and removed the undocumented `invoke` export from the root module.
|
||||
5
.changes/invoke-system-refactor.md
Normal file
5
.changes/invoke-system-refactor.md
Normal file
@ -0,0 +1,5 @@
|
||||
---
|
||||
"tauri": patch:breaking
|
||||
---
|
||||
|
||||
The initialization script for `Builder::invoke_system` now must initialize the `window.__TAURI_INTERNALS__.postMessage` function instead of `window.__TAURI_POST_MESSAGE__`.
|
||||
@ -5,7 +5,7 @@
|
||||
node_modules
|
||||
target
|
||||
dist
|
||||
/core/tauri/scripts
|
||||
/core/tauri/scripts/bundle.global.js
|
||||
/tooling/cli/templates
|
||||
/tooling/cli/node
|
||||
/tooling/cli/schema.json
|
||||
|
||||
@ -8,8 +8,7 @@
|
||||
* isolation frame -> main frame = isolation message
|
||||
*/
|
||||
|
||||
;
|
||||
(async function () {
|
||||
;(async function () {
|
||||
/**
|
||||
* Sends the message to the isolation frame.
|
||||
* @param {any} message
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -2,53 +2,48 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
; (function () {
|
||||
;(function () {
|
||||
function uid() {
|
||||
return window.crypto.getRandomValues(new Uint32Array(1))[0]
|
||||
}
|
||||
|
||||
if (!window.__TAURI__) {
|
||||
Object.defineProperty(window, '__TAURI__', {
|
||||
value: {}
|
||||
})
|
||||
}
|
||||
|
||||
const osName = __TEMPLATE_os_name__
|
||||
|
||||
window.__TAURI__.convertFileSrc = function convertFileSrc(filePath, protocol = 'asset') {
|
||||
const path = encodeURIComponent(filePath)
|
||||
return osName === 'windows' || osName === 'android'
|
||||
? `http://${protocol}.localhost/${path}`
|
||||
: `${protocol}://localhost/${path}`
|
||||
}
|
||||
Object.defineProperty(window.__TAURI_INTERNALS__, 'convertFileSrc', {
|
||||
value: function (filePath, protocol = 'asset') {
|
||||
const path = encodeURIComponent(filePath)
|
||||
return osName === 'windows' || osName === 'android'
|
||||
? `http://${protocol}.localhost/${path}`
|
||||
: `${protocol}://localhost/${path}`
|
||||
}
|
||||
})
|
||||
|
||||
window.__TAURI__.transformCallback = function transformCallback(
|
||||
callback,
|
||||
once
|
||||
) {
|
||||
var identifier = uid()
|
||||
var prop = `_${identifier}`
|
||||
Object.defineProperty(window.__TAURI_INTERNALS__, 'transformCallback', {
|
||||
value: function transformCallback(callback, once) {
|
||||
var identifier = uid()
|
||||
var prop = `_${identifier}`
|
||||
|
||||
Object.defineProperty(window, prop, {
|
||||
value: (result) => {
|
||||
if (once) {
|
||||
Reflect.deleteProperty(window, prop)
|
||||
}
|
||||
Object.defineProperty(window, prop, {
|
||||
value: (result) => {
|
||||
if (once) {
|
||||
Reflect.deleteProperty(window, prop)
|
||||
}
|
||||
|
||||
return callback && callback(result)
|
||||
},
|
||||
writable: false,
|
||||
configurable: true
|
||||
})
|
||||
return callback && callback(result)
|
||||
},
|
||||
writable: false,
|
||||
configurable: true
|
||||
})
|
||||
|
||||
return identifier
|
||||
}
|
||||
return identifier
|
||||
}
|
||||
})
|
||||
|
||||
const ipcQueue = []
|
||||
let isWaitingForIpc = false
|
||||
|
||||
function waitForIpc() {
|
||||
if ('__TAURI_IPC__' in window) {
|
||||
if ('ipc' in window.__TAURI_INTERNALS__) {
|
||||
for (const action of ipcQueue) {
|
||||
action()
|
||||
}
|
||||
@ -57,35 +52,43 @@
|
||||
}
|
||||
}
|
||||
|
||||
window.__TAURI_INVOKE__ = function invoke(cmd, payload = {}, options) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
const callback = window.__TAURI__.transformCallback(function (r) {
|
||||
resolve(r)
|
||||
delete window[`_${error}`]
|
||||
}, true)
|
||||
const error = window.__TAURI__.transformCallback(function (e) {
|
||||
reject(e)
|
||||
delete window[`_${callback}`]
|
||||
}, true)
|
||||
Object.defineProperty(window.__TAURI_INTERNALS__, 'invoke', {
|
||||
value: function (cmd, payload = {}, options) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
const callback = window.__TAURI_INTERNALS__.transformCallback(function (
|
||||
r
|
||||
) {
|
||||
resolve(r)
|
||||
delete window[`_${error}`]
|
||||
},
|
||||
true)
|
||||
const error = window.__TAURI_INTERNALS__.transformCallback(function (
|
||||
e
|
||||
) {
|
||||
reject(e)
|
||||
delete window[`_${callback}`]
|
||||
},
|
||||
true)
|
||||
|
||||
const action = () => {
|
||||
window.__TAURI_IPC__({
|
||||
cmd,
|
||||
callback,
|
||||
error,
|
||||
payload,
|
||||
options
|
||||
})
|
||||
}
|
||||
if (window.__TAURI_IPC__) {
|
||||
action()
|
||||
} else {
|
||||
ipcQueue.push(action)
|
||||
if (!isWaitingForIpc) {
|
||||
waitForIpc()
|
||||
isWaitingForIpc = true
|
||||
const action = () => {
|
||||
window.window.__TAURI_INTERNALS__.ipc({
|
||||
cmd,
|
||||
callback,
|
||||
error,
|
||||
payload,
|
||||
options
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
if ('ipc' in window.__TAURI_INTERNALS__) {
|
||||
action()
|
||||
} else {
|
||||
ipcQueue.push(action)
|
||||
if (!isWaitingForIpc) {
|
||||
waitForIpc()
|
||||
isWaitingForIpc = true
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
})
|
||||
})()
|
||||
|
||||
@ -2,25 +2,29 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
; (function () {
|
||||
;(function () {
|
||||
__RAW_freeze_prototype__
|
||||
|
||||
__RAW_pattern_script__
|
||||
|
||||
__RAW_ipc_script__
|
||||
; (function () {
|
||||
__RAW_bundle_script__
|
||||
})()
|
||||
|
||||
__RAW_core_script__
|
||||
|
||||
__RAW_event_initialization_script__
|
||||
;(function () {
|
||||
__RAW_bundle_script__
|
||||
})()
|
||||
|
||||
if (window.ipc) {
|
||||
window.__TAURI_INVOKE__('__initialized', { url: window.location.href })
|
||||
window.__TAURI_INTERNALS__.invoke('__initialized', {
|
||||
url: window.location.href
|
||||
})
|
||||
} else {
|
||||
window.addEventListener('DOMContentLoaded', function () {
|
||||
window.__TAURI_INVOKE__('__initialized', { url: window.location.href })
|
||||
window.__TAURI_INTERNALS__.invoke('__initialized', {
|
||||
url: window.location.href
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@ -8,15 +8,9 @@
|
||||
const fetchChannelDataCommand = __TEMPLATE_fetch_channel_data_command__
|
||||
const useCustomProtocol = __TEMPLATE_use_custom_protocol__
|
||||
|
||||
Object.defineProperty(window, '__TAURI_POST_MESSAGE__', {
|
||||
Object.defineProperty(window.__TAURI_INTERNALS__, 'postMessage', {
|
||||
value: (message) => {
|
||||
const {
|
||||
cmd,
|
||||
callback,
|
||||
error,
|
||||
payload,
|
||||
options
|
||||
} = message
|
||||
const { cmd, callback, error, payload, options } = message
|
||||
|
||||
// use custom protocol for IPC if:
|
||||
// - the flag is set to true or
|
||||
@ -25,18 +19,16 @@
|
||||
// AND
|
||||
// - when not on macOS with an https URL
|
||||
if (
|
||||
(
|
||||
useCustomProtocol ||
|
||||
(useCustomProtocol ||
|
||||
cmd === fetchChannelDataCommand ||
|
||||
!(osName === 'linux' || osName === 'android')
|
||||
) &&
|
||||
!((osName === 'macos' || osName === 'ios') && location.protocol === 'https:')
|
||||
!(osName === 'linux' || osName === 'android')) &&
|
||||
!(
|
||||
(osName === 'macos' || osName === 'ios') &&
|
||||
location.protocol === 'https:'
|
||||
)
|
||||
) {
|
||||
const {
|
||||
contentType,
|
||||
data
|
||||
} = processIpcMessage(payload)
|
||||
fetch(window.__TAURI__.convertFileSrc(cmd, 'ipc'), {
|
||||
const { contentType, data } = processIpcMessage(payload)
|
||||
fetch(window.__TAURI_INTERNALS__.convertFileSrc(cmd, 'ipc'), {
|
||||
method: 'POST',
|
||||
body: data,
|
||||
headers: {
|
||||
@ -45,29 +37,33 @@
|
||||
'Tauri-Error': error,
|
||||
...options?.headers
|
||||
}
|
||||
}).then((response) => {
|
||||
const cb = response.ok ? callback : error
|
||||
// we need to split here because on Android the content-type gets duplicated
|
||||
switch ((response.headers.get('content-type') || '').split(',')[0]) {
|
||||
case 'application/json':
|
||||
return response.json().then((r) => [cb, r])
|
||||
case 'text/plain':
|
||||
return response.text().then((r) => [cb, r])
|
||||
default:
|
||||
return response.arrayBuffer().then((r) => [cb, r])
|
||||
}
|
||||
}).then(([cb, data]) => {
|
||||
if (window[`_${cb}`]) {
|
||||
window[`_${cb}`](data)
|
||||
} else {
|
||||
console.warn(`[TAURI] Couldn't find callback id {cb} in window. This might happen when the app is reloaded while Rust is running an asynchronous operation.`)
|
||||
}
|
||||
})
|
||||
.then((response) => {
|
||||
const cb = response.ok ? callback : error
|
||||
// we need to split here because on Android the content-type gets duplicated
|
||||
switch (
|
||||
(response.headers.get('content-type') || '').split(',')[0]
|
||||
) {
|
||||
case 'application/json':
|
||||
return response.json().then((r) => [cb, r])
|
||||
case 'text/plain':
|
||||
return response.text().then((r) => [cb, r])
|
||||
default:
|
||||
return response.arrayBuffer().then((r) => [cb, r])
|
||||
}
|
||||
})
|
||||
.then(([cb, data]) => {
|
||||
if (window[`_${cb}`]) {
|
||||
window[`_${cb}`](data)
|
||||
} else {
|
||||
console.warn(
|
||||
`[TAURI] Couldn't find callback id {cb} in window. This might happen when the app is reloaded while Rust is running an asynchronous operation.`
|
||||
)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
// otherwise use the postMessage interface
|
||||
const {
|
||||
data
|
||||
} = processIpcMessage({
|
||||
const { data } = processIpcMessage({
|
||||
cmd,
|
||||
callback,
|
||||
error,
|
||||
|
||||
@ -6,12 +6,11 @@
|
||||
* @typedef {{callback: string, error: string, data: *}} IsolationPayload - a valid isolation payload
|
||||
*/
|
||||
|
||||
;
|
||||
(function () {
|
||||
;(function () {
|
||||
/**
|
||||
* @type {string}
|
||||
*/
|
||||
const pattern = window.__TAURI_PATTERN__.pattern
|
||||
const pattern = window.__TAURI_INTERNALS__.__TAURI_PATTERN__.pattern
|
||||
|
||||
/**
|
||||
* @type {string}
|
||||
@ -33,7 +32,10 @@
|
||||
* @return {boolean} - if the event was a valid isolation message
|
||||
*/
|
||||
function isIsolationMessage(event) {
|
||||
if (typeof event.data === 'object' && typeof event.data.payload === 'object') {
|
||||
if (
|
||||
typeof event.data === 'object' &&
|
||||
typeof event.data.payload === 'object'
|
||||
) {
|
||||
const keys = Object.keys(event.data.payload || {})
|
||||
return (
|
||||
keys.length > 0 &&
|
||||
@ -90,12 +92,12 @@
|
||||
)
|
||||
}
|
||||
|
||||
Object.defineProperty(window, '__TAURI_IPC__', {
|
||||
Object.defineProperty(window.__TAURI_INTERNALS__, 'ipc', {
|
||||
// todo: JSDoc this function
|
||||
value: Object.freeze((message) => {
|
||||
switch (pattern) {
|
||||
case 'brownfield':
|
||||
window.__TAURI_POST_MESSAGE__(message)
|
||||
window.__TAURI_INTERNALS__.postMessage(message)
|
||||
break
|
||||
|
||||
case 'isolation':
|
||||
@ -152,7 +154,7 @@
|
||||
}
|
||||
|
||||
if (isIsolationMessage(event)) {
|
||||
window.__TAURI_POST_MESSAGE__(event.data)
|
||||
window.__TAURI_INTERNALS__.postMessage(event.data)
|
||||
}
|
||||
},
|
||||
false
|
||||
|
||||
@ -15,7 +15,7 @@
|
||||
return Object.freeze(object)
|
||||
}
|
||||
|
||||
Object.defineProperty(window, '__TAURI_PATTERN__', {
|
||||
Object.defineProperty(window.__TAURI_INTERNALS__, '__TAURI_PATTERN__', {
|
||||
value: __tauriDeepFreeze(__TEMPLATE_pattern__)
|
||||
})
|
||||
})()
|
||||
|
||||
@ -5,7 +5,11 @@
|
||||
// this is a function and not an iife so use it carefully
|
||||
|
||||
(function (message) {
|
||||
if (message instanceof ArrayBuffer || ArrayBuffer.isView(message) || Array.isArray(message)) {
|
||||
if (
|
||||
message instanceof ArrayBuffer ||
|
||||
ArrayBuffer.isView(message) ||
|
||||
Array.isArray(message)
|
||||
) {
|
||||
return {
|
||||
contentType: 'application/octet-stream',
|
||||
data: message
|
||||
@ -13,13 +17,17 @@
|
||||
} else {
|
||||
const data = JSON.stringify(message, (_k, val) => {
|
||||
if (val instanceof Map) {
|
||||
let o = {};
|
||||
val.forEach((v, k) => o[k] = v);
|
||||
return o;
|
||||
} else if (val instanceof Object && '__TAURI_CHANNEL_MARKER__' in val && typeof val.id === 'number') {
|
||||
let o = {}
|
||||
val.forEach((v, k) => (o[k] = v))
|
||||
return o
|
||||
} else if (
|
||||
val instanceof Object &&
|
||||
'__TAURI_CHANNEL_MARKER__' in val &&
|
||||
typeof val.id === 'number'
|
||||
) {
|
||||
return `__CHANNEL__:${val.id}`
|
||||
} else {
|
||||
return val;
|
||||
return val
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
@ -972,7 +972,7 @@ pub struct Builder<R: Runtime> {
|
||||
/// The JS message responder.
|
||||
invoke_responder: Option<Arc<InvokeResponder<R>>>,
|
||||
|
||||
/// The script that initializes the `window.__TAURI_POST_MESSAGE__` function.
|
||||
/// The script that initializes the `window.__TAURI_INTERNALS__.postMessage` function.
|
||||
invoke_initialization_script: String,
|
||||
|
||||
/// The setup hook.
|
||||
@ -1090,7 +1090,7 @@ impl<R: Runtime> Builder<R> {
|
||||
///
|
||||
/// The `responder` is a function that will be called when a command has been executed and must send a response to the JS layer.
|
||||
///
|
||||
/// The `initialization_script` is a script that initializes `window.__TAURI_POST_MESSAGE__`.
|
||||
/// The `initialization_script` is a script that initializes `window.__TAURI_INTERNALS__.postMessage`.
|
||||
/// That function must take the `(message: object, options: object)` arguments and send it to the backend.
|
||||
#[must_use]
|
||||
pub fn invoke_system<F>(mut self, initialization_script: String, responder: F) -> Self
|
||||
|
||||
@ -84,7 +84,7 @@ impl Channel {
|
||||
.unwrap()
|
||||
.insert(data_id, body);
|
||||
window.eval(&format!(
|
||||
"__TAURI_INVOKE__('{FETCH_CHANNEL_DATA_COMMAND}', null, {{ headers: {{ '{CHANNEL_ID_HEADER_NAME}': '{data_id}' }} }}).then(window['_' + {}]).catch(console.error)",
|
||||
"window.__TAURI_INTERNALS__.invoke('{FETCH_CHANNEL_DATA_COMMAND}', null, {{ headers: {{ '{CHANNEL_ID_HEADER_NAME}': '{data_id}' }} }}).then(window['_' + {}]).catch(console.error)",
|
||||
callback.0
|
||||
))
|
||||
})
|
||||
|
||||
@ -567,20 +567,36 @@ impl<R: Runtime> WindowManager<R> {
|
||||
window_labels.push(l);
|
||||
}
|
||||
webview_attributes = webview_attributes
|
||||
.initialization_script(
|
||||
r#"
|
||||
if (!window.__TAURI_INTERNALS__) {
|
||||
Object.defineProperty(window, '__TAURI_INTERNALS__', {
|
||||
value: {
|
||||
plugins: {}
|
||||
}
|
||||
})
|
||||
}
|
||||
"#,
|
||||
)
|
||||
.initialization_script(&self.inner.invoke_initialization_script)
|
||||
.initialization_script(&format!(
|
||||
r#"
|
||||
Object.defineProperty(window, '__TAURI_METADATA__', {{
|
||||
Object.defineProperty(window.__TAURI_INTERNALS__, 'metadata', {{
|
||||
value: {{
|
||||
__windows: {window_labels_array}.map(function (label) {{ return {{ label: label }} }}),
|
||||
__currentWindow: {{ label: {current_window_label} }}
|
||||
windows: {window_labels_array}.map(function (label) {{ return {{ label: label }} }}),
|
||||
currentWindow: {{ label: {current_window_label} }}
|
||||
}}
|
||||
}})
|
||||
"#,
|
||||
window_labels_array = serde_json::to_string(&window_labels)?,
|
||||
current_window_label = serde_json::to_string(&label)?,
|
||||
))
|
||||
.initialization_script(&self.initialization_script(&ipc_init.into_string(),&pattern_init.into_string(),&plugin_init, is_init_global)?);
|
||||
.initialization_script(&self.initialization_script(
|
||||
&ipc_init.into_string(),
|
||||
&pattern_init.into_string(),
|
||||
&plugin_init,
|
||||
is_init_global,
|
||||
)?);
|
||||
|
||||
#[cfg(feature = "isolation")]
|
||||
if let Pattern::Isolation { schema, .. } = self.pattern() {
|
||||
@ -1222,7 +1238,7 @@ fn on_window_event<R: Runtime>(
|
||||
let windows = windows_map.values();
|
||||
for window in windows {
|
||||
window.eval(&format!(
|
||||
r#"(function () {{ const metadata = window.__TAURI_METADATA__; if (metadata != null) {{ metadata.__windows = window.__TAURI_METADATA__.__windows.filter(w => w.label !== "{label}"); }} }})()"#,
|
||||
r#"(function () {{ const metadata = window.__TAURI_INTERNALS__.metadata; if (metadata != null) {{ metadata.windows = window.__TAURI_INTERNALS__.metadata.windows.filter(w => w.label !== "{label}"); }} }})()"#,
|
||||
))?;
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,9 +2,9 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
if (!('path' in window.__TAURI__)) {
|
||||
window.__TAURI__.path = {}
|
||||
}
|
||||
|
||||
window.__TAURI__.path.__sep = __TEMPLATE_sep__
|
||||
window.__TAURI__.path.__delimiter = __TEMPLATE_delimiter__
|
||||
Object.defineProperty(window.__TAURI_INTERNALS__.plugins, 'path', {
|
||||
value: {
|
||||
sep: __TEMPLATE_sep__,
|
||||
delimiter: __TEMPLATE_delimiter__
|
||||
}
|
||||
})
|
||||
|
||||
@ -427,7 +427,7 @@ impl<'a, R: Runtime> WindowBuilder<'a, R> {
|
||||
crate::vibrancy::set_window_effects(&window, Some(effects))?;
|
||||
}
|
||||
self.manager.eval_script_all(format!(
|
||||
"window.__TAURI_METADATA__.__windows = {window_labels_array}.map(function (label) {{ return {{ label: label }} }})",
|
||||
"window.__TAURI_INTERNALS__.metadata.windows = {window_labels_array}.map(function (label) {{ return {{ label: label }} }})",
|
||||
window_labels_array = serde_json::to_string(&self.manager.labels())?,
|
||||
))?;
|
||||
|
||||
|
||||
67
examples/api/dist/assets/index.js
vendored
67
examples/api/dist/assets/index.js
vendored
File diff suppressed because one or more lines are too long
@ -1,14 +1,14 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"moduleResolution": "node",
|
||||
"target": "esnext",
|
||||
"module": "esnext",
|
||||
"moduleResolution": "bundler",
|
||||
"target": "ESNext",
|
||||
"module": "ESNext",
|
||||
/**
|
||||
* svelte-preprocess cannot figure out whether you have
|
||||
* a value or a type, so tell TypeScript to enforce using
|
||||
* `import type` instead of `import` for Types.
|
||||
*/
|
||||
"importsNotUsedAsValues": "error",
|
||||
"verbatimModuleSyntax": true,
|
||||
"isolatedModules": true,
|
||||
"resolveJsonModule": true,
|
||||
/**
|
||||
@ -18,8 +18,6 @@
|
||||
"sourceMap": true,
|
||||
"esModuleInterop": true,
|
||||
"skipLibCheck": true,
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"baseUrl": ".",
|
||||
/**
|
||||
* Typecheck JS in `.svelte` and `.js` files by default.
|
||||
* Disable this if you'd like to use dynamic types.
|
||||
|
||||
@ -15,10 +15,10 @@
|
||||
"devDependencies": {
|
||||
"@iconify-json/codicon": "^1.1.10",
|
||||
"@iconify-json/ph": "^1.1.1",
|
||||
"@sveltejs/vite-plugin-svelte": "^1.0.1",
|
||||
"internal-ip": "^7.0.0",
|
||||
"svelte": "^3.49.0",
|
||||
"unocss": "^0.39.3",
|
||||
"vite": "^3.2.7"
|
||||
"@sveltejs/vite-plugin-svelte": "^2.4.6",
|
||||
"svelte": "^4.2.1",
|
||||
"vite": "^4.4.9"
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
<script>
|
||||
import { onMount } from 'svelte'
|
||||
import { writable } from 'svelte/store'
|
||||
import { invoke } from '@tauri-apps/api/tauri'
|
||||
import { invoke } from '@tauri-apps/api/primitives'
|
||||
|
||||
import Welcome from './views/Welcome.svelte'
|
||||
import Communication from './views/Communication.svelte'
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
<script>
|
||||
import { listen, emit } from '@tauri-apps/api/event'
|
||||
import { invoke } from '@tauri-apps/api/tauri'
|
||||
import { invoke } from '@tauri-apps/api/primitives'
|
||||
import { onMount, onDestroy } from 'svelte'
|
||||
|
||||
export let onMessage
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<script>
|
||||
import { invoke } from '@tauri-apps/api/tauri'
|
||||
import { invoke } from '@tauri-apps/api/primitives'
|
||||
|
||||
function contextMenu() {
|
||||
invoke('popup_context_menu')
|
||||
|
||||
@ -9,7 +9,7 @@
|
||||
EffectState,
|
||||
Window
|
||||
} from "@tauri-apps/api/window";
|
||||
import { invoke } from "@tauri-apps/api/tauri";
|
||||
import { invoke } from "@tauri-apps/api/primitives";
|
||||
|
||||
const appWindow = getCurrent();
|
||||
|
||||
|
||||
11
examples/api/svelte.config.js
Normal file
11
examples/api/svelte.config.js
Normal file
@ -0,0 +1,11 @@
|
||||
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
import { vitePreprocess } from '@sveltejs/vite-plugin-svelte'
|
||||
|
||||
export default {
|
||||
// Consult https://svelte.dev/docs#compile-time-svelte-preprocess
|
||||
// for more information about preprocessors
|
||||
preprocess: vitePreprocess()
|
||||
}
|
||||
@ -2,6 +2,14 @@
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@ampproject/remapping@^2.2.1":
|
||||
version "2.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.2.1.tgz#99e8e11851128b8702cd57c33684f1d0f260b630"
|
||||
integrity sha512-lFMjJTrFL3j7L9yBxwYfCq2k6qqwHyzuUl/XBnif78PWTJYyL/dfowQHWE3sp6U6ZzqWiiIZnpTMO96zhkjwtg==
|
||||
dependencies:
|
||||
"@jridgewell/gen-mapping" "^0.3.0"
|
||||
"@jridgewell/trace-mapping" "^0.3.9"
|
||||
|
||||
"@antfu/install-pkg@^0.1.0":
|
||||
version "0.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@antfu/install-pkg/-/install-pkg-0.1.0.tgz#8d8c61820cbc32e5c37d82d515485ad3ee9bd052"
|
||||
@ -15,15 +23,115 @@
|
||||
resolved "https://registry.yarnpkg.com/@antfu/utils/-/utils-0.5.2.tgz#8c2d931ff927be0ebe740169874a3d4004ab414b"
|
||||
integrity sha512-CQkeV+oJxUazwjlHD0/3ZD08QWKuGQkhnrKo3e6ly5pd48VUpXbb77q0xMU4+vc2CkJnDS02Eq/M9ugyX20XZA==
|
||||
|
||||
"@esbuild/android-arm@0.15.18":
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.15.18.tgz#266d40b8fdcf87962df8af05b76219bc786b4f80"
|
||||
integrity sha512-5GT+kcs2WVGjVs7+boataCkO5Fg0y4kCjzkB5bAip7H4jfnOS3dA6KPiww9W1OEKTKeAcUVhdZGvgI65OXmUnw==
|
||||
"@esbuild/android-arm64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622"
|
||||
integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ==
|
||||
|
||||
"@esbuild/linux-loong64@0.15.18":
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.15.18.tgz#128b76ecb9be48b60cf5cfc1c63a4f00691a3239"
|
||||
integrity sha512-L4jVKS82XVhw2nvzLg/19ClLWg0y27ulRwuP7lcyL6AbUWB5aPglXY3M21mauDQMDfRLs8cQmeT03r/+X3cZYQ==
|
||||
"@esbuild/android-arm@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682"
|
||||
integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw==
|
||||
|
||||
"@esbuild/android-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2"
|
||||
integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg==
|
||||
|
||||
"@esbuild/darwin-arm64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1"
|
||||
integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA==
|
||||
|
||||
"@esbuild/darwin-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d"
|
||||
integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ==
|
||||
|
||||
"@esbuild/freebsd-arm64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54"
|
||||
integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw==
|
||||
|
||||
"@esbuild/freebsd-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e"
|
||||
integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ==
|
||||
|
||||
"@esbuild/linux-arm64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0"
|
||||
integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA==
|
||||
|
||||
"@esbuild/linux-arm@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0"
|
||||
integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg==
|
||||
|
||||
"@esbuild/linux-ia32@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7"
|
||||
integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA==
|
||||
|
||||
"@esbuild/linux-loong64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d"
|
||||
integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg==
|
||||
|
||||
"@esbuild/linux-mips64el@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231"
|
||||
integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ==
|
||||
|
||||
"@esbuild/linux-ppc64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb"
|
||||
integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA==
|
||||
|
||||
"@esbuild/linux-riscv64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6"
|
||||
integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A==
|
||||
|
||||
"@esbuild/linux-s390x@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071"
|
||||
integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ==
|
||||
|
||||
"@esbuild/linux-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338"
|
||||
integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w==
|
||||
|
||||
"@esbuild/netbsd-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1"
|
||||
integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A==
|
||||
|
||||
"@esbuild/openbsd-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae"
|
||||
integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg==
|
||||
|
||||
"@esbuild/sunos-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d"
|
||||
integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ==
|
||||
|
||||
"@esbuild/win32-arm64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9"
|
||||
integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg==
|
||||
|
||||
"@esbuild/win32-ia32@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102"
|
||||
integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g==
|
||||
|
||||
"@esbuild/win32-x64@0.18.20":
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d"
|
||||
integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ==
|
||||
|
||||
"@fastify/busboy@^2.0.0":
|
||||
version "2.0.0"
|
||||
@ -61,6 +169,38 @@
|
||||
kolorist "^1.5.1"
|
||||
local-pkg "^0.4.1"
|
||||
|
||||
"@jridgewell/gen-mapping@^0.3.0":
|
||||
version "0.3.3"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.3.tgz#7e02e6eb5df901aaedb08514203b096614024098"
|
||||
integrity sha512-HLhSWOLRi875zjjMG/r+Nv0oCW8umGb0BgEhyX3dDX3egwZtB8PqLnjz3yedt8R5StBrzcg4aBpnh8UA9D1BoQ==
|
||||
dependencies:
|
||||
"@jridgewell/set-array" "^1.0.1"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.10"
|
||||
"@jridgewell/trace-mapping" "^0.3.9"
|
||||
|
||||
"@jridgewell/resolve-uri@^3.1.0":
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721"
|
||||
integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==
|
||||
|
||||
"@jridgewell/set-array@^1.0.1":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
|
||||
integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
|
||||
|
||||
"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.4.15":
|
||||
version "1.4.15"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32"
|
||||
integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==
|
||||
|
||||
"@jridgewell/trace-mapping@^0.3.18", "@jridgewell/trace-mapping@^0.3.9":
|
||||
version "0.3.19"
|
||||
resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.19.tgz#f8a3249862f91be48d3127c3cfe992f79b4b8811"
|
||||
integrity sha512-kf37QtfW+Hwx/buWGMPcR60iF9ziHa6r/CZJIHbmcm4+0qrXiVdxegAH0F6yddEVQ7zdkjcGCgCzUu+BcbhQxw==
|
||||
dependencies:
|
||||
"@jridgewell/resolve-uri" "^3.1.0"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.14"
|
||||
|
||||
"@nodelib/fs.scandir@2.1.5":
|
||||
version "2.1.5"
|
||||
resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5"
|
||||
@ -95,20 +235,33 @@
|
||||
estree-walker "^2.0.1"
|
||||
picomatch "^2.2.2"
|
||||
|
||||
"@sveltejs/vite-plugin-svelte@^1.0.1":
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-1.0.1.tgz#7f468f03c933fcdfc60d4773671c73f33b9ef4d6"
|
||||
integrity sha512-PorCgUounn0VXcpeJu+hOweZODKmGuLHsLomwqSj+p26IwjjGffmYQfVHtiTWq+NqaUuuHWWG7vPge6UFw4Aeg==
|
||||
"@sveltejs/vite-plugin-svelte-inspector@^1.0.4":
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte-inspector/-/vite-plugin-svelte-inspector-1.0.4.tgz#c99fcb73aaa845a3e2c0563409aeb3ee0b863add"
|
||||
integrity sha512-zjiuZ3yydBtwpF3bj0kQNV0YXe+iKE545QGZVTaylW3eAzFr+pJ/cwK8lZEaRp4JtaJXhD5DyWAV4AxLh6DgaQ==
|
||||
dependencies:
|
||||
"@rollup/pluginutils" "^4.2.1"
|
||||
debug "^4.3.4"
|
||||
deepmerge "^4.2.2"
|
||||
|
||||
"@sveltejs/vite-plugin-svelte@^2.4.6":
|
||||
version "2.4.6"
|
||||
resolved "https://registry.yarnpkg.com/@sveltejs/vite-plugin-svelte/-/vite-plugin-svelte-2.4.6.tgz#ea6844d8a5c58aef718b931fb42e7e668e7f11b7"
|
||||
integrity sha512-zO79p0+DZnXPnF0ltIigWDx/ux7Ni+HRaFOw720Qeivc1azFUrJxTl0OryXVibYNx1hCboGia1NRV3x8RNv4cA==
|
||||
dependencies:
|
||||
"@sveltejs/vite-plugin-svelte-inspector" "^1.0.4"
|
||||
debug "^4.3.4"
|
||||
deepmerge "^4.3.1"
|
||||
kleur "^4.1.5"
|
||||
magic-string "^0.26.2"
|
||||
svelte-hmr "^0.14.12"
|
||||
magic-string "^0.30.3"
|
||||
svelte-hmr "^0.15.3"
|
||||
vitefu "^0.2.4"
|
||||
|
||||
"@tauri-apps/api@../../tooling/api/dist":
|
||||
version "2.0.0-alpha.3"
|
||||
version "2.0.0-alpha.8"
|
||||
|
||||
"@types/estree@*", "@types/estree@^1.0.0", "@types/estree@^1.0.1":
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.2.tgz#ff02bc3dc8317cd668dfec247b750ba1f1d62453"
|
||||
integrity sha512-VeiPZ9MMwXjO32/Xu7+OwflfmeoRwkE/qzndw42gGtgJwZopBnzy2gD//NN1+go1mADzkDcqf/KnFRSjTJ8xJA==
|
||||
|
||||
"@unocss/cli@0.39.3":
|
||||
version "0.39.3"
|
||||
@ -259,6 +412,11 @@
|
||||
resolved "https://registry.yarnpkg.com/@zerodevx/svelte-json-view/-/svelte-json-view-0.2.1.tgz#12d1497f49d120bfb74e098dbe46ce5f16240d1c"
|
||||
integrity sha512-yaLojLYTi08vccUKRg/XSRCCPoyzCZqrG+W8mVhJEGiOfFKAmWqNH6b+/il1gG3V1UaEe7amj2mzmo1mo4q1iA==
|
||||
|
||||
acorn@^8.10.0, acorn@^8.9.0:
|
||||
version "8.10.0"
|
||||
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
|
||||
integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
|
||||
|
||||
anymatch@~3.1.2:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.2.tgz#c0557c096af32f106198f4f4e2a383537e378716"
|
||||
@ -267,6 +425,20 @@ anymatch@~3.1.2:
|
||||
normalize-path "^3.0.0"
|
||||
picomatch "^2.0.4"
|
||||
|
||||
aria-query@^5.3.0:
|
||||
version "5.3.0"
|
||||
resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-5.3.0.tgz#650c569e41ad90b51b3d7df5e5eed1c7549c103e"
|
||||
integrity sha512-b0P0sZPKtyu8HkeRAfCq0IfURZK+SuwMjY1UXGBU27wpAiTwQAIlq56IbIO+ytk/JjS1fMR14ee5WBBfKi5J6A==
|
||||
dependencies:
|
||||
dequal "^2.0.3"
|
||||
|
||||
axobject-query@^3.2.1:
|
||||
version "3.2.1"
|
||||
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-3.2.1.tgz#39c378a6e3b06ca679f29138151e45b2b32da62a"
|
||||
integrity sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==
|
||||
dependencies:
|
||||
dequal "^2.0.3"
|
||||
|
||||
binary-extensions@^2.0.0:
|
||||
version "2.2.0"
|
||||
resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
|
||||
@ -299,6 +471,17 @@ chokidar@^3.5.3:
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
code-red@^1.0.3:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/code-red/-/code-red-1.0.4.tgz#59ba5c9d1d320a4ef795bc10a28bd42bfebe3e35"
|
||||
integrity sha512-7qJWqItLA8/VPVlKJlFXU+NBlo/qyfs39aJcuMT/2ere32ZqvF5OSxgdM5xOfJJ7O429gg2HM47y8v9P+9wrNw==
|
||||
dependencies:
|
||||
"@jridgewell/sourcemap-codec" "^1.4.15"
|
||||
"@types/estree" "^1.0.1"
|
||||
acorn "^8.10.0"
|
||||
estree-walker "^3.0.3"
|
||||
periscopic "^3.1.0"
|
||||
|
||||
colorette@^2.0.16:
|
||||
version "2.0.19"
|
||||
resolved "https://registry.yarnpkg.com/colorette/-/colorette-2.0.19.tgz#cdf044f47ad41a0f4b56b3a0d5b4e6e1a2d5a798"
|
||||
@ -326,6 +509,14 @@ css-tree@^2.1.0:
|
||||
mdn-data "2.0.27"
|
||||
source-map-js "^1.0.1"
|
||||
|
||||
css-tree@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-2.3.1.tgz#10264ce1e5442e8572fc82fbe490644ff54b5c20"
|
||||
integrity sha512-6Fv1DV/TYw//QF5IzQdqsNDjx/wc8TrMBZsqjL9eW01tWb7R7k/mq+/VXfJCl7SoD5emsJop9cOByJZfs8hYIw==
|
||||
dependencies:
|
||||
mdn-data "2.0.30"
|
||||
source-map-js "^1.0.1"
|
||||
|
||||
debug@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
||||
@ -333,10 +524,10 @@ debug@^4.3.4:
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
deepmerge@^4.2.2:
|
||||
version "4.2.2"
|
||||
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.2.2.tgz#44d2ea3679b8f4d4ffba33f03d865fc1e7bf4955"
|
||||
integrity sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==
|
||||
deepmerge@^4.3.1:
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
|
||||
integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
|
||||
|
||||
default-gateway@^6.0.3:
|
||||
version "6.0.3"
|
||||
@ -350,6 +541,11 @@ defu@^6.0.0:
|
||||
resolved "https://registry.yarnpkg.com/defu/-/defu-6.0.0.tgz#b397a6709a2f3202747a3d9daf9446e41ad0c5fc"
|
||||
integrity sha512-t2MZGLf1V2rV4VBZbWIaXKdX/mUcYW0n2znQZoADBkGGxYL8EWqCuCZBmJPJ/Yy9fofJkyuuSuo5GSwo0XdEgw==
|
||||
|
||||
dequal@^2.0.3:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/dequal/-/dequal-2.0.3.tgz#2644214f1997d39ed0ee0ece72335490a7ac67be"
|
||||
integrity sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==
|
||||
|
||||
destr@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/destr/-/destr-1.1.1.tgz#910457d10a2f2f247add4ca4fdb4a03adcc49079"
|
||||
@ -360,139 +556,46 @@ duplexer@^0.1.2:
|
||||
resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.2.tgz#3abe43aef3835f8ae077d136ddce0f276b0400e6"
|
||||
integrity sha512-jtD6YG370ZCIi/9GTaJKQxWTZD045+4R4hTk/x1UyoqadyJ9x9CgSi1RlVDQF8U2sxLLSnFkCaMihqljHIWgMg==
|
||||
|
||||
esbuild-android-64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.15.18.tgz#20a7ae1416c8eaade917fb2453c1259302c637a5"
|
||||
integrity sha512-wnpt3OXRhcjfIDSZu9bnzT4/TNTDsOUvip0foZOUBG7QbSt//w3QV4FInVJxNhKc/ErhUxc5z4QjHtMi7/TbgA==
|
||||
|
||||
esbuild-android-arm64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.15.18.tgz#9cc0ec60581d6ad267568f29cf4895ffdd9f2f04"
|
||||
integrity sha512-G4xu89B8FCzav9XU8EjsXacCKSG2FT7wW9J6hOc18soEHJdtWu03L3TQDGf0geNxfLTtxENKBzMSq9LlbjS8OQ==
|
||||
|
||||
esbuild-darwin-64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.15.18.tgz#428e1730ea819d500808f220fbc5207aea6d4410"
|
||||
integrity sha512-2WAvs95uPnVJPuYKP0Eqx+Dl/jaYseZEUUT1sjg97TJa4oBtbAKnPnl3b5M9l51/nbx7+QAEtuummJZW0sBEmg==
|
||||
|
||||
esbuild-darwin-arm64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.15.18.tgz#b6dfc7799115a2917f35970bfbc93ae50256b337"
|
||||
integrity sha512-tKPSxcTJ5OmNb1btVikATJ8NftlyNlc8BVNtyT/UAr62JFOhwHlnoPrhYWz09akBLHI9nElFVfWSTSRsrZiDUA==
|
||||
|
||||
esbuild-freebsd-64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.15.18.tgz#4e190d9c2d1e67164619ae30a438be87d5eedaf2"
|
||||
integrity sha512-TT3uBUxkteAjR1QbsmvSsjpKjOX6UkCstr8nMr+q7zi3NuZ1oIpa8U41Y8I8dJH2fJgdC3Dj3CXO5biLQpfdZA==
|
||||
|
||||
esbuild-freebsd-arm64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.15.18.tgz#18a4c0344ee23bd5a6d06d18c76e2fd6d3f91635"
|
||||
integrity sha512-R/oVr+X3Tkh+S0+tL41wRMbdWtpWB8hEAMsOXDumSSa6qJR89U0S/PpLXrGF7Wk/JykfpWNokERUpCeHDl47wA==
|
||||
|
||||
esbuild-linux-32@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.15.18.tgz#9a329731ee079b12262b793fb84eea762e82e0ce"
|
||||
integrity sha512-lphF3HiCSYtaa9p1DtXndiQEeQDKPl9eN/XNoBf2amEghugNuqXNZA/ZovthNE2aa4EN43WroO0B85xVSjYkbg==
|
||||
|
||||
esbuild-linux-64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.15.18.tgz#532738075397b994467b514e524aeb520c191b6c"
|
||||
integrity sha512-hNSeP97IviD7oxLKFuii5sDPJ+QHeiFTFLoLm7NZQligur8poNOWGIgpQ7Qf8Balb69hptMZzyOBIPtY09GZYw==
|
||||
|
||||
esbuild-linux-arm64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.15.18.tgz#5372e7993ac2da8f06b2ba313710d722b7a86e5d"
|
||||
integrity sha512-54qr8kg/6ilcxd+0V3h9rjT4qmjc0CccMVWrjOEM/pEcUzt8X62HfBSeZfT2ECpM7104mk4yfQXkosY8Quptug==
|
||||
|
||||
esbuild-linux-arm@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.15.18.tgz#e734aaf259a2e3d109d4886c9e81ec0f2fd9a9cc"
|
||||
integrity sha512-UH779gstRblS4aoS2qpMl3wjg7U0j+ygu3GjIeTonCcN79ZvpPee12Qun3vcdxX+37O5LFxz39XeW2I9bybMVA==
|
||||
|
||||
esbuild-linux-mips64le@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.15.18.tgz#c0487c14a9371a84eb08fab0e1d7b045a77105eb"
|
||||
integrity sha512-Mk6Ppwzzz3YbMl/ZZL2P0q1tnYqh/trYZ1VfNP47C31yT0K8t9s7Z077QrDA/guU60tGNp2GOwCQnp+DYv7bxQ==
|
||||
|
||||
esbuild-linux-ppc64le@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.15.18.tgz#af048ad94eed0ce32f6d5a873f7abe9115012507"
|
||||
integrity sha512-b0XkN4pL9WUulPTa/VKHx2wLCgvIAbgwABGnKMY19WhKZPT+8BxhZdqz6EgkqCLld7X5qiCY2F/bfpUUlnFZ9w==
|
||||
|
||||
esbuild-linux-riscv64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.15.18.tgz#423ed4e5927bd77f842bd566972178f424d455e6"
|
||||
integrity sha512-ba2COaoF5wL6VLZWn04k+ACZjZ6NYniMSQStodFKH/Pu6RxzQqzsmjR1t9QC89VYJxBeyVPTaHuBMCejl3O/xg==
|
||||
|
||||
esbuild-linux-s390x@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.15.18.tgz#21d21eaa962a183bfb76312e5a01cc5ae48ce8eb"
|
||||
integrity sha512-VbpGuXEl5FCs1wDVp93O8UIzl3ZrglgnSQ+Hu79g7hZu6te6/YHgVJxCM2SqfIila0J3k0csfnf8VD2W7u2kzQ==
|
||||
|
||||
esbuild-netbsd-64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.15.18.tgz#ae75682f60d08560b1fe9482bfe0173e5110b998"
|
||||
integrity sha512-98ukeCdvdX7wr1vUYQzKo4kQ0N2p27H7I11maINv73fVEXt2kyh4K4m9f35U1K43Xc2QGXlzAw0K9yoU7JUjOg==
|
||||
|
||||
esbuild-openbsd-64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.15.18.tgz#79591a90aa3b03e4863f93beec0d2bab2853d0a8"
|
||||
integrity sha512-yK5NCcH31Uae076AyQAXeJzt/vxIo9+omZRKj1pauhk3ITuADzuOx5N2fdHrAKPxN+zH3w96uFKlY7yIn490xQ==
|
||||
|
||||
esbuild-sunos-64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.15.18.tgz#fd528aa5da5374b7e1e93d36ef9b07c3dfed2971"
|
||||
integrity sha512-On22LLFlBeLNj/YF3FT+cXcyKPEI263nflYlAhz5crxtp3yRG1Ugfr7ITyxmCmjm4vbN/dGrb/B7w7U8yJR9yw==
|
||||
|
||||
esbuild-windows-32@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.15.18.tgz#0e92b66ecdf5435a76813c4bc5ccda0696f4efc3"
|
||||
integrity sha512-o+eyLu2MjVny/nt+E0uPnBxYuJHBvho8vWsC2lV61A7wwTWC3jkN2w36jtA+yv1UgYkHRihPuQsL23hsCYGcOQ==
|
||||
|
||||
esbuild-windows-64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.15.18.tgz#0fc761d785414284fc408e7914226d33f82420d0"
|
||||
integrity sha512-qinug1iTTaIIrCorAUjR0fcBk24fjzEedFYhhispP8Oc7SFvs+XeW3YpAKiKp8dRpizl4YYAhxMjlftAMJiaUw==
|
||||
|
||||
esbuild-windows-arm64@0.15.18:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.15.18.tgz#5b5bdc56d341d0922ee94965c89ee120a6a86eb7"
|
||||
integrity sha512-q9bsYzegpZcLziq0zgUi5KqGVtfhjxGbnksaBFYmWLxeV/S1fK4OLdq2DFYnXcLMjlZw2L0jLsk1eGoB522WXQ==
|
||||
|
||||
esbuild@^0.15.9:
|
||||
version "0.15.18"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.15.18.tgz#ea894adaf3fbc036d32320a00d4d6e4978a2f36d"
|
||||
integrity sha512-x/R72SmW3sSFRm5zrrIjAhCeQSAWoni3CmHEqfQrZIQTM3lVCdehdwuIqaOtfC2slvpdlLa62GYoN8SxT23m6Q==
|
||||
esbuild@^0.18.10:
|
||||
version "0.18.20"
|
||||
resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6"
|
||||
integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA==
|
||||
optionalDependencies:
|
||||
"@esbuild/android-arm" "0.15.18"
|
||||
"@esbuild/linux-loong64" "0.15.18"
|
||||
esbuild-android-64 "0.15.18"
|
||||
esbuild-android-arm64 "0.15.18"
|
||||
esbuild-darwin-64 "0.15.18"
|
||||
esbuild-darwin-arm64 "0.15.18"
|
||||
esbuild-freebsd-64 "0.15.18"
|
||||
esbuild-freebsd-arm64 "0.15.18"
|
||||
esbuild-linux-32 "0.15.18"
|
||||
esbuild-linux-64 "0.15.18"
|
||||
esbuild-linux-arm "0.15.18"
|
||||
esbuild-linux-arm64 "0.15.18"
|
||||
esbuild-linux-mips64le "0.15.18"
|
||||
esbuild-linux-ppc64le "0.15.18"
|
||||
esbuild-linux-riscv64 "0.15.18"
|
||||
esbuild-linux-s390x "0.15.18"
|
||||
esbuild-netbsd-64 "0.15.18"
|
||||
esbuild-openbsd-64 "0.15.18"
|
||||
esbuild-sunos-64 "0.15.18"
|
||||
esbuild-windows-32 "0.15.18"
|
||||
esbuild-windows-64 "0.15.18"
|
||||
esbuild-windows-arm64 "0.15.18"
|
||||
"@esbuild/android-arm" "0.18.20"
|
||||
"@esbuild/android-arm64" "0.18.20"
|
||||
"@esbuild/android-x64" "0.18.20"
|
||||
"@esbuild/darwin-arm64" "0.18.20"
|
||||
"@esbuild/darwin-x64" "0.18.20"
|
||||
"@esbuild/freebsd-arm64" "0.18.20"
|
||||
"@esbuild/freebsd-x64" "0.18.20"
|
||||
"@esbuild/linux-arm" "0.18.20"
|
||||
"@esbuild/linux-arm64" "0.18.20"
|
||||
"@esbuild/linux-ia32" "0.18.20"
|
||||
"@esbuild/linux-loong64" "0.18.20"
|
||||
"@esbuild/linux-mips64el" "0.18.20"
|
||||
"@esbuild/linux-ppc64" "0.18.20"
|
||||
"@esbuild/linux-riscv64" "0.18.20"
|
||||
"@esbuild/linux-s390x" "0.18.20"
|
||||
"@esbuild/linux-x64" "0.18.20"
|
||||
"@esbuild/netbsd-x64" "0.18.20"
|
||||
"@esbuild/openbsd-x64" "0.18.20"
|
||||
"@esbuild/sunos-x64" "0.18.20"
|
||||
"@esbuild/win32-arm64" "0.18.20"
|
||||
"@esbuild/win32-ia32" "0.18.20"
|
||||
"@esbuild/win32-x64" "0.18.20"
|
||||
|
||||
estree-walker@^2.0.1:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
|
||||
integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
|
||||
|
||||
estree-walker@^3.0.0, estree-walker@^3.0.3:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-3.0.3.tgz#67c3e549ec402a487b4fc193d1953a524752340d"
|
||||
integrity sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==
|
||||
dependencies:
|
||||
"@types/estree" "^1.0.0"
|
||||
|
||||
execa@^5.0.0, execa@^5.1.1:
|
||||
version "5.1.1"
|
||||
resolved "https://registry.yarnpkg.com/execa/-/execa-5.1.1.tgz#f80ad9cbf4298f7bd1d4c9555c21e93741c411dd"
|
||||
@ -546,11 +649,6 @@ fsevents@~2.3.2:
|
||||
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
|
||||
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
|
||||
|
||||
function-bind@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d"
|
||||
integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==
|
||||
|
||||
get-stream@^6.0.0:
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-6.0.1.tgz#a262d8eef67aced57c2852ad6167526a43cbf7b7"
|
||||
@ -570,13 +668,6 @@ gzip-size@^6.0.0:
|
||||
dependencies:
|
||||
duplexer "^0.1.2"
|
||||
|
||||
has@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796"
|
||||
integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==
|
||||
dependencies:
|
||||
function-bind "^1.1.1"
|
||||
|
||||
human-signals@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-2.1.0.tgz#dc91fcba42e4d06e4abaed33b3e7a3c02f514ea0"
|
||||
@ -609,13 +700,6 @@ is-binary-path@~2.1.0:
|
||||
dependencies:
|
||||
binary-extensions "^2.0.0"
|
||||
|
||||
is-core-module@^2.9.0:
|
||||
version "2.9.0"
|
||||
resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.9.0.tgz#e1c34429cd51c6dd9e09e0799e396e27b19a9c69"
|
||||
integrity sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==
|
||||
dependencies:
|
||||
has "^1.0.3"
|
||||
|
||||
is-extglob@^2.1.1:
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2"
|
||||
@ -640,6 +724,13 @@ is-number@^7.0.0:
|
||||
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
|
||||
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
|
||||
|
||||
is-reference@^3.0.0, is-reference@^3.0.1:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-3.0.2.tgz#154747a01f45cd962404ee89d43837af2cba247c"
|
||||
integrity sha512-v3rht/LgVcsdZa3O2Nqs+NMowLOxeOm7Ay9+/ARQ2F+qEoANRcqrjAZKGN0v8ymUetZGgkp26LTnGT7H0Qo9Pg==
|
||||
dependencies:
|
||||
"@types/estree" "*"
|
||||
|
||||
is-stream@^2.0.0:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.1.tgz#fac1e3d53b97ad5a9d0ae9cef2389f5810a5c077"
|
||||
@ -670,6 +761,11 @@ local-pkg@^0.4.1:
|
||||
resolved "https://registry.yarnpkg.com/local-pkg/-/local-pkg-0.4.1.tgz#e7b0d7aa0b9c498a1110a5ac5b00ba66ef38cfff"
|
||||
integrity sha512-lL87ytIGP2FU5PWwNDo0w3WhIo2gopIAxPg9RxDYF7m4rr5ahuZxP22xnJHIvaLTe4Z9P6uKKY2UHiwyB4pcrw==
|
||||
|
||||
locate-character@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/locate-character/-/locate-character-3.0.0.tgz#0305c5b8744f61028ef5d01f444009e00779f974"
|
||||
integrity sha512-SW13ws7BjaeJ6p7Q6CO2nchbYEc3X3J6WrmTTDto7yMPqVSZTUyY5Tjbid+Ab8gLnATtygYtiDIJGQRRn2ZOiA==
|
||||
|
||||
locate-path@^6.0.0:
|
||||
version "6.0.0"
|
||||
resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286"
|
||||
@ -684,11 +780,23 @@ magic-string@^0.26.2:
|
||||
dependencies:
|
||||
sourcemap-codec "^1.4.8"
|
||||
|
||||
magic-string@^0.30.0, magic-string@^0.30.3:
|
||||
version "0.30.4"
|
||||
resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.4.tgz#c2c683265fc18dda49b56fc7318d33ca0332c98c"
|
||||
integrity sha512-Q/TKtsC5BPm0kGqgBIF9oXAs/xEf2vRKiIB4wCRQTJOQIByZ1d+NnUOotvJOvNpi5RNIgVOMC3pOuaP1ZTDlVg==
|
||||
dependencies:
|
||||
"@jridgewell/sourcemap-codec" "^1.4.15"
|
||||
|
||||
mdn-data@2.0.27:
|
||||
version "2.0.27"
|
||||
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.27.tgz#1710baa7b0db8176d3b3d565ccb7915fc69525ab"
|
||||
integrity sha512-kwqO0I0jtWr25KcfLm9pia8vLZ8qoAKhWZuZMbneJq3jjBD3gl5nZs8l8Tu3ZBlBAHVQtDur9rdDGyvtfVraHQ==
|
||||
|
||||
mdn-data@2.0.30:
|
||||
version "2.0.30"
|
||||
resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.30.tgz#ce4df6f80af6cfbe218ecd5c552ba13c4dfa08cc"
|
||||
integrity sha512-GaqWWShW4kv/G9IEucWScBx9G1/vsFZZJUO+tD26M8J8z3Kw5RDQjaoZe03YAClgeS/SWPOcb4nkFBTEi5DUEA==
|
||||
|
||||
merge-stream@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
|
||||
@ -804,11 +912,6 @@ path-key@^3.0.0, path-key@^3.1.0:
|
||||
resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
|
||||
integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
|
||||
|
||||
path-parse@^1.0.7:
|
||||
version "1.0.7"
|
||||
resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
|
||||
integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
|
||||
|
||||
pathe@^0.3.0:
|
||||
version "0.3.0"
|
||||
resolved "https://registry.yarnpkg.com/pathe/-/pathe-0.3.0.tgz#fd95bc16208263fa6dc1c78c07b3907a528de6eb"
|
||||
@ -819,6 +922,15 @@ perfect-debounce@^0.1.3:
|
||||
resolved "https://registry.yarnpkg.com/perfect-debounce/-/perfect-debounce-0.1.3.tgz#ff6798ea543a3ba1f0efeeaf97c0340f5c8871ce"
|
||||
integrity sha512-NOT9AcKiDGpnV/HBhI22Str++XWcErO/bALvHCuhv33owZW/CjH8KAFLZDCmu3727sihe0wTxpDhyGc6M8qacQ==
|
||||
|
||||
periscopic@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/periscopic/-/periscopic-3.1.0.tgz#7e9037bf51c5855bd33b48928828db4afa79d97a"
|
||||
integrity sha512-vKiQ8RRtkl9P+r/+oefh25C3fhybptkHKCZSPlcXiJux2tJF55GnEj3BVn4A5gKfq9NWWXXrxkHBwVPUfH0opw==
|
||||
dependencies:
|
||||
"@types/estree" "^1.0.0"
|
||||
estree-walker "^3.0.0"
|
||||
is-reference "^3.0.0"
|
||||
|
||||
picocolors@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
|
||||
@ -834,10 +946,10 @@ picomatch@^2.2.2:
|
||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
|
||||
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
|
||||
|
||||
postcss@^8.4.18:
|
||||
version "8.4.24"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.24.tgz#f714dba9b2284be3cc07dbd2fc57ee4dc972d2df"
|
||||
integrity sha512-M0RzbcI0sO/XJNucsGjvWU9ERWxb/ytp1w6dKtxTKgixdtQDq4rmx/g8W1hnaheq9jgwL/oyEdH5Bc4WwJKMqg==
|
||||
postcss@^8.4.27:
|
||||
version "8.4.31"
|
||||
resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d"
|
||||
integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==
|
||||
dependencies:
|
||||
nanoid "^3.3.6"
|
||||
picocolors "^1.0.0"
|
||||
@ -855,24 +967,15 @@ readdirp@~3.6.0:
|
||||
dependencies:
|
||||
picomatch "^2.2.1"
|
||||
|
||||
resolve@^1.22.1:
|
||||
version "1.22.1"
|
||||
resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.1.tgz#27cb2ebb53f91abb49470a928bba7558066ac177"
|
||||
integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==
|
||||
dependencies:
|
||||
is-core-module "^2.9.0"
|
||||
path-parse "^1.0.7"
|
||||
supports-preserve-symlinks-flag "^1.0.0"
|
||||
|
||||
reusify@^1.0.4:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76"
|
||||
integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==
|
||||
|
||||
rollup@^2.79.1:
|
||||
version "2.79.1"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.79.1.tgz#bedee8faef7c9f93a2647ac0108748f497f081c7"
|
||||
integrity sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==
|
||||
rollup@^3.27.1:
|
||||
version "3.29.4"
|
||||
resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981"
|
||||
integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
@ -929,20 +1032,29 @@ strip-final-newline@^2.0.0:
|
||||
resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad"
|
||||
integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==
|
||||
|
||||
supports-preserve-symlinks-flag@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09"
|
||||
integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==
|
||||
svelte-hmr@^0.15.3:
|
||||
version "0.15.3"
|
||||
resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.15.3.tgz#df54ccde9be3f091bf5f18fc4ef7b8eb6405fbe6"
|
||||
integrity sha512-41snaPswvSf8TJUhlkoJBekRrABDXDMdpNpT2tfHIv4JuhgvHqLMhEPGtaQn0BmbNSTkuz2Ed20DF2eHw0SmBQ==
|
||||
|
||||
svelte-hmr@^0.14.12:
|
||||
version "0.14.12"
|
||||
resolved "https://registry.yarnpkg.com/svelte-hmr/-/svelte-hmr-0.14.12.tgz#a127aec02f1896500b10148b2d4d21ddde39973f"
|
||||
integrity sha512-4QSW/VvXuqVcFZ+RhxiR8/newmwOCTlbYIezvkeN6302YFRE8cXy0naamHcjz8Y9Ce3ITTZtrHrIL0AGfyo61w==
|
||||
|
||||
svelte@^3.49.0:
|
||||
version "3.49.0"
|
||||
resolved "https://registry.yarnpkg.com/svelte/-/svelte-3.49.0.tgz#5baee3c672306de1070c3b7888fc2204e36a4029"
|
||||
integrity sha512-+lmjic1pApJWDfPCpUUTc1m8azDqYCG1JN9YEngrx/hUyIcFJo6VZhj0A1Ai0wqoHcEIuQy+e9tk+4uDgdtsFA==
|
||||
svelte@^4.2.1:
|
||||
version "4.2.1"
|
||||
resolved "https://registry.yarnpkg.com/svelte/-/svelte-4.2.1.tgz#33d603af4da103a5ad988d7fcc992a87421a1e6e"
|
||||
integrity sha512-LpLqY2Jr7cRxkrTc796/AaaoMLF/1ax7cto8Ot76wrvKQhrPmZ0JgajiWPmg9mTSDqO16SSLiD17r9MsvAPTmw==
|
||||
dependencies:
|
||||
"@ampproject/remapping" "^2.2.1"
|
||||
"@jridgewell/sourcemap-codec" "^1.4.15"
|
||||
"@jridgewell/trace-mapping" "^0.3.18"
|
||||
acorn "^8.9.0"
|
||||
aria-query "^5.3.0"
|
||||
axobject-query "^3.2.1"
|
||||
code-red "^1.0.3"
|
||||
css-tree "^2.3.1"
|
||||
estree-walker "^3.0.3"
|
||||
is-reference "^3.0.1"
|
||||
locate-character "^3.0.0"
|
||||
magic-string "^0.30.0"
|
||||
periscopic "^3.1.0"
|
||||
|
||||
to-regex-range@^5.0.1:
|
||||
version "5.0.1"
|
||||
@ -998,18 +1110,22 @@ unocss@^0.39.3:
|
||||
"@unocss/transformer-variant-group" "0.39.3"
|
||||
"@unocss/vite" "0.39.3"
|
||||
|
||||
vite@^3.2.7:
|
||||
version "3.2.7"
|
||||
resolved "https://registry.yarnpkg.com/vite/-/vite-3.2.7.tgz#35a62826bd4d6b778ae5db8766d023bcd4e7bef3"
|
||||
integrity sha512-29pdXjk49xAP0QBr0xXqu2s5jiQIXNvE/xwd0vUizYT2Hzqe4BksNNoWllFVXJf4eLZ+UlVQmXfB4lWrc+t18g==
|
||||
vite@^4.4.9:
|
||||
version "4.4.9"
|
||||
resolved "https://registry.yarnpkg.com/vite/-/vite-4.4.9.tgz#1402423f1a2f8d66fd8d15e351127c7236d29d3d"
|
||||
integrity sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==
|
||||
dependencies:
|
||||
esbuild "^0.15.9"
|
||||
postcss "^8.4.18"
|
||||
resolve "^1.22.1"
|
||||
rollup "^2.79.1"
|
||||
esbuild "^0.18.10"
|
||||
postcss "^8.4.27"
|
||||
rollup "^3.27.1"
|
||||
optionalDependencies:
|
||||
fsevents "~2.3.2"
|
||||
|
||||
vitefu@^0.2.4:
|
||||
version "0.2.4"
|
||||
resolved "https://registry.yarnpkg.com/vitefu/-/vitefu-0.2.4.tgz#212dc1a9d0254afe65e579351bed4e25d81e0b35"
|
||||
integrity sha512-fanAXjSaf9xXtOOeno8wZXIhgia+CZury481LsDaV++lSvcU2R9Ch2bPh3PYFyoHW+w9LqAeYRISVQjUIew14g==
|
||||
|
||||
which@^2.0.1:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1"
|
||||
|
||||
16
examples/isolation/dist/index.html
vendored
16
examples/isolation/dist/index.html
vendored
@ -3,11 +3,11 @@
|
||||
<head>
|
||||
<script>
|
||||
// malicious
|
||||
window.__TAURI_PATTERN__ = Object.freeze({pattern: "malicious"});
|
||||
window.__TAURI_INTERNALS__.__TAURI_PATTERN__ = Object.freeze({pattern: "malicious"});
|
||||
</script>
|
||||
<script>
|
||||
// malicious defineProperty
|
||||
Object.defineProperty(window, "__TAURI_PATTERN__", {value: Object.freeze({pattern: "malicious"})});
|
||||
Object.defineProperty(window.__TAURI_INTERNALS__, "__TAURI_PATTERN__", {value: Object.freeze({pattern: "malicious"})});
|
||||
</script>
|
||||
<meta charset="UTF-8">
|
||||
<title>Hello Tauri!</title>
|
||||
@ -36,7 +36,7 @@
|
||||
align-items: center;
|
||||
}
|
||||
</style>
|
||||
<script type="text/javascript">console.log("inline", window.__TAURI_PATTERN__);</script>
|
||||
<script type="text/javascript">console.log("inline", window.__TAURI_INTERNALS__.__TAURI_PATTERN__);</script>
|
||||
</head>
|
||||
<body>
|
||||
<div>
|
||||
@ -55,15 +55,15 @@
|
||||
code.innerText = JSON.stringify(obj, null, 2);
|
||||
}
|
||||
|
||||
const cb = window.__TAURI__.transformCallback(v => updateCode('response', v));
|
||||
const error = window.__TAURI__.transformCallback(e => updateCode('response', e));
|
||||
const cb = window.__TAURI__.tauri.transformCallback(v => updateCode('response', v));
|
||||
const error = window.__TAURI__.tauri.transformCallback(e => updateCode('response', e));
|
||||
window.ipc.postMessage(JSON.stringify({
|
||||
cmd: "ping",
|
||||
callback: cb,
|
||||
error,
|
||||
}));
|
||||
|
||||
updateCode('__TAURI_PATTERN__', window.__TAURI_PATTERN__);
|
||||
|
||||
updateCode('__TAURI_INTERNALS__.__TAURI_PATTERN__', window.__TAURI_INTERNALS__.__TAURI_PATTERN__);
|
||||
</script>
|
||||
|
||||
<!-- set up click handlers on our ping command button -->
|
||||
@ -71,7 +71,7 @@
|
||||
const ping = document.querySelector("#ping")
|
||||
const pong = document.querySelector('#pong')
|
||||
ping.addEventListener("click", () => {
|
||||
window.__TAURI_INVOKE__("ping")
|
||||
window.__TAURI__.tauri.invoke("ping")
|
||||
.then(() => {
|
||||
pong.innerText = `ok: ${Date.now()}`
|
||||
})
|
||||
|
||||
2
examples/isolation/dist/linked.js
vendored
2
examples/isolation/dist/linked.js
vendored
@ -1 +1 @@
|
||||
console.log("linked", window.__TAURI_PATTERN__);
|
||||
console.log("linked", window.__TAURI_INTERNALS__.__TAURI_PATTERN__);
|
||||
|
||||
@ -2,7 +2,7 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
import { invoke } from '@tauri-apps/api/tauri'
|
||||
import { invoke } from '@tauri-apps/api/primitives'
|
||||
|
||||
export const NAME = 'Tauri'
|
||||
|
||||
|
||||
File diff suppressed because one or more lines are too long
@ -9,7 +9,7 @@
|
||||
* @module
|
||||
*/
|
||||
|
||||
import { invoke, transformCallback } from './tauri'
|
||||
import { invoke, transformCallback } from './primitives'
|
||||
|
||||
interface Event<T> {
|
||||
/** Event name */
|
||||
|
||||
34
tooling/api/src/global.d.ts
vendored
Normal file
34
tooling/api/src/global.d.ts
vendored
Normal file
@ -0,0 +1,34 @@
|
||||
// Copyright 2019-2023 Tauri Programme within The Commons Conservancy
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
/** @ignore */
|
||||
|
||||
import type { invoke, transformCallback, convertFileSrc } from './primitives'
|
||||
|
||||
/** @ignore */
|
||||
declare global {
|
||||
interface Window {
|
||||
__TAURI_INTERNALS__: {
|
||||
invoke: typeof invoke
|
||||
transformCallback: typeof transformCallback
|
||||
convertFileSrc: typeof convertFileSrc
|
||||
ipc: (message: any) => void
|
||||
metadata: {
|
||||
windows: WindowDef[]
|
||||
currentWindow: WindowDef
|
||||
}
|
||||
plugins: {
|
||||
path: {
|
||||
sep: string
|
||||
delimiter: string
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** @ignore */
|
||||
interface WindowDef {
|
||||
label: string
|
||||
}
|
||||
@ -14,12 +14,9 @@
|
||||
*/
|
||||
|
||||
import * as event from './event'
|
||||
import * as tauri from './tauri'
|
||||
import * as primitives from './primitives'
|
||||
import * as window from './window'
|
||||
import * as path from './path'
|
||||
import * as dpi from './dpi'
|
||||
|
||||
/** @ignore */
|
||||
const invoke = tauri.invoke
|
||||
|
||||
export { invoke, event, path, tauri, window, dpi }
|
||||
export { dpi, event, path, primitives, window }
|
||||
|
||||
@ -2,21 +2,6 @@
|
||||
// SPDX-License-Identifier: Apache-2.0
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
/** @ignore */
|
||||
declare global {
|
||||
interface Window {
|
||||
__TAURI_METADATA__: {
|
||||
__windows: WindowDef[]
|
||||
__currentWindow: WindowDef
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** @ignore */
|
||||
interface WindowDef {
|
||||
label: string
|
||||
}
|
||||
|
||||
interface IPCMessage {
|
||||
cmd: string
|
||||
callback: number
|
||||
@ -34,7 +19,7 @@ interface IPCMessage {
|
||||
* Testing setup using vitest:
|
||||
* ```js
|
||||
* import { mockIPC, clearMocks } from "@tauri-apps/api/mocks"
|
||||
* import { invoke } from "@tauri-apps/api/tauri"
|
||||
* import { invoke } from "@tauri-apps/api/primitives"
|
||||
*
|
||||
* afterEach(() => {
|
||||
* clearMocks()
|
||||
@ -57,7 +42,7 @@ interface IPCMessage {
|
||||
* The callback function can also return a Promise:
|
||||
* ```js
|
||||
* import { mockIPC, clearMocks } from "@tauri-apps/api/mocks"
|
||||
* import { invoke } from "@tauri-apps/api/tauri"
|
||||
* import { invoke } from "@tauri-apps/api/primitives"
|
||||
*
|
||||
* afterEach(() => {
|
||||
* clearMocks()
|
||||
@ -81,7 +66,7 @@ export function mockIPC(
|
||||
cb: (cmd: string, payload: Record<string, unknown>) => any | Promise<any>
|
||||
): void {
|
||||
// eslint-disable-next-line @typescript-eslint/no-misused-promises
|
||||
window.__TAURI_IPC__ = async ({
|
||||
window.__TAURI_INTERNALS__.ipc = async ({
|
||||
cmd,
|
||||
callback,
|
||||
error,
|
||||
@ -143,9 +128,9 @@ export function mockWindows(
|
||||
current: string,
|
||||
...additionalWindows: string[]
|
||||
): void {
|
||||
window.__TAURI_METADATA__ = {
|
||||
__windows: [current, ...additionalWindows].map((label) => ({ label })),
|
||||
__currentWindow: { label: current }
|
||||
window.__TAURI_INTERNALS__.metadata = {
|
||||
windows: [current, ...additionalWindows].map((label) => ({ label })),
|
||||
currentWindow: { label: current }
|
||||
}
|
||||
}
|
||||
|
||||
@ -165,11 +150,11 @@ export function mockWindows(
|
||||
* test("mocked windows", () => {
|
||||
* mockWindows("main", "second", "third");
|
||||
*
|
||||
* expect(window).toHaveProperty("__TAURI_METADATA__")
|
||||
* expect(window.__TAURI_INTERNALS__).toHaveProperty("metadata")
|
||||
* })
|
||||
*
|
||||
* test("no mocked windows", () => {
|
||||
* expect(window).not.toHaveProperty("__TAURI_METADATA__")
|
||||
* expect(window.__TAURI_INTERNALS__).not.toHaveProperty("metadata")
|
||||
* })
|
||||
* ```
|
||||
*
|
||||
@ -177,7 +162,7 @@ export function mockWindows(
|
||||
*/
|
||||
export function clearMocks(): void {
|
||||
// @ts-expect-error "The operand of a 'delete' operator must be optional' does not matter in this case
|
||||
delete window.__TAURI_IPC__
|
||||
delete window.__TAURI_INTERNALS__.ipc
|
||||
// @ts-expect-error "The operand of a 'delete' operator must be optional' does not matter in this case
|
||||
delete window.__TAURI_METADATA__
|
||||
delete window.__TAURI_INTERNALS__.metadata
|
||||
}
|
||||
|
||||
@ -11,7 +11,7 @@
|
||||
* @module
|
||||
*/
|
||||
|
||||
import { invoke } from './tauri'
|
||||
import { invoke } from './primitives'
|
||||
|
||||
/**
|
||||
* @since 2.0.0
|
||||
@ -547,7 +547,7 @@ async function tempDir(path: string): Promise<string> {
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function sep(): string {
|
||||
return window.__TAURI__.path.__sep
|
||||
return window.__TAURI_INTERNALS__.plugins.path.sep
|
||||
}
|
||||
|
||||
/**
|
||||
@ -558,7 +558,7 @@ function sep(): string {
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function delimiter(): string {
|
||||
return window.__TAURI__.path.__delimiter
|
||||
return window.__TAURI_INTERNALS__.plugins.path.delimiter
|
||||
}
|
||||
/**
|
||||
* Resolves a sequence of `paths` or `path` segments into an absolute path.
|
||||
|
||||
@ -9,27 +9,6 @@
|
||||
* @module
|
||||
*/
|
||||
|
||||
/** @ignore */
|
||||
declare global {
|
||||
interface Window {
|
||||
__TAURI__: {
|
||||
path: {
|
||||
__sep: string
|
||||
__delimiter: string
|
||||
}
|
||||
|
||||
convertFileSrc: (src: string, protocol: string) => string
|
||||
}
|
||||
|
||||
__TAURI_IPC__: (message: any) => void
|
||||
}
|
||||
}
|
||||
|
||||
/** @ignore */
|
||||
function uid(): number {
|
||||
return window.crypto.getRandomValues(new Uint32Array(1))[0]
|
||||
}
|
||||
|
||||
/**
|
||||
* Transforms a callback function to a string identifier that can be passed to the backend.
|
||||
* The backend uses the identifier to `eval()` the callback.
|
||||
@ -42,22 +21,7 @@ function transformCallback(
|
||||
callback?: (response: any) => void,
|
||||
once = false
|
||||
): number {
|
||||
const identifier = uid()
|
||||
const prop = `_${identifier}`
|
||||
|
||||
Object.defineProperty(window, prop, {
|
||||
value: (result: any) => {
|
||||
if (once) {
|
||||
Reflect.deleteProperty(window, prop)
|
||||
}
|
||||
|
||||
return callback?.(result)
|
||||
},
|
||||
writable: false,
|
||||
configurable: true
|
||||
})
|
||||
|
||||
return identifier
|
||||
return window.__TAURI_INTERNALS__.transformCallback(callback, once)
|
||||
}
|
||||
|
||||
class Channel<T = unknown> {
|
||||
@ -143,7 +107,7 @@ interface InvokeOptions {
|
||||
* Sends a message to the backend.
|
||||
* @example
|
||||
* ```typescript
|
||||
* import { invoke } from '@tauri-apps/api/tauri';
|
||||
* import { invoke } from '@tauri-apps/api/primitives';
|
||||
* await invoke('login', { user: 'tauri', password: 'poiwe3h4r5ip3yrhtew9ty' });
|
||||
* ```
|
||||
*
|
||||
@ -159,24 +123,7 @@ async function invoke<T>(
|
||||
args: InvokeArgs = {},
|
||||
options?: InvokeOptions
|
||||
): Promise<T> {
|
||||
return new Promise((resolve, reject) => {
|
||||
const callback = transformCallback((e: T) => {
|
||||
resolve(e)
|
||||
Reflect.deleteProperty(window, `_${error}`)
|
||||
}, true)
|
||||
const error = transformCallback((e) => {
|
||||
reject(e)
|
||||
Reflect.deleteProperty(window, `_${callback}`)
|
||||
}, true)
|
||||
|
||||
window.__TAURI_IPC__({
|
||||
cmd,
|
||||
callback,
|
||||
error,
|
||||
payload: args,
|
||||
options
|
||||
})
|
||||
})
|
||||
return window.__TAURI_INTERNALS__.invoke(cmd, args, options)
|
||||
}
|
||||
|
||||
/**
|
||||
@ -192,7 +139,7 @@ async function invoke<T>(
|
||||
* @example
|
||||
* ```typescript
|
||||
* import { appDataDir, join } from '@tauri-apps/api/path';
|
||||
* import { convertFileSrc } from '@tauri-apps/api/tauri';
|
||||
* import { convertFileSrc } from '@tauri-apps/api/primitives';
|
||||
* const appDataDirPath = await appDataDir();
|
||||
* const filePath = await join(appDataDirPath, 'assets/video.mp4');
|
||||
* const assetUrl = convertFileSrc(filePath);
|
||||
@ -210,7 +157,7 @@ async function invoke<T>(
|
||||
* @since 1.0.0
|
||||
*/
|
||||
function convertFileSrc(filePath: string, protocol = 'asset'): string {
|
||||
return window.__TAURI__.convertFileSrc(filePath, protocol)
|
||||
return window.__TAURI_INTERNALS__.convertFileSrc(filePath, protocol)
|
||||
}
|
||||
|
||||
export type { InvokeArgs, InvokeOptions }
|
||||
@ -24,7 +24,7 @@ import {
|
||||
} from './dpi'
|
||||
import type { Event, EventName, EventCallback, UnlistenFn } from './event'
|
||||
import { TauriEvent, emit, listen, once } from './event'
|
||||
import { invoke } from './tauri'
|
||||
import { invoke } from './primitives'
|
||||
|
||||
/**
|
||||
* Allows you to retrieve information about a given monitor.
|
||||
@ -63,21 +63,6 @@ type FileDropEvent =
|
||||
| { type: 'drop'; paths: string[] }
|
||||
| { type: 'cancel' }
|
||||
|
||||
/** @ignore */
|
||||
interface WindowDef {
|
||||
label: string
|
||||
}
|
||||
|
||||
/** @ignore */
|
||||
declare global {
|
||||
interface Window {
|
||||
__TAURI_METADATA__: {
|
||||
__windows: WindowDef[]
|
||||
__currentWindow: WindowDef
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Attention type to request on a window.
|
||||
*
|
||||
@ -169,7 +154,7 @@ export type CursorIcon =
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function getCurrent(): Window {
|
||||
return new Window(window.__TAURI_METADATA__.__currentWindow.label, {
|
||||
return new Window(window.__TAURI_INTERNALS__.metadata.currentWindow.label, {
|
||||
// @ts-expect-error `skip` is not defined in the public API but it is handled by the constructor
|
||||
skip: true
|
||||
})
|
||||
@ -181,7 +166,7 @@ function getCurrent(): Window {
|
||||
* @since 2.0.0
|
||||
*/
|
||||
function getAll(): Window[] {
|
||||
return window.__TAURI_METADATA__.__windows.map(
|
||||
return window.__TAURI_INTERNALS__.metadata.windows.map(
|
||||
(w) =>
|
||||
new Window(w.label, {
|
||||
// @ts-expect-error `skip` is not defined in the public API but it is handled by the constructor
|
||||
@ -2225,6 +2210,7 @@ export {
|
||||
}
|
||||
|
||||
export type {
|
||||
Effects,
|
||||
Theme,
|
||||
TitleBarStyle,
|
||||
ScaleFactorChanged,
|
||||
|
||||
@ -1,9 +1,10 @@
|
||||
{
|
||||
"entryPoints": [
|
||||
"src/dpi.ts",
|
||||
"src/event.ts",
|
||||
"src/mocks.ts",
|
||||
"src/path.ts",
|
||||
"src/tauri.ts",
|
||||
"src/primitives.ts",
|
||||
"src/window.ts"
|
||||
],
|
||||
"githubPages": false,
|
||||
|
||||
@ -13,7 +13,7 @@ use std::{
|
||||
process::Command,
|
||||
};
|
||||
|
||||
const CORE_API_MODULES: &[&str] = &["event", "path", "tauri", "mocks"];
|
||||
const CORE_API_MODULES: &[&str] = &["dpi", "event", "path", "primitives", "window", "mocks"];
|
||||
const JS_EXTENSIONS: &[&str] = &["js", "jsx", "ts", "tsx", "mjs"];
|
||||
|
||||
pub fn migrate(app_dir: &Path, tauri_dir: &Path) -> Result<()> {
|
||||
@ -39,7 +39,11 @@ pub fn migrate(app_dir: &Path, tauri_dir: &Path) -> Result<()> {
|
||||
let module = cap.get(1).unwrap().as_str();
|
||||
let original = cap.get(0).unwrap().as_str();
|
||||
|
||||
if CORE_API_MODULES.contains(&module) {
|
||||
if module == "tauri" {
|
||||
let new = "@tauri-apps/api/primitives".to_string();
|
||||
log::info!("Replacing `{original}` with `{new}` on {}", path.display());
|
||||
new
|
||||
} else if CORE_API_MODULES.contains(&module) {
|
||||
original.to_string()
|
||||
} else {
|
||||
let plugin = format!("@tauri-apps/plugin-{module}");
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
<script>
|
||||
import { invoke } from "@tauri-apps/api/tauri"
|
||||
import { invoke } from "@tauri-apps/api/primitives"
|
||||
|
||||
let name = "";
|
||||
let greetMsg = ""
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
{{#if license_header}}
|
||||
{#if license_header}}
|
||||
{{ license_header }}
|
||||
{{/if}}
|
||||
import { invoke } from '@tauri-apps/api/tauri'
|
||||
import { invoke } from '@tauri-apps/api/primitives'
|
||||
|
||||
export async function execute() {
|
||||
await invoke('plugin:{{ plugin_name }}|execute')
|
||||
|
||||
Loading…
Reference in New Issue
Block a user