@kanonak-protocol/sdk 5.13.0 → 5.15.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.
- package/dist/browser.js +1 -1
- package/dist/{chunk-IHB7UVEH.js → chunk-4PY3JJH3.js} +4 -4
- package/dist/{chunk-S6VSAKXB.js → chunk-5NH5XDGO.js} +1 -1
- package/dist/{chunk-EZSHR3CB.js → chunk-LYSCTQC2.js} +1 -1
- package/dist/chunk-MK6UVFOJ.js +2 -0
- package/dist/chunk-Q6XQ5IXW.js +63 -0
- package/dist/chunk-SVUMCLK5.js +1 -0
- package/dist/chunk-V3IPBWWU.js +1 -0
- package/dist/chunk-V6KIDED2.js +1 -0
- package/dist/chunk-YW6P24RF.js +1 -0
- package/dist/index.js +1 -1
- package/dist/kanonaks/walkDefinedKanonaks.d.ts +22 -0
- package/dist/parsing/KanonakObjectParser.d.ts +22 -0
- package/dist/parsing/index.js +1 -1
- package/dist/reasoning/ReasoningResult.d.ts +19 -0
- package/dist/reasoning/index.js +1 -1
- package/dist/resolution/ResourceTypeClassifier.d.ts +24 -0
- package/dist/resolution/TypeDirectedResolver.d.ts +37 -0
- package/dist/resolution/index.d.ts +3 -2
- package/dist/resolution/index.js +1 -1
- package/dist/search/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/transformations/expressionRuntimeTree.d.ts +40 -0
- package/dist/transformations/index.d.ts +2 -0
- package/dist/transformations/index.js +22 -22
- package/dist/uri-helpers/index.js +1 -1
- package/dist/validation/documentModel.d.ts +2 -15
- package/dist/validation/index.js +1 -1
- package/dist/validation/rules/repository/PropertyRangeRequiredRule.d.ts +4 -0
- package/dist/validation/rules/repository/SubPropertyOfReferenceRule.d.ts +4 -2
- package/package.json +2 -2
- package/dist/chunk-4SQZBFJJ.js +0 -2
- package/dist/chunk-6U26UASC.js +0 -1
- package/dist/chunk-7BHDZHJY.js +0 -1
- package/dist/chunk-7K5TAJ44.js +0 -63
- package/dist/chunk-GZPLWII7.js +0 -1
- package/dist/chunk-MX3DEXMV.js +0 -1
- package/dist/chunk-TVSHIXLA.js +0 -1
- package/dist/chunk-ZP6P7HNU.js +0 -1
package/dist/browser.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as F,b as H,c as L,d as Pe,f as ge,g as Ce,h as he,i as Ke,j as be,k as Ie,l as Oe,m as je}from"./chunk-
|
|
1
|
+
import{a as F,b as H,c as L,d as Pe,f as ge,g as Ce,h as he,i as Ke,j as be,k as Ie,l as Oe,m as je}from"./chunk-MK6UVFOJ.js";import{a as Se}from"./chunk-LYSCTQC2.js";import"./chunk-QHABFCRC.js";import{a as m,b as u,c,e as d,h as R,j as y,k as f}from"./chunk-UXYCUGSF.js";import{a as p}from"./chunk-4NO7MHS7.js";import{a as B,b as G,c as q}from"./chunk-5NH5XDGO.js";import{a as w,b as _}from"./chunk-PEUTCG3B.js";import"./chunk-PEJALHXK.js";import"./chunk-SC5M74NM.js";import{A as fe,B as xe,K as ke,a as W,b as z,c as J,d as Q,f as X,g as Y,h as Z,i as $,k as ee,l as oe,m as te,n as re,o as ne,p as ae,q as ie,r as se,s as pe,t as le,u as me,v as ue,w as ce,x as de,y as Re,z as ye}from"./chunk-Q6XQ5IXW.js";import"./chunk-ITKOKDBG.js";import{a as g,c as v,i as A,j as M,m as U}from"./chunk-V6KIDED2.js";import{a as l}from"./chunk-NJ3AZYQD.js";import{a as E,b as N,o as T}from"./chunk-SVUMCLK5.js";import{a as x,b as k,c as P,d as h,e as K,f as S,g as b,h as I,i as O,j,k as D,l as V}from"./chunk-YW6P24RF.js";import{a as C}from"./chunk-FUUTGGJS.js";import{c as e,d as o,e as t,f as r,g as n,h as a,i,j as s}from"./chunk-2ACBWC7K.js";export{me as AmbiguousReferenceRule,O as BooleanStatement,Oe as CANONICAL_FORM_VERSION,A as Carrier,fe as ClassDefinitionRule,re as ClassHierarchyCycleRule,k as DefinedKanonak,H as EdgeType,g as EmbeddedKanonak,ee as EmbeddedKanonakTypeRule,D as EmbeddedStatement,L as GraphBuilder,f as HttpKanonakDocumentRepository,oe as ImportExistenceRule,p as InMemoryKanonakDocumentRepository,m as KANONAK_USER_AGENT,x as Kanonak,G as KanonakDocumentPositions,U as KanonakObjectParser,ke as KanonakObjectValidator,l as KanonakParser,C as KanonakUri,w as KanonakUriBuilder,V as ListStatement,xe as MarkdownLinkRule,v as MarkdownStatement,pe as NamespaceImportCycleRule,X as NamespacePrefixRule,F as NodeType,I as NumberStatement,ge as OAuthDiscovery,ce as ObjectPropertyValueValidationRule,J as OntologyValidationError,W as OntologyValidationResult,de as PropertyDomainRule,ne as PropertyHierarchyCycleRule,Re as PropertyKindRangeConsistencyRule,B as PropertyMetadata,ue as PropertyRangeReferenceRule,ae as PropertyRangeRequiredRule,Z as PropertyTypeSpecificityRule,R as PublisherConfigResolver,y as PublisherIndex,h as ReferenceKanonak,j as ReferenceStatement,ye as ReservedNameShadowRule,Y as ResourceNamingRule,E as ResourceResolver,T as ResourceTypeClassifier,S as ScalarStatement,K as Statement,b as StringStatement,ie as SubClassOfReferenceRule,se as SubPropertyOfReferenceRule,P as SubjectKanonak,$ as SubjectKanonakTypeRequiredRule,Ke as TokenCredentialProvider,N as TypeResolver,le as UnresolvedPredicateRule,te as UnresolvedReferenceRule,Q as ValidationContext,z as ValidationSeverity,je as buildOntologyModel,be as canonicalForm,Ie as canonicalHash,M as carrierOf,e as compareVersions,he as createCredentialedFetch,r as createVersion,Se as findDerivation,_ as findInstancesByType,t as formatVersion,c as getKanonakUserAgent,a as isCompatibleVersion,i as isMajorCompatible,d as kanonakFetch,Pe as normalizeHost,Ce as parseAuthChallenge,n as parseVersionString,q as parseWithPositions,s as pickHighestDocument,u as setKanonakUserAgent,o as versionsEqual};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Cn}from"./chunk-4NO7MHS7.js";import{a as
|
|
1
|
+
import{a as Cn}from"./chunk-4NO7MHS7.js";import{a as Nn}from"./chunk-PEJALHXK.js";import{a as M,c as Me,h as u,m as Mn}from"./chunk-V6KIDED2.js";import{a as Fn}from"./chunk-NJ3AZYQD.js";import{b as Oe,c as G,d as E,g as X,h as me,i as re,j as V,k as H,l as T,m as pn,n as ue,o as Vn,p as w,r as Ne,s as ke,v as gn,w as qe,y as An,z as xn}from"./chunk-YW6P24RF.js";import{a as Tn}from"./chunk-FUUTGGJS.js";import{c as en,g as ye}from"./chunk-2ACBWC7K.js";var Te="kanonak.org",Hn="look",We="core-rdf",Et={publisher:Te,package_:Hn,name:"displayLabel"},Kt={publisher:Te,package_:Hn,name:"displaySummary"},Rt={publisher:Te,package_:We,name:"type"},Lt={publisher:Te,package_:We,name:"subClassOf"},Ot={publisher:Te,package_:We,name:"label"},Ut={publisher:Te,package_:We,name:"comment"},Pn=new Tn(Te,We,"Resource");function D(r,e){let n=Dn(r,e,Et)??Ot,t=Dn(r,e,Kt)??Ut,a=gn(e,n)??e.name,s=gn(e,t);return{label:a,summary:s}}function Dn(r,e,n){let t=qe(e,n);if(t)return t;let a=new Set,s=Bn(e,Rt);for(;s.length>0;){let o=s.shift(),i=pn(o);if(a.has(i))continue;a.add(i);let c=Ne(r,o);if(!c)continue;let l=qe(c,n);if(l)return l;s.push(...Bn(c,Lt))}if(!a.has(pn(Pn))){let o=Ne(r,Pn);if(o){let i=qe(o,n);if(i)return i}}}function Bn(r,e){let n=qe(r,e);if(n)return[n];let t=[];for(let a of An(r,e))a instanceof E&&t.push(a.subject);return t}function Ye(r,e={}){let n=r.replace(/\r\n/g,`
|
|
2
2
|
`).split(`
|
|
3
3
|
`),t=[],a=0;for(;a<n.length;){let s=n[a];if(s.trim()===""){a++;continue}let o=/^(\s*)```(\S*)\s*$/.exec(s);if(o){let l=o[2],d=[];for(a++;a<n.length&&!/^(\s*)```\s*$/.test(n[a]);)d.push(n[a]),a++;a++;let f=d.join(`
|
|
4
4
|
`),g=l&&e.highlight?e.highlight(l,f):De(f),m=l?` class="language-${Gn(l)}"`:"";t.push(`<pre class="kan-code"><code${m}>${g}</code></pre>`);continue}let i=/^(#{1,6})\s+(.*)$/.exec(s);if(i){let l=i[1].length,d=Pe(i[2].trim());t.push(`<h${l}>${d}</h${l}>`),a++;continue}if(s.includes("|")&&a+1<n.length&&zn(n[a+1])){let l=mn(s),d=It(n[a+1]);a+=2;let f=[];for(;a<n.length&&n[a].trim()!==""&&n[a].includes("|");)f.push(mn(n[a])),a++;t.push(Ct(l,d,f));continue}if(/^\s*[-*]\s+/.test(s)){let l=[];for(;a<n.length&&/^\s*[-*]\s+/.test(n[a]);){let d=[n[a].replace(/^\s*[-*]\s+/,"")];for(a++;a<n.length&&n[a].trim()!==""&&!/^\s*[-*]\s+/.test(n[a])&&!/^\s*\d+\.\s+/.test(n[a]);)d.push(n[a]),a++;a<n.length&&n[a].trim()===""&&a++,l.push(`<li>${Pe(d.join(" ").trim())}</li>`)}t.push(`<ul>
|
|
@@ -14,7 +14,7 @@ ${l.join(`
|
|
|
14
14
|
<tbody>
|
|
15
15
|
${s}
|
|
16
16
|
</tbody>
|
|
17
|
-
</table>`}function Pe(r){let e=De(r);return e=e.replace(/`([^`\n]+)`/g,(n,t)=>`<code>${t}</code>`),e=e.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(n,t,a)=>`<a href="${Gn(a)}">${t}</a>`),e=e.replace(/\*\*([^*\n]+)\*\*/g,(n,t)=>`<strong>${t}</strong>`),e=e.replace(/(^|[^*])\*([^*\n]+)\*(?!\*)/g,(n,t,a)=>`${t}<em>${a}</em>`),e=e.replace(/(^|[\s(])_([^_\n]+)_(?=[\s).,;:!?]|$)/g,(n,t,a)=>`${t}<em>${a}</em>`),e}function De(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Gn(r){return r.replace(/"/g,""").replace(/&/g,"&")}var Ft={publisher:"kanonak.org",package_:"core-rdf",name:"label"};function Ae(r){return typeof r=="object"&&r!==null&&r.kind==="raw-string"}var Ee=class extends Error{},Xe=class{constructor(e,n,t=new Map){this.resolver=e;this.catalog=n;this.fragments=t}resolver;catalog;fragments;async evaluate(e,n){switch(e.kind){case"string-literal":return e.value;case"integer-literal":return e.value;case"decimal-literal":return e.value;case"boolean-literal":return e.value;case"uri-literal":return{...e.refTo};case"var-ref":{if(!n.has(e.varName))throw new Ee(`Unbound variable "${e.varName}"`);return n.get(e.varName)}case"concat":{let t=[];for(let a of e.parts){let s=await this.evaluate(a,n);if(s!=null)if(Array.isArray(s))for(let o of s)t.push(o);else t.push(s)}return t}case"fallback":{let t=await this.evaluate(e.primary,n);return qn(t)?t:this.evaluate(e.alternate,n)}case"when":return await this.evaluate(e.condition,n)===!0?this.evaluate(e.thenBuild,n):e.elseBuild?this.evaluate(e.elseBuild,n):void 0;case"is-set":{let t=await this.evaluate(e.check,n);return qn(t)}case"property-read":{let t=await this.evaluate(e.source,n);return nn(t,e.readProp)}case"traverse":{let t=await this.evaluate(e.source,n);if(!(t instanceof Oe))return;let a=Vt(t,e.through),s=[];for(let o of a){let i=ke(this.catalog,o),c=i.length>0?i:[await this.resolver.resolveSubject(o,this.catalog)];for(let l of c){if(!l)continue;let d=new Map(n);d.set("input",l);let f=await this.evaluate(e.step,d);if(f!=null&&Ve(f)!==""){s.push(Ve(f));break}}}return s.join("")}case"uri-name":{let t=await this.evaluate(e.source,n);return Be(t)?t.name:t instanceof E?t.subject.name:t instanceof G?t.name:t instanceof M?t.name??"":void 0}case"uri-publisher":{let t=await this.evaluate(e.source,n);return kn(t)?.publisher}case"uri-package":{let t=await this.evaluate(e.source,n);return kn(t)?.package_}case"uri-version":{let t=await this.evaluate(e.source,n);return kn(t)?.version}case"subject-uri":{let t=await this.evaluate(e.source,n);if(t instanceof G){let a=t.namespace??"",s=t.name??"";return!a||!s?void 0:`${a}/${s}`}if(t instanceof E){let a=t.subject,s=a.version;return s&&typeof s.major=="number"?`${a.publisher}/${a.package_}@${s.major}.${s.minor}.${s.patch}/${a.name}`:`${a.publisher}/${a.package_}/${a.name}`}return}case"display-label":{let t=await this.resolver.resolveSubject({...e.labelTarget},this.catalog);return t?nn(t,e.labelSource):void 0}case"resolve-ref":{let t=await this.evaluate(e.source,n);return t instanceof G?t:t instanceof E?await this.resolver.resolveSubject(t.subject,this.catalog):Be(t)?await this.resolver.resolveSubject(t,this.catalog):void 0}case"normalize":{let t=await this.evaluate(e.source,n),a=t==null?"":Ve(t);return e.normKind==="trim-end"?a.replace(/[\s\r\n]+$/u,""):e.normKind==="to-upper"?a.toUpperCase():e.normKind==="to-lower"?a.toLowerCase():e.normKind==="first-char"?a.length===0?"":a.charAt(0):a}case"unescaped-string":{let t=await this.evaluate(e.source,n);return{kind:"raw-string",value:t==null?"":Ve(t)}}case"render-markdown":{let t=await this.evaluate(e.source,n);if(!(t instanceof Oe))return;let a;for(let o of t.statement){let i=bn(o);if(i&&ue(i,e.readProp)){a=o;break}}if(!(a instanceof Me)){let o=nn(t,e.readProp);return o==null?void 0:Ve(o)}let s=await this.renderMarkdownLinks(a);return e.format==="html"?Ye(s):s}case"build-ast-node":{let t={kind:e.astClass.name};for(let a of e.set){let s=await this.evaluate(a.value,n);if(s==null||Array.isArray(s)&&s.length===0)continue;let o=a.field.name;xt.has(o)&&(Array.isArray(s)&&s.every(i=>Wn(i))?s=s.map(i=>Yn(i)).join(""):Wn(s)&&(s=Yn(s))),t[o]=s}return t}case"call-fragment":{let t=this.fragments.get(e.fragmentKey);if(!t)throw new Ee(`ExpressionFragment ${e.fragmentKey} not found in registry`);return this.evaluate(t,n)}case"join":return(await this.evaluateList(e.source,n)).map(a=>a==null?"":Ve(a)).join(e.separator);case"count":return(await this.evaluateList(e.source,n)).length;case"sum":{let t=await this.evaluateList(e.source,n),a=0;for(let s of t)a+=de(s,"Sum");return a}case"min":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ee("Min on an empty list is undefined; guard with IsSet");let a=de(t[0],"Min");for(let s=1;s<t.length;s++){let o=de(t[s],"Min");o<a&&(a=o)}return a}case"max":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ee("Max on an empty list is undefined; guard with IsSet");let a=de(t[0],"Max");for(let s=1;s<t.length;s++){let o=de(t[s],"Max");o>a&&(a=o)}return a}case"average":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ee("Average on an empty list is undefined; guard with IsSet");let a=0;for(let s of t)a+=de(s,"Average");return a/t.length}case"for-each":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,$e(s));let i=await this.evaluate(e.emit,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}case"list-map":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,$e(s)),a.push(await this.evaluate(e.mapBody,o))}return a}case"filter":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,$e(s)),await this.evaluate(e.predicate,o)===!0&&a.push(s)}return a}case"partition-by":{let t=await this.evaluateList(e.source,n),a=new Map,s=[];for(let o of t){let i=new Map(n);i.set(e.loopVar,$e(o));let c=await this.evaluate(e.partitionKey,i),l=Zn(c),d=a.get(l);d||(d={kind:"Partition",key:c,members:[]},a.set(l,d),s.push(l)),d.members.push(o)}return s.map(o=>a.get(o))}case"distinct-by":{let t=await this.evaluateList(e.source,n),a=new Set,s=[];for(let o of t){let i=new Map(n);i.set(e.loopVar,$e(o));let c=await this.evaluate(e.distinctKey,i),l=Zn(c);a.has(l)||(a.add(l),s.push(o))}return s}case"all-statements":{let t=await this.evaluate(e.source,n);return t instanceof Oe?t.statement:[]}case"statement-predicate":{let t=await this.evaluate(e.source,n);if(hn(t)){let a=t.predicate;if(a instanceof E)return a}return}case"statement-value":{let t=await this.evaluate(e.source,n);return hn(t)?Pt(t):void 0}case"date-format":{let t=await this.evaluate(e.source,n),a=t==null?"":Ve(t);return a?Nt(a,e.format):""}case"add":{let t=de(await this.evaluate(e.left,n),"Add"),a=de(await this.evaluate(e.right,n),"Add");return t+a}case"subtract":{let t=de(await this.evaluate(e.left,n),"Subtract"),a=de(await this.evaluate(e.right,n),"Subtract");return t-a}case"multiply":{let t=de(await this.evaluate(e.left,n),"Multiply"),a=de(await this.evaluate(e.right,n),"Multiply");return t*a}case"divide":{let t=de(await this.evaluate(e.left,n),"Divide"),a=de(await this.evaluate(e.right,n),"Divide");if(a===0)throw new Ee("Divide by zero; guard with When");return t/a}case"reverse":{if(e.source.kind==="reverse")return this.evaluate(e.source.source,n);let t=await this.evaluateReverseIterator(e.source,n);return t!==void 0?t:[...await this.evaluateList(e.source,n)].reverse()}case"windowed-map":{let t=await this.evaluateList(e.source,n);if(t.length<e.windowSize)return[];let a=[];for(let s=0;s+e.windowSize<=t.length;s++){let o=t.slice(s,s+e.windowSize),i=new Map(n);i.set(e.windowVar,o);let c=await this.evaluate(e.windowBody,i);if(c!=null)if(Array.isArray(c))for(let l of c)a.push(l);else a.push(c)}return a}case"pairwise-map":{let t=await this.evaluateList(e.source,n);if(t.length<2)return[];let a=[];for(let s=0;s+1<t.length;s++){let o=new Map(n);o.set(e.firstVar,$e(t[s])),o.set(e.secondVar,$e(t[s+1]));let i=await this.evaluate(e.pairBody,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}case"scan":{let t=await this.evaluateList(e.source,n);if(t.length===0)return[];let a=await this.evaluate(e.initialState,n),s=[];for(let o of t){let i=new Map(n);i.set(e.stateVar,a),i.set(e.elementVar,$e(o));let c=await this.evaluate(e.accumulate,i);s.push(c),a=c}return s}case"list-item-at":{let t=await this.evaluateList(e.source,n),a=await this.evaluate(e.itemIndex,n);return typeof a!="number"||!Number.isInteger(a)||a<0||a>=t.length?void 0:t[a]}case"equals":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return Xn(t,a)}case"greater-than":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t>a}case"less-than":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t<a}case"greater-than-or-equal":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t>=a}case"less-than-or-equal":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t<=a}case"not":{let t=await this.evaluate(e.operand,n);return t===!0?!1:t===!1?!0:void 0}case"and":{for(let t of e.operands)if(await this.evaluate(t,n)!==!0)return!1;return!0}case"or":{for(let t of e.operands)if(await this.evaluate(t,n)===!0)return!0;return!1}case"contains":{let t=await this.evaluateList(e.haystack,n),a=await this.evaluate(e.needle,n);for(let s of t)if(Xn(s,a))return!0;return!1}case"abs":{let t=de(await this.evaluate(e.value,n),"Abs");return Math.abs(t)}case"negate":return-de(await this.evaluate(e.value,n),"Negate");case"is-reference":{let t=await this.evaluate(e.check,n);return t instanceof E||t instanceof G}case"is-embedded":return await this.evaluate(e.check,n)instanceof M;case"is-list":{let t=await this.evaluate(e.check,n);return Array.isArray(t)}case"is-string":return typeof await this.evaluate(e.check,n)=="string";case"is-number":return typeof await this.evaluate(e.check,n)=="number";case"is-boolean":return typeof await this.evaluate(e.check,n)=="boolean";case"statement-object":{let t=await this.evaluate(e.source,n);if(!hn(t))return;let a=t;return a instanceof X||a instanceof me||a instanceof re||a instanceof V||a instanceof H||a instanceof T?a.object:void 0}case"let":{let t=await this.evaluate(e.bindValue,n),a=new Map(n);return a.set(e.bindName,t),this.evaluate(e.body,a)}case"get-statement-by-name":{let t=await this.evaluate(e.inSubject,n),a=await this.evaluate(e.byName,n);if(!(t instanceof Oe)||typeof a!="string")return;for(let s of t.statement)if(s.predicate?.subject?.name===a)return s;return}default:{let t=e;throw new Ee("Unknown expression kind")}}}async renderMarkdownLinks(e){let n=e.object,t="",a=0;for(let s of e.links){if(t+=n.slice(a,s.startOffset),s.target){let o=s.target.subject,i=s.displayText??await this.resolveLabel(o)??o.name;t+=`[${i}](${Vn(o)})`}else t+=s.displayText??s.reference;a=s.endOffset}return t+=n.slice(a),t}async resolveLabel(e){let n=await this.resolver.resolveSubject(e,this.catalog);if(!n)return;let t=nn(n,Ft);return typeof t=="string"?t:void 0}async evaluateList(e,n){let t=await this.evaluate(e,n);return t==null?[]:Array.isArray(t)?t:[t]}async evaluateReverseIterator(e,n){if(e.kind==="pairwise-map"){let t=await this.evaluateList(e.source,n);if(t.length<2)return[];let a=[];for(let s=t.length-1;s>=1;s--){let o=new Map(n);o.set(e.firstVar,$e(t[s-1])),o.set(e.secondVar,$e(t[s]));let i=await this.evaluate(e.pairBody,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}if(e.kind==="for-each"){let t=await this.evaluateList(e.source,n),a=[];for(let s=t.length-1;s>=0;s--){let o=new Map(n);o.set(e.loopVar,$e(t[s]));let i=await this.evaluate(e.emit,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}if(e.kind==="list-map"){let t=await this.evaluateList(e.source,n),a=[];for(let s=t.length-1;s>=0;s--){let o=new Map(n);o.set(e.loopVar,$e(t[s])),a.push(await this.evaluate(e.mapBody,o))}return a}if(e.kind==="windowed-map"){let t=await this.evaluateList(e.source,n);if(t.length<e.windowSize)return[];let a=[];for(let s=t.length-e.windowSize;s>=0;s--){let o=t.slice(s,s+e.windowSize),i=new Map(n);i.set(e.windowVar,o);let c=await this.evaluate(e.windowBody,i);if(c!=null)if(Array.isArray(c))for(let l of c)a.push(l);else a.push(c)}return a}}};function nn(r,e){if(r instanceof Oe)return Tt(r,e);if(At(r))return ue(e,u.key)?r.key:ue(e,u.members)?r.members:void 0}function Tt(r,e){for(let n of r.statement){let t=bn(n);if(!(!t||!ue(t,e))&&(n instanceof X||n instanceof me||n instanceof re||n instanceof V||n instanceof H||n instanceof T))return n.object}}function Vt(r,e){let n=[];for(let t of r.statement){let a=bn(t);if(!(!a||!ue(a,e))){if(t instanceof V)n.push(t.object.subject);else if(t instanceof T)for(let s of t.object)s instanceof E&&n.push(s.subject)}}return n}function bn(r){return r.predicate?.subject}function Ve(r){if(r==null)return"";if(typeof r=="string")return r;if(typeof r=="number"||typeof r=="boolean")return String(r);if(Ae(r))return r.value;if(r instanceof Oe)return r.name??"";if(r instanceof E)return r.subject.name;if(Be(r))return r.name;let e=r.value;return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function $e(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof Oe)&&!(r instanceof E)&&!(r instanceof M)&&"value"in r?r.value:r}function qn(r){return r==null?!1:typeof r=="string"||Array.isArray(r)?r.length>0:typeof r=="boolean"?r===!0:!0}function Be(r){return typeof r=="object"&&r!==null&&typeof r.publisher=="string"&&typeof r.package_=="string"&&typeof r.name=="string"}function At(r){return typeof r=="object"&&r!==null&&r.kind==="Partition"&&Array.isArray(r.members)}function de(r,e){if(typeof r=="number"&&Number.isFinite(r))return r;throw new Ee(`${e} requires numeric elements; got ${Mt(r)}`)}function kn(r){if(r instanceof G){let e=r.namespace??"",n=e.indexOf("/"),t=e.indexOf("@",n+1);return n<0||t<0?void 0:{publisher:e.substring(0,n),package_:e.substring(n+1,t),version:e.substring(t+1),name:r.name??""}}if(r instanceof E){let e=r.subject,n=e.version;return{publisher:e.publisher,package_:e.package_,version:n&&typeof n.major=="number"?`${n.major}.${n.minor}.${n.patch}`:"",name:e.name}}if(Be(r))return{publisher:r.publisher,package_:r.package_,version:"",name:r.name}}var xt=new Set(["stringValue","text","rawContent","key","propertyKey","linkLabel"]);function Wn(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"||Ae(r)}function Yn(r){return Ae(r)?r.value:String(r)}function Mt(r){return r===void 0?"undefined":r===null?"null":Array.isArray(r)?`array(${r.length})`:typeof r}function Nt(r,e){let n=new Date(r);if(isNaN(n.getTime()))return"";let t=n.getUTCFullYear(),a=["January","February","March","April","May","June","July","August","September","October","November","December"][n.getUTCMonth()],s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][n.getUTCMonth()],o=n.getUTCDate(),i=(c,l=2)=>String(c).padStart(l,"0");switch(e){case"iso-date":return`${t}-${i(n.getUTCMonth()+1)}-${i(o)}`;case"iso-datetime":return`${t}-${i(n.getUTCMonth()+1)}-${i(o)}T${i(n.getUTCHours())}:${i(n.getUTCMinutes())}:${i(n.getUTCSeconds())}Z`;case"short-date":return`${s} ${o}`;case"long-date":return`${a} ${o}, ${t}`;case"year":return String(t);case"month-year":return`${a} ${t}`}}function Xn(r,e){if(r==null||e===void 0||e===null)return!1;if(r===e)return!0;let n=typeof r=="object"&&"value"in r?r.value:void 0,t=typeof e=="object"&&"value"in e?e.value:void 0,a=n??r,s=t??e,o=Jn(r),i=Jn(e);return o&&i?o.publisher===i.publisher&&o.package_===i.package_&&o.name===i.name:typeof a=="string"&&typeof s=="string"||typeof a=="number"&&typeof s=="number"||typeof a=="boolean"&&typeof s=="boolean"?a===s:!1}function Jn(r){if(r instanceof E){let e=r.subject;return{publisher:e.publisher,package_:e.package_,name:e.name}}if(r instanceof G){let e=r.namespace??"",n=e.indexOf("/"),t=e.indexOf("@",n+1);if(n<0)return;let a=e.substring(0,n),s=t>=0?e.substring(n+1,t):e.substring(n+1);return{publisher:a,package_:s,name:r.name??""}}if(Be(r))return{publisher:r.publisher,package_:r.package_,name:r.name}}function hn(r){return r instanceof X||r instanceof me||r instanceof re||r instanceof V||r instanceof H||r instanceof T}function Pt(r){return r instanceof X||r instanceof me||r instanceof re?String(r.object??""):r instanceof V?r.object?.subject?.name??"":r instanceof H?"[embedded]":r instanceof T?(r.object??[]).map(n=>{if(n instanceof E)return n.subject.name;let t=n.name;if(t&&t.length>0)return t;let a=n.value;return typeof a=="string"||typeof a=="number"||typeof a=="boolean"?String(a):"[embedded]"}).join(", "):""}function Zn(r){if(r===void 0)return"\0undef";if(r===null)return"\0null";if(typeof r=="string")return`s:${r}`;if(typeof r=="number")return`n:${r}`;if(typeof r=="boolean")return`b:${r}`;if(r instanceof E){let e=r.subject;return`r:${e.publisher}/${e.package_}/${e.name}`}if(r instanceof Oe){let e=r.name??"";return`k:${r.namespace??""}/${e}`}return Be(r)?`u:${r.publisher}/${r.package_}/${r.name}`:`o:${JSON.stringify(r)}`}var q=class extends Error{constructor(n,t){super(`${n} (at ${t})`);this.path=t}path};function us(r,e){let n=r.name,t=Zt(e),a={catalog:e,depth:0};if(w(r,u.InstanceTransformation))return Dt(r,n,a,t);if(w(r,u.SetTransformation))return Bt(r,n,a,t);throw new q("Subject is not a recognized v3 transformation type \u2014 expected InstanceTransformation or SetTransformation",n)}function Dt(r,e,n,t){return{kind:"instance",name:r.name,inputPattern:rt(r,e),rule:tn(r,u.rule,`${e}.rule`,n),artifactName:tn(r,u.artifactName,`${e}.artifactName`,n),outputs:st(r,`${e}.outputs`),overrides:ot(r,`${e}.formatOverrides`,n),fragments:t}}function Bt(r,e,n,t){let a=Ie(r,u.partitionBy);return{kind:"set",name:r.name,inputPattern:rt(r,e),rule:tn(r,u.rule,`${e}.rule`,n),artifactName:tn(r,u.artifactName,`${e}.artifactName`,n),outputs:st(r,`${e}.outputs`),overrides:ot(r,`${e}.formatOverrides`,n),partitionBy:a,fragments:t}}function rt(r,e){let n=Je(r,u.inputPattern);if(!n)throw new q("inputPattern is required",e);return Ht(n,`${e}.inputPattern`)}function Ht(r,e){let n=Ie(r,u.matchesClass);if(!n)throw new q("matchesClass is required",e);let t=[];for(let o of ve(r,u.requires))if(o instanceof V)t.push($n(o.object.subject));else if(o instanceof T)for(let i of o.object)i instanceof E&&t.push($n(i.subject));let a=[],s=0;for(let o of ve(r,u.sortBy))if(o instanceof T)for(let i of o.object)i instanceof M&&a.push(Qn(i,`${e}.sortBy[${s++}]`));else o instanceof H&&a.push(Qn(o.object,`${e}.sortBy[${s++}]`));return{matchesClass:n,requires:t,sortBy:a}}function Qn(r,e){let n=Ie(r,u.byProperty);if(!n)throw new q("SortKey.byProperty is required",e);let t=Ie(r,u.order);if(!t)throw new q("SortKey.order is required",e);if(ue(t,u.ascending))return{byProperty:n,order:"ascending"};if(ue(t,u.descending))return{byProperty:n,order:"descending"};throw new q(`SortKey.order must reference tx.ascending or tx.descending; got ${t.publisher}/${t.package_}/${t.name}`,e)}function tn(r,e,n,t){let a=Je(r,e);if(!a)throw new q("expression is required",n);return Ue(a,n,t)}function Ue(r,e,n){if(w(r,u.StringLiteral))return{kind:"string-literal",value:he(r,u.stringLiteral,e)};if(w(r,u.IntegerLiteral))return{kind:"integer-literal",value:at(r,u.integerLiteral,e)};if(w(r,u.DecimalLiteral))return{kind:"decimal-literal",value:at(r,u.decimalLiteral,e)};if(w(r,u.BooleanLiteral))return{kind:"boolean-literal",value:na(r,u.booleanLiteral,e)};if(w(r,u.VarRef))return{kind:"var-ref",varName:he(r,u.varName,e)};if(w(r,u.PropertyRead))return{kind:"property-read",source:y(r,u.readSource,`${e}.readSource`,n),readProp:Ce(r,u.readProp,e,"readProp")};if(w(r,u.Traverse))return{kind:"traverse",source:y(r,u.traverseSource,`${e}.traverseSource`,n),through:Ce(r,u.through,e,"through"),step:y(r,u.step,`${e}.step`,n)};if(w(r,u.BuildAstNode))return{kind:"build-ast-node",astClass:Ce(r,u.astClass,e,"astClass"),set:Gt(r,`${e}.set`,n)};if(w(r,u.When))return{kind:"when",condition:y(r,u.condition,`${e}.condition`,n),thenBuild:y(r,u.thenBuild,`${e}.thenBuild`,n),elseBuild:zt(r,u.elseBuild,`${e}.elseBuild`,n)};if(w(r,u.Concat))return{kind:"concat",parts:vn(r,u.parts,`${e}.parts`,n)};if(w(r,u.Fallback))return{kind:"fallback",primary:y(r,u.primary,`${e}.primary`,n),alternate:y(r,u.alternate,`${e}.alternate`,n)};if(w(r,u.UriName))return{kind:"uri-name",source:y(r,u.uriNameOf,`${e}.uriNameOf`,n)};if(w(r,u.UriPublisher))return{kind:"uri-publisher",source:y(r,u.uriPublisherOf,`${e}.uriPublisherOf`,n)};if(w(r,u.UriPackage))return{kind:"uri-package",source:y(r,u.uriPackageOf,`${e}.uriPackageOf`,n)};if(w(r,u.UriVersion))return{kind:"uri-version",source:y(r,u.uriVersionOf,`${e}.uriVersionOf`,n)};if(w(r,u.SubjectUri))return{kind:"subject-uri",source:y(r,u.subjectOf,`${e}.subjectOf`,n)};if(w(r,u.UriLiteral))return{kind:"uri-literal",refTo:Ce(r,u.refTo,e,"refTo")};if(w(r,u.DisplayLabel))return{kind:"display-label",labelTarget:Ce(r,u.labelTarget,e,"labelTarget"),labelSource:Ce(r,u.labelSource,e,"labelSource")};if(w(r,u.ResolveRef))return{kind:"resolve-ref",source:y(r,u.resolveSource,`${e}.resolveSource`,n)};if(w(r,u.Normalize))return{kind:"normalize",source:y(r,u.normSource,`${e}.normSource`,n),normKind:qt(r,e)};if(w(r,u.UnescapedString))return{kind:"unescaped-string",source:y(r,u.unescapedSource,`${e}.unescapedSource`,n)};if(w(r,u.RenderMarkdown))return{kind:"render-markdown",source:y(r,u.renderSource,`${e}.renderSource`,n),readProp:Ce(r,u.renderProp,e,"renderProp"),format:Wt(r,e)};if(w(r,u.IsSet))return{kind:"is-set",check:y(r,u.checkExpr,`${e}.checkExpr`,n)};if(w(r,u.CallFragment))return Xt(r,e,n);if(w(r,u.Join))return{kind:"join",source:y(r,u.source,`${e}.source`,n),separator:he(r,u.separator,e)};if(w(r,u.Count))return{kind:"count",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.Sum))return{kind:"sum",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.Min))return{kind:"min",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.Max))return{kind:"max",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.Average))return{kind:"average",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.ForEach))return{kind:"for-each",source:y(r,u.source,`${e}.source`,n),loopVar:he(r,u.loopVar,e),emit:y(r,u.emit,`${e}.emit`,n)};if(w(r,u.ListMap))return{kind:"list-map",source:y(r,u.source,`${e}.source`,n),loopVar:he(r,u.loopVar,e),mapBody:y(r,u.mapBody,`${e}.mapBody`,n)};if(w(r,u.Filter))return{kind:"filter",source:y(r,u.source,`${e}.source`,n),loopVar:he(r,u.loopVar,e),predicate:y(r,u.predicate,`${e}.predicate`,n)};if(w(r,u.PartitionBy))return{kind:"partition-by",source:y(r,u.source,`${e}.source`,n),loopVar:he(r,u.loopVar,e),partitionKey:y(r,u.partitionKey,`${e}.partitionKey`,n)};if(w(r,u.DistinctBy))return{kind:"distinct-by",source:y(r,u.source,`${e}.source`,n),loopVar:he(r,u.loopVar,e),distinctKey:y(r,u.distinctKey,`${e}.distinctKey`,n)};if(w(r,u.AllStatements))return{kind:"all-statements",source:y(r,u.statementsOf,`${e}.statementsOf`,n)};if(w(r,u.StatementPredicate))return{kind:"statement-predicate",source:y(r,u.predicateOf,`${e}.predicateOf`,n)};if(w(r,u.StatementValue))return{kind:"statement-value",source:y(r,u.valueOf,`${e}.valueOf`,n)};if(w(r,u.DateFormat))return{kind:"date-format",source:y(r,u.dateSource,`${e}.dateSource`,n),format:Yt(r,e)};if(w(r,u.Add))return{kind:"add",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(w(r,u.Subtract))return{kind:"subtract",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(w(r,u.Multiply))return{kind:"multiply",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(w(r,u.Divide))return{kind:"divide",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(w(r,u.Reverse))return{kind:"reverse",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.WindowedMap)){let t=it(r,u.windowSize);if(t===void 0||!Number.isInteger(t)||t<1)throw new q("windowSize must be a positive integer",`${e}.windowSize`);return{kind:"windowed-map",source:y(r,u.source,`${e}.source`,n),windowSize:t,windowVar:he(r,u.windowVar,e),windowBody:y(r,u.windowBody,`${e}.windowBody`,n)}}if(w(r,u.PairwiseMap))return{kind:"pairwise-map",source:y(r,u.source,`${e}.source`,n),firstVar:he(r,u.firstVar,e),secondVar:he(r,u.secondVar,e),pairBody:y(r,u.pairBody,`${e}.pairBody`,n)};if(w(r,u.Scan))return{kind:"scan",source:y(r,u.source,`${e}.source`,n),initialState:y(r,u.initialState,`${e}.initialState`,n),stateVar:he(r,u.stateVar,e),elementVar:he(r,u.elementVar,e),accumulate:y(r,u.accumulate,`${e}.accumulate`,n)};if(w(r,u.ListItemAt))return{kind:"list-item-at",source:y(r,u.source,`${e}.source`,n),itemIndex:y(r,u.itemIndex,`${e}.itemIndex`,n)};if(w(r,u.Equals))return{kind:"equals",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(w(r,u.GreaterThan))return{kind:"greater-than",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(w(r,u.LessThan))return{kind:"less-than",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(w(r,u.GreaterThanOrEqual))return{kind:"greater-than-or-equal",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(w(r,u.LessThanOrEqual))return{kind:"less-than-or-equal",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(w(r,u.Not))return{kind:"not",operand:y(r,u.operand,`${e}.operand`,n)};if(w(r,u.And))return{kind:"and",operands:vn(r,u.operands,`${e}.operands`,n)};if(w(r,u.Or))return{kind:"or",operands:vn(r,u.operands,`${e}.operands`,n)};if(w(r,u.Contains))return{kind:"contains",haystack:y(r,u.haystack,`${e}.haystack`,n),needle:y(r,u.needle,`${e}.needle`,n)};if(w(r,u.Abs))return{kind:"abs",value:y(r,u.value,`${e}.value`,n)};if(w(r,u.Negate))return{kind:"negate",value:y(r,u.value,`${e}.value`,n)};if(w(r,u.IsReference))return{kind:"is-reference",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.IsEmbedded))return{kind:"is-embedded",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.IsList))return{kind:"is-list",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.IsString))return{kind:"is-string",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.IsNumber))return{kind:"is-number",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.IsBoolean))return{kind:"is-boolean",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.StatementObject))return{kind:"statement-object",source:y(r,u.statementSource,`${e}.statementSource`,n)};if(w(r,u.Let))return{kind:"let",bindName:he(r,u.letName,e),bindValue:y(r,u.letValue,`${e}.letValue`,n),body:y(r,u.letBody,`${e}.letBody`,n)};if(w(r,u.GetStatementByName))return{kind:"get-statement-by-name",inSubject:y(r,u.inSubject,`${e}.inSubject`,n),byName:y(r,u.byName,`${e}.byName`,n)};throw new q("Expression is not of a recognized v3 type \u2014 embedded has no matching subclass of tx.Expression",e)}function y(r,e,n,t){let a=Je(r,e);if(!a)throw new q("child expression is required",n);return Ue(a,n,t)}function zt(r,e,n,t){let a=Je(r,e);if(a)return Ue(a,n,t)}function vn(r,e,n,t){let a=[],s=0;for(let o of ve(r,e))if(o instanceof T)for(let i of o.object)i instanceof M&&a.push(Ue(i,`${n}[${s++}]`,t));else o instanceof H&&a.push(Ue(o.object,`${n}[${s++}]`,t));return a}function Gt(r,e,n){let t=[],a=0;for(let s of ve(r,u.set))if(s instanceof T)for(let o of s.object)o instanceof M&&t.push(et(o,`${e}[${a++}]`,n));else s instanceof H&&t.push(et(s.object,`${e}[${a++}]`,n));return t}function et(r,e,n){return{field:Ce(r,u.field,e,"field"),value:y(r,u.bindValue,`${e}.bindValue`,n)}}function qt(r,e){let n=Ie(r,u.normKind);if(!n)throw new q("normKind is required",e);if(ue(n,u.NORM_TRIM_END))return"trim-end";if(ue(n,u.NORM_TO_UPPER))return"to-upper";if(ue(n,u.NORM_TO_LOWER))return"to-lower";if(ue(n,u.NORM_FIRST_CHAR))return"first-char";throw new q(`Unknown NormalizeKind: ${n.publisher}/${n.package_}/${n.name}`,e)}function Wt(r,e){let n=Ie(r,u.renderFormat);if(!n)throw new q("renderFormat is required",e);if(ue(n,u.RENDER_HTML))return"html";if(ue(n,u.RENDER_MARKDOWN))return"markdown";throw new q(`Unknown RenderFormat: ${n.publisher}/${n.package_}/${n.name}`,e)}var nt=new Set(["iso-date","iso-datetime","short-date","long-date","year","month-year"]);function Yt(r,e){let n=He(r,u.dateFormat);if(!n)throw new q("dateFormat is required",e);if(!nt.has(n))throw new q(`Unknown dateFormat "${n}"; supported: ${[...nt].join(", ")}`,e);return n}function Xt(r,e,n){let t=Ie(r,u.fragmentRef);if(!t)throw new q("fragmentRef is required",e);if(!Qt(n.catalog,t))throw new q(`ExpressionFragment not found: ${t.publisher}/${t.package_}/${t.name}`,e);return{kind:"call-fragment",fragmentKey:Jt(t)}}function Jt(r){return`${r.publisher}/${r.package_}/${r.name}`}function Zt(r){let e=new Map,n=[];for(let t of r){if(!(t instanceof G)||!w(t,u.ExpressionFragment))continue;let a=Je(t,u.body);if(!a)continue;let s=(t.namespace||"").split("@")[0]||"",o=s.indexOf("/");if(o<0)continue;let i=s.substring(0,o),c=s.substring(o+1),l=`${i}/${c}/${t.name}`;n.push({key:l,subject:t,bodyEmb:a,pubPkgName:`${s}/${t.name}`})}for(let t of n){let a=Ue(t.bodyEmb,`fragment(${t.pubPkgName})`,{catalog:r,depth:0});e.set(t.key,a)}return e}function Qt(r,e){for(let n of r)if(!(!(n instanceof G)||n.name!==e.name||!(n.namespace||"").startsWith(`${e.publisher}/${e.package_}@`))&&w(n,u.ExpressionFragment))return n}function st(r,e){let n=new Set;for(let t of ve(r,u.outputs))if(t instanceof V)n.add(t.object.subject.name);else if(t instanceof T)for(let a of t.object)a instanceof E&&n.add(a.subject.name);if(n.size===0)throw new q("outputs is required (at least one OutputFormat)",e);return n}function ot(r,e,n){let t=new Map,a=0;for(let s of ve(r,u.formatOverrides))if(s instanceof T){for(let o of s.object)if(o instanceof M){let[i,c]=tt(o,`${e}[${a++}]`);t.set(i,c)}}else if(s instanceof H){let[o,i]=tt(s.object,`${e}[${a++}]`);t.set(o,i)}return t}function tt(r,e){let n=Ie(r,u.formatTarget);if(!n)throw new q("formatTarget is required",e);let t=[];for(let i of ve(r,u.metadataKeys))if(i instanceof X)t.push(i.object);else if(i instanceof T)for(let c of i.object){let l=c.value;typeof l=="string"&&t.push(l)}let a=new Map;for(let i of ve(r,u.metadataRenames))if(i instanceof T){for(let c of i.object)if(c instanceof M){let l=He(c,u.fromKey),d=He(c,u.toKey);l&&d&&a.set(l,d)}}else if(i instanceof H){let c=i.object,l=He(c,u.fromKey),d=He(c,u.toKey);l&&d&&a.set(l,d)}let s=yn(r,u.trailingNewline),o=yn(r,u.omitWrapper);return[n.name,{metadataKeys:t.length>0?t:void 0,metadataRenames:a,trailingNewline:s,omitWrapper:o}]}function ea(r){return r.predicate?.subject}function ve(r,e){let n=[];for(let t of r.statement){let a=ea(t);a&&ue(a,e)&&n.push(t)}return n}function Je(r,e){for(let n of ve(r,e))if(n instanceof H)return n.object}function Ie(r,e){for(let n of ve(r,e))if(n instanceof V)return $n(n.object.subject)}function He(r,e){for(let n of ve(r,e))if(n instanceof X)return n.object}function it(r,e){for(let n of ve(r,e))if(n instanceof me)return n.object}function yn(r,e){for(let n of ve(r,e))if(n instanceof re)return n.object}function he(r,e,n){let t=He(r,e);if(t===void 0)throw new q(`${e.name} (string) is required`,n);return t}function at(r,e,n){let t=it(r,e);if(t===void 0)throw new q(`${e.name} (number) is required`,n);return t}function na(r,e,n){let t=yn(r,e);if(t===void 0)throw new q(`${e.name} (boolean) is required`,n);return t}function Ce(r,e,n,t){let a=Ie(r,e);if(!a)throw new q(`${t} (URI reference) is required`,n);return a}function $n(r){return{publisher:r.publisher,package_:r.package_,name:r.name}}var an=class{constructor(e,n,t){this.repository=e;this.parser=n;this.objectParser=t}repository;parser;objectParser;cache=new Map;async resolveSubject(e,n){let t=Ne(n,e);if(t)return t;let a=e.version,s=a&&typeof a.major=="number"?`@${a.major}.${a.minor}.${a.patch}`:"",o=`${e.publisher}/${e.package_}${s}`,i=this.cache.get(o);if(!i){let l=await this.repository.getDocumentsByNamespaceAsync(e.publisher,e.package_);if(l.length===0)return;let d=a&&typeof a.major=="number"?l.find(g=>{let m=g.metadata?.namespace_?.version;return m&&m.major===a.major&&m.minor===a.minor&&m.patch===a.patch})??l[0]:l[0],f=new Nn(d,this.repository);i=await this.objectParser.parseKanonaks(f),this.cache.set(o,i)}let c=Ne(i,e);if(c)return c;for(let l of i)if(l instanceof G&&l.name===e.name)return l}};var rn=class{byLang=new Map;constructor(e){for(let n of e){if(!n.language)continue;let t=[];for(let a of n.rules){if(!a.tokenClass||!a.pattern)continue;let s;try{s=new RegExp(a.pattern,"y")}catch{continue}t.push({tokenClass:a.tokenClass,re:s})}this.byLang.set(n.language,t)}}has(e){return this.byLang.has(e)}highlight(e,n){let t=this.byLang.get(e);return!t||t.length===0?De(n):n.split(`
|
|
17
|
+
</table>`}function Pe(r){let e=De(r);return e=e.replace(/`([^`\n]+)`/g,(n,t)=>`<code>${t}</code>`),e=e.replace(/\[([^\]]+)\]\(([^)\s]+)\)/g,(n,t,a)=>`<a href="${Gn(a)}">${t}</a>`),e=e.replace(/\*\*([^*\n]+)\*\*/g,(n,t)=>`<strong>${t}</strong>`),e=e.replace(/(^|[^*])\*([^*\n]+)\*(?!\*)/g,(n,t,a)=>`${t}<em>${a}</em>`),e=e.replace(/(^|[\s(])_([^_\n]+)_(?=[\s).,;:!?]|$)/g,(n,t,a)=>`${t}<em>${a}</em>`),e}function De(r){return r.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'")}function Gn(r){return r.replace(/"/g,""").replace(/&/g,"&")}var Ft={publisher:"kanonak.org",package_:"core-rdf",name:"label"};function Ae(r){return typeof r=="object"&&r!==null&&r.kind==="raw-string"}var Ee=class extends Error{},Xe=class{constructor(e,n,t=new Map){this.resolver=e;this.catalog=n;this.fragments=t}resolver;catalog;fragments;async evaluate(e,n){switch(e.kind){case"string-literal":return e.value;case"integer-literal":return e.value;case"decimal-literal":return e.value;case"boolean-literal":return e.value;case"uri-literal":return{...e.refTo};case"var-ref":{if(!n.has(e.varName))throw new Ee(`Unbound variable "${e.varName}"`);return n.get(e.varName)}case"concat":{let t=[];for(let a of e.parts){let s=await this.evaluate(a,n);if(s!=null)if(Array.isArray(s))for(let o of s)t.push(o);else t.push(s)}return t}case"fallback":{let t=await this.evaluate(e.primary,n);return qn(t)?t:this.evaluate(e.alternate,n)}case"when":return await this.evaluate(e.condition,n)===!0?this.evaluate(e.thenBuild,n):e.elseBuild?this.evaluate(e.elseBuild,n):void 0;case"is-set":{let t=await this.evaluate(e.check,n);return qn(t)}case"property-read":{let t=await this.evaluate(e.source,n);return nn(t,e.readProp)}case"traverse":{let t=await this.evaluate(e.source,n);if(!(t instanceof Oe))return;let a=Vt(t,e.through),s=[];for(let o of a){let i=ke(this.catalog,o),c=i.length>0?i:[await this.resolver.resolveSubject(o,this.catalog)];for(let l of c){if(!l)continue;let d=new Map(n);d.set("input",l);let f=await this.evaluate(e.step,d);if(f!=null&&Ve(f)!==""){s.push(Ve(f));break}}}return s.join("")}case"uri-name":{let t=await this.evaluate(e.source,n);return Be(t)?t.name:t instanceof E?t.subject.name:t instanceof G?t.name:t instanceof M?t.name??"":void 0}case"uri-publisher":{let t=await this.evaluate(e.source,n);return kn(t)?.publisher}case"uri-package":{let t=await this.evaluate(e.source,n);return kn(t)?.package_}case"uri-version":{let t=await this.evaluate(e.source,n);return kn(t)?.version}case"subject-uri":{let t=await this.evaluate(e.source,n);if(t instanceof G){let a=t.namespace??"",s=t.name??"";return!a||!s?void 0:`${a}/${s}`}if(t instanceof E){let a=t.subject,s=a.version;return s&&typeof s.major=="number"?`${a.publisher}/${a.package_}@${s.major}.${s.minor}.${s.patch}/${a.name}`:`${a.publisher}/${a.package_}/${a.name}`}return}case"display-label":{let t=await this.resolver.resolveSubject({...e.labelTarget},this.catalog);return t?nn(t,e.labelSource):void 0}case"resolve-ref":{let t=await this.evaluate(e.source,n);return t instanceof G?t:t instanceof E?await this.resolver.resolveSubject(t.subject,this.catalog):Be(t)?await this.resolver.resolveSubject(t,this.catalog):void 0}case"normalize":{let t=await this.evaluate(e.source,n),a=t==null?"":Ve(t);return e.normKind==="trim-end"?a.replace(/[\s\r\n]+$/u,""):e.normKind==="to-upper"?a.toUpperCase():e.normKind==="to-lower"?a.toLowerCase():e.normKind==="first-char"?a.length===0?"":a.charAt(0):a}case"unescaped-string":{let t=await this.evaluate(e.source,n);return{kind:"raw-string",value:t==null?"":Ve(t)}}case"render-markdown":{let t=await this.evaluate(e.source,n);if(!(t instanceof Oe))return;let a;for(let o of t.statement){let i=bn(o);if(i&&ue(i,e.readProp)){a=o;break}}if(!(a instanceof Me)){let o=nn(t,e.readProp);return o==null?void 0:Ve(o)}let s=await this.renderMarkdownLinks(a);return e.format==="html"?Ye(s):s}case"build-ast-node":{let t={kind:e.astClass.name};for(let a of e.set){let s=await this.evaluate(a.value,n);if(s==null||Array.isArray(s)&&s.length===0)continue;let o=a.field.name;xt.has(o)&&(Array.isArray(s)&&s.every(i=>Wn(i))?s=s.map(i=>Yn(i)).join(""):Wn(s)&&(s=Yn(s))),t[o]=s}return t}case"call-fragment":{let t=this.fragments.get(e.fragmentKey);if(!t)throw new Ee(`ExpressionFragment ${e.fragmentKey} not found in registry`);return this.evaluate(t,n)}case"join":return(await this.evaluateList(e.source,n)).map(a=>a==null?"":Ve(a)).join(e.separator);case"count":return(await this.evaluateList(e.source,n)).length;case"sum":{let t=await this.evaluateList(e.source,n),a=0;for(let s of t)a+=de(s,"Sum");return a}case"min":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ee("Min on an empty list is undefined; guard with IsSet");let a=de(t[0],"Min");for(let s=1;s<t.length;s++){let o=de(t[s],"Min");o<a&&(a=o)}return a}case"max":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ee("Max on an empty list is undefined; guard with IsSet");let a=de(t[0],"Max");for(let s=1;s<t.length;s++){let o=de(t[s],"Max");o>a&&(a=o)}return a}case"average":{let t=await this.evaluateList(e.source,n);if(t.length===0)throw new Ee("Average on an empty list is undefined; guard with IsSet");let a=0;for(let s of t)a+=de(s,"Average");return a/t.length}case"for-each":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,$e(s));let i=await this.evaluate(e.emit,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}case"list-map":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,$e(s)),a.push(await this.evaluate(e.mapBody,o))}return a}case"filter":{let t=await this.evaluateList(e.source,n),a=[];for(let s of t){let o=new Map(n);o.set(e.loopVar,$e(s)),await this.evaluate(e.predicate,o)===!0&&a.push(s)}return a}case"partition-by":{let t=await this.evaluateList(e.source,n),a=new Map,s=[];for(let o of t){let i=new Map(n);i.set(e.loopVar,$e(o));let c=await this.evaluate(e.partitionKey,i),l=Zn(c),d=a.get(l);d||(d={kind:"Partition",key:c,members:[]},a.set(l,d),s.push(l)),d.members.push(o)}return s.map(o=>a.get(o))}case"distinct-by":{let t=await this.evaluateList(e.source,n),a=new Set,s=[];for(let o of t){let i=new Map(n);i.set(e.loopVar,$e(o));let c=await this.evaluate(e.distinctKey,i),l=Zn(c);a.has(l)||(a.add(l),s.push(o))}return s}case"all-statements":{let t=await this.evaluate(e.source,n);return t instanceof Oe?t.statement:[]}case"statement-predicate":{let t=await this.evaluate(e.source,n);if(hn(t)){let a=t.predicate;if(a instanceof E)return a}return}case"statement-value":{let t=await this.evaluate(e.source,n);return hn(t)?Pt(t):void 0}case"date-format":{let t=await this.evaluate(e.source,n),a=t==null?"":Ve(t);return a?Nt(a,e.format):""}case"add":{let t=de(await this.evaluate(e.left,n),"Add"),a=de(await this.evaluate(e.right,n),"Add");return t+a}case"subtract":{let t=de(await this.evaluate(e.left,n),"Subtract"),a=de(await this.evaluate(e.right,n),"Subtract");return t-a}case"multiply":{let t=de(await this.evaluate(e.left,n),"Multiply"),a=de(await this.evaluate(e.right,n),"Multiply");return t*a}case"divide":{let t=de(await this.evaluate(e.left,n),"Divide"),a=de(await this.evaluate(e.right,n),"Divide");if(a===0)throw new Ee("Divide by zero; guard with When");return t/a}case"reverse":{if(e.source.kind==="reverse")return this.evaluate(e.source.source,n);let t=await this.evaluateReverseIterator(e.source,n);return t!==void 0?t:[...await this.evaluateList(e.source,n)].reverse()}case"windowed-map":{let t=await this.evaluateList(e.source,n);if(t.length<e.windowSize)return[];let a=[];for(let s=0;s+e.windowSize<=t.length;s++){let o=t.slice(s,s+e.windowSize),i=new Map(n);i.set(e.windowVar,o);let c=await this.evaluate(e.windowBody,i);if(c!=null)if(Array.isArray(c))for(let l of c)a.push(l);else a.push(c)}return a}case"pairwise-map":{let t=await this.evaluateList(e.source,n);if(t.length<2)return[];let a=[];for(let s=0;s+1<t.length;s++){let o=new Map(n);o.set(e.firstVar,$e(t[s])),o.set(e.secondVar,$e(t[s+1]));let i=await this.evaluate(e.pairBody,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}case"scan":{let t=await this.evaluateList(e.source,n);if(t.length===0)return[];let a=await this.evaluate(e.initialState,n),s=[];for(let o of t){let i=new Map(n);i.set(e.stateVar,a),i.set(e.elementVar,$e(o));let c=await this.evaluate(e.accumulate,i);s.push(c),a=c}return s}case"list-item-at":{let t=await this.evaluateList(e.source,n),a=await this.evaluate(e.itemIndex,n);return typeof a!="number"||!Number.isInteger(a)||a<0||a>=t.length?void 0:t[a]}case"equals":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return Xn(t,a)}case"greater-than":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t>a}case"less-than":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t<a}case"greater-than-or-equal":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t>=a}case"less-than-or-equal":{let t=await this.evaluate(e.left,n),a=await this.evaluate(e.right,n);return typeof t!="number"||typeof a!="number"?!1:t<=a}case"not":{let t=await this.evaluate(e.operand,n);return t===!0?!1:t===!1?!0:void 0}case"and":{for(let t of e.operands)if(await this.evaluate(t,n)!==!0)return!1;return!0}case"or":{for(let t of e.operands)if(await this.evaluate(t,n)===!0)return!0;return!1}case"contains":{let t=await this.evaluateList(e.haystack,n),a=await this.evaluate(e.needle,n);for(let s of t)if(Xn(s,a))return!0;return!1}case"abs":{let t=de(await this.evaluate(e.value,n),"Abs");return Math.abs(t)}case"negate":return-de(await this.evaluate(e.value,n),"Negate");case"is-reference":{let t=await this.evaluate(e.check,n);return t instanceof E||t instanceof G}case"is-embedded":return await this.evaluate(e.check,n)instanceof M;case"is-list":{let t=await this.evaluate(e.check,n);return Array.isArray(t)}case"is-string":return typeof await this.evaluate(e.check,n)=="string";case"is-number":return typeof await this.evaluate(e.check,n)=="number";case"is-boolean":return typeof await this.evaluate(e.check,n)=="boolean";case"statement-object":{let t=await this.evaluate(e.source,n);if(!hn(t))return;let a=t;return a instanceof X||a instanceof me||a instanceof re||a instanceof V||a instanceof H||a instanceof T?a.object:void 0}case"let":{let t=await this.evaluate(e.bindValue,n),a=new Map(n);return a.set(e.bindName,t),this.evaluate(e.body,a)}case"get-statement-by-name":{let t=await this.evaluate(e.inSubject,n),a=await this.evaluate(e.byName,n);if(!(t instanceof Oe)||typeof a!="string")return;for(let s of t.statement)if(s.predicate?.subject?.name===a)return s;return}default:{let t=e;throw new Ee("Unknown expression kind")}}}async renderMarkdownLinks(e){let n=e.object,t="",a=0;for(let s of e.links){if(t+=n.slice(a,s.startOffset),s.target){let o=s.target.subject,i=s.displayText??await this.resolveLabel(o)??o.name;t+=`[${i}](${Vn(o)})`}else t+=s.displayText??s.reference;a=s.endOffset}return t+=n.slice(a),t}async resolveLabel(e){let n=await this.resolver.resolveSubject(e,this.catalog);if(!n)return;let t=nn(n,Ft);return typeof t=="string"?t:void 0}async evaluateList(e,n){let t=await this.evaluate(e,n);return t==null?[]:Array.isArray(t)?t:[t]}async evaluateReverseIterator(e,n){if(e.kind==="pairwise-map"){let t=await this.evaluateList(e.source,n);if(t.length<2)return[];let a=[];for(let s=t.length-1;s>=1;s--){let o=new Map(n);o.set(e.firstVar,$e(t[s-1])),o.set(e.secondVar,$e(t[s]));let i=await this.evaluate(e.pairBody,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}if(e.kind==="for-each"){let t=await this.evaluateList(e.source,n),a=[];for(let s=t.length-1;s>=0;s--){let o=new Map(n);o.set(e.loopVar,$e(t[s]));let i=await this.evaluate(e.emit,o);if(i!=null)if(Array.isArray(i))for(let c of i)a.push(c);else a.push(i)}return a}if(e.kind==="list-map"){let t=await this.evaluateList(e.source,n),a=[];for(let s=t.length-1;s>=0;s--){let o=new Map(n);o.set(e.loopVar,$e(t[s])),a.push(await this.evaluate(e.mapBody,o))}return a}if(e.kind==="windowed-map"){let t=await this.evaluateList(e.source,n);if(t.length<e.windowSize)return[];let a=[];for(let s=t.length-e.windowSize;s>=0;s--){let o=t.slice(s,s+e.windowSize),i=new Map(n);i.set(e.windowVar,o);let c=await this.evaluate(e.windowBody,i);if(c!=null)if(Array.isArray(c))for(let l of c)a.push(l);else a.push(c)}return a}}};function nn(r,e){if(r instanceof Oe)return Tt(r,e);if(At(r))return ue(e,u.key)?r.key:ue(e,u.members)?r.members:void 0}function Tt(r,e){for(let n of r.statement){let t=bn(n);if(!(!t||!ue(t,e))&&(n instanceof X||n instanceof me||n instanceof re||n instanceof V||n instanceof H||n instanceof T))return n.object}}function Vt(r,e){let n=[];for(let t of r.statement){let a=bn(t);if(!(!a||!ue(a,e))){if(t instanceof V)n.push(t.object.subject);else if(t instanceof T)for(let s of t.object)s instanceof E&&n.push(s.subject)}}return n}function bn(r){return r.predicate?.subject}function Ve(r){if(r==null)return"";if(typeof r=="string")return r;if(typeof r=="number"||typeof r=="boolean")return String(r);if(Ae(r))return r.value;if(r instanceof Oe)return r.name??"";if(r instanceof E)return r.subject.name;if(Be(r))return r.name;let e=r.value;return typeof e=="string"?e:typeof e=="number"||typeof e=="boolean"?String(e):""}function $e(r){return r!==null&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof Oe)&&!(r instanceof E)&&!(r instanceof M)&&"value"in r?r.value:r}function qn(r){return r==null?!1:typeof r=="string"||Array.isArray(r)?r.length>0:typeof r=="boolean"?r===!0:!0}function Be(r){return typeof r=="object"&&r!==null&&typeof r.publisher=="string"&&typeof r.package_=="string"&&typeof r.name=="string"}function At(r){return typeof r=="object"&&r!==null&&r.kind==="Partition"&&Array.isArray(r.members)}function de(r,e){if(typeof r=="number"&&Number.isFinite(r))return r;throw new Ee(`${e} requires numeric elements; got ${Mt(r)}`)}function kn(r){if(r instanceof G){let e=r.namespace??"",n=e.indexOf("/"),t=e.indexOf("@",n+1);return n<0||t<0?void 0:{publisher:e.substring(0,n),package_:e.substring(n+1,t),version:e.substring(t+1),name:r.name??""}}if(r instanceof E){let e=r.subject,n=e.version;return{publisher:e.publisher,package_:e.package_,version:n&&typeof n.major=="number"?`${n.major}.${n.minor}.${n.patch}`:"",name:e.name}}if(Be(r))return{publisher:r.publisher,package_:r.package_,version:"",name:r.name}}var xt=new Set(["stringValue","text","rawContent","key","propertyKey","linkLabel"]);function Wn(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"||Ae(r)}function Yn(r){return Ae(r)?r.value:String(r)}function Mt(r){return r===void 0?"undefined":r===null?"null":Array.isArray(r)?`array(${r.length})`:typeof r}function Nt(r,e){let n=new Date(r);if(isNaN(n.getTime()))return"";let t=n.getUTCFullYear(),a=["January","February","March","April","May","June","July","August","September","October","November","December"][n.getUTCMonth()],s=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"][n.getUTCMonth()],o=n.getUTCDate(),i=(c,l=2)=>String(c).padStart(l,"0");switch(e){case"iso-date":return`${t}-${i(n.getUTCMonth()+1)}-${i(o)}`;case"iso-datetime":return`${t}-${i(n.getUTCMonth()+1)}-${i(o)}T${i(n.getUTCHours())}:${i(n.getUTCMinutes())}:${i(n.getUTCSeconds())}Z`;case"short-date":return`${s} ${o}`;case"long-date":return`${a} ${o}, ${t}`;case"year":return String(t);case"month-year":return`${a} ${t}`}}function Xn(r,e){if(r==null||e===void 0||e===null)return!1;if(r===e)return!0;let n=typeof r=="object"&&"value"in r?r.value:void 0,t=typeof e=="object"&&"value"in e?e.value:void 0,a=n??r,s=t??e,o=Jn(r),i=Jn(e);return o&&i?o.publisher===i.publisher&&o.package_===i.package_&&o.name===i.name:typeof a=="string"&&typeof s=="string"||typeof a=="number"&&typeof s=="number"||typeof a=="boolean"&&typeof s=="boolean"?a===s:!1}function Jn(r){if(r instanceof E){let e=r.subject;return{publisher:e.publisher,package_:e.package_,name:e.name}}if(r instanceof G){let e=r.namespace??"",n=e.indexOf("/"),t=e.indexOf("@",n+1);if(n<0)return;let a=e.substring(0,n),s=t>=0?e.substring(n+1,t):e.substring(n+1);return{publisher:a,package_:s,name:r.name??""}}if(Be(r))return{publisher:r.publisher,package_:r.package_,name:r.name}}function hn(r){return r instanceof X||r instanceof me||r instanceof re||r instanceof V||r instanceof H||r instanceof T}function Pt(r){return r instanceof X||r instanceof me||r instanceof re?String(r.object??""):r instanceof V?r.object?.subject?.name??"":r instanceof H?"[embedded]":r instanceof T?(r.object??[]).map(n=>{if(n instanceof E)return n.subject.name;let t=n.name;if(t&&t.length>0)return t;let a=n.value;return typeof a=="string"||typeof a=="number"||typeof a=="boolean"?String(a):"[embedded]"}).join(", "):""}function Zn(r){if(r===void 0)return"\0undef";if(r===null)return"\0null";if(typeof r=="string")return`s:${r}`;if(typeof r=="number")return`n:${r}`;if(typeof r=="boolean")return`b:${r}`;if(r instanceof E){let e=r.subject;return`r:${e.publisher}/${e.package_}/${e.name}`}if(r instanceof Oe){let e=r.name??"";return`k:${r.namespace??""}/${e}`}return Be(r)?`u:${r.publisher}/${r.package_}/${r.name}`:`o:${JSON.stringify(r)}`}var q=class extends Error{constructor(n,t){super(`${n} (at ${t})`);this.path=t}path};function us(r,e){let n=r.name,t=Zt(e),a={catalog:e,depth:0};if(w(r,u.InstanceTransformation))return Dt(r,n,a,t);if(w(r,u.SetTransformation))return Bt(r,n,a,t);throw new q("Subject is not a recognized v3 transformation type \u2014 expected InstanceTransformation or SetTransformation",n)}function Dt(r,e,n,t){return{kind:"instance",name:r.name,inputPattern:rt(r,e),rule:tn(r,u.rule,`${e}.rule`,n),artifactName:tn(r,u.artifactName,`${e}.artifactName`,n),outputs:st(r,`${e}.outputs`),overrides:ot(r,`${e}.formatOverrides`,n),fragments:t}}function Bt(r,e,n,t){let a=Ie(r,u.partitionBy);return{kind:"set",name:r.name,inputPattern:rt(r,e),rule:tn(r,u.rule,`${e}.rule`,n),artifactName:tn(r,u.artifactName,`${e}.artifactName`,n),outputs:st(r,`${e}.outputs`),overrides:ot(r,`${e}.formatOverrides`,n),partitionBy:a,fragments:t}}function rt(r,e){let n=Je(r,u.inputPattern);if(!n)throw new q("inputPattern is required",e);return Ht(n,`${e}.inputPattern`)}function Ht(r,e){let n=Ie(r,u.matchesClass);if(!n)throw new q("matchesClass is required",e);let t=[];for(let o of ve(r,u.requires))if(o instanceof V)t.push($n(o.object.subject));else if(o instanceof T)for(let i of o.object)i instanceof E&&t.push($n(i.subject));let a=[],s=0;for(let o of ve(r,u.sortBy))if(o instanceof T)for(let i of o.object)i instanceof M&&a.push(Qn(i,`${e}.sortBy[${s++}]`));else o instanceof H&&a.push(Qn(o.object,`${e}.sortBy[${s++}]`));return{matchesClass:n,requires:t,sortBy:a}}function Qn(r,e){let n=Ie(r,u.byProperty);if(!n)throw new q("SortKey.byProperty is required",e);let t=Ie(r,u.order);if(!t)throw new q("SortKey.order is required",e);if(ue(t,u.ascending))return{byProperty:n,order:"ascending"};if(ue(t,u.descending))return{byProperty:n,order:"descending"};throw new q(`SortKey.order must reference tx.ascending or tx.descending; got ${t.publisher}/${t.package_}/${t.name}`,e)}function tn(r,e,n,t){let a=Je(r,e);if(!a)throw new q("expression is required",n);return Ue(a,n,t)}function Ue(r,e,n){if(w(r,u.StringLiteral))return{kind:"string-literal",value:he(r,u.stringLiteral,e)};if(w(r,u.IntegerLiteral))return{kind:"integer-literal",value:at(r,u.integerLiteral,e)};if(w(r,u.DecimalLiteral))return{kind:"decimal-literal",value:at(r,u.decimalLiteral,e)};if(w(r,u.BooleanLiteral))return{kind:"boolean-literal",value:na(r,u.booleanLiteral,e)};if(w(r,u.VarRef))return{kind:"var-ref",varName:he(r,u.varName,e)};if(w(r,u.PropertyRead))return{kind:"property-read",source:y(r,u.readSource,`${e}.readSource`,n),readProp:Ce(r,u.readProp,e,"readProp")};if(w(r,u.Traverse))return{kind:"traverse",source:y(r,u.traverseSource,`${e}.traverseSource`,n),through:Ce(r,u.through,e,"through"),step:y(r,u.step,`${e}.step`,n)};if(w(r,u.BuildAstNode))return{kind:"build-ast-node",astClass:Ce(r,u.astClass,e,"astClass"),set:Gt(r,`${e}.set`,n)};if(w(r,u.When))return{kind:"when",condition:y(r,u.condition,`${e}.condition`,n),thenBuild:y(r,u.thenBuild,`${e}.thenBuild`,n),elseBuild:zt(r,u.elseBuild,`${e}.elseBuild`,n)};if(w(r,u.Concat))return{kind:"concat",parts:vn(r,u.parts,`${e}.parts`,n)};if(w(r,u.Fallback))return{kind:"fallback",primary:y(r,u.primary,`${e}.primary`,n),alternate:y(r,u.alternate,`${e}.alternate`,n)};if(w(r,u.UriName))return{kind:"uri-name",source:y(r,u.uriNameOf,`${e}.uriNameOf`,n)};if(w(r,u.UriPublisher))return{kind:"uri-publisher",source:y(r,u.uriPublisherOf,`${e}.uriPublisherOf`,n)};if(w(r,u.UriPackage))return{kind:"uri-package",source:y(r,u.uriPackageOf,`${e}.uriPackageOf`,n)};if(w(r,u.UriVersion))return{kind:"uri-version",source:y(r,u.uriVersionOf,`${e}.uriVersionOf`,n)};if(w(r,u.SubjectUri))return{kind:"subject-uri",source:y(r,u.subjectOf,`${e}.subjectOf`,n)};if(w(r,u.UriLiteral))return{kind:"uri-literal",refTo:Ce(r,u.refTo,e,"refTo")};if(w(r,u.DisplayLabel))return{kind:"display-label",labelTarget:Ce(r,u.labelTarget,e,"labelTarget"),labelSource:Ce(r,u.labelSource,e,"labelSource")};if(w(r,u.ResolveRef))return{kind:"resolve-ref",source:y(r,u.resolveSource,`${e}.resolveSource`,n)};if(w(r,u.Normalize))return{kind:"normalize",source:y(r,u.normSource,`${e}.normSource`,n),normKind:qt(r,e)};if(w(r,u.UnescapedString))return{kind:"unescaped-string",source:y(r,u.unescapedSource,`${e}.unescapedSource`,n)};if(w(r,u.RenderMarkdown))return{kind:"render-markdown",source:y(r,u.renderSource,`${e}.renderSource`,n),readProp:Ce(r,u.renderProp,e,"renderProp"),format:Wt(r,e)};if(w(r,u.IsSet))return{kind:"is-set",check:y(r,u.checkExpr,`${e}.checkExpr`,n)};if(w(r,u.CallFragment))return Xt(r,e,n);if(w(r,u.Join))return{kind:"join",source:y(r,u.source,`${e}.source`,n),separator:he(r,u.separator,e)};if(w(r,u.Count))return{kind:"count",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.Sum))return{kind:"sum",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.Min))return{kind:"min",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.Max))return{kind:"max",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.Average))return{kind:"average",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.ForEach))return{kind:"for-each",source:y(r,u.source,`${e}.source`,n),loopVar:he(r,u.loopVar,e),emit:y(r,u.emit,`${e}.emit`,n)};if(w(r,u.ListMap))return{kind:"list-map",source:y(r,u.source,`${e}.source`,n),loopVar:he(r,u.loopVar,e),mapBody:y(r,u.mapBody,`${e}.mapBody`,n)};if(w(r,u.Filter))return{kind:"filter",source:y(r,u.source,`${e}.source`,n),loopVar:he(r,u.loopVar,e),predicate:y(r,u.predicate,`${e}.predicate`,n)};if(w(r,u.PartitionBy))return{kind:"partition-by",source:y(r,u.source,`${e}.source`,n),loopVar:he(r,u.loopVar,e),partitionKey:y(r,u.partitionKey,`${e}.partitionKey`,n)};if(w(r,u.DistinctBy))return{kind:"distinct-by",source:y(r,u.source,`${e}.source`,n),loopVar:he(r,u.loopVar,e),distinctKey:y(r,u.distinctKey,`${e}.distinctKey`,n)};if(w(r,u.AllStatements))return{kind:"all-statements",source:y(r,u.statementsOf,`${e}.statementsOf`,n)};if(w(r,u.StatementPredicate))return{kind:"statement-predicate",source:y(r,u.predicateOf,`${e}.predicateOf`,n)};if(w(r,u.StatementValue))return{kind:"statement-value",source:y(r,u.valueOf,`${e}.valueOf`,n)};if(w(r,u.DateFormat))return{kind:"date-format",source:y(r,u.dateSource,`${e}.dateSource`,n),format:Yt(r,e)};if(w(r,u.Add))return{kind:"add",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(w(r,u.Subtract))return{kind:"subtract",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(w(r,u.Multiply))return{kind:"multiply",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(w(r,u.Divide))return{kind:"divide",left:y(r,u.arithLeft,`${e}.arithLeft`,n),right:y(r,u.arithRight,`${e}.arithRight`,n)};if(w(r,u.Reverse))return{kind:"reverse",source:y(r,u.source,`${e}.source`,n)};if(w(r,u.WindowedMap)){let t=it(r,u.windowSize);if(t===void 0||!Number.isInteger(t)||t<1)throw new q("windowSize must be a positive integer",`${e}.windowSize`);return{kind:"windowed-map",source:y(r,u.source,`${e}.source`,n),windowSize:t,windowVar:he(r,u.windowVar,e),windowBody:y(r,u.windowBody,`${e}.windowBody`,n)}}if(w(r,u.PairwiseMap))return{kind:"pairwise-map",source:y(r,u.source,`${e}.source`,n),firstVar:he(r,u.firstVar,e),secondVar:he(r,u.secondVar,e),pairBody:y(r,u.pairBody,`${e}.pairBody`,n)};if(w(r,u.Scan))return{kind:"scan",source:y(r,u.source,`${e}.source`,n),initialState:y(r,u.initialState,`${e}.initialState`,n),stateVar:he(r,u.stateVar,e),elementVar:he(r,u.elementVar,e),accumulate:y(r,u.accumulate,`${e}.accumulate`,n)};if(w(r,u.ListItemAt))return{kind:"list-item-at",source:y(r,u.source,`${e}.source`,n),itemIndex:y(r,u.itemIndex,`${e}.itemIndex`,n)};if(w(r,u.Equals))return{kind:"equals",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(w(r,u.GreaterThan))return{kind:"greater-than",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(w(r,u.LessThan))return{kind:"less-than",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(w(r,u.GreaterThanOrEqual))return{kind:"greater-than-or-equal",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(w(r,u.LessThanOrEqual))return{kind:"less-than-or-equal",left:y(r,u.compareLeft,`${e}.compareLeft`,n),right:y(r,u.compareRight,`${e}.compareRight`,n)};if(w(r,u.Not))return{kind:"not",operand:y(r,u.operand,`${e}.operand`,n)};if(w(r,u.And))return{kind:"and",operands:vn(r,u.operands,`${e}.operands`,n)};if(w(r,u.Or))return{kind:"or",operands:vn(r,u.operands,`${e}.operands`,n)};if(w(r,u.Contains))return{kind:"contains",haystack:y(r,u.haystack,`${e}.haystack`,n),needle:y(r,u.needle,`${e}.needle`,n)};if(w(r,u.Abs))return{kind:"abs",value:y(r,u.value,`${e}.value`,n)};if(w(r,u.Negate))return{kind:"negate",value:y(r,u.value,`${e}.value`,n)};if(w(r,u.IsReference))return{kind:"is-reference",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.IsEmbedded))return{kind:"is-embedded",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.IsList))return{kind:"is-list",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.IsString))return{kind:"is-string",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.IsNumber))return{kind:"is-number",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.IsBoolean))return{kind:"is-boolean",check:y(r,u.kindCheck,`${e}.kindCheck`,n)};if(w(r,u.StatementObject))return{kind:"statement-object",source:y(r,u.statementSource,`${e}.statementSource`,n)};if(w(r,u.Let))return{kind:"let",bindName:he(r,u.letName,e),bindValue:y(r,u.letValue,`${e}.letValue`,n),body:y(r,u.letBody,`${e}.letBody`,n)};if(w(r,u.GetStatementByName))return{kind:"get-statement-by-name",inSubject:y(r,u.inSubject,`${e}.inSubject`,n),byName:y(r,u.byName,`${e}.byName`,n)};throw new q("Expression is not of a recognized v3 type \u2014 embedded has no matching subclass of tx.Expression",e)}function y(r,e,n,t){let a=Je(r,e);if(!a)throw new q("child expression is required",n);return Ue(a,n,t)}function zt(r,e,n,t){let a=Je(r,e);if(a)return Ue(a,n,t)}function vn(r,e,n,t){let a=[],s=0;for(let o of ve(r,e))if(o instanceof T)for(let i of o.object)i instanceof M&&a.push(Ue(i,`${n}[${s++}]`,t));else o instanceof H&&a.push(Ue(o.object,`${n}[${s++}]`,t));return a}function Gt(r,e,n){let t=[],a=0;for(let s of ve(r,u.set))if(s instanceof T)for(let o of s.object)o instanceof M&&t.push(et(o,`${e}[${a++}]`,n));else s instanceof H&&t.push(et(s.object,`${e}[${a++}]`,n));return t}function et(r,e,n){return{field:Ce(r,u.field,e,"field"),value:y(r,u.bindValue,`${e}.bindValue`,n)}}function qt(r,e){let n=Ie(r,u.normKind);if(!n)throw new q("normKind is required",e);if(ue(n,u.NORM_TRIM_END))return"trim-end";if(ue(n,u.NORM_TO_UPPER))return"to-upper";if(ue(n,u.NORM_TO_LOWER))return"to-lower";if(ue(n,u.NORM_FIRST_CHAR))return"first-char";throw new q(`Unknown NormalizeKind: ${n.publisher}/${n.package_}/${n.name}`,e)}function Wt(r,e){let n=Ie(r,u.renderFormat);if(!n)throw new q("renderFormat is required",e);if(ue(n,u.RENDER_HTML))return"html";if(ue(n,u.RENDER_MARKDOWN))return"markdown";throw new q(`Unknown RenderFormat: ${n.publisher}/${n.package_}/${n.name}`,e)}var nt=new Set(["iso-date","iso-datetime","short-date","long-date","year","month-year"]);function Yt(r,e){let n=He(r,u.dateFormat);if(!n)throw new q("dateFormat is required",e);if(!nt.has(n))throw new q(`Unknown dateFormat "${n}"; supported: ${[...nt].join(", ")}`,e);return n}function Xt(r,e,n){let t=Ie(r,u.fragmentRef);if(!t)throw new q("fragmentRef is required",e);if(!Qt(n.catalog,t))throw new q(`ExpressionFragment not found: ${t.publisher}/${t.package_}/${t.name}`,e);return{kind:"call-fragment",fragmentKey:Jt(t)}}function Jt(r){return`${r.publisher}/${r.package_}/${r.name}`}function Zt(r){let e=new Map,n=[];for(let t of r){if(!(t instanceof G)||!w(t,u.ExpressionFragment))continue;let a=Je(t,u.body);if(!a)continue;let s=(t.namespace||"").split("@")[0]||"",o=s.indexOf("/");if(o<0)continue;let i=s.substring(0,o),c=s.substring(o+1),l=`${i}/${c}/${t.name}`;n.push({key:l,subject:t,bodyEmb:a,pubPkgName:`${s}/${t.name}`})}for(let t of n){let a=Ue(t.bodyEmb,`fragment(${t.pubPkgName})`,{catalog:r,depth:0});e.set(t.key,a)}return e}function Qt(r,e){for(let n of r)if(!(!(n instanceof G)||n.name!==e.name||!(n.namespace||"").startsWith(`${e.publisher}/${e.package_}@`))&&w(n,u.ExpressionFragment))return n}function st(r,e){let n=new Set;for(let t of ve(r,u.outputs))if(t instanceof V)n.add(t.object.subject.name);else if(t instanceof T)for(let a of t.object)a instanceof E&&n.add(a.subject.name);if(n.size===0)throw new q("outputs is required (at least one OutputFormat)",e);return n}function ot(r,e,n){let t=new Map,a=0;for(let s of ve(r,u.formatOverrides))if(s instanceof T){for(let o of s.object)if(o instanceof M){let[i,c]=tt(o,`${e}[${a++}]`);t.set(i,c)}}else if(s instanceof H){let[o,i]=tt(s.object,`${e}[${a++}]`);t.set(o,i)}return t}function tt(r,e){let n=Ie(r,u.formatTarget);if(!n)throw new q("formatTarget is required",e);let t=[];for(let i of ve(r,u.metadataKeys))if(i instanceof X)t.push(i.object);else if(i instanceof T)for(let c of i.object){let l=c.value;typeof l=="string"&&t.push(l)}let a=new Map;for(let i of ve(r,u.metadataRenames))if(i instanceof T){for(let c of i.object)if(c instanceof M){let l=He(c,u.fromKey),d=He(c,u.toKey);l&&d&&a.set(l,d)}}else if(i instanceof H){let c=i.object,l=He(c,u.fromKey),d=He(c,u.toKey);l&&d&&a.set(l,d)}let s=yn(r,u.trailingNewline),o=yn(r,u.omitWrapper);return[n.name,{metadataKeys:t.length>0?t:void 0,metadataRenames:a,trailingNewline:s,omitWrapper:o}]}function ea(r){return r.predicate?.subject}function ve(r,e){let n=[];for(let t of r.statement){let a=ea(t);a&&ue(a,e)&&n.push(t)}return n}function Je(r,e){for(let n of ve(r,e))if(n instanceof H)return n.object}function Ie(r,e){for(let n of ve(r,e))if(n instanceof V)return $n(n.object.subject)}function He(r,e){for(let n of ve(r,e))if(n instanceof X)return n.object}function it(r,e){for(let n of ve(r,e))if(n instanceof me)return n.object}function yn(r,e){for(let n of ve(r,e))if(n instanceof re)return n.object}function he(r,e,n){let t=He(r,e);if(t===void 0)throw new q(`${e.name} (string) is required`,n);return t}function at(r,e,n){let t=it(r,e);if(t===void 0)throw new q(`${e.name} (number) is required`,n);return t}function na(r,e,n){let t=yn(r,e);if(t===void 0)throw new q(`${e.name} (boolean) is required`,n);return t}function Ce(r,e,n,t){let a=Ie(r,e);if(!a)throw new q(`${t} (URI reference) is required`,n);return a}function $n(r){return{publisher:r.publisher,package_:r.package_,name:r.name}}var an=class{constructor(e,n,t){this.repository=e;this.parser=n;this.objectParser=t}repository;parser;objectParser;cache=new Map;async resolveSubject(e,n){let t=Ne(n,e);if(t)return t;let a=e.version,s=a&&typeof a.major=="number"?`@${a.major}.${a.minor}.${a.patch}`:"",o=`${e.publisher}/${e.package_}${s}`,i=this.cache.get(o);if(!i){let l=await this.repository.getDocumentsByNamespaceAsync(e.publisher,e.package_);if(l.length===0)return;let d=a&&typeof a.major=="number"?l.find(g=>{let m=g.metadata?.namespace_?.version;return m&&m.major===a.major&&m.minor===a.minor&&m.patch===a.patch})??l[0]:l[0],f=new xn(d,this.repository);i=await this.objectParser.parseKanonaks(f),this.cache.set(o,i)}let c=Ne(i,e);if(c)return c;for(let l of i)if(l instanceof G&&l.name===e.name)return l}};var rn=class{byLang=new Map;constructor(e){for(let n of e){if(!n.language)continue;let t=[];for(let a of n.rules){if(!a.tokenClass||!a.pattern)continue;let s;try{s=new RegExp(a.pattern,"y")}catch{continue}t.push({tokenClass:a.tokenClass,re:s})}this.byLang.set(n.language,t)}}has(e){return this.byLang.has(e)}highlight(e,n){let t=this.byLang.get(e);return!t||t.length===0?De(n):n.split(`
|
|
18
18
|
`).map(a=>this.highlightLine(a,t)).join(`
|
|
19
19
|
`)}highlightLine(e,n){let t="",a=0;for(;a<e.length;){let s=!1;for(let o of n){o.re.lastIndex=a;let i=o.re.exec(e);if(i&&i[0].length>0){t+=`<span class="kan-tok-${o.tokenClass}">${De(i[0])}</span>`,a+=i[0].length,s=!0;break}}s||(t+=De(e[a]),a++)}return t}};var un={publisher:"kanonak.org",package_:"derivation",name:"look"},dn={publisher:"kanonak.org",package_:"derivation",name:"tokens"},Se={publisher:"kanonak.org",package_:"core-rdf",name:"Resource"},wn={publisher:"kanonak.org",package_:"core-rdf",name:"label"},ct={publisher:"kanonak.org",package_:"core-rdf",name:"comment"},ta={publisher:"kanonak.org",package_:"core-rdf",name:"range"},aa={publisher:"kanonak.org",package_:"core-rdf",name:"Class"},ra={publisher:"kanonak.org",package_:"core-owl",name:"Class"},sa={publisher:"kanonak.org",package_:"look",name:"Hero"},oa={publisher:"kanonak.org",package_:"look",name:"PropertyList"},ia={publisher:"kanonak.org",package_:"look",name:"PropertyTable"},ca={publisher:"kanonak.org",package_:"look",name:"BadgeRow"},la={publisher:"kanonak.org",package_:"look",name:"ChipRow"},ua={publisher:"kanonak.org",package_:"look",name:"ReferenceList"},da={publisher:"kanonak.org",package_:"look",name:"ReferencedBy"},fa={publisher:"kanonak.org",package_:"look",name:"Instances"},lt={publisher:"kanonak.org",package_:"look",name:"Markdown"},pa={publisher:"kanonak.org",package_:"look",name:"NavGroup"},ga={publisher:"kanonak.org",package_:"look",name:"nav"},jn={publisher:"kanonak.org",package_:"look",name:"NavLink"},ma={publisher:"kanonak.org",package_:"look",name:"footer"},ka={publisher:"kanonak.org",package_:"look",name:"text"},ha={publisher:"kanonak.org",package_:"look",name:"links"},ut={publisher:"kanonak.org",package_:"look",name:"target"},ba={publisher:"kanonak.org",package_:"look",name:"ResourceGrid"},va={publisher:"kanonak.org",package_:"look",name:"Timeline"},ya={publisher:"kanonak.org",package_:"look",name:"VersionDiff"},$a={publisher:"kanonak.org",package_:"look",name:"Figure"},wa={publisher:"kanonak.org",package_:"look",name:"Diagram"},ja={publisher:"kanonak.org",package_:"look",name:"facets"},Sa={publisher:"kanonak.org",package_:"look",name:"relation"},_a={publisher:"kanonak.org",package_:"look",name:"encode"},Ea={publisher:"kanonak.org",package_:"look",name:"cluster"},Ka={publisher:"kanonak.org",package_:"look",name:"connector"},Ra={publisher:"kanonak.org",package_:"look",name:"channels"},La={publisher:"kanonak.org",package_:"look",name:"mapPath"},Oa={publisher:"kanonak.org",package_:"look",name:"to"},Ua={publisher:"kanonak.org",package_:"look",name:"mark"},Ia={publisher:"kanonak.org",package_:"look",name:"expand"},Ca={publisher:"kanonak.org",package_:"look",name:"edges"},Fa={publisher:"kanonak.org",package_:"look",name:"nodeTier"},Ta={publisher:"kanonak.org",package_:"look",name:"diagramTier"},Va={publisher:"kanonak.org",package_:"look",name:"nodeNote"},Aa={publisher:"kanonak.org",package_:"look",name:"edgeLabel"},xa={publisher:"kanonak.org",package_:"look",name:"labelEdges"},Ma={publisher:"kanonak.org",package_:"look",name:"edgeValue"},Na={publisher:"kanonak.org",package_:"look",name:"figureTitle"},Pa={publisher:"kanonak.org",package_:"look",name:"titlePosition"},Da=`(function(){
|
|
20
20
|
if(window.__kanDiagramZoom)return;window.__kanDiagramZoom=1;
|
|
@@ -62,7 +62,7 @@ var b=document.createElement('button');b.type='button';b.className='kan-dgm-btn'
|
|
|
62
62
|
b.style.cssText='position:absolute;top:6px;right:6px;z-index:3;border:1px solid var(--kan-border,#333);background:var(--kan-bg-card,#111);color:var(--kan-text,#ccc);border-radius:6px;width:28px;height:28px;cursor:pointer;font-size:15px;line-height:1;padding:0';
|
|
63
63
|
b.addEventListener('click',function(ev){ev.preventDefault();ev.stopPropagation();open(c);});c.appendChild(b);})(cs[i]);}}
|
|
64
64
|
if(document.readyState!=='loading')enhance();else document.addEventListener('DOMContentLoaded',enhance);
|
|
65
|
-
})();`,Ze={chip:56,icon:120,card:240,full:420},Ba=["chip","icon","card","full"],Ha={56:"chip",120:"icon",240:"card",420:"full"},_e=11,za={publisher:"kanonak.org",package_:"look",name:"placement"},Ga={publisher:"kanonak.org",package_:"look",name:"width"},qa=4,Wa={publisher:"kanonak.org",package_:"look",name:"StatRow"},Ya={publisher:"kanonak.org",package_:"look",name:"Horizon"},Xa={publisher:"kanonak.org",package_:"look",name:"PackageContents"},Sn={publisher:"kanonak.org",package_:"core-kanonak",name:"Package"},Ja={publisher:"kanonak.org",package_:"core-kanonak",name:"Publisher"},Za={publisher:"kanonak.org",package_:"look",name:"FeaturedResource"},Qa={publisher:"kanonak.org",package_:"look",name:"PublisherPackages"},er={publisher:"kanonak.org",package_:"look",name:"packages"},nr={publisher:"kanonak.org",package_:"code-grammars",name:"CodeGrammar"},tr={publisher:"kanonak.org",package_:"code-grammars",name:"language"},ar={publisher:"kanonak.org",package_:"code-grammars",name:"rule"},rr={publisher:"kanonak.org",package_:"code-grammars",name:"tokenClass"},sr={publisher:"kanonak.org",package_:"code-grammars",name:"pattern"},or={publisher:"kanonak.org",package_:"look",name:"Links"},ir={publisher:"kanonak.org",package_:"link",name:"url"},cr={publisher:"kanonak.org",package_:"link",name:"links"};var lr={publisher:"kanonak.org",package_:"look",name:"Distribution"},ur={publisher:"kanonak.org",package_:"look",name:"alphaPath"},dr={publisher:"kanonak.org",package_:"look",name:"betaPath"},_n={publisher:"kanonak.org",package_:"look",name:"SectionHeading"},fr={publisher:"kanonak.org",package_:"look",name:"SectionNav"},dt={publisher:"kanonak.org",package_:"look",name:"heading"},pr={publisher:"kanonak.org",package_:"look",name:"note"},gr={publisher:"kanonak.org",package_:"look",name:"VersionDelta"},mr={publisher:"kanonak.org",package_:"look",name:"TimePlot"},kr={publisher:"kanonak.org",package_:"look",name:"Details"},hr={publisher:"kanonak.org",package_:"look",name:"EmbeddedViews"},br={publisher:"kanonak.org",package_:"look",name:"skip"},vr={publisher:"kanonak.org",package_:"derivation",name:"derivations"},yr={publisher:"kanonak.org",package_:"look",name:"laneBy"},$r={publisher:"kanonak.org",package_:"look",name:"stats"},wr={publisher:"kanonak.org",package_:"look",name:"statPath"},jr={publisher:"kanonak.org",package_:"look",name:"statLabel"},ft={publisher:"kanonak.org",package_:"look",name:"labelPath"},Sr={publisher:"kanonak.org",package_:"look",name:"badgePath"},En={publisher:"kanonak.org",package_:"look",name:"orderBy"},pt={publisher:"kanonak.org",package_:"look",name:"track"},sn={publisher:"kanonak.org",package_:"look",name:"metricPath"},Kn={publisher:"kanonak.org",package_:"look",name:"hueBy"},gt={publisher:"kanonak.org",package_:"look",name:"lowerPath"},mt={publisher:"kanonak.org",package_:"look",name:"upperPath"},_r={publisher:"kanonak.org",package_:"look",name:"axisMin"},Er={publisher:"kanonak.org",package_:"look",name:"axisMax"},Kr={publisher:"kanonak.org",package_:"look",name:"valueLabel"};var kt={publisher:"kanonak.org",package_:"look",name:"semanticSvg"},Rr={publisher:"kanonak.org",package_:"look",name:"tierChip"},Lr={publisher:"kanonak.org",package_:"look",name:"tierIcon"},Or={publisher:"kanonak.org",package_:"look",name:"tierCard"},Ur={publisher:"kanonak.org",package_:"look",name:"tierFull"},Ir={publisher:"kanonak.org",package_:"core-rdf",name:"type"},ht=6,Rn={publisher:"kanonak.org",package_:"look",name:"bands"},Cr={publisher:"kanonak.org",package_:"look",name:"title"},Fr={publisher:"kanonak.org",package_:"look",name:"eyebrow"},Tr={publisher:"kanonak.org",package_:"look",name:"subtitle"},bt={publisher:"kanonak.org",package_:"look",name:"badges"},fe={publisher:"kanonak.org",package_:"look",name:"source"},Vr={publisher:"kanonak.org",package_:"look",name:"via"},Ar={publisher:"kanonak.org",package_:"look",name:"size"},xr={publisher:"kanonak.org",package_:"look",name:"icon"},Mr={publisher:"kanonak.org",package_:"look",name:"avatar"},Nr={publisher:"kanonak.org",package_:"look",name:"contents"},Pr={publisher:"kanonak.org",package_:"look",name:"transitive"},Dr={publisher:"kanonak.org",package_:"look",name:"chips"},vt={publisher:"kanonak.org",package_:"look",name:"entries"},Br={publisher:"kanonak.org",package_:"look",name:"urlForm"},In=class{constructor(e){this.catalog=e}catalog;linkMode="single-publisher";setLinkMode(e){return this.linkMode=e,this}get publisherFirst(){return this.linkMode==="open-world"}linkBase(e){return this.publisherFirst?`/${e}`:""}resourceHref(e,n,t="="){return
|
|
65
|
+
})();`,Ze={chip:56,icon:120,card:240,full:420},Ba=["chip","icon","card","full"],Ha={56:"chip",120:"icon",240:"card",420:"full"},_e=11,za={publisher:"kanonak.org",package_:"look",name:"placement"},Ga={publisher:"kanonak.org",package_:"look",name:"width"},qa=4,Wa={publisher:"kanonak.org",package_:"look",name:"StatRow"},Ya={publisher:"kanonak.org",package_:"look",name:"Horizon"},Xa={publisher:"kanonak.org",package_:"look",name:"PackageContents"},Sn={publisher:"kanonak.org",package_:"core-kanonak",name:"Package"},Ja={publisher:"kanonak.org",package_:"core-kanonak",name:"Publisher"},Za={publisher:"kanonak.org",package_:"look",name:"FeaturedResource"},Qa={publisher:"kanonak.org",package_:"look",name:"PublisherPackages"},er={publisher:"kanonak.org",package_:"look",name:"packages"},nr={publisher:"kanonak.org",package_:"code-grammars",name:"CodeGrammar"},tr={publisher:"kanonak.org",package_:"code-grammars",name:"language"},ar={publisher:"kanonak.org",package_:"code-grammars",name:"rule"},rr={publisher:"kanonak.org",package_:"code-grammars",name:"tokenClass"},sr={publisher:"kanonak.org",package_:"code-grammars",name:"pattern"},or={publisher:"kanonak.org",package_:"look",name:"Links"},ir={publisher:"kanonak.org",package_:"link",name:"url"},cr={publisher:"kanonak.org",package_:"link",name:"links"};var lr={publisher:"kanonak.org",package_:"look",name:"Distribution"},ur={publisher:"kanonak.org",package_:"look",name:"alphaPath"},dr={publisher:"kanonak.org",package_:"look",name:"betaPath"},_n={publisher:"kanonak.org",package_:"look",name:"SectionHeading"},fr={publisher:"kanonak.org",package_:"look",name:"SectionNav"},dt={publisher:"kanonak.org",package_:"look",name:"heading"},pr={publisher:"kanonak.org",package_:"look",name:"note"},gr={publisher:"kanonak.org",package_:"look",name:"VersionDelta"},mr={publisher:"kanonak.org",package_:"look",name:"TimePlot"},kr={publisher:"kanonak.org",package_:"look",name:"Details"},hr={publisher:"kanonak.org",package_:"look",name:"EmbeddedViews"},br={publisher:"kanonak.org",package_:"look",name:"skip"},vr={publisher:"kanonak.org",package_:"derivation",name:"derivations"},yr={publisher:"kanonak.org",package_:"look",name:"laneBy"},$r={publisher:"kanonak.org",package_:"look",name:"stats"},wr={publisher:"kanonak.org",package_:"look",name:"statPath"},jr={publisher:"kanonak.org",package_:"look",name:"statLabel"},ft={publisher:"kanonak.org",package_:"look",name:"labelPath"},Sr={publisher:"kanonak.org",package_:"look",name:"badgePath"},En={publisher:"kanonak.org",package_:"look",name:"orderBy"},pt={publisher:"kanonak.org",package_:"look",name:"track"},sn={publisher:"kanonak.org",package_:"look",name:"metricPath"},Kn={publisher:"kanonak.org",package_:"look",name:"hueBy"},gt={publisher:"kanonak.org",package_:"look",name:"lowerPath"},mt={publisher:"kanonak.org",package_:"look",name:"upperPath"},_r={publisher:"kanonak.org",package_:"look",name:"axisMin"},Er={publisher:"kanonak.org",package_:"look",name:"axisMax"},Kr={publisher:"kanonak.org",package_:"look",name:"valueLabel"};var kt={publisher:"kanonak.org",package_:"look",name:"semanticSvg"},Rr={publisher:"kanonak.org",package_:"look",name:"tierChip"},Lr={publisher:"kanonak.org",package_:"look",name:"tierIcon"},Or={publisher:"kanonak.org",package_:"look",name:"tierCard"},Ur={publisher:"kanonak.org",package_:"look",name:"tierFull"},Ir={publisher:"kanonak.org",package_:"core-rdf",name:"type"},ht=6,Rn={publisher:"kanonak.org",package_:"look",name:"bands"},Cr={publisher:"kanonak.org",package_:"look",name:"title"},Fr={publisher:"kanonak.org",package_:"look",name:"eyebrow"},Tr={publisher:"kanonak.org",package_:"look",name:"subtitle"},bt={publisher:"kanonak.org",package_:"look",name:"badges"},fe={publisher:"kanonak.org",package_:"look",name:"source"},Vr={publisher:"kanonak.org",package_:"look",name:"via"},Ar={publisher:"kanonak.org",package_:"look",name:"size"},xr={publisher:"kanonak.org",package_:"look",name:"icon"},Mr={publisher:"kanonak.org",package_:"look",name:"avatar"},Nr={publisher:"kanonak.org",package_:"look",name:"contents"},Pr={publisher:"kanonak.org",package_:"look",name:"transitive"},Dr={publisher:"kanonak.org",package_:"look",name:"chips"},vt={publisher:"kanonak.org",package_:"look",name:"entries"},Br={publisher:"kanonak.org",package_:"look",name:"urlForm"},In=class{constructor(e){this.catalog=e}catalog;linkMode="single-publisher";setLinkMode(e){return this.linkMode=e,this}get publisherFirst(){return this.linkMode==="open-world"}linkBase(e){return this.publisherFirst?`/${e}`:""}resourceHref(e,n,t="="){return Nn.formatResourceUrl(e,t,{contextPublisher:n,...this.publisherFirst?{publisherFirst:!0}:{}})}packageHref(e,n,t){return`${this.linkBase(e)}/${n}${t?`/${t}`:""}`}publisherHref(e){return`${this.linkBase(e)}/`}_codeHighlighter;findCascadedLook(e){let n=Gr(e)?void 0:on(e);return n?{declaration:n,sourceClass:{publisher:ne(e),package_:(e.namespace||"").split("/")[1]?.split("@")[0]??"",name:e.name}}:this.lookFromTypeRefs(be(e))}lookFromTypeRefs(e){let n=new Set,t=[...e];for(;t.length>0;){let s=t.shift().subject,o=Z(s);if(n.has(o))continue;n.add(o);let i=ke(this.catalog,s);for(let c of i){let l=on(c);if(l)return{declaration:l,sourceClass:{publisher:s.publisher,package_:s.package_,name:s.name}}}for(let c of i)for(let l of Qe(c))t.push(l)}if(!n.has(Z(Se)))for(let a of ke(this.catalog,Se)){let s=on(a);if(s)return{declaration:s,sourceClass:{...Se}}}}findCascadedTokens(e){let n=this.explainCascadedTokens(e),t=new Map;for(let[a,s]of n)t.set(a,s.value);return t}explainCascadedTokens(e){let n=new Map,t=(o,i)=>{for(let[c,l]of Hr(o))n.has(c)||n.set(c,{value:l,sourceNamespace:o.namespace||"",sourceName:o.name,level:i})};t(e,"instance");let a=new Set,s=be(e);for(;s.length>0;){let o=s.shift(),i=Z(o.subject);if(a.has(i))continue;a.add(i);let c=i===Z(Se)?"resource-floor":"class",l=ke(this.catalog,o.subject);if(l.length!==0)for(let d of l){t(d,c);for(let f of Qe(d))s.push(f)}}if(!a.has(Z(Se))){let o=ke(this.catalog,Se);for(let i of o)t(i,"resource-floor")}return n}async renderSvg(e){let n=D(this.catalog,e).label,t=(n.trim().charAt(0)||"?").toUpperCase(),a=`${e.namespace??""}/${e.name}`,s=this.collectCascadedSvgTiers(e),o=new Map([["input",e],["label",n],["firstLetter",t],["uri",a],["resourceKey",e.name]]),i=await this.evaluateTier(s.tierChip,o),c=await this.evaluateTier(s.tierIcon,o),l=await this.evaluateTier(s.tierCard,o),d=await this.evaluateTier(s.tierFull,o),g=[...this.findCascadedTokens(e)].map(([m,k])=>`--kan-${m}: ${k};`).join(" ");return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 400 400" style="${Ke(g)}">
|
|
66
66
|
<style>
|
|
67
67
|
.tier-chip,.tier-icon,.tier-card{display:none}
|
|
68
68
|
.tier-full{display:block}
|
|
@@ -74,7 +74,7 @@ if(document.readyState!=='loading')enhance();else document.addEventListener('DOM
|
|
|
74
74
|
<g class="tier-icon">${c}</g>
|
|
75
75
|
<g class="tier-card">${l}</g>
|
|
76
76
|
<g class="tier-full">${d}</g>
|
|
77
|
-
</svg>`}resolverInstance;expressionResolver(){if(!this.resolverInstance){let e=new Fn,n=new Cn(e);this.resolverInstance=new an(n,e,new
|
|
77
|
+
</svg>`}resolverInstance;expressionResolver(){if(!this.resolverInstance){let e=new Fn,n=new Cn(e);this.resolverInstance=new an(n,e,new Mn(e))}return this.resolverInstance}async evaluateTier(e,n){if(!e)return"";let t;try{t=Ue(e,"semanticSvg-tier",{catalog:this.catalog,depth:0})}catch{return""}let a=new Xe(this.expressionResolver(),this.catalog);if(t.kind==="concat"){let o=[];for(let i of t.parts){let c=await a.evaluate(i,n);o.push($t(i.kind,c))}return o.join("")}let s=await a.evaluate(t,n);return $t(t.kind,s)}async evaluateCarrier(e,n){if(!e)return;let t;try{t=Ue(e,"look-carrier",{catalog:this.catalog,depth:0})}catch{return}let a=new Xe(this.expressionResolver(),this.catalog),s=new Map([["input",n]]),o=await a.evaluate(t,s),i=_t(o);return i===""?void 0:i}async evaluateCarrierNum(e,n){let t=await this.evaluateCarrier(e,n);return t===void 0?NaN:parseFloat(t)}readEmbeddedCarrier(e,n){let t=W(e,n);return t instanceof H&&t.object instanceof M?t.object:void 0}referenceLabel(e){let n=e.subject,t=ke(this.catalog,n);if(t.length===0){let a=ee(this.catalog,n);a&&t.push(a)}for(let a of t){let s=D(this.catalog,a);if(s.label!==a.name)return s.label}return n.name}collectCascadedSvgTiers(e){let n={},t=c=>{let l=W(c,kt);if(!(l instanceof H))return;let d=l.object,f=cn(d,Rr),g=cn(d,Lr),m=cn(d,Or),k=cn(d,Ur);n.tierChip===void 0&&f!==void 0&&(n.tierChip=f),n.tierIcon===void 0&&g!==void 0&&(n.tierIcon=g),n.tierCard===void 0&&m!==void 0&&(n.tierCard=m),n.tierFull===void 0&&k!==void 0&&(n.tierFull=k)};t(e);let a=e.namespace||"",s=a.indexOf("/");if(s>=0){let c=a.indexOf("@"),l={publisher:a.slice(0,s),package_:a.slice(s+1,c>=0?c:a.length),name:e.name};for(let d of ke(this.catalog,l))t(d)}let o=new Set,i=be(e);for(;i.length>0;){let c=i.shift(),l=Z(c.subject);if(o.has(l))continue;o.add(l);let d=ke(this.catalog,c.subject);for(let f of d){t(f);for(let g of Qe(f))i.push(g)}}if(!o.has(Z(Se)))for(let c of ke(this.catalog,Se))t(c);return n}renderStylesheet(e){let n=this.explainStylesheet(e),t=[];for(let[o,i]of n.tokens)t.push(` --kan-${o}: ${i.value};`);let a=t.length>0?`:root {
|
|
78
78
|
${t.join(`
|
|
79
79
|
`)}
|
|
80
80
|
}`:":root { /* no tokens resolved */ }",s=n.baseStylesheet.css??"";return`${qr(n)}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{
|
|
1
|
+
import{l as V}from"./chunk-V6KIDED2.js";import{a as E}from"./chunk-NJ3AZYQD.js";var L=class{propertyUri;propertyType;range;rangeUri;isImported;definedInNamespace};import{parseDocument as O,LineCounter as R,isMap as h,isPair as f,isScalar as g,isSeq as I}from"yaml";var K=class i{entities=new Map;entityBlocks=new Map;properties=new Map;propertyValues=new Map;valueListItems=new Map;importPackages=new Map;nestedKeys=new Map;nestedValues=new Map;static fromContent(e){let t=new i,n=new R,r=O(e,{lineCounter:n});if(r.errors.length>0||!h(r.contents))return t;N(r.contents,[],n,t);for(let o of r.contents.items){if(!f(o)||!g(o.key))continue;let a=String(o.key.value),u=o.key.range;if(!u)continue;t.entities.set(a,d(u,n));let s=o.value,c=s&&typeof s=="object"&&"range"in s?s.range:void 0;if(c?t.entityBlocks.set(a,d([u[0],u[1],c[2]],n)):t.entityBlocks.set(a,d(u,n)),h(o.value)){let k=new Map,m=new Map,l=new Map;for(let P of o.value.items){if(!f(P)||!g(P.key))continue;let b=String(P.key.value),p=P.key.range;p&&k.set(b,d(p,n));let S=P.value;if(S&&typeof S=="object"&&"range"in S&&Array.isArray(S.range)){let v=S.range;m.set(b,d(v,n))}if(I(S)){let v=[];for(let M of S.items)M&&typeof M=="object"&&"range"in M&&Array.isArray(M.range)&&v.push(d(M.range,n));v.length>0&&l.set(b,v)}}k.size>0&&t.properties.set(a,k),m.size>0&&t.propertyValues.set(a,m),l.size>0&&t.valueListItems.set(a,l);let y=j(o.value,n);y.length>0&&t.importPackages.set(a,y)}}return t}getEntityPosition(e){return this.entities.get(e)}getEntityBlockPosition(e){return this.entityBlocks.get(e)}findEntityAtPosition(e,t){for(let[n,r]of this.entityBlocks)if(w(r,e,t))return n}findPropertyAtPosition(e,t){let n=this.findEntityAtPosition(e,t);if(!n)return;let r=this.properties.get(n),o=this.propertyValues.get(n);if(!r&&!o)return{entityName:n};let a,u;if(o)for(let[s,c]of o)w(c,e,t)&&(!u||C(c,u))&&(a=s,u=c);if(r)for(let[s,c]of r)w(c,e,t)&&(!u||C(c,u))&&(a=s,u=c);return a?{entityName:n,propertyName:a}:{entityName:n}}getPropertyPosition(e,t){return this.properties.get(e)?.get(t)}getPropertyValuePosition(e,t){return this.propertyValues.get(e)?.get(t)}getImportPackages(e){return this.importPackages.get(e)??[]}getAllImportPackages(){let e=[];for(let[t,n]of this.importPackages)for(let r of n)e.push({entityName:t,entry:r});return e}findPropertySourceName(e,t){let n=this.properties.get(e);if(n){if(n.has(t))return t;for(let r of n.keys()){let o=r.lastIndexOf(".");if((o===-1?r:r.substring(o+1))===t)return r}}}getListItemPosition(e,t,n){let r=this.valueListItems.get(e)?.get(t);if(!(!r||n<0||n>=r.length))return r[n]}getNodeKeyPosition(e){return this.nestedKeys.get(JSON.stringify(e))}getNodeValuePosition(e){return this.nestedValues.get(JSON.stringify(e))}setNestedKeyPosition(e,t){this.nestedKeys.set(e,t)}setNestedValuePosition(e,t){this.nestedValues.set(e,t)}getMostSpecificPosition(e,t,n){if(e){if(t!==void 0){if(n!==void 0){let a=this.getListItemPosition(e,t,n);if(a)return a}let r=this.getPropertyValuePosition(e,t);if(r)return r;let o=this.getPropertyPosition(e,t);if(o)return o}return this.getEntityPosition(e)}}};function j(i,e){let t=[];if(!h(i))return t;let n=i.items.find(r=>f(r)&&g(r.key)&&String(r.key.value)==="imports");if(!n||!f(n)||!I(n.value))return t;for(let r of n.value.items){if(!h(r))continue;let o=r.items.find(s=>f(s)&&g(s.key)&&String(s.key.value)==="publisher");if(!o||!f(o)||!g(o.value))continue;let a=String(o.value.value),u=r.items.find(s=>f(s)&&g(s.key)&&String(s.key.value)==="packages");if(!(!u||!f(u)||!I(u.value)))for(let s of u.value.items){if(!h(s))continue;let c=s.items.find(p=>f(p)&&g(p.key)&&String(p.key.value)==="package");if(!c||!f(c)||!g(c.value)||!c.value.range)continue;let k=String(c.value.value),m=s.items.find(p=>f(p)&&g(p.key)&&String(p.key.value)==="version"),l=m&&f(m)&&g(m.value)?String(m.value.value):"",y=s.items.find(p=>f(p)&&g(p.key)&&String(p.key.value)==="alias"),P=y&&f(y)&&g(y.value)?String(y.value.value):void 0,b=P!==void 0?{publisher:a,package_:k,version:l,alias:P,position:d(c.value.range,e)}:{publisher:a,package_:k,version:l,position:d(c.value.range,e)};t.push(b)}}return t}function w(i,e,t){return!(e<i.line||e>i.endLine||e===i.line&&t<i.column||e===i.endLine&&t>i.endColumn)}function C(i,e){let t=i.endLine-i.line,n=e.endLine-e.line;if(t!==n)return t<n;let r=i.endLine===i.line?i.endColumn-i.column:Number.MAX_SAFE_INTEGER,o=e.endLine===e.line?e.endColumn-e.column:Number.MAX_SAFE_INTEGER;return r<o}function N(i,e,t,n){if(h(i)){for(let r of i.items){if(!f(r)||!g(r.key))continue;let o=String(r.key.value),a=[...e,o],u=JSON.stringify(a);r.key.range&&n.setNestedKeyPosition(u,d(r.key.range,t));let s=r.value,c=D(s);c&&n.setNestedValuePosition(u,d(c,t)),N(s,a,t,n)}return}if(I(i)){for(let r=0;r<i.items.length;r++){let o=i.items[r],a=[...e,r],u=JSON.stringify(a),s=D(o);s&&n.setNestedValuePosition(u,d(s,t)),N(o,a,t,n)}return}}function D(i){if(!i||typeof i!="object"||!("range"in i))return;let e=i.range;return Array.isArray(e)&&e.length>=3?e:void 0}function d(i,e){let t=e.linePos(i[0]),n=e.linePos(i[2]);return{line:t.line-1,column:t.col-1,endLine:n.line-1,endColumn:n.col-1}}function x(i,e){let n=(e??new E).parse(i),r=K.fromContent(i);return{document:n,positions:r}}function W(i,e,t,n,r){if(e<n.line||e>n.endLine||e===n.line&&t<n.column||e===n.endLine&&t>=n.endColumn)return;let o=A(r,n.line,n.column),a=A(r,n.endLine,n.endColumn);if(o<0||a<0)return;let u=r.substring(o,a),s=V(u);if(s.length!==i.links.length)return;let c=e-n.line,k=e===n.line?t-n.column:t,m=A(u,c,k);if(!(m<0))for(let l=0;l<s.length;l++){let y=s[l];if(m>=y.startOffset&&m<y.endOffset)return i.links[l]}}function A(i,e,t){let n=0,r=0;for(let o=0;o<i.length;o++){if(n===e)return Math.min(r+t,i.length);i[o]===`
|
|
2
2
|
`&&(n++,r=o+1)}return n===e?Math.min(r+t,i.length):-1}export{L as a,K as b,x as c,W as d};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as D}from"./chunk-
|
|
1
|
+
import{a as D}from"./chunk-V6KIDED2.js";import{c as j,d as m,g as R,j as p,k as K,l as k}from"./chunk-YW6P24RF.js";import{c as b,g as u}from"./chunk-2ACBWC7K.js";function F(a,e,n,t){let i=g(a);if(i.length>0){let s=v(i,e,n);return s?{transformation:s.transformation,source:"instance"}:void 0}let r=new Set,o=O(a);for(;o.length>0;){let s=o.shift(),f=_(s.subject);if(r.has(f))continue;r.add(f);let l=S(t,s.subject);if(l.length===0)continue;let U=l.flatMap(g),h=v(U,e,n);if(h)return{transformation:h.transformation,source:{publisher:s.subject.publisher,package_:s.subject.package_,name:s.subject.name}};for(let T of l)for(let P of $(T))o.push(P)}let c={publisher:"kanonak.org",package_:"core-rdf",name:"Resource"};if(!r.has(_(c))){let s=S(t,c).flatMap(g),f=v(s,e,n);if(f)return{transformation:f.transformation,source:c}}}function g(a){let e=[];for(let n of a.statement)if(n instanceof k&&d(n,"kanonak.org","derivation","derivations"))for(let t of n.object??[]){if(!(t instanceof D))continue;let i=x(t);i&&e.push(i)}return e}function v(a,e,n){let t=a.filter(o=>E(o.format,e)&&E(o.variant,n));if(t.length<=1)return t[0];let i=t[0].transformation,r=t[0];for(let o of t){let c=o.transformation;if(c.publisher!==i.publisher||c.package_!==i.package_||c.name!==i.name)continue;let s=u(r.transformation.version),f=u(c.version);s&&f&&b(f,s)>0&&(r=o)}return r}function x(a){let e,n,t;for(let i of a.statement)i instanceof p?d(i,"kanonak.org","derivation","format")?e=y(i):d(i,"kanonak.org","derivation","variant")&&(n=y(i)):i instanceof K&&d(i,"kanonak.org","derivation","transformation")&&(t=C(i.object));if(!(!e||!t))return n||(n={publisher:"kanonak.org",package_:"derivation",name:"default"}),{format:e,variant:n,transformation:t}}function C(a){let e,n,t,i;for(let r of a.statement){if(!(r instanceof R))continue;let o=r.predicate?.subject?.name;o==="publisher"?e=r.object:o==="package"?n=r.object:o==="version"?t=r.object:o==="name"&&(i=r.object)}if(!(!e||!n||!t||!i))return{publisher:e,package_:n,version:t,name:i}}function O(a){let e=[];for(let n of a.statement)n instanceof p&&n.predicate?.subject?.name==="type"&&n.object instanceof m&&e.push(n.object);return e}function $(a){let e=[];for(let n of a.statement)if(n instanceof p){if(n.predicate?.subject?.name!=="subClassOf")continue;n.object instanceof m&&e.push(n.object)}else if(n instanceof k){if(n.predicate?.subject?.name!=="subClassOf")continue;for(let t of n.object??[])t instanceof m&&e.push(t)}return e}function S(a,e){let n=[];for(let t of a){if(!(t instanceof j)||t.name!==e.name)continue;(t.namespace||"").startsWith(`${e.publisher}/${e.package_}@`)&&n.push(t)}return n.sort((t,i)=>{let r=u((t.namespace||"").split("@")[1]??""),o=u((i.namespace||"").split("@")[1]??"");return!r||!o?0:b(o,r)}),n}function d(a,e,n,t){let i=a.predicate?.subject;return i?i.publisher===e&&i.package_===n&&i.name===t:!1}function y(a){let e=a.object.subject;return{publisher:e.publisher,package_:e.package_,name:e.name}}function E(a,e){return a.publisher===e.publisher&&a.package_===e.package_&&a.name===e.name}function _(a){return`${a.publisher}/${a.package_}/${a.name}`}export{F as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{e as F}from"./chunk-UXYCUGSF.js";import{H as me,I as he}from"./chunk-Q6XQ5IXW.js";import{a as te,b as N,c as le,i as z,m as D}from"./chunk-V6KIDED2.js";import{k as ue,o as O,p as x,q as ge,r as B,v as ye}from"./chunk-SVUMCLK5.js";import{b as ne,c as T,d as _,f as oe,g as ae,h as se,i as ie,j as ce,k as pe,l as L,m as $,r as G,t as de,v as K,w as fe,y as V}from"./chunk-YW6P24RF.js";import{a as re}from"./chunk-FUUTGGJS.js";import{d as ee}from"./chunk-2ACBWC7K.js";var Ce=(s=>(s.Class="Class",s.DatatypeProperty="DatatypeProperty",s.ObjectProperty="ObjectProperty",s.AnnotationProperty="AnnotationProperty",s.Instance="Instance",s.Datatype="Datatype",s.Unknown="Unknown",s))(Ce||{}),Se=(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))(Se||{}),H=class{static async buildFromRepository(n,t){let o=await new D().parseKanonaks(n),a=await n.getAllDocumentsAsync(),c=[],s=[],i=new Set,d=new Set,f=new Map;for(let g of o){let u=g;if(u.name&&(O.isClassType(u)&&i.add(u.name),g instanceof T)){let l=B(o,g);(l==="ObjectProperty"||l==="Property")&&d.add(u.name)}}for(let g of a)for(let[u,l]of Object.entries(g.body))d.has(u)&&l?.range&&typeof l.range=="string"&&f.set(u,l.range);let p=new Map;for(let g of o){let u=g;u.name&&p.set(u.name,u)}for(let g of a){let u=g.metadata.namespace_,l=u?`${u.publisher}/${u.package_}`:"",m=u?.version?`${u.version.major}.${u.version.minor}.${u.version.patch}`:"",b=ke(g);for(let[h,y]of Object.entries(g.body)){if(!y||typeof y!="object")continue;let C=p.get(h),k="Unknown";if(C){let R=C,j=C instanceof T?B(o,C):void 0;O.isClassType(R)?k="Class":j==="ObjectProperty"?k="ObjectProperty":j==="DatatypeProperty"?k="DatatypeProperty":j==="AnnotationProperty"?k="AnnotationProperty":O.isDatatypeType(R)?k="Datatype":j==="Property"?k="ObjectProperty":O.isInstanceOfKnownClass(R,i)&&(k="Instance")}let S=l&&m?`${l}/${h}@${m}`:h,Z={};for(let[R,j]of Object.entries(y))R!=="type"&&(typeof j!="object"||j===null)&&(Z[R]=j);c.push({id:S,label:y.label??h,type:k,namespace:l,properties:Z}),be(S,y,k,i,d,s,l,m,b,t),q(S,y,d,f,c,s,l,m,b),Fe(S,C,s)}}return{nodes:c,edges:s}}static buildFromDocument(n,t){let r=[],o=[],a=n.metadata.namespace_,c=a?.version?`${a.version.major}.${a.version.minor}.${a.version.patch}`:"",s=a?`${a.publisher}/${a.package_}`:"",i=new Set,d=new Set,f=new Map,p=ke(n);for(let[l,m]of Object.entries(n.body)){let b=m?.type;b&&(De(b,p)&&i.add(l),Me(b,p)&&(d.add(l),m.range&&typeof m.range=="string"&&f.set(l,m.range)))}for(let[l,m]of Object.entries(n.body)){if(!m||typeof m!="object")continue;let b=m.type,h=Ue(b,l,i,p),y=s&&c?`${s}/${l}@${c}`:l,C={};for(let[k,S]of Object.entries(m))k!=="type"&&(typeof S!="object"||S===null)&&(C[k]=S);r.push({id:y,label:m.label??l,type:h,namespace:s,properties:C}),be(y,m,h,i,d,o,s,c,p,t),q(y,m,d,f,r,o,s,c,p)}let g=new Set(r.map(l=>l.id)),u=o.filter(l=>g.has(l.source)&&g.has(l.target));return{nodes:r,edges:u}}};function ke(e,n){let t=new Map;if(e.metadata?.imports)for(let[r,o]of Object.entries(e.metadata.imports))for(let a of o){let c=a.alias??a.packageName,s=a.version,i=`${s.major}.${s.minor}.${s.patch}`;t.set(c,{publisher:r,package_:a.packageName,version:i})}return t}var Oe={"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"},xe=new Set(["kanonak.org/core-owl/ObjectProperty","kanonak.org/core-owl/DatatypeProperty","kanonak.org/core-owl/AnnotationProperty","kanonak.org/core-rdf/Property"]);function W(e,n){if(e.includes(".")){let t=e.indexOf("."),r=e.substring(0,t),o=e.substring(t+1),a=n.get(r);if(a)return`${a.publisher}/${a.package_}/${o}`}return null}function De(e,n){let t=W(e,n);return t?Oe[t]==="Class":!1}function Me(e,n){let t=W(e,n);return t?xe.has(t):!1}function Ue(e,n,t,r){if(!e||e==="Package")return"Unknown";let o=W(e,r);if(o){let c=Oe[o];if(c)return c;let s=o.split("/").pop()?.split("@")[0]??"";return t.has(s)?"Instance":"Unknown"}let a=e.split(".").pop()??e;return t.has(a)?"Instance":"Unknown"}var ve=new Set(["type","label","comment","version","publisher","imports","license","match","alias","package"]);function be(e,n,t,r,o,a,c,s,i,d){let f=n.type,p=n.subClassOf;if(p){let h=Array.isArray(p)?p:[p];for(let y of h)typeof y=="string"&&a.push({source:e,target:v(y,c,s,i),type:"subClassOf",label:"subClassOf"})}let g=n.subPropertyOf;if(g){let h=Array.isArray(g)?g:[g];for(let y of h)typeof y=="string"&&a.push({source:e,target:v(y,c,s,i),type:"subPropertyOf",label:"subPropertyOf"})}let u=n.domain,l=n.range;if(d?.includePropertyEdges){let h=[[u,"domain","domain"],[l,"range","range"]];for(let[y,C,k]of h)if(y!=null)for(let S of Array.isArray(y)?y:[y])typeof S=="string"&&a.push({source:e,target:v(S,c,s,i),type:C,label:k})}if(t==="Instance"&&f){let h=f.split(".").pop()??f;a.push({source:e,target:v(h,c,s,i),type:"instanceOf",label:"type"})}if(t==="Instance")for(let[h,y]of Object.entries(n)){if(ve.has(h)||!o.has(h))continue;let C=Array.isArray(y)?y:[y];for(let k of C)typeof k=="string"&&Le(k)&&a.push({source:e,target:v(k,c,s,i),type:"propertyValue",label:h,propertyId:v(h,c,s,i)})}if((t==="ObjectProperty"||t==="DatatypeProperty"||u&&l)&&u&&l){let h=typeof u=="string"?u:null,y=typeof l=="string"?l:null;h&&y&&a.push({source:v(h,c,s,i),target:v(y,c,s,i),type:"objectRelationship",label:n.label??e.split("/").pop()??"",propertyId:e})}}function q(e,n,t,r,o,a,c,s,i){for(let[d,f]of Object.entries(n)){if(ve.has(d)||typeof f!="object"||f===null||Array.isArray(f))continue;let p=f,g=`${e}/${d}`,u=r.get(d),l=u?u.split(".").pop()??u:"Unknown",m={};for(let[h,y]of Object.entries(p))(typeof y!="object"||y===null)&&(m[h]=y);o.push({id:g,label:`${l} (embedded)`,type:"Instance",namespace:c,properties:m});let b=c&&s?`${c}/${d}@${s}`:d;a.push({source:e,target:g,type:"propertyValue",label:d,propertyId:t.has(d)?b:void 0}),u&&a.push({source:g,target:v(l,c,s,i),type:"instanceOf",label:"type (inferred)"}),q(g,p,t,r,o,a,c,s,i)}}function Fe(e,n,t){let r=n?.statement;if(Array.isArray(r))for(let o of r){if(!(o instanceof le))continue;let a=o.predicate?.subject?.name??"";for(let c of o.links){let s=c.target?.subject;if(!s)continue;let i=s.version,d=i&&typeof i.major=="number"?`@${i.major}.${i.minor}.${i.patch}`:"";t.push({source:e,target:`${s.publisher}/${s.package_}/${s.name}${d}`,type:"embeddedLink",label:a})}}}function Le(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 v(e,n,t,r){if(e.includes("@")&&e.includes("/"))return e;if(e.includes(".")){let o=e.indexOf("."),a=e.substring(0,o),c=e.substring(o+1);if(r){let s=r.get(a);if(s)return`${s.publisher}/${s.package_}/${c}@${s.version}`}return n&&t?`${n}/${c}@${t}`:c}return n&&t?`${n}/${e}@${t}`:e}function A(e){let n=e.replace(/^https?:\/\//,"").replace(/^git:\/\//,"").replace(/\/+$/,"").trim();if(!n)throw new Error("Publisher host cannot be empty");return n}var Ge="key_thumbprint",I=class{cache=new Map;prCache=new Map;async discoverProtectedResource(n){let t=A(n);if(this.prCache.has(t))return this.prCache.get(t);let r=`https://${t}/.well-known/oauth-protected-resource`,o=await Ve(r),a=o&&Array.isArray(o.authorization_servers)?o.authorization_servers.filter(s=>typeof s=="string"):[],c=a.length>0?a:null;return this.prCache.set(t,c),c}async discover(n){let t=A(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 a=`https://${t}/.well-known/openid-configuration`;o=await this.tryEndpoint(a)}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 a=o instanceof Error?o.message:String(o);return a.includes("ENOTFOUND")||a.includes("ECONNREFUSED")?(console.error(` OAuth discovery: ${n} \u2014 host unreachable (${a})`),console.error(" If the server is behind a VPN, ensure you are connected.")):a.includes("CERT")||a.includes("SSL")||a.includes("TLS")?(console.error(` OAuth discovery: ${n} \u2014 TLS error (${a})`),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: ${a}`),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:w(r.issuer),authorizationEndpoint:w(r.authorization_endpoint),tokenEndpoint:w(r.token_endpoint),registrationEndpoint:w(r.registration_endpoint),revocationEndpoint:w(r.revocation_endpoint),scopesSupported:P(r.scopes_supported),responseTypesSupported:P(r.response_types_supported),grantTypesSupported:P(r.grant_types_supported),codeChallengeMethodsSupported:P(r.code_challenge_methods_supported),tokenEndpointAuthMethodsSupported:P(r.token_endpoint_auth_methods_supported),dpopSigningAlgValuesSupported:P(r.dpop_signing_alg_values_supported),enrollmentEndpoint:w(r.enrollment_endpoint),enrollmentIssuanceProtocols:P(r.enrollment_issuance_protocols),enrollmentKeyTypes:P(r.enrollment_key_types),enrollmentScopesSupported:P(r.enrollment_scopes_supported),enrollmentConsentBindingParam:w(r.enrollment_consent_binding_param),sessionEndpoint:w(r.session_endpoint),sessionEndpointAuthMethod:w(r.session_endpoint_auth_method)}}};async function Ve(e){try{let n=await fetch(e);return n.ok?await n.json():null}catch{return null}}function w(e){return typeof e=="string"?e:null}function P(e){return Array.isArray(e)?e.filter(n=>typeof n=="string"):null}function we(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 Be(e){try{return new URL(e).host}catch{return null}}function ze(e,n={}){let t=n.discovery??new I,r=new Map,o=new Map,a=async i=>{let d=r.get(i);if(d!==void 0)return d;let f=null,p=await t.discoverProtectedResource(i).catch(()=>null);return p&&p.length>0&&(f=Be(p[0])),r.set(i,f),f},c=async(i,d)=>{if(!e)return null;if(!(d.forceRefresh||d.challenge)&&o.has(i))return o.get(i);let p=await e.resolve(i,d).catch(()=>null);return o.set(i,p),p},s=async(i,d,f,p)=>{let g=await a(d);if(!g)return{res:await F(i,{method:f,redirect:"manual"}),authed:!1};let u=await c(g,{method:f,url:i,...p}),l=u?.headers??{};return{res:await F(i,{method:f,redirect:"manual",headers:l}),authed:!!u}};return async(i,d,f="GET")=>{let p=await s(i,d,f,{});if((p.res.status===401||p.res.status===403)&&p.authed){let g=we(p.res),u={forceRefresh:g===void 0};return g&&(u.challenge=g),(await s(i,d,f,u)).res}return p.res}}var Pe="KANONAK_TOKEN";function He(){return typeof process<"u"&&process.env?process.env:{}}function qe(e){return`${Pe}_${e.toUpperCase().replace(/[^A-Z0-9]+/g,"_")}`}var X=class{tokens;env;constructor(n={}){this.tokens=n.tokens??{},this.env=n.env??He()}async resolve(n,t){let r=A(n),o=this.tokens[r]??this.env[qe(r)]??this.env[Pe];return o?{headers:{Authorization:`Bearer ${o}`}}:null}};import{canonicalForm as We,canonicalHash as Xe}from"@kanonak-protocol/canonical";function Y(e){return typeof e=="object"&&e!==null&&Array.isArray(e.subjects)}import{CANONICAL_FORM_VERSION as an}from"@kanonak-protocol/canonical";function Ye(e){return We(Y(e)?e:Te(e))}function Je(e){return Xe(Y(e)?e:Te(e))}function Te(e){let n=[];for(let t of e)t instanceof T&&n.push({uri:on(t),statements:J(t.statement)});return{subjects:n}}function J(e){let n=[];for(let t of e){let r=rn(t);if(!r)continue;if(t instanceof L&&Qe(t.predicate.subject)){n.push(...en(t,r));continue}let o=nn(t);o&&n.push({predicate:r,value:o})}return n}function Qe(e){let n=ue("type");return n!==void 0&&e.name==="type"&&e.publisher===n.publisher&&e.package_===n.package_}var je=new TextEncoder;function Ze(e,n){let t=je.encode(e),r=je.encode(n),o=Math.min(t.length,r.length);for(let a=0;a<o;a++)if(t[a]!==r[a])return t[a]-r[a];return t.length-r.length}function en(e,n){let t=[];for(let r of e.object){if(!(r instanceof _))throw new Error(`canonicalForm: a multi-valued type statement must contain only entity references, got ${r.constructor?.name??typeof r}`);t.push(Q(r))}t.sort(Ze);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 nn(e){if(e instanceof oe&&e.carrier)return{lit:e.lexical??String(e.object),datatype:Re(e.carrier)};if(e instanceof ae)return{raw:e.object};if(e instanceof se)return{raw:e.lexical??String(e.object)};if(e instanceof ie)return{raw:e.lexical??String(e.object)};if(e instanceof ce)return{ref:Q(e.object)};if(e instanceof pe)return Ee(e.object);if(e instanceof L)return{list:e.object.map(tn)}}function Ee(e){let n=J(e.statement);return e.name&&e.name.length>0?{embed:{name:e.name,statements:n}}:{embed:{statements:n}}}function tn(e){if(e instanceof _)return{ref:Q(e)};if(e instanceof te)return Ee(e);if(e instanceof N){if(e.carrier)return{lit:e.lexical??String(e.value),datatype:Re(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 ne)return{embed:{statements:J(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 Re(e){return e===z.LangString?"kanonak.org/core-rdf/langString":`kanonak.org/core-xsd/${e}`}function rn(e){let n=e.predicate;if(n)return _e(n.subject)}function on(e){let n=e.namespace??"",t=e.name??"";return`${n}/${t}`}function Q(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 E="kanonak.org",U="core-rdf",Ie="core-xsd",Ae={publisher:E,package_:U,name:"subClassOf"},Ne={publisher:E,package_:U,name:"label"},sn={publisher:E,package_:U,name:"comment"},$e={publisher:E,package_:"core-owl",name:"oneOf"},Ke=e=>e;function cn(e){let n=fe(e,Ae);if(n)return[n];let t=[];for(let r of V(e,Ae))r instanceof _&&t.push(r.subject);return t}function pn(e,n,t){if(n.publisher===E&&n.package_===U&&n.name==="Literal")return{kind:"datatype",uri:n};let o=G(e,n);if(o){let a=Ke(o);if(O.isDatatypeType(a))return{kind:"datatype",uri:n};if(O.isClassType(a))return{kind:"class",uri:x(o)??n,localName:o.name}}return n.publisher===E&&n.package_===Ie?{kind:"datatype",uri:n}:t==="datatype"?{kind:"datatype",uri:n}:{kind:"class",uri:n,localName:n.name}}function ln(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=pn(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 M=e=>new re(E,Ie,e);function un(e){return typeof e=="boolean"?M("boolean"):typeof e=="number"?Number.isInteger(e)?M("integer"):M("decimal"):M("string")}function dn(e,n){let t=[];for(let r of V(n,$e))if(r instanceof _){let o=G(e,r.subject),a=(o?x(o):void 0)??r.subject,c=o?K(o,Ne):void 0;t.push({kind:"individual",uri:a,localName:a.name,...c!==void 0?{label:c}:{}})}else r instanceof N&&t.push({kind:"literal",value:r.value,datatype:un(r.value)});return t}function fn(e,n,t,r){let o=ge(e,n),a=$(n);return ye(e,n).filter(s=>t?!0:s.domains.some(i=>$(i)===a)).map(s=>ln(e,s,he(r,o,s.uri)))}async function gn(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,a=await new D().parseKanonaks(n),c=me(a),s=[],i=[],d=new Set;for(let f of a){if(!(f instanceof T)||!O.isClassType(Ke(f)))continue;let p=x(f);if(!p||p.publisher!==r.publisher||p.package_!==r.package_||p.version&&r.version&&!ee(p.version,r.version))continue;let g=$(p);if(d.has(g))continue;d.add(g);let u=cn(f).map(b=>({uri:b,localName:b.name})),l=K(f,Ne),m=K(f,sn);s.push({uri:p,localName:p.name,superClasses:u,properties:fn(a,p,o,c),...l!==void 0?{label:l}:{},...m!==void 0?{comment:m}:{}}),de(f,$e)&&i.push({uri:p,localName:p.name,members:dn(a,f),...l!==void 0?{label:l}:{},...m!==void 0?{comment:m}:{}})}return{classes:s,enums:i}}export{Ce as a,Se as b,H as c,A as d,Ge as e,I as f,we as g,ze as h,X as i,Ye as j,Je as k,an as l,gn as m};
|