@node-i3x/rest-server 0.8.0 → 0.8.2

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/index.js CHANGED
@@ -1,8 +1,43 @@
1
- import L from"@fastify/compress";import V from"@fastify/cors";import W from"fastify";function g(s,e){let n=new Error(e);return n.statusCode=s,n}function S(s){let e=s;throw g(e.statusCode??500,e.message)}function O(s){s.setErrorHandler((e,n,t)=>{let r=e.statusCode??500,i=r===400?"Bad Request":r===404?"Not Found":r===501?"Not Implemented":"Internal Server Error";t.status(r).send({success:!1,responseDetail:{title:i,status:r,detail:e.message}})})}var U=new Set(["/v1/info","/health","/ready"]);function E(s,e){e&&s.addHook("onRequest",async(n,t)=>{let r=n.url.split("?")[0];if(U.has(r)||r.startsWith("/docs")||r.endsWith("/openapi.json"))return;let i=n.headers.authorization;if(!i)return t.status(401).send({success:!1,responseDetail:{title:"Unauthorized",status:401,detail:"Missing or invalid Bearer token."}}),t;let[u,o]=i.split(" ",2);if(u?.toLowerCase()!=="bearer"||o!==e)return t.status(401).send({success:!1,responseDetail:{title:"Unauthorized",status:401,detail:"Missing or invalid Bearer token."}}),t})}import{randomUUID as A}from"crypto";import M from"fastify-plugin";async function _(s){s.addHook("onRequest",async(e,n)=>{let t=e.headers["x-request-id"]??A();n.header("x-request-id",t)})}var T=M(_,{name:"request-id"});async function w(s){let e=b(s);s.get("/health",async()=>{let n=e.getOpcuaStats?.();return{status:"ok",...n?{opcua:n}:{}}}),s.get("/ready",async(n,t)=>e.dataSource.isConnected()?{status:"ready"}:(t.status(503),{status:"not ready",message:"Data source not connected"}))}import{readFileSync as C}from"fs";function m(s){return{success:!0,result:s}}function l(s){return{success:s.every(n=>n.success),results:s}}function f(s,e){return{success:!0,elementId:s,result:e}}function I(s,e,n,t){return{success:!1,elementId:s,responseDetail:{title:t??"Error",status:e,detail:n}}}function R(s,e){return{elementId:s.id,displayName:s.name,typeElementId:s.type??"",parentId:e,isComposition:s.children.length>0,isExtended:!1,metadata:{typeNamespaceUri:s.namespaceUri??null,sourceTypeId:s.sourceNodeId??null}}}var F="0.6.0";try{F=JSON.parse(C(new URL("../../package.json",import.meta.url),"utf8")).version}catch{try{F=JSON.parse(C(new URL("../package.json",import.meta.url),"utf8")).version}catch{}}async function k(s){s.get("/v1/info",async()=>{let e=s.deps.readOnly??!1;return m({specVersion:"1.0",serverVersion:F,serverName:"node-i3x",vendor:{name:"Sterfive SAS",url:"https://sterfive.com",support:"contact@sterfive.com"},license:"AGPL-3.0-or-later OR LicenseRef-Sterfive-Commercial",capabilities:{query:{history:!e},update:{current:!e,history:!1},subscribe:{stream:!0}}})})}async function x(s){let e=b(s);s.get("/v1/namespaces",async()=>{let n=await e.dataSource.getNamespaces();return m(n.map(t=>({uri:t.uri,displayName:t.displayName})))})}async function N(s){let e=b(s),n=async(t,r)=>{if(e.readOnly)return r.status(501),r.send({success:!1,responseDetail:{title:"Not Implemented",status:501,detail:"Write operations are disabled (read-only mode)"}})};s.get("/v1/objects",async t=>{let r=await e.modelService.getOrBuildModel(),{typeElementId:i,root:u}=t.query,o;u?o=r.rootIds.map(a=>r.nodesById.get(a)).filter(a=>a!==void 0&&a.kind==="asset"):o=Array.from(r.nodesById.values()).filter(a=>a.kind==="asset"||a.kind==="property"),i&&(o=o.filter(a=>a.type===i));let c=o.map(a=>R(a,e.modelService.parentIdOf(r,a.id)));return m(c)}),s.post("/v1/objects/list",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}}}}}},async t=>{let{elementIds:r}=t.body,i=await e.modelService.getOrBuildModel(),u=r.map(o=>{let c=e.modelService.findNode(i,o);return c?f(o,R(c,e.modelService.parentIdOf(i,c.id))):I(o,404,"Not found")});return l(u)}),s.post("/v1/objects/related",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}},relationshipType:{type:["string","null"]},includeMetadata:{type:"boolean"}}}}},async t=>{let{elementIds:r}=t.body,i=await e.modelService.getOrBuildModel(),u=r.map(o=>{let c=e.modelService.findNode(i,o);if(!c)return I(o,404,"Not found");let d=(i.childrenById.get(c.id)??[]).map(p=>i.nodesById.get(p)).filter(Boolean).map(p=>({sourceRelationship:"HasComponent",object:R(p,c.id)})),y=e.modelService.parentIdOf(i,c.id);if(y){let p=i.nodesById.get(y);p&&d.push({sourceRelationship:"IsComponentOf",object:R(p,e.modelService.parentIdOf(i,p.id))})}return f(o,d)});return l(u)}),s.post("/v1/objects/value",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}},maxDepth:{type:"integer",minimum:0}}}}},async t=>{let{elementIds:r,maxDepth:i}=t.body,u=await e.valueService.readValues(r,i??1);return l(u)}),s.post("/v1/objects/history",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}},startTime:{type:"string"},endTime:{type:"string"},maxDepth:{type:"integer",minimum:0}}}}},async t=>{let{elementIds:r,startTime:i,endTime:u}=t.body,o=await e.historyService.readHistory(r,i?new Date(i):null,u?new Date(u):null);return l(o)}),s.put("/v1/objects/history",{preHandler:n},async(t,r)=>(r.status(501),{success:!1,responseDetail:{title:"Not Implemented",status:501,detail:"Not implemented"}})),e.experimental&&(s.get("/v1/objects/:elementId/history",async(t,r)=>(r.status(501),{success:!1,responseDetail:{title:"Not Implemented",status:501,detail:"Not implemented"}})),s.put("/v1/objects/:elementId/history",{preHandler:n},async(t,r)=>(r.status(501),{success:!1,responseDetail:{title:"Not Implemented",status:501,detail:"Not implemented"}})),s.put("/v1/objects/:elementId/value",{preHandler:n},async t=>{let{elementId:r}=t.params,{value:i}=t.body;try{return await e.valueService.writeValue(r,i),m(null)}catch(u){throw g(404,u.message)}})),s.put("/v1/objects/value",{preHandler:n},async t=>{let r=t.body,i=[];if(Array.isArray(r))i=r;else if(r&&typeof r=="object"){let o=r.updates;Array.isArray(o)?i=o:i=Object.entries(r).map(([c,a])=>({elementId:c,value:a}))}let u=await Promise.all(i.map(async({elementId:o,value:c})=>{try{return await e.valueService.writeValue(o,c),f(o,null)}catch(a){let d=a instanceof Error?a.message:String(a)||"Write failed",p=d.includes("not found")?404:403;return I(o,p,d)}}));return l(u)})}async function j(s){let e=b(s);s.get("/v1/objecttypes",async n=>{let{namespaceUri:t}=n.query,r=await e.typeService.getObjectTypes(t);return m(r)}),s.post("/v1/objecttypes/query",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}}}}}},async n=>{let{elementIds:t}=n.body,r=await e.typeService.queryObjectTypes(t),i=t.map((u,o)=>{let c=r[o];return c?f(u,c):I(u,404,"Object type not found")});return l(i)})}var P=[{elementId:"HasComponent",displayName:"HasComponent",namespaceUri:"http://opcfoundation.org/UA/",relationshipId:"ns=0;i=47",reverseOf:"IsComponentOf"},{elementId:"IsComponentOf",displayName:"IsComponentOf",namespaceUri:"http://opcfoundation.org/UA/",relationshipId:"ns=0;i=47",reverseOf:"HasComponent"}];async function B(s){s.get("/v1/relationshiptypes",async e=>{let{namespaceUri:n}=e.query,t=P;return n&&(t=t.filter(r=>r.namespaceUri===n)),m(t)}),s.post("/v1/relationshiptypes/query",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}}}}}},async e=>{let{elementIds:n}=e.body,t=n.map(r=>{let i=P.find(u=>u.elementId===r);return i?f(r,i):I(r,404,"Relationship type not found")});return l(t)})}function v(s){if(!s)throw g(400,"clientId is required");return s}function q(s,e,n){let t=s.subscriptionService.list([e]);if(t.length===0||t[0].clientId!==n)throw g(404,`Subscription ${e} not found`)}async function D(s){let e=b(s);s.post("/v1/subscriptions",{schema:{body:{type:"object",required:["clientId"],properties:{clientId:{type:"string"},displayName:{type:"string"}}}}},async n=>{let{clientId:t,displayName:r}=n.body,i=v(t),u=e.subscriptionService.create({clientId:i,displayName:r});return m(u)}),s.post("/v1/subscriptions/register",{schema:{body:{type:"object",required:["subscriptionId","elementIds","clientId"],properties:{subscriptionId:{type:"string"},elementIds:{type:"array",items:{type:"string"}},maxDepth:{type:"integer",minimum:0},clientId:{type:"string"}}}}},async n=>{let{subscriptionId:t,elementIds:r,maxDepth:i,clientId:u}=n.body,o=v(u);q(e,t,o);try{let{registered:c,errors:a}=await e.subscriptionService.register(t,r,i??1),d=[...c.map(y=>f(y,null)),...a.map(y=>I(y.elementId,404,y.error,"Not Found"))];return l(d)}catch(c){S(c)}}),s.post("/v1/subscriptions/unregister",{schema:{body:{type:"object",required:["subscriptionId","elementIds","clientId"],properties:{subscriptionId:{type:"string"},elementIds:{type:"array",items:{type:"string"}},clientId:{type:"string"}}}}},async n=>{let{subscriptionId:t,elementIds:r,clientId:i}=n.body,u=v(i);q(e,t,u);try{let{registered:o,errors:c}=await e.subscriptionService.unregister(t,r),a=[...o.map(d=>f(d,null)),...c.map(d=>I(d.elementId,404,d.error,"Not Found"))];return l(a)}catch(o){S(o)}}),s.post("/v1/subscriptions/sync",{schema:{body:{type:"object",required:["subscriptionId","clientId"],properties:{subscriptionId:{type:"string"},lastSequenceNumber:{type:"integer"},clientId:{type:"string"}}}}},async n=>{let{subscriptionId:t,lastSequenceNumber:r,clientId:i}=n.body,u=v(i);q(e,t,u);let o=r??0;try{let c=e.subscriptionService.sync(t,o);return m(c)}catch(c){S(c)}}),s.post("/v1/subscriptions/stream",{schema:{body:{type:"object",required:["subscriptionId","clientId"],properties:{subscriptionId:{type:"string"},lastSequenceNumber:{type:"integer"},clientId:{type:"string"}}}}},async(n,t)=>{let{subscriptionId:r,lastSequenceNumber:i,clientId:u}=n.body,o=v(u);q(e,r,o);let c=i??0;try{e.subscriptionService.acknowledge(r,c),await t.hijack(),t.raw.writeHead(200,{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}),t.raw.write(`: keepalive
1
+ import M from"@fastify/compress";import A from"@fastify/cors";import Q from"@fastify/swagger";import W from"@fastify/swagger-ui";import z from"fastify";var O={openapi:"3.1.0",info:{title:"i3X API Beta",description:"Industrial Information Interface eXchange API - 1.0 Beta",version:"beta"},servers:[{url:"/v1"}],paths:{"/info":{get:{tags:["Info"],summary:"Server Info",description:`Returns the server version and capabilities. May be used as a health check.
2
+ This endpoint does not require authentication.`,operationId:"getInfo",responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/SuccessResponse_ServerInfo_"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/namespaces":{get:{tags:["Explore"],summary:"Get Namespaces",description:"Get all Namespaces",operationId:"getNamespaces",responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/SuccessResponse_List_Namespace__"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/objecttypes":{get:{tags:["Explore"],summary:"Get Object Types",description:"Get the schemas for all Types. Optionally filter by Namespace",operationId:"getObjectTypes",parameters:[{name:"namespaceUri",in:"query",required:!1,schema:{anyOf:[{type:"string"},{type:"null"}],title:"Namespaceuri"}}],responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/SuccessResponse_List_ObjectTypeResponse__"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/objecttypes/query":{post:{tags:["Explore"],summary:"Query Object Types by ElementId",description:`Get the schema for one or more Types by ElementID.
2
3
 
3
- `);let a=c,d=!1,y=()=>{d||(d=!0,t.raw.writableEnded||t.raw.end())};for(n.raw.on("close",()=>{d=!0,e.subscriptionService.clearActiveStream(r,y)}),e.subscriptionService.registerActiveStream(r,y);!d;){let p=await e.subscriptionService.waitForUpdates(r,a,15e3);if(d)break;if(!p||p.length===0){t.raw.write(`: keepalive
4
+ Request body: {"elementIds": ["...", "..."]}
4
5
 
5
- `);continue}a=p[p.length-1].sequenceNumber,e.subscriptionService.acknowledge(r,a);let H=p.map(h=>({sequenceNumber:h.sequenceNumber,elementId:h.elementId,value:h.value,quality:h.quality,timestamp:h.timestamp}));t.raw.write(`data: ${JSON.stringify(H)}
6
+ Returns bulk response with succeeded/failed.`,operationId:"queryObjectTypesById",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/GetObjectTypesRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_ObjectTypeResponse_"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/relationshiptypes":{get:{tags:["Explore"],summary:"Get Relationship Types",description:"Get all Relationship Types. Optionally filtered by Namespace",operationId:"getRelationshipTypes",parameters:[{name:"namespaceUri",in:"query",required:!1,schema:{anyOf:[{type:"string"},{type:"null"}],title:"Namespaceuri"}}],responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/SuccessResponse_List_RelationshipType__"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/relationshiptypes/query":{post:{tags:["Explore"],summary:"Query Relationship Types by ElementId",description:`Get one or more Relationship Types by ElementID.
6
7
 
7
- `)}t.raw.writableEnded||t.raw.end()}catch(a){t.raw.headersSent||S(a)}}),s.post("/v1/subscriptions/delete",{schema:{body:{type:"object",required:["subscriptionIds","clientId"],properties:{subscriptionIds:{type:"array",items:{type:"string"}},clientId:{type:"string"}}}}},async n=>{let{subscriptionIds:t,clientId:r}=n.body,i=v(r),u=e.subscriptionService.list(t);for(let c of t){let a=u.find(d=>d.subscriptionId===c);if(!a||a.clientId!==i)throw g(404,`Subscription ${c} not found`)}let o=await e.subscriptionService.deleteSubscriptions(t);return l(o)}),s.post("/v1/subscriptions/list",{schema:{body:{type:"object",required:["clientId"],properties:{subscriptionIds:{type:"array",items:{type:"string"}},clientId:{type:"string"}}}}},async n=>{let{subscriptionIds:t,clientId:r}=n.body,i=v(r),u=e.subscriptionService.list(t),o;return t&&t.length>0?o=t.map(c=>{let a=u.find(d=>d.subscriptionId===c);return!a||a.clientId!==i?{success:!1,subscriptionId:c,responseDetail:{title:"Not Found",status:404,detail:`Subscription ${c} not found`}}:{success:!0,subscriptionId:c,result:a}}):o=u.filter(a=>a.clientId===i).map(a=>({success:!0,subscriptionId:a.subscriptionId,result:a})),l(o)})}async function z(s){let e=W({logger:!0});return e.decorate("deps",s),await e.register(T),await e.register(V,{origin:!0}),await e.register(L,{global:!0,threshold:0,encodings:["gzip","identity"]}),O(e),E(e,s.apiKey),e.addHook("onRequest",async(n,t)=>{t.header("X-Powered-By","node-i3x (Sterfive - https://sterfive.com)")}),await e.register(k),await e.register(w),await e.register(x),await e.register(j),await e.register(B),await e.register(N),await e.register(D),e}function b(s){return s.deps}export{z as createApp};
8
+ Request body: {"elementIds": ["...", "..."]}
9
+
10
+ Returns bulk response with succeeded/failed.`,operationId:"queryRelationshipTypesById",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/GetRelationshipTypesRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_RelationshipType_"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/objects":{get:{tags:["Explore"],summary:"Get Objects",description:"Return all Objects. Optionally filter by typeElementId or set root=true to get root Objects.",operationId:"getObjects",parameters:[{name:"typeElementId",in:"query",required:!1,schema:{anyOf:[{type:"string"},{type:"null"}],title:"Typeelementid"}},{name:"includeMetadata",in:"query",required:!1,schema:{type:"boolean",default:!1,title:"Includemetadata"}},{name:"root",in:"query",required:!1,schema:{anyOf:[{type:"boolean"},{type:"null"}],title:"Root"}}],responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/SuccessResponse_List_ObjectInstanceResponse__"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/objects/list":{post:{tags:["Explore"],summary:"List Objects by ElementId",description:`Return one or more Objects by elementId.
11
+
12
+ Request body: {"elementIds": ["...", "..."]}
13
+
14
+ Returns bulk response with succeeded/failed.`,operationId:"listObjectsById",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/GetObjectsRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_ObjectInstanceResponse_"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/objects/related":{post:{tags:["Explore"],summary:"Query Related Objects",description:`Return related objects for one or more elementIds.
15
+
16
+ Request body: {"elementIds": ["...", "..."]}
17
+
18
+ Returns bulk response with succeeded/failed.`,operationId:"queryRelatedObjects",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/GetRelatedObjectsRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_List_RelatedObjectResult__"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/objects/value":{post:{tags:["Query"],summary:"Query Last Known Values",description:`Return last known value for one or more Objects.
19
+
20
+ If maxDepth=0, recursively includes all values from HasComponent children (infinite depth).
21
+ Otherwise, recurses only to the specified depth (1=no recursion, just this element).
22
+
23
+ Request body: {"elementIds": ["...", "..."]}
24
+
25
+ Returns bulk response with succeeded/failed.`,operationId:"queryLastKnownValues",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/GetObjectValueRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_CurrentValueResult_"}}}},"206":{description:"Partial Content \u2014 server-imposed depth limit reached; response contains available data only",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_CurrentValueResult_"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/objects/history":{post:{tags:["Query"],summary:"Query Historical Values",description:`Get the historical values for one or more Objects.
26
+
27
+ If maxDepth=0, recursively includes all values from HasComponent children (infinite depth).
28
+ Otherwise, recurses only to the specified depth (1=no recursion, just this element).
29
+
30
+ Request body: {"elementIds": ["...", "..."]}
31
+
32
+ Returns bulk response with succeeded/failed.`,operationId:"queryHistoricalValues",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/GetObjectHistoryRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_HistoricalValueResult_"}}}},"206":{description:"Partial Content \u2014 server-imposed depth limit reached; response contains available data only",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_HistoricalValueResult_"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/objects/{elementId}/history":{get:{tags:["Query"],summary:"Get Historical Values",description:"Return historical values for a single Object. Optionally filter by time range.",operationId:"getHistoricalValues",parameters:[{name:"elementId",in:"path",required:!0,schema:{type:"string",title:"Elementid"}},{name:"startTime",in:"query",required:!1,schema:{anyOf:[{type:"string"},{type:"null"}],description:"ISO 8601 start time",title:"Starttime"},description:"ISO 8601 start time"},{name:"endTime",in:"query",required:!1,schema:{anyOf:[{type:"string"},{type:"null"}],description:"ISO 8601 end time",title:"Endtime"},description:"ISO 8601 end time"},{name:"maxDepth",in:"query",required:!1,schema:{type:"integer",minimum:0,description:"Recursion depth through HasComponent. 0=infinite, 1=no recursion",default:1,title:"Maxdepth"},description:"Recursion depth through HasComponent. 0=infinite, 1=no recursion"}],responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/SuccessResponse_HistoricalValueResult_"}}}},"206":{description:"Partial Content \u2014 server-imposed depth limit reached; response contains available data only",content:{"application/json":{schema:{$ref:"#/components/schemas/SuccessResponse_HistoricalValueResult_"}}}},"404":{description:"Not Found \u2014 ElementId or resource does not exist",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}},put:{tags:["Update"],summary:"Update Historical Values of Object",description:"Update the historical values for one or more Objects",operationId:"updateObjectHistory",parameters:[{name:"elementId",in:"path",required:!0,schema:{type:"string",title:"Elementid"}}],responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{}}}},"501":{description:"Not Implemented \u2014 optional feature not supported by this server",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}},"404":{description:"Not Found \u2014 ElementId or resource does not exist",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/objects/{elementId}/value":{put:{tags:["Update"],summary:"Update Value of Object",description:"Update the value of an Object",operationId:"updateObjectValue",parameters:[{name:"elementId",in:"path",required:!0,schema:{type:"string",title:"Elementid"}}],requestBody:{required:!0,content:{"application/json":{schema:{title:"Body"}}}},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/SuccessResponse_NoneType_"}}}},"404":{description:"Not Found \u2014 ElementId or resource does not exist",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/subscriptions":{post:{tags:["Subscribe"],summary:"Create Subscription",description:`Create a new subscription. Returns a unique subscriptionId the client must cache.
33
+ There is no way to list all subscriptions; the client must track the returned ID.`,operationId:"createSubscription",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/CreateSubscriptionRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/SuccessResponse_CreateSubscriptionResponse_"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/subscriptions/register":{post:{tags:["Subscribe"],summary:"Register Monitored Items",description:"Add objects to the subscription. subscriptionId is passed in the request body.",operationId:"registerMonitoredItems",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/RegisterMonitoredItemsRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_NoneType_"}}}},"404":{description:"Not Found \u2014 ElementId or resource does not exist",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/subscriptions/unregister":{post:{tags:["Subscribe"],summary:"Remove Monitored Items",description:"Remove objects from the subscription. subscriptionId is passed in the request body.",operationId:"removeMonitoredItems",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/RegisterMonitoredItemsRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_NoneType_"}}}},"404":{description:"Not Found \u2014 ElementId or resource does not exist",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/subscriptions/stream":{post:{tags:["Subscribe"],summary:"Stream Values (SSE)",description:"Open a Server-Sent Events (SSE) stream. subscriptionId is passed in the request body.",operationId:"streamSubscription",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/StreamRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{}}}},"404":{description:"Not Found \u2014 ElementId or resource does not exist",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/subscriptions/sync":{post:{tags:["Subscribe"],summary:"Sync Values",description:`Acknowledge previously received updates and return all pending updates in one call.
34
+
35
+ If \`lastSequenceNumber\` is provided, all queued updates with sequenceNumber <= lastSequenceNumber are removed first,
36
+ then the remaining (newer) updates are returned. subscriptionId is passed in the request body.`,operationId:"syncSubscription",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/SyncRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/SuccessResponse_List_SyncUpdate__"}}}},"404":{description:"Not Found \u2014 ElementId or resource does not exist",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/subscriptions/delete":{post:{tags:["Subscribe"],summary:"Delete Subscriptions",description:"Delete one or more subscriptions by ID. subscriptionIds are passed in the request body.",operationId:"deleteSubscriptions",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/DeleteSubscriptionsRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_NoneType_"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}},"/subscriptions/list":{post:{tags:["Subscribe"],summary:"List Subscriptions",description:"Get one or more subscriptions by ID to check their existence and current configuration.",operationId:"listSubscriptions",requestBody:{content:{"application/json":{schema:{$ref:"#/components/schemas/ListSubscriptionsRequest"}}},required:!0},responses:{"200":{description:"Successful Response",content:{"application/json":{schema:{$ref:"#/components/schemas/BulkResponse_SubscriptionDetail_"}}}},default:{description:"Error \u2014 see error.code for the HTTP status code (400, 401, 403, 404, 500, etc.)",content:{"application/json":{schema:{$ref:"#/components/schemas/ErrorResponse"}}}}}}}},components:{schemas:{BulkResponse_CurrentValueResult_:{properties:{success:{type:"boolean",title:"Success"},results:{items:{$ref:"#/components/schemas/BulkResultItem_CurrentValueResult_"},type:"array",title:"Results"}},type:"object",required:["success","results"],title:"BulkResponse[CurrentValueResult]"},BulkResponse_HistoricalValueResult_:{properties:{success:{type:"boolean",title:"Success"},results:{items:{$ref:"#/components/schemas/BulkResultItem_HistoricalValueResult_"},type:"array",title:"Results"}},type:"object",required:["success","results"],title:"BulkResponse[HistoricalValueResult]"},BulkResponse_List_RelatedObjectResult__:{properties:{success:{type:"boolean",title:"Success"},results:{items:{$ref:"#/components/schemas/BulkResultItem_List_RelatedObjectResult__"},type:"array",title:"Results"}},type:"object",required:["success","results"],title:"BulkResponse[List[RelatedObjectResult]]"},BulkResponse_NoneType_:{properties:{success:{type:"boolean",title:"Success"},results:{items:{$ref:"#/components/schemas/BulkResultItem_NoneType_"},type:"array",title:"Results"}},type:"object",required:["success","results"],title:"BulkResponse[NoneType]"},BulkResponse_ObjectInstanceResponse_:{properties:{success:{type:"boolean",title:"Success"},results:{items:{$ref:"#/components/schemas/BulkResultItem_ObjectInstanceResponse_"},type:"array",title:"Results"}},type:"object",required:["success","results"],title:"BulkResponse[ObjectInstanceResponse]"},BulkResponse_ObjectTypeResponse_:{properties:{success:{type:"boolean",title:"Success"},results:{items:{$ref:"#/components/schemas/BulkResultItem_ObjectTypeResponse_"},type:"array",title:"Results"}},type:"object",required:["success","results"],title:"BulkResponse[ObjectTypeResponse]"},BulkResponse_RelationshipType_:{properties:{success:{type:"boolean",title:"Success"},results:{items:{$ref:"#/components/schemas/BulkResultItem_RelationshipType_"},type:"array",title:"Results"}},type:"object",required:["success","results"],title:"BulkResponse[RelationshipType]"},BulkResponse_SubscriptionDetail_:{properties:{success:{type:"boolean",title:"Success"},results:{items:{$ref:"#/components/schemas/BulkResultItem_SubscriptionDetail_"},type:"array",title:"Results"}},type:"object",required:["success","results"],title:"BulkResponse[SubscriptionDetail]"},BulkResultItem_CurrentValueResult_:{properties:{success:{type:"boolean",title:"Success"},elementId:{anyOf:[{type:"string"},{type:"null"}],title:"Elementid"},subscriptionId:{anyOf:[{type:"string"},{type:"null"}],title:"Subscriptionid"},result:{anyOf:[{$ref:"#/components/schemas/CurrentValueResult"},{type:"null"}]},error:{anyOf:[{$ref:"#/components/schemas/ErrorDetail"},{type:"null"}]}},type:"object",required:["success"],title:"BulkResultItem[CurrentValueResult]"},BulkResultItem_HistoricalValueResult_:{properties:{success:{type:"boolean",title:"Success"},elementId:{anyOf:[{type:"string"},{type:"null"}],title:"Elementid"},subscriptionId:{anyOf:[{type:"string"},{type:"null"}],title:"Subscriptionid"},result:{anyOf:[{$ref:"#/components/schemas/HistoricalValueResult"},{type:"null"}]},error:{anyOf:[{$ref:"#/components/schemas/ErrorDetail"},{type:"null"}]}},type:"object",required:["success"],title:"BulkResultItem[HistoricalValueResult]"},BulkResultItem_List_RelatedObjectResult__:{properties:{success:{type:"boolean",title:"Success"},elementId:{anyOf:[{type:"string"},{type:"null"}],title:"Elementid"},subscriptionId:{anyOf:[{type:"string"},{type:"null"}],title:"Subscriptionid"},result:{anyOf:[{items:{$ref:"#/components/schemas/RelatedObjectResult"},type:"array"},{type:"null"}],title:"Result"},error:{anyOf:[{$ref:"#/components/schemas/ErrorDetail"},{type:"null"}]}},type:"object",required:["success"],title:"BulkResultItem[List[RelatedObjectResult]]"},BulkResultItem_NoneType_:{properties:{success:{type:"boolean",title:"Success"},elementId:{anyOf:[{type:"string"},{type:"null"}],title:"Elementid"},subscriptionId:{anyOf:[{type:"string"},{type:"null"}],title:"Subscriptionid"},result:{type:"null",title:"Result"},error:{anyOf:[{$ref:"#/components/schemas/ErrorDetail"},{type:"null"}]}},type:"object",required:["success"],title:"BulkResultItem[NoneType]"},BulkResultItem_ObjectInstanceResponse_:{properties:{success:{type:"boolean",title:"Success"},elementId:{anyOf:[{type:"string"},{type:"null"}],title:"Elementid"},subscriptionId:{anyOf:[{type:"string"},{type:"null"}],title:"Subscriptionid"},result:{anyOf:[{$ref:"#/components/schemas/ObjectInstanceResponse"},{type:"null"}]},error:{anyOf:[{$ref:"#/components/schemas/ErrorDetail"},{type:"null"}]}},type:"object",required:["success"],title:"BulkResultItem[ObjectInstanceResponse]"},BulkResultItem_ObjectTypeResponse_:{properties:{success:{type:"boolean",title:"Success"},elementId:{anyOf:[{type:"string"},{type:"null"}],title:"Elementid"},subscriptionId:{anyOf:[{type:"string"},{type:"null"}],title:"Subscriptionid"},result:{anyOf:[{$ref:"#/components/schemas/ObjectTypeResponse"},{type:"null"}]},error:{anyOf:[{$ref:"#/components/schemas/ErrorDetail"},{type:"null"}]}},type:"object",required:["success"],title:"BulkResultItem[ObjectTypeResponse]"},BulkResultItem_RelationshipType_:{properties:{success:{type:"boolean",title:"Success"},elementId:{anyOf:[{type:"string"},{type:"null"}],title:"Elementid"},subscriptionId:{anyOf:[{type:"string"},{type:"null"}],title:"Subscriptionid"},result:{anyOf:[{$ref:"#/components/schemas/RelationshipType"},{type:"null"}]},error:{anyOf:[{$ref:"#/components/schemas/ErrorDetail"},{type:"null"}]}},type:"object",required:["success"],title:"BulkResultItem[RelationshipType]"},BulkResultItem_SubscriptionDetail_:{properties:{success:{type:"boolean",title:"Success"},elementId:{anyOf:[{type:"string"},{type:"null"}],title:"Elementid"},subscriptionId:{anyOf:[{type:"string"},{type:"null"}],title:"Subscriptionid"},result:{anyOf:[{$ref:"#/components/schemas/SubscriptionDetail"},{type:"null"}]},error:{anyOf:[{$ref:"#/components/schemas/ErrorDetail"},{type:"null"}]}},type:"object",required:["success"],title:"BulkResultItem[SubscriptionDetail]"},CreateSubscriptionRequest:{properties:{clientId:{anyOf:[{type:"string"},{type:"null"}],title:"Clientid",description:"Unique identifier for the client scoping this subscription"},displayName:{anyOf:[{type:"string"},{type:"null"}],title:"Displayname",description:"Optional friendly name for the subscription"}},type:"object",title:"CreateSubscriptionRequest"},CreateSubscriptionResponse:{properties:{clientId:{anyOf:[{type:"string"},{type:"null"}],title:"Clientid"},subscriptionId:{type:"string",title:"Subscriptionid"},displayName:{anyOf:[{type:"string"},{type:"null"}],title:"Displayname"}},type:"object",required:["subscriptionId"],title:"CreateSubscriptionResponse"},CurrentValueResult:{properties:{isComposition:{type:"boolean",title:"Iscomposition",description:"True if this Object encapsulates composed child elements"},value:{title:"Value"},quality:{type:"string",title:"Quality",description:"Data quality indicator: Good, GoodNoData, Bad, or Uncertain"},timestamp:{type:"string",title:"Timestamp",description:"RFC 3339 UTC timestamp when this value was recorded"},components:{anyOf:[{additionalProperties:{$ref:"#/components/schemas/VQT"},type:"object"},{type:"null"}],title:"Components",description:"Child element values, present only on composition elements when maxDepth > 1"}},type:"object",required:["isComposition","value","quality","timestamp"],title:"CurrentValueResult"},DeleteSubscriptionsRequest:{properties:{clientId:{anyOf:[{type:"string"},{type:"null"}],title:"Clientid",description:"The clientId scoping these subscriptions"},subscriptionIds:{items:{type:"string"},type:"array",title:"Subscriptionids",description:"List of subscription IDs to delete"}},type:"object",required:["subscriptionIds"],title:"DeleteSubscriptionsRequest"},ErrorDetail:{properties:{code:{type:"integer",title:"Code"},message:{type:"string",title:"Message"}},type:"object",required:["code","message"],title:"ErrorDetail"},ErrorResponse:{properties:{success:{type:"boolean",title:"Success",default:!1},error:{$ref:"#/components/schemas/ErrorDetail"}},type:"object",required:["error"],title:"ErrorResponse"},GetObjectHistoryRequest:{properties:{elementIds:{items:{type:"string"},type:"array",title:"Elementids",description:"Array of element IDs to query"},startTime:{anyOf:[{type:"string"},{type:"null"}],title:"Starttime",description:"ISO 8601 start time for filtering"},endTime:{anyOf:[{type:"string"},{type:"null"}],title:"Endtime",description:"ISO 8601 end time for filtering"},maxDepth:{type:"integer",minimum:0,title:"Maxdepth",description:"Controls recursion depth. 0=infinite, 1=no recursion",default:1}},type:"object",required:["elementIds"],title:"GetObjectHistoryRequest",description:"Request model for POST /objects/history"},GetObjectTypesRequest:{properties:{elementIds:{items:{type:"string"},type:"array",title:"Elementids",description:"Array of element IDs to query"}},type:"object",required:["elementIds"],title:"GetObjectTypesRequest",description:"Request model for POST /objecttypes/query"},GetObjectValueRequest:{properties:{elementIds:{items:{type:"string"},type:"array",title:"Elementids",description:"Array of element IDs to query"},maxDepth:{type:"integer",minimum:0,title:"Maxdepth",description:"Controls recursion depth. 0=infinite, 1=no recursion",default:1}},type:"object",required:["elementIds"],title:"GetObjectValueRequest",description:"Request model for POST /objects/value"},GetObjectsRequest:{properties:{elementIds:{items:{type:"string"},type:"array",title:"Elementids",description:"Array of element IDs to query"},includeMetadata:{type:"boolean",title:"Includemetadata",description:"Include full metadata in response",default:!1}},type:"object",required:["elementIds"],title:"GetObjectsRequest",description:"Request model for POST /objects/query"},GetRelatedObjectsRequest:{properties:{elementIds:{items:{type:"string"},type:"array",title:"Elementids",description:"Array of element IDs to query"},relationshipType:{anyOf:[{type:"string"},{type:"null"}],title:"Relationshiptype",description:"Filter by relationship type"},includeMetadata:{type:"boolean",title:"Includemetadata",description:"Include full metadata in response",default:!1}},type:"object",required:["elementIds"],title:"GetRelatedObjectsRequest",description:"Request model for POST /objects/related"},GetRelationshipTypesRequest:{properties:{elementIds:{items:{type:"string"},type:"array",title:"Elementids",description:"Array of element IDs to query"}},type:"object",required:["elementIds"],title:"GetRelationshipTypesRequest",description:"Request model for POST /relationshiptypes/query"},HistoricalValueResult:{properties:{isComposition:{type:"boolean",title:"Iscomposition",description:"True if this Object encapsulates composed child elements"},values:{items:{$ref:"#/components/schemas/VQT"},type:"array",title:"Values",description:"Ordered array of VQT objects for the requested time range"}},type:"object",required:["isComposition","values"],title:"HistoricalValueResult"},ListSubscriptionsRequest:{properties:{clientId:{anyOf:[{type:"string"},{type:"null"}],title:"Clientid",description:"The clientId scoping these subscriptions"},subscriptionIds:{items:{type:"string"},type:"array",title:"Subscriptionids",description:"List of subscription IDs to retrieve"}},type:"object",required:["subscriptionIds"],title:"ListSubscriptionsRequest"},Namespace:{properties:{uri:{type:"string",title:"Uri",description:"Namespace URI"},displayName:{type:"string",title:"Displayname",description:"Namespace name"}},type:"object",required:["uri","displayName"],title:"Namespace"},ObjectInstanceMetadata:{properties:{typeNamespaceUri:{anyOf:[{type:"string"},{type:"null"}],title:"Typenamespaceuri"},sourceTypeId:{anyOf:[{type:"string"},{type:"null"}],title:"Sourcetypeid"},description:{anyOf:[{type:"string"},{type:"null"}],title:"Description"},relationships:{anyOf:[{additionalProperties:!0,type:"object"},{type:"null"}],title:"Relationships"},extendedAttributes:{anyOf:[{additionalProperties:!0,type:"object"},{type:"null"}],title:"Extendedattributes"},system:{anyOf:[{additionalProperties:!0,type:"object"},{type:"null"}],title:"System"}},type:"object",title:"ObjectInstanceMetadata"},ObjectInstanceResponse:{properties:{elementId:{type:"string",title:"Elementid"},displayName:{type:"string",title:"Displayname"},typeElementId:{type:"string",title:"Typeelementid"},parentId:{anyOf:[{type:"string"},{type:"null"}],title:"Parentid"},isComposition:{type:"boolean",title:"Iscomposition"},isExtended:{type:"boolean",title:"Isextended",default:!1},metadata:{anyOf:[{$ref:"#/components/schemas/ObjectInstanceMetadata"},{type:"null"}]}},type:"object",required:["elementId","displayName","typeElementId","isComposition"],title:"ObjectInstanceResponse"},ObjectTypeResponse:{properties:{elementId:{type:"string",title:"Elementid"},displayName:{type:"string",title:"Displayname"},namespaceUri:{type:"string",title:"Namespaceuri"},sourceTypeId:{type:"string",title:"Sourcetypeid",description:"Class or member of the Namespace that defines this type"},version:{anyOf:[{type:"string"},{type:"null"}],title:"Version"},schema:{additionalProperties:!0,type:"object",title:"Schema",description:"JSON Schema definition for this object type"},related:{anyOf:[{additionalProperties:!0,type:"object"},{type:"null"}],title:"Related"}},type:"object",required:["elementId","displayName","namespaceUri","sourceTypeId","schema"],title:"ObjectTypeResponse"},RegisterMonitoredItemsRequest:{properties:{clientId:{anyOf:[{type:"string"},{type:"null"}],title:"Clientid",description:"The clientId scoping this subscription"},subscriptionId:{type:"string",title:"Subscriptionid",description:"The subscription to register items with"},elementIds:{items:{type:"string"},type:"array",title:"Elementids"},maxDepth:{anyOf:[{type:"integer"},{type:"null"}],title:"Maxdepth",default:1}},type:"object",required:["subscriptionId","elementIds"],title:"RegisterMonitoredItemsRequest"},RelatedObjectResult:{properties:{sourceRelationship:{type:"string",title:"Sourcerelationship"},object:{$ref:"#/components/schemas/ObjectInstanceResponse"}},type:"object",required:["sourceRelationship","object"],title:"RelatedObjectResult"},RelationshipType:{properties:{elementId:{type:"string",title:"Elementid",description:"Unique string identifier for the relationship type"},displayName:{type:"string",title:"Displayname",description:"Relationship type name"},namespaceUri:{type:"string",title:"Namespaceuri",description:"Namespace URI"},relationshipId:{type:"string",title:"Relationshipid",description:"Class or member of the Namespace that defines this relationship type"},reverseOf:{type:"string",title:"Reverseof",description:"ElementId of the reverse relationship type"}},type:"object",required:["elementId","displayName","namespaceUri","relationshipId","reverseOf"],title:"RelationshipType"},ServerCapabilities:{properties:{query:{$ref:"#/components/schemas/_QueryCapabilities"},update:{$ref:"#/components/schemas/_UpdateCapabilities"},subscribe:{$ref:"#/components/schemas/_SubscribeCapabilities"}},type:"object",required:["query","update","subscribe"],title:"ServerCapabilities"},ServerInfo:{properties:{specVersion:{type:"string",title:"Specversion"},serverVersion:{anyOf:[{type:"string"},{type:"null"}],title:"Serverversion"},serverName:{anyOf:[{type:"string"},{type:"null"}],title:"Servername"},capabilities:{$ref:"#/components/schemas/ServerCapabilities"}},type:"object",required:["specVersion","capabilities"],title:"ServerInfo"},StreamRequest:{properties:{clientId:{anyOf:[{type:"string"},{type:"null"}],title:"Clientid",description:"The clientId scoping this subscription"},subscriptionId:{type:"string",title:"Subscriptionid",description:"The subscription to open a stream for"}},type:"object",required:["subscriptionId"],title:"StreamRequest"},SubscriptionDetail:{properties:{subscriptionId:{type:"string",title:"Subscriptionid"},displayName:{anyOf:[{type:"string"},{type:"null"}],title:"Displayname"},monitoredObjects:{items:{additionalProperties:!0,type:"object"},type:"array",title:"Monitoredobjects"}},type:"object",required:["subscriptionId","monitoredObjects"],title:"SubscriptionDetail"},SuccessResponse_CreateSubscriptionResponse_:{properties:{success:{type:"boolean",title:"Success"},result:{anyOf:[{$ref:"#/components/schemas/CreateSubscriptionResponse"},{type:"null"}]}},type:"object",required:["success"],title:"SuccessResponse[CreateSubscriptionResponse]"},SuccessResponse_HistoricalValueResult_:{properties:{success:{type:"boolean",title:"Success"},result:{anyOf:[{$ref:"#/components/schemas/HistoricalValueResult"},{type:"null"}]}},type:"object",required:["success"],title:"SuccessResponse[HistoricalValueResult]"},SuccessResponse_List_Namespace__:{properties:{success:{type:"boolean",title:"Success"},result:{anyOf:[{items:{$ref:"#/components/schemas/Namespace"},type:"array"},{type:"null"}],title:"Result"}},type:"object",required:["success"],title:"SuccessResponse[List[Namespace]]"},SuccessResponse_List_ObjectInstanceResponse__:{properties:{success:{type:"boolean",title:"Success"},result:{anyOf:[{items:{$ref:"#/components/schemas/ObjectInstanceResponse"},type:"array"},{type:"null"}],title:"Result"}},type:"object",required:["success"],title:"SuccessResponse[List[ObjectInstanceResponse]]"},SuccessResponse_List_ObjectTypeResponse__:{properties:{success:{type:"boolean",title:"Success"},result:{anyOf:[{items:{$ref:"#/components/schemas/ObjectTypeResponse"},type:"array"},{type:"null"}],title:"Result"}},type:"object",required:["success"],title:"SuccessResponse[List[ObjectTypeResponse]]"},SuccessResponse_List_RelationshipType__:{properties:{success:{type:"boolean",title:"Success"},result:{anyOf:[{items:{$ref:"#/components/schemas/RelationshipType"},type:"array"},{type:"null"}],title:"Result"}},type:"object",required:["success"],title:"SuccessResponse[List[RelationshipType]]"},SuccessResponse_List_SyncUpdate__:{properties:{success:{type:"boolean",title:"Success"},result:{anyOf:[{items:{$ref:"#/components/schemas/SyncUpdate"},type:"array"},{type:"null"}],title:"Result"}},type:"object",required:["success"],title:"SuccessResponse[List[SyncUpdate]]"},SuccessResponse_NoneType_:{properties:{success:{type:"boolean",title:"Success"},result:{type:"null",title:"Result"}},type:"object",required:["success"],title:"SuccessResponse[NoneType]"},SuccessResponse_ServerInfo_:{properties:{success:{type:"boolean",title:"Success"},result:{anyOf:[{$ref:"#/components/schemas/ServerInfo"},{type:"null"}]}},type:"object",required:["success"],title:"SuccessResponse[ServerInfo]"},SyncRequest:{properties:{clientId:{anyOf:[{type:"string"},{type:"null"}],title:"Clientid",description:"The clientId scoping this subscription"},subscriptionId:{type:"string",title:"Subscriptionid",description:"The subscription to sync"},lastSequenceNumber:{anyOf:[{type:"integer"},{type:"null"}],title:"Lastsequencenumber",description:"Acknowledge all updates through this sequence number before returning new ones"}},type:"object",required:["subscriptionId"],title:"SyncRequest"},SyncUpdate:{properties:{sequenceNumber:{type:"integer",title:"Sequencenumber"},elementId:{type:"string",title:"Elementid"},value:{title:"Value"},quality:{type:"string",title:"Quality",description:"Data quality indicator: Good, GoodNoData, Bad, or Uncertain"},timestamp:{type:"string",title:"Timestamp",description:"RFC 3339 UTC timestamp when this value was recorded"}},additionalProperties:!0,type:"object",required:["sequenceNumber","elementId","value","quality","timestamp"],title:"SyncUpdate"},VQT:{properties:{value:{title:"Value"},quality:{type:"string",title:"Quality",description:"Data quality indicator: Good, GoodNoData, Bad, or Uncertain"},timestamp:{type:"string",title:"Timestamp",description:"RFC 3339 UTC timestamp when this value was recorded"}},type:"object",required:["value","quality","timestamp"],title:"VQT"},_QueryCapabilities:{properties:{history:{type:"boolean",title:"History"}},type:"object",required:["history"],title:"_QueryCapabilities"},_SubscribeCapabilities:{properties:{stream:{type:"boolean",title:"Stream"}},type:"object",required:["stream"],title:"_SubscribeCapabilities"},_UpdateCapabilities:{properties:{current:{type:"boolean",title:"Current"},history:{type:"boolean",title:"History"}},type:"object",required:["current","history"],title:"_UpdateCapabilities"}}}};function R(s,e){let n=new Error(e);return n.statusCode=s,n}function S(s){let e=s;throw R(e.statusCode??500,e.message)}function w(s){s.setErrorHandler((e,n,t)=>{let r=e.statusCode??500,i=r===400?"Bad Request":r===404?"Not Found":r===501?"Not Implemented":"Internal Server Error";t.status(r).send({success:!1,responseDetail:{title:i,status:r,detail:e.message}})})}var V=new Set(["/v1/info","/health","/ready"]);function D(s,e){e&&s.addHook("onRequest",async(n,t)=>{let r=n.url.split("?")[0];if(V.has(r)||r.startsWith("/docs")||r.endsWith("/openapi.json"))return;let i=n.headers.authorization;if(!i)return t.status(401).send({success:!1,responseDetail:{title:"Unauthorized",status:401,detail:"Missing or invalid Bearer token."}}),t;let[p,o]=i.split(" ",2);if(p?.toLowerCase()!=="bearer"||o!==e)return t.status(401).send({success:!1,responseDetail:{title:"Unauthorized",status:401,detail:"Missing or invalid Bearer token."}}),t})}import{randomUUID as U}from"crypto";import L from"fastify-plugin";async function G(s){s.addHook("onRequest",async(e,n)=>{let t=e.headers["x-request-id"]??U();n.header("x-request-id",t)})}var C=L(G,{name:"request-id"});async function v(s){let e=h(s);s.get("/health",async()=>{let n=e.getOpcuaStats?.();return{status:"ok",...n?{opcua:n}:{}}}),s.get("/ready",async(n,t)=>e.dataSource.isConnected()?{status:"ready"}:(t.status(503),{status:"not ready",message:"Data source not connected"}))}import{readFileSync as x}from"fs";function m(s){return{success:!0,result:s}}function d(s){return{success:s.every(n=>n.success),results:s}}function f(s,e){return{success:!0,elementId:s,result:e}}function b(s,e,n,t){return{success:!1,elementId:s,responseDetail:{title:t??"Error",status:e,detail:n}}}function j(s,e){return{elementId:s.id,displayName:s.name,typeElementId:s.type??"",parentId:e,isComposition:s.children.length>0,isExtended:!1,metadata:{typeNamespaceUri:s.namespaceUri??null,sourceTypeId:s.sourceNodeId??null}}}var T="0.6.0";try{T=JSON.parse(x(new URL("../../package.json",import.meta.url),"utf8")).version}catch{try{T=JSON.parse(x(new URL("../package.json",import.meta.url),"utf8")).version}catch{}}async function _(s){s.get("/v1/info",async()=>{let e=s.deps.readOnly??!1;return m({specVersion:"1.0",serverVersion:T,serverName:"node-i3x",vendor:{name:"Sterfive SAS",url:"https://sterfive.com",support:"contact@sterfive.com"},license:"AGPL-3.0-or-later OR LicenseRef-Sterfive-Commercial",capabilities:{query:{history:!e},update:{current:!e,history:!1},subscribe:{stream:!0}}})})}async function E(s){let e=h(s);s.get("/v1/namespaces",async()=>{let n=await e.dataSource.getNamespaces();return m(n.map(t=>({uri:t.uri,displayName:t.displayName})))})}async function k(s){let e=h(s),n=async(t,r)=>{if(e.readOnly)return r.status(501),r.send({success:!1,responseDetail:{title:"Not Implemented",status:501,detail:"Write operations are disabled (read-only mode)"}})};s.get("/v1/objects",async t=>{let r=await e.modelService.getOrBuildModel(),{typeElementId:i,root:p}=t.query,o;p?o=r.rootIds.map(c=>r.nodesById.get(c)).filter(c=>c!==void 0&&c.kind==="asset"):o=Array.from(r.nodesById.values()).filter(c=>c.kind==="asset"||c.kind==="property"),i&&(o=o.filter(c=>c.type===i));let a=o.map(c=>j(c,e.modelService.parentIdOf(r,c.id)));return m(a)}),s.post("/v1/objects/list",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}}}}}},async t=>{let{elementIds:r}=t.body,i=await e.modelService.getOrBuildModel(),p=r.map(o=>{let a=e.modelService.findNode(i,o);return a?f(o,j(a,e.modelService.parentIdOf(i,a.id))):b(o,404,"Not found")});return d(p)}),s.post("/v1/objects/related",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}},relationshipType:{type:["string","null"]},includeMetadata:{type:"boolean"}}}}},async t=>{let{elementIds:r}=t.body,i=await e.modelService.getOrBuildModel(),p=r.map(o=>{let a=e.modelService.findNode(i,o);if(!a)return b(o,404,"Not found");let l=(i.childrenById.get(a.id)??[]).map(u=>i.nodesById.get(u)).filter(Boolean).map(u=>({sourceRelationship:"HasComponent",object:j(u,a.id)})),y=e.modelService.parentIdOf(i,a.id);if(y){let u=i.nodesById.get(y);u&&l.push({sourceRelationship:"IsComponentOf",object:j(u,e.modelService.parentIdOf(i,u.id))})}return f(o,l)});return d(p)}),s.post("/v1/objects/value",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}},maxDepth:{type:"integer",minimum:0}}}}},async t=>{let{elementIds:r,maxDepth:i}=t.body,p=await e.valueService.readValues(r,i??1);return d(p)}),s.post("/v1/objects/history",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}},startTime:{type:"string"},endTime:{type:"string"},maxDepth:{type:"integer",minimum:0}}}}},async t=>{let{elementIds:r,startTime:i,endTime:p}=t.body,o=await e.historyService.readHistory(r,i?new Date(i):null,p?new Date(p):null);return d(o)}),s.put("/v1/objects/history",{preHandler:n},async(t,r)=>(r.status(501),{success:!1,responseDetail:{title:"Not Implemented",status:501,detail:"Not implemented"}})),e.experimental&&(s.get("/v1/objects/:elementId/history",async(t,r)=>(r.status(501),{success:!1,responseDetail:{title:"Not Implemented",status:501,detail:"Not implemented"}})),s.put("/v1/objects/:elementId/history",{preHandler:n},async(t,r)=>(r.status(501),{success:!1,responseDetail:{title:"Not Implemented",status:501,detail:"Not implemented"}})),s.put("/v1/objects/:elementId/value",{preHandler:n},async t=>{let{elementId:r}=t.params,{value:i}=t.body;try{return await e.valueService.writeValue(r,i),m(null)}catch(p){throw R(404,p.message)}})),s.put("/v1/objects/value",{preHandler:n},async t=>{let r=t.body,i=[];if(Array.isArray(r))i=r;else if(r&&typeof r=="object"){let o=r.updates;Array.isArray(o)?i=o:i=Object.entries(r).map(([a,c])=>({elementId:a,value:c}))}let p=await Promise.all(i.map(async({elementId:o,value:a})=>{try{return await e.valueService.writeValue(o,a),f(o,null)}catch(c){let l=c instanceof Error?c.message:String(c)||"Write failed",u=l.includes("not found")?404:403;return b(o,u,l)}}));return d(p)})}async function B(s){let e=h(s);s.get("/v1/objecttypes",async n=>{let{namespaceUri:t}=n.query,r=await e.typeService.getObjectTypes(t);return m(r)}),s.post("/v1/objecttypes/query",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}}}}}},async n=>{let{elementIds:t}=n.body,r=await e.typeService.queryObjectTypes(t),i=t.map((p,o)=>{let a=r[o];return a?f(p,a):b(p,404,"Object type not found")});return d(i)})}var F=[{elementId:"HasComponent",displayName:"HasComponent",namespaceUri:"http://opcfoundation.org/UA/",relationshipId:"ns=0;i=47",reverseOf:"IsComponentOf"},{elementId:"IsComponentOf",displayName:"IsComponentOf",namespaceUri:"http://opcfoundation.org/UA/",relationshipId:"ns=0;i=47",reverseOf:"HasComponent"}];async function N(s){s.get("/v1/relationshiptypes",async e=>{let{namespaceUri:n}=e.query,t=F;return n&&(t=t.filter(r=>r.namespaceUri===n)),m(t)}),s.post("/v1/relationshiptypes/query",{schema:{body:{type:"object",required:["elementIds"],properties:{elementIds:{type:"array",items:{type:"string"}}}}}},async e=>{let{elementIds:n}=e.body,t=n.map(r=>{let i=F.find(p=>p.elementId===r);return i?f(r,i):b(r,404,"Relationship type not found")});return d(t)})}function I(s){if(!s)throw R(400,"clientId is required");return s}function q(s,e,n){let t=s.subscriptionService.list([e]);if(t.length===0||t[0].clientId!==n)throw R(404,`Subscription ${e} not found`)}async function $(s){let e=h(s);s.post("/v1/subscriptions",{schema:{body:{type:"object",required:["clientId"],properties:{clientId:{type:"string"},displayName:{type:"string"}}}}},async n=>{let{clientId:t,displayName:r}=n.body,i=I(t),p=e.subscriptionService.create({clientId:i,displayName:r});return m(p)}),s.post("/v1/subscriptions/register",{schema:{body:{type:"object",required:["subscriptionId","elementIds","clientId"],properties:{subscriptionId:{type:"string"},elementIds:{type:"array",items:{type:"string"}},maxDepth:{type:"integer",minimum:0},clientId:{type:"string"}}}}},async n=>{let{subscriptionId:t,elementIds:r,maxDepth:i,clientId:p}=n.body,o=I(p);q(e,t,o);try{let{registered:a,errors:c}=await e.subscriptionService.register(t,r,i??1),l=[...a.map(y=>f(y,null)),...c.map(y=>b(y.elementId,404,y.error,"Not Found"))];return d(l)}catch(a){S(a)}}),s.post("/v1/subscriptions/unregister",{schema:{body:{type:"object",required:["subscriptionId","elementIds","clientId"],properties:{subscriptionId:{type:"string"},elementIds:{type:"array",items:{type:"string"}},clientId:{type:"string"}}}}},async n=>{let{subscriptionId:t,elementIds:r,clientId:i}=n.body,p=I(i);q(e,t,p);try{let{registered:o,errors:a}=await e.subscriptionService.unregister(t,r),c=[...o.map(l=>f(l,null)),...a.map(l=>b(l.elementId,404,l.error,"Not Found"))];return d(c)}catch(o){S(o)}}),s.post("/v1/subscriptions/sync",{schema:{body:{type:"object",required:["subscriptionId","clientId"],properties:{subscriptionId:{type:"string"},lastSequenceNumber:{type:"integer"},clientId:{type:"string"}}}}},async n=>{let{subscriptionId:t,lastSequenceNumber:r,clientId:i}=n.body,p=I(i);q(e,t,p);let o=r??0;try{let a=e.subscriptionService.sync(t,o);return m(a)}catch(a){S(a)}}),s.post("/v1/subscriptions/stream",{schema:{body:{type:"object",required:["subscriptionId","clientId"],properties:{subscriptionId:{type:"string"},lastSequenceNumber:{type:"integer"},clientId:{type:"string"}}}}},async(n,t)=>{let{subscriptionId:r,lastSequenceNumber:i,clientId:p}=n.body,o=I(p);q(e,r,o);let a=i??0;try{e.subscriptionService.acknowledge(r,a),await t.hijack(),t.raw.writeHead(200,{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}),t.raw.write(`: keepalive
37
+
38
+ `);let c=a,l=!1,y=()=>{l||(l=!0,t.raw.writableEnded||t.raw.end())};for(n.raw.on("close",()=>{l=!0,e.subscriptionService.clearActiveStream(r,y)}),e.subscriptionService.registerActiveStream(r,y);!l;){let u=await e.subscriptionService.waitForUpdates(r,c,15e3);if(l)break;if(!u||u.length===0){t.raw.write(`: keepalive
39
+
40
+ `);continue}c=u[u.length-1].sequenceNumber,e.subscriptionService.acknowledge(r,c);let H=u.map(g=>({sequenceNumber:g.sequenceNumber,elementId:g.elementId,value:g.value,quality:g.quality,timestamp:g.timestamp}));t.raw.write(`data: ${JSON.stringify(H)}
41
+
42
+ `)}t.raw.writableEnded||t.raw.end()}catch(c){t.raw.headersSent||S(c)}}),s.post("/v1/subscriptions/delete",{schema:{body:{type:"object",required:["subscriptionIds","clientId"],properties:{subscriptionIds:{type:"array",items:{type:"string"}},clientId:{type:"string"}}}}},async n=>{let{subscriptionIds:t,clientId:r}=n.body,i=I(r),p=e.subscriptionService.list(t);for(let a of t){let c=p.find(l=>l.subscriptionId===a);if(!c||c.clientId!==i)throw R(404,`Subscription ${a} not found`)}let o=await e.subscriptionService.deleteSubscriptions(t);return d(o)}),s.post("/v1/subscriptions/list",{schema:{body:{type:"object",required:["clientId"],properties:{subscriptionIds:{type:"array",items:{type:"string"}},clientId:{type:"string"}}}}},async n=>{let{subscriptionIds:t,clientId:r}=n.body,i=I(r),p=e.subscriptionService.list(t),o;return t&&t.length>0?o=t.map(a=>{let c=p.find(l=>l.subscriptionId===a);return!c||c.clientId!==i?{success:!1,subscriptionId:a,responseDetail:{title:"Not Found",status:404,detail:`Subscription ${a} not found`}}:{success:!0,subscriptionId:a,result:c}}):o=p.filter(c=>c.clientId===i).map(c=>({success:!0,subscriptionId:c.subscriptionId,result:c})),d(o)})}async function J(s){let e=z({logger:!0});return e.decorate("deps",s),await e.register(C),await e.register(A,{origin:!0}),await e.register(M,{global:!0,threshold:0,encodings:["gzip","identity"]}),w(e),await e.register(Q,{mode:"static",specification:{document:O}}),await e.register(W,{routePrefix:"/docs"}),e.get("/openapi.json",async()=>O),D(e,s.apiKey),e.addHook("onRequest",async(n,t)=>{t.header("X-Powered-By","node-i3x (Sterfive - https://sterfive.com)")}),await e.register(_),await e.register(v),await e.register(E),await e.register(B),await e.register(N),await e.register(k),await e.register($),e}function h(s){return s.deps}export{J as createApp};
8
43
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/app.ts","../src/errors.ts","../src/middleware/auth.ts","../src/middleware/request-id.ts","../src/routes/health.ts","../src/routes/info.ts","../src/helpers/response.ts","../src/routes/namespaces.ts","../src/routes/objects.ts","../src/routes/objecttypes.ts","../src/routes/relationshiptypes.ts","../src/routes/subscriptions.ts"],"mappings":"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","names":["compress","cors","Fastify","i3xError","statusCode","message","err","rethrowAsI3x","registerErrorHandler","app","error","_req","reply","title","PUBLIC_PATHS","registerAuth","app","apiKey","request","reply","path","authHeader","scheme","token","randomUUID","fp","requestIdPlugin","app","req","reply","id","request_id_default","healthRoutes","app","deps","getDeps","opcua","_req","reply","readFileSync","successResponse","result","bulkResponse","results","r","bulkSuccess","elementId","bulkError","statusCode","message","title","toObjectInstance","node","parentId","serverVersion","readFileSync","infoRoutes","app","readOnly","successResponse","namespaceRoutes","app","deps","getDeps","ns","successResponse","n","objectRoutes","app","deps","getDeps","readOnlyGuard","_req","reply","req","model","typeElementId","root","nodes","id","n","result","node","toObjectInstance","successResponse","elementIds","results","bulkSuccess","bulkError","bulkResponse","eid","relatedObjects","cId","child","parentId","parent","maxDepth","startTime","endTime","elementId","value","err","i3xError","body","items","maybeUpdates","message","code","objecttypeRoutes","app","deps","getDeps","req","namespaceUri","types","successResponse","elementIds","found","results","eid","i","typeNode","bulkSuccess","bulkError","bulkResponse","RELATIONSHIP_TYPES","relationshiptypeRoutes","app","req","namespaceUri","types","t","successResponse","elementIds","results","eid","typeNode","bulkSuccess","bulkError","bulkResponse","requireClientId","clientId","i3xError","requireSubscriptionOwnership","deps","subscriptionId","details","subscriptionRoutes","app","getDeps","req","displayName","cid","result","successResponse","elementIds","maxDepth","registered","errors","results","eid","bulkSuccess","e","bulkError","bulkResponse","err","rethrowAsI3x","lastSequenceNumber","ackSeq","updates","reply","lastSequence","closed","closeStream","payload","u","subscriptionIds","id","d","x","createApp","deps","app","Fastify","request_id_default","cors","compress","registerErrorHandler","registerAuth","_req","reply","infoRoutes","healthRoutes","namespaceRoutes","objecttypeRoutes","relationshiptypeRoutes","objectRoutes","subscriptionRoutes","getDeps"]}
1
+ {"version":3,"sources":["../src/app.ts","../src/openapi.json","../src/errors.ts","../src/middleware/auth.ts","../src/middleware/request-id.ts","../src/routes/health.ts","../src/routes/info.ts","../src/helpers/response.ts","../src/routes/namespaces.ts","../src/routes/objects.ts","../src/routes/objecttypes.ts","../src/routes/relationshiptypes.ts","../src/routes/subscriptions.ts"],"mappings":"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","names":["compress","cors","swagger","swaggerUi","Fastify","openapi_default","i3xError","statusCode","message","err","rethrowAsI3x","registerErrorHandler","app","error","_req","reply","title","PUBLIC_PATHS","registerAuth","app","apiKey","request","reply","path","authHeader","scheme","token","randomUUID","fp","requestIdPlugin","app","req","reply","id","request_id_default","healthRoutes","app","deps","getDeps","opcua","_req","reply","readFileSync","successResponse","result","bulkResponse","results","r","bulkSuccess","elementId","bulkError","statusCode","message","title","toObjectInstance","node","parentId","serverVersion","readFileSync","infoRoutes","app","readOnly","successResponse","namespaceRoutes","app","deps","getDeps","ns","successResponse","n","objectRoutes","app","deps","getDeps","readOnlyGuard","_req","reply","req","model","typeElementId","root","nodes","id","n","result","node","toObjectInstance","successResponse","elementIds","results","bulkSuccess","bulkError","bulkResponse","eid","relatedObjects","cId","child","parentId","parent","maxDepth","startTime","endTime","elementId","value","err","i3xError","body","items","maybeUpdates","message","code","objecttypeRoutes","app","deps","getDeps","req","namespaceUri","types","successResponse","elementIds","found","results","eid","i","typeNode","bulkSuccess","bulkError","bulkResponse","RELATIONSHIP_TYPES","relationshiptypeRoutes","app","req","namespaceUri","types","t","successResponse","elementIds","results","eid","typeNode","bulkSuccess","bulkError","bulkResponse","requireClientId","clientId","i3xError","requireSubscriptionOwnership","deps","subscriptionId","details","subscriptionRoutes","app","getDeps","req","displayName","cid","result","successResponse","elementIds","maxDepth","registered","errors","results","eid","bulkSuccess","e","bulkError","bulkResponse","err","rethrowAsI3x","lastSequenceNumber","ackSeq","updates","reply","lastSequence","closed","closeStream","payload","u","subscriptionIds","id","d","x","createApp","deps","app","Fastify","request_id_default","cors","compress","registerErrorHandler","swagger","openapi_default","swaggerUi","registerAuth","_req","reply","infoRoutes","healthRoutes","namespaceRoutes","objecttypeRoutes","relationshiptypeRoutes","objectRoutes","subscriptionRoutes","getDeps"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@node-i3x/rest-server",
3
- "version": "0.8.0",
3
+ "version": "0.8.2",
4
4
  "description": "i3X REST inbound adapter — Fastify routes for the i3X Beta API",
5
5
  "license": "AGPL-3.0-or-later OR LicenseRef-Sterfive-Commercial",
6
6
  "author": "Sterfive SAS <contact@sterfive.com> (https://sterfive.com)",
@@ -59,7 +59,9 @@
59
59
  "dependencies": {
60
60
  "@fastify/compress": "^9.0.0",
61
61
  "@fastify/cors": "^11.2.0",
62
- "@node-i3x/core": "0.8.0",
62
+ "@fastify/swagger": "^9.7.0",
63
+ "@fastify/swagger-ui": "^6.0.0",
64
+ "@node-i3x/core": "0.8.2",
63
65
  "fastify": "^5.8.5",
64
66
  "fastify-plugin": "^6.0.0"
65
67
  }