@kanonak-protocol/sdk 5.12.0 → 5.14.0

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.
Files changed (36) hide show
  1. package/dist/browser.js +1 -1
  2. package/dist/{chunk-IHB7UVEH.js → chunk-4PY3JJH3.js} +4 -4
  3. package/dist/{chunk-S6VSAKXB.js → chunk-5NH5XDGO.js} +1 -1
  4. package/dist/{chunk-EZSHR3CB.js → chunk-LYSCTQC2.js} +1 -1
  5. package/dist/chunk-MK6UVFOJ.js +2 -0
  6. package/dist/chunk-Q6XQ5IXW.js +63 -0
  7. package/dist/chunk-SVUMCLK5.js +1 -0
  8. package/dist/chunk-V6KIDED2.js +1 -0
  9. package/dist/chunk-YW6P24RF.js +1 -0
  10. package/dist/{chunk-TVSHIXLA.js → chunk-ZQAAF3GB.js} +1 -1
  11. package/dist/graph/GraphBuilder.d.ts +29 -2
  12. package/dist/index.js +1 -1
  13. package/dist/kanonaks/walkDefinedKanonaks.d.ts +22 -0
  14. package/dist/parsing/KanonakObjectParser.d.ts +22 -0
  15. package/dist/parsing/index.js +1 -1
  16. package/dist/reasoning/index.js +1 -1
  17. package/dist/resolution/ResourceTypeClassifier.d.ts +24 -0
  18. package/dist/resolution/TypeDirectedResolver.d.ts +37 -0
  19. package/dist/resolution/index.d.ts +3 -2
  20. package/dist/resolution/index.js +1 -1
  21. package/dist/search/index.js +1 -1
  22. package/dist/server/index.js +1 -1
  23. package/dist/transformations/index.js +1 -1
  24. package/dist/uri-helpers/index.js +1 -1
  25. package/dist/validation/documentModel.d.ts +2 -15
  26. package/dist/validation/index.js +1 -1
  27. package/dist/validation/rules/repository/PropertyRangeRequiredRule.d.ts +4 -0
  28. package/dist/validation/rules/repository/SubPropertyOfReferenceRule.d.ts +4 -2
  29. package/package.json +2 -2
  30. package/dist/chunk-6U26UASC.js +0 -1
  31. package/dist/chunk-7BHDZHJY.js +0 -1
  32. package/dist/chunk-7K5TAJ44.js +0 -63
  33. package/dist/chunk-GZPLWII7.js +0 -1
  34. package/dist/chunk-MX3DEXMV.js +0 -1
  35. package/dist/chunk-Y37TQT74.js +0 -2
  36. package/dist/chunk-ZP6P7HNU.js +0 -1
@@ -1,2 +0,0 @@
1
- import{e as U}from"./chunk-UXYCUGSF.js";import{H as ge,I as ye}from"./chunk-7K5TAJ44.js";import{a as ee,b as A,c as ce,h as V,l as $}from"./chunk-MX3DEXMV.js";import{a as h,d as K,e as de,f as fe}from"./chunk-ZP6P7HNU.js";import{i as ue}from"./chunk-GZPLWII7.js";import{b as Z,c as E,d as T,f as te,g as re,h as oe,i as se,j as ae,k as ie,l as F,m as I,r as L,t as pe,v as N,w as le,y as G}from"./chunk-7BHDZHJY.js";import{a as ne}from"./chunk-FUUTGGJS.js";import{d as Q}from"./chunk-2ACBWC7K.js";var ke=(a=>(a.Class="Class",a.DatatypeProperty="DatatypeProperty",a.ObjectProperty="ObjectProperty",a.AnnotationProperty="AnnotationProperty",a.Instance="Instance",a.Datatype="Datatype",a.Unknown="Unknown",a))(ke||{}),be=(i=>(i.InstanceOf="instanceOf",i.SubClassOf="subClassOf",i.Domain="domain",i.Range="range",i.ObjectRelationship="objectRelationship",i.SubPropertyOf="subPropertyOf",i.PropertyValue="propertyValue",i.EmbeddedLink="embeddedLink",i))(be||{}),z=class{static async buildFromRepository(n){let r=await new $().parseKanonaks(n),o=await n.getAllDocumentsAsync(),s=[],p=[],a=new Set,i=new Set,g=new Map;for(let c of r){let u=c;u.name&&(h.isClassType(u)&&a.add(u.name),(h.isObjectPropertyType(u)||h.isGenericPropertyType(u))&&i.add(u.name))}for(let c of o)for(let[u,f]of Object.entries(c.body))i.has(u)&&f?.range&&typeof f.range=="string"&&g.set(u,f.range);let d=new Map;for(let c of r){let u=c;u.name&&d.set(u.name,u)}for(let c of o){let u=c.metadata.namespace_,f=u?`${u.publisher}/${u.package_}`:"",l=u?.version?`${u.version.major}.${u.version.minor}.${u.version.patch}`:"",y=me(c);for(let[k,m]of Object.entries(c.body)){if(!m||typeof m!="object")continue;let C=d.get(k),b="Unknown";if(C){let S=C;h.isClassType(S)?b="Class":h.isObjectPropertyType(S)?b="ObjectProperty":h.isDatatypePropertyType(S)?b="DatatypeProperty":h.isAnnotationPropertyType(S)?b="AnnotationProperty":h.isDatatypeType(S)?b="Datatype":h.isGenericPropertyType(S)?b="ObjectProperty":h.isInstanceOfKnownClass(S,a)&&(b="Instance")}let O=f&&l?`${f}/${k}@${l}`:k,J={};for(let[S,M]of Object.entries(m))S!=="type"&&(typeof M!="object"||M===null)&&(J[S]=M);s.push({id:O,label:m.label??k,type:b,namespace:f,properties:J}),he(O,m,b,a,i,p,f,l,y),B(O,m,i,g,s,p,f,l,y),Me(O,C,p)}}return{nodes:s,edges:p}}static buildFromDocument(n){let t=[],r=[],o=n.metadata.namespace_,s=o?.version?`${o.version.major}.${o.version.minor}.${o.version.patch}`:"",p=o?`${o.publisher}/${o.package_}`:"",a=new Set,i=new Set,g=new Map,d=me(n);for(let[f,l]of Object.entries(n.body)){let y=l?.type;y&&(Ke(y,d)&&a.add(f),xe(y,d)&&(i.add(f),l.range&&typeof l.range=="string"&&g.set(f,l.range)))}for(let[f,l]of Object.entries(n.body)){if(!l||typeof l!="object")continue;let y=l.type,k=De(y,f,a,d),m=p&&s?`${p}/${f}@${s}`:f,C={};for(let[b,O]of Object.entries(l))b!=="type"&&(typeof O!="object"||O===null)&&(C[b]=O);t.push({id:m,label:l.label??f,type:k,namespace:p,properties:C}),he(m,l,k,a,i,r,p,s,d),B(m,l,i,g,t,r,p,s,d)}let c=new Set(t.map(f=>f.id)),u=r.filter(f=>c.has(f.source)&&c.has(f.target));return{nodes:t,edges:u}}};function me(e,n){let t=new Map;if(e.metadata?.imports)for(let[r,o]of Object.entries(e.metadata.imports))for(let s of o){let p=s.alias??s.packageName,a=s.version,i=`${a.major}.${a.minor}.${a.patch}`;t.set(p,{publisher:r,package_:s.packageName,version:i})}return t}var Ce={"kanonak.org/core-rdf/Class":"Class","kanonak.org/core-owl/Class":"Class","kanonak.org/core-rdfs/Class":"Class","kanonak.org/core-owl/ObjectProperty":"ObjectProperty","kanonak.org/core-owl/DatatypeProperty":"DatatypeProperty","kanonak.org/core-owl/AnnotationProperty":"AnnotationProperty","kanonak.org/core-rdf/Property":"ObjectProperty","kanonak.org/core-rdfs/Datatype":"Datatype"},$e=new Set(["kanonak.org/core-owl/ObjectProperty","kanonak.org/core-owl/DatatypeProperty","kanonak.org/core-owl/AnnotationProperty","kanonak.org/core-rdf/Property"]);function H(e,n){if(e.includes(".")){let t=e.indexOf("."),r=e.substring(0,t),o=e.substring(t+1),s=n.get(r);if(s)return`${s.publisher}/${s.package_}/${o}`}return null}function Ke(e,n){let t=H(e,n);return t?Ce[t]==="Class":!1}function xe(e,n){let t=H(e,n);return t?$e.has(t):!1}function De(e,n,t,r){if(!e||e==="Package")return"Unknown";let o=H(e,r);if(o){let p=Ce[o];if(p)return p;let a=o.split("/").pop()?.split("@")[0]??"";return t.has(a)?"Instance":"Unknown"}let s=e.split(".").pop()??e;return t.has(s)?"Instance":"Unknown"}var Se=new Set(["type","label","comment","version","publisher","imports","license","match","alias","package"]);function he(e,n,t,r,o,s,p,a,i){let g=n.type,d=n.subClassOf;if(d){let l=Array.isArray(d)?d:[d];for(let y of l)typeof y=="string"&&s.push({source:e,target:P(y,p,a,i),type:"subClassOf",label:"subClassOf"})}let c=n.subPropertyOf;if(c){let l=Array.isArray(c)?c:[c];for(let y of l)typeof y=="string"&&s.push({source:e,target:P(y,p,a,i),type:"subPropertyOf",label:"subPropertyOf"})}if(t==="Instance"&&g){let l=g.split(".").pop()??g;s.push({source:e,target:P(l,p,a,i),type:"instanceOf",label:"type"})}if(t==="Instance")for(let[l,y]of Object.entries(n)){if(Se.has(l)||!o.has(l))continue;let k=Array.isArray(y)?y:[y];for(let m of k)typeof m=="string"&&Ue(m)&&s.push({source:e,target:P(m,p,a,i),type:"propertyValue",label:l,propertyId:P(l,p,a,i)})}let u=t==="ObjectProperty"||t==="DatatypeProperty",f=n.domain&&n.range;if((u||f)&&n.domain&&n.range){let l=typeof n.domain=="string"?n.domain:null,y=typeof n.range=="string"?n.range:null;l&&y&&s.push({source:P(l,p,a,i),target:P(y,p,a,i),type:"objectRelationship",label:n.label??e.split("/").pop()??"",propertyId:e})}}function B(e,n,t,r,o,s,p,a,i){for(let[g,d]of Object.entries(n)){if(Se.has(g)||typeof d!="object"||d===null||Array.isArray(d))continue;let c=d,u=`${e}/${g}`,f=r.get(g),l=f?f.split(".").pop()??f:"Unknown",y={};for(let[m,C]of Object.entries(c))(typeof C!="object"||C===null)&&(y[m]=C);o.push({id:u,label:`${l} (embedded)`,type:"Instance",namespace:p,properties:y});let k=p&&a?`${p}/${g}@${a}`:g;s.push({source:e,target:u,type:"propertyValue",label:g,propertyId:t.has(g)?k:void 0}),f&&s.push({source:u,target:P(l,p,a,i),type:"instanceOf",label:"type (inferred)"}),B(u,c,t,r,o,s,p,a,i)}}function Me(e,n,t){let r=n?.statement;if(Array.isArray(r))for(let o of r){if(!(o instanceof ce))continue;let s=o.predicate?.subject?.name??"";for(let p of o.links){let a=p.target?.subject;if(!a)continue;let i=a.version,g=i&&typeof i.major=="number"?`@${i.major}.${i.minor}.${i.patch}`:"";t.push({source:e,target:`${a.publisher}/${a.package_}/${a.name}${g}`,type:"embeddedLink",label:s})}}}function Ue(e){return!(!e||e.includes(" ")||e.includes(`
2
- `)||e.startsWith("http://")||e.startsWith("https://")||/^\d{4}-\d{2}/.test(e)||/^\d+(\.\d+)?$/.test(e))}function P(e,n,t,r){if(e.includes("@")&&e.includes("/"))return e;if(e.includes(".")){let o=e.indexOf("."),s=e.substring(0,o),p=e.substring(o+1);if(r){let a=r.get(s);if(a)return`${a.publisher}/${a.package_}/${p}@${a.version}`}return n&&t?`${n}/${p}@${t}`:p}return n&&t?`${n}/${e}@${t}`:e}function _(e){let n=e.replace(/^https?:\/\//,"").replace(/^git:\/\//,"").replace(/\/+$/,"").trim();if(!n)throw new Error("Publisher host cannot be empty");return n}var Fe="key_thumbprint",R=class{cache=new Map;prCache=new Map;async discoverProtectedResource(n){let t=_(n);if(this.prCache.has(t))return this.prCache.get(t);let r=`https://${t}/.well-known/oauth-protected-resource`,o=await Le(r),s=o&&Array.isArray(o.authorization_servers)?o.authorization_servers.filter(a=>typeof a=="string"):[],p=s.length>0?s:null;return this.prCache.set(t,p),p}async discover(n){let t=_(n);if(this.cache.has(t))return this.cache.get(t);let r=`https://${t}/.well-known/oauth-authorization-server`,o=await this.tryEndpoint(r);if(!o){let s=`https://${t}/.well-known/openid-configuration`;o=await this.tryEndpoint(s)}return this.cache.set(t,o),o}async supportsOAuth(n){return await this.discover(n)!==null}static supportsPkceS256(n){return n.codeChallengeMethodsSupported?.some(t=>t.toUpperCase()==="S256")??!1}static supportsDynamicRegistration(n){return!!n.registrationEndpoint}static supportsAuthorizationCode(n){return n.responseTypesSupported?.some(t=>t.toLowerCase()==="code")??!1}static supportsEnrollment(n){return!!n.enrollmentEndpoint}static supportsSession(n){return!!n.sessionEndpoint}async tryEndpoint(n){let t;try{t=await fetch(n)}catch(o){let s=o instanceof Error?o.message:String(o);return s.includes("ENOTFOUND")||s.includes("ECONNREFUSED")?(console.error(` OAuth discovery: ${n} \u2014 host unreachable (${s})`),console.error(" If the server is behind a VPN, ensure you are connected.")):s.includes("CERT")||s.includes("SSL")||s.includes("TLS")?(console.error(` OAuth discovery: ${n} \u2014 TLS error (${s})`),console.error(" If using a custom CA certificate, set NODE_EXTRA_CA_CERTS=/path/to/ca.pem")):console.error(` OAuth discovery: ${n} \u2014 network error: ${s}`),null}if(!t.ok)return t.status===404||(t.status===403?(console.error(` OAuth discovery: ${n} \u2014 HTTP 403 Forbidden`),console.error(" Access may be blocked by a firewall, proxy, or WAF.")):t.status>=500&&(console.error(` OAuth discovery: ${n} \u2014 HTTP ${t.status} server error`),console.error(" The authorization server returned an internal error. Contact your IDP administrator."))),null;let r;try{r=await t.json()}catch{return console.error(` OAuth discovery: ${n} \u2014 response is not valid JSON`),console.error(" The endpoint may be returning HTML instead of JSON. Check IDP configuration."),null}return{issuer:v(r.issuer),authorizationEndpoint:v(r.authorization_endpoint),tokenEndpoint:v(r.token_endpoint),registrationEndpoint:v(r.registration_endpoint),revocationEndpoint:v(r.revocation_endpoint),scopesSupported:w(r.scopes_supported),responseTypesSupported:w(r.response_types_supported),grantTypesSupported:w(r.grant_types_supported),codeChallengeMethodsSupported:w(r.code_challenge_methods_supported),tokenEndpointAuthMethodsSupported:w(r.token_endpoint_auth_methods_supported),dpopSigningAlgValuesSupported:w(r.dpop_signing_alg_values_supported),enrollmentEndpoint:v(r.enrollment_endpoint),enrollmentIssuanceProtocols:w(r.enrollment_issuance_protocols),enrollmentKeyTypes:w(r.enrollment_key_types),enrollmentScopesSupported:w(r.enrollment_scopes_supported),enrollmentConsentBindingParam:v(r.enrollment_consent_binding_param),sessionEndpoint:v(r.session_endpoint),sessionEndpointAuthMethod:v(r.session_endpoint_auth_method)}}};async function Le(e){try{let n=await fetch(e);return n.ok?await n.json():null}catch{return null}}function v(e){return typeof e=="string"?e:null}function w(e){return Array.isArray(e)?e.filter(n=>typeof n=="string"):null}function ve(e){let n=e.headers.get("WWW-Authenticate")??void 0,t=e.headers.get("DPoP-Nonce")??void 0;if(!n&&!t)return;let r={wwwAuthenticate:n??""};if(t&&(r.nonce=t),n){let o=n.match(/acr_values\s*=\s*"([^"]*)"/i);o&&(r.acrValues=o[1])}return r}function Ge(e){try{return new URL(e).host}catch{return null}}function Ve(e,n={}){let t=n.discovery??new R,r=new Map,o=new Map,s=async i=>{let g=r.get(i);if(g!==void 0)return g;let d=null,c=await t.discoverProtectedResource(i).catch(()=>null);return c&&c.length>0&&(d=Ge(c[0])),r.set(i,d),d},p=async(i,g)=>{if(!e)return null;if(!(g.forceRefresh||g.challenge)&&o.has(i))return o.get(i);let c=await e.resolve(i,g).catch(()=>null);return o.set(i,c),c},a=async(i,g,d,c)=>{let u=await s(g);if(!u)return{res:await U(i,{method:d,redirect:"manual"}),authed:!1};let f=await p(u,{method:d,url:i,...c}),l=f?.headers??{};return{res:await U(i,{method:d,redirect:"manual",headers:l}),authed:!!f}};return async(i,g,d="GET")=>{let c=await a(i,g,d,{});if((c.res.status===401||c.res.status===403)&&c.authed){let u=ve(c.res),f={forceRefresh:u===void 0};return u&&(f.challenge=u),(await a(i,g,d,f)).res}return c.res}}var we="KANONAK_TOKEN";function ze(){return typeof process<"u"&&process.env?process.env:{}}function Be(e){return`${we}_${e.toUpperCase().replace(/[^A-Z0-9]+/g,"_")}`}var q=class{tokens;env;constructor(n={}){this.tokens=n.tokens??{},this.env=n.env??ze()}async resolve(n,t){let r=_(n),o=this.tokens[r]??this.env[Be(r)]??this.env[we];return o?{headers:{Authorization:`Bearer ${o}`}}:null}};import{canonicalForm as He,canonicalHash as qe}from"@kanonak-protocol/canonical";function W(e){return typeof e=="object"&&e!==null&&Array.isArray(e.subjects)}import{CANONICAL_FORM_VERSION as rn}from"@kanonak-protocol/canonical";function We(e){return He(W(e)?e:Pe(e))}function Xe(e){return qe(W(e)?e:Pe(e))}function Pe(e){let n=[];for(let t of e)t instanceof E&&n.push({uri:tn(t),statements:X(t.statement)});return{subjects:n}}function X(e){let n=[];for(let t of e){let r=nn(t);if(!r)continue;if(t instanceof F&&Ye(t.predicate.subject)){n.push(...Qe(t,r));continue}let o=Ze(t);o&&n.push({predicate:r,value:o})}return n}function Ye(e){let n=ue("type");return n!==void 0&&e.name==="type"&&e.publisher===n.publisher&&e.package_===n.package_}var Oe=new TextEncoder;function Je(e,n){let t=Oe.encode(e),r=Oe.encode(n),o=Math.min(t.length,r.length);for(let s=0;s<o;s++)if(t[s]!==r[s])return t[s]-r[s];return t.length-r.length}function Qe(e,n){let t=[];for(let r of e.object){if(!(r instanceof T))throw new Error(`canonicalForm: a multi-valued type statement must contain only entity references, got ${r.constructor?.name??typeof r}`);t.push(Y(r))}t.sort(Je);for(let r=1;r<t.length;r++)if(t[r-1]===t[r])throw new Error(`canonicalForm: duplicate type ${t[r]} in a multi-valued type statement`);return t.map(r=>({predicate:n,value:{ref:r}}))}function Ze(e){if(e instanceof te&&e.carrier)return{lit:e.lexical??String(e.object),datatype:Te(e.carrier)};if(e instanceof re)return{raw:e.object};if(e instanceof oe)return{raw:e.lexical??String(e.object)};if(e instanceof se)return{raw:e.lexical??String(e.object)};if(e instanceof ae)return{ref:Y(e.object)};if(e instanceof ie)return je(e.object);if(e instanceof F)return{list:e.object.map(en)}}function je(e){let n=X(e.statement);return e.name&&e.name.length>0?{embed:{name:e.name,statements:n}}:{embed:{statements:n}}}function en(e){if(e instanceof T)return{ref:Y(e)};if(e instanceof ee)return je(e);if(e instanceof A){if(e.carrier)return{lit:e.lexical??String(e.value),datatype:Te(e.carrier)};let n=e.value;if(typeof n=="string")return{raw:n};if(typeof n=="number")return{raw:String(n)};if(typeof n=="boolean")return{raw:String(n)}}if(e instanceof Z)return{embed:{statements:X(e.statement)}};throw new Error(`canonicalForm: list item of unrecognized kind (${e.constructor?.name??typeof e}); add canonicalization support before hashing data that contains it`)}function Te(e){return e===V.LangString?"kanonak.org/core-rdf/langString":`kanonak.org/core-xsd/${e}`}function nn(e){let n=e.predicate;if(n)return _e(n.subject)}function tn(e){let n=e.namespace??"",t=e.name??"";return`${n}/${t}`}function Y(e){return _e(e.subject)}function _e(e){let n=e.version;return n&&typeof n.major=="number"?`${e.publisher}/${e.package_}@${n.major}.${n.minor}.${n.patch}/${e.name}`:`${e.publisher}/${e.package_}/${e.name}`}var j="kanonak.org",D="core-rdf",Ee="core-xsd",Re={publisher:j,package_:D,name:"subClassOf"},Ae={publisher:j,package_:D,name:"label"},on={publisher:j,package_:D,name:"comment"},Ie={publisher:j,package_:"core-owl",name:"oneOf"},Ne=e=>e;function sn(e){let n=le(e,Re);if(n)return[n];let t=[];for(let r of G(e,Re))r instanceof T&&t.push(r.subject);return t}function an(e,n,t){if(n.publisher===j&&n.package_===D&&n.name==="Literal")return{kind:"datatype",uri:n};let o=L(e,n);if(o){let s=Ne(o);if(h.isDatatypeType(s))return{kind:"datatype",uri:n};if(h.isClassType(s))return{kind:"class",uri:K(o)??n,localName:o.name}}return n.publisher===j&&n.package_===Ee?{kind:"datatype",uri:n}:t==="datatype"?{kind:"datatype",uri:n}:{kind:"class",uri:n,localName:n.name}}function cn(e,n,t){if(!n.range)throw new Error(`Property ${n.uri.publisher}/${n.uri.package_}/${n.uri.name} has no rdfs.range; every property must declare a range. Validate the ontology before introspecting it.`);let r=an(e,n.range,n.kind),o=n.kind==="object"?"object":n.kind==="datatype"?"datatype":r.kind==="class"?"object":"datatype";return{uri:n.uri,localName:n.uri.name,kind:o,range:r,...n.label!==void 0?{label:n.label}:{},...n.comment!==void 0?{comment:n.comment}:{},...t??{}}}var x=e=>new ne(j,Ee,e);function pn(e){return typeof e=="boolean"?x("boolean"):typeof e=="number"?Number.isInteger(e)?x("integer"):x("decimal"):x("string")}function ln(e,n){let t=[];for(let r of G(n,Ie))if(r instanceof T){let o=L(e,r.subject),s=(o?K(o):void 0)??r.subject,p=o?N(o,Ae):void 0;t.push({kind:"individual",uri:s,localName:s.name,...p!==void 0?{label:p}:{}})}else r instanceof A&&t.push({kind:"literal",value:r.value,datatype:pn(r.value)});return t}function un(e,n,t,r){let o=de(e,n),s=I(n);return fe(e,n).filter(a=>t?!0:a.domains.some(i=>I(i)===s)).map(a=>cn(e,a,ye(r,o,a.uri)))}async function dn(e,n,t){let r=e.metadata?.namespace_;if(!r)throw new Error("buildOntologyModel: document has no namespace (publisher/package/version).");let o=t?.includeInherited??!1,s=await new $().parseKanonaks(n),p=ge(s),a=[],i=[],g=new Set;for(let d of s){if(!(d instanceof E)||!h.isClassType(Ne(d)))continue;let c=K(d);if(!c||c.publisher!==r.publisher||c.package_!==r.package_||c.version&&r.version&&!Q(c.version,r.version))continue;let u=I(c);if(g.has(u))continue;g.add(u);let f=sn(d).map(k=>({uri:k,localName:k.name})),l=N(d,Ae),y=N(d,on);a.push({uri:c,localName:c.name,superClasses:f,properties:un(s,c,o,p),...l!==void 0?{label:l}:{},...y!==void 0?{comment:y}:{}}),pe(d,Ie)&&i.push({uri:c,localName:c.name,members:ln(s,d),...l!==void 0?{label:l}:{},...y!==void 0?{comment:y}:{}})}return{classes:a,enums:i}}export{ke as a,be as b,z as c,_ as d,Fe as e,R as f,ve as g,Ve as h,q as i,We as j,Xe as k,rn as l,dn as m};
@@ -1 +0,0 @@
1
- import{j as h}from"./chunk-GZPLWII7.js";import{c as S,d as _,m as k,r as j,s as m,v as g,w as d,y as P}from"./chunk-7BHDZHJY.js";import{a as b}from"./chunk-FUUTGGJS.js";var A=new Set(["kanonak.org/core-rdf","kanonak.org/core-owl","kanonak.org/core-xsd","kanonak.org/core-kanonak"]);function s(r){let n=r;if(n.entity&&typeof n.entity=="object"){let e=n.entity.type;if(typeof e=="string"){let a={publisher:"",package_:"",name:e.includes(".")?e.substring(e.lastIndexOf(".")+1):e};return h(a),{publisher:a.publisher,package_:a.package_,name:a.name}}}if(n.statement&&Array.isArray(n.statement)){for(let e of n.statement)if(e.predicate?.subject?.name==="type"&&e.object?.subject){let t=e.object.subject,a={publisher:t.publisher??"",package_:t.package_??"",name:t.name};return h(a),{publisher:a.publisher,package_:a.package_,name:a.name}}}return null}function c(r,n){return A.has(`${r}/${n}`)}var y=class r{static getTypeUri(n){return s(n)}static isCoreOntologyType(n){return c(n.publisher,n.package_)}static isClassType(n){let e=s(n);return e?c(e.publisher,e.package_)&&e.name==="Class":!1}static isDatatypeType(n){let e=s(n);return e?c(e.publisher,e.package_)&&e.name==="Datatype":!1}static isDatatypePropertyType(n){let e=s(n);return e?c(e.publisher,e.package_)&&e.name==="DatatypeProperty":!1}static isObjectPropertyType(n){let e=s(n);return e?c(e.publisher,e.package_)&&e.name==="ObjectProperty":!1}static isAnnotationPropertyType(n){let e=s(n);return e?c(e.publisher,e.package_)&&e.name==="AnnotationProperty":!1}static isGenericPropertyType(n){let e=s(n);return e?c(e.publisher,e.package_)&&e.name==="Property":!1}static isAnyPropertyType(n){let e=s(n);return!e||!c(e.publisher,e.package_)?!1:e.name==="Property"||e.name==="DatatypeProperty"||e.name==="ObjectProperty"||e.name==="AnnotationProperty"}static isSchemaDefinitionType(n){let e=s(n);return!e||!c(e.publisher,e.package_)?!1:e.name==="Class"||e.name==="Property"||e.name==="DatatypeProperty"||e.name==="ObjectProperty"||e.name==="AnnotationProperty"||e.name==="Datatype"}static isInstanceOfKnownClass(n,e){if(r.isSchemaDefinitionType(n))return!1;let t=s(n);return t?e.has(t.name):!1}};function E(r){if(!r||r.trim().length===0)throw new Error("Kanonak address string cannot be null or empty");let n=r.trim(),e=n.split("/");if(e.length===1){let t=e[0];if(!t)throw new Error(`Invalid Kanonak address: "${r}". Expected publisher, publisher/package[@version], or publisher/package[@version]/name.`);if(t.includes("@"))throw new Error(`Invalid Kanonak address: "${r}". A bare publisher cannot carry an @version qualifier \u2014 versions belong to packages.`);return{kind:"publisher",publisher:t}}if(e.length===2){let[t,a]=e;if(!t||!a)throw new Error(`Invalid Kanonak address: "${r}". Expected publisher/package[@version].`);let o=a.indexOf("@");if(o===-1)return{kind:"package",publisher:t,package_:a};let i=a.substring(0,o),p=a.substring(o+1);if(!i||!p)throw new Error(`Invalid Kanonak address: "${r}". Expected publisher/package[@version].`);let u=$(p);return{kind:"package",publisher:t,package_:i,version:u}}return{kind:"resource",uri:b.parse(n)}}function H(r){switch(r.kind){case"publisher":return r.publisher;case"package":return r.version?`${r.publisher}/${r.package_}@${r.version.major}.${r.version.minor}.${r.version.patch}`:`${r.publisher}/${r.package_}`;case"resource":return r.uri.toString()}}function $(r){let n=r.split(".").map(Number);return C(n[0]||0,n[1]||0,n[2]||0)}function C(r,n,e){return{major:r,minor:n,patch:e,toString:()=>`${r}.${n}.${e}`,equals:t=>!t||typeof t!="object"?!1:t.major===r&&t.minor===n&&t.patch===e,getHashCode:()=>r<<20|n<<10|e,compareTo:t=>r!==t.major?r-t.major:n!==t.minor?n-t.minor:e-t.patch}}var l="kanonak.org",f="core-rdf",w={publisher:l,package_:f,name:"domain"},R={publisher:l,package_:f,name:"range"},T={publisher:l,package_:f,name:"subClassOf"},x={publisher:l,package_:f,name:"type"},D={publisher:l,package_:f,name:"label"},O={publisher:l,package_:f,name:"comment"},I=new b(l,f,"Resource"),V=r=>r;function N(r){try{let n=E(`${r.namespace}/${r.name}`);return n.kind==="resource"?n.uri:void 0}catch{return}}function K(r,n){let e=d(r,n);if(e)return[e];let t=[];for(let a of P(r,n))a instanceof _&&t.push(a.subject);return t}function B(r,n){let e=[],t=new Set,a="version"in n?n.version:void 0,o=[new b(n.publisher,n.package_,n.name,a??void 0)];for(;o.length>0;){let i=o.shift(),p=k(i);if(t.has(p))continue;t.add(p),e.push(i);let u=F(r,i);u&&o.push(...K(u,T))}return e}function F(r,n){return n.version&&typeof n.version.major=="number"?j(r,n)??m(r,n)[0]:m(r,n)[0]}function L(r,n){let e=new Set([k(I)]);for(let t of B(r,n))e.add(k(t));return e}function M(r,n){let e=L(r,n),t=[],a=new Set;for(let o of r){if(!(o instanceof S))continue;let i=V(o);if(!y.isAnyPropertyType(i))continue;let p=K(o,w);if(!p.some(v=>e.has(k(v))))continue;let u=N(o);if(!u)continue;let U=k(u);a.has(U)||(a.add(U),t.push({uri:u,label:g(o,D),comment:g(o,O),kind:y.isObjectPropertyType(i)?"object":y.isDatatypePropertyType(i)?"datatype":"other",range:d(o,R),domains:p}))}return t}function ne(r,n,e){let t=M(r,n).find(a=>k(a.uri)===k(e));return t?{ok:!0,descriptor:t}:{ok:!1,message:`Property ${e.publisher}/${e.package_}/${e.name} is not in scope for ${n.publisher}/${n.package_}/${n.name}.`}}function re(r){return K(r,x)}export{y as a,E as b,H as c,N as d,B as e,M as f,ne as g,re as h};