ALLTERCO / fleet-management

Shelly outbound websocket server
36 stars 11 forks source link

Typescript Compilation Issue #15

Open kieren-vocala opened 2 months ago

kieren-vocala commented 2 months ago

Hi,

Having some trouble getting the typescript to compile for both the frontend and the backend, here are the errors:

Front End src/components/Badge.vue(31,55): error TS2339: Property 'source' does not exist on type 'shelly_device_t'. src/components/Badge.vue(162,23): error TS2339: Property 'source' does not exist on type 'shelly_device_t'. src/components/Badge.vue(163,28): error TS2339: Property 'source' does not exist on type 'shelly_device_t'. src/components/Badge.vue(164,24): error TS2339: Property 'source' does not exist on type 'shelly_device_t'. src/components/core/TabPageSelector.vue(31,26): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/components/DeviceList.vue(13,9): error TS2339: Property 'groups' does not exist on type 'StoreToRefs<Store<"system", _UnwrapAll<Pick<{ token: RemovableRef<string>; config: Ref<{ ble: boolean; mdns: { enable: boolean; }; }>; loggedIn: ComputedRef<boolean>; updateConfig: () => Promise<...>; decodedToken: ComputedRef<...>; }, "token" | "config">>, Pick<...>, Pick<...>>>'. src/components/DeviceList.vue(47,67): error TS2339: Property 'source' does not exist on type 'shelly_device_t'. src/components/DeviceList.vue(49,28): error TS2769: No overload matches this call. Overload 1 of 2, '(predicate: (value: shelly_device_t, index: number, array: shelly_device_t[]) => value is shelly_device_t, thisArg?: any): shelly_device_t[]', gave the following error. Argument of type 'filter_cb' is not assignable to parameter of type '(value: shelly_device_t, index: number, array: shelly_device_t[]) => value is shelly_device_t'. Types of parameters 'shelly' and 'value' are incompatible. Type 'shelly_device_t' is missing the following properties from type 'ShellyDeviceExternal': source, _statusTs, _settingsTs, groups Overload 2 of 2, '(predicate: (value: shelly_device_t, index: number, array: shelly_device_t[]) => unknown, thisArg?: any): shelly_device_t[]', gave the following error. Argument of type 'filter_cb' is not assignable to parameter of type '(value: shelly_device_t, index: number, array: shelly_device_t[]) => unknown'. Types of parameters 'shelly' and 'value' are incompatible. Type 'shelly_device_t' is not assignable to type 'ShellyDeviceExternal'. src/components/RPC.vue(87,39): error TS2345: Argument of type '"danger"' is not assignable to parameter of type 'notifcation_type_t | undefined'. src/components/rpc/DeviceListSelectable.vue(12,40): error TS2339: Property 'source' does not exist on type 'shelly_device_t'. src/components/SideMenu.vue(49,37): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/pages/auth/signinwin/zitadel.vue(14,27): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/pages/dash.vue(72,27): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/pages/dash/[id].vue(95,26): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/pages/dash/[id].vue(111,27): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/pages/devices/discovered.vue(46,27): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/pages/devices/groups/[id].vue(48,37): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/pages/devices/groups/index.vue(66,27): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/pages/login.vue(27,27): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/pages/settings/user.vue(43,27): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/router/index.ts(1,48): error TS2307: Cannot find module 'vue-router/auto' or its corresponding type declarations. src/router/index.ts(8,20): error TS7006: Parameter 'to' implicitly has an 'any' type. src/router/index.ts(8,24): error TS7006: Parameter 'from' implicitly has an 'any' type. src/router/index.ts(8,30): error TS7006: Parameter 'next' implicitly has an 'any' type. src/stores/rpc.ts(59,62): error TS2345: Argument of type '"danger"' is not assignable to parameter of type 'notifcation_type_t | undefined'. src/views/ApplyConfig.vue(83,10): error TS2305: Module '"@/tools/http"' has no exported member 'applyConfig'. src/views/Login.vue(40,30): error TS2339: Property 'setToken' does not exist on type 'Store<"system", _UnwrapAll<Pick<{ token: RemovableRef<string>; config: Ref<{ ble: boolean; mdns: { enable: boolean; }; }>; loggedIn: ComputedRef<boolean>; updateConfig: () => Promise<...>; decodedToken: ComputedRef<...>; }, "token" | "config">>, Pick<...>, Pick<...>>'. src/views/Login.vue(42,62): error TS2345: Argument of type '"danger"' is not assignable to parameter of type 'notifcation_type_t | undefined'. src/views/Login.vue(45,58): error TS2345: Argument of type '"danger"' is not assignable to parameter of type 'notifcation_type_t | undefined'. src/views/Plugins.vue(38,82): error TS2345: Argument of type '"danger"' is not assignable to parameter of type 'notifcation_type_t | undefined'. src/views/Plugins.vue(45,81): error TS2345: Argument of type '"danger"' is not assignable to parameter of type 'notifcation_type_t | undefined'. src/views/RPC.vue(30,48): error TS2345: Argument of type '"danger"' is not assignable to parameter of type 'notifcation_type_t | undefined'. src/views/RPC.vue(42,39): error TS2345: Argument of type '"danger"' is not assignable to parameter of type 'notifcation_type_t | undefined'. src/views/SingleDevice.vue(25,66): error TS2345: Argument of type '"danger"' is not assignable to parameter of type 'notifcation_type_t | undefined'. src/views/SingleDevice.vue(48,96): error TS2345: Argument of type '"danger"' is not assignable to parameter of type 'notifcation_type_t | undefined'. src/views/SingleDevice.vue(79,60): error TS2339: Property 'source' does not exist on type 'shelly_device_t'. src/views/SingleDevice.vue(80,70): error TS2339: Property 'source' does not exist on type 'shelly_device_t'. src/views/SingleDevice.vue(88,93): error TS2339: Property 'source' does not exist on type 'shelly_device_t'. src/views/SingleDevice.vue(96,34): error TS2339: Property 'source' does not exist on type 'shelly_device_t'. src/views/SingleDevice.vue(97,75): error TS2339: Property 'source' does not exist on type 'shelly_device_t'. src/views/SingleDevice.vue(142,47): error TS2339: Property 'groups' does not exist on type 'shelly_device_t'.

Back End

src/config/plugins.ts(69,43): error TS2551: Property 'getConfigFor' does not exist on type 'typeof import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/src/config/components")'. Did you mean 'getConfig'? src/controller/mdns.ts(17,36): error TS2554: Expected 7 arguments, but got 2. src/controller/ws/index.ts(40,39): error TS2345: Argument of type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/node_modules/@types/ws/index.d.ts")' is not assignable to parameter of type 'WebSocket'. Property 'isAlive' is missing in type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/node_modules/@types/ws/index.d.ts")' but required in type 'WebSocket'. src/controller/ws/index.ts(44,31): error TS2345: Argument of type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/node_modules/@types/ws/index.d.ts")' is not assignable to parameter of type 'WebSocket'. Property 'isAlive' is missing in type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/node_modules/@types/ws/index.d.ts")' but required in type 'WebSocket'. src/controller/ws/index.ts(64,12): error TS2339: Property 'shellyRPC' does not exist on type 'ShellyDevice'. src/controller/ws/index.ts(64,49): error TS7006: Parameter 'resp' implicitly has an 'any' type. src/controller/ws/mount.ts(40,12): error TS2339: Property 'on' does not exist on type 'ShellyDevice'. src/controller/ws/mount.ts(51,12): error TS2339: Property 'on' does not exist on type 'ShellyDevice'. src/controller/ws/shelly.ts(5,10): error TS2305: Module '"../../config"' has no exported member 'MAIN_CONFIG'. src/controller/ws/shelly.ts(43,28): error TS2339: Property 'emitter' does not exist on type 'ShellyDevice'. src/controller/ws/shelly.ts(50,32): error TS2554: Expected 7 arguments, but got 2. src/controller/ws/shelly.ts(54,24): error TS2540: Cannot assign to 'status' because it is a read-only property. src/controller/ws/shelly.ts(59,23): error TS2540: Cannot assign to 'status' because it is a read-only property. src/DeviceManager.ts(28,12): error TS2339: Property 'on' does not exist on type 'ShellyDevice'. src/DeviceManager.ts(32,12): error TS2339: Property 'on' does not exist on type 'ShellyDevice'. src/DeviceManager.ts(32,27): error TS7006: Parameter 'res' implicitly has an 'any' type. src/DeviceManager.ts(32,32): error TS7006: Parameter 'req' implicitly has an 'any' type. src/DeviceManager.ts(92,16): error TS2540: Cannot assign to 'status' because it is a read-only property. src/DeviceManager.ts(98,32): error TS2339: Property 'ready' does not exist on type 'ShellyDevice'. src/DeviceManager.ts(101,24): error TS2540: Cannot assign to 'status' because it is a read-only property. src/DeviceManager.ts(104,24): error TS2339: Property 'settings' does not exist on type 'ShellyDevice'. src/DeviceManager.ts(107,24): error TS2339: Property 'deviceInfo' does not exist on type 'ShellyDevice'. src/DeviceManager.ts(123,28): error TS2339: Property 'groups' does not exist on type 'ShellyDevice'. src/DeviceManager.ts(129,34): error TS2339: Property 'ready' does not exist on type 'ShellyDevice'. src/DeviceManager.ts(146,32): error TS2339: Property 'shellyRPC' does not exist on type 'ShellyDevice'. src/DeviceManager.ts(147,32): error TS2339: Property 'shellyRPC' does not exist on type 'ShellyDevice'. src/EventManager.ts(72,105): error TS2741: Property 'groups' is missing in type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/src/types").ShellyDeviceExternal' but required in type 'ShellyDeviceExternal'. src/EventManager.ts(73,24): error TS2741: Property 'groups' is missing in type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/src/types").ShellyDeviceExternal' but required in type 'ShellyDeviceExternal'. src/EventManager.ts(84,24): error TS2741: Property 'groups' is missing in type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/src/types").ShellyDeviceExternal' but required in type 'ShellyDeviceExternal'. src/EventManager.ts(88,23): error TS2339: Property 'deviceInfo' does not exist on type 'ShellyDevice'. src/EventManager.ts(90,24): error TS2741: Property 'groups' is missing in type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/src/types").ShellyDeviceExternal' but required in type 'ShellyDeviceExternal'. src/EventManager.ts(96,24): error TS2741: Property 'groups' is missing in type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/src/types").ShellyDeviceExternal' but required in type 'ShellyDeviceExternal'. src/EventManager.ts(100,23): error TS2339: Property 'settings' does not exist on type 'ShellyDevice'. src/EventManager.ts(102,24): error TS2741: Property 'groups' is missing in type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/src/types").ShellyDeviceExternal' but required in type 'ShellyDeviceExternal'. src/EventManager.ts(107,24): error TS2741: Property 'groups' is missing in type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/src/types").ShellyDeviceExternal' but required in type 'ShellyDeviceExternal'. src/EventManager.ts(111,23): error TS2339: Property 'groups' does not exist on type 'ShellyDevice'. src/EventManager.ts(113,24): error TS2741: Property 'groups' is missing in type 'import("C:/Users/kiere/OneDrive/Documents/Clients/Flo/Shelly/fleet-management/backend/src/types").ShellyDeviceExternal' but required in type 'ShellyDeviceExternal'. src/model/Commander.ts(85,102): error TS2339: Property 'methodNames' does not exist on type 'T'. src/model/Commander.ts(126,7): error TS2515: Non-abstract class 'PluginGeneratedComponent' does not implement inherited abstract member getDefaultConfig from class 'Component<Record<string, any>>'. src/model/Commander.ts(133,17): error TS2339: Property 'methodNames' does not exist on type 'PluginGeneratedComponent'. src/model/Commander.ts(140,17): error TS2339: Property 'methodNames' does not exist on type 'PluginGeneratedComponent'. src/model/Commander.ts(151,18): error TS2339: Property 'methodNames' does not exist on type 'PluginGeneratedComponent'. src/model/component/GroupsComponent.ts(4,22): error TS2515: Non-abstract class 'GroupsComponent' does not implement inherited abstract member getDefaultConfig from class 'Component<Record<string, any>>'.

Let me know if you need any more info!

Thanks

kieren-vocala commented 1 month ago

The previous commit builds for both frontend and backend, I'll be using this as a workaround in the meantime

zetxx commented 1 month ago

Hi there, it is fixed in the next version.

kieren-vocala commented 1 month ago

Hi,

That's great, is there a release date scheduled yet?

Thanks,

Kieren

zetxx commented 1 month ago

Hi,

That's great, is there a release date scheduled yet?

Thanks,

Kieren

Hey, no dates, when we have stable build.