feat(desktop): portable phase-1 foundational: infra & build (#5259)
This commit is contained in:
parent
876d0fd322
commit
899db05ab8
18 changed files with 1091 additions and 139 deletions
|
|
@ -19,7 +19,7 @@
|
||||||
},
|
},
|
||||||
"exports": {
|
"exports": {
|
||||||
".": {
|
".": {
|
||||||
"type": "./dist/index.d.ts",
|
"types": "./dist/index.d.ts",
|
||||||
"import": "./dist/hoppscotch-data.js",
|
"import": "./dist/hoppscotch-data.js",
|
||||||
"require": "./dist/hoppscotch-data.cjs"
|
"require": "./dist/hoppscotch-data.cjs"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
67
packages/hoppscotch-desktop/.eslintrc.cjs
Normal file
67
packages/hoppscotch-desktop/.eslintrc.cjs
Normal file
|
|
@ -0,0 +1,67 @@
|
||||||
|
/* eslint-env node */
|
||||||
|
require("@rushstack/eslint-patch/modern-module-resolution")
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
root: true,
|
||||||
|
env: {
|
||||||
|
browser: true,
|
||||||
|
node: true,
|
||||||
|
jest: true,
|
||||||
|
},
|
||||||
|
parserOptions: {
|
||||||
|
sourceType: "module",
|
||||||
|
requireConfigFile: false,
|
||||||
|
ecmaFeatures: {
|
||||||
|
jsx: false,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
extends: [
|
||||||
|
"@vue/typescript/recommended",
|
||||||
|
"plugin:vue/vue3-recommended",
|
||||||
|
"plugin:prettier/recommended",
|
||||||
|
],
|
||||||
|
ignorePatterns: [
|
||||||
|
"static/**/*",
|
||||||
|
"./helpers/backend/graphql.ts",
|
||||||
|
"**/*.d.ts",
|
||||||
|
"types/**/*",
|
||||||
|
],
|
||||||
|
plugins: ["vue", "prettier"],
|
||||||
|
// add your custom rules here
|
||||||
|
rules: {
|
||||||
|
semi: [2, "never"],
|
||||||
|
"import/named": "off", // because, named import issue with typescript see: https://github.com/typescript-eslint/typescript-eslint/issues/154
|
||||||
|
"no-console": "off",
|
||||||
|
"no-debugger": process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn",
|
||||||
|
"prettier/prettier":
|
||||||
|
process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn",
|
||||||
|
"vue/multi-word-component-names": "off",
|
||||||
|
"vue/no-side-effects-in-computed-properties": "off",
|
||||||
|
"import/no-named-as-default": "off",
|
||||||
|
"import/no-named-as-default-member": "off",
|
||||||
|
"@typescript-eslint/no-unused-vars":
|
||||||
|
process.env.HOPP_LINT_FOR_PROD === "true" ? "error" : "warn",
|
||||||
|
"@typescript-eslint/no-non-null-assertion": "off",
|
||||||
|
"@typescript-eslint/no-explicit-any": "off",
|
||||||
|
"import/default": "off",
|
||||||
|
"no-undef": "off",
|
||||||
|
// localStorage block
|
||||||
|
"no-restricted-globals": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
name: "localStorage",
|
||||||
|
message:
|
||||||
|
"Do not use 'localStorage' directly. Please use localpersistence.ts functions or stores",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
// window.localStorage block
|
||||||
|
"no-restricted-syntax": [
|
||||||
|
"error",
|
||||||
|
{
|
||||||
|
selector: "CallExpression[callee.object.property.name='localStorage']",
|
||||||
|
message:
|
||||||
|
"Do not use 'localStorage' directly. Please use localpersistence.ts functions or stores",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
@ -8,32 +8,50 @@
|
||||||
"build": "vue-tsc --noEmit && vite build",
|
"build": "vue-tsc --noEmit && vite build",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
"tauri": "tauri",
|
"tauri": "tauri",
|
||||||
"dev:full": "(cd ../hoppscotch-selfhost-web && pnpm install && pnpm generate) && (cd crates/webapp-bundler && cargo build --release && cd target/release && ./webapp-bundler --input ../../../../../hoppscotch-selfhost-web/dist --output ../../../../bundle.zip --manifest ../../../../manifest.json) && (cd src-tauri && pnpm tauri dev)",
|
"lint": "eslint src --ext .ts,.js,.vue --ignore-path .gitignore .",
|
||||||
"build:full": "(cd ../hoppscotch-selfhost-web && pnpm install && pnpm generate) && (cd crates/webapp-bundler && cargo build --release && cd target/release && ./webapp-bundler --input ../../../../../hoppscotch-selfhost-web/dist --output ../../../../bundle.zip --manifest ../../../../manifest.json) && (cd src-tauri && pnpm tauri build)"
|
"lint:ts": "vue-tsc --noEmit",
|
||||||
|
"lintfix": "eslint --fix src --ext .ts,.js,.vue --ignore-path .gitignore .",
|
||||||
|
"prod-lint": "cross-env HOPP_LINT_FOR_PROD=true pnpm run lint",
|
||||||
|
"prepare-web": "(cd ../hoppscotch-selfhost-web && pnpm install && pnpm generate) && (cd crates/webapp-bundler && cargo build --release && cd target/release && ./webapp-bundler --input ../../../../../hoppscotch-selfhost-web/dist --output ../../../../bundle.zip --manifest ../../../../manifest.json)",
|
||||||
|
"dev:full": "pnpm tauri dev",
|
||||||
|
"build:full": "pnpm tauri build",
|
||||||
|
"dev:portable": "pnpm tauri dev -- --no-default-features --features portable",
|
||||||
|
"build:portable": "pnpm tauri build -- --no-default-features --features portable"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@fontsource-variable/inter": "5.1.0",
|
"@fontsource-variable/inter": "5.1.0",
|
||||||
"@fontsource-variable/material-symbols-rounded": "5.1.3",
|
"@fontsource-variable/material-symbols-rounded": "5.1.3",
|
||||||
"@fontsource-variable/roboto-mono": "5.1.0",
|
"@fontsource-variable/roboto-mono": "5.1.0",
|
||||||
|
"@hoppscotch/common": "workspace:^",
|
||||||
"@hoppscotch/kernel": "workspace:^",
|
"@hoppscotch/kernel": "workspace:^",
|
||||||
"@hoppscotch/plugin-appload": "github:CuriousCorrelation/tauri-plugin-appload#1b52e49d881926135838cf6cfebdc1643a9bec31",
|
"@hoppscotch/plugin-appload": "github:CuriousCorrelation/tauri-plugin-appload#1b52e49d881926135838cf6cfebdc1643a9bec31",
|
||||||
"@hoppscotch/ui": "0.2.1",
|
"@hoppscotch/ui": "0.2.1",
|
||||||
"@tauri-apps/api": "2.1.1",
|
"@tauri-apps/api": "2.1.1",
|
||||||
|
"@tauri-apps/plugin-fs": "2.0.2",
|
||||||
"@tauri-apps/plugin-process": "2.2.0",
|
"@tauri-apps/plugin-process": "2.2.0",
|
||||||
"@tauri-apps/plugin-shell": "2.0.1",
|
"@tauri-apps/plugin-shell": "2.0.1",
|
||||||
"@tauri-apps/plugin-store": "2.2.0",
|
"@tauri-apps/plugin-store": "2.2.0",
|
||||||
"@tauri-apps/plugin-updater": "2.5.1",
|
"@tauri-apps/plugin-updater": "2.5.1",
|
||||||
"@vueuse/core": "11.1.0",
|
"@vueuse/core": "11.1.0",
|
||||||
"fp-ts": "2.16.9",
|
"fp-ts": "2.16.9",
|
||||||
|
"rxjs": "7.8.1",
|
||||||
"vue": "^3.3.4",
|
"vue": "^3.3.4",
|
||||||
"vue-router": "4.4.5",
|
"vue-router": "4.4.5",
|
||||||
"vue-tippy": "6.5.0"
|
"vue-tippy": "6.5.0",
|
||||||
|
"zod": "3.23.8"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@iconify-json/lucide": "1.2.10",
|
"@iconify-json/lucide": "1.2.10",
|
||||||
|
"@rushstack/eslint-patch": "1.10.4",
|
||||||
"@tauri-apps/cli": "^2",
|
"@tauri-apps/cli": "^2",
|
||||||
|
"@typescript-eslint/eslint-plugin": "8.9.0",
|
||||||
|
"@typescript-eslint/parser": "8.9.0",
|
||||||
"@vitejs/plugin-vue": "^5.0.5",
|
"@vitejs/plugin-vue": "^5.0.5",
|
||||||
|
"@vue/eslint-config-typescript": "13.0.0",
|
||||||
"autoprefixer": "10.4.20",
|
"autoprefixer": "10.4.20",
|
||||||
|
"eslint": "8.57.0",
|
||||||
|
"eslint-plugin-prettier": "5.2.1",
|
||||||
|
"eslint-plugin-vue": "9.29.0",
|
||||||
"postcss": "8.4.49",
|
"postcss": "8.4.49",
|
||||||
"sass": "1.80.3",
|
"sass": "1.80.3",
|
||||||
"tailwindcss": "3.4.14",
|
"tailwindcss": "3.4.14",
|
||||||
|
|
|
||||||
609
packages/hoppscotch-desktop/src-tauri/Cargo.lock
generated
609
packages/hoppscotch-desktop/src-tauri/Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -38,7 +38,20 @@ tokio = "1.43.0"
|
||||||
tauri-plugin-process = "2.2.0"
|
tauri-plugin-process = "2.2.0"
|
||||||
file-rotate = "0.8.0"
|
file-rotate = "0.8.0"
|
||||||
dirs = "6.0.0"
|
dirs = "6.0.0"
|
||||||
|
thiserror = "2.0.12"
|
||||||
|
native-dialog = { version = "0.7.0" }
|
||||||
|
tauri-plugin-http = { version = "2.0.1", features = ["gzip"] }
|
||||||
|
tauri-plugin-opener = "2"
|
||||||
|
semver = "1.0"
|
||||||
|
|
||||||
|
[target.'cfg(windows)'.dependencies]
|
||||||
|
tempfile = { version = "3.13.0" }
|
||||||
|
winreg = { version = "0.52.0" }
|
||||||
|
|
||||||
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
|
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
|
||||||
tauri-plugin-updater = "2.3.1"
|
tauri-plugin-updater = "2.3.1"
|
||||||
tauri-plugin-window-state = "2.2.1"
|
tauri-plugin-window-state = "2.2.1"
|
||||||
|
|
||||||
|
[features]
|
||||||
|
default = []
|
||||||
|
portable = []
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,20 @@
|
||||||
fn main() {
|
fn main() {
|
||||||
|
#[cfg(all(feature = "portable", target_os = "windows"))]
|
||||||
|
{
|
||||||
|
println!("cargo:rerun-if-changed=tauri.portable.windows.conf.json");
|
||||||
|
println!("cargo:rustc-env=TAURI_CONFIG_FILE=tauri.portable.windows.conf.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(all(feature = "portable", target_os = "macos"))]
|
||||||
|
{
|
||||||
|
println!("cargo:rerun-if-changed=tauri.portable.macos.conf.json");
|
||||||
|
println!("cargo:rustc-env=TAURI_CONFIG_FILE=tauri.portable.macos.conf.json");
|
||||||
|
}
|
||||||
|
|
||||||
|
#[cfg(not(feature = "portable"))]
|
||||||
|
{
|
||||||
|
println!("cargo:rerun-if-changed=tauri.conf.json");
|
||||||
|
}
|
||||||
|
|
||||||
tauri_build::build()
|
tauri_build::build()
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@
|
||||||
{
|
{
|
||||||
"title": "main",
|
"title": "main",
|
||||||
"width": 500,
|
"width": 500,
|
||||||
"height": 600,
|
"height": 700,
|
||||||
"decorations": false,
|
"decorations": false,
|
||||||
"alwaysOnTop": true,
|
"alwaysOnTop": true,
|
||||||
"resizable": false
|
"resizable": false
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,62 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
|
"productName": "Hoppscotch",
|
||||||
|
"version": "25.6.1",
|
||||||
|
"identifier": "io.hoppscotch.desktop",
|
||||||
|
"build": {
|
||||||
|
"beforeDevCommand": "pnpm dev",
|
||||||
|
"devUrl": "http://127.0.0.1:1420",
|
||||||
|
"beforeBuildCommand": "pnpm build",
|
||||||
|
"frontendDist": "../dist"
|
||||||
|
},
|
||||||
|
"app": {
|
||||||
|
"windows": [
|
||||||
|
{
|
||||||
|
"title": "main",
|
||||||
|
"width": 500,
|
||||||
|
"height": 700,
|
||||||
|
"decorations": false,
|
||||||
|
"alwaysOnTop": true,
|
||||||
|
"resizable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"security": {
|
||||||
|
"csp": {
|
||||||
|
"default-src": "blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' customprotocol: asset:",
|
||||||
|
"script-src": "* 'self' 'unsafe-eval' 'wasm-unsafe-eval' 'unsafe-inline'",
|
||||||
|
"connect-src": "ipc: http://ipc.localhost https://api.hoppscotch.io data: *",
|
||||||
|
"font-src": "https://fonts.gstatic.com data: 'self' *",
|
||||||
|
"img-src": "'self' asset: http://asset.localhost blob: data: customprotocol: *",
|
||||||
|
"style-src": "'unsafe-inline' 'self' https://fonts.googleapis.com data: asset: *",
|
||||||
|
"worker-src": "* 'self' data: 'unsafe-eval' blob:"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bundle": {
|
||||||
|
"active": true,
|
||||||
|
"targets": "all",
|
||||||
|
"createUpdaterArtifacts": false,
|
||||||
|
"icon": [
|
||||||
|
"icons/32x32.png",
|
||||||
|
"icons/128x128.png",
|
||||||
|
"icons/128x128@2x.png",
|
||||||
|
"icons/icon.icns",
|
||||||
|
"icons/icon.ico"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"plugins": {
|
||||||
|
"deep-link": {
|
||||||
|
"desktop": {
|
||||||
|
"schemes": ["io.hoppscotch.desktop"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"updater": {
|
||||||
|
"active": true,
|
||||||
|
"endpoints": [
|
||||||
|
"https://releases.hoppscotch.com/hoppscotch-selfhost-desktop.json"
|
||||||
|
],
|
||||||
|
"dialog": false,
|
||||||
|
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDYwOURFNEY4RDRGMDQxNTgKUldSWVFmRFUrT1NkWUc1RDM0Z2ZjTHE2dG52Q3ZlYzg3ZXVpZU9KaENPWTBMd3MwY0hWa1lreDcK"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,60 @@
|
||||||
|
{
|
||||||
|
"$schema": "https://schema.tauri.app/config/2",
|
||||||
|
"productName": "Hoppscotch",
|
||||||
|
"version": "25.6.1",
|
||||||
|
"identifier": "io.hoppscotch.desktop",
|
||||||
|
"build": {
|
||||||
|
"beforeDevCommand": "pnpm dev",
|
||||||
|
"devUrl": "http://127.0.0.1:1420",
|
||||||
|
"beforeBuildCommand": "pnpm build",
|
||||||
|
"frontendDist": "../dist"
|
||||||
|
},
|
||||||
|
"app": {
|
||||||
|
"windows": [
|
||||||
|
{
|
||||||
|
"title": "main",
|
||||||
|
"width": 500,
|
||||||
|
"height": 700,
|
||||||
|
"decorations": false,
|
||||||
|
"alwaysOnTop": true,
|
||||||
|
"resizable": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"security": {
|
||||||
|
"csp": {
|
||||||
|
"default-src": "blob: data: filesystem: ws: wss: http: https: tauri: 'unsafe-eval' 'unsafe-inline' 'self' customprotocol: asset:",
|
||||||
|
"script-src": "* 'self' 'unsafe-eval' 'wasm-unsafe-eval' 'unsafe-inline'",
|
||||||
|
"connect-src": "ipc: http://ipc.localhost https://api.hoppscotch.io data: *",
|
||||||
|
"font-src": "https://fonts.gstatic.com data: 'self' *",
|
||||||
|
"img-src": "'self' asset: http://asset.localhost blob: data: customprotocol: *",
|
||||||
|
"style-src": "'unsafe-inline' 'self' https://fonts.googleapis.com data: asset: *",
|
||||||
|
"worker-src": "* 'self' data: 'unsafe-eval' blob:"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"bundle": {
|
||||||
|
"active": false,
|
||||||
|
"targets": "all",
|
||||||
|
"windows": {
|
||||||
|
"webviewInstallMode": {
|
||||||
|
"type": "skip"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"createUpdaterArtifacts": false
|
||||||
|
},
|
||||||
|
"plugins": {
|
||||||
|
"deep-link": {
|
||||||
|
"desktop": {
|
||||||
|
"schemes": ["io.hoppscotch.desktop"]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"updater": {
|
||||||
|
"active": true,
|
||||||
|
"endpoints": [
|
||||||
|
"https://releases.hoppscotch.com/hoppscotch-selfhost-desktop.json"
|
||||||
|
],
|
||||||
|
"dialog": false,
|
||||||
|
"pubkey": "dW50cnVzdGVkIGNvbW1lbnQ6IG1pbmlzaWduIHB1YmxpYyBrZXk6IDYwOURFNEY4RDRGMDQxNTgKUldSWVFmRFUrT1NkWUc1RDM0Z2ZjTHE2dG52Q3ZlYzg3ZXVpZU9KaENPWTBMd3MwY0hWa1lreDcK"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
13
packages/hoppscotch-desktop/src/kernel/index.ts
Normal file
13
packages/hoppscotch-desktop/src/kernel/index.ts
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
import { KernelAPI } from "@hoppscotch/kernel"
|
||||||
|
|
||||||
|
export { Io } from "./io"
|
||||||
|
export { Relay } from "./relay"
|
||||||
|
export { Store } from "./store"
|
||||||
|
|
||||||
|
export const getModule = <K extends keyof KernelAPI>(
|
||||||
|
name: K
|
||||||
|
): NonNullable<KernelAPI[K]> => {
|
||||||
|
const kernel = window.__KERNEL__
|
||||||
|
if (!kernel?.[name]) throw new Error(`Kernel ${String(name)} not initialized`)
|
||||||
|
return kernel[name]
|
||||||
|
}
|
||||||
34
packages/hoppscotch-desktop/src/kernel/io.ts
Normal file
34
packages/hoppscotch-desktop/src/kernel/io.ts
Normal file
|
|
@ -0,0 +1,34 @@
|
||||||
|
import type {
|
||||||
|
SaveFileWithDialogOptions,
|
||||||
|
OpenExternalLinkOptions,
|
||||||
|
SaveFileResponse,
|
||||||
|
OpenExternalLinkResponse,
|
||||||
|
EventCallback,
|
||||||
|
UnlistenFn,
|
||||||
|
} from "@hoppscotch/kernel"
|
||||||
|
import { getModule } from "."
|
||||||
|
|
||||||
|
export const Io = (() => {
|
||||||
|
const module = () => getModule("io")
|
||||||
|
|
||||||
|
return {
|
||||||
|
saveFileWithDialog: (
|
||||||
|
opts: SaveFileWithDialogOptions
|
||||||
|
): Promise<SaveFileResponse> => module().saveFileWithDialog(opts),
|
||||||
|
|
||||||
|
openExternalLink: (
|
||||||
|
opts: OpenExternalLinkOptions
|
||||||
|
): Promise<OpenExternalLinkResponse> => module().openExternalLink(opts),
|
||||||
|
|
||||||
|
listen: <T>(
|
||||||
|
event: string,
|
||||||
|
handler: EventCallback<T>
|
||||||
|
): Promise<UnlistenFn> => module().listen(event, handler),
|
||||||
|
|
||||||
|
once: <T>(event: string, handler: EventCallback<T>): Promise<UnlistenFn> =>
|
||||||
|
module().once(event, handler),
|
||||||
|
|
||||||
|
emit: (event: string, payload?: unknown): Promise<void> =>
|
||||||
|
module().emit(event, payload),
|
||||||
|
} as const
|
||||||
|
})()
|
||||||
26
packages/hoppscotch-desktop/src/kernel/relay.ts
Normal file
26
packages/hoppscotch-desktop/src/kernel/relay.ts
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
import type {
|
||||||
|
RelayRequest,
|
||||||
|
RelayRequestEvents,
|
||||||
|
RelayError,
|
||||||
|
RelayResponse,
|
||||||
|
RelayEventEmitter,
|
||||||
|
} from "@hoppscotch/kernel"
|
||||||
|
import * as E from "fp-ts/Either"
|
||||||
|
import { getModule } from "."
|
||||||
|
|
||||||
|
export const Relay = (() => {
|
||||||
|
const module = () => getModule("relay")
|
||||||
|
|
||||||
|
return {
|
||||||
|
capabilities: () => module().capabilities,
|
||||||
|
canHandle: (request: RelayRequest): E.Either<RelayError, true> =>
|
||||||
|
module().canHandle(request),
|
||||||
|
execute: (
|
||||||
|
request: RelayRequest
|
||||||
|
): {
|
||||||
|
cancel: () => Promise<void>
|
||||||
|
emitter: RelayEventEmitter<RelayRequestEvents>
|
||||||
|
response: Promise<E.Either<RelayError, RelayResponse>>
|
||||||
|
} => module().execute(request),
|
||||||
|
} as const
|
||||||
|
})()
|
||||||
114
packages/hoppscotch-desktop/src/kernel/store.ts
Normal file
114
packages/hoppscotch-desktop/src/kernel/store.ts
Normal file
|
|
@ -0,0 +1,114 @@
|
||||||
|
import type {
|
||||||
|
StorageOptions,
|
||||||
|
StoreError,
|
||||||
|
StoreEvents,
|
||||||
|
StoreEventEmitter,
|
||||||
|
} from "@hoppscotch/kernel"
|
||||||
|
import * as E from "fp-ts/Either"
|
||||||
|
import { getModule } from "."
|
||||||
|
import { invoke } from "@tauri-apps/api/core"
|
||||||
|
import { join } from "@tauri-apps/api/path"
|
||||||
|
|
||||||
|
const STORE_PATH = "hoppscotch-unified.store"
|
||||||
|
|
||||||
|
export const getConfigDir = async (): Promise<string> => {
|
||||||
|
return invoke<string>("get_config_dir")
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getBackupDir = async (): Promise<string> => {
|
||||||
|
return invoke<string>("get_backup_dir")
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getLatestDir = async (): Promise<string> => {
|
||||||
|
return invoke<string>("get_latest_dir")
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getStoreDir = async (): Promise<string> => {
|
||||||
|
return invoke<string>("get_store_dir")
|
||||||
|
}
|
||||||
|
|
||||||
|
export const getInstanceDir = async (): Promise<string> => {
|
||||||
|
return invoke<string>("get_instance_dir")
|
||||||
|
}
|
||||||
|
|
||||||
|
const getStorePath = async (): Promise<string> => {
|
||||||
|
try {
|
||||||
|
const instanceDir = await getInstanceDir()
|
||||||
|
return join(instanceDir, STORE_PATH)
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Failed to get instance directory:", error)
|
||||||
|
return "hoppscotch-unified.store"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export const Store = (() => {
|
||||||
|
const module = () => getModule("store")
|
||||||
|
|
||||||
|
return {
|
||||||
|
capabilities: () => module().capabilities,
|
||||||
|
|
||||||
|
init: async () => {
|
||||||
|
const storePath = await getStorePath()
|
||||||
|
return module().init(storePath)
|
||||||
|
},
|
||||||
|
|
||||||
|
set: async (
|
||||||
|
namespace: string,
|
||||||
|
key: string,
|
||||||
|
value: unknown,
|
||||||
|
options?: StorageOptions
|
||||||
|
): Promise<E.Either<StoreError, void>> => {
|
||||||
|
const storePath = await getStorePath()
|
||||||
|
return module().set(storePath, namespace, key, value, options)
|
||||||
|
},
|
||||||
|
|
||||||
|
get: async <T>(
|
||||||
|
namespace: string,
|
||||||
|
key: string
|
||||||
|
): Promise<E.Either<StoreError, T | undefined>> => {
|
||||||
|
const storePath = await getStorePath()
|
||||||
|
return module().get<T>(storePath, namespace, key)
|
||||||
|
},
|
||||||
|
|
||||||
|
remove: async (
|
||||||
|
namespace: string,
|
||||||
|
key: string
|
||||||
|
): Promise<E.Either<StoreError, boolean>> => {
|
||||||
|
const storePath = await getStorePath()
|
||||||
|
return module().remove(storePath, namespace, key)
|
||||||
|
},
|
||||||
|
|
||||||
|
clear: async (namespace?: string): Promise<E.Either<StoreError, void>> => {
|
||||||
|
const storePath = await getStorePath()
|
||||||
|
return module().clear(storePath, namespace)
|
||||||
|
},
|
||||||
|
|
||||||
|
has: async (
|
||||||
|
namespace: string,
|
||||||
|
key: string
|
||||||
|
): Promise<E.Either<StoreError, boolean>> => {
|
||||||
|
const storePath = await getStorePath()
|
||||||
|
return module().has(storePath, namespace, key)
|
||||||
|
},
|
||||||
|
|
||||||
|
listNamespaces: async (): Promise<E.Either<StoreError, string[]>> => {
|
||||||
|
const storePath = await getStorePath()
|
||||||
|
return module().listNamespaces(storePath)
|
||||||
|
},
|
||||||
|
|
||||||
|
listKeys: async (
|
||||||
|
namespace: string
|
||||||
|
): Promise<E.Either<StoreError, string[]>> => {
|
||||||
|
const storePath = await getStorePath()
|
||||||
|
return module().listKeys(storePath, namespace)
|
||||||
|
},
|
||||||
|
|
||||||
|
watch: async (
|
||||||
|
namespace: string,
|
||||||
|
key: string
|
||||||
|
): Promise<StoreEventEmitter<StoreEvents>> => {
|
||||||
|
const storePath = await getStorePath()
|
||||||
|
return module().watch(storePath, namespace, key)
|
||||||
|
},
|
||||||
|
} as const
|
||||||
|
})()
|
||||||
9
packages/hoppscotch-desktop/src/types/kernel.d.ts
vendored
Normal file
9
packages/hoppscotch-desktop/src/types/kernel.d.ts
vendored
Normal file
|
|
@ -0,0 +1,9 @@
|
||||||
|
import type { KernelAPI } from "@hoppscotch/kernel"
|
||||||
|
|
||||||
|
declare global {
|
||||||
|
interface Window {
|
||||||
|
__KERNEL__?: KernelAPI
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export {}
|
||||||
|
|
@ -21,16 +21,21 @@
|
||||||
"noFallthroughCasesInSwitch": true,
|
"noFallthroughCasesInSwitch": true,
|
||||||
"paths": {
|
"paths": {
|
||||||
"~/*": ["./src/*"],
|
"~/*": ["./src/*"],
|
||||||
|
"@hoppscotch/common": ["../hoppscotch-common/src/index.ts"],
|
||||||
|
"@hoppscotch/common/*": ["../hoppscotch-common/src/*"],
|
||||||
"@composables/*": ["./src/composables/*"],
|
"@composables/*": ["./src/composables/*"],
|
||||||
"@components/*": ["./src/components/*"],
|
"@components/*": ["./src/components/*"],
|
||||||
"@helpers/*": ["./src/helpers/*"],
|
"@helpers/*": ["./src/helpers/*"],
|
||||||
|
"@kernel/*": ["./src/kernel/*"],
|
||||||
"@modules/*": ["./src/modules/*"],
|
"@modules/*": ["./src/modules/*"],
|
||||||
|
"@services/*": ["./src/services/*"],
|
||||||
"@workers/*": ["./src/workers/*"],
|
"@workers/*": ["./src/workers/*"],
|
||||||
"@functional/*": ["./src/helpers/functional/*"]
|
"@functional/*": ["./src/helpers/functional/*"]
|
||||||
},
|
},
|
||||||
"types": [
|
"types": [
|
||||||
"vite/client",
|
"vite/client",
|
||||||
"unplugin-icons/types/vue"
|
"unplugin-icons/types/vue",
|
||||||
|
"./src/types/kernel.d.ts"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
|
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,9 @@
|
||||||
import { defineConfig } from "vite"
|
import { defineConfig } from "vite"
|
||||||
import vue from "@vitejs/plugin-vue"
|
import vue from "@vitejs/plugin-vue"
|
||||||
import Icons from 'unplugin-icons/vite'
|
import Icons from "unplugin-icons/vite"
|
||||||
import IconResolver from 'unplugin-icons/resolver'
|
import IconResolver from "unplugin-icons/resolver"
|
||||||
import Components from 'unplugin-vue-components/vite'
|
import Components from "unplugin-vue-components/vite"
|
||||||
import path from 'path'
|
import path from "path"
|
||||||
|
|
||||||
// @ts-expect-error process is a nodejs global
|
// @ts-expect-error process is a nodejs global
|
||||||
const host = process.env.TAURI_DEV_HOST
|
const host = process.env.TAURI_DEV_HOST
|
||||||
|
|
@ -12,28 +12,28 @@ export default defineConfig(async () => ({
|
||||||
plugins: [
|
plugins: [
|
||||||
vue(),
|
vue(),
|
||||||
Components({
|
Components({
|
||||||
dts: './src/components.d.ts',
|
dts: "./src/components.d.ts",
|
||||||
resolvers: [
|
resolvers: [
|
||||||
IconResolver({
|
IconResolver({
|
||||||
prefix: 'icon',
|
prefix: "icon",
|
||||||
}),
|
}),
|
||||||
(compName: string) => {
|
(compName: string) => {
|
||||||
if (compName.startsWith('Hopp'))
|
if (compName.startsWith("Hopp"))
|
||||||
return { name: compName, from: '@hoppscotch/ui' }
|
return { name: compName, from: "@hoppscotch/ui" }
|
||||||
return undefined
|
return undefined
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
types: [
|
types: [
|
||||||
{
|
{
|
||||||
from: 'vue-tippy',
|
from: "vue-tippy",
|
||||||
names: ['Tippy'],
|
names: ["Tippy"],
|
||||||
},
|
},
|
||||||
],
|
],
|
||||||
include: [/\.vue$/, /\.vue\?vue/],
|
include: [/\.vue$/, /\.vue\?vue/],
|
||||||
dirs: ['src/components'],
|
dirs: ["src/components"],
|
||||||
}),
|
}),
|
||||||
Icons({
|
Icons({
|
||||||
compiler: 'vue3',
|
compiler: "vue3",
|
||||||
}),
|
}),
|
||||||
],
|
],
|
||||||
|
|
||||||
|
|
@ -41,6 +41,7 @@ export default defineConfig(async () => ({
|
||||||
alias: {
|
alias: {
|
||||||
"~": path.resolve(__dirname, "src"),
|
"~": path.resolve(__dirname, "src"),
|
||||||
"~/": path.resolve(__dirname, "src/"),
|
"~/": path.resolve(__dirname, "src/"),
|
||||||
|
"@hoppscotch/common": "@hoppscotch/common/src",
|
||||||
},
|
},
|
||||||
dedupe: ["vue"],
|
dedupe: ["vue"],
|
||||||
},
|
},
|
||||||
|
|
@ -65,13 +66,13 @@ export default defineConfig(async () => ({
|
||||||
server: {
|
server: {
|
||||||
port: 1420,
|
port: 1420,
|
||||||
strictPort: true,
|
strictPort: true,
|
||||||
host: '127.0.0.1',
|
host: "127.0.0.1",
|
||||||
hmr: host
|
hmr: host
|
||||||
? {
|
? {
|
||||||
protocol: "ws",
|
protocol: "ws",
|
||||||
host,
|
host,
|
||||||
port: 1421,
|
port: 1421,
|
||||||
}
|
}
|
||||||
: undefined,
|
: undefined,
|
||||||
watch: {
|
watch: {
|
||||||
ignored: ["**/src-tauri/**"],
|
ignored: ["**/src-tauri/**"],
|
||||||
|
|
|
||||||
|
|
@ -19,7 +19,7 @@
|
||||||
},
|
},
|
||||||
"exports": {
|
"exports": {
|
||||||
".": {
|
".": {
|
||||||
"type": "./dist/index.d.ts",
|
"types": "./dist/index.d.ts",
|
||||||
"import": "./dist/hoppscotch-kernel.js",
|
"import": "./dist/hoppscotch-kernel.js",
|
||||||
"require": "./dist/hoppscotch-kernel.cjs"
|
"require": "./dist/hoppscotch-kernel.cjs"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
134
pnpm-lock.yaml
134
pnpm-lock.yaml
|
|
@ -994,6 +994,9 @@ importers:
|
||||||
'@fontsource-variable/roboto-mono':
|
'@fontsource-variable/roboto-mono':
|
||||||
specifier: 5.1.0
|
specifier: 5.1.0
|
||||||
version: 5.1.0
|
version: 5.1.0
|
||||||
|
'@hoppscotch/common':
|
||||||
|
specifier: workspace:^
|
||||||
|
version: link:../hoppscotch-common
|
||||||
'@hoppscotch/kernel':
|
'@hoppscotch/kernel':
|
||||||
specifier: workspace:^
|
specifier: workspace:^
|
||||||
version: link:../hoppscotch-kernel
|
version: link:../hoppscotch-kernel
|
||||||
|
|
@ -1002,10 +1005,13 @@ importers:
|
||||||
version: '@CuriousCorrelation/plugin-appload@https://codeload.github.com/CuriousCorrelation/tauri-plugin-appload/tar.gz/1b52e49d881926135838cf6cfebdc1643a9bec31'
|
version: '@CuriousCorrelation/plugin-appload@https://codeload.github.com/CuriousCorrelation/tauri-plugin-appload/tar.gz/1b52e49d881926135838cf6cfebdc1643a9bec31'
|
||||||
'@hoppscotch/ui':
|
'@hoppscotch/ui':
|
||||||
specifier: 0.2.1
|
specifier: 0.2.1
|
||||||
version: 0.2.1(eslint@9.27.0(jiti@2.4.2))(terser@5.39.2)(typescript@5.8.3)(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))(vue@3.5.12(typescript@5.8.3))
|
version: 0.2.1(eslint@8.57.0)(terser@5.39.2)(typescript@5.8.3)(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))(vue@3.5.12(typescript@5.8.3))
|
||||||
'@tauri-apps/api':
|
'@tauri-apps/api':
|
||||||
specifier: 2.1.1
|
specifier: 2.1.1
|
||||||
version: 2.1.1
|
version: 2.1.1
|
||||||
|
'@tauri-apps/plugin-fs':
|
||||||
|
specifier: 2.0.2
|
||||||
|
version: 2.0.2
|
||||||
'@tauri-apps/plugin-process':
|
'@tauri-apps/plugin-process':
|
||||||
specifier: 2.2.0
|
specifier: 2.2.0
|
||||||
version: 2.2.0
|
version: 2.2.0
|
||||||
|
|
@ -1024,6 +1030,9 @@ importers:
|
||||||
fp-ts:
|
fp-ts:
|
||||||
specifier: 2.16.9
|
specifier: 2.16.9
|
||||||
version: 2.16.9
|
version: 2.16.9
|
||||||
|
rxjs:
|
||||||
|
specifier: 7.8.1
|
||||||
|
version: 7.8.1
|
||||||
vue:
|
vue:
|
||||||
specifier: 3.5.12
|
specifier: 3.5.12
|
||||||
version: 3.5.12(typescript@5.8.3)
|
version: 3.5.12(typescript@5.8.3)
|
||||||
|
|
@ -1033,19 +1042,43 @@ importers:
|
||||||
vue-tippy:
|
vue-tippy:
|
||||||
specifier: 6.5.0
|
specifier: 6.5.0
|
||||||
version: 6.5.0(vue@3.5.12(typescript@5.8.3))
|
version: 6.5.0(vue@3.5.12(typescript@5.8.3))
|
||||||
|
zod:
|
||||||
|
specifier: 3.23.8
|
||||||
|
version: 3.23.8
|
||||||
devDependencies:
|
devDependencies:
|
||||||
'@iconify-json/lucide':
|
'@iconify-json/lucide':
|
||||||
specifier: 1.2.10
|
specifier: 1.2.10
|
||||||
version: 1.2.10
|
version: 1.2.10
|
||||||
|
'@rushstack/eslint-patch':
|
||||||
|
specifier: 1.10.4
|
||||||
|
version: 1.10.4
|
||||||
'@tauri-apps/cli':
|
'@tauri-apps/cli':
|
||||||
specifier: ^2
|
specifier: ^2
|
||||||
version: 2.0.4
|
version: 2.0.4
|
||||||
|
'@typescript-eslint/eslint-plugin':
|
||||||
|
specifier: 8.9.0
|
||||||
|
version: 8.9.0(@typescript-eslint/parser@8.9.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3)
|
||||||
|
'@typescript-eslint/parser':
|
||||||
|
specifier: 8.9.0
|
||||||
|
version: 8.9.0(eslint@8.57.0)(typescript@5.8.3)
|
||||||
'@vitejs/plugin-vue':
|
'@vitejs/plugin-vue':
|
||||||
specifier: ^5.0.5
|
specifier: ^5.0.5
|
||||||
version: 5.1.4(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))(vue@3.5.12(typescript@5.8.3))
|
version: 5.1.4(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))(vue@3.5.12(typescript@5.8.3))
|
||||||
|
'@vue/eslint-config-typescript':
|
||||||
|
specifier: 13.0.0
|
||||||
|
version: 13.0.0(eslint-plugin-vue@9.29.0(eslint@8.57.0))(eslint@8.57.0)(typescript@5.8.3)
|
||||||
autoprefixer:
|
autoprefixer:
|
||||||
specifier: 10.4.20
|
specifier: 10.4.20
|
||||||
version: 10.4.20(postcss@8.4.49)
|
version: 10.4.20(postcss@8.4.49)
|
||||||
|
eslint:
|
||||||
|
specifier: 8.57.0
|
||||||
|
version: 8.57.0
|
||||||
|
eslint-plugin-prettier:
|
||||||
|
specifier: 5.2.1
|
||||||
|
version: 5.2.1(@types/eslint@9.6.1)(eslint-config-prettier@10.1.5(eslint@8.57.0))(eslint@8.57.0)(prettier@3.5.3)
|
||||||
|
eslint-plugin-vue:
|
||||||
|
specifier: 9.29.0
|
||||||
|
version: 9.29.0(eslint@8.57.0)
|
||||||
postcss:
|
postcss:
|
||||||
specifier: 8.4.49
|
specifier: 8.4.49
|
||||||
version: 8.4.49
|
version: 8.4.49
|
||||||
|
|
@ -13043,12 +13076,6 @@ packages:
|
||||||
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
|
resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
ts-api-utils@1.3.0:
|
|
||||||
resolution: {integrity: sha512-UQMIo7pb8WRomKR1/+MFVLTroIvDVtMX3K6OUir8ynLyzB8Jeriont2bTAtmNPa1ekAgN7YPDyf6V+ygrdU+eQ==}
|
|
||||||
engines: {node: '>=16'}
|
|
||||||
peerDependencies:
|
|
||||||
typescript: '>=4.2.0'
|
|
||||||
|
|
||||||
ts-api-utils@1.4.3:
|
ts-api-utils@1.4.3:
|
||||||
resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
|
resolution: {integrity: sha512-i3eMG77UTMD0hZhgRS562pv83RC6ukSAC2GMNWc+9dieh/+jDM5u5YG+NHX6VNDRHQcHwmsTHctP9LhbC3WxVw==}
|
||||||
engines: {node: '>=16'}
|
engines: {node: '>=16'}
|
||||||
|
|
@ -14511,6 +14538,9 @@ packages:
|
||||||
zod@3.22.4:
|
zod@3.22.4:
|
||||||
resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
|
resolution: {integrity: sha512-iC+8Io04lddc+mVqQ9AZ7OQ2MrUKGN+oIQyq1vemgt46jwCwLfhq7/pwnBnNXXXZb8VTVLKwp9EDkx+ryxIWmg==}
|
||||||
|
|
||||||
|
zod@3.23.8:
|
||||||
|
resolution: {integrity: sha512-XBx9AXhXktjUqnepgTiE5flcKIYWi/rme0Eaj+5Y0lftuGBq+jyRu/md4WnuxqgP1ubdpNCsYEYPxrzVHD8d6g==}
|
||||||
|
|
||||||
zod@3.25.32:
|
zod@3.25.32:
|
||||||
resolution: {integrity: sha512-OSm2xTIRfW8CV5/QKgngwmQW/8aPfGdaQFlrGoErlgg/Epm7cjb6K6VEyExfe65a3VybUOnu381edLb0dfJl0g==}
|
resolution: {integrity: sha512-OSm2xTIRfW8CV5/QKgngwmQW/8aPfGdaQFlrGoErlgg/Epm7cjb6K6VEyExfe65a3VybUOnu381edLb0dfJl0g==}
|
||||||
|
|
||||||
|
|
@ -18493,6 +18523,30 @@ snapshots:
|
||||||
stringify-object: 3.3.0
|
stringify-object: 3.3.0
|
||||||
yargs: 17.7.2
|
yargs: 17.7.2
|
||||||
|
|
||||||
|
'@hoppscotch/ui@0.2.1(eslint@8.57.0)(terser@5.39.2)(typescript@5.8.3)(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))(vue@3.5.12(typescript@5.8.3))':
|
||||||
|
dependencies:
|
||||||
|
'@boringer-avatars/vue3': 0.2.1(vue@3.5.12(typescript@5.8.3))
|
||||||
|
'@fontsource-variable/inter': 5.1.0
|
||||||
|
'@fontsource-variable/material-symbols-rounded': 5.1.3
|
||||||
|
'@fontsource-variable/roboto-mono': 5.1.0
|
||||||
|
'@hoppscotch/vue-sonner': 1.2.3
|
||||||
|
'@hoppscotch/vue-toasted': 0.1.0(vue@3.5.12(typescript@5.8.3))
|
||||||
|
'@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))
|
||||||
|
'@vueuse/core': 8.9.4(vue@3.5.12(typescript@5.8.3))
|
||||||
|
fp-ts: 2.16.9
|
||||||
|
lodash-es: 4.17.21
|
||||||
|
path: 0.12.7
|
||||||
|
vite-plugin-eslint: 1.8.1(eslint@8.57.0)(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))
|
||||||
|
vue: 3.5.12(typescript@5.8.3)
|
||||||
|
vue-promise-modals: 0.1.0(typescript@5.8.3)
|
||||||
|
vuedraggable-es: 4.1.1(vue@3.5.12(typescript@5.8.3))
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- '@vue/composition-api'
|
||||||
|
- eslint
|
||||||
|
- terser
|
||||||
|
- typescript
|
||||||
|
- vite
|
||||||
|
|
||||||
'@hoppscotch/ui@0.2.1(eslint@8.57.0)(terser@5.39.2)(typescript@5.8.3)(vite@5.4.9(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))(vue@3.5.12(typescript@5.8.3))':
|
'@hoppscotch/ui@0.2.1(eslint@8.57.0)(terser@5.39.2)(typescript@5.8.3)(vite@5.4.9(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))(vue@3.5.12(typescript@5.8.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@boringer-avatars/vue3': 0.2.1(vue@3.5.12(typescript@5.8.3))
|
'@boringer-avatars/vue3': 0.2.1(vue@3.5.12(typescript@5.8.3))
|
||||||
|
|
@ -18517,30 +18571,6 @@ snapshots:
|
||||||
- typescript
|
- typescript
|
||||||
- vite
|
- vite
|
||||||
|
|
||||||
'@hoppscotch/ui@0.2.1(eslint@9.27.0(jiti@2.4.2))(terser@5.39.2)(typescript@5.8.3)(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))(vue@3.5.12(typescript@5.8.3))':
|
|
||||||
dependencies:
|
|
||||||
'@boringer-avatars/vue3': 0.2.1(vue@3.5.12(typescript@5.8.3))
|
|
||||||
'@fontsource-variable/inter': 5.1.0
|
|
||||||
'@fontsource-variable/material-symbols-rounded': 5.1.3
|
|
||||||
'@fontsource-variable/roboto-mono': 5.1.0
|
|
||||||
'@hoppscotch/vue-sonner': 1.2.3
|
|
||||||
'@hoppscotch/vue-toasted': 0.1.0(vue@3.5.12(typescript@5.8.3))
|
|
||||||
'@vitejs/plugin-legacy': 2.3.0(terser@5.39.2)(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))
|
|
||||||
'@vueuse/core': 8.9.4(vue@3.5.12(typescript@5.8.3))
|
|
||||||
fp-ts: 2.16.9
|
|
||||||
lodash-es: 4.17.21
|
|
||||||
path: 0.12.7
|
|
||||||
vite-plugin-eslint: 1.8.1(eslint@9.27.0(jiti@2.4.2))(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))
|
|
||||||
vue: 3.5.12(typescript@5.8.3)
|
|
||||||
vue-promise-modals: 0.1.0(typescript@5.8.3)
|
|
||||||
vuedraggable-es: 4.1.1(vue@3.5.12(typescript@5.8.3))
|
|
||||||
transitivePeerDependencies:
|
|
||||||
- '@vue/composition-api'
|
|
||||||
- eslint
|
|
||||||
- terser
|
|
||||||
- typescript
|
|
||||||
- vite
|
|
||||||
|
|
||||||
'@hoppscotch/ui@0.2.1(eslint@9.27.0(jiti@2.4.2))(terser@5.39.2)(typescript@5.8.3)(vite@5.4.9(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))(vue@3.5.12(typescript@5.8.3))':
|
'@hoppscotch/ui@0.2.1(eslint@9.27.0(jiti@2.4.2))(terser@5.39.2)(typescript@5.8.3)(vite@5.4.9(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2))(vue@3.5.12(typescript@5.8.3))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@boringer-avatars/vue3': 0.2.1(vue@3.5.12(typescript@5.8.3))
|
'@boringer-avatars/vue3': 0.2.1(vue@3.5.12(typescript@5.8.3))
|
||||||
|
|
@ -20567,7 +20597,7 @@ snapshots:
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3)':
|
'@typescript-eslint/eslint-plugin@8.9.0(@typescript-eslint/parser@8.9.0(eslint@8.57.0)(typescript@5.8.3))(eslint@8.57.0)(typescript@5.8.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/regexpp': 4.11.1
|
'@eslint-community/regexpp': 4.12.1
|
||||||
'@typescript-eslint/parser': 8.9.0(eslint@8.57.0)(typescript@5.8.3)
|
'@typescript-eslint/parser': 8.9.0(eslint@8.57.0)(typescript@5.8.3)
|
||||||
'@typescript-eslint/scope-manager': 8.9.0
|
'@typescript-eslint/scope-manager': 8.9.0
|
||||||
'@typescript-eslint/type-utils': 8.9.0(eslint@8.57.0)(typescript@5.8.3)
|
'@typescript-eslint/type-utils': 8.9.0(eslint@8.57.0)(typescript@5.8.3)
|
||||||
|
|
@ -20577,7 +20607,7 @@ snapshots:
|
||||||
graphemer: 1.4.0
|
graphemer: 1.4.0
|
||||||
ignore: 5.3.2
|
ignore: 5.3.2
|
||||||
natural-compare: 1.4.0
|
natural-compare: 1.4.0
|
||||||
ts-api-utils: 1.3.0(typescript@5.8.3)
|
ts-api-utils: 1.4.3(typescript@5.8.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.8.3
|
typescript: 5.8.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|
@ -20626,7 +20656,7 @@ snapshots:
|
||||||
'@typescript-eslint/types': 8.9.0
|
'@typescript-eslint/types': 8.9.0
|
||||||
'@typescript-eslint/typescript-estree': 8.9.0(typescript@5.8.3)
|
'@typescript-eslint/typescript-estree': 8.9.0(typescript@5.8.3)
|
||||||
'@typescript-eslint/visitor-keys': 8.9.0
|
'@typescript-eslint/visitor-keys': 8.9.0
|
||||||
debug: 4.3.7
|
debug: 4.4.1
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.8.3
|
typescript: 5.8.3
|
||||||
|
|
@ -20698,7 +20728,7 @@ snapshots:
|
||||||
'@typescript-eslint/typescript-estree': 8.9.0(typescript@5.8.3)
|
'@typescript-eslint/typescript-estree': 8.9.0(typescript@5.8.3)
|
||||||
'@typescript-eslint/utils': 8.9.0(eslint@8.57.0)(typescript@5.8.3)
|
'@typescript-eslint/utils': 8.9.0(eslint@8.57.0)(typescript@5.8.3)
|
||||||
debug: 4.4.1
|
debug: 4.4.1
|
||||||
ts-api-utils: 1.3.0(typescript@5.8.3)
|
ts-api-utils: 1.4.3(typescript@5.8.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.8.3
|
typescript: 5.8.3
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
|
|
@ -20780,7 +20810,7 @@ snapshots:
|
||||||
fast-glob: 3.3.3
|
fast-glob: 3.3.3
|
||||||
is-glob: 4.0.3
|
is-glob: 4.0.3
|
||||||
minimatch: 9.0.5
|
minimatch: 9.0.5
|
||||||
semver: 7.7.2
|
semver: 7.6.3
|
||||||
ts-api-utils: 1.4.3(typescript@5.8.3)
|
ts-api-utils: 1.4.3(typescript@5.8.3)
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.8.3
|
typescript: 5.8.3
|
||||||
|
|
@ -21532,10 +21562,6 @@ snapshots:
|
||||||
mime-types: 3.0.1
|
mime-types: 3.0.1
|
||||||
negotiator: 1.0.0
|
negotiator: 1.0.0
|
||||||
|
|
||||||
acorn-jsx@5.3.2(acorn@8.12.1):
|
|
||||||
dependencies:
|
|
||||||
acorn: 8.12.1
|
|
||||||
|
|
||||||
acorn-jsx@5.3.2(acorn@8.14.1):
|
acorn-jsx@5.3.2(acorn@8.14.1):
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.14.1
|
acorn: 8.14.1
|
||||||
|
|
@ -23634,7 +23660,7 @@ snapshots:
|
||||||
|
|
||||||
eslint-plugin-vue@9.29.0(eslint@8.57.0):
|
eslint-plugin-vue@9.29.0(eslint@8.57.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
|
'@eslint-community/eslint-utils': 4.7.0(eslint@8.57.0)
|
||||||
eslint: 8.57.0
|
eslint: 8.57.0
|
||||||
globals: 13.24.0
|
globals: 13.24.0
|
||||||
natural-compare: 1.4.0
|
natural-compare: 1.4.0
|
||||||
|
|
@ -23800,8 +23826,8 @@ snapshots:
|
||||||
|
|
||||||
espree@9.6.1:
|
espree@9.6.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
acorn: 8.12.1
|
acorn: 8.14.1
|
||||||
acorn-jsx: 5.3.2(acorn@8.12.1)
|
acorn-jsx: 5.3.2(acorn@8.14.1)
|
||||||
eslint-visitor-keys: 3.4.3
|
eslint-visitor-keys: 3.4.3
|
||||||
|
|
||||||
esprima-extract-comments@1.1.0:
|
esprima-extract-comments@1.1.0:
|
||||||
|
|
@ -29412,10 +29438,6 @@ snapshots:
|
||||||
|
|
||||||
tree-kill@1.2.2: {}
|
tree-kill@1.2.2: {}
|
||||||
|
|
||||||
ts-api-utils@1.3.0(typescript@5.8.3):
|
|
||||||
dependencies:
|
|
||||||
typescript: 5.8.3
|
|
||||||
|
|
||||||
ts-api-utils@1.4.3(typescript@5.8.3):
|
ts-api-utils@1.4.3(typescript@5.8.3):
|
||||||
dependencies:
|
dependencies:
|
||||||
typescript: 5.8.3
|
typescript: 5.8.3
|
||||||
|
|
@ -30114,6 +30136,14 @@ snapshots:
|
||||||
typescript: 5.8.3
|
typescript: 5.8.3
|
||||||
vue-tsc: 1.8.24(typescript@5.8.3)
|
vue-tsc: 1.8.24(typescript@5.8.3)
|
||||||
|
|
||||||
|
vite-plugin-eslint@1.8.1(eslint@8.57.0)(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2)):
|
||||||
|
dependencies:
|
||||||
|
'@rollup/pluginutils': 4.2.1
|
||||||
|
'@types/eslint': 8.56.10
|
||||||
|
eslint: 8.57.0
|
||||||
|
rollup: 2.79.2
|
||||||
|
vite: 5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2)
|
||||||
|
|
||||||
vite-plugin-eslint@1.8.1(eslint@8.57.0)(vite@5.4.9(@types/node@22.15.19)(sass@1.79.5)(terser@5.39.2)):
|
vite-plugin-eslint@1.8.1(eslint@8.57.0)(vite@5.4.9(@types/node@22.15.19)(sass@1.79.5)(terser@5.39.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rollup/pluginutils': 4.2.1
|
'@rollup/pluginutils': 4.2.1
|
||||||
|
|
@ -30130,14 +30160,6 @@ snapshots:
|
||||||
rollup: 2.79.2
|
rollup: 2.79.2
|
||||||
vite: 5.4.9(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2)
|
vite: 5.4.9(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2)
|
||||||
|
|
||||||
vite-plugin-eslint@1.8.1(eslint@9.27.0(jiti@2.4.2))(vite@5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2)):
|
|
||||||
dependencies:
|
|
||||||
'@rollup/pluginutils': 4.2.1
|
|
||||||
'@types/eslint': 8.56.10
|
|
||||||
eslint: 9.27.0(jiti@2.4.2)
|
|
||||||
rollup: 2.79.2
|
|
||||||
vite: 5.4.11(@types/node@22.15.19)(sass@1.80.3)(terser@5.39.2)
|
|
||||||
|
|
||||||
vite-plugin-eslint@1.8.1(eslint@9.27.0(jiti@2.4.2))(vite@5.4.11(@types/node@22.7.6)(sass@1.80.3)(terser@5.39.2)):
|
vite-plugin-eslint@1.8.1(eslint@9.27.0(jiti@2.4.2))(vite@5.4.11(@types/node@22.7.6)(sass@1.80.3)(terser@5.39.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rollup/pluginutils': 4.2.1
|
'@rollup/pluginutils': 4.2.1
|
||||||
|
|
@ -31269,4 +31291,6 @@ snapshots:
|
||||||
|
|
||||||
zod@3.22.4: {}
|
zod@3.22.4: {}
|
||||||
|
|
||||||
|
zod@3.23.8: {}
|
||||||
|
|
||||||
zod@3.25.32: {}
|
zod@3.25.32: {}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue