TTP -> MTP, A lot of other stuff #21
8 changed files with 463 additions and 187 deletions
(feat): small error screen improvement
(feat): use correct type maps (fix): remove sudo from nix flake (wip): migrate ttp to mtp
commit
4e69b8ef77
|
|
@ -284,7 +284,7 @@ const rootRoute = createRootRoute({
|
||||||
errorComponent: ({ error }: { error: Error }) => (
|
errorComponent: ({ error }: { error: Error }) => (
|
||||||
<ErrorScreen
|
<ErrorScreen
|
||||||
description={error.message}
|
description={error.message}
|
||||||
error={"Error in TanStack Router: " + error.name}
|
error={"Unknown Error: " + error.name}
|
||||||
/>
|
/>
|
||||||
),
|
),
|
||||||
});
|
});
|
||||||
|
|
|
||||||
|
|
@ -228,7 +228,6 @@
|
||||||
dpkg
|
dpkg
|
||||||
rpm
|
rpm
|
||||||
fpm
|
fpm
|
||||||
sudo
|
|
||||||
curl
|
curl
|
||||||
fakeroot
|
fakeroot
|
||||||
rsync
|
rsync
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@eslint/js": "^10.0.1",
|
"@eslint/js": "^10.0.1",
|
||||||
"@types/node": "^25.6.0",
|
"@types/node": "^26.1.0",
|
||||||
"@types/react": "^19.2.14",
|
"@types/react": "^19.2.14",
|
||||||
"@types/react-dom": "^19.2.3",
|
"@types/react-dom": "^19.2.3",
|
||||||
"@typescript-eslint/parser": "^8.59.1",
|
"@typescript-eslint/parser": "^8.59.1",
|
||||||
|
|
@ -45,10 +45,6 @@
|
||||||
"vitest": "^4.0.8",
|
"vitest": "^4.0.8",
|
||||||
"yaml": "^2.8.2"
|
"yaml": "^2.8.2"
|
||||||
},
|
},
|
||||||
"overrides": {
|
|
||||||
"@tensamin/ui": "https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz",
|
|
||||||
"mtp": "https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@tensamin/ui": "*",
|
"@tensamin/ui": "*",
|
||||||
"mtp": "*",
|
"mtp": "*",
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@
|
||||||
"@tensamin/shared": "workspace:*",
|
"@tensamin/shared": "workspace:*",
|
||||||
"@tensamin/storage": "workspace:*",
|
"@tensamin/storage": "workspace:*",
|
||||||
"@tensamin/ui": "*",
|
"@tensamin/ui": "*",
|
||||||
|
"lucide-react": "^1.14.0",
|
||||||
"mtp": "*",
|
"mtp": "*",
|
||||||
"react": "^19.2.0",
|
"react": "^19.2.0",
|
||||||
"react-dom": "^19.2.0",
|
"react-dom": "^19.2.0",
|
||||||
|
|
|
||||||
|
|
@ -10,11 +10,14 @@ import {
|
||||||
} from "react";
|
} from "react";
|
||||||
import { isTauri } from "@tauri-apps/api/core";
|
import { isTauri } from "@tauri-apps/api/core";
|
||||||
import { onResume } from "tauri-plugin-app-events-api";
|
import { onResume } from "tauri-plugin-app-events-api";
|
||||||
import { ConnectionState, MTPClient, codec } from "mtp";
|
import { MTPClient } from "mtp";
|
||||||
import { type z } from "zod";
|
import { type z } from "zod";
|
||||||
|
import { ConnectionState } from "./values";
|
||||||
import createAsyncQueue, {
|
import createAsyncQueue, {
|
||||||
createQueuedFunc,
|
createQueuedFunc,
|
||||||
} from "@tensamin/shared/asyncQueue";
|
} from "@tensamin/shared/asyncQueue";
|
||||||
|
import { toast as sonnerToast } from "@tensamin/ui";
|
||||||
|
import { Loader2 } from "lucide-react";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
type Calls,
|
type Calls,
|
||||||
|
|
@ -23,7 +26,7 @@ import {
|
||||||
mtp as schemas,
|
mtp as schemas,
|
||||||
type MTP as Schemas,
|
type MTP as Schemas,
|
||||||
} from "@tensamin/shared/data";
|
} from "@tensamin/shared/data";
|
||||||
import { log, toast } from "@tensamin/shared/log";
|
import { log } from "@tensamin/shared/log";
|
||||||
import { useStorage } from "@tensamin/storage/context";
|
import { useStorage } from "@tensamin/storage/context";
|
||||||
|
|
||||||
import {
|
import {
|
||||||
|
|
@ -33,6 +36,17 @@ import {
|
||||||
RETRY_INTERVAL,
|
RETRY_INTERVAL,
|
||||||
} from "./values";
|
} from "./values";
|
||||||
|
|
||||||
|
function base64ToUint8Array(b64: string) {
|
||||||
|
const bin = atob(b64);
|
||||||
|
const out = new Uint8Array(bin.length);
|
||||||
|
|
||||||
|
for (let i = 0; i < bin.length; i++) {
|
||||||
|
out[i] = bin.charCodeAt(i);
|
||||||
|
}
|
||||||
|
|
||||||
|
return out;
|
||||||
|
}
|
||||||
|
|
||||||
const PUSH_TYPES = [
|
const PUSH_TYPES = [
|
||||||
"message_live",
|
"message_live",
|
||||||
"message_state",
|
"message_state",
|
||||||
|
|
@ -235,11 +249,13 @@ export function Provider(props: {
|
||||||
return subscribe("error_no_iota", () => {
|
return subscribe("error_no_iota", () => {
|
||||||
setIdentified(false);
|
setIdentified(false);
|
||||||
setIdentifying(false);
|
setIdentifying(false);
|
||||||
toast(
|
sonnerToast.error("We couldn't reach your Iota", {
|
||||||
"error",
|
description:
|
||||||
"We couldn't reach your Iota",
|
"Check your network connection and try restarting your Iota",
|
||||||
"Check your network connection and try restarting your Iota",
|
icon: null,
|
||||||
);
|
duration: Infinity,
|
||||||
|
closeButton: true,
|
||||||
|
});
|
||||||
});
|
});
|
||||||
}, [connected, subscribe]);
|
}, [connected, subscribe]);
|
||||||
|
|
||||||
|
|
@ -293,39 +309,37 @@ export function Provider(props: {
|
||||||
reconnectResetTimer = null;
|
reconnectResetTimer = null;
|
||||||
};
|
};
|
||||||
|
|
||||||
const scheduleReconnectReset = () => {
|
let resolveConnection: (() => void) | null = null;
|
||||||
clearReconnectResetTimer();
|
|
||||||
reconnectResetTimer = setTimeout(() => {
|
|
||||||
attempts = 0;
|
|
||||||
reconnectResetTimer = null;
|
|
||||||
}, RECONNECT_RESET * 1_000);
|
|
||||||
};
|
|
||||||
|
|
||||||
const scheduleReconnect = (reason?: unknown) => {
|
if (!props.blockConnection) {
|
||||||
if (disposed || reconnectScheduled) return;
|
sonnerToast.promise(
|
||||||
|
new Promise<void>((resolve) => {
|
||||||
if (attempts >= RECONNECT_TRIES) {
|
resolveConnection = resolve;
|
||||||
toast(
|
}),
|
||||||
"error",
|
{
|
||||||
"Connection Failed",
|
id: "mtp-connection-toast",
|
||||||
"Unable to connect to the Omikron after multiple attempts. Cehck your network connection.",
|
loading: "Connecting to server...",
|
||||||
);
|
icon: (
|
||||||
log(0, "mtp", "red", "Reconnection attempts exhausted", reason);
|
<div className="animate-spin aspect-square m-0! flex justify-center items-center">
|
||||||
return;
|
<Loader2 size={16} className="aspect-square m-0!" />
|
||||||
}
|
</div>
|
||||||
|
),
|
||||||
attempts += 1;
|
duration: Infinity,
|
||||||
reconnectScheduled = true;
|
},
|
||||||
reconnectTimer = setTimeout(() => {
|
);
|
||||||
reconnectScheduled = false;
|
}
|
||||||
reconnectTimer = null;
|
|
||||||
void connect();
|
|
||||||
}, RETRY_INTERVAL);
|
|
||||||
};
|
|
||||||
|
|
||||||
async function connect() {
|
async function connect() {
|
||||||
if (disposed || props.blockConnection) return;
|
if (disposed || props.blockConnection) return;
|
||||||
|
|
||||||
|
const cleanup = () => {
|
||||||
|
clientRef.current?.disconnect();
|
||||||
|
clientRef.current = null;
|
||||||
|
clearReconnectResetTimer();
|
||||||
|
setReadyState(ConnectionState.Disconnected);
|
||||||
|
setIdentified(false);
|
||||||
|
setIdentifying(false);
|
||||||
|
};
|
||||||
try {
|
try {
|
||||||
setIdentified(false);
|
setIdentified(false);
|
||||||
setIdentifying(false);
|
setIdentifying(false);
|
||||||
|
|
@ -333,16 +347,60 @@ export function Provider(props: {
|
||||||
await MTPClient.init();
|
await MTPClient.init();
|
||||||
|
|
||||||
log(2, "mtp", "purple", "Fetching Omikron data.");
|
log(2, "mtp", "purple", "Fetching Omikron data.");
|
||||||
const omikronData = await fetch(
|
const data = await fetch(
|
||||||
`${mtpUrl}api/get/omikron/${await load("user_id")}`,
|
`${mtpUrl}api/get/omikron/${await load("user_id")}`,
|
||||||
).then(async (res) =>
|
|
||||||
codec.decode(new Uint8Array(await res.arrayBuffer())),
|
|
||||||
);
|
);
|
||||||
|
|
||||||
console.log(omikronData);
|
if (data.status === 404) {
|
||||||
|
sonnerToast.error("We couldn't reach your Iota", {
|
||||||
|
description:
|
||||||
|
"Check your network connection and try restarting your Iota",
|
||||||
|
icon: null,
|
||||||
|
duration: Infinity,
|
||||||
|
closeButton: true,
|
||||||
|
});
|
||||||
|
resolveConnection?.();
|
||||||
|
cleanup();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
const omikronData = (await data.json()) as {
|
||||||
|
id: number;
|
||||||
|
ip_address: string;
|
||||||
|
port: number;
|
||||||
|
public_key: string;
|
||||||
|
status: string;
|
||||||
|
};
|
||||||
|
//codec.decode(new Uint8Array(await res.arrayBuffer())),
|
||||||
|
|
||||||
|
if (
|
||||||
|
!omikronData.ip_address ||
|
||||||
|
!omikronData.port ||
|
||||||
|
!omikronData.public_key
|
||||||
|
)
|
||||||
|
throw new Error("Invalid Omikron data");
|
||||||
|
|
||||||
|
const url = `https://${omikronData.ip_address}:${omikronData.port}`;
|
||||||
|
|
||||||
|
log(2, "mtp", "green", "Connecting to: " + url);
|
||||||
|
|
||||||
const client = await MTPClient.create({
|
const client = await MTPClient.create({
|
||||||
url: mtpUrl ?? "",
|
url,
|
||||||
|
storage: {
|
||||||
|
getItem: (key) => {
|
||||||
|
console.log(key);
|
||||||
|
return key;
|
||||||
|
},
|
||||||
|
removeItem: (key) => {
|
||||||
|
console.log(key);
|
||||||
|
},
|
||||||
|
setItem: console.log,
|
||||||
|
},
|
||||||
|
credentials: {
|
||||||
|
clientId: await load("user_id"),
|
||||||
|
keyring: base64ToUint8Array(await load("private_key")),
|
||||||
|
},
|
||||||
|
hostPublicKey: omikronData.public_key,
|
||||||
descriptor: "client",
|
descriptor: "client",
|
||||||
pings: true,
|
pings: true,
|
||||||
logger: (event) => {
|
logger: (event) => {
|
||||||
|
|
@ -352,13 +410,15 @@ export function Provider(props: {
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
log(
|
if (event.type !== "Pong") {
|
||||||
2,
|
log(
|
||||||
"mtp",
|
2,
|
||||||
event.type === "state" ? "cyan" : "blue",
|
"mtp",
|
||||||
event.type === "state" ? event.data : event.type,
|
event.type === "state" ? "cyan" : "blue",
|
||||||
event,
|
event.type === "state" ? event.data : event.type,
|
||||||
);
|
event,
|
||||||
|
);
|
||||||
|
}
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -391,7 +451,14 @@ export function Provider(props: {
|
||||||
);
|
);
|
||||||
|
|
||||||
clearReconnectTimer();
|
clearReconnectTimer();
|
||||||
scheduleReconnectReset();
|
|
||||||
|
// Schedule reconnect reset
|
||||||
|
clearReconnectResetTimer();
|
||||||
|
reconnectResetTimer = setTimeout(() => {
|
||||||
|
attempts = 0;
|
||||||
|
reconnectResetTimer = null;
|
||||||
|
}, RECONNECT_RESET * 1_000);
|
||||||
|
|
||||||
setReadyState(client.state);
|
setReadyState(client.state);
|
||||||
setIdentifying(true);
|
setIdentifying(true);
|
||||||
|
|
||||||
|
|
@ -405,15 +472,10 @@ export function Provider(props: {
|
||||||
setFreshCalls(finalResponse.data.calls);
|
setFreshCalls(finalResponse.data.calls);
|
||||||
setIdentifying(false);
|
setIdentifying(false);
|
||||||
setIdentified(true);
|
setIdentified(true);
|
||||||
|
resolveConnection?.();
|
||||||
} catch (connectError) {
|
} catch (connectError) {
|
||||||
if (disposed) return;
|
if (disposed) return;
|
||||||
|
cleanup();
|
||||||
clientRef.current?.disconnect();
|
|
||||||
clientRef.current = null;
|
|
||||||
clearReconnectResetTimer();
|
|
||||||
setReadyState(ConnectionState.Disconnected);
|
|
||||||
setIdentified(false);
|
|
||||||
setIdentifying(false);
|
|
||||||
log(
|
log(
|
||||||
0,
|
0,
|
||||||
"mtp",
|
"mtp",
|
||||||
|
|
@ -421,7 +483,39 @@ export function Provider(props: {
|
||||||
"Connection/authentication attempt failed",
|
"Connection/authentication attempt failed",
|
||||||
getProtocolErrorDetails(connectError) ?? connectError,
|
getProtocolErrorDetails(connectError) ?? connectError,
|
||||||
);
|
);
|
||||||
scheduleReconnect(connectError);
|
|
||||||
|
// Schedule reconnect
|
||||||
|
if (disposed || reconnectScheduled) return;
|
||||||
|
if (attempts >= RECONNECT_TRIES) {
|
||||||
|
log(0, "mtp", "red", "Reconnection attempts exhausted", connectError);
|
||||||
|
sonnerToast.error("Connection failed", {
|
||||||
|
id: "mtp-connection-toast",
|
||||||
|
description:
|
||||||
|
connectError instanceof Error
|
||||||
|
? connectError.message
|
||||||
|
: String(connectError ?? "Unknown error"),
|
||||||
|
icon: null,
|
||||||
|
duration: Infinity,
|
||||||
|
closeButton: true,
|
||||||
|
promise: null,
|
||||||
|
} as unknown as Parameters<typeof sonnerToast.error>[1]);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
attempts += 1;
|
||||||
|
|
||||||
|
// Show loading toast
|
||||||
|
sonnerToast.loading(
|
||||||
|
`Reconnecting to server... (attempt ${attempts} of ${RECONNECT_TRIES})`,
|
||||||
|
{ id: "mtp-connection-toast" },
|
||||||
|
);
|
||||||
|
|
||||||
|
reconnectScheduled = true;
|
||||||
|
reconnectTimer = setTimeout(() => {
|
||||||
|
reconnectScheduled = false;
|
||||||
|
reconnectTimer = null;
|
||||||
|
void connect();
|
||||||
|
}, RETRY_INTERVAL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -460,6 +554,7 @@ export function Provider(props: {
|
||||||
setReadyState(ConnectionState.Disconnected);
|
setReadyState(ConnectionState.Disconnected);
|
||||||
setIdentified(false);
|
setIdentified(false);
|
||||||
setIdentifying(false);
|
setIdentifying(false);
|
||||||
|
sonnerToast.dismiss("mtp-connection-toast");
|
||||||
};
|
};
|
||||||
}, [mtpUrl, props.blockConnection, load]);
|
}, [mtpUrl, props.blockConnection, load]);
|
||||||
|
|
||||||
|
|
|
||||||
127
pnpm-lock.yaml
generated
127
pnpm-lock.yaml
generated
|
|
@ -5,19 +5,19 @@ settings:
|
||||||
excludeLinksFromLockfile: false
|
excludeLinksFromLockfile: false
|
||||||
|
|
||||||
overrides:
|
overrides:
|
||||||
'@tensamin/ui': https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz
|
'@tensamin/ui': https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz
|
||||||
mtp: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz
|
mtp: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-2e7c0b4/mtp-0.1.0.tgz
|
||||||
|
|
||||||
importers:
|
importers:
|
||||||
|
|
||||||
.:
|
.:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tensamin/ui':
|
'@tensamin/ui':
|
||||||
specifier: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz
|
specifier: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz
|
||||||
version: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
version: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
||||||
mtp:
|
mtp:
|
||||||
specifier: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz
|
specifier: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-2e7c0b4/mtp-0.1.0.tgz
|
||||||
version: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz
|
version: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-2e7c0b4/mtp-0.1.0.tgz
|
||||||
sonner:
|
sonner:
|
||||||
specifier: ^2.0.7
|
specifier: ^2.0.7
|
||||||
version: 2.0.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
|
version: 2.0.7(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
|
||||||
|
|
@ -26,8 +26,8 @@ importers:
|
||||||
specifier: ^10.0.1
|
specifier: ^10.0.1
|
||||||
version: 10.0.1(eslint@10.6.0(jiti@2.7.0))
|
version: 10.0.1(eslint@10.6.0(jiti@2.7.0))
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^25.6.0
|
specifier: ^26.1.0
|
||||||
version: 25.9.4
|
version: 26.1.0
|
||||||
'@types/react':
|
'@types/react':
|
||||||
specifier: ^19.2.14
|
specifier: ^19.2.14
|
||||||
version: 19.2.17
|
version: 19.2.17
|
||||||
|
|
@ -63,7 +63,7 @@ importers:
|
||||||
version: 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)
|
version: 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)
|
||||||
vitest:
|
vitest:
|
||||||
specifier: ^4.0.8
|
specifier: ^4.0.8
|
||||||
version: 4.1.9(@types/node@25.9.4)(vite@8.1.3(@types/node@25.9.4)(jiti@2.7.0)(yaml@2.9.0))
|
version: 4.1.9(@types/node@26.1.0)(vite@8.1.3(@types/node@26.1.0)(jiti@2.7.0)(yaml@2.9.0))
|
||||||
yaml:
|
yaml:
|
||||||
specifier: ^2.8.2
|
specifier: ^2.8.2
|
||||||
version: 2.9.0
|
version: 2.9.0
|
||||||
|
|
@ -107,8 +107,8 @@ importers:
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/shared
|
version: link:../../packages/shared
|
||||||
'@tensamin/ui':
|
'@tensamin/ui':
|
||||||
specifier: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz
|
specifier: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz
|
||||||
version: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
version: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
||||||
react:
|
react:
|
||||||
specifier: ^19.2.0
|
specifier: ^19.2.0
|
||||||
version: 19.2.7
|
version: 19.2.7
|
||||||
|
|
@ -205,7 +205,7 @@ importers:
|
||||||
version: 2.12.0(react-redux@9.3.0(@types/react@19.2.17)(react@19.2.7))(react@19.2.7)
|
version: 2.12.0(react-redux@9.3.0(@types/react@19.2.17)(react@19.2.7))(react@19.2.7)
|
||||||
'@tailwindcss/vite':
|
'@tailwindcss/vite':
|
||||||
specifier: ^4.2.4
|
specifier: ^4.2.4
|
||||||
version: 4.3.2(vite@8.1.3(@types/node@25.9.4)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0))
|
version: 4.3.2(vite@8.1.3(@types/node@26.1.0)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0))
|
||||||
'@tanstack/devtools-event-client':
|
'@tanstack/devtools-event-client':
|
||||||
specifier: ^0.3.0
|
specifier: ^0.3.0
|
||||||
version: 0.3.5
|
version: 0.3.5
|
||||||
|
|
@ -267,8 +267,8 @@ importers:
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/tauth
|
version: link:../../packages/tauth
|
||||||
'@tensamin/ui':
|
'@tensamin/ui':
|
||||||
specifier: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz
|
specifier: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz
|
||||||
version: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
version: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
||||||
'@tensamin/user':
|
'@tensamin/user':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../packages/user
|
version: link:../../packages/user
|
||||||
|
|
@ -479,7 +479,7 @@ importers:
|
||||||
version: 19.2.3(@types/react@19.2.17)
|
version: 19.2.3(@types/react@19.2.17)
|
||||||
'@vitejs/plugin-react':
|
'@vitejs/plugin-react':
|
||||||
specifier: ^6.0.1
|
specifier: ^6.0.1
|
||||||
version: 6.0.3(vite@8.1.3(@types/node@25.9.4)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0))
|
version: 6.0.3(vite@8.1.3(@types/node@26.1.0)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0))
|
||||||
esbuild:
|
esbuild:
|
||||||
specifier: ^0.25.11
|
specifier: ^0.25.11
|
||||||
version: 0.25.12
|
version: 0.25.12
|
||||||
|
|
@ -497,7 +497,7 @@ importers:
|
||||||
version: 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)
|
version: 8.62.1(eslint@10.6.0(jiti@2.7.0))(typescript@6.0.3)
|
||||||
vite:
|
vite:
|
||||||
specifier: ^8.0.10
|
specifier: ^8.0.10
|
||||||
version: 8.1.3(@types/node@25.9.4)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0)
|
version: 8.1.3(@types/node@26.1.0)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0)
|
||||||
|
|
||||||
packages/call:
|
packages/call:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -523,8 +523,8 @@ importers:
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../storage
|
version: link:../storage
|
||||||
'@tensamin/ui':
|
'@tensamin/ui':
|
||||||
specifier: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz
|
specifier: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz
|
||||||
version: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
version: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
||||||
'@tensamin/user':
|
'@tensamin/user':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../user
|
version: link:../user
|
||||||
|
|
@ -583,8 +583,8 @@ importers:
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../storage
|
version: link:../storage
|
||||||
'@tensamin/ui':
|
'@tensamin/ui':
|
||||||
specifier: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz
|
specifier: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz
|
||||||
version: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
version: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
||||||
'@tensamin/user':
|
'@tensamin/user':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../user
|
version: link:../user
|
||||||
|
|
@ -655,11 +655,14 @@ importers:
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../storage
|
version: link:../storage
|
||||||
'@tensamin/ui':
|
'@tensamin/ui':
|
||||||
specifier: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz
|
specifier: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz
|
||||||
version: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
version: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
||||||
|
lucide-react:
|
||||||
|
specifier: ^1.14.0
|
||||||
|
version: 1.23.0(react@19.2.7)
|
||||||
mtp:
|
mtp:
|
||||||
specifier: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz
|
specifier: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-2e7c0b4/mtp-0.1.0.tgz
|
||||||
version: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz
|
version: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-2e7c0b4/mtp-0.1.0.tgz
|
||||||
react:
|
react:
|
||||||
specifier: ^19.2.0
|
specifier: ^19.2.0
|
||||||
version: 19.2.7
|
version: 19.2.7
|
||||||
|
|
@ -701,8 +704,8 @@ importers:
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../storage
|
version: link:../storage
|
||||||
'@tensamin/ui':
|
'@tensamin/ui':
|
||||||
specifier: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz
|
specifier: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz
|
||||||
version: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
version: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
||||||
'@tensamin/user':
|
'@tensamin/user':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../user
|
version: link:../user
|
||||||
|
|
@ -722,8 +725,8 @@ importers:
|
||||||
packages/shared:
|
packages/shared:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tensamin/ui':
|
'@tensamin/ui':
|
||||||
specifier: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz
|
specifier: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz
|
||||||
version: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
version: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
||||||
lucide-react:
|
lucide-react:
|
||||||
specifier: ^1.14.0
|
specifier: ^1.14.0
|
||||||
version: 1.23.0(react@19.2.7)
|
version: 1.23.0(react@19.2.7)
|
||||||
|
|
@ -746,8 +749,8 @@ importers:
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../shared
|
version: link:../shared
|
||||||
'@tensamin/ui':
|
'@tensamin/ui':
|
||||||
specifier: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz
|
specifier: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz
|
||||||
version: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
version: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
||||||
react:
|
react:
|
||||||
specifier: ^19.2.0
|
specifier: ^19.2.0
|
||||||
version: 19.2.7
|
version: 19.2.7
|
||||||
|
|
@ -779,8 +782,8 @@ importers:
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../../apps/tauri
|
version: link:../../apps/tauri
|
||||||
'@tensamin/ui':
|
'@tensamin/ui':
|
||||||
specifier: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz
|
specifier: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz
|
||||||
version: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
version: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)
|
||||||
'@tensamin/user':
|
'@tensamin/user':
|
||||||
specifier: workspace:*
|
specifier: workspace:*
|
||||||
version: link:../user
|
version: link:../user
|
||||||
|
|
@ -2041,9 +2044,9 @@ packages:
|
||||||
'@tauri-apps/plugin-notification@2.3.3':
|
'@tauri-apps/plugin-notification@2.3.3':
|
||||||
resolution: {integrity: sha512-Zw+ZH18RJb41G4NrfHgIuofJiymusqN+q8fGUIIV7vyCH+5sSn5coqRv/MWB9qETsUs97vmU045q7OyseCV3Qg==}
|
resolution: {integrity: sha512-Zw+ZH18RJb41G4NrfHgIuofJiymusqN+q8fGUIIV7vyCH+5sSn5coqRv/MWB9qETsUs97vmU045q7OyseCV3Qg==}
|
||||||
|
|
||||||
'@tensamin/ui@https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz':
|
'@tensamin/ui@https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz':
|
||||||
resolution: {integrity: sha512-tOvNNwGWnj/LJCXHIUtN+uZG2VoRUGZXuVAoHP18OypgsmlSbx2iQNhkLF1t1qnIboVf5V5mvraVGLXtz4csgQ==, tarball: https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz}
|
resolution: {integrity: sha512-xyzw3/XAYKczV1cYQ2QuzhFzFYbU9U2U/gi/TMU/U7MC0vp1xHCVssTcB1kot8yk9YEIEcDBK2X49Ftzj6bJeQ==, tarball: https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz}
|
||||||
version: 0.0.39
|
version: 0.0.40
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
react: ^19.2.7
|
react: ^19.2.7
|
||||||
react-dom: ^19.2.7
|
react-dom: ^19.2.7
|
||||||
|
|
@ -2123,6 +2126,9 @@ packages:
|
||||||
'@types/node@25.9.4':
|
'@types/node@25.9.4':
|
||||||
resolution: {integrity: sha512-dszCsrKb5U7ZsVZBWiHFklTloVl0mSEnWH/iZXfZUlI4rzCUnsvGmgqfuVRHL54ugE7/wRuxEIXRa2iMZ+BG6g==}
|
resolution: {integrity: sha512-dszCsrKb5U7ZsVZBWiHFklTloVl0mSEnWH/iZXfZUlI4rzCUnsvGmgqfuVRHL54ugE7/wRuxEIXRa2iMZ+BG6g==}
|
||||||
|
|
||||||
|
'@types/node@26.1.0':
|
||||||
|
resolution: {integrity: sha512-O0A1G3xPGy4w7AgQdAQYUlQ+BKk2Oovw8eRpofyp5KdBZULnbe+WqaOVNrm705SHphCiG4XHsACrSmPu1f+Kgw==}
|
||||||
|
|
||||||
'@types/qrcode@1.5.6':
|
'@types/qrcode@1.5.6':
|
||||||
resolution: {integrity: sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==}
|
resolution: {integrity: sha512-te7NQcV2BOvdj2b1hCAHzAoMNuj65kNBMz0KBaxM6c3VGBOhU0dURQKOtH8CFNI/dsKkwlv32p26qYQTWoB5bw==}
|
||||||
|
|
||||||
|
|
@ -3746,8 +3752,8 @@ packages:
|
||||||
ms@2.1.3:
|
ms@2.1.3:
|
||||||
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==}
|
||||||
|
|
||||||
mtp@https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz:
|
mtp@https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-2e7c0b4/mtp-0.1.0.tgz:
|
||||||
resolution: {integrity: sha512-/MNGev6VRL60hg8I0+TYD0E9QqgbQPT5LCJOzEIuqKzdAMS76LbLpVzq4sA5KCrCkgHVWTUeroafXHVxFCEgUA==, tarball: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz}
|
resolution: {integrity: sha512-ixykS56llG6Azoxn4ff2v83LlrkCsd/s5wXmEUsxGtM63v8cYvX/HXh1AmWfJeaL0QZiGw1QyyOC0vplXZjwVg==, tarball: https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-2e7c0b4/mtp-0.1.0.tgz}
|
||||||
version: 0.1.0
|
version: 0.1.0
|
||||||
|
|
||||||
nanoid@3.3.15:
|
nanoid@3.3.15:
|
||||||
|
|
@ -4556,6 +4562,9 @@ packages:
|
||||||
undici-types@7.24.6:
|
undici-types@7.24.6:
|
||||||
resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==}
|
resolution: {integrity: sha512-WRNW+sJgj5OBN4/0JpHFqtqzhpbnV0GuB+OozA9gCL7a993SmU+1JBZCzLNxYsbMfIeDL+lTsphD5jN5N+n0zg==}
|
||||||
|
|
||||||
|
undici-types@8.3.0:
|
||||||
|
resolution: {integrity: sha512-j375ScV60dom+YkPFIfTLcOiPxkN/buHz5GobjLhixFuANaNs3C9l4GmrWqejgXWJ7BbJcFYpTEUkS1Ge8bpZQ==}
|
||||||
|
|
||||||
undici@6.27.0:
|
undici@6.27.0:
|
||||||
resolution: {integrity: sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==}
|
resolution: {integrity: sha512-YmfV3YnEDzXRC5lZ2jWtWWHKGUm1zIt8AhesR1tens+HTNv+YZlN/dp6G727LOvMJ8xjP9Be7Y2Sdr96LDm+pg==}
|
||||||
engines: {node: '>=18.17'}
|
engines: {node: '>=18.17'}
|
||||||
|
|
@ -5946,12 +5955,12 @@ snapshots:
|
||||||
'@tailwindcss/oxide-win32-arm64-msvc': 4.3.2
|
'@tailwindcss/oxide-win32-arm64-msvc': 4.3.2
|
||||||
'@tailwindcss/oxide-win32-x64-msvc': 4.3.2
|
'@tailwindcss/oxide-win32-x64-msvc': 4.3.2
|
||||||
|
|
||||||
'@tailwindcss/vite@4.3.2(vite@8.1.3(@types/node@25.9.4)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0))':
|
'@tailwindcss/vite@4.3.2(vite@8.1.3(@types/node@26.1.0)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tailwindcss/node': 4.3.2
|
'@tailwindcss/node': 4.3.2
|
||||||
'@tailwindcss/oxide': 4.3.2
|
'@tailwindcss/oxide': 4.3.2
|
||||||
tailwindcss: 4.3.2
|
tailwindcss: 4.3.2
|
||||||
vite: 8.1.3(@types/node@25.9.4)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0)
|
vite: 8.1.3(@types/node@26.1.0)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0)
|
||||||
|
|
||||||
'@tanstack/devtools-event-client@0.3.5': {}
|
'@tanstack/devtools-event-client@0.3.5': {}
|
||||||
|
|
||||||
|
|
@ -6071,7 +6080,7 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
'@tauri-apps/api': 2.11.1
|
'@tauri-apps/api': 2.11.1
|
||||||
|
|
||||||
'@tensamin/ui@https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)':
|
'@tensamin/ui@https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz(@date-fns/tz@1.5.0)(@types/react-dom@19.2.3(@types/react@19.2.17))(@types/react@19.2.17)(react-dom@19.2.7(react@19.2.7))(react-is@19.2.7)(react@19.2.7)(redux@5.0.1)(typescript@6.0.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@base-ui/react': 1.6.0(@date-fns/tz@1.5.0)(@types/react@19.2.17)(date-fns@4.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
|
'@base-ui/react': 1.6.0(@date-fns/tz@1.5.0)(@types/react@19.2.17)(date-fns@4.4.0)(react-dom@19.2.7(react@19.2.7))(react@19.2.7)
|
||||||
'@fontsource-variable/inter': 5.2.8
|
'@fontsource-variable/inter': 5.2.8
|
||||||
|
|
@ -6166,7 +6175,7 @@ snapshots:
|
||||||
|
|
||||||
'@types/fs-extra@9.0.13':
|
'@types/fs-extra@9.0.13':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.9.4
|
'@types/node': 26.1.0
|
||||||
|
|
||||||
'@types/http-cache-semantics@4.2.0': {}
|
'@types/http-cache-semantics@4.2.0': {}
|
||||||
|
|
||||||
|
|
@ -6186,9 +6195,13 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 7.24.6
|
undici-types: 7.24.6
|
||||||
|
|
||||||
|
'@types/node@26.1.0':
|
||||||
|
dependencies:
|
||||||
|
undici-types: 8.3.0
|
||||||
|
|
||||||
'@types/qrcode@1.5.6':
|
'@types/qrcode@1.5.6':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 25.9.4
|
'@types/node': 26.1.0
|
||||||
|
|
||||||
'@types/react-dom@19.2.3(@types/react@19.2.17)':
|
'@types/react-dom@19.2.3(@types/react@19.2.17)':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -6302,10 +6315,10 @@ snapshots:
|
||||||
'@typescript-eslint/types': 8.62.1
|
'@typescript-eslint/types': 8.62.1
|
||||||
eslint-visitor-keys: 5.0.1
|
eslint-visitor-keys: 5.0.1
|
||||||
|
|
||||||
'@vitejs/plugin-react@6.0.3(vite@8.1.3(@types/node@25.9.4)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0))':
|
'@vitejs/plugin-react@6.0.3(vite@8.1.3(@types/node@26.1.0)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@rolldown/pluginutils': 1.0.1
|
'@rolldown/pluginutils': 1.0.1
|
||||||
vite: 8.1.3(@types/node@25.9.4)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0)
|
vite: 8.1.3(@types/node@26.1.0)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0)
|
||||||
|
|
||||||
'@vitest/expect@4.1.9':
|
'@vitest/expect@4.1.9':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -6316,13 +6329,13 @@ snapshots:
|
||||||
chai: 6.2.2
|
chai: 6.2.2
|
||||||
tinyrainbow: 3.1.0
|
tinyrainbow: 3.1.0
|
||||||
|
|
||||||
'@vitest/mocker@4.1.9(vite@8.1.3(@types/node@25.9.4)(jiti@2.7.0)(yaml@2.9.0))':
|
'@vitest/mocker@4.1.9(vite@8.1.3(@types/node@26.1.0)(jiti@2.7.0)(yaml@2.9.0))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/spy': 4.1.9
|
'@vitest/spy': 4.1.9
|
||||||
estree-walker: 3.0.3
|
estree-walker: 3.0.3
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
vite: 8.1.3(@types/node@25.9.4)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0)
|
vite: 8.1.3(@types/node@26.1.0)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0)
|
||||||
|
|
||||||
'@vitest/pretty-format@4.1.9':
|
'@vitest/pretty-format@4.1.9':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -7866,7 +7879,7 @@ snapshots:
|
||||||
|
|
||||||
ms@2.1.3: {}
|
ms@2.1.3: {}
|
||||||
|
|
||||||
mtp@https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz: {}
|
mtp@https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-2e7c0b4/mtp-0.1.0.tgz: {}
|
||||||
|
|
||||||
nanoid@3.3.15: {}
|
nanoid@3.3.15: {}
|
||||||
|
|
||||||
|
|
@ -7881,11 +7894,11 @@ snapshots:
|
||||||
|
|
||||||
node-abi@4.33.0:
|
node-abi@4.33.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
semver: 7.7.4
|
semver: 7.8.5
|
||||||
|
|
||||||
node-api-version@0.2.1:
|
node-api-version@0.2.1:
|
||||||
dependencies:
|
dependencies:
|
||||||
semver: 7.7.4
|
semver: 7.8.5
|
||||||
|
|
||||||
node-gyp@12.4.0:
|
node-gyp@12.4.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
|
@ -7894,7 +7907,7 @@ snapshots:
|
||||||
graceful-fs: 4.2.11
|
graceful-fs: 4.2.11
|
||||||
nopt: 9.0.0
|
nopt: 9.0.0
|
||||||
proc-log: 6.1.0
|
proc-log: 6.1.0
|
||||||
semver: 7.7.4
|
semver: 7.8.5
|
||||||
tar: 7.5.19
|
tar: 7.5.19
|
||||||
tinyglobby: 0.2.17
|
tinyglobby: 0.2.17
|
||||||
undici: 6.27.0
|
undici: 6.27.0
|
||||||
|
|
@ -8702,6 +8715,8 @@ snapshots:
|
||||||
|
|
||||||
undici-types@7.24.6: {}
|
undici-types@7.24.6: {}
|
||||||
|
|
||||||
|
undici-types@8.3.0: {}
|
||||||
|
|
||||||
undici@6.27.0: {}
|
undici@6.27.0: {}
|
||||||
|
|
||||||
undici@7.28.0: {}
|
undici@7.28.0: {}
|
||||||
|
|
@ -8790,7 +8805,7 @@ snapshots:
|
||||||
d3-time: 3.1.0
|
d3-time: 3.1.0
|
||||||
d3-timer: 3.0.1
|
d3-timer: 3.0.1
|
||||||
|
|
||||||
vite@8.1.3(@types/node@25.9.4)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0):
|
vite@8.1.3(@types/node@26.1.0)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0):
|
||||||
dependencies:
|
dependencies:
|
||||||
lightningcss: 1.32.0
|
lightningcss: 1.32.0
|
||||||
picomatch: 4.0.5
|
picomatch: 4.0.5
|
||||||
|
|
@ -8798,16 +8813,16 @@ snapshots:
|
||||||
rolldown: 1.1.4
|
rolldown: 1.1.4
|
||||||
tinyglobby: 0.2.17
|
tinyglobby: 0.2.17
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.9.4
|
'@types/node': 26.1.0
|
||||||
esbuild: 0.25.12
|
esbuild: 0.25.12
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
jiti: 2.7.0
|
jiti: 2.7.0
|
||||||
yaml: 2.9.0
|
yaml: 2.9.0
|
||||||
|
|
||||||
vitest@4.1.9(@types/node@25.9.4)(vite@8.1.3(@types/node@25.9.4)(jiti@2.7.0)(yaml@2.9.0)):
|
vitest@4.1.9(@types/node@26.1.0)(vite@8.1.3(@types/node@26.1.0)(jiti@2.7.0)(yaml@2.9.0)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vitest/expect': 4.1.9
|
'@vitest/expect': 4.1.9
|
||||||
'@vitest/mocker': 4.1.9(vite@8.1.3(@types/node@25.9.4)(jiti@2.7.0)(yaml@2.9.0))
|
'@vitest/mocker': 4.1.9(vite@8.1.3(@types/node@26.1.0)(jiti@2.7.0)(yaml@2.9.0))
|
||||||
'@vitest/pretty-format': 4.1.9
|
'@vitest/pretty-format': 4.1.9
|
||||||
'@vitest/runner': 4.1.9
|
'@vitest/runner': 4.1.9
|
||||||
'@vitest/snapshot': 4.1.9
|
'@vitest/snapshot': 4.1.9
|
||||||
|
|
@ -8824,10 +8839,10 @@ snapshots:
|
||||||
tinyexec: 1.2.4
|
tinyexec: 1.2.4
|
||||||
tinyglobby: 0.2.17
|
tinyglobby: 0.2.17
|
||||||
tinyrainbow: 3.1.0
|
tinyrainbow: 3.1.0
|
||||||
vite: 8.1.3(@types/node@25.9.4)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0)
|
vite: 8.1.3(@types/node@26.1.0)(esbuild@0.25.12)(jiti@2.7.0)(yaml@2.9.0)
|
||||||
why-is-node-running: 2.3.0
|
why-is-node-running: 2.3.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 25.9.4
|
'@types/node': 26.1.0
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- msw
|
- msw
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -6,5 +6,5 @@ allowBuilds:
|
||||||
electron-winstaller: true
|
electron-winstaller: true
|
||||||
esbuild: true
|
esbuild: true
|
||||||
overrides:
|
overrides:
|
||||||
"@tensamin/ui": "https://git.methanium.net/tensamin/ui/releases/download/latest/tensamin-ui.tgz"
|
"@tensamin/ui": "https://git.methanium.net/tensamin/ui/releases/download/0.0.40/tensamin-ui.tgz"
|
||||||
mtp: "https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-8dc8b54/mtp-0.1.0.tgz"
|
mtp: "https://git.methanium.net/methanium/mtp/releases/download/0.1.0-dev-2e7c0b4/mtp-0.1.0.tgz"
|
||||||
|
|
|
||||||
300
type-maps.yaml
300
type-maps.yaml
|
|
@ -1,69 +1,239 @@
|
||||||
protocol_version: "0.0"
|
protocol_version: "1.0"
|
||||||
|
|
||||||
|
# Note that markers 0 to 31 are reserved for default use, manually working with them is not recommended
|
||||||
|
|
||||||
|
# Fixed CommunicationType markers are:
|
||||||
|
# Error: 0
|
||||||
|
# ErrorParsing: 1
|
||||||
|
# ErrorBadVersion: 2
|
||||||
|
# Disconnect: 3
|
||||||
|
# Redirect: 4
|
||||||
|
# Shutdown: 5
|
||||||
|
# BadRequest: 6
|
||||||
|
# Unauthorized: 7
|
||||||
|
# Forbidden: 8
|
||||||
|
# NotFound: 9
|
||||||
|
# TooManyRequests: 10
|
||||||
|
# InternalServerError: 11
|
||||||
|
# BadGateway: 12
|
||||||
|
# ServiceUnavailable: 13
|
||||||
|
# GatewayTimeout: 14
|
||||||
|
# Identification: 15
|
||||||
|
# IdentificationResponse: 16
|
||||||
|
# Register: 17
|
||||||
|
# RegisterResponse: 18
|
||||||
|
# Ping: 19
|
||||||
|
# Pong: 20
|
||||||
|
|
||||||
|
# Fixed Data Type markers are:
|
||||||
|
# Error: 0
|
||||||
|
# ErrorParsing: 1
|
||||||
|
# ErrorMessage: 2
|
||||||
|
# Version: 3
|
||||||
|
# Description: 4
|
||||||
|
# Timestamp: 5
|
||||||
|
# Id: 6
|
||||||
|
# ClientNonce: 7
|
||||||
|
# ServerNonce: 8
|
||||||
|
# PublicKeys: 9
|
||||||
|
# Signature: 10
|
||||||
|
# Connected: 11
|
||||||
|
|
||||||
type_maps:
|
type_maps:
|
||||||
"0.0":
|
"1.0":
|
||||||
CommunicationTypes:
|
CommunicationTypes:
|
||||||
TempCoolType: 32
|
ErrorProtocol: 33
|
||||||
GetUserData: 34
|
ErrorAnonymous: 34
|
||||||
ChangeUserData: 35
|
ErrorInternal: 35
|
||||||
MessageLive: 36
|
ErrorInvalidData: 36
|
||||||
MessagesGet: 37
|
ErrorInvalidUserId: 37
|
||||||
MessageSend: 38
|
ErrorInvalidOmikronId: 38
|
||||||
AddConversation: 39
|
ErrorNotFound: 39
|
||||||
MessageState: 40
|
ErrorNotAuthenticated: 40
|
||||||
LoadTxtRecord: 41
|
ErrorNoIota: 41
|
||||||
AuthenticateApp: 42
|
ErrorInvalidChallenge: 42
|
||||||
CreateApp: 43
|
ErrorInvalidSecret: 43
|
||||||
CallToken: 44
|
ErrorInvalidPrivateKey: 44
|
||||||
CallData: 45
|
ErrorInvalidPublicKey: 45
|
||||||
CallInvite: 46
|
ErrorNoUserId: 46
|
||||||
AppPing: 47
|
ErrorNoCallId: 47
|
||||||
ErrorNoIota: 48
|
ErrorInvalidCallId: 48
|
||||||
|
Success: 49
|
||||||
|
ShortenLink: 50
|
||||||
|
SettingsSave: 51
|
||||||
|
SettingsLoad: 52
|
||||||
|
SettingsList: 53
|
||||||
|
GlobalSettingsSave: 54
|
||||||
|
GlobalSettingsLoad: 55
|
||||||
|
Message: 56
|
||||||
|
MessageState: 57
|
||||||
|
MessageSend: 58
|
||||||
|
MessageLive: 59
|
||||||
|
MessageOtherIota: 60
|
||||||
|
MessageChunk: 61
|
||||||
|
MessagesGet: 62
|
||||||
|
PushNotification: 63
|
||||||
|
ReadNotification: 64
|
||||||
|
GetNotifications: 65
|
||||||
|
TauriIdentification: 66
|
||||||
|
ChangeConfirm: 67
|
||||||
|
ConfirmReceive: 68
|
||||||
|
ConfirmRead: 69
|
||||||
|
GetChats: 70
|
||||||
|
GetStates: 71
|
||||||
|
AddCommunity: 72
|
||||||
|
RemoveCommunity: 73
|
||||||
|
GetCommunities: 74
|
||||||
|
RegisterIota: 81
|
||||||
|
RegisterIotaSuccess: 82
|
||||||
|
AddConversation: 85
|
||||||
|
SendChat: 86
|
||||||
|
ClientChanged: 87
|
||||||
|
ClientConnected: 88
|
||||||
|
ClientDisconnected: 89
|
||||||
|
ClientClosed: 90
|
||||||
|
PublicKey: 91
|
||||||
|
PrivateKey: 92
|
||||||
|
WebrtcSdp: 93
|
||||||
|
WebrtcIce: 94
|
||||||
|
StartStream: 95
|
||||||
|
EndStream: 96
|
||||||
|
WatchStream: 97
|
||||||
|
CallToken: 98
|
||||||
|
CallInvite: 99
|
||||||
|
CallDisconnectUser: 100
|
||||||
|
CallTimeoutUser: 101
|
||||||
|
CallSetAnonymousJoining: 102
|
||||||
|
CallData: 103
|
||||||
|
EndCall: 104
|
||||||
|
Function: 105
|
||||||
|
Update: 106
|
||||||
|
CreateUser: 107
|
||||||
|
RhoUpdate: 108
|
||||||
|
UserConnected: 109
|
||||||
|
UserDisconnected: 110
|
||||||
|
IotaConnected: 111
|
||||||
|
IotaDisconnected: 112
|
||||||
|
SyncClientIotaStatus: 113
|
||||||
|
GetUserData: 114
|
||||||
|
GetIotaData: 115
|
||||||
|
IotaUserData: 116
|
||||||
|
ChangeUserData: 117
|
||||||
|
ChangeIotaData: 118
|
||||||
|
GetRegister: 119
|
||||||
|
CompleteRegisterUser: 120
|
||||||
|
CompleteRegisterIota: 121
|
||||||
|
DeleteUser: 122
|
||||||
|
DeleteIota: 123
|
||||||
|
StartRegister: 124
|
||||||
|
CompleteRegister: 125
|
||||||
|
GetApp: 126
|
||||||
|
CreateApp: 127
|
||||||
|
DeleteApp: 128
|
||||||
|
SaveAppData: 129
|
||||||
|
LoadAppData: 130
|
||||||
|
AppIdentification: 131
|
||||||
|
AppChallenge: 132
|
||||||
|
AppChallengeResponse: 133
|
||||||
|
AppIdentificationResponse: 134
|
||||||
|
LoadTxtRecord: 135
|
||||||
DataTypes:
|
DataTypes:
|
||||||
About: 32
|
ErrorType: 32
|
||||||
AppIdentifier: 33
|
ErrorProtocol: 33
|
||||||
AppPublicKey: 34
|
AcceptedIds: 34
|
||||||
Avatar: 35
|
Uuid: 35
|
||||||
CallId: 36
|
RegisterId: 36
|
||||||
CallMembers: 37
|
Link: 37
|
||||||
CallSecret: 38
|
Settings: 38
|
||||||
CallToken: 39
|
SettingsName: 39
|
||||||
Calls: 40
|
ChatPartnerId: 40
|
||||||
Challenge: 41
|
ChatPartnerName: 41
|
||||||
ChatPartnerId: 42
|
IotaId: 42
|
||||||
ChatPartnerName: 43
|
UserId: 43
|
||||||
Communities: 44
|
UserIds: 44
|
||||||
CommunityId: 45
|
IotaIds: 45
|
||||||
Contacts: 46
|
UserState: 46
|
||||||
Content: 47
|
UserStates: 47
|
||||||
Display: 48
|
UserPings: 48
|
||||||
Files: 49
|
CallState: 49
|
||||||
Height: 50
|
ScreenShare: 50
|
||||||
IotaId: 51
|
PrivateKeyHash: 51
|
||||||
LastMessage: 52
|
Accepted: 52
|
||||||
LastMessageAt: 53
|
AcceptedProfiles: 53
|
||||||
LastPing: 54
|
DeniedProfiles: 54
|
||||||
Message: 55
|
Content: 55
|
||||||
MessageState: 56
|
Messages: 56
|
||||||
Messages: 57
|
Notifications: 57
|
||||||
Name: 58
|
SendTime: 58
|
||||||
Offset: 59
|
GetTime: 59
|
||||||
OmikronConnections: 60
|
GetVariant: 60
|
||||||
OmikronId: 61
|
SharedSecretOwn: 61
|
||||||
OnlineStatus: 62
|
SharedSecretOther: 62
|
||||||
Path: 63
|
SharedSecretSign: 63
|
||||||
PingIota: 64
|
SharedSecret: 64
|
||||||
PublicKey: 65
|
CallId: 65
|
||||||
ReceiverId: 66
|
CallToken: 66
|
||||||
SendTime: 67
|
CallSecret: 67
|
||||||
SenderId: 68
|
Untill: 68
|
||||||
SessionId: 69
|
Enabled: 69
|
||||||
Status: 70
|
StartDate: 70
|
||||||
SubEnd: 71
|
EndDate: 71
|
||||||
SubLevel: 72
|
ReceiverId: 72
|
||||||
Tint: 73
|
SenderId: 73
|
||||||
Type: 74
|
Signed: 75
|
||||||
UserId: 75
|
Message: 76
|
||||||
UserIds: 76
|
MessageState: 77
|
||||||
Username: 77
|
LastPing: 78
|
||||||
AppVersion: 78
|
PingIota: 79
|
||||||
|
PingClients: 80
|
||||||
|
Matches: 81
|
||||||
|
Omikron: 82
|
||||||
|
Offset: 83
|
||||||
|
Amount: 84
|
||||||
|
Position: 85
|
||||||
|
Name: 86
|
||||||
|
Path: 87
|
||||||
|
Codec: 88
|
||||||
|
Function: 89
|
||||||
|
Payload: 90
|
||||||
|
Result: 91
|
||||||
|
Interactables: 92
|
||||||
|
WantToWatch: 93
|
||||||
|
Watcher: 94
|
||||||
|
CreatedAt: 95
|
||||||
|
Username: 96
|
||||||
|
Display: 97
|
||||||
|
Avatar: 98
|
||||||
|
About: 99
|
||||||
|
Status: 100
|
||||||
|
PublicKey: 101
|
||||||
|
SubLevel: 102
|
||||||
|
SubEnd: 103
|
||||||
|
CommunityAddress: 104
|
||||||
|
CommunityTitle: 106
|
||||||
|
Communities: 107
|
||||||
|
RhoConnections: 108
|
||||||
|
User: 109
|
||||||
|
OnlineStatus: 110
|
||||||
|
OmikronId: 111
|
||||||
|
OmikronConnections: 112
|
||||||
|
ResetToken: 113
|
||||||
|
NewToken: 114
|
||||||
|
CallInvited: 115
|
||||||
|
CallMembers: 116
|
||||||
|
Calls: 117
|
||||||
|
Timeout: 118
|
||||||
|
HasAdmin: 119
|
||||||
|
LastMessageAt: 120
|
||||||
|
Height: 121
|
||||||
|
SentBySelf: 122
|
||||||
|
SessionId: 123
|
||||||
|
Contacts: 124
|
||||||
|
LastMessage: 125
|
||||||
|
AppIdentifier: 127
|
||||||
|
AppPrivateKey: 128
|
||||||
|
AppPublicKey: 129
|
||||||
|
AppSession: 130
|
||||||
|
AppData: 131
|
||||||
|
TauriToken: 132
|
||||||
|
Challenge: 133
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue