@kanonak-protocol/sdk 5.37.0 → 6.0.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/CredentialProvider.d.ts +69 -49
- package/dist/auth/ExecCredentialProvider.d.ts +55 -0
- package/dist/auth/OAuthDiscovery.d.ts +38 -10
- package/dist/auth/TokenCredentialProvider.d.ts +26 -6
- package/dist/auth/challenges.d.ts +17 -0
- package/dist/auth/credentialAnswer.d.ts +34 -0
- package/dist/auth/credentialConfig.d.ts +32 -0
- package/dist/auth/credentialedFetch.d.ts +33 -22
- package/dist/auth/index.d.ts +10 -4
- package/dist/auth/scope.d.ts +30 -0
- package/dist/browser.d.ts +4 -2
- package/dist/browser.js +1 -1
- package/dist/chunk-22DSABP6.js +1 -0
- package/dist/{chunk-HKX27KBZ.js → chunk-7F2EAT5Y.js} +1 -1
- package/dist/{chunk-LE26SEJU.js → chunk-A3HRXFVX.js} +1 -1
- package/dist/{chunk-4CXAZH3C.js → chunk-ADSDFJUO.js} +1 -1
- package/dist/{chunk-W5AOJ5SJ.js → chunk-GKIX3OD6.js} +1 -1
- package/dist/chunk-HKQTB65D.js +2 -0
- package/dist/{chunk-R4QCVB5M.js → chunk-O6SOU5Y2.js} +1 -1
- package/dist/chunk-PNBTIGX7.js +2 -0
- package/dist/{chunk-DONOB6RA.js → chunk-SBO34ENZ.js} +1 -1
- package/dist/chunk-TYVZXABI.js +155 -0
- package/dist/http/HttpError.d.ts +38 -0
- package/dist/http/kanonakFetch.d.ts +5 -2
- package/dist/index.d.ts +8 -2
- package/dist/index.js +2 -1
- package/dist/parsing/index.js +1 -1
- package/dist/producer/index.js +1 -1
- package/dist/reasoning/index.js +1 -1
- package/dist/repositories/browser.js +1 -1
- package/dist/repositories/index.js +1 -1
- package/dist/search/index.js +1 -1
- package/dist/server/index.js +5 -5
- package/dist/transformations/index.js +2 -2
- package/dist/transformations/v3/CompiledTransformationV3.d.ts +28 -27
- package/dist/transformations/v3/TransformationUriConstantsV3.d.ts +27 -0
- package/dist/validation/index.js +1 -1
- package/package.json +5 -4
- package/vectors/credential-helper-vectors.json +1039 -0
- package/dist/chunk-2WUZKSLB.js +0 -2
- package/dist/chunk-3353RWDC.js +0 -1
- package/dist/chunk-EG47OOJC.js +0 -155
- package/dist/chunk-OOYGILH4.js +0 -2
package/dist/chunk-2WUZKSLB.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{e as R}from"./chunk-OOYGILH4.js";import{j as G}from"./chunk-3353RWDC.js";import{ma as S,pa as j}from"./chunk-NUTHBBDZ.js";import{c as N,o as F}from"./chunk-D4QGPMRW.js";var z=(r=>(r.Class="Class",r.DatatypeProperty="DatatypeProperty",r.ObjectProperty="ObjectProperty",r.AnnotationProperty="AnnotationProperty",r.Instance="Instance",r.Datatype="Datatype",r.Shape="Shape",r.Unknown="Unknown",r))(z||{}),L=(r=>(r.InstanceOf="instanceOf",r.SubClassOf="subClassOf",r.Domain="domain",r.Range="range",r.ObjectRelationship="objectRelationship",r.SubPropertyOf="subPropertyOf",r.PropertyValue="propertyValue",r.EmbeddedLink="embeddedLink",r))(L||{}),$=class{static async buildFromRepository(e,n){let i=await new G().parseKanonaks(e),s=await e.getAllDocumentsAsync(),p=[],a=[],r=new Set,d=new Set,y=new Map;for(let f of i){let c=f;if(c.name&&(S.isClassType(c)&&r.add(c.name),f instanceof N)){let l=j(i,f);(l==="ObjectProperty"||l==="Property")&&d.add(c.name)}}for(let f of s)for(let[c,l]of Object.entries(f.body))d.has(c)&&l?.range&&typeof l.range=="string"&&y.set(c,l.range);let g=new Map;for(let f of i){let c=f;c.name&&g.set(c.name,c)}for(let f of s){let c=f.metadata.namespace_,l=c?`${c.publisher}/${c.package_}`:"",m=c?.version?`${c.version.major}.${c.version.minor}.${c.version.patch}`:"",O=U(f);for(let[h,u]of Object.entries(f.body)){if(!u||typeof u!="object")continue;let b=g.get(h),k="Unknown";if(b){let T=b,A=b instanceof N?j(i,b):void 0;S.isClassType(T)?k="Class":A==="ObjectProperty"?k="ObjectProperty":A==="DatatypeProperty"?k="DatatypeProperty":A==="AnnotationProperty"?k="AnnotationProperty":S.isDatatypeType(T)?k="Datatype":A==="Property"?k="ObjectProperty":S.isShapeType(T)?k="Shape":S.isInstanceOfKnownClass(T,r)&&(k="Instance")}let P=l&&m?`${l}/${h}@${m}`:h,I={};for(let[T,A]of Object.entries(u))T!=="type"&&(typeof A!="object"||A===null)&&(I[T]=A);p.push({id:P,label:u.label??h,type:k,namespace:l,properties:I}),K(P,u,k,r,d,a,l,m,O,n),D(P,u,d,y,p,a,l,m,O),Q(P,b,a)}}return{nodes:p,edges:a}}static buildFromDocument(e,n){let o=[],i=[],s=e.metadata.namespace_,p=s?.version?`${s.version.major}.${s.version.minor}.${s.version.patch}`:"",a=s?`${s.publisher}/${s.package_}`:"",r=new Set,d=new Set,y=new Map,g=U(e);for(let[l,m]of Object.entries(e.body)){let O=m?.type;O&&(Y(O,g)&&r.add(l),J(O,g)&&(d.add(l),m.range&&typeof m.range=="string"&&y.set(l,m.range)))}for(let[l,m]of Object.entries(e.body)){if(!m||typeof m!="object")continue;let O=m.type,h=X(O,l,r,g),u=a&&p?`${a}/${l}@${p}`:l,b={};for(let[k,P]of Object.entries(m))k!=="type"&&(typeof P!="object"||P===null)&&(b[k]=P);o.push({id:u,label:m.label??l,type:h,namespace:a,properties:b}),K(u,m,h,r,d,i,a,p,g,n),D(u,m,d,y,o,i,a,p,g)}let f=new Set(o.map(l=>l.id)),c=i.filter(l=>f.has(l.source)&&f.has(l.target));return{nodes:o,edges:c}}};function U(t,e){let n=new Map;if(t.metadata?.imports)for(let[o,i]of Object.entries(t.metadata.imports))for(let s of i){let p=s.alias??s.packageName,a=s.version,r=`${a.major}.${a.minor}.${a.patch}`;n.set(p,{publisher:o,package_:s.packageName,version:r})}return n}var B={"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"},W=new Set(["kanonak.org/core-owl/ObjectProperty","kanonak.org/core-owl/DatatypeProperty","kanonak.org/core-owl/AnnotationProperty","kanonak.org/core-rdf/Property"]);function M(t,e){if(t.includes(".")){let n=t.indexOf("."),o=t.substring(0,n),i=t.substring(n+1),s=e.get(o);if(s)return`${s.publisher}/${s.package_}/${i}`}return null}function Y(t,e){let n=M(t,e);return n?B[n]==="Class":!1}function J(t,e){let n=M(t,e);return n?W.has(n):!1}function X(t,e,n,o){if(!t||t==="Package")return"Unknown";let i=M(t,o);if(i){let p=B[i];if(p)return p;let a=i.split("/").pop()?.split("@")[0]??"";return n.has(a)?"Instance":"Unknown"}let s=t.split(".").pop()??t;return n.has(s)?"Instance":"Unknown"}var V=new Set(["type","label","comment","version","publisher","imports","license","match","alias","package"]);function K(t,e,n,o,i,s,p,a,r,d){let y=e.type,g=e.subClassOf;if(g){let h=Array.isArray(g)?g:[g];for(let u of h)typeof u=="string"&&s.push({source:t,target:v(u,p,a,r),type:"subClassOf",label:"subClassOf"})}let f=e.subPropertyOf;if(f){let h=Array.isArray(f)?f:[f];for(let u of h)typeof u=="string"&&s.push({source:t,target:v(u,p,a,r),type:"subPropertyOf",label:"subPropertyOf"})}let c=e.domain,l=e.range;if(d?.includePropertyEdges){let h=[[c,"domain","domain"],[l,"range","range"]];for(let[u,b,k]of h)if(u!=null)for(let P of Array.isArray(u)?u:[u])typeof P=="string"&&s.push({source:t,target:v(P,p,a,r),type:b,label:k})}if(n==="Instance"&&y){let h=y.split(".").pop()??y;s.push({source:t,target:v(h,p,a,r),type:"instanceOf",label:"type"})}if(n==="Instance")for(let[h,u]of Object.entries(e)){if(V.has(h)||!i.has(h))continue;let b=Array.isArray(u)?u:[u];for(let k of b)typeof k=="string"&&Z(k)&&s.push({source:t,target:v(k,p,a,r),type:"propertyValue",label:h,propertyId:v(h,p,a,r)})}if((n==="ObjectProperty"||n==="DatatypeProperty"||c&&l)&&c&&l){let h=typeof c=="string"?c:null,u=typeof l=="string"?l:null;h&&u&&s.push({source:v(h,p,a,r),target:v(u,p,a,r),type:"objectRelationship",label:e.label??t.split("/").pop()??"",propertyId:t})}}function D(t,e,n,o,i,s,p,a,r){for(let[d,y]of Object.entries(e)){if(V.has(d)||typeof y!="object"||y===null||Array.isArray(y))continue;let g=y,f=`${t}/${d}`,c=o.get(d),l=c?c.split(".").pop()??c:"Unknown",m={};for(let[h,u]of Object.entries(g))(typeof u!="object"||u===null)&&(m[h]=u);i.push({id:f,label:`${l} (embedded)`,type:"Instance",namespace:p,properties:m});let O=p&&a?`${p}/${d}@${a}`:d;s.push({source:t,target:f,type:"propertyValue",label:d,propertyId:n.has(d)?O:void 0}),c&&s.push({source:f,target:v(l,p,a,r),type:"instanceOf",label:"type (inferred)"}),D(f,g,n,o,i,s,p,a,r)}}function Q(t,e,n){let o=e?.statement;if(Array.isArray(o))for(let i of o){if(!(i instanceof F))continue;let s=i.predicate?.subject?.name??"";for(let p of i.links){let a=p.target?.subject;if(!a)continue;let r=a.version,d=r&&typeof r.major=="number"?`@${r.major}.${r.minor}.${r.patch}`:"";n.push({source:t,target:`${a.publisher}/${a.package_}/${a.name}${d}`,type:"embeddedLink",label:s})}}}function Z(t){return!(!t||t.includes(" ")||t.includes(`
|
|
2
|
-
`)||t.startsWith("http://")||t.startsWith("https://")||/^\d{4}-\d{2}/.test(t)||/^\d+(\.\d+)?$/.test(t))}function v(t,e,n,o){if(t.includes("@")&&t.includes("/"))return t;if(t.includes(".")){let i=t.indexOf("."),s=t.substring(0,i),p=t.substring(i+1);if(o){let a=o.get(s);if(a)return`${a.publisher}/${a.package_}/${p}@${a.version}`}return e&&n?`${e}/${p}@${n}`:p}return e&&n?`${e}/${t}@${n}`:t}function _(t){let e=t.replace(/^https?:\/\//,"").replace(/^git:\/\//,"").replace(/\/+$/,"").trim();if(!e)throw new Error("Publisher host cannot be empty");return e}var ee="key_thumbprint",E=class{cache=new Map;prCache=new Map;async discoverProtectedResource(e){let n=_(e);if(this.prCache.has(n))return this.prCache.get(n);let o=`https://${n}/.well-known/oauth-protected-resource`,i=await te(o),s=i&&Array.isArray(i.authorization_servers)?i.authorization_servers.filter(a=>typeof a=="string"):[],p=s.length>0?s:null;return this.prCache.set(n,p),p}async discover(e){let n=_(e);if(this.cache.has(n))return this.cache.get(n);let o=`https://${n}/.well-known/oauth-authorization-server`,i=await this.tryEndpoint(o);if(!i){let s=`https://${n}/.well-known/openid-configuration`;i=await this.tryEndpoint(s)}return this.cache.set(n,i),i}async supportsOAuth(e){return await this.discover(e)!==null}static supportsPkceS256(e){return e.codeChallengeMethodsSupported?.some(n=>n.toUpperCase()==="S256")??!1}static supportsDynamicRegistration(e){return!!e.registrationEndpoint}static supportsAuthorizationCode(e){return e.responseTypesSupported?.some(n=>n.toLowerCase()==="code")??!1}static supportsEnrollment(e){return!!e.enrollmentEndpoint}static supportsSession(e){return!!e.sessionEndpoint}async tryEndpoint(e){let n;try{n=await fetch(e)}catch(i){let s=i instanceof Error?i.message:String(i);return s.includes("ENOTFOUND")||s.includes("ECONNREFUSED")?(console.error(` OAuth discovery: ${e} \u2014 host unreachable (${s})`),console.error(" If the server is behind a VPN, ensure you are connected.")):s.includes("CERT")||s.includes("SSL")||s.includes("TLS")?(console.error(` OAuth discovery: ${e} \u2014 TLS error (${s})`),console.error(" If using a custom CA certificate, set NODE_EXTRA_CA_CERTS=/path/to/ca.pem")):console.error(` OAuth discovery: ${e} \u2014 network error: ${s}`),null}if(!n.ok)return n.status===404||(n.status===403?(console.error(` OAuth discovery: ${e} \u2014 HTTP 403 Forbidden`),console.error(" Access may be blocked by a firewall, proxy, or WAF.")):n.status>=500&&(console.error(` OAuth discovery: ${e} \u2014 HTTP ${n.status} server error`),console.error(" The authorization server returned an internal error. Contact your IDP administrator."))),null;let o;try{o=await n.json()}catch{return console.error(` OAuth discovery: ${e} \u2014 response is not valid JSON`),console.error(" The endpoint may be returning HTML instead of JSON. Check IDP configuration."),null}return{issuer:C(o.issuer),authorizationEndpoint:C(o.authorization_endpoint),tokenEndpoint:C(o.token_endpoint),registrationEndpoint:C(o.registration_endpoint),revocationEndpoint:C(o.revocation_endpoint),scopesSupported:w(o.scopes_supported),responseTypesSupported:w(o.response_types_supported),grantTypesSupported:w(o.grant_types_supported),codeChallengeMethodsSupported:w(o.code_challenge_methods_supported),tokenEndpointAuthMethodsSupported:w(o.token_endpoint_auth_methods_supported),dpopSigningAlgValuesSupported:w(o.dpop_signing_alg_values_supported),enrollmentEndpoint:C(o.enrollment_endpoint),enrollmentIssuanceProtocols:w(o.enrollment_issuance_protocols),enrollmentKeyTypes:w(o.enrollment_key_types),enrollmentScopesSupported:w(o.enrollment_scopes_supported),enrollmentConsentBindingParam:C(o.enrollment_consent_binding_param),sessionEndpoint:C(o.session_endpoint),sessionEndpointAuthMethod:C(o.session_endpoint_auth_method)}}};async function te(t){try{let e=await fetch(t);return e.ok?await e.json():null}catch{return null}}function C(t){return typeof t=="string"?t:null}function w(t){return Array.isArray(t)?t.filter(e=>typeof e=="string"):null}function H(t){let e=t.headers.get("WWW-Authenticate")??void 0,n=t.headers.get("DPoP-Nonce")??void 0;if(!e&&!n)return;let o={wwwAuthenticate:e??""};if(n&&(o.nonce=n),e){let i=e.match(/acr_values\s*=\s*"([^"]*)"/i);i&&(o.acrValues=i[1])}return o}function ne(t){try{return new URL(t).host}catch{return null}}function re(t,e={}){let n=e.discovery??new E,o=new Map,i=new Map,s=async r=>{let d=o.get(r);if(d!==void 0)return d;let y=null,g=await n.discoverProtectedResource(r).catch(()=>null);return g&&g.length>0&&(y=ne(g[0])),o.set(r,y),y},p=async(r,d)=>{if(!t)return null;if(!(d.forceRefresh||d.challenge)&&i.has(r))return i.get(r);let g=await t.resolve(r,d).catch(()=>null);return i.set(r,g),g},a=async(r,d,y,g)=>{let f=await s(d);if(!f)return{res:await R(r,{method:y,redirect:"manual"}),authed:!1};let c=await p(f,{method:y,url:r,...g}),l=c?.headers??{};return{res:await R(r,{method:y,redirect:"manual",headers:l}),authed:!!c}};return async(r,d,y="GET")=>{let g=await a(r,d,y,{});if((g.res.status===401||g.res.status===403)&&g.authed){let f=H(g.res),c={forceRefresh:f===void 0};return f&&(c.challenge=f),(await a(r,d,y,c)).res}return g.res}}var q="KANONAK_TOKEN";function oe(){return typeof process<"u"&&process.env?process.env:{}}function se(t){return`${q}_${t.toUpperCase().replace(/[^A-Z0-9]+/g,"_")}`}var x=class{tokens;env;constructor(e={}){this.tokens=e.tokens??{},this.env=e.env??oe()}async resolve(e,n){let o=_(e),i=this.tokens[o]??this.env[se(o)]??this.env[q];return i?{headers:{Authorization:`Bearer ${i}`}}:null}};export{z as a,L as b,$ as c,_ as d,ee as e,E as f,H as g,re as h,x as i};
|
package/dist/chunk-3353RWDC.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as G}from"./chunk-7JBKOJB4.js";import{a as q,b as H,fa as Y,ga as U,ha as Q,ja as M,pa as te}from"./chunk-NUTHBBDZ.js";import{J as Z,K as ee,c as K,d as S,e as k,f as D,g as X,i as I,j as L,k as T,l as v,m as P,n as R,o as A,r as N,s as x,z as J}from"./chunk-D4QGPMRW.js";import{a as O}from"./chunk-FUUTGGJS.js";import{b as W}from"./chunk-F67UH4FD.js";import{k as z}from"./chunk-QILEJIFU.js";function ne(f,t){for(let n of f)n instanceof K&&re(n,Z(n),n.name,t)}function re(f,t,n,r){let a=t.indexOf("#");r({kanonak:f,address:t,path:a<0?n:`${n}.${t.slice(a+1)}`});for(let s of se(f))for(let{value:o,address:c}of ee(f,s,t))o.item instanceof S&&re(o.item,c,n,r)}function se(f){let t=new Map;for(let n of f.statement){let r=n.predicate?.subject;if(!r)continue;let a=`${r.publisher}/${r.package_}/${r.name}`;t.has(a)||t.set(a,r)}return[...t.values()]}var ie="kanonak.org",ce="transformations",Re=3,e=f=>({publisher:ie,package_:ce,name:f}),E={Transformation:e("Transformation"),InstanceTransformation:e("InstanceTransformation"),SetTransformation:e("SetTransformation"),inputPattern:e("inputPattern"),rule:e("rule"),artifactName:e("artifactName"),outputs:e("outputs"),formatOverrides:e("formatOverrides"),partitionBy:e("partitionBy"),InputPattern:e("InputPattern"),matchesClass:e("matchesClass"),requires:e("requires"),sortBy:e("sortBy"),SortKey:e("SortKey"),byProperty:e("byProperty"),order:e("order"),SortOrder:e("SortOrder"),ascending:e("ascending"),descending:e("descending"),OutputFormat:e("OutputFormat"),backendUri:e("backendUri"),FormatOverride:e("FormatOverride"),formatTarget:e("formatTarget"),metadataKeys:e("metadataKeys"),metadataRenames:e("metadataRenames"),trailingNewline:e("trailingNewline"),omitWrapper:e("omitWrapper"),RenameEntry:e("RenameEntry"),fromKey:e("fromKey"),toKey:e("toKey"),FMT_MARKDOWN_FRONTMATTER:e("markdown-with-frontmatter"),FMT_PLAIN_MARKDOWN:e("plain-markdown"),FMT_TOML:e("toml"),FMT_JSON:e("json"),FMT_HTML:e("html"),FMT_SVG:e("svg"),Expression:e("Expression"),ListSourcedExpression:e("ListSourcedExpression"),ListAggregate:e("ListAggregate"),IteratingExpression:e("IteratingExpression"),BuildAstNode:e("BuildAstNode"),astClass:e("astClass"),set:e("set"),AstFieldBinding:e("AstFieldBinding"),field:e("field"),bindValue:e("bindValue"),When:e("When"),condition:e("condition"),thenBuild:e("thenBuild"),elseBuild:e("elseBuild"),Concat:e("Concat"),parts:e("parts"),Fallback:e("Fallback"),primary:e("primary"),alternate:e("alternate"),StringLiteral:e("StringLiteral"),stringLiteral:e("stringLiteral"),IntegerLiteral:e("IntegerLiteral"),integerLiteral:e("integerLiteral"),DecimalLiteral:e("DecimalLiteral"),decimalLiteral:e("decimalLiteral"),BooleanLiteral:e("BooleanLiteral"),booleanLiteral:e("booleanLiteral"),VarRef:e("VarRef"),varName:e("varName"),PropertyRead:e("PropertyRead"),readSource:e("readSource"),readProp:e("readProp"),Traverse:e("Traverse"),traverseSource:e("traverseSource"),through:e("through"),step:e("step"),UriName:e("UriName"),uriNameOf:e("uriNameOf"),UriPublisher:e("UriPublisher"),uriPublisherOf:e("uriPublisherOf"),UriPackage:e("UriPackage"),uriPackageOf:e("uriPackageOf"),UriVersion:e("UriVersion"),uriVersionOf:e("uriVersionOf"),SubjectUri:e("SubjectUri"),subjectOf:e("subjectOf"),UriLiteral:e("UriLiteral"),refTo:e("refTo"),DisplayLabel:e("DisplayLabel"),labelTarget:e("labelTarget"),labelSource:e("labelSource"),ResolveRef:e("ResolveRef"),resolveSource:e("resolveSource"),Normalize:e("Normalize"),normSource:e("normSource"),normKind:e("normKind"),NormalizeKind:e("NormalizeKind"),NORM_TRIM_END:e("trim-end"),NORM_TO_UPPER:e("to-upper"),NORM_TO_LOWER:e("to-lower"),NORM_FIRST_CHAR:e("first-char"),UnescapedString:e("UnescapedString"),unescapedSource:e("unescapedSource"),IsSet:e("IsSet"),checkExpr:e("checkExpr"),ExpressionFragment:e("ExpressionFragment"),body:e("body"),CallFragment:e("CallFragment"),fragmentRef:e("fragmentRef"),source:e("source"),Join:e("Join"),separator:e("separator"),Count:e("Count"),Sum:e("Sum"),Min:e("Min"),Max:e("Max"),Average:e("Average"),loopVar:e("loopVar"),ForEach:e("ForEach"),emit:e("emit"),ListMap:e("ListMap"),mapBody:e("mapBody"),Filter:e("Filter"),predicate:e("predicate"),PartitionBy:e("PartitionBy"),partitionKey:e("partitionKey"),DistinctBy:e("DistinctBy"),distinctKey:e("distinctKey"),Partition:e("Partition"),key:e("key"),members:e("members"),AllStatements:e("AllStatements"),statementsOf:e("statementsOf"),StatementPredicate:e("StatementPredicate"),predicateOf:e("predicateOf"),StatementValue:e("StatementValue"),valueOf:e("valueOf"),DateFormat:e("DateFormat"),dateSource:e("dateSource"),dateFormat:e("dateFormat"),NumberFormat:e("NumberFormat"),numberSource:e("numberSource"),numberStyle:e("numberStyle"),fractionDigits:e("fractionDigits"),currencyCode:e("currencyCode"),BinaryArithmetic:e("BinaryArithmetic"),arithLeft:e("arithLeft"),arithRight:e("arithRight"),Add:e("Add"),Subtract:e("Subtract"),Multiply:e("Multiply"),Divide:e("Divide"),Reverse:e("Reverse"),WindowedMap:e("WindowedMap"),windowSize:e("windowSize"),windowVar:e("windowVar"),windowBody:e("windowBody"),PairwiseMap:e("PairwiseMap"),firstVar:e("firstVar"),secondVar:e("secondVar"),pairBody:e("pairBody"),Scan:e("Scan"),initialState:e("initialState"),stateVar:e("stateVar"),elementVar:e("elementVar"),accumulate:e("accumulate"),ListItemAt:e("ListItemAt"),itemIndex:e("itemIndex"),BinaryComparison:e("BinaryComparison"),compareLeft:e("compareLeft"),compareRight:e("compareRight"),Equals:e("Equals"),GreaterThan:e("GreaterThan"),LessThan:e("LessThan"),GreaterThanOrEqual:e("GreaterThanOrEqual"),LessThanOrEqual:e("LessThanOrEqual"),Not:e("Not"),operand:e("operand"),BooleanLogic:e("BooleanLogic"),operands:e("operands"),And:e("And"),Or:e("Or"),Contains:e("Contains"),haystack:e("haystack"),needle:e("needle"),UnaryNumericOp:e("UnaryNumericOp"),value:e("value"),Abs:e("Abs"),Negate:e("Negate"),KindPredicate:e("KindPredicate"),IsReference:e("IsReference"),IsEmbedded:e("IsEmbedded"),IsList:e("IsList"),kindCheck:e("kindCheck"),IsString:e("IsString"),IsNumber:e("IsNumber"),IsBoolean:e("IsBoolean"),StatementObject:e("StatementObject"),statementSource:e("statementSource"),Let:e("Let"),letName:e("letName"),letValue:e("letValue"),letBody:e("letBody"),GetStatementByName:e("GetStatementByName"),inSubject:e("inSubject"),byName:e("byName"),RenderMarkdown:e("RenderMarkdown"),renderSource:e("renderSource"),renderProp:e("renderProp"),renderFormat:e("renderFormat"),RenderFormat:e("RenderFormat"),RENDER_HTML:e("render-html"),RENDER_MARKDOWN:e("render-markdown")};import{Carrier as w,carrierOf as pe}from"@kanonak-protocol/canonical";function _(f){return pe(`${f.publisher}/${f.package_}/${f.name}`)}var fe=/\[\[([^\[\]\n]+)\]\]/g,me=/\[\[/g,ae=/```[\s\S]*?```|`[^`\n]*`/g;function ue(f){let t=[];for(let n of f.matchAll(ae))t.push([n.index,n.index+n[0].length]);return t}function De(f){if(!f||!f.includes("[["))return[];let t=ue(f),n=s=>t.some(([o,c])=>s>=o&&s<c),r=new Set(V(f).map(s=>s.startOffset)),a=[];for(let s of f.matchAll(me)){let o=s.index;if(n(o)||r.has(o))continue;let c=f.slice(o,o+48).replace(/\s+/g," ").trim();a.push({startOffset:o,snippet:c})}return a}function V(f){if(!f||!f.includes("[["))return[];let t=[];for(let a of f.matchAll(ae))t.push([a.index,a.index+a[0].length]);let n=a=>t.some(([s,o])=>a>=s&&a<o),r=[];for(let a of f.matchAll(fe)){let s=a.index;if(n(s))continue;let o=a[1],c=o.indexOf("|"),p=(c===-1?o:o.slice(0,c)).trim();if(p.length===0)continue;let i=c===-1?"":o.slice(c+1).trim(),m={reference:p,startOffset:s,endOffset:s+a[0].length};i.length>0&&(m.displayText=i),r.push(m)}return r}import{VersionOperator as le}from"@kanonak-protocol/types/document/models/enums";var de={...U("range"),name:"range"};function ye(f){let t=f.lastIndexOf(".");return t===-1?f:f.slice(t+1)}var oe=class{constructor(t){}async parseKanonaks(t,n){let r=await t.getAllDocumentsAsync(),a=new q(t),s=new H(a);this.knownPropertyClasses.clear();let o=await this.parseAllDocumentsAsync(r,a,s,t),c=await this.mergeAndCanonicalizeAsync(o,t);return await this.learnPropertyClassesAsync(c,r,a)&&(o=await this.parseAllDocumentsAsync(r,a,s,t),c=await this.mergeAndCanonicalizeAsync(o,t)),n&&(n.authored=o),c}knownPropertyClasses=new Map;async learnPropertyClassesAsync(t,n,r){let a=new Map;for(let p of n){let i=p.metadata.namespace_?.toString();i&&a.set(i,p)}let s=[],o=new Set;ne(t,({kanonak:p})=>{for(let i of p.unresolvedPredicates){let m=`${i.sourceDoc}::${i.key}`;o.has(m)||(o.add(m),s.push(i))}});let c=!1;for(let p of s){let i=a.get(p.sourceDoc);if(!i)continue;let m=await r.resolveEntityAsync(p.key,i);if(!m)continue;let l=N(m.uri);if(this.knownPropertyClasses.has(l))continue;let d=J(t,m.uri);if(!d)continue;let u=te(t,d);u&&(this.knownPropertyClasses.set(l,u),c=!0)}return c}async parseAllDocumentsAsync(t,n,r,a){let s=[];for(let o of t){let c=o.metadata.namespace_?.toString()??"";for(let[p,i]of Object.entries(o.body)){let m=new K,l=this.resolveCanonicalEntity(p,o,c);m.namespace=l.namespace,m.name=l.name,m.sourceKey=p,m.statement=[];let d=await this.parseStatements(i,o,n,r,a);m.statement.push(...d.statements),m.unresolvedPredicates=d.unresolved,C(m,c),s.push(m)}}return s}async mergeAndCanonicalizeAsync(t,n){let r=new Map,a=new Map,s=[];for(let i of t)if(i instanceof K){let m=`${i.namespace}/${i.name}`,l=r.get(m);if(l){let d=a.get(m);for(let u of i.statement){let g=F(u);d.has(g)||(d.add(g),l.statement.push(u))}for(let u of i.unresolvedPredicates)l.unresolvedPredicates.some(g=>g.key===u.key&&g.sourceDoc===u.sourceDoc)||l.unresolvedPredicates.push(u)}else{let d=new K;d.namespace=i.namespace,d.name=i.name,d.sourceDoc=i.sourceDoc,i.sourceKey!==void 0&&(d.sourceKey=i.sourceKey);let u=new Set;for(let g of i.statement){let h=F(g);u.has(h)||(u.add(h),d.statement.push(g))}d.unresolvedPredicates=[...i.unresolvedPredicates],a.set(m,u),r.set(m,d),s.push(d)}}else s.push(i);let o=new Set;for(let i of s)if(i instanceof K){let m=i.namespace||"",l=m.indexOf("/"),d=l>=0?m.slice(0,l):"",u=l>=0?m.slice(l+1):"",g=u.indexOf("@"),h=g>=0?u.slice(0,g):u;o.add(`${d}/${h}/${i.name}`)}let c=i=>o.has(`${i.publisher}/${i.package_}/${i.name}`),p=new Map;for(let i of Q()){let m=await n.getDocumentsByNamespaceAsync(i.publisher,i.package_);p.set(i.package_,z(m).chosen?.metadata.namespace_?.version??void 0)}for(let i of t)i instanceof K&&this.canonicalizeStatementBuiltins(i.statement,c,p);return s}canonicalizeStatementBuiltins(t,n,r){for(let a of t){let s=a.predicate?.subject;if(M(s,n,r),a instanceof v)a.object instanceof k&&M(a.object.subject,n,r);else if(a instanceof P)a.object&&this.canonicalizeStatementBuiltins(a.object.statement,n,r);else if(a instanceof R)for(let o of a.object??[])o instanceof k?M(o.subject,n,r):o instanceof S&&this.canonicalizeStatementBuiltins(o.statement,n,r)}}resolveCanonicalEntity(t,n,r){if(!t.includes(".")||!n.metadata?.imports)return{namespace:r,name:t};let a=t.indexOf("."),s=t.substring(0,a),o=t.substring(a+1);for(let[c,p]of Object.entries(n.metadata.imports))for(let i of p)if((i.alias??i.packageName)===s){let l=i.version;return{namespace:`${c}/${i.packageName}@${l.major}.${l.minor}.${l.patch}`,name:o}}return{namespace:r,name:t}}async parseStatements(t,n,r,a,s){let o=[],c=[];if(typeof t!="object"||t===null||Array.isArray(t))return{statements:o,unresolved:c};let p=n.metadata.namespace_?.toString()??"";for(let[i,m]of Object.entries(t))try{let l=await this.getPropertyMetadata(i,n,r,s,a);if(!l){let u=i.includes(".")?i.slice(i.lastIndexOf(".")+1):i;Y(u)||c.push({key:i,sourceDoc:p});continue}let d=await this.parsePropertyValue(i,m,l,n,r,a,s);d&&(d instanceof X&&(d.sourceKey=i),o.push(d))}catch(l){throw new Error(`Failed to parse property '${i}': ${l.message}`,{cause:l})}return{statements:o,unresolved:c}}async getPropertyMetadata(t,n,r,a,s){let o=await r.resolveEntityAsync(t,n);if(!o)return;let c=o.entity,p=c.type?.toString()??"",i=p.includes(".")?p.substring(p.lastIndexOf(".")+1):p,m=new Set(["Property","DatatypeProperty","ObjectProperty","AnnotationProperty"]),l=this.knownPropertyClasses.get(N(o.uri));if(!m.has(i)&&!l)return;let d=l??s.getPropertyTypeClassification(p),u,g=async()=>{if(u)return u;if(!(o.isImported&&o.definedInNamespace))return u=n,n;if(typeof a.getDocumentAsync!="function")throw new Error(`Cannot resolve the range of imported property '${t}': the parse repository cannot fetch defining document '${o.definedInNamespace}'. Thread the real repository through to embedded-object parsing \u2014 no stub, no fallback.`);let j=await a.getDocumentAsync(o.definedInNamespace);if(!j)throw new Error(`Cannot resolve the range of imported property '${t}': defining document '${o.definedInNamespace}' was not found in the repository.`);return u=j,j},h=await this.readDefinitionSlot(c,de,g,r),y=h==null?void 0:String(h),b;if(d==="ObjectProperty")b="ObjectProperty";else if(d==="DatatypeProperty")b="DatatypeProperty";else{let j=y&&y.includes(".")?y.substring(y.lastIndexOf(".")+1):y??"";(y?s.isKnownXsdDatatypeName(y):!1)||j==="Literal"?b="DatatypeProperty":b="ObjectProperty"}let $;return y&&($=(await r.resolveEntityAsync(y,await g()))?.uri),{propertyUri:o.uri.toString(),propertyType:b,range:y,rangeUri:$,isImported:o.isImported,definedInNamespace:o.definedInNamespace}}async readDefinitionSlot(t,n,r,a){let s=Object.keys(t).filter(i=>ye(i)===n.name);if(s.length===0)return;let o=await r(),c=U(n.name),p=c!==void 0&&c.publisher===n.publisher&&c.package_===n.package_;for(let i of s){let m=await a.resolveEntityAsync(i,o);if(m){if(x(m.uri,n))return t[i];continue}if(!i.includes(".")&&p)return t[i]}}async parsePropertyValue(t,n,r,a,s,o,c){let p=r.propertyUri;if(n!=null){if(Array.isArray(n))return this.parseListValue(p,n,r,a,s,o,c);if(r.propertyType==="DatatypeProperty")return this.parseDatatypeValue(p,n,r,a,s,o);if(r.propertyType==="ObjectProperty")return this.parseObjectValue(p,n,r,a,s,o,c)}}async parseDatatypeValue(t,n,r,a,s,o){let c;if(typeof n=="string"){if(o.isSubstitutableDatatype(r.rangeUri))return await this.parseSubstitutableValue(t,n,a,s);c=n}else if(typeof n=="number"||typeof n=="boolean")c=String(n);else return;return this.typedScalarStatement(t,c,r)}typedScalarStatement(t,n,r){let a=k.parse(t),s=r.rangeUri?_(r.rangeUri):void 0;if(s===w.Boolean){let c=new T;return c.predicate=a,c.object=n==="true"||n==="1",c.carrier=s,c.lexical=n,c}if(s===w.Integer||s===w.Decimal||s===w.Double||s===w.Float){let c=new L;return c.predicate=a,c.object=Number(n),c.carrier=s,c.lexical=n,c}let o=I.parse(t,n);return s&&(o.carrier=s,o.lexical=n),o}typedListLiteral(t,n){let r=new D,a=n.rangeUri?_(n.rangeUri):void 0;return a===w.Boolean?r.value=t==="true"||t==="1":a===w.Integer||a===w.Decimal||a===w.Double||a===w.Float?r.value=Number(t):r.value=t,a&&(r.carrier=a,r.lexical=t),r}async parseSubstitutableValue(t,n,r,a){let s=new A;return s.predicate=k.parse(t),s.object=n,s.links=await this.resolveMarkdownLinks(n,r,a),s}async resolveMarkdownLinks(t,n,r){let a=[];for(let s of V(t)){let o=this.linkReference(s.reference,n);if(!o){let p=await r.resolveEntityAsync(s.reference,n);p&&(o=new k,o.subject=p.uri)}let c={reference:s.reference,startOffset:s.startOffset,endOffset:s.endOffset};s.displayText!==void 0&&(c.displayText=s.displayText),o!==void 0&&(c.target=o),a.push(c)}return a}async parseObjectValue(t,n,r,a,s,o,c){if(typeof n=="string"){if(r.rangeUri&&x(r.rangeUri,E.Expression))return this.coerceExpressionLiteral(t,n,r.rangeUri);let p=await this.resolveReference(n,a,s);if(!p)return;let i=new v;return i.predicate=k.parse(t),i.object=p,i}if(typeof n=="object"&&!Array.isArray(n)){let p=await this.parseStatements(n,a,s,o,c);if(p.statements.length>0){let l=new S;l.statement=p.statements,l.unresolvedPredicates=p.unresolved,r.rangeUri&&(l.rangeType=r.rangeUri);let d=new P;return d.predicate=k.parse(t),d.object=l,d}let i=[];for(let[l,d]of Object.entries(n))if(typeof d=="object"&&d!==null&&!Array.isArray(d)){let u=new S;u.name=l,u.sourceKey=l,r.rangeUri&&(u.rangeType=r.rangeUri);let g=await this.parseStatements(d,a,s,o,c);u.statement=g.statements,u.unresolvedPredicates=g.unresolved,i.push(u)}else if(typeof d=="string"){let u=await this.resolveReference(d,a,s);u&&(u.sourceKey=l,i.push(u))}if(i.length>0){let l=new R;return l.predicate=k.parse(t),l.object=i,l}let m=new P;return m.predicate=k.parse(t),m.object=new S,r.rangeUri&&(m.object.rangeType=r.rangeUri),m}}coerceExpressionLiteral(t,n,r){let a=new S,s=new v,o=new k;o.subject=new O("kanonak.org","core-rdf","type"),s.predicate=o;let c=new k;c.subject=new O(r.publisher,r.package_,E.StringLiteral.name,r.version),s.object=c;let p=new I,i=new k;i.subject=new O(r.publisher,r.package_,E.stringLiteral.name,r.version),p.predicate=i,p.object=n,a.statement=[s,p];let m=new P;return m.predicate=k.parse(t),m.object=a,m}async parseListValue(t,n,r,a,s,o,c){let p=[],i=r.propertyType==="DatatypeProperty",m=r.rangeUri?.publisher==="kanonak.org"&&r.rangeUri?.package_==="core-rdf"&&r.rangeUri?.name==="List"||!r.rangeUri&&(r.range?.includes(".")?r.range.substring(r.range.lastIndexOf(".")+1):r.range)==="List";for(let d=0;d<n.length;d++){let u=n[d],g=y=>{y.sourceKey=d,p.push(y)},h=typeof u=="string"||typeof u=="number"||typeof u=="boolean";if(i&&h){let y=typeof u=="string"?u:String(u),b=this.typedListLiteral(y,r);o.isSubstitutableDatatype(r.rangeUri)&&(b.links=await this.resolveMarkdownLinks(y,a,s)),g(b);continue}if(m&&h){if(typeof u=="string"){let y=await s.resolveEntityAsync(u,a);if(y){let b=new k;b.subject=y.uri,g(b)}else{let b=new D;b.value=u,g(b)}}else{let y=new D;y.value=u,g(y)}continue}if(typeof u=="string"){let y=await this.resolveReference(u,a,s);y&&g(y)}else if(typeof u=="object"&&u!==null&&!Array.isArray(u)){let y=new S;r.rangeUri&&(y.rangeType=r.rangeUri);let b=await this.parseStatements(u,a,s,o,c);y.statement=b.statements,y.unresolvedPredicates=b.unresolved,g(y)}}let l=new R;return l.predicate=k.parse(t),l.object=p,l}linkReference(t,n){let r=t.indexOf(".");if(r<=0||!n.metadata?.imports)return;let a=t.substring(0,r),s=t.substring(r+1);for(let[o,c]of Object.entries(n.metadata.imports))for(let p of c){if(!W(p)||(p.alias??p.packageName)!==a)continue;let i=new k,m=p.versionOperator===le.Exact?p.version:void 0;return i.subject=new O(o,p.packageName,s,m),i}}async resolveReference(t,n,r){let a=this.linkReference(t,n);if(a)return a;let s=await r.resolveEntityAsync(t,n);if(s){let c=new k;return c.subject=s.uri,c}let o=n.metadata?.namespace_;if(o){let{KanonakUri:c}=await import("./KanonakUri-4VJGV3FN.js");if(t.includes(".")){let i=t.indexOf("."),m=t.substring(0,i),l=t.substring(i+1);if(n.metadata?.imports){for(let[d,u]of Object.entries(n.metadata.imports))for(let g of u)if((g.alias??g.packageName)===m){let y=new k;return y.subject=new c(d,g.packageName,l,g.version),y}}}let p=new k;return p.subject=new c(o.publisher,o.package_,t,o.version??void 0),p}return null}async saveKanonaks(t,n){let r=new Map;for(let a of t)a instanceof K&&a.namespace&&(r.has(a.namespace)||r.set(a.namespace,[]),r.get(a.namespace).push(a));for(let[a,s]of r){let o=await this.convertKanonaksToDocument(a,s),c=`${a.split("@")[0]}.yml`;await n.saveDocumentAsync(o,c)}}async serializeToYaml(t,n){let r=t.filter(o=>o instanceof K&&o.namespace===n);if(r.length===0)throw new Error(`No kanonaks found with namespace '${n}'`);let a=await this.convertKanonaksToDocument(n,r);return new G().save(a)}async convertKanonaksToDocument(t,n){let a={metadata:{namespace_:t,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 n){let c={};for(let p of o.statement){let[i,m]=this.convertStatementToProperty(p);i&&m!==null&&m!==void 0&&(c[i]=m),this.collectImportsFromStatement(p,t,s)}a.body[o.name]=c}return a}convertStatementToProperty(t){if(t instanceof I)return[t.predicate.subject.name,t.object];if(t instanceof L)return[t.predicate.subject.name,t.object];if(t instanceof T)return[t.predicate.subject.name,t.object];if(t instanceof v)return[t.predicate.subject.name,t.object.subject.name];if(t instanceof R){let n=this.convertKanonakListToValue(t.object);return[t.predicate.subject.name,n]}else if(t instanceof P){let n=this.convertEmbeddedKanonakToValue(t.object);return[t.predicate.subject.name,n]}return[null,null]}convertKanonakListToValue(t){let n=[];for(let r of t)r instanceof k?n.push(r.subject.name):r instanceof S&&n.push(this.convertEmbeddedKanonakToValue(r));return n}convertEmbeddedKanonakToValue(t){let n={};for(let r of t.statement){let[a,s]=this.convertStatementToProperty(r);a&&s!==null&&s!==void 0&&(n[a]=s)}return n}collectImportsFromStatement(t,n,r){}};function C(f,t){f.sourceDoc=t;for(let n of f.statement)if(n instanceof P)C(n.object,t);else if(n instanceof R)for(let r of n.object)r instanceof S&&C(r,t)}function F(f){let t=f.predicate?.subject;return(t?`${t.publisher}/${t.package_}/${t.name}`:"?")+"="+ge(f)}function ge(f){return f instanceof A?"m:"+String(f.object):f instanceof I?"s:"+String(f.object):f instanceof L?"n:"+String(f.object):f instanceof T?"b:"+String(f.object):f instanceof v?"r:"+B(f.object):f instanceof P?"e:"+B(f.object):f instanceof R?"l:["+(f.object??[]).map(B).join("|")+"]":"x"}function B(f){if(!f)return"";if(f instanceof k){let t=f.subject;return"R("+(t?`${t.publisher}/${t.package_}/${t.name}`:"")+")"}return f instanceof S?"E("+(f.statement??[]).map(F).join(";")+")":f instanceof D?"L("+String(f.value)+")":"N"}export{ne as a,ie as b,ce as c,Re as d,E as e,w as f,_ as g,De as h,V as i,oe as j};
|