@node-i3x/demo-embedded 0.5.4 → 0.7.1
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.
- package/dist/client.js +8 -8
- package/dist/client.js.map +1 -1
- package/dist/index.js +12 -10
- package/dist/index.js.map +1 -1
- package/package.json +6 -5
package/dist/client.js
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{parseArgs as q}from"util";var{values:j}=q({options:{url:{type:"string",default:process.env.
|
|
2
|
+
import{parseArgs as q}from"util";var{values:j}=q({options:{url:{type:"string",default:process.env.NODE_I3X_URL??"http://127.0.0.1:8080"}}}),A=j.url,b=A,c="\x1B",n={clear:`${c}[2J${c}[H`,home:`${c}[H`,hideCursor:`${c}[?25l`,showCursor:`${c}[?25h`,bold:`${c}[1m`,dim:`${c}[2m`,reset:`${c}[0m`,white:`${c}[97m`,gray:`${c}[90m`,cyan:`${c}[96m`,green:`${c}[92m`,red:`${c}[91m`,yellow:`${c}[93m`,blue:`${c}[94m`,magenta:`${c}[95m`,bgDark:`${c}[48;5;236m`,bgCard:`${c}[48;5;238m`,bgHeader:`${c}[48;5;24m`};async function h(e){let t=await fetch(`${b}${e}`);if(!t.ok)throw new Error(`GET ${e} \u2192 ${t.status}`);return t.json()}async function p(e,t){let s=await fetch(`${b}${e}`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(t)});if(!s.ok)throw new Error(`POST ${e} \u2192 ${s.status}`);return s.json()}var C=new Map,l=[],m="",f=0,R=0,S=0,P="",g="",w=44;function E(e){return`\u250C${"\u2500".repeat(e-2)}\u2510`}function O(e){return`\u251C${"\u2500".repeat(e-2)}\u2524`}function k(e){return`\u2514${"\u2500".repeat(e-2)}\u2518`}function I(e,t){let s=e.replace(/\x1b\[[0-9;]*m/g,""),r=Math.max(0,t-4-s.length);return`\u2502 ${e}${" ".repeat(r)} \u2502`}async function L(){process.stdout.write(n.clear),process.stdout.write(n.hideCursor),process.stdout.write(`
|
|
3
3
|
${n.cyan}${n.bold}\u{1F4E1} Discovering i3X model...${n.reset}
|
|
4
4
|
|
|
5
5
|
`),P=(await h("/v1/info")).result.serverName;let t=await h("/v1/objects?root=true"),s=["Locations","Server","Aliases"],r=t.result.filter(o=>!s.includes(o.displayName));process.stdout.write(` Found ${r.length} user-defined root(s)
|
|
6
6
|
`);let i=[];for(let o of r)await T(o,i);for(let o of l)process.stdout.write(` \u{1F4E6} ${o.name} (${o.properties.length} props)
|
|
7
|
-
`);return i}async function T(e,t){if(C.set(e.elementId,e.displayName),!e.isComposition)return;t.push(e.elementId);let s=await p("/v1/objects/related",{elementIds:[e.elementId]});if(!s.results[0]?.success)return;let r=s.results[0]?.result.filter(a=>a.sourceRelationship==="HasComponent"),i=r.filter(a=>a.object.isComposition),o=r.filter(a=>!a.object.isComposition);if(o.length>0){let a=D(e.displayName),d={id:e.elementId,name:e.displayName,icon:a,properties:o.map(u=>(C.set(u.object.elementId,u.object.displayName),{id:u.object.elementId,name:u.object.displayName,value:"\u2014",quality:"Unknown",timestamp:"",changed:!1}))};l.push(d)}for(let a of i)await T(a.object,t)}function D(e){let t=e.toLowerCase();return t.includes("pump")?"\u{1F4A7}":t.includes("heater")?"\u{1F525}":t.includes("conveyor")?"\u{1F3ED}":t.includes("factory")?"\u{1F3D7}\uFE0F":"\u{1F4E6}"}async function F(){let e=l.map(s=>s.id);if(e.length===0)return;let t=await p("/v1/objects/value",{elementIds:e,maxDepth:3});for(let s of t.results){if(!s.success||!s.result.isComposition||!s.result.components)continue;let r=l.find(i=>i.id===s.elementId);if(r)for(let i of r.properties){let o=s.result.components[i.id];o&&(i.value=o.value,i.quality=o.quality,i.timestamp=o.timestamp)}}}async function V(){let e=l.map(s=>s.id);if(e.length===0)return;m=(await p("/v1/subscriptions",{clientId:"dashboard-client",displayName:"Dashboard Monitor"})).result.subscriptionId,await p("/v1/subscriptions/register",{subscriptionId:m,elementIds:e,maxDepth:3})}async function M(){try{let t=(await p("/v1/subscriptions/sync",{subscriptionId:m,
|
|
8
|
-
`))}function x(e){let t=[],s=n.reset,r=w;t.push(`${n.dim}${
|
|
9
|
-
\u274C Cannot reach i3X server at ${b}`),console.error(` Start the demo first:
|
|
7
|
+
`);return i}async function T(e,t){if(C.set(e.elementId,e.displayName),!e.isComposition)return;t.push(e.elementId);let s=await p("/v1/objects/related",{elementIds:[e.elementId]});if(!s.results[0]?.success)return;let r=s.results[0]?.result.filter(a=>a.sourceRelationship==="HasComponent"),i=r.filter(a=>a.object.isComposition),o=r.filter(a=>!a.object.isComposition);if(o.length>0){let a=D(e.displayName),d={id:e.elementId,name:e.displayName,icon:a,properties:o.map(u=>(C.set(u.object.elementId,u.object.displayName),{id:u.object.elementId,name:u.object.displayName,value:"\u2014",quality:"Unknown",timestamp:"",changed:!1}))};l.push(d)}for(let a of i)await T(a.object,t)}function D(e){let t=e.toLowerCase();return t.includes("pump")?"\u{1F4A7}":t.includes("heater")?"\u{1F525}":t.includes("conveyor")?"\u{1F3ED}":t.includes("factory")?"\u{1F3D7}\uFE0F":"\u{1F4E6}"}async function F(){let e=l.map(s=>s.id);if(e.length===0)return;let t=await p("/v1/objects/value",{elementIds:e,maxDepth:3});for(let s of t.results){if(!s.success||!s.result.isComposition||!s.result.components)continue;let r=l.find(i=>i.id===s.elementId);if(r)for(let i of r.properties){let o=s.result.components[i.id];o&&(i.value=o.value,i.quality=o.quality,i.timestamp=o.timestamp)}}}async function V(){let e=l.map(s=>s.id);if(e.length===0)return;m=(await p("/v1/subscriptions",{clientId:"dashboard-client",displayName:"Dashboard Monitor"})).result.subscriptionId,await p("/v1/subscriptions/register",{subscriptionId:m,elementIds:e,maxDepth:3})}async function M(){try{let t=(await p("/v1/subscriptions/sync",{subscriptionId:m,lastSequenceNumber:f})).result;if(!t||t.length===0)return;S+=t.length,R++;for(let s of l)for(let r of s.properties)r.changed=!1;for(let s of t){if(s.sequenceNumber>f&&(f=s.sequenceNumber),!s.value?.isComposition||!s.value?.components)continue;let r=l.find(i=>i.id===s.elementId);if(r)for(let[i,o]of Object.entries(s.value.components)){let a=r.properties.find(d=>d.id===i);a&&(a.value=o.value,a.quality=o.quality,a.timestamp=o.timestamp,a.changed=!0)}}g=""}catch(e){g=String(e)}}function v(){let e=[],t=n.reset,s=new Date().toLocaleTimeString();e.push(""),e.push(` ${n.bgHeader}${n.white}${n.bold} \u{1F4E1} i3X Dashboard \u2014 ${P} ${t} ${n.dim}${s}${t}`),e.push("");let r=[];r.push(`${n.green}\u25CF Connected${t}`),r.push(`${n.dim}Updates: ${R}${t}`),r.push(`${n.dim}Changes: ${S}${t}`),r.push(`${n.dim}Seq: ${f}${t}`),e.push(` ${r.join(" \u2502 ")}`),e.push("");for(let i=0;i<l.length;i+=2){let o=x(l[i]),a=i+1<l.length?x(l[i+1]):null,d=Math.max(o.length,a?.length??0);for(let u=0;u<d;u++){let y=o[u]??" ".repeat(w),$=a?a[u]??" ".repeat(w):"";e.push(` ${y} ${$}`)}e.push("")}g&&e.push(` ${n.red}\u26A0 ${g}${t}`),e.push(` ${n.dim}Press Ctrl+C to stop${t}`),e.push(""),process.stdout.write(n.home+e.join(`
|
|
8
|
+
`))}function x(e){let t=[],s=n.reset,r=w;t.push(`${n.dim}${E(r)}${s}`);let i=`${e.icon} ${n.bold}${n.cyan}${e.name}${s}`;t.push(`${n.dim}${I(i,r)}${s}`),t.push(`${n.dim}${O(r)}${s}`);for(let o of e.properties){let a=U(o.name),{text:d,color:u}=B(o.value,o.name),$=`${o.changed?n.yellow:n.dim}${a.padEnd(18)}${s} ${u}${d}${s}`;t.push(`${n.dim}${I($,r)}${s}`)}return t.push(`${n.dim}${k(r)}${s}`),t}function U(e){return e.replace(" (\xB0C)"," \xB0C").replace(" (bar)"," bar").replace(" (L/min)"," L/min").replace(" (m/s)"," m/s").replace(" (%)"," %")}function B(e,t){if(typeof e=="boolean")return t.toLowerCase().includes("heater")?e?{text:"\u{1F525} ON",color:n.red}:{text:" OFF",color:n.gray}:e?{text:"\u25CF ON",color:n.green}:{text:"\u25CB OFF",color:n.gray};if(typeof e=="number"){let s=t.toLowerCase(),r=n.white;return s.includes("temperature")||s.includes("temp")?e>180?r=n.red:e>100?r=n.yellow:r=n.green:s.includes("pressure")?e>5.5?r=n.red:e>4.5?r=n.yellow:r=n.green:s.includes("power")&&(e>80?r=n.red:e>0?r=n.yellow:r=n.gray),{text:Number.isInteger(e)?e.toLocaleString():e.toFixed(2),color:r}}return{text:String(e??"\u2014"),color:n.white}}async function H(){try{await h("/health")}catch(r){console.error(`
|
|
9
|
+
\u274C Cannot reach i3X server at ${b}: ${r.message}`),console.error(` Start the demo first:
|
|
10
10
|
npm run demo -w packages/demo-embedded
|
|
11
|
-
`),process.exit(1)}let e=await
|
|
11
|
+
`),process.exit(1)}let e=await L();process.stdout.write(`
|
|
12
12
|
Reading initial values...
|
|
13
13
|
`),await F(),process.stdout.write(` Creating subscription...
|
|
14
14
|
`),await V(),process.stdout.write(` \u2705 Monitoring ${l.length} assets
|
|
15
15
|
|
|
16
|
-
`),await
|
|
16
|
+
`),await N(1e3),process.stdout.write(n.clear),process.stdout.write(n.hideCursor);let t=async()=>{if(process.stdout.write(n.showCursor),process.stdout.write(`
|
|
17
17
|
|
|
18
|
-
`),m)try{await p("/v1/subscriptions/delete",{subscriptionIds:[m]})}catch{}console.log(` Subscription cleaned up. Bye!
|
|
19
|
-
`),process.exit(0)};process.on("SIGINT",()=>{t()}),process.on("SIGTERM",()=>{t()}),v();let s=0;for(;s<600;)await
|
|
18
|
+
`),m)try{await p("/v1/subscriptions/delete",{subscriptionIds:[m]})}catch(r){console.error(`best-effort subscription delete failed: ${r.message}`)}console.log(` Subscription cleaned up. Bye!
|
|
19
|
+
`),process.exit(0)};process.on("SIGINT",()=>{t()}),process.on("SIGTERM",()=>{t()}),v();let s=0;for(;s<600;)await N(2e3),s++,await M(),v();await t()}function N(e){return new Promise(t=>setTimeout(t,e))}H().catch(e=>{process.stdout.write(n.showCursor),console.error("Fatal:",e),process.exit(1)});
|
|
20
20
|
//# sourceMappingURL=client.js.map
|
package/dist/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/client.ts"],"mappings":";AAQA,OAAS,aAAAA,MAAiB,OAE1B,GAAM,CAAE,OAAQC,CAAW,EAAID,EAAU,CACvC,QAAS,CACP,IAAK,CAAE,KAAM,SAAU,QAAS,QAAQ,IAAI,
|
|
1
|
+
{"version":3,"sources":["../src/client.ts"],"mappings":"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","names":["parseArgs","clientArgs","BASE_URL","BASE","ESC","ansi","get","path","res","post","body","nameById","cards","subId","lastSeq","updateCount","totalChanges","serverName","lastError","CARD_W","boxTop","w","boxMid","boxBot","boxRow","content","visible","pad","discover","roots","skipNames","userRoots","r","compositeIds","root","walkTree","card","obj","related","children","childAssets","c","childProps","icon","iconForAsset","child","name","n","readInitialValues","ids","values","entry","prop","vqt","createSubscription","syncUpdates","updates","u","propId","p","err","render","lines","now","statusParts","left","renderCard","right","maxLines","row","l","rr","title","label","cleanLabel","valText","color","formatPropValue","line","v","main","_compositeIds","sleep","cleanup","iteration","ms"]}
|
package/dist/index.js
CHANGED
|
@@ -1,21 +1,23 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import{parseArgs as
|
|
2
|
+
import{parseArgs as z}from"util";import{consoleLogger as G,createI3xStack as X}from"@node-i3x/core";import{PseudoSessionDataSourceAdapter as q}from"@node-i3x/pseudo-session-connector";import{createApp as K}from"@node-i3x/rest-server";import{AccessLevelFlag as e,DataType as a,nodesets as Y,OPCUAServer as J,StatusCodes as Q,Variant as o}from"node-opcua";var{values:C}=z({options:{"rest-port":{type:"string",default:"8080"},"opcua-port":{type:"string",default:"48410"},"api-key":{type:"string"},"require-auth":{type:"boolean",default:!1},help:{type:"boolean",short:"h",default:!1}}});C.help&&(console.log(`
|
|
3
3
|
Usage: i3x-demo [options]
|
|
4
4
|
|
|
5
5
|
Options:
|
|
6
6
|
--rest-port <port> REST API port (default: 8080)
|
|
7
7
|
--opcua-port <port> OPC UA server port (default: 48410)
|
|
8
|
+
--api-key <key> API key for Bearer token auth
|
|
9
|
+
--require-auth Require Bearer token auth (exit if no api-key is configured)
|
|
8
10
|
-h, --help Show this help
|
|
9
|
-
`),process.exit(0));var
|
|
11
|
+
`),process.exit(0));var m=parseInt(C["rest-port"],10),L=parseInt(C["opcua-port"],10),n=250,Z=800,ee=1e3,ae=1200,te=15e3;function c(r,s,t){r.setValueFromSource(new o({dataType:s,value:t}))}async function re(){let r=new J({port:L,resourcePath:"/UA/EmbeddedDemo",nodeset_filename:[Y.standard],serverInfo:{applicationName:{text:"i3X Embedded Demo"}}});await r.initialize();let s=r.engine.addressSpace,t=s.getOwnNamespace(),l=t.addObject({organizedBy:s.rootFolder.objects,browseName:"SmartFactory",displayName:"Smart Factory"}),u=t.addObject({componentOf:l,browseName:"Pump",displayName:"Main Coolant Pump"}),p=t.addVariable({componentOf:u,browseName:"Temperature",displayName:"Temperature (\xB0C)",dataType:a.Double,minimumSamplingInterval:n,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new o({dataType:a.Double,value:35})}),v=t.addVariable({componentOf:u,browseName:"Pressure",displayName:"Pressure (bar)",dataType:a.Double,minimumSamplingInterval:n,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new o({dataType:a.Double,value:4.2})}),b=t.addVariable({componentOf:u,browseName:"FlowRate",displayName:"Flow Rate (L/min)",dataType:a.Double,minimumSamplingInterval:n,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new o({dataType:a.Double,value:120.5})}),R=t.addVariable({componentOf:u,browseName:"Running",displayName:"Running",dataType:a.Boolean,minimumSamplingInterval:n,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new o({dataType:a.Boolean,value:!0})}),i=t.addObject({componentOf:l,browseName:"Heater",displayName:"Process Heater"}),h=t.addVariable({componentOf:i,browseName:"HeaterOn",displayName:"Heater On/Off",dataType:a.Boolean,minimumSamplingInterval:n,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new o({dataType:a.Boolean,value:!0})}),d=t.addVariable({componentOf:i,browseName:"Temperature",displayName:"Temperature (\xB0C)",dataType:a.Double,minimumSamplingInterval:n,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new o({dataType:a.Double,value:180})}),A=t.addVariable({componentOf:i,browseName:"Setpoint",displayName:"Setpoint (\xB0C)",dataType:a.Double,minimumSamplingInterval:n,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new o({dataType:a.Double,value:200})}),N=t.addVariable({componentOf:i,browseName:"Power",displayName:"Power (%)",dataType:a.Double,minimumSamplingInterval:n,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new o({dataType:a.Double,value:85})}),P=t.addObject({componentOf:l,browseName:"Conveyor",displayName:"Assembly Conveyor"}),D=t.addVariable({componentOf:P,browseName:"Speed",displayName:"Speed (m/s)",dataType:a.Double,minimumSamplingInterval:n,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new o({dataType:a.Double,value:2.3})}),O=t.addVariable({componentOf:P,browseName:"ItemCount",displayName:"Items Processed",dataType:a.UInt32,minimumSamplingInterval:n,accessLevel:e.CurrentRead|e.CurrentWrite,userAccessLevel:e.CurrentRead|e.CurrentWrite,value:new o({dataType:a.UInt32,value:8452})}),U=[p,v,b,d,N,D,O];for(let y of U)y.accessLevel=e.CurrentRead|e.CurrentWrite|e.HistoryRead,y.userAccessLevel=e.CurrentRead|e.CurrentWrite|e.HistoryRead,s.installHistoricalDataNode(y,{maxOnlineValues:1e3});let j=[{variable:p,dataType:a.Double,base:35,jitter:1},{variable:v,dataType:a.Double,base:4.2,jitter:.5},{variable:b,dataType:a.Double,base:120.5,jitter:5},{variable:d,dataType:a.Double,base:180,jitter:3},{variable:N,dataType:a.Double,base:85,jitter:10},{variable:D,dataType:a.Double,base:2.3,jitter:.3},{variable:O,dataType:a.UInt32,base:8e3,jitter:50,isInt:!0}],_=Date.now(),x=3e4,k=36e5;for(let{variable:y,dataType:$,base:F,jitter:B,isInt:H}of j)for(let M=_-k;M<_;M+=x){let V=F+(Math.random()-.5)*B*2;H&&(V=Math.round(V)),y.setValueFromSource(new o({dataType:$,value:V}),Q.Good,new Date(M))}let E=35,S=4.2,T=120.5,w=!0,g=180,f=85,I=2.3,W=8452;return setInterval(()=>{E+=(Math.random()-.48)*.5,S+=(Math.random()-.5)*.1,S=Math.max(3,Math.min(6,S)),T+=(Math.random()-.5)*2,T=Math.max(100,Math.min(140,T)),c(p,a.Double,E),c(v,a.Double,S),c(b,a.Double,T)},Z),setInterval(()=>{w?(g+=(200-g)*.05+(Math.random()-.5)*.3,f=Math.max(0,Math.min(100,f+(Math.random()-.5)*5))):(g-=1.5+Math.random()*.5,f=0),c(d,a.Double,g),c(N,a.Double,f)},ee),setInterval(()=>{w=!w,c(h,a.Boolean,w)},te),setInterval(()=>{W+=Math.floor(Math.random()*3),I+=(Math.random()-.5)*.1,I=Math.max(1.5,Math.min(3.5,I)),c(D,a.Double,I),c(O,a.UInt32,W)},ae),await r.start(),{server:r,addressSpace:s}}async function oe(){let r=G;console.log(`
|
|
10
12
|
${"\u2550".repeat(60)}`),console.log(" \u{1F3ED} i3X Embedded Demo \u2014 PseudoSession Connector"),console.log("\u2550".repeat(60)),console.log(`
|
|
11
|
-
\u25B6 Starting OPC UA server...`);let{server:
|
|
12
|
-
\u25B6 Connecting i3X via PseudoSession...`);let
|
|
13
|
-
\u25B6 Building i3X model from AddressSpace...`);let i=await
|
|
14
|
-
${"\u2550".repeat(60)}`),console.log(` \u{1F680} i3X REST API ready at http://127.0.0.1:${
|
|
15
|
-
Try these:`),console.log(` curl http://localhost:${
|
|
16
|
-
OPC UA clients can also connect to opc.tcp://localhost:${
|
|
13
|
+
\u25B6 Starting OPC UA server...`);let{server:s,addressSpace:t}=await re();console.log(` \u2713 OPC UA binary endpoint at opc.tcp://localhost:${L}/UA/EmbeddedDemo`),console.log(`
|
|
14
|
+
\u25B6 Connecting i3X via PseudoSession...`);let l=new q(t,r);await l.connect(),console.log(" \u2713 Connected \u2014 zero-network, in-process");let{modelService:u,typeService:p,valueService:v,historyService:b,subscriptionService:R}=X(l,r,{publishIntervalMs:1e3,samplingIntervalMs:250});console.log(`
|
|
15
|
+
\u25B6 Building i3X model from AddressSpace...`);let i=await u.preloadModel();console.log(` \u2713 ${i.nodesById.size} nodes, ${i.rootIds.length} roots, ${i.propertyToSource.size} properties`),await p.preloadTypes();let h=C["api-key"];C["require-auth"]&&!h&&(r.error("require-auth is enabled but no api-key is configured."),process.exit(1));let d=await K({dataSource:l,modelService:u,typeService:p,valueService:v,historyService:b,subscriptionService:R,logger:r,apiKey:h});await d.listen({port:m,host:"127.0.0.1"}),console.log(`
|
|
16
|
+
${"\u2550".repeat(60)}`),console.log(` \u{1F680} i3X REST API ready at http://127.0.0.1:${m}`),console.log("\u2550".repeat(60)),console.log(`
|
|
17
|
+
Try these:`),console.log(` curl http://localhost:${m}/health`),console.log(` curl http://localhost:${m}/v1/info`),console.log(` curl http://localhost:${m}/v1/namespaces`),console.log(` curl -X POST http://localhost:${m}/v1/objects/list`),console.log(`
|
|
18
|
+
OPC UA clients can also connect to opc.tcp://localhost:${L}/UA/EmbeddedDemo`),console.log(`
|
|
17
19
|
Press Ctrl+C to stop.
|
|
18
|
-
`);let
|
|
20
|
+
`);let A=async()=>{console.log(`
|
|
19
21
|
|
|
20
|
-
Shutting down...`),await
|
|
22
|
+
Shutting down...`),await d.close(),await R.close(),await l.disconnect(),await s.shutdown(500),process.exit(0)};process.on("SIGINT",A),process.on("SIGTERM",A)}oe().catch(r=>{console.error("Fatal:",r),process.exit(1)});
|
|
21
23
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"mappings":";AAQA,OAAS,aAAAA,MAAiB,OAC1B,
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"mappings":"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","names":["parseArgs","consoleLogger","createI3xStack","PseudoSessionDataSourceAdapter","createApp","AccessLevelFlag","DataType","nodesets","OPCUAServer","StatusCodes","Variant","args","REST_PORT","OPCUA_PORT","MIN_SAMPLING_INTERVAL_MS","PUMP_SIM_INTERVAL_MS","HEATER_SIM_INTERVAL_MS","CONVEYOR_SIM_INTERVAL_MS","HEATER_TOGGLE_INTERVAL_MS","setVar","v","dataType","val","createSampleServer","server","addressSpace","ns","factory","pump","pumpTempVar","pumpPressVar","pumpFlowVar","_pumpRunVar","heater","heaterOnVar","heaterTempVar","_heaterSetpointVar","heaterPowerVar","conveyor","convSpeedVar","itemCountVar","historizedVars","seedConfig","now","SEED_INTERVAL_MS","SEED_DURATION_MS","variable","base","jitter","isInt","t","pumpTemp","pumpPressure","pumpFlowRate","heaterOn","heaterTemp","heaterPower","convSpeed","itemCount","main","logger","dataSource","modelService","typeService","valueService","historyService","subscriptionService","model","apiKey","app","shutdown","err"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@node-i3x/demo-embedded",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.7.1",
|
|
4
4
|
"license": "AGPL-3.0-or-later OR LicenseRef-Sterfive-Commercial",
|
|
5
5
|
"author": "Sterfive SAS <contact@sterfive.com> (https://sterfive.com)",
|
|
6
6
|
"homepage": "https://sterfive.com",
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
},
|
|
20
20
|
"exports": {
|
|
21
21
|
".": {
|
|
22
|
+
"source": "./src/index.ts",
|
|
22
23
|
"types": "./dist/index.d.ts",
|
|
23
24
|
"import": "./dist/index.js"
|
|
24
25
|
}
|
|
@@ -40,10 +41,10 @@
|
|
|
40
41
|
"client": "npx tsx src/client.ts"
|
|
41
42
|
},
|
|
42
43
|
"dependencies": {
|
|
43
|
-
"@node-i3x/core": "0.
|
|
44
|
-
"@node-i3x/opcua-connector": "0.
|
|
45
|
-
"@node-i3x/pseudo-session-connector": "0.
|
|
46
|
-
"@node-i3x/rest-server": "0.
|
|
44
|
+
"@node-i3x/core": "0.7.1",
|
|
45
|
+
"@node-i3x/opcua-connector": "0.7.1",
|
|
46
|
+
"@node-i3x/pseudo-session-connector": "0.7.1",
|
|
47
|
+
"@node-i3x/rest-server": "0.7.1",
|
|
47
48
|
"fastify": "^5.8.5",
|
|
48
49
|
"@fastify/cors": "^11.2.0",
|
|
49
50
|
"fastify-plugin": "^6.0.0",
|