UNPKG

@leisoft/aas-client

Version:

TypeScript / JavaScript AAS metamodel and client library by Leisoft for both browser and Node.js.

2 lines 34 kB
var F=(s=>(s.NONE="NONE",s.RFCTLSA="RFC_TLSA",s.W3CDID="W3C_DID",s))(F||{});var D=(u=>(u.AssetAdministrationShellServiceSpecificationSSP001="https://admin-shell.io/aas/API/3/0/AssetAdministrationShellServiceSpecification/SSP-001",u.AssetAdministrationShellServiceSpecificationSSP002="https://admin-shell.io/aas/API/3/0/AssetAdministrationShellServiceSpecification/SSP-002",u.SubmodelServiceSpecificationSSP001="https://admin-shell.io/aas/API/3/0/SubmodelServiceSpecification/SSP-001",u.SubmodelServiceSpecificationSSP002="https://admin-shell.io/aas/API/3/0/SubmodelServiceSpecification/SSP-002",u.SubmodelServiceSpecificationSSP003="https://admin-shell.io/aas/API/3/0/SubmodelServiceSpecification/SSP-003",u.AasxFileServerServiceSpecificationSSP001="https://admin-shell.io/aas/API/3/0/AasxFileServerServiceSpecification/SSP-001",u.AssetAdministrationShellRegistryServiceSpecificationSSP001="https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRegistryServiceSpecification/SSP-001",u.AssetAdministrationShellRegistryServiceSpecificationSSP002="https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRegistryServiceSpecification/SSP-002",u.SubmodelRegistryServiceSpecificationSSP001="https://admin-shell.io/aas/API/3/0/SubmodelRegistryServiceSpecification/SSP-001",u.SubmodelRegistryServiceSpecificationSSP002="https://admin-shell.io/aas/API/3/0/SubmodelRegistryServiceSpecification/SSP-002",u.DiscoveryServiceSpecificationSSP001="https://admin-shell.io/aas/API/3/0/DiscoveryServiceSpecification/SSP-001",u.AssetAdministrationShellRepositoryServiceSpecificationSSP001="https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRepositoryServiceSpecification/SSP-001",u.AssetAdministrationShellRepositoryServiceSpecificationSSP002="https://admin-shell.io/aas/API/3/0/AssetAdministrationShellRepositoryServiceSpecification/SSP-002",u.SubmodelRepositoryServiceSpecificationSSP001="https://admin-shell.io/aas/API/3/0/SubmodelRepositoryServiceSpecification/SSP-001",u.SubmodelRepositoryServiceSpecificationSSP002="https://admin-shell.io/aas/API/3/0/SubmodelRepositoryServiceSpecification/SSP-002",u.SubmodelRepositoryServiceSpecificationSSP003="https://admin-shell.io/aas/API/3/0/SubmodelRepositoryServiceSpecification/SSP-003",u.SubmodelRepositoryServiceSpecificationSSP004="https://admin-shell.io/aas/API/3/0/SubmodelRepositoryServiceSpecification/SSP-004",u.ConceptDescriptionServiceSpecificationSSP001="https://admin-shell.io/aas/API/3/0/ConceptDescriptionServiceSpecification/SSP-001",u))(D||{});var H=(b=>(b.AnnotatedRelationshipElement="AnnotatedRelationshipElement",b.BasicEventElement="BasicEventElement",b.Blob="Blob",b.Capability="Capability",b.DataElement="DataElement",b.Entity="Entity",b.EventElement="EventElement",b.File="File",b.MultiLanguageProperty="MultiLanguageProperty",b.Operation="Operation",b.Property="Property",b.Range="Range",b.ReferenceElement="ReferenceElement",b.RelationshipElement="RelationshipElement",b.SubmodelElement="SubmodelElement",b.SubmodelElementCollection="SubmodelElementCollection",b.SubmodelElementList="SubmodelElementList",b))(H||{});var G=(s=>(s.Instance="Instance",s.NotApplicable="NotApplicable",s.Type="Type",s))(G||{});var z=(p=>(p.AnyURI="xs:anyURI",p.Base64Binary="xs:base64Binary",p.Boolean="xs:boolean",p.Byte="xs:byte",p.Date="xs:date",p.DateTime="xs:dateTime",p.Decimal="xs:decimal",p.Double="xs:double",p.Duration="xs:duration",p.Float="xs:float",p.GDay="xs:gDay",p.GMonth="xs:gMonth",p.GMonthDay="xs:gMonthDay",p.GYear="xs:gYear",p.GYearMonth="xs:gYearMonth",p.HexBinary="xs:hexBinary",p.Int="xs:int",p.Integer="xs:integer",p.Long="xs:long",p.NegativeInteger="xs:negativeInteger",p.NonNegativeInteger="xs:nonNegativeInteger",p.NonPositiveInteger="xs:nonPositiveInteger",p.PositiveInteger="xs:positiveInteger",p.Short="xs:short",p.String="xs:string",p.Time="xs:time",p.UnsignedByte="xs:unsignedByte",p.UnsignedInt="xs:unsignedInt",p.UnsignedLong="xs:unsignedLong",p.UnsignedShort="xs:unsignedShort",p))(z||{});var J=(g=>(g.BLOB="BLOB",g.BOOLEAN="BOOLEAN",g.DATE="DATE",g.FILE="FILE",g.HTML="HTML",g.INTEGERCOUNT="INTEGER_COUNT",g.INTEGERCURRENCY="INTEGER_CURRENCY",g.INTEGERMEASURE="INTEGER_MEASURE",g.IRDI="IRDI",g.IRI="IRI",g.RATIONAL="RATIONAL",g.RATIONALMEASURE="RATIONAL_MEASURE",g.REALCOUNT="REAL_COUNT",g.REALCURRENCY="REAL_CURRENCY",g.REALMEASURE="REAL_MEASURE",g.STRING="STRING",g.STRINGTRANSLATABLE="STRING_TRANSLATABLE",g.TIME="TIME",g.TIMESTAMP="TIMESTAMP",g))(J||{});var j=(t=>(t.Input="input",t.Output="output",t))(j||{});var W=(t=>(t.CoManagedEntity="CoManagedEntity",t.SelfManagedEntity="SelfManagedEntity",t))(W||{});var q=(S=>(S.AnnotatedRelationshipElement="AnnotatedRelationshipElement",S.AssetAdministrationShell="AssetAdministrationShell",S.BasicEventElement="BasicEventElement",S.Blob="Blob",S.Capability="Capability",S.ConceptDescription="ConceptDescription",S.DataElement="DataElement",S.Entity="Entity",S.EventElement="EventElement",S.File="File",S.FragmentReference="FragmentReference",S.GlobalReference="GlobalReference",S.Identifiable="Identifiable",S.MultiLanguageProperty="MultiLanguageProperty",S.Operation="Operation",S.Property="Property",S.Range="Range",S.Referable="Referable",S.ReferenceElement="ReferenceElement",S.RelationshipElement="RelationshipElement",S.Submodel="Submodel",S.SubmodelElement="SubmodelElement",S.SubmodelElementCollection="SubmodelElementCollection",S.SubmodelElementList="SubmodelElementList",S))(q||{});var Y=(t=>(t.Instance="Instance",t.Template="Template",t))(Y||{});var M=(u=>(u.AnnotatedRelationshipElement="AnnotatedRelationshipElement",u.AssetAdministrationShell="AssetAdministrationShell",u.BasicEventElement="BasicEventElement",u.Blob="Blob",u.Capability="Capability",u.ConceptDescription="ConceptDescription",u.DataSpecificationIec61360="DataSpecificationIec61360",u.Entity="Entity",u.File="File",u.MultiLanguageProperty="MultiLanguageProperty",u.Operation="Operation",u.Property="Property",u.Range="Range",u.ReferenceElement="ReferenceElement",u.RelationshipElement="RelationshipElement",u.Submodel="Submodel",u.SubmodelElementCollection="SubmodelElementCollection",u.SubmodelElementList="SubmodelElementList",u))(M||{});var Q=(s=>(s.ConceptQualifier="ConceptQualifier",s.TemplateQualifier="TemplateQualifier",s.ValueQualifier="ValueQualifier",s))(Q||{});var $=(t=>(t.ExternalReference="ExternalReference",t.ModelReference="ModelReference",t))($||{});var Z=(t=>(t.Off="off",t.On="on",t))(Z||{});var w=class extends Error{constructor(t,s,r){super(`Request to AAS API at ${t.url} failed with status ${s.status}`);this.request=t;this.response=s;this.messages=r}};var d=(a,e)=>{for(let t in e){let s=e[t];Array.isArray(s)?s.forEach(r=>a.append(t,r)):typeof s=="string"&&a.set(t,s)}},h=(a,e)=>{if(e){let t={...e,limit:e.limit?String(e.limit):void 0};d(a,t)}},P=(a,e)=>{e&&d(a,e)},m=a=>btoa(a).replaceAll("+","-").replaceAll("/","_").replaceAll("=",""),X=a=>{let e=JSON.stringify(a);return m(e)},_=a=>{let e=JSON.stringify(a);return m(e)},R=(a,e)=>{if(e){let s={semanticId:_(e)};d(a,s)}},o=async(a,e,t="json")=>{if(e.status>299){let n;try{n=await e.json()}catch{n=void 0}throw new w(a,e,n)}let r;switch(t){case"json":r=await e.json();break;case"blob":r=await e.blob();break;case"text":r=await e.text();break;default:r=void 0}return r},A=(a,e,t)=>{let r={assetIds:e?.map(X),idShort:t};d(a,r)},K=(a,e)=>{let t={};for(let s in e){let r=e[s];if(r){let n=_(r);t[s]=n}}d(a,t)};var L=a=>{let e=0;return a.forEach(()=>{e++}),e};var f=class{constructor(e){this.configParams=e;let t=e.protocol??"https",s=e.port?`:${e.port}`:"",r=e.basePath?`${e.basePath.replace(/\/+$/,"")}/`:"",n=`${t}://${e.host}${s}`;this.baseUrl=new URL(r,n)}baseUrl;headers=new Headers;async request(e,t,s,r,n){let i=new URL(t.replace(/^\/+/,""),this.baseUrl);i.search=s?.toString()??"";let l=this.getHeaders();L(this.headers)===0&&(["get","delete"].includes(e)&&l.delete("Content-Type"),["put","patch","delete"].includes(e)&&l.delete("Accept"));let c=new Request(i,{headers:l,method:e,body:r,signal:n}),ae=await fetch(c);return this.headers=new Headers,[c,ae]}getHeaders(){let e;L(this.headers)>0?e=new Headers(this.headers):e=new Headers({"Content-Type":"application/json",Accept:"application/json"});let t=this.configParams.auth;if(t)switch(t.type){case"basic":{let s=btoa(`${t.username}:${t.password}`);e.set("Authorization",`Basic ${s}`);break}case"token":e.set("Authorization",`Bearer ${t.token}`);break;case"cert":e.set("X-Client-Cert",t.cert);break;default:throw new Error("Unsupported auth type")}return e}async getServiceDescription(e){let[t,s]=await this.request("get","/description",void 0,void 0,e);return await o(t,s)}};var O=class extends f{async getShellDescriptors(e,t,s,r){let n=new URLSearchParams;d(n,{assetKind:e,assetType:t}),h(n,s);let[i,l]=await this.request("get","/shell-descriptors",n,void 0,r);return await o(i,l)}async createShellDescriptor(e,t){let[s,r]=await this.request("post","/shell-descriptors",void 0,JSON.stringify(e),t);return await o(s,r)}async getShellDescriptor(e,t){let[s,r]=await this.request("get",`/shell-descriptors/${e}`,void 0,void 0,t);return await o(s,r)}async replaceShellDescriptor(e,t,s){let[r,n]=await this.request("put",`/shell-descriptors/${e}`,void 0,JSON.stringify(t),s);return await o(r,n,"void")}async deleteShellDescriptor(e,t){let[s,r]=await this.request("delete",`/shell-descriptors/${e}`,void 0,void 0,t);return await o(s,r,"void")}};var N=class extends f{async getShells(e,t,s,r){let n=new URLSearchParams;A(n,e,t),h(n,s);let[i,l]=await this.request("get","/shells",n,void 0,r);return await o(i,l)}async createShell(e,t){let[s,r]=await this.request("post","/shells",void 0,JSON.stringify(e),t);return await o(s,r)}async getShell(e,t){let[s,r]=await this.request("get",`/shells/${m(e)}`,void 0,void 0,t);return await o(s,r)}async deleteShell(e,t){let[s,r]=await this.request("delete",`/shells/${m(e)}`,void 0,void 0,t);await o(s,r,"void")}async replaceShell(e,t,s){let[r,n]=await this.request("put",`/shells/${m(e)}`,void 0,JSON.stringify(t),s);return await o(r,n)}async getShellReferences(e,t,s,r){let n=new URLSearchParams;A(n,e,t),h(n,s);let[i,l]=await this.request("get","/shells/$reference",n,void 0,r);return await o(i,l)}async getShellReference(e,t){let[s,r]=await this.request("get",`/shells/${m(e)}/$reference`,void 0,void 0,t);return await o(s,r)}async getAssetInformation(e,t){let[s,r]=await this.request("get",`/shells/${m(e)}/asset-information`,void 0,void 0,t);return await o(s,r)}async replaceAssetInformation(e,t,s){let[r,n]=await this.request("put",`/shells/${m(e)}/asset-information`,void 0,JSON.stringify(t),s);return await o(r,n)}async getShellThumbnail(e,t){this.headers.set("Accept","application/octet-stream, image/*, image/svg+xml");let[s,r]=await this.request("get",`/shells/${m(e)}/thumbnail`,void 0,void 0,t);return await o(s,r,"blob")}async replaceShellThumbnail(e,t,s){t.type?this.headers.set("Content-Type",t.type):this.headers.set("Content-Type","application/octet-stream");let[r,n]=await this.request("put",`/shells/${m(e)}/thumbnail`,void 0,t,s);await o(r,n,"void")}async deleteShellThumbnail(e,t){let[s,r]=await this.request("delete",`/shells/${m(e)}/thumbnail`,void 0,void 0,t);await o(s,r,"void")}async getShellSubmodelRefs(e,t,s){let r=new URLSearchParams;h(r,t);let[n,i]=await this.request("get",`/shells/${m(e)}/submodel-refs`,r,void 0,s);return await o(n,i)}async createShellSubmodelRef(e,t,s){let[r,n]=await this.request("post",`/shells/${m(e)}/submodel-refs`,void 0,JSON.stringify(t),s);return await o(r,n)}async deleteShellSubmodelRef(e,t,s){let[r,n]=await this.request("delete",`/shells/${m(e)}/submodel-refs/${t}`,void 0,void 0,s);await o(r,n,"void")}};var C=class extends f{async getConceptDescriptions(e,t,s,r,n){let i=new URLSearchParams;d(i,{idShort:e}),K(i,{isCaseOf:t,dataSpecificationRef:s}),h(i,r);let[l,c]=await this.request("get","/concept-descriptions",i,void 0,n);return await o(l,c)}async createConceptDescription(e,t){let[s,r]=await this.request("post","/concept-descriptions",void 0,JSON.stringify(e),t);return await o(s,r)}async getConceptDescription(e,t){let[s,r]=await this.request("get",`/concept-descriptions/${e}`,void 0,void 0,t);return await o(s,r)}async replaceConceptDescription(e,t,s){let[r,n]=await this.request("put",`/concept-descriptions/${e}`,void 0,JSON.stringify(t),s);return await o(r,n,"void")}async deleteConceptDescription(e,t){let[s,r]=await this.request("delete",`/concept-descriptions/${e}`,void 0,void 0,t);return await o(s,r,"void")}};var U=class extends f{async lookupShells(e,t,s){let r=new URLSearchParams;A(r,e),h(r,t);let[n,i]=await this.request("get","/lookup/shells",r,void 0,s);return await o(n,i)}async lookupAssetIds(e,t){let[s,r]=await this.request("get",`/lookup/shells/${e}`,void 0,void 0,t);return await o(s,r)}async createAssetLink(e,t,s){let[r,n]=await this.request("post",`/lookup/shells/${e}`,void 0,JSON.stringify(t),s);return await o(r,n)}async deleteAssetLink(e,t){let[s,r]=await this.request("delete",`/lookup/shells/${e}`,void 0,void 0,t);return await o(s,r,"void")}};var k=class extends f{async getSubmodelDescriptors(e,t){let s=new URLSearchParams;h(s,e);let[r,n]=await this.request("get","/submodel-descriptors",s,void 0,t);return await o(r,n)}async createSubmodelDescriptor(e,t){let[s,r]=await this.request("post","/submodel-descriptors",void 0,JSON.stringify(e),t);return await o(s,r)}async getSubmodelDescriptor(e,t){let[s,r]=await this.request("get",`/submodel-descriptors/${e}`,void 0,void 0,t);return await o(s,r)}async replaceSubmodelDescriptor(e,t,s){let[r,n]=await this.request("put",`/submodel-descriptors/${e}`,void 0,JSON.stringify(t),s);return await o(r,n,"void")}async deleteSubmodelDescriptor(e,t){let[s,r]=await this.request("delete",`/submodel-descriptors/${e}`,void 0,void 0,t);return await o(s,r,"void")}};var V=class extends f{async getSubmodels(e,t,s,r,n){let i=new URLSearchParams;d(i,{idShort:t}),R(i,e),h(i,s),P(i,r);let[l,c]=await this.request("get","/submodels",i,void 0,n);return await o(l,c)}async createSubmodel(e,t){let[s,r]=await this.request("post","/submodels",void 0,JSON.stringify(e),t);return await o(s,r)}async getSubmodelsMetadata(e,t,s,r,n){let i=new URLSearchParams;d(i,{idShort:t}),R(i,e),h(i,s),P(i,r);let[l,c]=await this.request("get","/submodels/$metadata",i,void 0,n);return await o(l,c)}async getSubmodelsValue(e,t,s,r,n){let i=new URLSearchParams;d(i,{idShort:t}),R(i,e),h(i,s),P(i,r);let[l,c]=await this.request("get","/submodels/$value",i,void 0,n);return await o(l,c)}async getSubmodelReferences(e,t,s,r,n){let i=new URLSearchParams;d(i,{idShort:t}),R(i,e),h(i,s),P(i,r);let[l,c]=await this.request("get","/submodels/$reference",i,void 0,n);return await o(l,c)}async getSubmodelsPaths(e,t,s,r,n){let i=new URLSearchParams;d(i,{idShort:t}),R(i,e),h(i,s),P(i,r);let[l,c]=await this.request("get","/submodels/$path",i,void 0,n);return await o(l,c)}async getSubmodel(e,t,s){let r=new URLSearchParams;P(r,t);let[n,i]=await this.request("get",`/submodels/${m(e)}`,r,void 0,s);return await o(n,i)}async replaceSubmodel(e,t,s){let[r,n]=await this.request("put",`/submodels/${m(e)}`,void 0,JSON.stringify(t),s);return await o(r,n,"void")}async updateSubmodel(e,t,s,r){let n=new URLSearchParams;d(n,{level:s});let[i,l]=await this.request("patch",`/submodels/${m(e)}`,n,JSON.stringify(t),r);return await o(i,l,"void")}async deleteSubmodel(e,t){let[s,r]=await this.request("delete",`/submodels/${m(e)}`,void 0,void 0,t);return await o(s,r,"void")}async getSubmodelMetadata(e,t,s){let r=new URLSearchParams;d(r,{level:t});let[n,i]=await this.request("get",`/submodels/${m(e)}/$metadata`,r,void 0,s);return await o(n,i)}async updateSubmodelMetadata(e,t,s,r){let n=new URLSearchParams;d(n,{level:s});let[i,l]=await this.request("patch",`/submodels/${m(e)}`,n,JSON.stringify(t),r);return await o(i,l,"void")}async getSubmodelValue(e,t,s){let r=new URLSearchParams;P(r,t);let[n,i]=await this.request("get",`/submodels/${m(e)}/$value`,r,void 0,s);return await o(n,i)}async getSubmodelReference(e,t){let[s,r]=await this.request("get",`/submodels/${m(e)}/$reference`,void 0,void 0,t);return await o(s,r)}async getSubmodelPaths(e,t,s){let r=new URLSearchParams;d(r,{level:t});let[n,i]=await this.request("get",`/submodels/${m(e)}/$path`,r,void 0,s);return await o(n,i)}async getSubmodelElements(e,t,s,r){let n=new URLSearchParams;h(n,t),P(n,s);let[i,l]=await this.request("get",`/submodels/${m(e)}/submodel-elements`,n,void 0,r);return await o(i,l)}async createSubmodelElement(e,t,s){let[r,n]=await this.request("post",`/submodels/${m(e)}/submodel-elements`,void 0,JSON.stringify(t),s);return await o(r,n)}async getSubmodelElementsMetadata(e,t,s,r){let n=new URLSearchParams;d(n,{level:s}),h(n,t);let[i,l]=await this.request("get",`/submodels/${m(e)}/submodel-elements/$metadata`,n,void 0,r);return await o(i,l)}async getSubmodelElementsValue(e,t,s,r){let n=new URLSearchParams;h(n,t),P(n,s);let[i,l]=await this.request("get",`/submodels/${m(e)}/submodel-elements/$value`,n,void 0,r);return await o(i,l)}async getSubmodelElementReferences(e,t,s){let r=new URLSearchParams;h(r,t),d(r,{level:"core"});let[n,i]=await this.request("get",`/submodels/${m(e)}/submodel-elements/$reference`,r,void 0,s);return await o(n,i)}async getSubmodelElementsPaths(e,t,s,r){let n=new URLSearchParams;h(n,t),d(n,{level:s});let[i,l]=await this.request("get",`/submodels/${m(e)}/submodel-elements/$path`,n,void 0,r);return await o(i,l)}async getSubmodelElement(e,t,s,r){let n=new URLSearchParams;P(n,s);let[i,l]=await this.request("get",`/submodels/${m(e)}/submodel-elements/${t}`,n,void 0,r);return await o(i,l)}async createSubmodelElementAtPath(e,t,s,r){let[n,i]=await this.request("post",`/submodels/${m(e)}/submodel-elements/${t}`,void 0,JSON.stringify(s),r);return await o(n,i)}async replaceSubmodelElement(e,t,s,r,n){let i=new URLSearchParams;d(i,{level:r});let[l,c]=await this.request("put",`/submodels/${m(e)}/submodel-elements/${t}`,i,JSON.stringify(s),n);return await o(l,c,"void")}async updateSubmodelElement(e,t,s,r,n){let i=new URLSearchParams;d(i,{level:r});let[l,c]=await this.request("patch",`/submodels/${m(e)}/submodel-elements/${t}`,i,JSON.stringify(s),n);return await o(l,c,"void")}async deleteSubmodelElement(e,t,s){let[r,n]=await this.request("delete",`/submodels/${m(e)}/submodel-elements/${t}`,void 0,void 0,s);return await o(r,n,"void")}async getSubmodelElementMetadata(e,t,s,r){let n=new URLSearchParams;d(n,{level:s});let[i,l]=await this.request("get",`/submodels/${m(e)}/submodel-elements/${t}/$metadata`,n,void 0,r);return await o(i,l)}async updateSubmodelElementMetadata(e,t,s,r,n){let i=new URLSearchParams;d(i,{level:r});let[l,c]=await this.request("patch",`/submodels/${m(e)}/submodel-elements/${t}/$metadata`,i,JSON.stringify(s),n);return await o(l,c,"void")}async getSubmodelElementValue(e,t,s,r){let n=new URLSearchParams;P(n,s);let[i,l]=await this.request("get",`/submodels/${m(e)}/submodel-elements/${t}/$value`,n,void 0,r);return await o(i,l)}async getSubmodelElementReference(e,t,s){let r=new URLSearchParams;d(r,{level:"core"});let[n,i]=await this.request("get",`/submodels/${m(e)}/submodel-elements/${t}/$reference`,r,void 0,s);return await o(n,i)}async getSubmodelElementPaths(e,t,s,r){let n=new URLSearchParams;d(n,{level:s});let[i,l]=await this.request("get",`/submodels/${m(e)}/submodel-elements/${t}/$path`,n,void 0,r);return await o(i,l)}async getSubmodelElementFile(e,t,s){this.headers.set("Accept","application/octet-stream");let[r,n]=await this.request("get",`/submodels/${m(e)}/submodel-elements/${t}/attachment`,void 0,void 0,s);return await o(r,n,"blob")}async setSubmodelElementFile(e,t,s,r,n){let i=new FormData;i.append("file",s),i.append("fileName",r),this.headers.set("Content-Type","multipart/form-data");let[l,c]=await this.request("put",`/submodels/${m(e)}/submodel-elements/${t}/attachment`,void 0,i,n);return await o(l,c,"void")}async deleteSubmodelElementFile(e,t,s){let[r,n]=await this.request("delete",`/submodels/${m(e)}/submodel-elements/${t}/attachment`,void 0,void 0,s);return await o(r,n,"void")}async invokeOperation(e,t,s,r,n){let i=new URLSearchParams;d(i,{async:String(r)});let[l,c]=await this.request("post",`/submodels/${m(e)}/submodel-elements/${t}/invoke`,i,JSON.stringify(s),n);return await o(l,c)}async invokeOperationValue(e,t,s,r,n){let i=new URLSearchParams;d(i,{async:String(r)});let[l,c]=await this.request("post",`/submodels/${m(e)}/submodel-elements/${t}/invoke/$value`,i,JSON.stringify(s),n);return await o(l,c)}async invokeOperationAsync(e,t,s,r){let[n,i]=await this.request("post",`/submodels/${m(e)}/submodel-elements/${t}/invoke-async`,void 0,JSON.stringify(s),r);return await o(n,i,"void"),i.headers.get("Location")??""}async invokeOperationAsyncValue(e,t,s,r){let[n,i]=await this.request("post",`/submodels/${m(e)}/submodel-elements/${t}/invoke-async/$value`,void 0,JSON.stringify(s),r);return await o(n,i,"void"),i.headers.get("Location")??""}async getOperationStatus(e,t,s,r){let[n,i]=await this.request("get",`/submodels/${m(e)}/submodel-elements/${t}/operation-status/${m(s)}`,void 0,void 0,r);return await o(n,i)}async getOperationResults(e,t,s,r){let[n,i]=await this.request("get",`/submodels/${m(e)}/submodel-elements/${t}/operation-results/${m(s)}`,void 0,void 0,r);return await o(n,i)}async getOperationResultsValue(e,t,s,r){let[n,i]=await this.request("get",`/submodels/${m(e)}/submodel-elements/${t}/operation-results/${m(s)}/$value`,void 0,void 0,r);return await o(n,i)}};var ee=(i=>(i.Initiated="Initiated",i.Running="Running",i.Completed="Completed",i.Canceled="Canceled",i.Failed="Failed",i.Timeout="Timeout",i))(ee||{});var E=class a{constructor(e){this.element=e}_submodel;_parent;get submodel(){return this._submodel??this.parent?.submodel}get parent(){return this._parent}addToSubmodel(e){if(this._parent)throw new Error("Only root nodes can be added to a submodel.");this._submodel=e}removeFromSubmodel(){if(!this._parent)throw new Error("Only root nodes can be removed from a submodel.");this._submodel=void 0}get isList(){return!1}get isCollection(){return!1}get idShortPath(){let e=this.element.idShort;if(this.parent)if(this.parent.isList){let t=this.parent.indexOf(this.element);e+=`[${t}]`}else e=`${this.parent.idShortPath}.${e}`;return e}indexOf(e){return-1}static setParent(e,t){t._parent=e}static removeParent(e){e._parent=void 0}static from(e){let t;switch(e.modelType){case"AnnotatedRelationshipElement":case"Entity":case"SubmodelElementCollection":{t=new v(e);let s=e.annotations??e.statements??e.value;if(s)for(let r of s)t.set(r);break}case"SubmodelElementList":{t=new y(e);let s=e;if(s.value)for(let r of s.value)t.add(r);break}default:t=new a(e);break}return t}get children(){return[]}deepSearch(e,t,s){let r=[];if((!e||e(this.element))&&(r.push(this),t?.(this.element)),!s||s>0)for(let n of this.children){let i=n.deepSearch(e,t,s?s-1:void 0);r.push(...i)}return r}breadthFirstSearch(e,t,s){let r=[],n=[[this,0]];for(;n.length>0;){let[i,l]=n.shift();if(!s||l<=s){(!e||e(i.element))&&(r.push(i),t?.(i.element));for(let c of i.children)n.push([c,l+1])}}return r}toSubmodelElement(){return this.element}},y=class extends E{constructor(t){super(t);this.element=t}_elements=[];_elementNodeMap=new Map;get isList(){return!0}indexOf(t){let s=-1,r=this._elementNodeMap.get(t);return r&&(s=this._elements.indexOf(r)),s}includes(t){return this._elementNodeMap.has(t)}addElementToMap(t){let s=E.from(t);return this._elementNodeMap.set(t,s),E.setParent(this,s),s}add(t){if(this.includes(t))throw new Error("Element already exists in the list.");let s=this.addElementToMap(t);this._elements.push(s)}replaceAt(t,s){if(t<0||t>=this._elements.length)throw new Error("Index out of bounds.");let r=this.addElementToMap(s);this._elements[t]=r}removeAt(t){if(t<0||t>=this._elements.length)throw new Error("Index out of bounds.");let s=this._elements[t];this._elementNodeMap.delete(s.element),this._elements.splice(t,1),E.removeParent(s)}remove(t){let s=!1,r=this.indexOf(t);return r!==-1&&(this.removeAt(r),s=!0),s}clear(){this._elements.forEach(t=>{E.removeParent(t)}),this._elements=[],this._elementNodeMap.clear()}get length(){return this._elements.length}values(){return this._elements.map(t=>t.element)}entries(){return this._elements.map((t,s)=>[s,t.element])}get(t){if(t<0||t>=this._elements.length)throw new Error("Index out of bounds.");return this._elements[t].element}[Symbol.iterator](){return this._elements.map(t=>t.element)[Symbol.iterator]()}get children(){return Array.from(this._elements)}toSubmodelElement(){let t=this.element;return t.value=this._elements.map(s=>s.toSubmodelElement()),t}},v=class extends E{constructor(t){super(t);this.element=t}_elementMap=new Map;get isCollection(){return!0}set(t){if(!t.idShort)throw new Error("Element must have an idShort.");this._elementMap.has(t.idShort)&&this.delete(t.idShort);let s=E.from(t);return this._elementMap.set(t.idShort,s),E.setParent(this,s),this}get(t){return this._elementMap.get(t)?.element}delete(t){let s=!1,r=this._elementMap.get(t);return r&&(this._elementMap.delete(t),E.removeParent(r),s=!0),s}has(t){return this._elementMap.has(t)}clear(){this._elementMap.forEach(t=>{E.removeParent(t)}),this._elementMap.clear()}keys(){return Array.from(this._elementMap.keys())}values(){return Array.from(this._elementMap.values()).map(t=>t.element)}entries(){return Array.from(this._elementMap.entries()).map(([t,s])=>[t,s.element])}forEach(t){this._elementMap.forEach((s,r)=>{t(s.element,r)})}get size(){return this._elementMap.size}[Symbol.iterator](){return this.entries()[Symbol.iterator]()}get children(){return Array.from(this._elementMap.values())}toSubmodelElement(){let t=[...this._elementMap.values()].map(s=>s.toSubmodelElement());return this.element.modelType==="AnnotatedRelationshipElement"?this.element.annotations=t:this.element.modelType==="Entity"?this.element.statements=t:this.element.value=t,this.element}};var B=class{constructor(e){this.submodel=e}_elementMap=new Map;delete(e){let t=this._elementMap.get(e);return t&&(this._elementMap.delete(e),t.removeFromSubmodel()),t}set(e){if(!e.idShort)throw new Error("Element must have an idShort.");this._elementMap.has(e.idShort)&&this.delete(e.idShort);let t=E.from(e);return this._elementMap.set(e.idShort,t),t.addToSubmodel(this),this}has(e){return this._elementMap.has(e)}get(e){return this._elementMap.get(e)?.element}clear(){this._elementMap.forEach(e=>{e.removeFromSubmodel()}),this._elementMap.clear()}keys(){return Array.from(this._elementMap.keys())}values(){return Array.from(this._elementMap.values()).map(e=>e.element)}entries(){return Array.from(this._elementMap.entries()).map(([e,t])=>[e,t.element])}forEach(e){this._elementMap.forEach((t,s)=>{e(t.element,s)})}get size(){return this._elementMap.size}[Symbol.iterator](){return this.entries()[Symbol.iterator]()}deepSearch(e,t,s){let r=[];return this._elementMap.forEach(n=>{n.deepSearch(e,t,s).forEach(i=>{r.push(i)})}),r}breadthFirstSearch(e,t,s){let r=[];return this._elementMap.forEach(n=>{n.breadthFirstSearch(e,t,s).forEach(i=>{r.push(i)})}),r}toSubmodel(){let e=this.submodel;return e.submodelElements=Array.from(this._elementMap.values()).map(t=>t.toSubmodelElement()),e}};var te=/(?<idShort>[a-z]\w*)/i,I=/^[a-z]\w*$/i,et=/\[(?<index>\d+)\]/,se=/\[(?<index>\d+)\]$/,tt=a=>{let e=new Map;return a.forEach(t=>{e.set(t.language,t.text)}),e},st=a=>{let e=[];return a.forEach((t,s)=>{e.push({language:s,text:t})}),e},le=a=>{let e;switch(a){case"AssetAdministrationShell":e="AssetAdministrationShell";break;case"Submodel":e="Submodel";break;case"ConceptDescription":e="ConceptDescription";break;case"AnnotatedRelationshipElement":e="AnnotatedRelationshipElement";break;case"Capability":e="Capability";break;case"BasicEventElement":e="BasicEventElement";break;case"Blob":e="Blob";break;case"File":e="File";break;case"MultiLanguageProperty":e="MultiLanguageProperty";break;case"Property":e="Property";break;case"Range":e="Range";break;case"ReferenceElement":e="ReferenceElement";break;case"RelationshipElement":e="RelationshipElement";break;case"SubmodelElementCollection":e="SubmodelElementCollection";break;case"SubmodelElementList":e="SubmodelElementList";break;case"Operation":e="Operation";break;case"Entity":e="Entity";break;default:throw new Error(`Model type '${a}' can't be converted to a key type.`)}return e},rt=a=>{let e={type:"ModelReference",keys:[],referredSemanticId:void 0};switch(a.modelType){case"AssetAdministrationShell":e.keys.push({type:"AssetAdministrationShell",value:a.id});break;case"Submodel":e.keys.push({type:"Submodel",value:a.id}),e.referredSemanticId=a.semanticId;break;case"ConceptDescription":e.keys.push({type:"ConceptDescription",value:a.id});break;default:{let t=a;if(!t.idShort)throw new Error("SubmodelElement does not have an idShort.");e.keys.push({type:le(a.modelType),value:t.idShort}),e.referredSemanticId=t.semanticId}}return e};var re=/^[a-z]\w*(\[\d+\])*(\.[a-z]\w*(\[\d+\])*)*$/i,me=/(?<segment>[a-z]\w*)(\[\d+\])*/i,T=class a{_path;static validatePath(e){return re.test(e)}static validatePathOrThrow(e){if(!a.validatePath(e))throw new Error(`Invalid IdShortPath: ${e}`)}constructor(e){a.validatePathOrThrow(e),this._path=e}get path(){return this._path}isValid(){return a.validatePath(this._path)}isListItem(){return this._path.endsWith("]")}hasIdShort(){return!this.isListItem()}hasParent(){return this._path.includes(".")||this.isListItem()}isRoot(){return!this.hasParent()}joinPath(e){this._path=`${this._path}.${e}`,a.validatePathOrThrow(this._path)}joinIdShort(e){if(I.test(e))this.joinPath(e);else throw new Error(`${e} is not a valid IdShort.`)}joinIndex(e){this._path=`${this._path}[${e}]`,a.validatePathOrThrow(this._path)}get index(){let e=-1,t=this._path.match(se);if(t&&t.groups&&t.groups.index)e=Number.parseInt(t.groups.index,10);else throw new Error(`${this._path} is not an index element.`);return e}get segments(){return this._path.split(".")}get lastSegment(){return this.segments[this.segments.length-1]}get firstSegment(){return this.segments[0]}get idShort(){let e=this.lastSegment;if(I.test(e))return e;throw new Error(`${this._path} is an index element.`)}get parent(){let e;if(this.hasParent())if(this.isListItem()){let t=this._path.substring(0,this._path.lastIndexOf("["));e=new a(t)}else{let t=this._path.substring(0,this._path.lastIndexOf("."));e=new a(t)}else throw new Error(`${this._path} has no parent.`);return e}get root(){let e=new a(this.firstSegment);for(;e.hasParent();)e=e.parent;return e.path}changeIndex(e){if(this.isListItem()){let t=this.parent;this._path=`${t._path}[${e}]`,a.validatePathOrThrow(this._path)}else throw new Error(`${this._path} is not an index element.`)}changeIdShort(e){if(I.test(e))if(this.hasIdShort()){let t=this.parent;this._path=`${t._path}.${e}`,a.validatePathOrThrow(this._path)}else throw new Error(`${this._path} is a list item and has no idShort.`);else throw new Error(`${e} is not a valid IdShort.`)}get allIdShorts(){let e=this._path.match(te),t;return e?t=e.map(s=>s[0]):t=[],t}removeIndex(){if(this.isListItem()){let e=this.parent;this._path=e._path,a.validatePathOrThrow(this._path)}else throw new Error(`${this._path} is not an index element.`)}get allIdShortPaths(){let e=[],t=this;for(;t.hasParent();)e.push(t.path),t=t.parent;return e.push(t.path),e.reverse()}};var ne=/^[\w.-]+$/,x=a=>{if(!ne.test(a))throw new Error(`Invalid ID segment: ${a}. It must match the regex ${ne}.`)},ie=()=>{if(typeof crypto<"u"&&typeof crypto.getRandomValues=="function"){let a=new Uint8Array(16);return crypto.getRandomValues(a),a[6]=a[6]&15|64,a[8]=a[8]&63|128,[...a].map((e,t)=>{let s=e.toString(16).padStart(2,"0");return[4,6,8,10].includes(t)?`-${s}`:s}).join("")}else return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,a=>{let e=Math.random()*16|0;return(a==="x"?e:e&3|8).toString(16)})},oe=class a{domain;idType;id;units;toUrn(){let e="urn:";switch(this.domain?(x(this.domain),e+=`${this.domain}:`):e+="client.leisoft.de:",this.units&&this.units.forEach(t=>{x(t),e+=`${t}:`}),this.idType){case"asset":e+="assets";break;case"shell":e+="shells";break;case"submodel":e+="submodels";break;case"concept-description":e+="concept_descriptions";break;default:e+="entities";break}return e+=":ids:",this.id?(x(this.id),e+=this.id):e+=ie(),e}toUrl(e){let t=`${e}://`;switch(this.domain?(x(this.domain),t+=`${this.domain}/`):e==="file"?t+="/":t+="client.leisoft.de/",this.units&&this.units.forEach(s=>{x(s),t+=`${s}/`}),this.idType){case"asset":t+="assets";break;case"shell":t+="shells";break;case"submodel":t+="submodels";break;case"concept-description":t+="concept_descriptions";break;default:t+="entities";break}return t+="/ids/",this.id?(x(this.id),t+=this.id):t+=ie(),t}static from(e){let t=new a;return t.domain=e.domain,t.idType=e.idType,t.id=e.id,t.units=e.units?[...e.units]:void 0,t}};export{O as AasRegistryClient,N as AasRepoClient,w as AasRequestError,H as AasSubmodelElements,G as AssetKind,f as ClientBase,C as ConceptDescriptionClient,z as DataTypeDefXsd,J as DataTypeIec61360,j as Direction,U as DiscoveryClient,W as EntityType,ee as ExecutionState,re as ID_SHORT_PATH_REGEX,me as ID_SHORT_PATH_SEGMENT_REGEX,te as ID_SHORT_REGEX,et as INDEX_REGEX,T as IdShortPath,I as JUST_ID_SHORT_REGEX,q as KeyTypes,se as LAST_INDEX_REGEX,oe as LeisoftAasId,M as ModelType,Y as ModellingKind,F as ProtocolInformationSecurityAttributeTypes,Q as QualifierKind,$ as ReferenceTypes,D as ServiceProfiles,Z as StateOfEvent,v as SubmodelElementCollectionNode,E as SubmodelElementNode,y as SubmodelElementNodeList,k as SubmodelRegistryClient,V as SubmodelRepoClient,B as SubmodelTree,ne as VALID_ID_SEGMENT_REGEX,o as assertValidAasResponse,A as assignAssetParams,h as assignPagingParams,d as assignSearchParams,R as assignSemanticId,P as assignSerializationModifiers,m as base64Url,_ as encodeReference,X as encodeSpecificAssetId,tt as langStringsToMap,st as mapToLangStrings,le as modelTypeToKeyType,rt as referenceFrom,ie as uuidv4,x as validateIdSegmentOrThrow}; //# sourceMappingURL=index.mjs.map