@kanonak-protocol/sdk 5.13.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 (35) 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/index.js +1 -1
  12. package/dist/kanonaks/walkDefinedKanonaks.d.ts +22 -0
  13. package/dist/parsing/KanonakObjectParser.d.ts +22 -0
  14. package/dist/parsing/index.js +1 -1
  15. package/dist/reasoning/index.js +1 -1
  16. package/dist/resolution/ResourceTypeClassifier.d.ts +24 -0
  17. package/dist/resolution/TypeDirectedResolver.d.ts +37 -0
  18. package/dist/resolution/index.d.ts +3 -2
  19. package/dist/resolution/index.js +1 -1
  20. package/dist/search/index.js +1 -1
  21. package/dist/server/index.js +1 -1
  22. package/dist/transformations/index.js +1 -1
  23. package/dist/uri-helpers/index.js +1 -1
  24. package/dist/validation/documentModel.d.ts +2 -15
  25. package/dist/validation/index.js +1 -1
  26. package/dist/validation/rules/repository/PropertyRangeRequiredRule.d.ts +4 -0
  27. package/dist/validation/rules/repository/SubPropertyOfReferenceRule.d.ts +4 -2
  28. package/package.json +2 -2
  29. package/dist/chunk-4SQZBFJJ.js +0 -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-ZP6P7HNU.js +0 -1
@@ -1 +0,0 @@
1
- import{a as $}from"./chunk-NJ3AZYQD.js";import{a as G,b as X,h as q,j as N}from"./chunk-GZPLWII7.js";import{a as C,b as z,c as R,d as b,g as O,h as E,i as D,j as L,k as j,l as v,n as W}from"./chunk-7BHDZHJY.js";import{a as M}from"./chunk-FUUTGGJS.js";import{j as F}from"./chunk-2ACBWC7K.js";var w=class extends z{name};var I=class extends C{value;carrier;lexical};var T=class extends O{links=[]};var J="kanonak.org",Q="transformations",me=3,e=p=>({publisher:J,package_:Q,name:p}),x={Transformation:e("Transformation"),InstanceTransformation:e("InstanceTransformation"),SetTransformation:e("SetTransformation"),inputPattern:e("inputPattern"),rule:e("rule"),artifactName:e("artifactName"),outputs:e("outputs"),formatOverrides:e("formatOverrides"),partitionBy:e("partitionBy"),InputPattern:e("InputPattern"),matchesClass:e("matchesClass"),requires:e("requires"),sortBy:e("sortBy"),SortKey:e("SortKey"),byProperty:e("byProperty"),order:e("order"),SortOrder:e("SortOrder"),ascending:e("ascending"),descending:e("descending"),OutputFormat:e("OutputFormat"),backendUri:e("backendUri"),FormatOverride:e("FormatOverride"),formatTarget:e("formatTarget"),metadataKeys:e("metadataKeys"),metadataRenames:e("metadataRenames"),trailingNewline:e("trailingNewline"),omitWrapper:e("omitWrapper"),RenameEntry:e("RenameEntry"),fromKey:e("fromKey"),toKey:e("toKey"),FMT_MARKDOWN_FRONTMATTER:e("markdown-with-frontmatter"),FMT_PLAIN_MARKDOWN:e("plain-markdown"),FMT_TOML:e("toml"),FMT_JSON:e("json"),FMT_HTML:e("html"),FMT_SVG:e("svg"),Expression:e("Expression"),ListSourcedExpression:e("ListSourcedExpression"),ListAggregate:e("ListAggregate"),IteratingExpression:e("IteratingExpression"),BuildAstNode:e("BuildAstNode"),astClass:e("astClass"),set:e("set"),AstFieldBinding:e("AstFieldBinding"),field:e("field"),bindValue:e("bindValue"),When:e("When"),condition:e("condition"),thenBuild:e("thenBuild"),elseBuild:e("elseBuild"),Concat:e("Concat"),parts:e("parts"),Fallback:e("Fallback"),primary:e("primary"),alternate:e("alternate"),StringLiteral:e("StringLiteral"),stringLiteral:e("stringLiteral"),IntegerLiteral:e("IntegerLiteral"),integerLiteral:e("integerLiteral"),DecimalLiteral:e("DecimalLiteral"),decimalLiteral:e("decimalLiteral"),BooleanLiteral:e("BooleanLiteral"),booleanLiteral:e("booleanLiteral"),VarRef:e("VarRef"),varName:e("varName"),PropertyRead:e("PropertyRead"),readSource:e("readSource"),readProp:e("readProp"),Traverse:e("Traverse"),traverseSource:e("traverseSource"),through:e("through"),step:e("step"),UriName:e("UriName"),uriNameOf:e("uriNameOf"),UriPublisher:e("UriPublisher"),uriPublisherOf:e("uriPublisherOf"),UriPackage:e("UriPackage"),uriPackageOf:e("uriPackageOf"),UriVersion:e("UriVersion"),uriVersionOf:e("uriVersionOf"),SubjectUri:e("SubjectUri"),subjectOf:e("subjectOf"),UriLiteral:e("UriLiteral"),refTo:e("refTo"),DisplayLabel:e("DisplayLabel"),labelTarget:e("labelTarget"),labelSource:e("labelSource"),ResolveRef:e("ResolveRef"),resolveSource:e("resolveSource"),Normalize:e("Normalize"),normSource:e("normSource"),normKind:e("normKind"),NormalizeKind:e("NormalizeKind"),NORM_TRIM_END:e("trim-end"),NORM_TO_UPPER:e("to-upper"),NORM_TO_LOWER:e("to-lower"),NORM_FIRST_CHAR:e("first-char"),UnescapedString:e("UnescapedString"),unescapedSource:e("unescapedSource"),IsSet:e("IsSet"),checkExpr:e("checkExpr"),ExpressionFragment:e("ExpressionFragment"),body:e("body"),CallFragment:e("CallFragment"),fragmentRef:e("fragmentRef"),source:e("source"),Join:e("Join"),separator:e("separator"),Count:e("Count"),Sum:e("Sum"),Min:e("Min"),Max:e("Max"),Average:e("Average"),loopVar:e("loopVar"),ForEach:e("ForEach"),emit:e("emit"),ListMap:e("ListMap"),mapBody:e("mapBody"),Filter:e("Filter"),predicate:e("predicate"),PartitionBy:e("PartitionBy"),partitionKey:e("partitionKey"),DistinctBy:e("DistinctBy"),distinctKey:e("distinctKey"),Partition:e("Partition"),key:e("key"),members:e("members"),AllStatements:e("AllStatements"),statementsOf:e("statementsOf"),StatementPredicate:e("StatementPredicate"),predicateOf:e("predicateOf"),StatementValue:e("StatementValue"),valueOf:e("valueOf"),DateFormat:e("DateFormat"),dateSource:e("dateSource"),dateFormat:e("dateFormat"),BinaryArithmetic:e("BinaryArithmetic"),arithLeft:e("arithLeft"),arithRight:e("arithRight"),Add:e("Add"),Subtract:e("Subtract"),Multiply:e("Multiply"),Divide:e("Divide"),Reverse:e("Reverse"),WindowedMap:e("WindowedMap"),windowSize:e("windowSize"),windowVar:e("windowVar"),windowBody:e("windowBody"),PairwiseMap:e("PairwiseMap"),firstVar:e("firstVar"),secondVar:e("secondVar"),pairBody:e("pairBody"),Scan:e("Scan"),initialState:e("initialState"),stateVar:e("stateVar"),elementVar:e("elementVar"),accumulate:e("accumulate"),ListItemAt:e("ListItemAt"),itemIndex:e("itemIndex"),BinaryComparison:e("BinaryComparison"),compareLeft:e("compareLeft"),compareRight:e("compareRight"),Equals:e("Equals"),GreaterThan:e("GreaterThan"),LessThan:e("LessThan"),GreaterThanOrEqual:e("GreaterThanOrEqual"),LessThanOrEqual:e("LessThanOrEqual"),Not:e("Not"),operand:e("operand"),BooleanLogic:e("BooleanLogic"),operands:e("operands"),And:e("And"),Or:e("Or"),Contains:e("Contains"),haystack:e("haystack"),needle:e("needle"),UnaryNumericOp:e("UnaryNumericOp"),value:e("value"),Abs:e("Abs"),Negate:e("Negate"),KindPredicate:e("KindPredicate"),IsReference:e("IsReference"),IsEmbedded:e("IsEmbedded"),IsList:e("IsList"),kindCheck:e("kindCheck"),IsString:e("IsString"),IsNumber:e("IsNumber"),IsBoolean:e("IsBoolean"),StatementObject:e("StatementObject"),statementSource:e("statementSource"),Let:e("Let"),letName:e("letName"),letValue:e("letValue"),letBody:e("letBody"),GetStatementByName:e("GetStatementByName"),inSubject:e("inSubject"),byName:e("byName"),RenderMarkdown:e("RenderMarkdown"),renderSource:e("renderSource"),renderProp:e("renderProp"),renderFormat:e("renderFormat"),RenderFormat:e("RenderFormat"),RENDER_HTML:e("render-html"),RENDER_MARKDOWN:e("render-markdown")};import{Carrier as P,carrierOf as Z}from"@kanonak-protocol/canonical";function A(p){return Z(`${p.publisher}/${p.package_}/${p.name}`)}var ee=/\[\[([^\[\]\n]+)\]\]/g,te=/\[\[/g,H=/```[\s\S]*?```|`[^`\n]*`/g;function ne(p){let t=[];for(let n of p.matchAll(H))t.push([n.index,n.index+n[0].length]);return t}function le(p){if(!p||!p.includes("[["))return[];let t=ne(p),n=s=>t.some(([o,i])=>s>=o&&s<i),r=new Set(_(p).map(s=>s.startOffset)),a=[];for(let s of p.matchAll(te)){let o=s.index;if(n(o)||r.has(o))continue;let i=p.slice(o,o+48).replace(/\s+/g," ").trim();a.push({startOffset:o,snippet:i})}return a}function _(p){if(!p||!p.includes("[["))return[];let t=[];for(let a of p.matchAll(H))t.push([a.index,a.index+a[0].length]);let n=a=>t.some(([s,o])=>a>=s&&a<o),r=[];for(let a of p.matchAll(ee)){let s=a.index;if(n(s))continue;let o=a[1],i=o.indexOf("|"),m=(i===-1?o:o.slice(0,i)).trim();if(m.length===0)continue;let u=i===-1?"":o.slice(i+1).trim(),y={reference:m,startOffset:s,endOffset:s+a[0].length};u.length>0&&(y.displayText=u),r.push(y)}return r}var Y=class{constructor(t){}async parseKanonaks(t,n){let r=[],a=await t.getAllDocumentsAsync(),s=new G(t),o=new X(s);for(let c of a){let d=c.metadata.namespace_?.toString()??"";for(let[g,h]of Object.entries(c.body)){let k=new R,S=this.resolveCanonicalEntity(g,c,d);k.namespace=S.namespace,k.name=S.name,k.statement=[];let K=await this.parseStatements(h,c,s,o,t);k.statement.push(...K.statements),k.unresolvedPredicates=K.unresolved,B(k,d),r.push(k)}}let i=new Map,m=new Map,u=[];for(let c of r)if(c instanceof R){let d=`${c.namespace}/${c.name}`,g=i.get(d);if(g){let h=m.get(d);for(let k of c.statement){let S=U(k);h.has(S)||(h.add(S),g.statement.push(k))}for(let k of c.unresolvedPredicates)g.unresolvedPredicates.some(S=>S.key===k.key&&S.sourceDoc===k.sourceDoc)||g.unresolvedPredicates.push(k)}else{let h=new R;h.namespace=c.namespace,h.name=c.name,h.sourceDoc=c.sourceDoc;let k=new Set;for(let S of c.statement){let K=U(S);k.has(K)||(k.add(K),h.statement.push(S))}h.unresolvedPredicates=[...c.unresolvedPredicates],m.set(d,k),i.set(d,h),u.push(h)}}else u.push(c);let y=new Set;for(let c of u)if(c instanceof R){let d=c.namespace||"",g=d.indexOf("/"),h=g>=0?d.slice(0,g):"",k=g>=0?d.slice(g+1):"",S=k.indexOf("@"),K=S>=0?k.slice(0,S):k;y.add(`${h}/${K}/${c.name}`)}let l=c=>y.has(`${c.publisher}/${c.package_}/${c.name}`),f=new Map;for(let c of["core-rdf","core-owl","core-kanonak"]){let d=await t.getDocumentsByNamespaceAsync("kanonak.org",c);f.set(c,F(d).chosen?.metadata.namespace_?.version??void 0)}for(let c of r)c instanceof R&&this.canonicalizeStatementBuiltins(c.statement,l,f);return n&&(n.authored=r),u}canonicalizeStatementBuiltins(t,n,r){for(let a of t){let s=a.predicate?.subject;if(N(s,n,r),a instanceof L)a.object instanceof b&&N(a.object.subject,n,r);else if(a instanceof j)a.object&&this.canonicalizeStatementBuiltins(a.object.statement,n,r);else if(a instanceof v)for(let o of a.object??[])o instanceof b?N(o.subject,n,r):o instanceof w&&this.canonicalizeStatementBuiltins(o.statement,n,r)}}resolveCanonicalEntity(t,n,r){if(!t.includes(".")||!n.metadata?.imports)return{namespace:r,name:t};let a=t.indexOf("."),s=t.substring(0,a),o=t.substring(a+1);for(let[i,m]of Object.entries(n.metadata.imports))for(let u of m)if((u.alias??u.packageName)===s){let l=u.version;return{namespace:`${i}/${u.packageName}@${l.major}.${l.minor}.${l.patch}`,name:o}}return{namespace:r,name:t}}async parseStatements(t,n,r,a,s){let o=[],i=[];if(typeof t!="object"||t===null||Array.isArray(t))return{statements:o,unresolved:i};let m=n.metadata.namespace_?.toString()??"";for(let[u,y]of Object.entries(t))try{let l=await this.getPropertyMetadata(u,n,r,s,a);if(!l){let c=u.includes(".")?u.slice(u.lastIndexOf(".")+1):u;q(c)||i.push({key:u,sourceDoc:m});continue}let f=await this.parsePropertyValue(u,y,l,n,r,a,s);f&&o.push(f)}catch(l){throw new Error(`Failed to parse property '${u}': ${l.message}`,{cause:l})}return{statements:o,unresolved:i}}async getPropertyMetadata(t,n,r,a,s){let o=await r.resolveEntityAsync(t,n);if(!o)return;let i=o.entity,m=i.type?.toString()??"",u=m.includes(".")?m.substring(m.lastIndexOf(".")+1):m;if(!new Set(["Property","DatatypeProperty","ObjectProperty","AnnotationProperty"]).has(u))return;let l=s.getPropertyTypeClassification(m),f=i.range?.toString(),c;if(l==="ObjectProperty")c="ObjectProperty";else if(l==="DatatypeProperty")c="DatatypeProperty";else{let h=f&&f.includes(".")?f.substring(f.lastIndexOf(".")+1):f??"";(f?s.isKnownXsdDatatypeName(f):!1)||h==="Literal"?c="DatatypeProperty":c="ObjectProperty"}let d;if(f){let h=n;if(o.isImported&&o.definedInNamespace){if(typeof a.getDocumentAsync!="function")throw new Error(`Cannot resolve the range of imported property '${t}': the parse repository cannot fetch defining document '${o.definedInNamespace}'. Thread the real repository through to embedded-object parsing \u2014 no stub, no fallback.`);let S=await a.getDocumentAsync(o.definedInNamespace);if(!S)throw new Error(`Cannot resolve the range of imported property '${t}': defining document '${o.definedInNamespace}' was not found in the repository.`);h=S}d=(await r.resolveEntityAsync(f,h))?.uri}return{propertyUri:o.uri.toString(),propertyType:c,range:f,rangeUri:d,isImported:o.isImported,definedInNamespace:o.definedInNamespace}}async parsePropertyValue(t,n,r,a,s,o,i){let m=r.propertyUri;if(n!=null){if(Array.isArray(n))return this.parseListValue(m,n,r,a,s,o,i);if(r.propertyType==="DatatypeProperty")return this.parseDatatypeValue(m,n,r,a,s,o);if(r.propertyType==="ObjectProperty")return this.parseObjectValue(m,n,r,a,s,o,i)}}async parseDatatypeValue(t,n,r,a,s,o){let i;if(typeof n=="string"){if(o.isSubstitutableDatatype(r.rangeUri))return await this.parseSubstitutableValue(t,n,a,s);i=n}else if(typeof n=="number"||typeof n=="boolean")i=String(n);else return;return this.typedScalarStatement(t,i,r)}typedScalarStatement(t,n,r){let a=b.parse(t),s=r.rangeUri?A(r.rangeUri):void 0;if(s===P.Boolean){let i=new D;return i.predicate=a,i.object=n==="true"||n==="1",i.carrier=s,i.lexical=n,i}if(s===P.Integer||s===P.Decimal||s===P.Double||s===P.Float){let i=new E;return i.predicate=a,i.object=Number(n),i.carrier=s,i.lexical=n,i}let o=O.parse(t,n);return s&&(o.carrier=s,o.lexical=n),o}typedListLiteral(t,n){let r=new I,a=n.rangeUri?A(n.rangeUri):void 0;return a===P.Boolean?r.value=t==="true"||t==="1":a===P.Integer||a===P.Decimal||a===P.Double||a===P.Float?r.value=Number(t):r.value=t,a&&(r.carrier=a,r.lexical=t),r}async parseSubstitutableValue(t,n,r,a){let s=new T;s.predicate=b.parse(t),s.object=n;for(let o of _(n)){let i=await a.resolveEntityAsync(o.reference,r),m;i&&(m=new b,m.subject=i.uri);let u={reference:o.reference,startOffset:o.startOffset,endOffset:o.endOffset};o.displayText!==void 0&&(u.displayText=o.displayText),m!==void 0&&(u.target=m),s.links.push(u)}return s}async parseObjectValue(t,n,r,a,s,o,i){if(typeof n=="string"){if(r.rangeUri&&W(r.rangeUri,x.Expression))return this.coerceExpressionLiteral(t,n,r.rangeUri);let m=await this.resolveReference(n,a,s);if(!m)return;let u=new L;return u.predicate=b.parse(t),u.object=m,u}if(typeof n=="object"&&!Array.isArray(n)){let m=await this.parseStatements(n,a,s,o,i);if(m.statements.length>0){let l=new w;l.statement=m.statements,l.unresolvedPredicates=m.unresolved;let f=new j;return f.predicate=b.parse(t),f.object=l,f}let u=[];for(let[l,f]of Object.entries(n))if(typeof f=="object"&&f!==null&&!Array.isArray(f)){let c=new w;c.name=l;let d=await this.parseStatements(f,a,s,o,i);c.statement=d.statements,c.unresolvedPredicates=d.unresolved,u.push(c)}else if(typeof f=="string"){let c=await this.resolveReference(f,a,s);c&&u.push(c)}if(u.length>0){let l=new v;return l.predicate=b.parse(t),l.object=u,l}let y=new j;return y.predicate=b.parse(t),y.object=new w,y}}coerceExpressionLiteral(t,n,r){let a=new w,s=new L,o=new b;o.subject=new M("kanonak.org","core-rdf","type"),s.predicate=o;let i=new b;i.subject=new M(r.publisher,r.package_,x.StringLiteral.name,r.version),s.object=i;let m=new O,u=new b;u.subject=new M(r.publisher,r.package_,x.stringLiteral.name,r.version),m.predicate=u,m.object=n,a.statement=[s,m];let y=new j;return y.predicate=b.parse(t),y.object=a,y}async parseListValue(t,n,r,a,s,o,i){let m=[],u=r.propertyType==="DatatypeProperty",y=r.rangeUri?.publisher==="kanonak.org"&&r.rangeUri?.package_==="core-rdf"&&r.rangeUri?.name==="List"||!r.rangeUri&&(r.range?.includes(".")?r.range.substring(r.range.lastIndexOf(".")+1):r.range)==="List";for(let f of n){let c=typeof f=="string"||typeof f=="number"||typeof f=="boolean";if(u&&c){let d=typeof f=="string"?f:String(f);m.push(this.typedListLiteral(d,r));continue}if(y&&c){if(typeof f=="string"){let d=await s.resolveEntityAsync(f,a);if(d){let g=new b;g.subject=d.uri,m.push(g)}else{let g=new I;g.value=f,m.push(g)}}else{let d=new I;d.value=f,m.push(d)}continue}if(typeof f=="string"){let d=await this.resolveReference(f,a,s);d&&m.push(d)}else if(typeof f=="object"&&f!==null&&!Array.isArray(f)){let d=new w,g=await this.parseStatements(f,a,s,o,i);d.statement=g.statements,d.unresolvedPredicates=g.unresolved,m.push(d)}}let l=new v;return l.predicate=b.parse(t),l.object=m,l}async resolveReference(t,n,r){let a=await r.resolveEntityAsync(t,n);if(a){let o=new b;return o.subject=a.uri,o}let s=n.metadata?.namespace_;if(s){let{KanonakUri:o}=await import("./KanonakUri-4VJGV3FN.js");if(t.includes(".")){let m=t.indexOf("."),u=t.substring(0,m),y=t.substring(m+1);if(n.metadata?.imports){for(let[l,f]of Object.entries(n.metadata.imports))for(let c of f)if((c.alias??c.packageName)===u){let g=new b;return g.subject=new o(l,c.packageName,y,c.version),g}}}let i=new b;return i.subject=new o(s.publisher,s.package_,t,s.version??void 0),i}return null}async saveKanonaks(t,n){let r=new Map;for(let a of t)a instanceof R&&a.namespace&&(r.has(a.namespace)||r.set(a.namespace,[]),r.get(a.namespace).push(a));for(let[a,s]of r){let o=await this.convertKanonaksToDocument(a,s),i=`${a.split("@")[0]}.yml`;await n.saveDocumentAsync(o,i)}}async serializeToYaml(t,n){let r=t.filter(o=>o instanceof R&&o.namespace===n);if(r.length===0)throw new Error(`No kanonaks found with namespace '${n}'`);let a=await this.convertKanonaksToDocument(n,r);return new $().save(a)}async convertKanonaksToDocument(t,n){let a={metadata:{namespace_:t,get allImports(){if(!this.imports)return[];let o=[];for(let i of Object.values(this.imports))o.push(...i);return o}},body:{}},s=new Map;for(let o of n){let i={};for(let m of o.statement){let[u,y]=this.convertStatementToProperty(m);u&&y!==null&&y!==void 0&&(i[u]=y),this.collectImportsFromStatement(m,t,s)}a.body[o.name]=i}return a}convertStatementToProperty(t){if(t instanceof O)return[t.predicate.subject.name,t.object];if(t instanceof E)return[t.predicate.subject.name,t.object];if(t instanceof D)return[t.predicate.subject.name,t.object];if(t instanceof L)return[t.predicate.subject.name,t.object.subject.name];if(t instanceof v){let n=this.convertKanonakListToValue(t.object);return[t.predicate.subject.name,n]}else if(t instanceof j){let n=this.convertEmbeddedKanonakToValue(t.object);return[t.predicate.subject.name,n]}return[null,null]}convertKanonakListToValue(t){let n=[];for(let r of t)r instanceof b?n.push(r.subject.name):r instanceof w&&n.push(this.convertEmbeddedKanonakToValue(r));return n}convertEmbeddedKanonakToValue(t){let n={};for(let r of t.statement){let[a,s]=this.convertStatementToProperty(r);a&&s!==null&&s!==void 0&&(n[a]=s)}return n}collectImportsFromStatement(t,n,r){}};function B(p,t){p.sourceDoc=t;for(let n of p.statement)if(n instanceof j)B(n.object,t);else if(n instanceof v)for(let r of n.object)r instanceof w&&B(r,t)}function U(p){let t=p.predicate?.subject;return(t?`${t.publisher}/${t.package_}/${t.name}`:"?")+"="+re(p)}function re(p){return p instanceof T?"m:"+String(p.object):p instanceof O?"s:"+String(p.object):p instanceof E?"n:"+String(p.object):p instanceof D?"b:"+String(p.object):p instanceof L?"r:"+V(p.object):p instanceof j?"e:"+V(p.object):p instanceof v?"l:["+(p.object??[]).map(V).join("|")+"]":"x"}function V(p){if(!p)return"";if(p instanceof b){let t=p.subject;return"R("+(t?`${t.publisher}/${t.package_}/${t.name}`:"")+")"}return p instanceof w?"E("+(p.statement??[]).map(U).join(";")+")":p instanceof I?"L("+String(p.value)+")":"N"}export{w as a,I as b,T as c,J as d,Q as e,me as f,x as g,P as h,A as i,le as j,_ as k,Y as l};
@@ -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};