@kanonak-protocol/sdk 4.11.0 → 4.13.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/auth/CredentialBackend.d.ts +15 -6
- package/dist/auth/CredentialHelperBackend.d.ts +4 -4
- package/dist/auth/DeviceCertificateStore.d.ts +52 -0
- package/dist/auth/EncryptedFileBackend.d.ts +11 -7
- package/dist/auth/KeychainBackend.d.ts +10 -6
- package/dist/auth/SecretServiceBackend.d.ts +8 -6
- package/dist/auth/WinCredBackend.d.ts +13 -9
- package/dist/auth/index.d.ts +3 -1
- package/dist/browser.js +1 -1
- package/dist/canonical/CanonicalHash.d.ts +13 -17
- package/dist/canonical/Datatypes.d.ts +19 -93
- package/dist/canonical/InputModel.d.ts +9 -46
- package/dist/chunk-BKVPSPG4.js +1 -0
- package/dist/{chunk-QIMJSVIM.js → chunk-CR55WXIN.js} +1 -1
- package/dist/{chunk-WED776KZ.js → chunk-NUXUITUC.js} +2 -2
- package/dist/{chunk-MMJ7GO7J.js → chunk-RGOBWOBB.js} +1 -1
- package/dist/{chunk-55DXTCGV.js → chunk-UBBZWWRB.js} +1 -1
- package/dist/{chunk-E2FCKRB4.js → chunk-V72IVYR4.js} +1 -1
- package/dist/{chunk-47RLRYV2.js → chunk-VWS25JH4.js} +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +26 -26
- package/dist/parsing/index.js +1 -1
- package/dist/reasoning/index.js +1 -1
- package/dist/search/index.js +1 -1
- package/dist/server/index.js +1 -1
- package/dist/transformations/index.js +1 -1
- package/dist/validation/index.js +1 -1
- package/package.json +3 -2
- package/dist/chunk-MFNVQSBW.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{b as Y,c as An,d as Sn,e as ce,f as Te,g as O,h as wn,i as X,j as q}from"../chunk-
|
|
1
|
+
import{b as Y,c as An,d as Sn,e as ce,f as Te,g as O,h as wn,i as X,j as q}from"../chunk-V72IVYR4.js";import{a as se}from"../chunk-VWS25JH4.js";import"../chunk-QHABFCRC.js";import"../chunk-4NO7MHS7.js";import"../chunk-RGOBWOBB.js";import"../chunk-PEJALHXK.js";import{a as kn,b as bn,c as hn,d as Dn}from"../chunk-SHDHMKMJ.js";import{h as ie}from"../chunk-BKVPSPG4.js";import{a as ae}from"../chunk-NJ3AZYQD.js";import{b as L,c as A,f as S}from"../chunk-7TKJHKC2.js";import"../chunk-7HRKWTBB.js";import{b as N,c as D,d as K,g as M,h as P,i as F,j as W,l as H}from"../chunk-4UT2CLAT.js";import"../chunk-FUUTGGJS.js";import{g as oe}from"../chunk-2ACBWC7K.js";var $e="kanonak.org",Ue="document-ast",i=e=>({publisher:$e,package_:Ue,name:e}),m={Document:i("Document"),Block:i("Block"),Inline:i("Inline"),StructuredValue:i("StructuredValue"),Heading:i("Heading"),Paragraph:i("Paragraph"),RawBlock:i("RawBlock"),Text:i("Text"),StructuredMap:i("StructuredMap"),StructuredEntry:i("StructuredEntry"),StructuredList:i("StructuredList"),StringScalar:i("StringScalar"),IntegerScalar:i("IntegerScalar"),EscapeHint:i("EscapeHint"),MediaType:i("MediaType"),metadata:i("metadata"),children:i("children"),level:i("level"),inlines:i("inlines"),text:i("text"),entries:i("entries"),key:i("key"),value:i("value"),escapeHint:i("escapeHint"),items:i("items"),stringValue:i("stringValue"),integerValue:i("integerValue"),rawContent:i("rawContent"),mediaType:i("mediaType"),mimeType:i("mimeType"),ESC_RAW:i("esc-raw"),ESC_YAML_SAFE:i("esc-yaml-safe"),ESC_TOML_STRING:i("esc-toml-string"),ESC_TOML_MULTILINE:i("esc-toml-multiline"),ESC_JSON:i("esc-json"),ESC_DYNAMODB_BOOL:i("esc-dynamodb-bool"),ESC_DYNAMODB_NUMBER:i("esc-dynamodb-number"),ESC_DYNAMODB_NULL:i("esc-dynamodb-null"),TEXT_PLAIN:i("text-plain"),TEXT_MARKDOWN:i("text-markdown"),TEXT_HTML:i("text-html"),TEXT_CSS:i("text-css"),APPLICATION_JSON:i("application-json"),TEXT_YAML:i("text-yaml"),IMAGE_SVG_XML:i("image-svg-xml"),ResourceLink:i("ResourceLink"),target:i("target"),linkLabel:i("linkLabel"),PropertyList:i("PropertyList"),propertyEntries:i("propertyEntries"),PropertyEntry:i("PropertyEntry"),propertyKey:i("propertyKey"),propertyValue:i("propertyValue"),Table:i("Table"),tableColumnLabels:i("tableColumnLabels"),tableRows:i("tableRows"),TableRow:i("TableRow"),tableCells:i("tableCells")};function ue(e,n){return e.publisher===n.publisher&&e.package_===n.package_&&e.name===n.name}var j=class{backendUri="kanonak.org/transformations/markdown-with-frontmatter";render(n,t){let r=xe(n.metadata,t),o=Le(n.children),s=["---",...r,"---","",o].join(`
|
|
2
2
|
`);return t?.trailingNewline&&(s.endsWith(`
|
|
3
3
|
`)||(s+=`
|
|
4
4
|
`)),s}};function xe(e,n){if(!e)return[];let t=new Map;for(let c of e.entries)t.set(I(c.key),c);let r=new Map;if(n?.metadataRenames)for(let[c,u]of n.metadataRenames)r.set(I(c),u);let a=(n?.metadataKeys??e.entries.map(c=>c.key)).map(I),s=[];for(let c of a){let u=t.get(c);if(!u)continue;let f=r.get(c),l=I(f??c),d=me(u.value,u.escapeHint);d!==void 0&&s.push(`${l}: ${d}`)}return s}function I(e){let n=e.lastIndexOf(".");return n===-1?e:e.substring(n+1)||e}function me(e,n){switch(e.kind){case"StringScalar":return Ve(e.stringValue,n);case"IntegerScalar":return String(e.integerValue);case"StructuredList":{let t=[];for(let r of e.items){let o=me(r,n);o!==void 0&&t.push(o)}return t.join(", ")}case"StructuredMap":return;default:return}}function Ve(e,n){return!n||ue(n,m.ESC_RAW)?e:ue(n,m.ESC_YAML_SAFE)?ve(e):e}function ve(e){return e.includes(`
|
package/dist/validation/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{A,B,C,D,E,F,G,H,I,L as J,M as K,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../chunk-
|
|
1
|
+
import{A,B,C,D,E,F,G,H,I,L as J,M as K,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z}from"../chunk-UBBZWWRB.js";import"../chunk-SHDHMKMJ.js";import"../chunk-BKVPSPG4.js";import"../chunk-NJ3AZYQD.js";import"../chunk-IEOSSSB5.js";import"../chunk-7TKJHKC2.js";import"../chunk-7HRKWTBB.js";import"../chunk-4UT2CLAT.js";import"../chunk-FUUTGGJS.js";import"../chunk-2ACBWC7K.js";export{w as AmbiguousReferenceRule,C as ClassDefinitionRule,n as ClassHierarchyCycleRule,u as DefinitionPropertyReferenceRule,J as DiamondNameClashRule,E as DisplayLensScopeRule,k as EmbeddedKanonakTypeRule,l as ImportExistenceRule,K as KanonakObjectValidator,F as LookSemanticSvgPathRule,D as MarkdownLinkRule,s as NamespaceImportCycleRule,f as NamespacePrefixRule,y as ObjectPropertyImportRule,z as ObjectPropertyValueValidationRule,c as OntologyValidationError,a as OntologyValidationResult,I as OwlOneOfRule,j as PackageHeaderRule,A as PropertyDomainRule,o as PropertyHierarchyCycleRule,x as PropertyRangeReferenceRule,p as PropertyRangeRequiredRule,h as PropertyTypeSpecificityRule,B as PropertyValueTypeRule,g as ResourceNamingRule,H as ShaclShapeRule,q as SubClassOfReferenceRule,r as SubPropertyOfReferenceRule,i as SubjectKanonakTypeRequiredRule,G as TxExpressionPathRule,t as UnresolvedPredicateRule,m as UnresolvedReferenceRule,e as ValidationCache,d as ValidationContext,b as ValidationSeverity,v as XsdImportRule};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kanonak-protocol/sdk",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.13.0",
|
|
4
4
|
"description": "TypeScript SDK for the Kanonak Protocol — parse, resolve, validate, reason over, and render .kan.yml packages.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -125,7 +125,8 @@
|
|
|
125
125
|
"yaml-parser"
|
|
126
126
|
],
|
|
127
127
|
"dependencies": {
|
|
128
|
-
"@kanonak-protocol/
|
|
128
|
+
"@kanonak-protocol/canonical": "^0.1.1",
|
|
129
|
+
"@kanonak-protocol/types": "^4.13.0",
|
|
129
130
|
"ignore": "^7.0.5",
|
|
130
131
|
"js-yaml": "^4.1.0",
|
|
131
132
|
"yaml": "^2.7.0"
|
package/dist/chunk-MFNVQSBW.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as U}from"./chunk-NJ3AZYQD.js";import{b as F,c as V,i as z,j as T}from"./chunk-7HRKWTBB.js";import{a as B,b as _,c as x,d as k,g as w,h as R,i as v,j as D,k as $,l as j}from"./chunk-4UT2CLAT.js";import{j as L}from"./chunk-2ACBWC7K.js";var S=class extends _{name};var I=class extends B{value;carrier;lexical};var K=class extends w{links=[]};var J=n=>({publisher:"kanonak.org",package_:"core-xsd",name:n}),Q=n=>({publisher:"kanonak.org",package_:"core-rdf",name:n}),Z=(p=>(p.Integer="integer",p.Decimal="decimal",p.Double="double",p.Float="float",p.Boolean="boolean",p.String="string",p.AnyUri="anyURI",p.LangString="langString",p.DateTime="dateTime",p.Date="date",p.Time="time",p.HexBinary="hexBinary",p.Base64Binary="base64Binary",p))(Z||{});function C(n){return`${n.publisher}/${n.package_}/${n.name}`}var ee=[["integer","integer"],["long","integer"],["int","integer"],["short","integer"],["byte","integer"],["unsignedLong","integer"],["unsignedInt","integer"],["unsignedShort","integer"],["unsignedByte","integer"],["nonNegativeInteger","integer"],["positiveInteger","integer"],["nonPositiveInteger","integer"],["negativeInteger","integer"],["decimal","decimal"],["double","double"],["float","float"],["boolean","boolean"],["string","string"],["normalizedString","string"],["token","string"],["anyURI","anyURI"],["dateTime","dateTime"],["date","date"],["time","time"],["hexBinary","hexBinary"],["base64Binary","base64Binary"]],ne=new Map(ee.map(([n,e])=>[C(J(n)),e])),te=C(Q("langString"));function M(n){let e=C(n);return e===te?"langString":ne.get(e)}function re(n){let e=n.trim();if(!/^[+-]?\d+$/.test(e))throw new Error(`canonicalInteger: '${n}' is not a valid xsd:integer lexical`);return BigInt(e.replace(/^\+/,"")).toString()}function ae(n){let e=n.trim(),t=/^([+-]?)(\d*)(?:\.(\d*))?$/.exec(e);if(!t||t[2]===""&&(t[3]??"")==="")throw new Error(`canonicalDecimal: '${n}' is not a valid xsd:decimal lexical`);let a=t[1]==="-"?"-":"",r=(t[2]??"").replace(/^0+/,"")||"0",s=(t[3]??"").replace(/0+$/,""),o=s.length>0?`${r}.${s}`:r;return o==="0"?"0":`${a}${o}`}function H(n,e,t){let a=n.trim();if(a==="NaN")return"NaN";if(a==="INF")return"INF";if(a==="-INF")return"-INF";if(!/^[+-]?(\d+\.?\d*|\.\d+)([eE][+-]?\d+)?$/.test(a))throw new Error(`canonical${t}: '${n}' is not a valid xsd:${t.toLowerCase()} lexical`);let r=e(Number(a));if(!Number.isFinite(r))throw new Error(`canonical${t}: '${n}' is out of the finite range`);return Object.is(r,-0)?"0":String(r)}function oe(n){return H(n,e=>e,"Double")}function ie(n){return H(n,e=>Math.fround(e),"Float")}function se(n){let e=n.trim();if(e==="true"||e==="1")return"true";if(e==="false"||e==="0")return"false";throw new Error(`canonicalBoolean: '${n}' is not a valid xsd:boolean lexical`)}function Y(n){return n.normalize("NFC")}function ce(n){return n.normalize("NFC")}function fe(n){let e=n.trim();if(!/^([0-9A-Fa-f]{2})*$/.test(e))throw new Error(`canonicalHexBinary: '${n}' is not a valid xsd:hexBinary lexical`);return e.toUpperCase()}function pe(n){let e=n.replace(/\s+/g,"");if(!/^[A-Za-z0-9+/]*={0,2}$/.test(e)||e.length%4!==0)throw new Error(`canonicalBase64: '${n}' is not a valid xsd:base64Binary lexical`);return Buffer.from(e,"base64").toString("base64")}var P=n=>n<10?`0${n}`:`${n}`;function E(n){let e=n.startsWith("-"),t=(e?n.slice(1):n).replace(/^0+/,"")||"0",a=t.length<4?t.padStart(4,"0"):t;return`${e?"-":""}${a}`}function X(n){if(!n)return"";let e=n.replace(/^\./,"").replace(/0+$/,"");return e.length>0?`.${e}`:""}function G(n){return n?n==="Z"||n==="+00:00"||n==="-00:00"?"Z":n:""}function ue(n){return n==="Z"?0:(n[0]==="-"?-1:1)*(Number(n.slice(1,3))*60+Number(n.slice(4,6)))}var le=/^(-?\d{4,})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?(Z|[+-]\d{2}:\d{2})?$/,me=/^(-?\d{4,})-(\d{2})-(\d{2})(Z|[+-]\d{2}:\d{2})?$/,de=/^(\d{2}):(\d{2}):(\d{2})(\.\d+)?(Z|[+-]\d{2}:\d{2})?$/;function ge(n){let e=le.exec(n.trim());if(!e)throw new Error(`canonicalDateTime: '${n}' is not a valid xsd:dateTime lexical`);let[,t,a,r,s,o,c,f,u]=e,g=X(f);if(!u)return`${E(t)}-${a}-${r}T${s}:${o}:${c}${g}`;let l=new Date(0);l.setUTCFullYear(Number(t),Number(a)-1,Number(r)),l.setUTCHours(Number(s),Number(o),Number(c),0);let i=new Date(l.getTime()-ue(u)*6e4);return`${E(String(i.getUTCFullYear()))}-${P(i.getUTCMonth()+1)}-${P(i.getUTCDate())}T${P(i.getUTCHours())}:${P(i.getUTCMinutes())}:${P(i.getUTCSeconds())}${g}Z`}function ye(n){let e=me.exec(n.trim());if(!e)throw new Error(`canonicalDate: '${n}' is not a valid xsd:date lexical`);let[,t,a,r,s]=e;return`${E(t)}-${a}-${r}${G(s)}`}function ke(n){let e=de.exec(n.trim());if(!e)throw new Error(`canonicalTime: '${n}' is not a valid xsd:time lexical`);let[,t,a,r,s,o]=e,c=X(s),f=t;return t==="24"&&a==="00"&&r==="00"&&c===""&&(f="00"),`${f}:${a}:${r}${c}${G(o)}`}function Pe(n,e){switch(n){case"integer":return re(e);case"decimal":return ae(e);case"double":return oe(e);case"float":return ie(e);case"boolean":return se(e);case"string":return Y(e);case"anyURI":return ce(e);case"langString":return Y(e);case"dateTime":return ge(e);case"date":return ye(e);case"time":return ke(e);case"hexBinary":return fe(e);case"base64Binary":return pe(e)}}var be=/\[\[([^\[\]\n]+)\]\]/g,he=/\[\[/g,q=/```[\s\S]*?```|`[^`\n]*`/g;function Se(n){let e=[];for(let t of n.matchAll(q))e.push([t.index,t.index+t[0].length]);return e}function ve(n){if(!n||!n.includes("[["))return[];let e=Se(n),t=s=>e.some(([o,c])=>s>=o&&s<c),a=new Set(N(n).map(s=>s.startOffset)),r=[];for(let s of n.matchAll(he)){let o=s.index;if(t(o)||a.has(o))continue;let c=n.slice(o,o+48).replace(/\s+/g," ").trim();r.push({startOffset:o,snippet:c})}return r}function N(n){if(!n||!n.includes("[["))return[];let e=[];for(let r of n.matchAll(q))e.push([r.index,r.index+r[0].length]);let t=r=>e.some(([s,o])=>r>=s&&r<o),a=[];for(let r of n.matchAll(be)){let s=r.index;if(t(s))continue;let o=r[1],c=o.indexOf("|"),f=(c===-1?o:o.slice(0,c)).trim();if(f.length===0)continue;let u=c===-1?"":o.slice(c+1).trim(),g={reference:f,startOffset:s,endOffset:s+r[0].length};u.length>0&&(g.displayText=u),a.push(g)}return a}var W=class{constructor(e){}async parseKanonaks(e){let t=[],a=await e.getAllDocumentsAsync(),r=new F(e),s=new V(r);for(let i of a){let p=i.metadata.namespace_?.toString()??"";for(let[m,y]of Object.entries(i.body)){let d=new x,b=this.resolveCanonicalEntity(m,i,p);d.namespace=b.namespace,d.name=b.name,d.statement=[];let h=await this.parseStatements(y,i,r,s,e);d.statement.push(...h.statements),d.unresolvedPredicates=h.unresolved,t.push(d)}}let o=new Map,c=new Map,f=[];for(let i of t)if(i instanceof x){let p=`${i.namespace}/${i.name}`,m=o.get(p);if(m){let y=c.get(p);for(let d of i.statement){let b=O(d);y.has(b)||(y.add(b),m.statement.push(d))}for(let d of i.unresolvedPredicates)m.unresolvedPredicates.some(b=>b.key===d.key&&b.sourceDoc===d.sourceDoc)||m.unresolvedPredicates.push(d)}else{let y=new Set,d=[];for(let b of i.statement){let h=O(b);y.has(h)||(y.add(h),d.push(b))}i.statement=d,c.set(p,y),o.set(p,i),f.push(i)}}else f.push(i);let u=new Set;for(let i of f)if(i instanceof x){let p=i.namespace||"",m=p.indexOf("/"),y=m>=0?p.slice(0,m):"",d=m>=0?p.slice(m+1):"",b=d.indexOf("@"),h=b>=0?d.slice(0,b):d;u.add(`${y}/${h}/${i.name}`)}let g=i=>u.has(`${i.publisher}/${i.package_}/${i.name}`),l=new Map;for(let i of["core-rdf","core-owl","core-kanonak"]){let p=await e.getDocumentsByNamespaceAsync("kanonak.org",i);l.set(i,L(p).chosen?.metadata.namespace_?.version??void 0)}for(let i of f)i instanceof x&&this.canonicalizeStatementBuiltins(i.statement,g,l);return f}canonicalizeStatementBuiltins(e,t,a){for(let r of e){let s=r.predicate?.subject;if(T(s,t,a),r instanceof D)r.object instanceof k&&T(r.object.subject,t,a);else if(r instanceof $)r.object&&this.canonicalizeStatementBuiltins(r.object.statement,t,a);else if(r instanceof j)for(let o of r.object??[])o instanceof k?T(o.subject,t,a):o instanceof S&&this.canonicalizeStatementBuiltins(o.statement,t,a)}}resolveCanonicalEntity(e,t,a){if(!e.includes(".")||!t.metadata?.imports)return{namespace:a,name:e};let r=e.indexOf("."),s=e.substring(0,r),o=e.substring(r+1);for(let[c,f]of Object.entries(t.metadata.imports))for(let u of f)if((u.alias??u.packageName)===s){let l=u.version;return{namespace:`${c}/${u.packageName}@${l.major}.${l.minor}.${l.patch}`,name:o}}return{namespace:a,name:e}}async parseStatements(e,t,a,r,s){let o=[],c=[];if(typeof e!="object"||e===null||Array.isArray(e))return{statements:o,unresolved:c};let f=t.metadata.namespace_?.toString()??"";for(let[u,g]of Object.entries(e))try{let l=await this.getPropertyMetadata(u,t,a,s,r);if(!l){let p=u.includes(".")?u.slice(u.lastIndexOf(".")+1):u;z(p)||c.push({key:u,sourceDoc:f});continue}let i=await this.parsePropertyValue(u,g,l,t,a,r,s);i&&o.push(i)}catch(l){throw new Error(`Failed to parse property '${u}': ${l.message}`,{cause:l})}return{statements:o,unresolved:c}}async getPropertyMetadata(e,t,a,r,s){let o=await a.resolveEntityAsync(e,t);if(!o)return;let c=o.entity,f=c.type?.toString()??"",u=f.includes(".")?f.substring(f.lastIndexOf(".")+1):f;if(!new Set(["Property","DatatypeProperty","ObjectProperty","AnnotationProperty"]).has(u))return;let l=s.getPropertyTypeClassification(f),i=c.range?.toString(),p;if(l==="ObjectProperty")p="ObjectProperty";else if(l==="DatatypeProperty")p="DatatypeProperty";else{let d=i&&i.includes(".")?i.substring(i.lastIndexOf(".")+1):i??"";(i?s.isKnownXsdDatatypeName(i):!1)||d==="Literal"?p="DatatypeProperty":p="ObjectProperty"}let m;if(i){let d=t;if(o.isImported&&o.definedInNamespace){if(typeof r.getDocumentAsync!="function")throw new Error(`Cannot resolve the range of imported property '${e}': the parse repository cannot fetch defining document '${o.definedInNamespace}'. Thread the real repository through to embedded-object parsing \u2014 no stub, no fallback.`);let h=await r.getDocumentAsync(o.definedInNamespace);if(!h)throw new Error(`Cannot resolve the range of imported property '${e}': defining document '${o.definedInNamespace}' was not found in the repository.`);d=h}m=(await a.resolveEntityAsync(i,d))?.uri}return{propertyUri:o.uri.toString(),propertyType:p,range:i,rangeUri:m,isImported:o.isImported,definedInNamespace:o.definedInNamespace}}async parsePropertyValue(e,t,a,r,s,o,c){let f=a.propertyUri;if(t!=null){if(Array.isArray(t))return this.parseListValue(f,t,a,r,s,o,c);if(a.propertyType==="DatatypeProperty")return this.parseDatatypeValue(f,t,a,r,s,o);if(a.propertyType==="ObjectProperty")return this.parseObjectValue(f,t,a,r,s,o,c)}}async parseDatatypeValue(e,t,a,r,s,o){let c;if(typeof t=="string"){if(o.isSubstitutableDatatype(a.rangeUri))return await this.parseSubstitutableValue(e,t,r,s);c=t}else if(typeof t=="number"||typeof t=="boolean")c=String(t);else return;return this.typedScalarStatement(e,c,a)}typedScalarStatement(e,t,a){let r=k.parse(e),s=a.rangeUri?M(a.rangeUri):void 0;if(s==="boolean"){let c=new v;return c.predicate=r,c.object=t==="true"||t==="1",c.carrier=s,c.lexical=t,c}if(s==="integer"||s==="decimal"||s==="double"||s==="float"){let c=new R;return c.predicate=r,c.object=Number(t),c.carrier=s,c.lexical=t,c}let o=w.parse(e,t);return s&&(o.carrier=s,o.lexical=t),o}typedListLiteral(e,t){let a=new I,r=t.rangeUri?M(t.rangeUri):void 0;return r==="boolean"?a.value=e==="true"||e==="1":r==="integer"||r==="decimal"||r==="double"||r==="float"?a.value=Number(e):a.value=e,r&&(a.carrier=r,a.lexical=e),a}async parseSubstitutableValue(e,t,a,r){let s=new K;s.predicate=k.parse(e),s.object=t;for(let o of N(t)){let c=await r.resolveEntityAsync(o.reference,a),f;c&&(f=new k,f.subject=c.uri);let u={reference:o.reference,startOffset:o.startOffset,endOffset:o.endOffset};o.displayText!==void 0&&(u.displayText=o.displayText),f!==void 0&&(u.target=f),s.links.push(u)}return s}async parseObjectValue(e,t,a,r,s,o,c){if(typeof t=="string"){let f=await this.resolveReference(t,r,s);if(!f)return;let u=new D;return u.predicate=k.parse(e),u.object=f,u}if(typeof t=="object"&&!Array.isArray(t)){let f=await this.parseStatements(t,r,s,o,c);if(f.statements.length>0){let l=new S;l.statement=f.statements,l.unresolvedPredicates=f.unresolved;let i=new $;return i.predicate=k.parse(e),i.object=l,i}let u=[];for(let[l,i]of Object.entries(t))if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let p=new S;p.name=l;let m=await this.parseStatements(i,r,s,o,c);p.statement=m.statements,p.unresolvedPredicates=m.unresolved,u.push(p)}else if(typeof i=="string"){let p=await this.resolveReference(i,r,s);p&&u.push(p)}if(u.length>0){let l=new j;return l.predicate=k.parse(e),l.object=u,l}let g=new $;return g.predicate=k.parse(e),g.object=new S,g}}async parseListValue(e,t,a,r,s,o,c){let f=[],u=a.propertyType==="DatatypeProperty",g=a.rangeUri?.publisher==="kanonak.org"&&a.rangeUri?.package_==="core-rdf"&&a.rangeUri?.name==="List"||!a.rangeUri&&(a.range?.includes(".")?a.range.substring(a.range.lastIndexOf(".")+1):a.range)==="List";for(let i of t){let p=typeof i=="string"||typeof i=="number"||typeof i=="boolean";if(u&&p){let m=typeof i=="string"?i:String(i);f.push(this.typedListLiteral(m,a));continue}if(g&&p){if(typeof i=="string"){let m=await s.resolveEntityAsync(i,r);if(m){let y=new k;y.subject=m.uri,f.push(y)}else{let y=new I;y.value=i,f.push(y)}}else{let m=new I;m.value=i,f.push(m)}continue}if(typeof i=="string"){let m=await this.resolveReference(i,r,s);m&&f.push(m)}else if(typeof i=="object"&&i!==null&&!Array.isArray(i)){let m=new S,y=await this.parseStatements(i,r,s,o,c);m.statement=y.statements,m.unresolvedPredicates=y.unresolved,f.push(m)}}let l=new j;return l.predicate=k.parse(e),l.object=f,l}async resolveReference(e,t,a){let r=await a.resolveEntityAsync(e,t);if(r){let o=new k;return o.subject=r.uri,o}let s=t.metadata?.namespace_;if(s){let{KanonakUri:o}=await import("./KanonakUri-4VJGV3FN.js");if(e.includes(".")){let f=e.indexOf("."),u=e.substring(0,f),g=e.substring(f+1);if(t.metadata?.imports){for(let[l,i]of Object.entries(t.metadata.imports))for(let p of i)if((p.alias??p.packageName)===u){let y=new k;return y.subject=new o(l,p.packageName,g,p.version),y}}}let c=new k;return c.subject=new o(s.publisher,s.package_,e,s.version??void 0),c}return null}async saveKanonaks(e,t){let a=new Map;for(let r of e)r instanceof x&&r.namespace&&(a.has(r.namespace)||a.set(r.namespace,[]),a.get(r.namespace).push(r));for(let[r,s]of a){let o=await this.convertKanonaksToDocument(r,s),c=`${r.split("@")[0]}.yml`;await t.saveDocumentAsync(o,c)}}async serializeToYaml(e,t){let a=e.filter(o=>o instanceof x&&o.namespace===t);if(a.length===0)throw new Error(`No kanonaks found with namespace '${t}'`);let r=await this.convertKanonaksToDocument(t,a);return new U().save(r)}async convertKanonaksToDocument(e,t){let r={metadata:{namespace_:e,get allImports(){if(!this.imports)return[];let o=[];for(let c of Object.values(this.imports))o.push(...c);return o}},body:{}},s=new Map;for(let o of t){let c={};for(let f of o.statement){let[u,g]=this.convertStatementToProperty(f);u&&g!==null&&g!==void 0&&(c[u]=g),this.collectImportsFromStatement(f,e,s)}r.body[o.name]=c}return r}convertStatementToProperty(e){if(e instanceof w)return[e.predicate.subject.name,e.object];if(e instanceof R)return[e.predicate.subject.name,e.object];if(e instanceof v)return[e.predicate.subject.name,e.object];if(e instanceof D)return[e.predicate.subject.name,e.object.subject.name];if(e instanceof j){let t=this.convertKanonakListToValue(e.object);return[e.predicate.subject.name,t]}else if(e instanceof $){let t=this.convertEmbeddedKanonakToValue(e.object);return[e.predicate.subject.name,t]}return[null,null]}convertKanonakListToValue(e){let t=[];for(let a of e)a instanceof k?t.push(a.subject.name):a instanceof S&&t.push(this.convertEmbeddedKanonakToValue(a));return t}convertEmbeddedKanonakToValue(e){let t={};for(let a of e.statement){let[r,s]=this.convertStatementToProperty(a);r&&s!==null&&s!==void 0&&(t[r]=s)}return t}collectImportsFromStatement(e,t,a){}};function O(n){let e=n.predicate?.subject;return(e?`${e.publisher}/${e.package_}/${e.name}`:"?")+"="+xe(n)}function xe(n){return n instanceof K?"m:"+String(n.object):n instanceof w?"s:"+String(n.object):n instanceof R?"n:"+String(n.object):n instanceof v?"b:"+String(n.object):n instanceof D?"r:"+A(n.object):n instanceof $?"e:"+A(n.object):n instanceof j?"l:["+(n.object??[]).map(A).join("|")+"]":"x"}function A(n){if(!n)return"";if(n instanceof k){let e=n.subject;return"R("+(e?`${e.publisher}/${e.package_}/${e.name}`:"")+")"}return n instanceof S?"E("+(n.statement??[]).map(O).join(";")+")":n instanceof I?"L("+String(n.value)+")":"N"}export{S as a,I as b,K as c,Z as d,M as e,Pe as f,ve as g,N as h,W as i};
|