UNPKG

@kvaser/canking-api

Version:

CanKing API to communicate with the CanKing service using Node.js.

2 lines (1 loc) 13.9 kB
"use strict";const M=require("react/compiler-runtime"),L=require("react"),F=require("./models.js"),J=require("long"),h=require("uuid"),N=require("./ipc.js"),x=require("./status_params.js"),Y=(t,r,...e)=>{let s=r;for(let n=0;n<e.length;n+=1){const o=`{${n}}`;if(s.indexOf(o)!==-1){const i=e[n];s=typeof i=="string"?s.replace(o,i):s.replace(o,i.toLocaleString(t))}}return s};class U{language;strings;constructor(r,e){this.language=r,this.strings=e}getString(r,...e){if(this.strings&&r in this.strings){const s=this.strings[r];return e.length>0?Y(this.language,s,...e):s}return r}}const Z=window?.matchMedia?window.matchMedia("(prefers-color-scheme: dark)").matches:!1,I=Object.assign({},F.defaultUserSettings,{theme:Z?"dark":"light"}),z=L.createContext(I),ee=L.createContext([[],()=>{}]),T=()=>L.useContext(z),te=()=>T().useHexNumericBase?16:10,re=()=>T().maxDataBytes,se=()=>T().language,ne=()=>{const t=M.c(3),r=T();let e;return t[0]!==r.language||t[1]!==r.strings?(e=new U(r.language,r.strings),t[0]=r.language,t[1]=r.strings,t[2]=e):e=t[2],e},oe=()=>T().recentProjectFiles,$=N.getLogger("DataProviders"),w=window.electron??F.electronApiFake,C=new Map;function ae(t){return C.has(t)||C.set(t,new Map),C.get(t)}function b(t,r,e,s){const n=ae(t);if(n.has(r))$.warn("The callback has already been added as listener to this event!");else{const o=(i,c)=>s(c),a=w.ipcRenderer.on(e,o);n.set(r,{remover:a,listener:o})}}function ie(t,r){const e=C.get(t),s=e?.get(r);s?(s.remover(),e.delete(r)):$.warn("The callback has not been added as listener to this event!")}async function g(t,r,e,s){switch(r){case"devices-changed":return b(r,t,"dm-devices-changed",e),w.ipcRenderer.invoke("dm-get-devices",!1);case"user-settings-changed":return b(r,t,"user-settings-changed",e),w.ipcRenderer.invoke("main-get-user-settings");case"new-log-messages":return b(r,t,"new-log-messages",e),Promise.resolve();case"online-status-changed":return b(r,t,"mm-is-online-changed",e),w.ipcRenderer.invoke("mm-get-online-status");case"periodic-trans-started":return b(r,t,"mm-periodic-trans-started",e),Promise.resolve("");case"periodic-trans-stopped":return b(r,t,"mm-periodic-trans-stopped",e),Promise.resolve("");case"new-measurement-data":return b(r,t,"mm-new-measurement-data",e),(s?.numberOfHistoryFrames??0)>0?w.ipcRenderer.invoke("mm-get-measurement-data-before-timestamp",Number.MAX_SAFE_INTEGER,s.numberOfHistoryFrames):Promise.resolve([]);case"new-measurement-status":return b(r,t,"mm-new-measurement-status",e),w.ipcRenderer.invoke("mm-get-node-statuses");case"meas-setup-changed":return b(r,t,"project-meas-setup-changed",e),w.ipcRenderer.invoke("prj-get-meas-setup");case"workspace-panes-changed":return b(r,t,"project-workspace-panes-changed",e),w.ipcRenderer.invoke("prj-get-workspace-panes")}return Promise.reject(new Error("Invalid event type"))}const f=async(t,r)=>{ie(r,t)},d=N.getLogger("DataStores"),ue=100;function E(t,r){let e=t(),s;const n=new Set,o=a=>{e=typeof a=="function"?a(e):a,n.forEach(i=>i())};return{getSnapshot:()=>e,subscribe:a=>(n.add(a),n.size===1&&(s=r(o)),()=>{n.delete(a),n.size===0&&(s?.(),s=void 0,e=t())})}}function D(t){return L.useSyncExternalStore(t.subscribe,t.getSnapshot,t.getSnapshot)}const ce=()=>({devices:null,isLoaded:!1,error:null}),le=E(ce,t=>{const r=new AbortController,e=h.v4(),s=n=>{try{if(r.signal.aborted)return;t({devices:n,isLoaded:!0,error:null})}catch(o){d.error("DevicesStore",o),t({devices:null,isLoaded:!0,error:o instanceof Error?o:new Error("Unknown error")})}};return g(e,"devices-changed",s).then(s).catch(n=>{r.signal.aborted||(d.error("Failed to add devices listener:",n),t({devices:null,isLoaded:!0,error:n instanceof Error?n:new Error("Unknown error")}))}),()=>{r.abort(),f(e,"devices-changed")}}),de=()=>({measurementSetup:null,isLoaded:!1,error:null}),me=E(de,t=>{const r=new AbortController,e=h.v4(),s=n=>{try{if(r.signal.aborted)return;t({measurementSetup:n,isLoaded:!0,error:null})}catch(o){d.error("MeasurementSetupStore",o),t({measurementSetup:null,isLoaded:!0,error:o instanceof Error?o:new Error("Unknown error")})}};return g(e,"meas-setup-changed",s).then(s).catch(n=>{r.signal.aborted||(d.error("Failed to add measurement setup listener:",n),t({measurementSetup:null,isLoaded:!0,error:n instanceof Error?n:new Error("Unknown error")}))}),()=>{r.abort(),f(e,"meas-setup-changed")}}),Se=()=>({nodeStatuses:null,isLoaded:!1,error:null}),ge=E(Se,t=>{const r=new AbortController,e=h.v4(),s=n=>{try{if(r.signal.aborted)return;t({nodeStatuses:n,isLoaded:!0,error:null})}catch(o){d.error("MeasurementStatusStore",o),t({nodeStatuses:null,isLoaded:!0,error:o instanceof Error?o:new Error("Unknown error")})}};return g(e,"new-measurement-status",s).then(s).catch(n=>{r.signal.aborted||(d.error("Failed to add measurement status listener:",n),t({nodeStatuses:null,isLoaded:!0,error:n instanceof Error?n:new Error("Unknown error")}))}),()=>{r.abort(),f(e,"new-measurement-status")}}),fe=()=>({onlineStatus:null,isLoaded:!1,error:null}),pe=E(fe,t=>{const r=new AbortController,e=h.v4(),s=n=>{try{if(r.signal.aborted)return;t({onlineStatus:n,isLoaded:!0,error:null})}catch(o){d.error("OnlineStatusStore",o),t({onlineStatus:null,isLoaded:!0,error:o instanceof Error?o:new Error("Unknown error")})}};return g(e,"online-status-changed",s).then(s).catch(n=>{r.signal.aborted||(d.error("Failed to add online status listener:",n),t({onlineStatus:null,isLoaded:!0,error:n instanceof Error?n:new Error("Unknown error")}))}),()=>{r.abort(),f(e,"online-status-changed")}}),he=E(()=>[],t=>{const r=new AbortController,e=h.v4(),s=h.v4(),n=a=>{try{if(r.signal.aborted)return;t(i=>[...i,a])}catch(i){d.error("RunningPeriodicTransmissionsStore - started",i)}},o=a=>{try{if(r.signal.aborted)return;t(i=>{const c=i.findIndex(S=>S===a);if(c===-1)return i;const m=[...i];return m.splice(c,1),m})}catch(i){d.error("RunningPeriodicTransmissionsStore - stopped",i)}};return g(e,"periodic-trans-started",n),g(s,"periodic-trans-stopped",o),()=>{r.abort(),f(e,"periodic-trans-started"),f(s,"periodic-trans-stopped")}}),ve=E(()=>[],t=>{const r=new AbortController,e=h.v4(),s=new F.DataBuffer(1e3);return g(e,"new-log-messages",o=>{try{if(r.signal.aborted)return;o===null?s.clear():s.push(...o),t(Array.from(s))}catch(a){d.error("LogMessagesStore",a)}}).catch(o=>{r.signal.aborted||d.error("Failed to add log messages listener:",o)}),()=>{r.abort(),f(e,"new-log-messages")}}),be=()=>({subscribedData:new Map}),Me=E(be,t=>{const r=new AbortController,e=h.v4(),s=n=>{try{if(r.signal.aborted)return;const o=new Map;n.forEach(a=>{const i=F.deserializeFrame(a),c=F.calculateSubscriptionKeyFromFrame(i);o.has(c)||o.set(c,[]),o.get(c)?.push(i)}),t({subscribedData:o})}catch(o){d.error("MeasurementSubscriptionStore",o)}};return g(e,"new-measurement-data",s).then(s).catch(n=>{r.signal.aborted||d.error("Failed to add measurement data listener:",n)}),()=>{r.abort(),f(e,"new-measurement-data")}}),we=()=>({scrollData:[],fixedPositionData:[]}),Le=E(we,t=>{const r=new AbortController,e=h.v4(),s=h.v4(),n=new F.DataBuffer(500),o=new Map;let a;const i=()=>{a=void 0,t({scrollData:Array.from(n),fixedPositionData:Array.from(o.values())})},c=(u=!1)=>{if(a!==void 0){if(!u)return;clearTimeout(a),a=void 0}if(u){i();return}a=setTimeout(i,ue)},m=u=>{try{if(r.signal.aborted)return;u.length===0?(n.clear(),o.clear()):(n.push(...u.slice(Math.max(0,u.length-500))),u.forEach(l=>{o.set(l.fixedPosIdentifier??"",l)})),c(u.length===0)}catch(l){d.error("MeasurementTraceStore",l)}},S=u=>{try{if(r.signal.aborted||!u.isOnline)return;n.clear(),o.clear(),c(!0)}catch(l){d.error("MeasurementTraceStore online-status-changed",l)}};return g(e,"new-measurement-data",m,{numberOfHistoryFrames:500}).then(m).catch(u=>{r.signal.aborted||d.error("Failed to add measurement trace listener:",u)}),g(s,"online-status-changed",S),()=>{r.abort(),a!==void 0&&clearTimeout(a),f(e,"new-measurement-data"),f(s,"online-status-changed")}}),Fe=()=>D(le),Ee=()=>D(me),De=()=>D(ge),B=()=>D(pe),Pe=()=>D(he),Te=()=>D(ve),xe=()=>D(Me),Ae=()=>D(Le),Ce=N.getLogger("hooks"),R=new WeakMap;function q(t){const r=R.get(t);if(r)return r;const e=F.deserializeFrame(t);return R.set(t,e),e}function k(t,r){return r===void 0||r<=0?!0:new J(t.timeUsParts.low,t.timeUsParts.high,t.timeUsParts.unsigned).greaterThanOrEqual(r)}function Ne(t){return{includeScrollModeFrames:t?.includeScrollModeFrames??!0,includeFixedPositionModeFrames:t?.includeFixedPositionModeFrames??!0}}function y(t,r){const e=M.c(13),s=Ae();let n;e[0]!==r?(n=Ne(r),e[0]=r,e[1]=n):n=e[1];const{includeScrollModeFrames:o,includeFixedPositionModeFrames:a}=n;let i;e[2]!==o||e[3]!==s.scrollData||e[4]!==t?(i=o?s.scrollData.filter(l=>k(l,t)).map(_e):[],e[2]=o,e[3]=s.scrollData,e[4]=t,e[5]=i):i=e[5];const c=i;let m;e[6]!==a||e[7]!==s.fixedPositionData||e[8]!==t?(m=a?s.fixedPositionData.filter(l=>k(l,t)).map(ye):[],e[6]=a,e[7]=s.fixedPositionData,e[8]=t,e[9]=m):m=e[9];const S=m;let u;return e[10]!==S||e[11]!==c?(u={scrollModeFrames:c,fixedPositionModeFrames:S},e[10]=S,e[11]=c,e[12]=u):u=e[12],u}function ye(t){return q(t)}function _e(t){return q(t)}const Oe=2e3,Re={language:"en",sources:[],dataProcessors:[],targets:[]};function ke(t,r){return t.filter(e=>!e.supportedProtocols||e.supportedProtocols.length===0?!0:e.supportedProtocols.some(s=>r.includes(s)))}function j(t){const r=new Set;return t?.forEach(e=>{e.channelSettings?.protocols&&e.channelSettings.protocols.forEach(s=>r.add(s))}),r.size===0&&r.add("CAN"),Array.from(r).sort()}function K(t,r){const e=[...t,...r];return Array.from(new Map(e.map(n=>[n.timeUs.toString(),n])).values())}function Ue(t,r){for(const[e,s]of r)if(t.has(e)){const n=t.get(e);t.set(e,K(n,s))}else t.set(e,[...s]);return t}function V(t){if(!t)return x.StatusLevel.STATUS_LEVEL_NONE;const r=Number(t.busOnStatus),e=Number(t.errorStatus),s=Number(t.overrunStatus);return Math.max(isNaN(r)?x.StatusLevel.STATUS_LEVEL_NONE:r,isNaN(e)?x.StatusLevel.STATUS_LEVEL_NONE:e,isNaN(s)?x.StatusLevel.STATUS_LEVEL_NONE:s)}function W(t){const r=t.filter(e=>e.busStatus).map(e=>V(e.busStatus));return r.length===0?x.StatusLevel.STATUS_LEVEL_NONE:Math.max(...r)}const H=()=>Ee(),_=()=>H().measurementSetup??Re,Ie=()=>{const t=M.c(2),r=_();let e;return t[0]!==r.sources?(e=j(r.sources),t[0]=r.sources,t[1]=e):e=t[1],e},ze=t=>{const r=M.c(5);let e;r[0]===Symbol.for("react.memo_cache_sentinel")?(e=[],r[0]=e):e=r[0];const[s,n]=L.useState(e),o=_();let a,i;return r[1]!==t||r[2]!==o.sources?(a=()=>{const c=new AbortController;return N.getFrameDefinitions(t).then(m=>{if(c.signal.aborted)return;const S=[];for(let u=0;u<m.length;u=u+1,u){let l;const p=m[u];if(p.messageQualifiedName!==void 0){const A=p.messageQualifiedName.indexOf(".");if(A!==-1){const P=p.messageQualifiedName.substring(0,A);l=S.find(v=>v.name===P),l||(l={name:P,sources:p.sourceIdentifiers.map(v=>({identifier:v,name:o.sources.find(G=>G.baseNode?.identifier===v)?.baseNode?.name??v})),messages:[]},S.push(l))}}l&&l.messages.push(p)}return n(S),S}),()=>{c.abort()}},i=[t,o.sources],r[1]=t,r[2]=o.sources,r[3]=a,r[4]=i):(a=r[3],i=r[4]),L.useEffect(a,i),s},Q=()=>De(),O=()=>{const t=M.c(2),r=Q();let e;return t[0]!==r.nodeStatuses?(e=r.nodeStatuses??[],t[0]=r.nodeStatuses,t[1]=e):e=t[1],e},$e=t=>{const r=M.c(3),e=O();let s;return r[0]!==t||r[1]!==e?(s=e.find(n=>n.nodeId===t)??null,r[0]=t,r[1]=e,r[2]=s):s=r[2],s},Be=()=>{const t=M.c(2),r=O();let e;return t[0]!==r?(e=W(r),t[0]=r,t[1]=e):e=t[1],e},X=()=>B(),qe=()=>X()?.onlineStatus?.isOnline===!0,je=()=>Pe(),Ke=(t,r)=>{const e=M.c(5);let s;e[0]===Symbol.for("react.memo_cache_sentinel")?(s=[],e[0]=s):s=e[0];const[n,o]=L.useState(s);let a,i;return e[1]!==t||e[2]!==r?(a=()=>{const c=new AbortController,m=u=>{if(c.signal.aborted)return;const l=u.map(Qe);o(p=>{const A=p.map(Xe),P=l.filter(v=>!A.includes(v.hashCode));if(r){const v=P.filter(r);return p.length===0&&v.length===0?p:v}return p.length===0&&P.length===0?p:P})},S=h.v4();return g(S,"new-measurement-data",m,{numberOfHistoryFrames:t}).then(m).catch(u=>{c.signal.aborted||Ce.error("Failed to add new-measurement-data listener:",u)}),()=>{f(S,"new-measurement-data"),c.abort()}},i=[t,r],e[1]=t,e[2]=r,e[3]=a,e[4]=i):(a=e[3],i=e[4]),L.useEffect(a,i),n},Ve=t=>{const r=M.c(1);let e;return r[0]===Symbol.for("react.memo_cache_sentinel")?(e={includeScrollModeFrames:!0,includeFixedPositionModeFrames:!1},r[0]=e):e=r[0],y(t,e).scrollModeFrames},We=t=>{const r=M.c(1);let e;return r[0]===Symbol.for("react.memo_cache_sentinel")?(e={includeScrollModeFrames:!1,includeFixedPositionModeFrames:!0},r[0]=e):e=r[0],y(t,e).fixedPositionModeFrames},He=(t,r)=>y(t,r);function Qe(t){return F.deserializeFrame(t)}function Xe(t){return t.hashCode}exports.LocalizedStrings=U;exports.MAX_HISTORICAL_FRAMES=Oe;exports.UserSettingsContext=z;exports.WorkspacePanesContext=ee;exports.addEventListener=g;exports.calculateOverallStatusLevel=W;exports.calculateOverallStatusLevelFromBusStatus=V;exports.defaultUserSettingsWithTheme=I;exports.extractProtocolsFromSources=j;exports.filterLogFileFormats=ke;exports.mergeAndDeduplicateFrames=K;exports.mergeFrameDataMaps=Ue;exports.removeEventListener=f;exports.useAvailableProtocols=Ie;exports.useCombinedMeasurementTraceData=He;exports.useDevicesStoreState=Fe;exports.useFixedPositionModeMeasurementData=We;exports.useIsOnline=qe;exports.useLanguage=se;exports.useLocalizedStrings=ne;exports.useLogMessagesStore=Te;exports.useMaxDataBytes=re;exports.useMeasurementSetup=_;exports.useMeasurementSetupState=H;exports.useMeasurementStatus=O;exports.useMeasurementStatusState=Q;exports.useMeasurementSubscriptionStoreState=xe;exports.useMessageDatabases=ze;exports.useNewMeasurementData=Ke;exports.useNodeStatus=$e;exports.useNumericRadix=te;exports.useOnlineStatus=X;exports.useOnlineStatusStoreState=B;exports.useOverallStatusLevel=Be;exports.useRecentProjectFiles=oe;exports.useRunningPeriodicTransmissions=je;exports.useScrollModeMeasurementData=Ve;exports.useUserSettings=T;