livedesk 0.1.131 → 0.1.133

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.
@@ -4174,7 +4174,7 @@ export function createRemoteHub(options = {}) {
4174
4174
  issuedAt: new Date().toISOString()
4175
4175
  };
4176
4176
 
4177
- const dedicatedFileSocket = commandName === 'file.transfer'
4177
+ const dedicatedFileSocket = commandName.startsWith('file.transfer')
4178
4178
  && device.fileSocket
4179
4179
  && !device.fileSocket.destroyed
4180
4180
  ? device.fileSocket
package/hub/src/server.js CHANGED
@@ -272,6 +272,7 @@ app.use(express.json({ limit: '32mb' }));
272
272
 
273
273
  const MAX_FILE_TRANSFER_FILES = 24;
274
274
  const MAX_FILE_TRANSFER_BYTES = 24 * 1024 * 1024;
275
+ const MAX_FILE_TRANSFER_CHUNK_BYTES = 512 * 1024;
275
276
 
276
277
  function noStore(res) {
277
278
  res.setHeader('Cache-Control', 'no-store');
@@ -357,6 +358,41 @@ function normalizeTransferFiles(value) {
357
358
  return { ok: true, files, totalBytes };
358
359
  }
359
360
 
361
+ function normalizeTransferChunk(body = {}) {
362
+ const dataBase64 = String(body.dataBase64 || '').replace(/^data:[^,]*,/i, '').trim();
363
+ const name = String(body.name || '').replace(/[\r\n\t\0]/g, ' ').trim().slice(0, 240);
364
+ const relativePath = String(body.relativePath || name).replace(/[\r\n\t\0]/g, ' ').trim().slice(0, 600);
365
+ const offset = Math.max(0, Math.floor(Number(body.offset) || 0));
366
+ const totalBytes = Math.max(0, Math.floor(Number(body.totalBytes) || 0));
367
+ const byteLength = dataBase64 ? Buffer.byteLength(dataBase64, 'base64') : 0;
368
+ const final = body.final === true;
369
+
370
+ if (!name || !relativePath || offset > totalBytes || offset + byteLength > totalBytes) {
371
+ return { ok: false, error: 'invalid-file-transfer-chunk' };
372
+ }
373
+ if (byteLength > MAX_FILE_TRANSFER_CHUNK_BYTES) {
374
+ return { ok: false, error: 'file-transfer-chunk-too-large', byteLength };
375
+ }
376
+ if (byteLength === 0 && !(final && totalBytes === 0 && offset === 0)) {
377
+ return { ok: false, error: 'empty-file-transfer-chunk' };
378
+ }
379
+
380
+ return {
381
+ ok: true,
382
+ chunk: {
383
+ name,
384
+ relativePath,
385
+ offset,
386
+ totalBytes,
387
+ byteLength,
388
+ dataBase64,
389
+ final,
390
+ mimeType: String(body.type || body.mimeType || '').slice(0, 160),
391
+ lastModified: Number(body.lastModified || 0) || 0
392
+ }
393
+ };
394
+ }
395
+
360
396
  function normalizeLiveOptions(payload = {}) {
361
397
  const mode = String(payload.frameMode || payload.mode || 'mode3-h264-hw').trim() || 'mode3-h264-hw';
362
398
  const maxFps = mode === 'mode3-h264-hw' ? 20 : 30;
@@ -1043,6 +1079,48 @@ app.post('/api/remote/files/transfer', requireHubFeatureAccess, (req, res) => {
1043
1079
  });
1044
1080
  });
1045
1081
 
1082
+ app.post('/api/remote/files/chunk', requireHubFeatureAccess, (req, res) => {
1083
+ noStore(res);
1084
+ const deviceIds = normalizeDeviceIds(req.body?.deviceIds);
1085
+ if (deviceIds.length === 0) {
1086
+ res.status(400).json({ ok: false, error: 'no-target-devices' });
1087
+ return;
1088
+ }
1089
+ const normalized = normalizeTransferChunk(req.body || {});
1090
+ if (!normalized.ok) {
1091
+ res.status(400).json({ ok: false, error: normalized.error, byteLength: normalized.byteLength || 0 });
1092
+ return;
1093
+ }
1094
+
1095
+ const transferId = String(req.body?.transferId || crypto.randomUUID()).replace(/[^a-zA-Z0-9_.:-]/g, '-').slice(0, 128);
1096
+ const remoteDirectory = String(req.body?.remoteDirectory || '').replace(/[\0\r\n\t]/g, ' ').trim().slice(0, 600);
1097
+ const queuedAt = new Date().toISOString();
1098
+ const results = deviceIds.map(deviceId => ({
1099
+ deviceId,
1100
+ ...remoteHub.sendCommand(deviceId, {
1101
+ command: 'file.transfer.chunk',
1102
+ payload: {
1103
+ transferId,
1104
+ remoteDirectory,
1105
+ ...normalized.chunk,
1106
+ requestedAt: queuedAt
1107
+ }
1108
+ })
1109
+ }));
1110
+ const queued = results.filter(result => result.ok).length;
1111
+ res.json({
1112
+ ok: queued > 0,
1113
+ transferId,
1114
+ queued,
1115
+ total: deviceIds.length,
1116
+ byteLength: normalized.chunk.byteLength,
1117
+ offset: normalized.chunk.offset,
1118
+ final: normalized.chunk.final,
1119
+ results,
1120
+ error: queued > 0 ? undefined : 'no-transfer-queued'
1121
+ });
1122
+ });
1123
+
1046
1124
  app.post('/api/remote/devices/:deviceId/tasks', requireHubFeatureAccess, (req, res) => {
1047
1125
  noStore(res);
1048
1126
  res.json(remoteHub.requestAgentTask(req.params.deviceId, {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "livedesk",
3
- "version": "0.1.131",
3
+ "version": "0.1.133",
4
4
  "description": "LiveDesk Hub and client launcher",
5
5
  "type": "module",
6
6
  "bin": {
@@ -30,7 +30,7 @@
30
30
  "node": ">=20"
31
31
  },
32
32
  "dependencies": {
33
- "@livedesk/client": "0.1.90",
33
+ "@livedesk/client": "0.1.92",
34
34
  "cors": "^2.8.5",
35
35
  "express": "^4.21.2",
36
36
  "ws": "^8.18.3"
@@ -0,0 +1 @@
1
+ var S={exports:{}},n={};var V;function et(){if(V)return n;V=1;var y=Symbol.for("react.transitional.element"),f=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),d=Symbol.for("react.strict_mode"),m=Symbol.for("react.profiler"),_=Symbol.for("react.consumer"),w=Symbol.for("react.context"),g=Symbol.for("react.forward_ref"),M=Symbol.for("react.suspense"),R=Symbol.for("react.memo"),x=Symbol.for("react.lazy"),Z=Symbol.for("react.activity"),b=Symbol.iterator;function K(t){return t===null||typeof t!="object"?null:(t=b&&t[b]||t["@@iterator"],typeof t=="function"?t:null)}var P={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},L=Object.assign,O={};function k(t,e,r){this.props=t,this.context=e,this.refs=O,this.updater=r||P}k.prototype.isReactComponent={},k.prototype.setState=function(t,e){if(typeof t!="object"&&typeof t!="function"&&t!=null)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,t,e,"setState")},k.prototype.forceUpdate=function(t){this.updater.enqueueForceUpdate(this,t,"forceUpdate")};function q(){}q.prototype=k.prototype;function $(t,e,r){this.props=t,this.context=e,this.refs=O,this.updater=r||P}var T=$.prototype=new q;T.constructor=$,L(T,k.prototype),T.isPureReactComponent=!0;var z=Array.isArray;function N(){}var u={H:null,A:null,T:null,S:null},I=Object.prototype.hasOwnProperty;function A(t,e,r){var o=r.ref;return{$$typeof:y,type:t,key:e,ref:o!==void 0?o:null,props:r}}function G(t,e){return A(t.type,e,t.props)}function H(t){return typeof t=="object"&&t!==null&&t.$$typeof===y}function X(t){var e={"=":"=0",":":"=2"};return"$"+t.replace(/[=:]/g,function(r){return e[r]})}var U=/\/+/g;function j(t,e){return typeof t=="object"&&t!==null&&t.key!=null?X(""+t.key):e.toString(36)}function Q(t){switch(t.status){case"fulfilled":return t.value;case"rejected":throw t.reason;default:switch(typeof t.status=="string"?t.then(N,N):(t.status="pending",t.then(function(e){t.status==="pending"&&(t.status="fulfilled",t.value=e)},function(e){t.status==="pending"&&(t.status="rejected",t.reason=e)})),t.status){case"fulfilled":return t.value;case"rejected":throw t.reason}}throw t}function v(t,e,r,o,a){var c=typeof t;(c==="undefined"||c==="boolean")&&(t=null);var i=!1;if(t===null)i=!0;else switch(c){case"bigint":case"string":case"number":i=!0;break;case"object":switch(t.$$typeof){case y:case f:i=!0;break;case x:return i=t._init,v(i(t._payload),e,r,o,a)}}if(i)return a=a(t),i=o===""?"."+j(t,0):o,z(a)?(r="",i!=null&&(r=i.replace(U,"$&/")+"/"),v(a,e,r,"",function(tt){return tt})):a!=null&&(H(a)&&(a=G(a,r+(a.key==null||t&&t.key===a.key?"":(""+a.key).replace(U,"$&/")+"/")+i)),e.push(a)),1;i=0;var h=o===""?".":o+":";if(z(t))for(var p=0;p<t.length;p++)o=t[p],c=h+j(o,p),i+=v(o,e,r,c,a);else if(p=K(t),typeof p=="function")for(t=p.call(t),p=0;!(o=t.next()).done;)o=o.value,c=h+j(o,p++),i+=v(o,e,r,c,a);else if(c==="object"){if(typeof t.then=="function")return v(Q(t),e,r,o,a);throw e=String(t),Error("Objects are not valid as a React child (found: "+(e==="[object Object]"?"object with keys {"+Object.keys(t).join(", ")+"}":e)+"). If you meant to render a collection of children, use an array instead.")}return i}function C(t,e,r){if(t==null)return t;var o=[],a=0;return v(t,o,"","",function(c){return e.call(r,c,a++)}),o}function J(t){if(t._status===-1){var e=t._result;e=e(),e.then(function(r){(t._status===0||t._status===-1)&&(t._status=1,t._result=r)},function(r){(t._status===0||t._status===-1)&&(t._status=2,t._result=r)}),t._status===-1&&(t._status=0,t._result=e)}if(t._status===1)return t._result.default;throw t._result}var Y=typeof reportError=="function"?reportError:function(t){if(typeof window=="object"&&typeof window.ErrorEvent=="function"){var e=new window.ErrorEvent("error",{bubbles:!0,cancelable:!0,message:typeof t=="object"&&t!==null&&typeof t.message=="string"?String(t.message):String(t),error:t});if(!window.dispatchEvent(e))return}else if(typeof process=="object"&&typeof process.emit=="function"){process.emit("uncaughtException",t);return}console.error(t)},F={map:C,forEach:function(t,e,r){C(t,function(){e.apply(this,arguments)},r)},count:function(t){var e=0;return C(t,function(){e++}),e},toArray:function(t){return C(t,function(e){return e})||[]},only:function(t){if(!H(t))throw Error("React.Children.only expected to receive a single React element child.");return t}};return n.Activity=Z,n.Children=F,n.Component=k,n.Fragment=l,n.Profiler=m,n.PureComponent=$,n.StrictMode=d,n.Suspense=M,n.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=u,n.__COMPILER_RUNTIME={__proto__:null,c:function(t){return u.H.useMemoCache(t)}},n.cache=function(t){return function(){return t.apply(null,arguments)}},n.cacheSignal=function(){return null},n.cloneElement=function(t,e,r){if(t==null)throw Error("The argument must be a React element, but you passed "+t+".");var o=L({},t.props),a=t.key;if(e!=null)for(c in e.key!==void 0&&(a=""+e.key),e)!I.call(e,c)||c==="key"||c==="__self"||c==="__source"||c==="ref"&&e.ref===void 0||(o[c]=e[c]);var c=arguments.length-2;if(c===1)o.children=r;else if(1<c){for(var i=Array(c),h=0;h<c;h++)i[h]=arguments[h+2];o.children=i}return A(t.type,a,o)},n.createContext=function(t){return t={$$typeof:w,_currentValue:t,_currentValue2:t,_threadCount:0,Provider:null,Consumer:null},t.Provider=t,t.Consumer={$$typeof:_,_context:t},t},n.createElement=function(t,e,r){var o,a={},c=null;if(e!=null)for(o in e.key!==void 0&&(c=""+e.key),e)I.call(e,o)&&o!=="key"&&o!=="__self"&&o!=="__source"&&(a[o]=e[o]);var i=arguments.length-2;if(i===1)a.children=r;else if(1<i){for(var h=Array(i),p=0;p<i;p++)h[p]=arguments[p+2];a.children=h}if(t&&t.defaultProps)for(o in i=t.defaultProps,i)a[o]===void 0&&(a[o]=i[o]);return A(t,c,a)},n.createRef=function(){return{current:null}},n.forwardRef=function(t){return{$$typeof:g,render:t}},n.isValidElement=H,n.lazy=function(t){return{$$typeof:x,_payload:{_status:-1,_result:t},_init:J}},n.memo=function(t,e){return{$$typeof:R,type:t,compare:e===void 0?null:e}},n.startTransition=function(t){var e=u.T,r={};u.T=r;try{var o=t(),a=u.S;a!==null&&a(r,o),typeof o=="object"&&o!==null&&typeof o.then=="function"&&o.then(N,Y)}catch(c){Y(c)}finally{e!==null&&r.types!==null&&(e.types=r.types),u.T=e}},n.unstable_useCacheRefresh=function(){return u.H.useCacheRefresh()},n.use=function(t){return u.H.use(t)},n.useActionState=function(t,e,r){return u.H.useActionState(t,e,r)},n.useCallback=function(t,e){return u.H.useCallback(t,e)},n.useContext=function(t){return u.H.useContext(t)},n.useDebugValue=function(){},n.useDeferredValue=function(t,e){return u.H.useDeferredValue(t,e)},n.useEffect=function(t,e){return u.H.useEffect(t,e)},n.useEffectEvent=function(t){return u.H.useEffectEvent(t)},n.useId=function(){return u.H.useId()},n.useImperativeHandle=function(t,e,r){return u.H.useImperativeHandle(t,e,r)},n.useInsertionEffect=function(t,e){return u.H.useInsertionEffect(t,e)},n.useLayoutEffect=function(t,e){return u.H.useLayoutEffect(t,e)},n.useMemo=function(t,e){return u.H.useMemo(t,e)},n.useOptimistic=function(t,e){return u.H.useOptimistic(t,e)},n.useReducer=function(t,e,r){return u.H.useReducer(t,e,r)},n.useRef=function(t){return u.H.useRef(t)},n.useState=function(t){return u.H.useState(t)},n.useSyncExternalStore=function(t,e,r){return u.H.useSyncExternalStore(t,e,r)},n.useTransition=function(){return u.H.useTransition()},n.version="19.2.7",n}var D;function nt(){return D||(D=1,S.exports=et()),S.exports}var E=nt();const ot=y=>y.replace(/([a-z0-9])([A-Z])/g,"$1-$2").toLowerCase(),rt=y=>y.replace(/^([A-Z])|[\s-_]+(\w)/g,(f,l,d)=>d?d.toUpperCase():l.toLowerCase()),B=y=>{const f=rt(y);return f.charAt(0).toUpperCase()+f.slice(1)},W=(...y)=>y.filter((f,l,d)=>!!f&&f.trim()!==""&&d.indexOf(f)===l).join(" ").trim(),st=y=>{for(const f in y)if(f.startsWith("aria-")||f==="role"||f==="title")return!0};var at={xmlns:"http://www.w3.org/2000/svg",width:24,height:24,viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:2,strokeLinecap:"round",strokeLinejoin:"round"};const ct=E.forwardRef(({color:y="currentColor",size:f=24,strokeWidth:l=2,absoluteStrokeWidth:d,className:m="",children:_,iconNode:w,...g},M)=>E.createElement("svg",{ref:M,...at,width:f,height:f,stroke:y,strokeWidth:d?Number(l)*24/Number(f):l,className:W("lucide",m),...!_&&!st(g)&&{"aria-hidden":"true"},...g},[...w.map(([R,x])=>E.createElement(R,x)),...Array.isArray(_)?_:[_]]));const s=(y,f)=>{const l=E.forwardRef(({className:d,...m},_)=>E.createElement(ct,{ref:_,iconNode:f,className:W(`lucide-${ot(B(y))}`,`lucide-${y}`,d),...m}));return l.displayName=B(y),l};const ut=[["path",{d:"M22 12h-2.48a2 2 0 0 0-1.93 1.46l-2.35 8.36a.25.25 0 0 1-.48 0L9.24 2.18a.25.25 0 0 0-.48 0l-2.35 8.36A2 2 0 0 1 4.49 12H2",key:"169zse"}]],Yt=s("activity",ut);const it=[["path",{d:"M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z",key:"3c2336"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Vt=s("badge-check",it);const yt=[["path",{d:"M12 7v14",key:"1akyts"}],["path",{d:"M3 18a1 1 0 0 1-1-1V4a1 1 0 0 1 1-1h5a4 4 0 0 1 4 4 4 4 0 0 1 4-4h5a1 1 0 0 1 1 1v13a1 1 0 0 1-1 1h-6a3 3 0 0 0-3 3 3 3 0 0 0-3-3z",key:"ruj8y"}]],Dt=s("book-open",yt);const ft=[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]],Bt=s("chevron-left",ft);const pt=[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]],Wt=s("chevron-right",pt);const lt=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],Zt=s("circle-check",lt);const dt=[["rect",{width:"8",height:"4",x:"8",y:"2",rx:"1",ry:"1",key:"tgr4d6"}],["path",{d:"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2",key:"116196"}]],Kt=s("clipboard",dt);const ht=[["rect",{width:"20",height:"14",x:"2",y:"5",rx:"2",key:"ynyp8z"}],["line",{x1:"2",x2:"22",y1:"10",y2:"10",key:"1b3vmo"}]],Gt=s("credit-card",ht);const _t=[["ellipse",{cx:"12",cy:"5",rx:"9",ry:"3",key:"msslwz"}],["path",{d:"M3 5V19A9 3 0 0 0 21 19V5",key:"1wlel7"}],["path",{d:"M3 12A9 3 0 0 0 21 12",key:"mv7ke4"}]],Xt=s("database",_t);const kt=[["path",{d:"M21.54 15H17a2 2 0 0 0-2 2v4.54",key:"1djwo0"}],["path",{d:"M7 3.34V5a3 3 0 0 0 3 3a2 2 0 0 1 2 2c0 1.1.9 2 2 2a2 2 0 0 0 2-2c0-1.1.9-2 2-2h3.17",key:"1tzkfa"}],["path",{d:"M11 21.95V18a2 2 0 0 0-2-2a2 2 0 0 1-2-2v-1a2 2 0 0 0-2-2H2.05",key:"14pb5j"}],["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}]],Qt=s("earth",kt);const vt=[["path",{d:"M15 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V7Z",key:"1rqfz7"}],["path",{d:"M14 2v4a2 2 0 0 0 2 2h4",key:"tnqrlb"}],["path",{d:"M12 12v6",key:"3ahymv"}],["path",{d:"m15 15-3-3-3 3",key:"15xj92"}]],Jt=s("file-up",vt);const mt=[["path",{d:"m6 14 1.5-2.9A2 2 0 0 1 9.24 10H20a2 2 0 0 1 1.94 2.5l-1.54 6a2 2 0 0 1-1.95 1.5H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H18a2 2 0 0 1 2 2v2",key:"usdka0"}]],Ft=s("folder-open",mt);const Et=[["path",{d:"M9 20H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h3.9a2 2 0 0 1 1.69.9l.81 1.2a2 2 0 0 0 1.67.9H20a2 2 0 0 1 2 2v.5",key:"1dkoa9"}],["path",{d:"M12 10v4h4",key:"1czhmt"}],["path",{d:"m12 14 1.535-1.605a5 5 0 0 1 8 1.5",key:"lvuxfi"}],["path",{d:"M22 22v-4h-4",key:"1ewp4q"}],["path",{d:"m22 18-1.535 1.605a5 5 0 0 1-8-1.5",key:"14ync0"}]],te=s("folder-sync",Et);const gt=[["path",{d:"M20 20a2 2 0 0 0 2-2V8a2 2 0 0 0-2-2h-7.9a2 2 0 0 1-1.69-.9L9.6 3.9A2 2 0 0 0 7.93 3H4a2 2 0 0 0-2 2v13a2 2 0 0 0 2 2Z",key:"1kt360"}],["path",{d:"M12 10v6",key:"1bos4e"}],["path",{d:"m9 13 3-3 3 3",key:"1pxg3c"}]],ee=s("folder-up",gt);const xt=[["rect",{width:"7",height:"7",x:"3",y:"3",rx:"1",key:"1g98yp"}],["rect",{width:"7",height:"7",x:"14",y:"3",rx:"1",key:"6d4xhi"}],["rect",{width:"7",height:"7",x:"14",y:"14",rx:"1",key:"nxv5o0"}],["rect",{width:"7",height:"7",x:"3",y:"14",rx:"1",key:"1bb6yr"}]],ne=s("layout-grid",xt);const Ct=[["circle",{cx:"12",cy:"16",r:"1",key:"1au0dj"}],["rect",{x:"3",y:"10",width:"18",height:"12",rx:"2",key:"6s8ecr"}],["path",{d:"M7 10V7a5 5 0 0 1 10 0v3",key:"1pqi11"}]],oe=s("lock-keyhole",Ct);const wt=[["path",{d:"m10 17 5-5-5-5",key:"1bsop3"}],["path",{d:"M15 12H3",key:"6jk70r"}],["path",{d:"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4",key:"u53s6r"}]],re=s("log-in",wt);const Mt=[["path",{d:"m16 17 5-5-5-5",key:"1bji2h"}],["path",{d:"M21 12H9",key:"dn1m92"}],["path",{d:"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4",key:"1uf3rs"}]],se=s("log-out",Mt);const Rt=[["rect",{width:"20",height:"14",x:"2",y:"3",rx:"2",key:"48i651"}],["line",{x1:"8",x2:"16",y1:"21",y2:"21",key:"1svkeh"}],["line",{x1:"12",x2:"12",y1:"17",y2:"21",key:"vw1qmm"}]],ae=s("monitor",Rt);const $t=[["path",{d:"M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z",key:"edeuup"}]],ce=s("mouse-pointer-2",$t);const Tt=[["polygon",{points:"6 3 20 12 6 21 6 3",key:"1oa8hb"}]],ue=s("play",Tt);const Nt=[["path",{d:"M12 2v10",key:"mnfbl"}],["path",{d:"M18.4 6.6a9 9 0 1 1-12.77.04",key:"obofu9"}]],ie=s("power",Nt);const At=[["path",{d:"M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8",key:"1357e3"}],["path",{d:"M3 3v5h5",key:"1xhq8a"}]],ye=s("rotate-ccw",At);const Ht=[["path",{d:"M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z",key:"1ffxy3"}],["path",{d:"m21.854 2.147-10.94 10.939",key:"12cjpa"}]],fe=s("send",Ht);const jt=[["rect",{width:"20",height:"8",x:"2",y:"2",rx:"2",ry:"2",key:"ngkwjq"}],["rect",{width:"20",height:"8",x:"2",y:"14",rx:"2",ry:"2",key:"iecqi9"}],["line",{x1:"6",x2:"6.01",y1:"6",y2:"6",key:"16zg32"}],["line",{x1:"6",x2:"6.01",y1:"18",y2:"18",key:"nzw8ys"}]],pe=s("server",jt);const St=[["path",{d:"M12.22 2h-.44a2 2 0 0 0-2 2v.18a2 2 0 0 1-1 1.73l-.43.25a2 2 0 0 1-2 0l-.15-.08a2 2 0 0 0-2.73.73l-.22.38a2 2 0 0 0 .73 2.73l.15.1a2 2 0 0 1 1 1.72v.51a2 2 0 0 1-1 1.74l-.15.09a2 2 0 0 0-.73 2.73l.22.38a2 2 0 0 0 2.73.73l.15-.08a2 2 0 0 1 2 0l.43.25a2 2 0 0 1 1 1.73V20a2 2 0 0 0 2 2h.44a2 2 0 0 0 2-2v-.18a2 2 0 0 1 1-1.73l.43-.25a2 2 0 0 1 2 0l.15.08a2 2 0 0 0 2.73-.73l.22-.39a2 2 0 0 0-.73-2.73l-.15-.08a2 2 0 0 1-1-1.74v-.5a2 2 0 0 1 1-1.74l.15-.09a2 2 0 0 0 .73-2.73l-.22-.38a2 2 0 0 0-2.73-.73l-.15.08a2 2 0 0 1-2 0l-.43-.25a2 2 0 0 1-1-1.73V4a2 2 0 0 0-2-2z",key:"1qme2f"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]],le=s("settings",St);const bt=[["path",{d:"M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z",key:"oel41y"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],de=s("shield-check",bt);const Pt=[["path",{d:"M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z",key:"r04s7s"}]],he=s("star",Pt);const Lt=[["path",{d:"M12 19h8",key:"baeox8"}],["path",{d:"m4 17 6-6-6-6",key:"1yngyt"}]],_e=s("terminal",Lt);const Ot=[["path",{d:"M3 6h18",key:"d0wm0j"}],["path",{d:"M19 6v14c0 1-1 2-2 2H7c-1 0-2-1-2-2V6",key:"4alrt4"}],["path",{d:"M8 6V4c0-1 1-2 2-2h4c1 0 2 1 2 2v2",key:"v07s0e"}],["line",{x1:"10",x2:"10",y1:"11",y2:"17",key:"1uufr5"}],["line",{x1:"14",x2:"14",y1:"11",y2:"17",key:"xtxkd"}]],ke=s("trash-2",Ot);const qt=[["path",{d:"M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2",key:"1yyitq"}],["path",{d:"M16 3.128a4 4 0 0 1 0 7.744",key:"16gr8j"}],["path",{d:"M22 21v-2a4 4 0 0 0-3-3.87",key:"kshegd"}],["circle",{cx:"9",cy:"7",r:"4",key:"nufk8"}]],ve=s("users",qt);const zt=[["path",{d:"M11 4.702a.705.705 0 0 0-1.203-.498L6.413 7.587A1.4 1.4 0 0 1 5.416 8H3a1 1 0 0 0-1 1v6a1 1 0 0 0 1 1h2.416a1.4 1.4 0 0 1 .997.413l3.383 3.384A.705.705 0 0 0 11 19.298z",key:"uqj9uw"}],["path",{d:"M16 9a5 5 0 0 1 0 6",key:"1q6k2b"}],["path",{d:"M19.364 18.364a9 9 0 0 0 0-12.728",key:"ijwkga"}]],me=s("volume-2",zt);const It=[["path",{d:"M12 20h.01",key:"zekei9"}],["path",{d:"M2 8.82a15 15 0 0 1 20 0",key:"dnpr2z"}],["path",{d:"M5 12.859a10 10 0 0 1 14 0",key:"1x1e6c"}],["path",{d:"M8.5 16.429a5 5 0 0 1 7 0",key:"1bycff"}]],Ee=s("wifi",It);const Ut=[["path",{d:"M18 6 6 18",key:"1bl5f8"}],["path",{d:"m6 6 12 12",key:"d8bk6v"}]],ge=s("x",Ut);export{Yt as A,Dt as B,Gt as C,Xt as D,Qt as E,te as F,ne as L,ae as M,ue as P,ye as R,le as S,_e as T,ve as U,me as V,Ee as W,ge as X,E as a,ce as b,re as c,se as d,pe as e,de as f,Kt as g,Jt as h,ee as i,Ft as j,ke as k,he as l,Vt as m,Zt as n,Bt as o,Wt as p,oe as q,nt as r,ie as s,fe as t};