@camera.ui/server 0.0.12-alpha.1 → 0.0.12-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/dist/interface/assets/@mdi-CmcijEFB.js +1 -0
  2. package/dist/interface/assets/{Account-J8XDeuej.js → Account-CWvLwuSI.js} +1 -1
  3. package/dist/interface/assets/{Adminpanel-ByYWJ4zG.js → Adminpanel-D1acAd4f.js} +1 -1
  4. package/dist/interface/assets/{Appearance-DmUOEvJN.js → Appearance-Bt86BtvT.js} +1 -1
  5. package/dist/interface/assets/{Backup-3SwIBdjp.js → Backup-BoCWS3SS.js} +1 -1
  6. package/dist/interface/assets/{Camera-BpYqQh2o.js → Camera-DGGyL9at.js} +1 -1
  7. package/dist/interface/assets/{Cameras-BEdfIDDg.js → Cameras-BT6tKbp5.js} +1 -1
  8. package/dist/interface/assets/{Camview-BANRuW4p.js → Camview-BIiqI_Yj.js} +1 -1
  9. package/dist/interface/assets/{Config-DAiKsG7W.css → Config-CfhTfiRn.css} +1 -1
  10. package/dist/interface/assets/Config-EHUrVnjH.js +1 -0
  11. package/dist/interface/assets/Console-CJPb2CoP.css +1 -0
  12. package/dist/interface/assets/Console-D7qigIrb.js +4 -0
  13. package/dist/interface/assets/{FirstSteps-CyxYpRVg.js → FirstSteps-BdNf60c3.js} +1 -1
  14. package/dist/interface/assets/{NewCamera-C6lmMbpW.js → NewCamera-DrIOe7GH.js} +1 -1
  15. package/dist/interface/assets/{Plugin-mKM3zBSm.js → Plugin-CZN7KLfw.js} +1 -1
  16. package/dist/interface/assets/{Plugins-B8gCgxOx.css → Plugins-DJCy47sz.css} +1 -1
  17. package/dist/interface/assets/Plugins-DePXhcTc.js +1 -0
  18. package/dist/interface/assets/{Recordings-Cbq5yO-V.js → Recordings-BsNa4nl1.js} +1 -1
  19. package/dist/interface/assets/{Recordings-J3fVl1Nf.js → Recordings-CBmeBTjC.js} +1 -1
  20. package/dist/interface/assets/{Settings-DbkqvnBI.js → Settings-HBKa6UiL.js} +1 -1
  21. package/dist/interface/assets/System-BeXkfJHe.js +4 -0
  22. package/dist/interface/assets/{User-qJyXwoHp.js → User-CA1u4oTs.js} +1 -1
  23. package/dist/interface/assets/{VConfigEditor.vue_vue_type_script_setup_true_lang-C2wWpZqH.js → VConfigEditor.vue_vue_type_script_setup_true_lang-DzQETeRW.js} +1 -1
  24. package/dist/interface/assets/{VConsole-CKf3T4gS.js → VConsole-B1XFaB1X.js} +1 -1
  25. package/dist/interface/assets/{VPlayer-DJjwfULk.css → VPlayer-B1HHlrNE.css} +1 -1
  26. package/dist/interface/assets/VPlayer-DpgP5_CU.js +1 -0
  27. package/dist/interface/assets/VPluginCard-D_XHVDOF.css +1 -0
  28. package/dist/interface/assets/VPluginCard-DxspPu-g.js +4 -0
  29. package/dist/interface/assets/{main-DAdsd7ig.css → main-Uk5-SrnC.css} +1 -1
  30. package/dist/interface/assets/main-g2kR7sEX.js +9 -0
  31. package/dist/interface/assets/plugins-S3SjQeRW.js +1 -0
  32. package/dist/interface/assets/{system-BN-plpJC.js → system-l2HUoPBI.js} +1 -1
  33. package/dist/interface/index.html +3 -3
  34. package/dist/interface/pwa/pwa-120x120.png +0 -0
  35. package/dist/interface/pwa/pwa-144x144.png +0 -0
  36. package/dist/interface/pwa/pwa-152x152.png +0 -0
  37. package/dist/interface/pwa/pwa-167x167.png +0 -0
  38. package/dist/interface/pwa/pwa-192x192.png +0 -0
  39. package/dist/interface/pwa/pwa-24x24.png +0 -0
  40. package/dist/interface/pwa/pwa-36x36.png +0 -0
  41. package/dist/interface/pwa/pwa-48x48.png +0 -0
  42. package/dist/interface/pwa/pwa-50x50.png +0 -0
  43. package/dist/interface/pwa/pwa-64x64.png +0 -0
  44. package/dist/interface/pwa/pwa-72x72.png +0 -0
  45. package/dist/interface/pwa/pwa-88x88.png +0 -0
  46. package/dist/interface/pwa/pwa-96x96.png +0 -0
  47. package/dist/interface/sw.js +1 -1
  48. package/dist/server/bin/cameraui.d.ts +1 -0
  49. package/dist/server/bin/cameraui.js +20 -1
  50. package/dist/server/bin/cameraui.js.map +1 -1
  51. package/dist/server/bin/installer/darwin.js +7 -1
  52. package/dist/server/bin/installer/darwin.js.map +1 -1
  53. package/dist/server/bin/installer/freebsd.js +7 -1
  54. package/dist/server/bin/installer/freebsd.js.map +1 -1
  55. package/dist/server/bin/installer/linux.d.ts +2 -0
  56. package/dist/server/bin/installer/linux.js +31 -25
  57. package/dist/server/bin/installer/linux.js.map +1 -1
  58. package/dist/server/bin/installer/win32.js +7 -1
  59. package/dist/server/bin/installer/win32.js.map +1 -1
  60. package/dist/server/package.json +3 -3
  61. package/dist/server/src/api/controllers/plugins.controller.js +2 -5
  62. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  63. package/dist/server/src/api/types/index.d.ts +1 -1
  64. package/dist/server/src/plugins/plugin.js +2 -2
  65. package/dist/server/src/plugins/plugin.js.map +1 -1
  66. package/dist/server/src/polyglot/python/plugins/storage_controller.py +1 -1
  67. package/dist/server/src/services/config/index.d.ts +3 -0
  68. package/dist/server/src/services/config/index.js +49 -10
  69. package/dist/server/src/services/config/index.js.map +1 -1
  70. package/package.json +3 -3
  71. package/dist/interface/assets/@mdi-B8Roxr1z.js +0 -1
  72. package/dist/interface/assets/Config-BWydVKCs.js +0 -1
  73. package/dist/interface/assets/Console-BsyX2S3R.css +0 -1
  74. package/dist/interface/assets/Console-TPR0d-TO.js +0 -4
  75. package/dist/interface/assets/Plugins-C_EbpQcI.js +0 -1
  76. package/dist/interface/assets/System-Bj88A2C7.js +0 -4
  77. package/dist/interface/assets/VPlayer-DeUJBU1V.js +0 -1
  78. package/dist/interface/assets/VPluginCard-BoeWmehD.css +0 -1
  79. package/dist/interface/assets/VPluginCard-C9lEIVNw.js +0 -4
  80. package/dist/interface/assets/main-Dt6mWkg4.js +0 -9
  81. package/dist/interface/assets/plugins-B5ESYMZH.js +0 -1
  82. package/dist/server/src/polyglot/node/decoder/wasm/test/imageUtils.py +0 -106
@@ -1 +0,0 @@
1
- var y=Object.defineProperty;var p=(t,n,e)=>n in t?y(t,n,{enumerable:!0,configurable:!0,writable:!0,value:e}):t[n]=e;var g=(t,n,e)=>p(t,typeof n!="symbol"?n+"":n,e);import{i as o}from"./vue3-toastify-D8Ru9hkX.js";import{i as l,x as s}from"./main-Dt6mWkg4.js";import{u as d,b as i,a as r}from"./@tanstack-BvYNCsQh.js";import{r as m,u}from"./@vue-DMh6qW6s.js";const P=async({pluginData:t})=>(await s.post("/plugins",t)).data,Q=async({pluginName:t,signal:n})=>(await s.get(`/plugins/${t}`,{signal:n})).data,b=async({pluginname:t,signal:n})=>(await s.get(`/plugins/${t}/versions`,{signal:n})).data,h=async({pluginName:t,signal:n})=>(await s.get(`/plugins/${t}/update`,{signal:n})).data,q=async({pluginName:t,signal:n})=>(await s.get(`/plugins/${t}/logo`,{signal:n})).data,F=async({pluginName:t,signal:n})=>(await s.get(`/plugins/${t}/schema`,{signal:n})).data,w=async({pluginName:t,signal:n})=>(await s.get(`/plugins/${t}/config`,{signal:n})).data,f=async({pluginName:t,signal:n})=>(await s.get(`/plugins/${t}/contract`,{signal:n})).data,v=async({pluginName:t,signal:n})=>(await s.get(`/plugins/${t}/readme`,{signal:n})).data,C=async({pluginName:t,signal:n})=>(await s.get(`/plugins/${t}/changelog`,{signal:n})).data,K=async({pluginName:t,signal:n})=>(await s.get(`/plugins/${t}/release`,{signal:n})).data,_=async({pluginName:t,parameter:n,signal:e})=>(await s.get(`/plugins/${t}/interface`,{params:n,signal:e})).data,$=async({parameter:t,signal:n})=>(await s.get("/plugins",{params:t,signal:n})).data,A=async({parameter:t,signal:n})=>(await s.get("/plugins/extensions",{params:t,signal:n})).data,S=async({query:t,parameter:n,signal:e})=>(await s.get("/plugins/search",{params:{...t,...n},signal:e})).data,L=async({pluginName:t})=>(await s.put(`/plugins/${t}/enable`)).data,x=async({pluginName:t,configData:n})=>(await s.patch(`/plugins/${t}/config`,n)).data,R=async({pluginName:t})=>(await s.put(`/plugins/${t}/disable`)).data,N=async({pluginName:t})=>(await s.put(`/plugins/${t}/start`)).data,I=async({pluginName:t})=>(await s.put(`/plugins/${t}/stop`)).data,J=async({pluginName:t})=>(await s.put(`/plugins/${t}/restart`)).data,E=async({pluginName:t,formData:n})=>(await s.post(`/plugins/${t}/detect/motion`,n,{responseType:"arraybuffer"})).data,U=async({pluginName:t,formData:n})=>(await s.post(`/plugins/${t}/detect/objects`,n)).data,V=async({pluginName:t,formData:n})=>(await s.post(`/plugins/${t}/detect/audio`,n)).data,j=async({pluginName:t,actionId:n,payload:e})=>(await s.post(`/plugins/${t}/submit`,{actionId:n,payload:e})).data,D=async({pluginName:t,removeStorage:n})=>(await s.delete(`/plugins/${t}`,{params:{removeStorage:n}})).data,M=async()=>(await s.delete("/plugins")).data;class G{constructor(){g(this,"_queryClient",d());g(this,"queryActivator",m([{name:"getPluginQuery",enabled:!0},{name:"getPluginsQuery",enabled:!0},{name:"getPluginsExtensionsQuery",enabled:!0},{name:"searchPluginsQuery",enabled:!0},{name:"getPluginVersionsQuery",enabled:!0},{name:"getPluginUpdateQuery",enabled:!0},{name:"getPluginLogoQuery",enabled:!0},{name:"getPluginSchemaQuery",enabled:!0},{name:"getPluginConfigJsonQuery",enabled:!0},{name:"getPluginContractQuery",enabled:!0},{name:"getPluginReadmeQuery",enabled:!0},{name:"getPluginReleaseQuery",enabled:!0},{name:"getPluginInterfaceQuery",enabled:!0},{name:"getPluginChangelogQuery",enabled:!0}]))}get queryClient(){return this._queryClient}installPluginQuery(){return i({mutationFn:P,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:["pluginsList"]}),o.success(l.global.t("components.toast.plugin_added"))}})}getPluginQuery(n){return r({queryKey:["plugins",n],queryFn:({signal:e})=>Q({pluginName:u(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginQuery"&&e.enabled)})}getPluginsQuery(n){return r({queryKey:["pluginsList",n],queryFn:({signal:e})=>$({parameter:u(n),signal:e}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginsQuery"&&e.enabled)})}getPluginsExtensionsQuery(n){return r({queryKey:["extensionsList",n],queryFn:({signal:e})=>A({parameter:u(n),signal:e}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginsExtensionsQuery"&&e.enabled)})}searchPluginsQuery(n,e){return r({queryKey:["pluginsSearch",n,e],queryFn:({signal:a})=>S({query:u(n),parameter:u(e),signal:a}),placeholderData:a=>a,enabled:()=>this.queryActivator.value.some(a=>a.name==="searchPluginsQuery"&&a.enabled)})}getPluginVersionsQuery(n){return r({queryKey:["plugins",n,"versions"],queryFn:({signal:e})=>b({pluginname:u(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginVersionsQuery"&&e.enabled)})}getPluginUpdateQuery(n){return r({queryKey:["plugins",n,"update"],queryFn:({signal:e})=>h({pluginName:u(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginUpdateQuery"&&e.enabled)})}getPluginLogoQuery(n){return r({queryKey:["plugins",n,"logo"],queryFn:({signal:e})=>q({pluginName:u(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginLogoQuery"&&e.enabled)})}getPluginSchemaQuery(n){return r({queryKey:["plugins",n,"schema"],queryFn:({signal:e})=>F({pluginName:u(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginSchemaQuery"&&e.enabled)})}getPluginConfigJsonQuery(n){return r({queryKey:["plugins",n,"config"],queryFn:({signal:e})=>w({pluginName:u(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginConfigJsonQuery"&&e.enabled)})}getPluginContractQuery(n){return r({queryKey:["plugins",n,"contract"],queryFn:({signal:e})=>f({pluginName:u(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginContractQuery"&&e.enabled)})}getPluginReadmeQuery(n){return r({queryKey:["plugins",n,"readme"],queryFn:({signal:e})=>v({pluginName:u(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginReadmeQuery"&&e.enabled)})}getPluginReleaseQuery(n){return r({queryKey:["plugins",n,"release"],queryFn:({signal:e})=>K({pluginName:u(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginReleaseQuery"&&e.enabled)})}getPluginInterfaceQuery(n,e){return r({queryKey:["plugins",n,"interface",e],queryFn:({signal:a})=>_({pluginName:u(n),parameter:e,signal:a}),enabled:()=>this.queryActivator.value.some(a=>a.name==="getPluginInterfaceQuery"&&a.enabled)})}getPluginChangelogQuery(n){return r({queryKey:["plugins",n,"changelog"],queryFn:({signal:e})=>C({pluginName:u(n),signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name==="getPluginChangelogQuery"&&e.enabled)})}patchPluginConfigQuery(){return i({mutationFn:x,onSuccess:async(n,e)=>{await this._queryClient.refetchQueries({queryKey:["plugins",e.pluginName]}),o.success(l.global.t("components.toast.plugin_config_updated"))}})}startPluginQuery(){return i({mutationFn:N,onSuccess:async(n,e)=>{await this._queryClient.refetchQueries({queryKey:["plugins",e.pluginName]}),o.success(l.global.t("components.toast.plugin_started"))}})}stopPluginQuery(){return i({mutationFn:I,onSuccess:async(n,e)=>{await this._queryClient.refetchQueries({queryKey:["plugins",e.pluginName]}),o.success(l.global.t("components.toast.plugin_stopped"))}})}restartPluginQuery(){return i({mutationFn:J,onSuccess:async(n,e)=>{await this._queryClient.refetchQueries({queryKey:["plugins",e.pluginName]}),o.success(l.global.t("components.toast.plugin_restarted"))}})}detectMotionQuery(){return i({mutationFn:E})}detectObjectsQuery(){return i({mutationFn:U})}detectAudioQuery(){return i({mutationFn:V})}actionButtonQuery(){return i({mutationFn:j,onSuccess:async(n,e)=>{await this._queryClient.refetchQueries({queryKey:["plugins",e.pluginName]}),o.success(l.global.t("components.toast.plugin_request_sent"))}})}enablePluginQuery(){return i({mutationFn:L,onSuccess:async(n,e)=>{await this._queryClient.refetchQueries({queryKey:["pluginsList"]}),await this._queryClient.refetchQueries({queryKey:["plugins",e.pluginName]}),o.success(l.global.t("components.toast.plugin_enabled"))}})}disablePluginQuery(){return i({mutationFn:R,onSuccess:async(n,e)=>{await this._queryClient.refetchQueries({queryKey:["pluginsList"]}),await this._queryClient.refetchQueries({queryKey:["plugins",e.pluginName]}),o.success(l.global.t("components.toast.plugin_disabled"))}})}uninstallPluginQuery(){return i({mutationFn:D,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:["pluginsList"]}),o.success(l.global.t("components.toast.plugin_removed"))}})}uninstallPluginsQuery(){return i({mutationFn:M,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:["pluginsList"]}),o.success(l.global.t("components.toast.plugins_removed"))}})}toggleQueryActivator(n,e){const a=this.queryActivator.value.find(c=>c.name===n);a&&(a.enabled=e)}}export{G as P};
@@ -1,106 +0,0 @@
1
- import asyncio
2
- import time
3
- from typing import Any, Literal
4
-
5
- import numpy as np
6
- from PIL import Image
7
-
8
- width = 640
9
- height = 360
10
-
11
-
12
- def yuv420_to_rgb(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
13
- frame_size = width * height
14
- uv_size = frame_size // 4
15
-
16
- raw_data = np.frombuffer(yuv_bytes, dtype=np.uint8)
17
-
18
- y = raw_data[:frame_size].reshape((height, width)).astype(np.float32) - 16.0
19
- u = (
20
- raw_data[frame_size : frame_size + uv_size].reshape((height // 2, width // 2)).astype(np.float32)
21
- - 128.0
22
- )
23
- v = raw_data[frame_size + uv_size :].reshape((height // 2, width // 2)).astype(np.float32) - 128.0
24
-
25
- # Upsample U and V to match Y dimensions in one step
26
- u = u.repeat(2, axis=0).repeat(2, axis=1)
27
- v = v.repeat(2, axis=0).repeat(2, axis=1)
28
-
29
- # Perform YUV to RGB conversion
30
- r = y + 1.402 * v
31
- g = y - 0.344136 * u - 0.714136 * v
32
- b = y + 1.772 * u
33
-
34
- # return np.clip(np.stack((r, g, b), axis=-1), 0, 255).astype(np.uint8)
35
- rgb = np.stack((r, g, b), axis=-1)
36
- return np.clip(rgb, 0, 255).astype(np.uint8)
37
-
38
-
39
- def yuv420_to_rgba(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
40
- rgb = yuv420_to_rgb(yuv_bytes, width, height)
41
- alpha = np.full((height, width, 1), 255, dtype=np.uint8) # Alpha direkt als uint8
42
- rgba = np.concatenate((rgb, alpha), axis=-1)
43
- return rgba
44
-
45
-
46
- def yuv420_to_gray(yuv_bytes: bytes, width: int, height: int) -> np.ndarray[Any, Any]:
47
- frame_size = width * height
48
- raw_data = np.frombuffer(yuv_bytes, dtype=np.uint8)
49
- return raw_data[:frame_size].reshape((height, width)).astype(np.uint8)
50
-
51
-
52
- def read_yuv_file():
53
- with open("frame.yuv", "rb") as f:
54
- return f.read()
55
-
56
-
57
- def main(format: Literal["rgb", "rgba", "gray"]):
58
- yuv_bytes = read_yuv_file()
59
-
60
- if format == "rgb":
61
- rgb = yuv420_to_rgb(yuv_bytes, width, height)
62
- rgb_image = Image.fromarray(rgb)
63
- rgb_image.save("frame_rgb.jpg")
64
- elif format == "rgba":
65
- rgba = yuv420_to_rgba(yuv_bytes, width, height)
66
- rgba_image = Image.fromarray(rgba)
67
- rgba_image.save("frame_rgba.png")
68
- elif format == "gray":
69
- gray = yuv420_to_gray(yuv_bytes, width, height)
70
- gray_image = Image.fromarray(gray)
71
- gray_image.save("frame_gray.jpg")
72
-
73
-
74
- async def benchmark(format: Literal["rgb", "rgba", "gray"]):
75
- yuv_bytes = read_yuv_file()
76
-
77
- fps = 10
78
- total_frames = 3000
79
- average_latency_in_ms = 6
80
- frame_duration = 1.0 / fps
81
- current_frame = 0
82
-
83
- start = time.time()
84
-
85
- while current_frame < total_frames:
86
- if format == "rgb":
87
- rgb = yuv420_to_rgb(yuv_bytes, width, height)
88
- Image.fromarray(rgb)
89
- elif format == "rgba":
90
- rgba = yuv420_to_rgba(yuv_bytes, width, height)
91
- Image.fromarray(rgba)
92
- elif format == "gray":
93
- gray = yuv420_to_gray(yuv_bytes, width, height)
94
- Image.fromarray(gray)
95
-
96
- current_frame += 1
97
- await asyncio.sleep(frame_duration + average_latency_in_ms / 1000.0)
98
-
99
- end = time.time()
100
- print("Simulation completed! Total duration:", (end - start) * 1000, "ms")
101
-
102
-
103
- format: Literal["rgb", "rgba", "gray"] = "gray"
104
-
105
- main(format)
106
- asyncio.run(benchmark(format))