diff --git a/package-lock.json b/package-lock.json index 9cea2308..15d0c9e5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "0.0.1", "dependencies": { "@tailwindcss/vite": "^4.1.16", - "@unyt/datex": "^0.0.10", + "@unyt/datex": "0.0.13", "@unyt/speck": "^0.0.11", "@vueuse/core": "^14.0.0", "class-variance-authority": "^0.7.1", @@ -2552,9 +2552,9 @@ } }, "node_modules/@unyt/datex": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/@unyt/datex/-/datex-0.0.10.tgz", - "integrity": "sha512-dTyqhb92/K/nH/uIQDTeLNOQVz9M5MBC4v/fzHe+s7pnOkw8m/SyUbvlwh+ZAwTNVd27ygsQmvusKFSn6w8Yrg==", + "version": "0.0.13", + "resolved": "https://registry.npmjs.org/@unyt/datex/-/datex-0.0.13.tgz", + "integrity": "sha512-H9iXiPLrVyPx82K1ahjCK0XII9DGtITZkIz6g4X750USfdelRfSacNPkpQklNu3Qn3Zkk4gxDQPUg1iQWaexMg==", "license": "MIT" }, "node_modules/@unyt/speck": { diff --git a/package.json b/package.json index bac5ea92..2827e9fe 100644 --- a/package.json +++ b/package.json @@ -19,7 +19,7 @@ }, "dependencies": { "@tailwindcss/vite": "^4.1.16", - "@unyt/datex": "^0.0.10", + "@unyt/datex": "0.0.13", "@unyt/speck": "^0.0.11", "@vueuse/core": "^14.0.0", "class-variance-authority": "^0.7.1", diff --git a/src/components/ComHubEndpointList.vue b/src/components/ComHubEndpointList.vue new file mode 100644 index 00000000..dae7b835 --- /dev/null +++ b/src/components/ComHubEndpointList.vue @@ -0,0 +1,157 @@ + + + \ No newline at end of file diff --git a/src/components/ComHubEndpointView.vue b/src/components/ComHubEndpointView.vue deleted file mode 100644 index da0986e2..00000000 --- a/src/components/ComHubEndpointView.vue +++ /dev/null @@ -1,322 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/ComHubInterfaceList.vue b/src/components/ComHubInterfaceList.vue new file mode 100644 index 00000000..dae825e2 --- /dev/null +++ b/src/components/ComHubInterfaceList.vue @@ -0,0 +1,135 @@ + + + \ No newline at end of file diff --git a/src/components/ComHubOverview.vue b/src/components/ComHubOverview.vue deleted file mode 100644 index f8719ae2..00000000 --- a/src/components/ComHubOverview.vue +++ /dev/null @@ -1,305 +0,0 @@ - - - \ No newline at end of file diff --git a/src/components/ComHubOverviewWrapper.vue b/src/components/ComHubOverviewWrapper.vue index bd5c209c..83ae3e1b 100644 --- a/src/components/ComHubOverviewWrapper.vue +++ b/src/components/ComHubOverviewWrapper.vue @@ -1,36 +1,106 @@ - - \ No newline at end of file + + +
+ +
+ + +
+ + +
+ + +
+ + +
+ + + + \ No newline at end of file diff --git a/src/composable/useComHub.ts b/src/composable/useComHub.ts deleted file mode 100644 index 4e258bd9..00000000 --- a/src/composable/useComHub.ts +++ /dev/null @@ -1,6 +0,0 @@ -import { reactive } from 'vue' - -export const comhub = reactive({ - endpoint: '@@FB2D5CF3FBE8CF00FC4518DAF76A189602E1', - // TODO: Replace with live runtime state -}) \ No newline at end of file diff --git a/src/lib/runtime.ts b/src/lib/runtime.ts index 620b34e6..0e544733 100644 --- a/src/lib/runtime.ts +++ b/src/lib/runtime.ts @@ -1,5 +1,20 @@ -import { Runtime, DIF } from '@unyt/datex' import type { RuntimeConfig } from '@unyt/datex' +import { DIF, Runtime } from '@unyt/datex' + +export type ComHubMetadata = { + endpoint: string + interfaces: { + uuid: string + properties: Record + sockets: { + uuid: string + direction: string + endpoint: string | undefined + properties: Record | undefined + }[] + is_waiting_for_socket_connections: boolean + }[] +} const defaultConfig: RuntimeConfig = { interfaces: [ @@ -9,17 +24,50 @@ const defaultConfig: RuntimeConfig = { url: 'wss://example.unyt.land', }, }, + { + type: 'websocket-client', + config: { + url: 'wss://example.unyt.land', + }, + }, ], } export const Datex: Runtime = await Runtime.create(defaultConfig) export function getPointers(): Map { - const mock: [string, DIF.Definitions.DIFValueContainer][] = [ - ['$std', { type: 'object', name: 'std' } as unknown as DIF.Definitions.DIFValueContainer], - ['$file_server', { type: 'object', name: 'file_server' } as unknown as DIF.Definitions.DIFValueContainer], - ['$webrtc', { type: 'object', name: 'webrtc' } as unknown as DIF.Definitions.DIFValueContainer], - ['$Math', { type: 'object', name: 'Math' } as unknown as DIF.Definitions.DIFValueContainer], + const values = [ + 42, + 'Hello, World!', + true, + { a: 1, b: 2 }, + [1, 2, 3, 4, 5], + { + nested: { + key: 'value', + arr: [10, 20, 30], + }, + }, ] - return new Map(mock) + const pointers = new Map( + values.map((value, index) => { + const difValue = Datex.dif.convertJSValueToDIFValueContainer( + value, + ) as DIF.Definitions.DIFValueContainer + return [`$${index.toString().padStart(16, '0')}`, difValue] + }), + ) + return pointers +} + +export function getComHubMetadata(): ComHubMetadata { + return Datex.comHub.getMetadata() +} + + +export async function removeInterface(interfaceUuid: string) { + return await Datex.comHub.removeInterface(interfaceUuid as `com_interface::${string}`) +} +export async function removeSocket(socketUuid: string) { + return await Datex.comHub.removeSocket(socketUuid as `socket::${string}`) } \ No newline at end of file