@blue-labs/language 1.24.3 → 1.26.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/index.js +8 -8
- package/dist/index.mjs +1565 -823
- package/dist/lib/Blue.d.ts +12 -5
- package/dist/lib/Blue.d.ts.map +1 -1
- package/dist/lib/index.d.ts +1 -0
- package/dist/lib/index.d.ts.map +1 -1
- package/dist/lib/merge/Merger.d.ts +55 -0
- package/dist/lib/merge/Merger.d.ts.map +1 -0
- package/dist/lib/merge/MergingProcessor.d.ts +30 -0
- package/dist/lib/merge/MergingProcessor.d.ts.map +1 -0
- package/dist/lib/merge/NodeResolver.d.ts +28 -0
- package/dist/lib/merge/NodeResolver.d.ts.map +1 -0
- package/dist/lib/merge/createDefaultNodeProcessor.d.ts +7 -0
- package/dist/lib/merge/createDefaultNodeProcessor.d.ts.map +1 -0
- package/dist/lib/merge/index.d.ts +6 -0
- package/dist/lib/merge/index.d.ts.map +1 -0
- package/dist/lib/merge/processors/BasicTypesVerifier.d.ts +11 -0
- package/dist/lib/merge/processors/BasicTypesVerifier.d.ts.map +1 -0
- package/dist/lib/merge/processors/DictionaryProcessor.d.ts +15 -0
- package/dist/lib/merge/processors/DictionaryProcessor.d.ts.map +1 -0
- package/dist/lib/merge/processors/ListProcessor.d.ts +10 -0
- package/dist/lib/merge/processors/ListProcessor.d.ts.map +1 -0
- package/dist/lib/merge/processors/SequentialMergingProcessor.d.ts +24 -0
- package/dist/lib/merge/processors/SequentialMergingProcessor.d.ts.map +1 -0
- package/dist/lib/merge/processors/TypeAssigner.d.ts +10 -0
- package/dist/lib/merge/processors/TypeAssigner.d.ts.map +1 -0
- package/dist/lib/merge/processors/Types.d.ts +43 -0
- package/dist/lib/merge/processors/Types.d.ts.map +1 -0
- package/dist/lib/merge/processors/ValuePropagator.d.ts +9 -0
- package/dist/lib/merge/processors/ValuePropagator.d.ts.map +1 -0
- package/dist/lib/merge/processors/index.d.ts +8 -0
- package/dist/lib/merge/processors/index.d.ts.map +1 -0
- package/dist/lib/model/Node.d.ts +2 -0
- package/dist/lib/model/Node.d.ts.map +1 -1
- package/dist/lib/provider/AbstractNodeProvider.d.ts +13 -0
- package/dist/lib/provider/AbstractNodeProvider.d.ts.map +1 -0
- package/dist/lib/provider/BasicNodeProvider.d.ts +59 -0
- package/dist/lib/provider/BasicNodeProvider.d.ts.map +1 -0
- package/dist/lib/provider/InMemoryNodeProvider.d.ts +6 -0
- package/dist/lib/provider/InMemoryNodeProvider.d.ts.map +1 -1
- package/dist/lib/provider/NodeContentHandler.d.ts +18 -0
- package/dist/lib/provider/NodeContentHandler.d.ts.map +1 -0
- package/dist/lib/provider/PreloadedNodeProvider.d.ts +24 -0
- package/dist/lib/provider/PreloadedNodeProvider.d.ts.map +1 -0
- package/dist/lib/provider/RepositoryBasedNodeProvider.d.ts +27 -0
- package/dist/lib/provider/RepositoryBasedNodeProvider.d.ts.map +1 -0
- package/dist/lib/provider/index.d.ts +5 -0
- package/dist/lib/provider/index.d.ts.map +1 -1
- package/dist/lib/types/BlueRepository.d.ts +9 -0
- package/dist/lib/types/BlueRepository.d.ts.map +1 -0
- package/dist/lib/types/index.d.ts +2 -0
- package/dist/lib/types/index.d.ts.map +1 -0
- package/dist/lib/utils/NodeExtender.d.ts.map +1 -1
- package/dist/lib/utils/NodeProviderWrapper.d.ts +5 -3
- package/dist/lib/utils/NodeProviderWrapper.d.ts.map +1 -1
- package/dist/lib/utils/Nodes.d.ts +67 -0
- package/dist/lib/utils/Nodes.d.ts.map +1 -0
- package/dist/lib/utils/index.d.ts +1 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var Ot=Object.defineProperty;var Dt=(n,e,t)=>e in n?Ot(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var f=(n,e,t)=>Dt(n,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("@blue-labs/shared-utils"),l=require("zod"),Ft=require("bs58"),z=require("big.js"),w=require("radash"),Vt=require("js-sha256"),jt=require("crypto"),Rt=require("base32.js"),$=require("js-yaml"),We=n=>n&&n.__esModule?n:{default:n},Q=We(Ft),Ie=We(jt);class zt{static get(e,t,r,s=!0){if(u.isNullable(t)||!t.startsWith("/"))throw new Error(`Invalid path: ${t}`);if(t==="/"){const o=e.getValue();return s&&o!==void 0?o:e}const i=t.substring(1).split("/");return this.getRecursive(e,i,0,r,s)}static getRecursive(e,t,r,s,i){if(r===t.length-1&&!i)return this.getNodeForSegment(e,t[r],s,!1);if(r===t.length){const d=e.getValue();return i&&d!==void 0?d:e}const o=t[r],c=this.getNodeForSegment(e,o,s,!0);if(c)return this.getRecursive(c,t,r+1,s,i)}static getNodeForSegment(e,t,r,s){let i;const o=e.getProperties();if(o&&t in o)i=o[t];else switch(t){case"name":{const c=e.getName();i=u.isNonNullable(c)?new a().setValue(c):new a;break}case"description":{const c=e.getDescription();i=u.isNonNullable(c)?new a().setValue(c):new a;break}case"type":i=e.getType()??new a;break;case"itemType":i=e.getItemType()??new a;break;case"keyType":i=e.getKeyType()??new a;break;case"valueType":i=e.getValueType()??new a;break;case"value":{const c=e.getValue();i=new a().setValue(c??null);break}case"blueId":{const c=e.getBlueId();i=u.isNonNullable(c)?new a().setValue(c):new a;break}case"blue":i=e.getBlue();break;case"items":{const c=e.getItems();i=new a().setItems(c);break}case"properties":{const c=e.getProperties();i=new a().setProperties(c);break}case"contracts":{const c=e.getContracts();i=new a().setContracts(c);break}default:{if(/^\d+$/.test(t)){const c=parseInt(t,10),d=e.getItems();d&&c>=0&&c<d.length?i=d[c]:i=void 0}else i=void 0;break}}if(i)return s&&r?this.link(i,r):i}static link(e,t){const r=t(e);return u.isNonNullable(r)?r:e}}class E extends z{constructor(e){super(e)}}class P extends z{constructor(e){super(e)}}const L="name",_="description",le="type",Ve="itemType",je="keyType",Re="valueType",pe="value",ze="items",M="blueId",xe="blue",ye="contracts",xt=[L,_,le,Ve,je,Re,pe,ze,M,xe,ye],Zt="Text",Ut="Double",Mt="Integer",$t="Boolean",Lt="List",_t="Dictionary",kt=[Zt,Ut,Mt,$t],Ke=[...kt,Lt,_t],te="F92yo19rCcbBoBSpUA5LRxpfDejJDAaP1PRxxbWAraVP",ne="68ryJtnmui4j5rCZWUnkZ3DChtmEb7Z9F8atn1mBSM3L",re="DHmxTkFbXePZHCHCYmQr2dSzcNLcryFVjXVHkdQrrZr8",se="EL6AjrbJsxTWRTPzY8WR8Y2zAMXRbydQj83PcZwuAHbo",Gt="G8wmfjEqugPEEXByMYWJXiEdbLToPRWNQEekNxrxfQWB",Yt="294NBTj2mFRL3RB4kDRUSckwGg7Kzj6T8CTAFeR1kcSA",Jt=[te,ne,re,se],Ze=[...Jt,Gt,Yt];Object.fromEntries(Ke.map((n,e)=>[n,Ze[e]]));Object.fromEntries(Ze.map((n,e)=>[n,Ke[e]]));const V=class V{constructor(e){f(this,"name");f(this,"description");f(this,"type");f(this,"itemType");f(this,"keyType");f(this,"valueType");f(this,"value");f(this,"items");f(this,"properties");f(this,"contracts");f(this,"blueId");f(this,"blue");f(this,"inlineValue",!1);this.name=e}getName(){return this.name}setName(e){return this.name=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getType(){return this.type}setType(e){return typeof e=="string"?this.type=new V().setValue(e).setInlineValue(!0):this.type=e,this}getItemType(){return this.itemType}setItemType(e){return typeof e=="string"?this.itemType=new V().setValue(e).setInlineValue(!0):this.itemType=e,this}getKeyType(){return this.keyType}setKeyType(e){return typeof e=="string"?this.keyType=new V().setValue(e).setInlineValue(!0):this.keyType=e,this}getValueType(){return this.valueType}setValueType(e){return typeof e=="string"?this.valueType=new V().setValue(e).setInlineValue(!0):this.valueType=e,this}getValue(){var t;const e=(t=this.type)==null?void 0:t.getBlueId();if(u.isNonNullable(e)&&u.isNonNullable(this.value)){if(e===re&&typeof this.value=="string")return new E(this.value);if(e===ne&&typeof this.value=="string"){const r=new P(this.value),s=parseFloat(r.toString());return new P(s.toString())}else if(e===se&&typeof this.value=="string")return this.value.toLowerCase()==="true"}return this.value}setValue(e){return typeof e=="number"?e%1===0?this.value=new E(e.toString()):this.value=new P(e.toString()):this.value=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}addItems(...e){return this.items||(this.items=[]),this.items.push(...e),this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}addProperty(e,t){return this.properties||(this.properties={}),this.properties[e]=t,this}getContracts(){return this.contracts}setContracts(e){return this.contracts=e,this}addContract(e,t){return this.contracts||(this.contracts={}),this.contracts[e]=t,this}getBlueId(){return this.blueId}setBlueId(e){return this.blueId=e,this}getBlue(){return this.blue}setBlue(e){return this.blue=e,this}isInlineValue(){return this.inlineValue}setInlineValue(e){return this.inlineValue=e,this}get(e,t){return zt.get(this,e,t)}clone(){var t,r,s,i,o,c;const e=new V(this.name);return e.description=this.description,e.type=(t=this.type)==null?void 0:t.clone(),e.itemType=(r=this.itemType)==null?void 0:r.clone(),e.keyType=(s=this.keyType)==null?void 0:s.clone(),e.valueType=(i=this.valueType)==null?void 0:i.clone(),e.value=this.value,e.items=(o=this.items)==null?void 0:o.map(d=>d.clone()),this.properties&&(e.properties=Object.fromEntries(Object.entries(this.properties).map(([d,y])=>[d,y.clone()]))),this.contracts&&(e.contracts=Object.fromEntries(Object.entries(this.contracts).map(([d,y])=>[d,y.clone()]))),e.blueId=this.blueId,e.blue=(c=this.blue)==null?void 0:c.clone(),e.inlineValue=this.inlineValue,e}toString(){return`BlueNode{name='${this.name}', description='${this.description}', type=${this.type}, itemType=${this.itemType}, keyType=${this.keyType}, valueType=${this.valueType}, value=${this.value}, items=${this.items}, properties=${this.properties}, contracts=${this.contracts}, blueId='${this.blueId}', blue=${this.blue}, inlineValue=${this.inlineValue}}`}};f(V,"INTEGER",new V("Integer"));let a=V;class U{static isPotentialBlueId(e){if(!e||e.length===0||!this.BLUE_ID_PATTERN.test(e))return!1;const t=e.split("#"),r=t[0],s=r.length;if(s<this.MIN_BLUE_ID_LENGTH||s>this.MAX_BLUE_ID_LENGTH)return!1;try{if(Q.default.decode(r).length!==32)return!1}catch{return!1}if(t.length>1)try{if(Number(t[1])<0)return!1}catch{return!1}return!0}}f(U,"MIN_BLUE_ID_LENGTH",41),f(U,"MAX_BLUE_ID_LENGTH",45),f(U,"BLUE_ID_PATTERN",/^[1-9A-HJ-NP-Za-km-z]{41,45}(?:#\d+)?$/);const Ht=l.z.string().max(U.MAX_BLUE_ID_LENGTH,{message:"Blue Id has a maximum length of 45 characters"}).min(U.MIN_BLUE_ID_LENGTH,{message:"Blue Id has a minimum length of 41 characters"}).refine(n=>{try{return Q.default.decode(n),!0}catch{return!1}},{message:"Blue Id must be a valid Base58 string"}),k=l.z.lazy(()=>l.z.record(l.z.unknown()).and(l.z.object({blueId:l.z.string().optional(),name:l.z.string().optional(),description:l.z.string().optional(),type:k.optional(),value:l.z.union([l.z.string(),l.z.number(),l.z.boolean()]).optional().nullable(),items:l.z.array(k).optional()}))),ie=l.z.object({blueId:l.z.string().optional(),name:l.z.string().optional(),description:l.z.string().optional(),type:k.optional()}),Wt=ie.extend({value:l.z.string().optional()}),Kt=ie.extend({value:l.z.number().optional()}),qt=ie.extend({value:l.z.boolean().optional()}),Xt=ie.extend({items:l.z.array(l.z.string()).optional()}),Qt=n=>k.safeParse(n).success,qe=n=>u.isNonNullable(n)&&"blueId"in n&&u.isNonNullable(n.blueId),en=n=>u.isNonNullable(n)&&"name"in n&&u.isNonNullable(n.name),Xe=n=>u.isNonNullable(n)&&"items"in n&&u.isNonNullable(n.items),Qe=n=>u.isNonNullable(n)&&"type"in n&&u.isNonNullable(n.type),et=n=>u.isNonNullable(n)&&"value"in n&&u.isNonNullable(n.value),tn=(n,e)=>n.required({type:!0}).safeParse(e).success,A=n=>n instanceof z,G=n=>A(n)&&n instanceof E,tt=n=>A(n)&&n instanceof P,nn=l.z.lazy(()=>l.z.record(ee)),rn=l.z.lazy(()=>l.z.union([l.z.array(ee),l.z.array(ee).readonly()])),ee=l.z.lazy(()=>l.z.union([u.jsonPrimitiveSchema,nn,rn,l.z.instanceof(z)])),Ue=n=>w.isObject(n)&&!w.isArray(n)&&!u.isReadonlyArray(n)&&!A(n),Me=n=>w.isArray(n)||u.isReadonlyArray(n),sn=n=>Me(n)||Ue(n)||A(n)||u.isJsonPrimitive(n);class p{static deserialize(e){return p.handleNode(e)}static handleNode(e){if(e===void 0)throw new Error("This is not a valid JSON-like value. Found 'undefined' as a value.");if(Ue(e)){const t=new a,r={},s={};return Object.entries(e).forEach(([i,o])=>{switch(i){case L:if(o==null)t.setName(void 0);else{if(typeof o!="string")throw new Error(`The ${L} field must be a string.`);t.setName(o)}break;case _:if(o==null)t.setDescription(void 0);else{if(typeof o!="string")throw new Error(`The ${_} field must be a string.`);t.setDescription(o)}break;case le:t.setType(p.handleNode(o));break;case Ve:t.setItemType(p.handleNode(o));break;case je:t.setKeyType(p.handleNode(o));break;case Re:t.setValueType(p.handleNode(o));break;case pe:t.setValue(p.handleValue(o));break;case M:if(typeof o!="string")throw new Error(`The ${M} field must be a string.`);t.setBlueId(o);break;case ze:t.setItems(p.handleArray(o));break;case xe:t.setBlue(p.handleNode(o));break;case ye:w.isObject(o)&&!w.isArray(o)&&!u.isReadonlyArray(o)&&Object.entries(o).forEach(([c,d])=>{s[c]=p.handleNode(d)});break;default:r[i]=p.handleNode(o);break}}),Object.keys(r).length>0&&t.setProperties(r),Object.keys(s).length>0&&t.setContracts(s),t}else{if(Me(e))return new a().setItems(p.handleArray(e));{const t=e;return new a().setValue(p.handleValue(t)).setInlineValue(!0)}}}static handleValue(e){if(e==null)return null;if(typeof e=="string")return e;if(typeof e=="number"||A(e))if(G(e)||Number.isSafeInteger(e)){const t=new E(e.toString()),r=Number.MIN_SAFE_INTEGER,s=Number.MAX_SAFE_INTEGER;return t.lt(r)?new E(r.toString()):t.gt(s)?new E(s.toString()):t}else{const t=parseFloat(e.toString());return new P(t.toString())}else if(typeof e=="boolean")return e;throw new Error(`Can't handle node: ${JSON.stringify(e)}`)}static handleArray(e){if(e!=null){if(w.isObject(e)&&!Array.isArray(e))return[p.handleNode(e)];if(Array.isArray(e))return e.map(p.handleNode);throw new Error("Expected an array node")}}}function on(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var Te,Ge;function ln(){return Ge||(Ge=1,Te=function n(e){if(typeof e=="number"&&isNaN(e))throw new Error("NaN is not allowed");if(typeof e=="number"&&!isFinite(e))throw new Error("Infinity is not allowed");return e===null||typeof e!="object"?JSON.stringify(e):e.toJSON instanceof Function?n(e.toJSON()):Array.isArray(e)?`[${e.reduce((s,i,o)=>`${s}${o===0?"":","}${n(i===void 0||typeof i=="symbol"?null:i)}`,"")}]`:`{${Object.keys(e).sort().reduce((r,s)=>{if(e[s]===void 0||typeof e[s]=="symbol")return r;const i=r.length===0?"":",";return`${r}${i}${n(s)}:${n(e[s])}`},"")}}`}),Te}var cn=ln();const an=on(cn);class nt{static canonicalize(e){return an(e)}}const Be=typeof process<"u"&&process.versions!=null&&process.versions.node!=null,de=class de{constructor(){f(this,"browserCrypto");this.browserCrypto=this.initBrowserCrypto()}static getInstance(){return this.instance||(this.instance=new de),this.instance}initBrowserCrypto(){return Be?null:"crypto"in globalThis?globalThis.crypto:null}hasNodeCrypto(){return Be&&!!Ie.default&&typeof Ie.default.createHash=="function"}getBrowserCrypto(){return this.browserCrypto}getNodeCrypto(){return Be?Ie.default:null}};f(de,"instance");let Ee=de;class rt{constructor(){f(this,"cryptoEnv",Ee.getInstance())}applySync(e){const t=this.canonicalizeInput(e),r=this.cryptoEnv.hasNodeCrypto()?this.sha256Sync(t):this.sha256SyncBrowser(t);return Q.default.encode(new Uint8Array(r))}async apply(e){const t=this.canonicalizeInput(e),r=this.cryptoEnv.hasNodeCrypto()?this.sha256Sync(t):await this.sha256Async(t);return Q.default.encode(new Uint8Array(r))}canonicalizeInput(e){const t=nt.canonicalize(e);if(typeof t!="string")throw new Error("Canonized value must be a string");return t}sha256Sync(e){const t=this.cryptoEnv.getNodeCrypto();if(!t)throw new Error("Synchronous SHA-256 is not available in this environment");return t.createHash("sha256").update(e).digest()}sha256SyncBrowser(e){return Vt.sha256.arrayBuffer(e)}async sha256Async(e){if(this.cryptoEnv.hasNodeCrypto())return this.sha256Sync(e);const t=this.cryptoEnv.getBrowserCrypto();if(!t)throw new Error("crypto is not available in this environment");const s=new TextEncoder().encode(e);return t.subtle.digest("SHA-256",s)}}class T{static get(e,t="official"){var oe;const r=e.getValue(),s=this.handleValue(r);if(s!==void 0&&t==="simple")return s;const i=(oe=e.getItems())==null?void 0:oe.map(F=>T.get(F,t));if(i!==void 0&&t==="simple")return i;const o=e.getName(),c=e.getDescription();if(t==="original"&&o===void 0&&c===void 0){if(s!==void 0)return s;if(i!==void 0)return i}const d={};o!==void 0&&(d[L]=o),c!==void 0&&(d[_]=c);const y=e.getType();if(t==="official"&&r!==void 0&&y===void 0){const F=this.inferTypeBlueId(r);F!==null&&(d[le]={[M]:F})}else y!==void 0&&(d[le]=T.get(y,t));const I=e.getItemType();I!==void 0&&(d[Ve]=T.get(I,t));const b=e.getKeyType();b!==void 0&&(d[je]=T.get(b,t));const m=e.getValueType();m!==void 0&&(d[Re]=T.get(m,t)),s!==void 0&&(d[pe]=s),i!==void 0&&(d[ze]=i);const g=e.getBlueId();g!==void 0&&(d[M]=g);const h=e.getBlue();h!==void 0&&(d[xe]=h);const B=e.getContracts();if(B!==void 0){const F={};Object.entries(B).forEach(([be,Ct])=>{F[be]=T.get(Ct,t)}),d[ye]=F}const D=e.getProperties();return D!==void 0&&Object.entries(D).forEach(([F,be])=>{d[F]=T.get(be,t)}),d}static handleValue(e){if(A(e)){if(G(e)){const t=new z(Number.MIN_SAFE_INTEGER.toString()),r=new z(Number.MAX_SAFE_INTEGER.toString());if(e.lt(t)||e.gt(r))return e.toString()}return e.toNumber()}return e}static inferTypeBlueId(e){return typeof e=="string"?te:A(e)?G(e)?re:ne:typeof e=="boolean"?se:null}}const un=n=>u.isJsonPrimitive(n)&&u.isNonNullable(n),R=class R{constructor(e){f(this,"hashProvider");this.hashProvider=e}static calculateBlueId(e){if(Array.isArray(e)){const r=e.map(s=>T.get(s));return R.INSTANCE.calculate(r)}const t=T.get(e);return R.INSTANCE.calculate(t)}static calculateBlueIdSync(e){if(Array.isArray(e)){const r=e.map(s=>T.get(s));return R.INSTANCE.calculateSync(r)}const t=T.get(e);return R.INSTANCE.calculateSync(t)}calculate(e){const t=this.cleanStructure(e);if(t===void 0)throw new Error("Object after cleaning cannot be null or undefined.");return this.internalCalculate(t,!1)}calculateSync(e){const t=this.cleanStructure(e);if(t===void 0)throw new Error("Object after cleaning cannot be null or undefined.");return this.internalCalculate(t,!0)}internalCalculate(e,t){return un(e)||A(e)?this.applyHash(e.toString(),t):Array.isArray(e)||u.isReadonlyArray(e)?this.calculateList(e,t):this.calculateMap(e,t)}calculateMap(e,t){if(e[M]!==void 0)return e[M];const s=Object.keys(e).map(o=>{const c=e[o];if([L,pe,_].includes(o))return t?[o,c]:Promise.resolve([o,c]);{const d=this.internalCalculate(c,t);return t?[o,{blueId:d}]:Promise.resolve(d).then(y=>[o,{blueId:y}])}}),i=o=>{const c={};for(const[d,y]of o)c[d]=y;return this.applyHash(c,t)};return t?i(s):Promise.all(s).then(i)}calculateList(e,t){if(e.length===0)throw new Error("Cannot calculate BlueId for an empty list.");let r=this.internalCalculate(e[0],t);const s=(i,o)=>t?this.applyHash([{blueId:i},{blueId:o}],!0):Promise.all([i,o]).then(([c,d])=>this.applyHash([{blueId:c},{blueId:d}],!1));for(let i=1;i<e.length;i++){const o=this.internalCalculate(e[i],t);r=s(r,o)}return r}applyHash(e,t){return t?this.hashProvider.applySync(e):this.hashProvider.apply(e)}cleanStructure(e){if(e!=null){if(u.isJsonPrimitive(e)||A(e))return e;if(Array.isArray(e)||u.isReadonlyArray(e)){const t=e.map(r=>this.cleanStructure(r)).filter(u.isNonNullable);return t.length>0?t:void 0}else if(typeof e=="object"){const t={};for(const r in e){const s=this.cleanStructure(e[r]);s!=null&&(t[r]=s)}return Object.keys(t).length>0?t:void 0}else return e}}};f(R,"INSTANCE",new R(new rt));let C=R;class dn{static convert(e){const t=Q.default.decode(e),r=new Uint8Array(2+t.length);r[0]=18,r[1]=32,r.set(t,2);const s=new Uint8Array(2+r.length);return s[0]=1,s[1]=85,s.set(r,2),"b"+new Rt.Encoder({type:"rfc4648",lc:!0}).write(s).finalize().replace(/=/g,"")}}class O{static transform(e,t){const r=t(e.clone()),s=r.getType();s!==void 0&&r.setType(O.transform(s,t));const i=r.getItemType();i!==void 0&&r.setItemType(O.transform(i,t));const o=r.getKeyType();o!==void 0&&r.setKeyType(O.transform(o,t));const c=r.getValueType();c!==void 0&&r.setValueType(O.transform(c,t));const d=r.getItems();if(d!==void 0){const b=d.map(m=>O.transform(m,t));r.setItems(b)}const y=r.getProperties();if(y!==void 0){const b=Object.keys(y).reduce((m,g)=>(m[g]=O.transform(y[g],t),m),{});r.setProperties(b)}const I=r.getContracts();if(I!==void 0){const b=Object.keys(I).reduce((m,g)=>(m[g]=O.transform(I[g],t),m),{});r.setContracts(b)}return r}}const x=n=>!!n&&typeof n=="object"&&!Array.isArray(n)&&!(n instanceof a),j=n=>n instanceof E||n instanceof P,fn=n=>n.replace(/~1/g,"/").replace(/~0/g,"~");function H(n){if(n==="/")return[];if(!n.startsWith("/"))throw new Error(`Path must start with '/': ${n}`);return n.split("/").slice(1).map(fn)}function Y(n){if(n==="-")return-1;const e=typeof n=="number"?n:parseInt(n,10);if(isNaN(e))throw new Error(`Invalid array index (NaN) from '${n}'`);if(!Number.isFinite(e))throw new Error(`Invalid array index '${n}' results in non-finite number ${e}`);return e}function st(n,e,t,r=!0){switch(e){case"name":return t?r?n.getName()??null:n:n.getName();case"description":return t?r?n.getDescription():n:n.getDescription();case"type":return n.getType();case"itemType":return n.getItemType();case"keyType":return n.getKeyType();case"valueType":return n.getValueType();case"value":return t?r?n.getValue()??null:n:n.getValue();case"blueId":return t?r?n.getBlueId()??null:n:n.getBlueId();case"blue":return n.getBlue();case"items":return n.getItems();case"properties":return n.getProperties();case"contracts":return n.getContracts();default:return}}function Ye(n,e,t=!0){if(n instanceof a){const r=st(n,e,!0,t);if(r!==void 0||["name","description","type","itemType","keyType","valueType","value","blueId","blue","items","properties","contracts"].includes(e))return r;if(/^-?\d+$/.test(e)&&e!=="-"){const i=n.getItems(),o=parseInt(e,10);return i&&o>=0&&o<i.length?i[o]:void 0}const s=n.getProperties();return s&&e in s?s[e]:void 0}if(Array.isArray(n)){if(e==="-")return;const r=Y(e);return r>=0&&r<n.length?n[r]:void 0}if(x(n))return n[e]}function W(n,e){if(e.length===0)return{parent:n,key:"value",actualTarget:n.getValue()??n};let t=n;for(let s=0;s<e.length-1;++s){const i=e[s],o=Ye(t,i);if(o===void 0)throw new Error(`Cannot resolve '/${e.slice(0,s+1).join("/")}'`);t=o}const r=e[e.length-1];if(t instanceof a){const s=Ye(t,r,!1);if((typeof s!="object"||s===null||j(s))&&!(s instanceof a)&&!Array.isArray(s)&&["name","description","value","blueId"].includes(r))return{parent:t,key:r,actualTarget:s}}return Array.isArray(t)&&r==="-"?{parent:t,key:"-"}:t instanceof a&&t.getItems()&&r==="-"?{parent:t,key:"-"}:{parent:t,key:Array.isArray(t)?Y(r):r}}function $e(n,e){var t;if(n instanceof a){const r=e,s=st(n,r,!1);if(s!==void 0||["name","description","type","itemType","keyType","valueType","value","blueId","blue","items","properties","contracts"].includes(r))return s;if(typeof e=="number"||typeof e=="string"&&/^\d+$/.test(e)){const i=n.getItems(),o=typeof e=="number"?e:parseInt(e,10);if(i&&o>=0&&o<i.length)return i[o]}return(t=n.getProperties())==null?void 0:t[r]}return Array.isArray(n)||x(n)?n[e]:n}function N(n){if(n instanceof a)return n;if(n===null||typeof n=="string"||typeof n=="number"||typeof n=="boolean"||j(n))return p.deserialize(n);const e=Se(n);return p.deserialize(e)}function Se(n){if(n===void 0)return null;if(n===null||typeof n!="object")return n;if(Array.isArray(n))return n.map(Se);const e={};for(const[t,r]of Object.entries(n))e[t]=Se(r);return e}function Le(n,e,t){if(n instanceof a){const r=e;switch(r){case"name":n.setName(t);return;case"description":n.setDescription(t);return;case"type":n.setType(t instanceof a||typeof t=="string"||t===void 0?t:N(t));return;case"itemType":n.setItemType(t instanceof a||typeof t=="string"||t===void 0?t:N(t));return;case"keyType":n.setKeyType(t instanceof a||typeof t=="string"||t===void 0?t:N(t));return;case"valueType":n.setValueType(t instanceof a||typeof t=="string"||t===void 0?t:N(t));return;case"value":{const s=t;n.setValue(s===void 0?null:s);return}case"blueId":n.setBlueId(t);return;case"blue":n.setBlue(t instanceof a||t===void 0?t:N(t));return;case"items":n.setItems(t);return;case"properties":n.setProperties(t);return;case"contracts":n.setContracts(t);return;default:{if(t===void 0){const s=n.getProperties();s&&r in s&&delete s[r]}else n.getProperties()||n.setProperties({}),n.addProperty(r,t instanceof a?t:N(t));return}}}Array.isArray(n)?n.splice(Y(e),1):x(n)&&(t===void 0?delete n[e]:n[e]=t)}function hn(n,e,t,r){let s=-1;if(e!=="-"&&(s=typeof e=="number"?e:parseInt(e,10),isNaN(s)))throw new Error(`Invalid numeric key for BlueNode item operation: ${e}`);if(s<-1)throw new Error(`Invalid array index for BlueNode items: ${s}`);let i=n.getItems();if(i||(i=[],n.setItems(i)),!r&&s!==-1&&s>i.length)throw new Error(`ADD operation failed: Target array index '${s}' is greater than array length ${i.length}.`);if(e==="-")i.push(t);else if(r){if(s>=0)if(s<i.length)i[s]=t;else{for(let o=i.length;o<s;o++)i.push(p.deserialize(null));i.push(t)}}else i.splice(s,0,t)}function ce(n,e,t,r){if(Array.isArray(n)){const s=e==="-"?n.length:Y(e);if(!r&&s>n.length)throw new Error(`ADD operation failed: Target array index '${s}' is greater than array length ${n.length}. Path involving key '${e}'.`);if(s<0&&e!=="-")throw new Error(`Invalid negative array index: ${e}`);const i=N(t);if(r){if(s>=0&&s<n.length)n[s]=i;else if(s>=n.length){for(let o=n.length;o<s;o++)n.push(p.deserialize(null));n.push(i)}}else n.splice(s,0,i);return}if(n instanceof a){e==="-"||typeof e=="number"&&!isNaN(e)||typeof e=="string"&&/^\d+$/.test(e)?hn(n,e,N(t),r):Le(n,e,t);return}if(x(n)){n[e]=N(t);return}throw new Error(`Cannot insert into parent of type ${typeof n}`)}function pn(n,e){if(Array.isArray(n)){const t=Y(e);t===-1&&e==="-"?n.length>0&&n.pop():t>=0&&t<n.length&&n.splice(t,1);return}if(n instanceof a){if(typeof e=="number"||typeof e=="string"&&/^-?\d+$/.test(e)){const t=n.getItems();if(t){const r=Y(e);r===-1&&e==="-"?t.length>0&&t.pop():r>=0&&r<t.length&&t.splice(r,1),t.length===0&&n.setItems(void 0);return}}Le(n,e,void 0)}else x(n)&&delete n[e]}function Pe(n){if(n instanceof a)return n.clone();if(Array.isArray(n))return n.map(t=>Pe(t));if(x(n)){const e={};return Object.keys(n).forEach(t=>{e[t]=Pe(n[t])}),e}return n}function Z(n,e){if(n===e||n instanceof a&&(n.isInlineValue()||n.getValue()!==void 0)&&Z(n.getValue()??null,e)||e instanceof a&&(e.isInlineValue()||e.getValue()!==void 0)&&Z(n,e.getValue()??null))return!0;if(n instanceof a&&e instanceof a||j(n)&&j(e)||j(n)&&typeof e=="number"||typeof n=="number"&&j(e))return n.toString()===e.toString();if(Array.isArray(n)&&Array.isArray(e))return n.length===e.length&&n.every((t,r)=>Z(t,e[r]));if(x(n)&&x(e)){const t=Object.keys(n),r=Object.keys(e);return t.length===r.length&&t.every(s=>Z(n[s],e[s]))}return!1}function it(n,e){const{parent:t,key:r}=W(n,H(e));return $e(t,r)}function ot(n,e,t){const r=H(e);if(r.length===0&&e==="/"){const o=N(t);n.setValue(o.getValue()??null),o.getItems()?n.setItems(o.getItems()):n.setItems(void 0);return}const{parent:s,key:i}=W(n,r);ce(s,i,t,!0)}function yn(n,e,t){const r=H(e);if(r.length===0&&e==="/"){if(n.getItems()&&Array.isArray(t)){const o=N(t);o.getItems()?(n.setItems(o.getItems()),n.setValue(null)):(n.setValue(o.getValue()??null),n.setItems(void 0))}else{const o=N(t);n.setValue(o.getValue()??null),o.getItems()&&n.setItems(o.getItems())}return!0}const{parent:s,key:i}=W(n,r);return ce(s,i,t,!1),!0}function gn(n,e,t){const r=H(e);if(r.length===0&&e==="/"){const c=N(t);return n.setValue(c.getValue()??null),c.getItems()?n.setItems(c.getItems()):n.setItems(void 0),!0}const{parent:s,key:i,actualTarget:o}=W(n,r);if(o!==void 0&&s instanceof a)Le(s,i,t);else{const c=$e(s,i),d=Array.isArray(s)||s instanceof a&&s.getItems()&&(typeof i=="number"||typeof i=="string"&&/^\d+$/.test(i));if(c===void 0){if(d)throw new Error(`REPLACE failed: Target array index '${i.toString()}' is out of bounds or does not exist at path '${e}'.`);ce(s,i,t,!0)}else ce(s,i,t,!0)}return!0}function lt(n,e){const t=H(e);if(t.length===0&&e==="/")return n.setValue(null),n.setItems(void 0),n.setProperties(void 0),!0;const{parent:r,key:s}=W(n,t);return pn(r,s),!0}function mn(n,e,t){const r=Pe(it(n,e));return ot(n,t,r),!0}function bn(n,e,t){const r=H(e),{parent:s,key:i}=W(n,r),o=$e(s,i);if(o===void 0)throw new Error(`MOVE failed: 'from' location '${e}' does not exist.`);return lt(n,e)?(ot(n,t,o),!0):!1}function In(n,e,t){const r=it(n,e);let s=t;if(r instanceof a)if((t===null||typeof t=="string"||typeof t=="number"||typeof t=="boolean"||j(t))&&(r.isInlineValue()||r.getValue()!==void 0)){if(!Z(r.getValue()??null,t))throw new Error(`TEST failed at '${e}': Expected ${JSON.stringify(t)}, got ${JSON.stringify(r.getValue()??null)}`);return!0}else typeof t=="object"&&!(t instanceof a)&&(s=N(t));else if(j(r)&&typeof t=="number")r instanceof E?s=new E(t.toString()):r instanceof P&&(s=new P(t.toString()));else if((r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean")&&j(t)){const i=t;!Z(r,i.toString())&&(typeof r=="number"&&parseFloat(i.toString()))}if(!Z(r,s)){const i=r instanceof a?r.toString():JSON.stringify(r),o=s instanceof a?s.toString():JSON.stringify(s);throw new Error(`TEST failed at '${e}': Expected ${o}, got ${i}`)}return!0}function Tn(n,e){switch(e.op){case"add":return yn(n,e.path,e.val);case"replace":return gn(n,e.path,e.val);case"remove":return lt(n,e.path);case"copy":return mn(n,e.from,e.path);case"move":return bn(n,e.from,e.path);case"test":return In(n,e.path,e.val)}}function Bn(n,e,t=!1){const r=t?n:n.clone();return Tn(r,e),r}const Ne=Symbol.for("zod-schema-annotations");function Nn(){if(typeof globalThis<"u")return globalThis;if(typeof global<"u")return global;if(typeof window<"u")return window;if(typeof self<"u")return self;throw new Error("Unable to locate global object")}function ct(){const n=Nn();return Ne in n||(n[Ne]=new WeakMap),n[Ne]}function K(n,e){const t=ct(),r=t.get(n)||{};return t.set(n,{...r,...e}),n}const S=n=>ct().get(n),at=n=>e=>{const t=S(e);return K(e,{...t,blueDescription:n})},ut=n=>{const e=S(n);return u.isNonNullable(e)&&w.isString(e.blueDescription)?e.blueDescription:null},wn=n=>at(n)(l.z.string().optional()),vn=l.z.union([l.z.string(),l.z.boolean()]),dt=n=>e=>{const t=S(e);return K(e,{...t,blueId:n})},ft=n=>{const e=S(n),t=vn.safeParse(e==null?void 0:e.blueId);return t.success?t.data:null},En=n=>dt(n??!0)(l.z.string()),ht=n=>e=>{const t=S(e);return K(e,{...t,blueName:n})},pt=n=>{const e=S(n);return u.isNonNullable(e)&&w.isString(e.blueName)?e.blueName:null},Sn=n=>{const e=l.z.string().optional();return ht(n)(e)},yt=()=>n=>{const e=S(n);return K(n,{...e,blueNode:!0})},gt=n=>{const e=S(n);return u.isNonNullable(e)&&u.isNonNullable(e.blueNode)&&e.blueNode===!0?e.blueNode:null},_e=n=>!!gt(n),Pn=()=>{const n=l.z.instanceof(a);return yt()(n)},Ae="extendedFrom",mt=({schema:n,baseSchema:e})=>{const t=S(n)||{};return K(n,{...t,[Ae]:e})},bt=n=>{const e=S(n);return u.isNonNullable(e)&&e[Ae]?e[Ae]:null},ke=(n,e)=>{const t=bt(n);return u.isNullable(t)?!1:(t==null?void 0:t._def)===(e==null?void 0:e._def)?!0:ke(t,e)},An=n=>new Proxy(n,{get(e,t,r){return t==="extend"?function(...s){const i=e.extend(...s);return mt({schema:i,baseSchema:e})}:Reflect.get(e,t,r)}}),Cn=l.z.object({value:l.z.array(l.z.string()).optional(),defaultValue:l.z.string().optional()}),It=n=>{const e=S(n),t=Cn.passthrough().safeParse(e==null?void 0:e.typeBlueId);return t.success?t.data:null},On=n=>e=>{const t=S(e),r=typeof n=="string"?{value:[n]}:n,s=An(e);return K(s,{...t,typeBlueId:{...(t==null?void 0:t.typeBlueId)||{},...r}})};class ge{static resolveBlueId(e){var i;const t=It(e);if(u.isNullable(t))return null;const r=t.defaultValue;if(u.isNonNullable(r))return r;const s=(i=t.value)==null?void 0:i[0];return u.isNonNullable(s)?s:ge.getRepositoryBlueId(t,e)}static getRepositoryBlueId(e,t){throw new Error("Not implemented")}}class v{static isTypeOf(e,t,r){var o;const s=ge.resolveBlueId(t),i=(o=e.getType())==null?void 0:o.getBlueId();if(u.isNullable(s)||u.isNullable(i))return!1;if(s===i)return!0;if(r!=null&&r.checkSchemaExtensions&&u.isNonNullable(r.typeSchemaResolver)){const c=r.typeSchemaResolver.resolveSchema(e);return v.checkSchemaExtension(c,t)}return!1}static checkSchemaExtension(e,t){if(!u.isNonNullable(e))return!1;const r=v.unwrapSchema(e),s=v.unwrapSchema(t);return ke(r,s)}static isWrapperType(e){return e instanceof l.ZodOptional||e instanceof l.ZodNullable||e instanceof l.ZodReadonly||e instanceof l.ZodBranded||e instanceof l.ZodEffects||e instanceof l.ZodLazy}static unwrapSchema(e){return _e(e)?e:v.isWrapperType(e)?e instanceof l.ZodEffects?v.unwrapSchema(e.innerType()):e instanceof l.ZodLazy?v.unwrapSchema(e.schema):v.unwrapSchema(e.unwrap()):e}}class Tt{constructor(e){f(this,"blueIdMap",new Map);this.registerSchemas(e)}registerSchemas(e){for(const t of e)this.registerSchema(t)}registerSchema(e){const t=ge.resolveBlueId(e);if(u.isNonNullable(t)){if(this.blueIdMap.has(t))throw new Error(`Duplicate BlueId value: ${t}`);this.blueIdMap.set(t,e)}}resolveSchema(e){const t=this.getEffectiveBlueId(e);return u.isNullable(t)?null:this.blueIdMap.get(t)}getEffectiveBlueId(e){const t=e.getType();return u.isNonNullable(t)&&u.isNonNullable(t.getBlueId())?t.getBlueId():u.isNonNullable(t)?C.calculateBlueIdSync(t):null}getBlueIdMap(){return new Map(this.blueIdMap)}}class Bt{static convertValue(e,t){var i;const r=(i=e.getType())==null?void 0:i.getBlueId(),s=e.getValue();return u.isNullable(s)?this.isPrimitive(t)?this.getDefaultPrimitiveValue(t):s:te===r?this.convertFromString(String(s),t):ne===r||s instanceof P?this.convertFromBigDecimal(new P(s==null?void 0:s.toString()),t):re===r||s instanceof E?this.convertFromBigInteger(new E(s==null?void 0:s.toString()),t):se===r||typeof s=="boolean"?this.convertFromBoolean(!!s,t):this.convertFromString(String(s),t)}static convertFromString(e,t){if(!t||t instanceof l.ZodString||t instanceof l.ZodEnum||t instanceof l.ZodNativeEnum)return e;if(t instanceof l.ZodNumber)return Number(e);if(t instanceof l.ZodBoolean)return e.toLowerCase()==="true";if(t instanceof l.ZodBigInt)return BigInt(e);throw new Error(`Cannot convert String to ${t._def.typeName}`)}static convertFromBigDecimal(e,t){if(t instanceof l.ZodNumber)return e.toNumber();if(t instanceof l.ZodString)return e.toString();throw new Error(`Cannot convert Number to ${t._def.typeName}`)}static convertFromBigInteger(e,t){if(t instanceof l.ZodNumber)return e.toNumber();if(t instanceof l.ZodBigInt)return BigInt(e.toString());if(t instanceof l.ZodString)return e.toString();throw new Error(`Cannot convert Number to ${t._def.typeName}`)}static convertFromBoolean(e,t){if(!t||t instanceof l.ZodBoolean)return e;if(t instanceof l.ZodString)return e.toString();if(t instanceof l.ZodNumber)return Number(e);if(t instanceof l.ZodBigInt)return BigInt(e);throw new Error(`Cannot convert Boolean to ${t._def.typeName}`)}static isPrimitive(e){return e?e instanceof l.ZodString||e instanceof l.ZodNumber||e instanceof l.ZodBoolean||e instanceof l.ZodBigInt:!1}static getDefaultPrimitiveValue(e){if(!e)return null;if(e instanceof l.ZodNumber)return 0;if(e instanceof l.ZodBoolean)return!1;if(e instanceof l.ZodString)return"";throw new Error(`Unsupported primitive type: ${e._def.typeName}`)}}class Dn{convert(e,t){return Bt.convertValue(e,t)}}class Fn{constructor(e){this.nodeToObjectConverter=e}canHandleStructuredData(e){return e instanceof l.ZodAny||e instanceof l.ZodObject||e instanceof l.ZodRecord||e instanceof l.ZodMap||e instanceof l.ZodUnknown}convert(e,t){return this.convertFields(e,t)}convertFields(e,t){if(t instanceof l.ZodIntersection){const r=t._def.left,s=t._def.right,i=this.convert(e,r),o=this.convert(e,s);return{...i,...o}}if(t instanceof l.ZodUnion)throw new Error("Union not supported");if(t instanceof l.ZodObject)return Object.keys(t.shape).reduce((s,i)=>{const o=e.getProperties(),c=t.shape[i],d=ft(c);if(u.isNonNullable(d)){const h=w.isString(d)?d:i,B=o==null?void 0:o[h],D=B?C.calculateBlueIdSync(B):void 0;return s[i]=D,s}const y=pt(c);if(u.isNonNullable(y)){const h=o==null?void 0:o[y];return s[i]=h==null?void 0:h.getName(),s}const I=ut(c);if(u.isNonNullable(I)){const h=o==null?void 0:o[I];return s[i]=h==null?void 0:h.getDescription(),s}if(i==="name"){const h=e.getName();return s[i]=h,s}if(i==="description"){const h=e.getDescription();return s[i]=h,s}const b=e.getContracts();if(i==="contracts"&&u.isNonNullable(b)&&this.canHandleStructuredData(c)){const h=Object.fromEntries(Object.entries(b).map(([D,oe])=>[D,T.get(oe)])),B=p.deserialize(h);s[i]=this.nodeToObjectConverter.convert(B,c)}const m=o==null?void 0:o[i];if(u.isNullable(m))return s;const g=this.nodeToObjectConverter.convert(m,c);return s[i]=g,s},{});throw new Error("Unknown schema type, "+t._def.typeName)}}class Vn{constructor(e){this.nodeToObjectConverter=e}convert(e,t){const r=e.getItems();if(!r)return;const s=t.element;return r.map(o=>this.nodeToObjectConverter.convert(o,s))}}class jn{constructor(e){this.nodeToObjectConverter=e}convert(e,t){const r=e.getItems();if(!r)return;const s=t._def.valueType,i=r.map(o=>this.nodeToObjectConverter.convert(o,s));return new Set(i)}}class Rn{constructor(e){this.nodeToObjectConverter=e}canHandleStructuredData(e){return e instanceof l.ZodAny||e instanceof l.ZodObject||e instanceof l.ZodRecord||e instanceof l.ZodMap||e instanceof l.ZodUnknown}convert(e,t){const r=t.keySchema,s=t.valueSchema,i=new Map,o=e.getName();u.isNonNullable(o)&&i.set(L,o);const c=e.getDescription();u.isNonNullable(c)&&i.set(_,c);const d=e.getContracts();if(u.isNonNullable(d)&&this.canHandleStructuredData(s)){let I=!1;const b=Object.entries(d).reduce((m,[g,h])=>{try{const B=this.nodeToObjectConverter.convert(h,s);B!=null&&!Number.isNaN(B)&&(m[g]=B,I=!0)}catch{}return m},{});I&&i.set(ye,b)}const y=e.getProperties();return u.isNonNullable(y)&&Object.entries(y).forEach(([I,b])=>{const m=new a().setValue(I);m.setType(new a().setBlueId(te));const g=Bt.convertValue(m,r),h=this.nodeToObjectConverter.convert(b,s);i.set(g,h)}),t instanceof l.ZodRecord?Object.fromEntries(i):i}}class zn{convert(e){return T.get(e)}}class xn{convert(e){return T.get(e)}}class Zn{constructor(e){this.nodeToObjectConverter=e}convert(e,t){const r=e.getItems();if(!r)return;const s=t.items;return r.map((o,c)=>this.nodeToObjectConverter.convert(o,s[c]))}}const Un=l.z.union([l.z.literal("ZodString"),l.z.literal("ZodNumber"),l.z.literal("ZodBoolean"),l.z.literal("ZodBigInt"),l.z.literal("ZodArray"),l.z.literal("ZodSet"),l.z.literal("ZodMap"),l.z.literal("ZodRecord"),l.z.literal("ZodObject"),l.z.literal("ZodEnum"),l.z.literal("ZodNativeEnum"),l.z.literal("ZodUnknown"),l.z.literal("ZodAny"),l.z.literal("ZodTuple")]);class Mn{constructor(e){f(this,"converters",new Map);f(this,"complexObjectConverter");this.nodeToObjectConverter=e,this.registerConverters(),this.complexObjectConverter=new Fn(this.nodeToObjectConverter)}registerConverters(){const e=new Dn,t=new Vn(this.nodeToObjectConverter),r=new Zn(this.nodeToObjectConverter),s=new jn(this.nodeToObjectConverter),i=new Rn(this.nodeToObjectConverter);this.converters.set("ZodString",e),this.converters.set("ZodNumber",e),this.converters.set("ZodBoolean",e),this.converters.set("ZodBigInt",e),this.converters.set("ZodEnum",e),this.converters.set("ZodNativeEnum",e),this.converters.set("ZodUnknown",new zn),this.converters.set("ZodAny",new xn),this.converters.set("ZodArray",t),this.converters.set("ZodTuple",r),this.converters.set("ZodSet",s),this.converters.set("ZodMap",i),this.converters.set("ZodRecord",i),this.converters.set("ZodObject",this.complexObjectConverter)}getConverter(e){const t=this.getSchemaTypeName(e);return this.converters.get(t)??this.complexObjectConverter}isWrapperType(e){return e instanceof l.ZodOptional||e instanceof l.ZodNullable||e instanceof l.ZodReadonly||e instanceof l.ZodBranded||e instanceof l.ZodEffects||e instanceof l.ZodLazy}getSchemaTypeName(e){if(this.isWrapperType(e))return e instanceof l.ZodEffects?this.getSchemaTypeName(e.innerType()):e instanceof l.ZodLazy?this.getSchemaTypeName(e.schema):this.getSchemaTypeName(e.unwrap());const t=e._def.typeName;try{return Un.parse(t)}catch{throw new Error(`Schema type name ${t} is not supported`)}}}class $n{constructor(e){f(this,"converterFactory");this.typeSchemaResolver=e,this.converterFactory=new Mn(this)}convert(e,t){var o;const r=(o=this.typeSchemaResolver)==null?void 0:o.resolveSchema(e),s=v.unwrapSchema(t);if(_e(s))return e;let i=s;return v.checkSchemaExtension(r,s)&&u.isNonNullable(r)&&(i=r),this.convertWithType(e,i)}convertWithType(e,t){return this.converterFactory.getConverter(t).convert(e,t)}}class me{fetchFirstByBlueId(e){const t=this.fetchByBlueId(e);return t&&t.length>0?t[0]:null}}function Ln(n){return new class extends me{fetchByBlueId(e){return n(e)}}}class _n extends me{constructor(t){super();f(this,"nodeProviders");this.nodeProviders=t}fetchByBlueId(t){for(const r of this.nodeProviders){const s=r.fetchByBlueId(t);if(s&&s.length>0)return s}return[]}fetchFirstByBlueId(t){for(const r of this.nodeProviders){const s=r.fetchFirstByBlueId(t);if(s)return s}return null}getNodeProviders(){return this.nodeProviders}}const we=$.types.float.options,kn={...we,construct:n=>{const e=n.replace(/_/g,"").toLowerCase();if(!u.isPreciseNumberString(e))return new P(e);if(we.construct)return we.construct(n)}},Gn=new $.Type("tag:yaml.org,2002:float",kn),ve=$.types.int.options,Yn={...ve,construct:n=>{let e=n;if(e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),!u.isPreciseNumberString(e))return new E(e);if(ve.construct)return ve.construct(n)}},Jn=new $.Type("tag:yaml.org,2002:int",Yn),Nt=$.CORE_SCHEMA.extend({implicit:[Gn,Jn]}),J=n=>{const e=$.load(n,{schema:Nt});return e===void 0?void 0:e},Hn=n=>$.dump(n,{schema:Nt,replacer:(e,t)=>{if(A(t)){if(G(t)){const r=new z(Number.MIN_SAFE_INTEGER.toString()),s=new z(Number.MAX_SAFE_INTEGER.toString());if(t.lt(r)||t.gt(s))return t.toString()}return t.toNumber()}return t}}),wt=`- type:
|
|
1
|
+
"use strict";var Ut=Object.defineProperty;var Lt=(r,e,t)=>e in r?Ut(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var h=(r,e,t)=>Lt(r,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("@blue-labs/shared-utils"),c=require("zod"),_t=require("bs58"),x=require("big.js"),v=require("radash"),kt=require("js-sha256"),Jt=require("crypto"),Gt=require("base32.js"),_=require("js-yaml"),nt=r=>r&&r.__esModule?r:{default:r},oe=nt(_t),we=nt(Jt);class Yt{static get(e,t,n,s=!0){if(d.isNullable(t)||!t.startsWith("/"))throw new Error(`Invalid path: ${t}`);if(t==="/"){const o=e.getValue();return s&&o!==void 0?o:e}const i=t.substring(1).split("/");return this.getRecursive(e,i,0,n,s)}static getRecursive(e,t,n,s,i){if(n===t.length-1&&!i)return this.getNodeForSegment(e,t[n],s,!1);if(n===t.length){const a=e.getValue();return i&&a!==void 0?a:e}const o=t[n],l=this.getNodeForSegment(e,o,s,!0);if(l)return this.getRecursive(l,t,n+1,s,i)}static getNodeForSegment(e,t,n,s){let i;const o=e.getProperties();if(o&&t in o)i=o[t];else switch(t){case"name":{const l=e.getName();i=d.isNonNullable(l)?new u().setValue(l):new u;break}case"description":{const l=e.getDescription();i=d.isNonNullable(l)?new u().setValue(l):new u;break}case"type":i=e.getType()??new u;break;case"itemType":i=e.getItemType()??new u;break;case"keyType":i=e.getKeyType()??new u;break;case"valueType":i=e.getValueType()??new u;break;case"value":{const l=e.getValue();i=new u().setValue(l??null);break}case"blueId":{const l=e.getBlueId();i=d.isNonNullable(l)?new u().setValue(l):new u;break}case"blue":i=e.getBlue();break;case"items":{const l=e.getItems();i=new u().setItems(l);break}case"properties":{const l=e.getProperties();i=new u().setProperties(l);break}case"contracts":{const l=e.getContracts();i=new u().setContracts(l);break}default:{if(/^\d+$/.test(t)){const l=parseInt(t,10),a=e.getItems();a&&l>=0&&l<a.length?i=a[l]:i=void 0}else i=void 0;break}}if(i)return s&&n?this.link(i,n):i}static link(e,t){const n=t(e);return d.isNonNullable(n)?n:e}}class P extends x{constructor(e){super(e)}}class C extends x{constructor(e){super(e)}}const J="name",G="description",pe="type",ze="itemType",Ze="keyType",Ue="valueType",Ie="value",Le="items",U="blueId",_e="blue",Te="contracts",Kt=[J,G,pe,ze,Ze,Ue,Ie,Le,U,_e,Te],Wt="Text",Ht="Double",qt="Integer",Xt="Boolean",Qt="List",er="Dictionary",ke=[Wt,Ht,qt,Xt],st=[...ke,Qt,er],H="F92yo19rCcbBoBSpUA5LRxpfDejJDAaP1PRxxbWAraVP",q="68ryJtnmui4j5rCZWUnkZ3DChtmEb7Z9F8atn1mBSM3L",X="DHmxTkFbXePZHCHCYmQr2dSzcNLcryFVjXVHkdQrrZr8",Q="EL6AjrbJsxTWRTPzY8WR8Y2zAMXRbydQj83PcZwuAHbo",it="G8wmfjEqugPEEXByMYWJXiEdbLToPRWNQEekNxrxfQWB",ot="294NBTj2mFRL3RB4kDRUSckwGg7Kzj6T8CTAFeR1kcSA",lt=[H,q,X,Q],ue=[...lt,it,ot];Object.fromEntries(st.map((r,e)=>[r,ue[e]]));const tr=Object.fromEntries(ue.map((r,e)=>[r,st[e]])),j=class j{constructor(e){h(this,"name");h(this,"description");h(this,"type");h(this,"itemType");h(this,"keyType");h(this,"valueType");h(this,"value");h(this,"items");h(this,"properties");h(this,"contracts");h(this,"blueId");h(this,"blue");h(this,"inlineValue",!1);this.name=e}getName(){return this.name}setName(e){return this.name=e,this}getDescription(){return this.description}setDescription(e){return this.description=e,this}getType(){return this.type}setType(e){return typeof e=="string"?this.type=new j().setValue(e).setInlineValue(!0):this.type=e,this}getItemType(){return this.itemType}setItemType(e){return typeof e=="string"?this.itemType=new j().setValue(e).setInlineValue(!0):this.itemType=e,this}getKeyType(){return this.keyType}setKeyType(e){return typeof e=="string"?this.keyType=new j().setValue(e).setInlineValue(!0):this.keyType=e,this}getValueType(){return this.valueType}setValueType(e){return typeof e=="string"?this.valueType=new j().setValue(e).setInlineValue(!0):this.valueType=e,this}getValue(){var t;const e=(t=this.type)==null?void 0:t.getBlueId();if(d.isNonNullable(e)&&d.isNonNullable(this.value)){if(e===X&&typeof this.value=="string")return new P(this.value);if(e===q&&typeof this.value=="string"){const n=new C(this.value),s=parseFloat(n.toString());return new C(s.toString())}else if(e===Q&&typeof this.value=="string")return this.value.toLowerCase()==="true"}return this.value}setValue(e){return typeof e=="number"?e%1===0?this.value=new P(e.toString()):this.value=new C(e.toString()):this.value=e,this}getItems(){return this.items}setItems(e){return this.items=e,this}addItems(...e){return this.items||(this.items=[]),this.items.push(...e),this}getProperties(){return this.properties}setProperties(e){return this.properties=e,this}addProperty(e,t){return this.properties||(this.properties={}),this.properties[e]=t,this}removeProperty(e){return this.properties&&delete this.properties[e],this}getContracts(){return this.contracts}setContracts(e){return this.contracts=e,this}addContract(e,t){return this.contracts||(this.contracts={}),this.contracts[e]=t,this}removeContract(e){return this.contracts&&delete this.contracts[e],this}getBlueId(){return this.blueId}setBlueId(e){return this.blueId=e,this}getBlue(){return this.blue}setBlue(e){return this.blue=e,this}isInlineValue(){return this.inlineValue}setInlineValue(e){return this.inlineValue=e,this}get(e,t){return Yt.get(this,e,t)}clone(){var t,n,s,i,o,l;const e=new j(this.name);return e.description=this.description,e.type=(t=this.type)==null?void 0:t.clone(),e.itemType=(n=this.itemType)==null?void 0:n.clone(),e.keyType=(s=this.keyType)==null?void 0:s.clone(),e.valueType=(i=this.valueType)==null?void 0:i.clone(),e.value=this.value,e.items=(o=this.items)==null?void 0:o.map(a=>a.clone()),this.properties&&(e.properties=Object.fromEntries(Object.entries(this.properties).map(([a,f])=>[a,f.clone()]))),this.contracts&&(e.contracts=Object.fromEntries(Object.entries(this.contracts).map(([a,f])=>[a,f.clone()]))),e.blueId=this.blueId,e.blue=(l=this.blue)==null?void 0:l.clone(),e.inlineValue=this.inlineValue,e}toString(){return`BlueNode{name='${this.name}', description='${this.description}', type=${this.type}, itemType=${this.itemType}, keyType=${this.keyType}, valueType=${this.valueType}, value=${this.value}, items=${this.items}, properties=${this.properties}, contracts=${this.contracts}, blueId='${this.blueId}', blue=${this.blue}, inlineValue=${this.inlineValue}}`}};h(j,"INTEGER",new j("Integer"));let u=j;class Z{static isPotentialBlueId(e){if(!e||e.length===0||!this.BLUE_ID_PATTERN.test(e))return!1;const t=e.split("#"),n=t[0],s=n.length;if(s<this.MIN_BLUE_ID_LENGTH||s>this.MAX_BLUE_ID_LENGTH)return!1;try{if(oe.default.decode(n).length!==32)return!1}catch{return!1}if(t.length>1)try{if(Number(t[1])<0)return!1}catch{return!1}return!0}}h(Z,"MIN_BLUE_ID_LENGTH",41),h(Z,"MAX_BLUE_ID_LENGTH",45),h(Z,"BLUE_ID_PATTERN",/^[1-9A-HJ-NP-Za-km-z]{41,45}(?:#\d+)?$/);const rr=c.z.string().max(Z.MAX_BLUE_ID_LENGTH,{message:"Blue Id has a maximum length of 45 characters"}).min(Z.MIN_BLUE_ID_LENGTH,{message:"Blue Id has a minimum length of 41 characters"}).refine(r=>{try{return oe.default.decode(r),!0}catch{return!1}},{message:"Blue Id must be a valid Base58 string"}),Y=c.z.lazy(()=>c.z.record(c.z.unknown()).and(c.z.object({blueId:c.z.string().optional(),name:c.z.string().optional(),description:c.z.string().optional(),type:Y.optional(),value:c.z.union([c.z.string(),c.z.number(),c.z.boolean()]).optional().nullable(),items:c.z.array(Y).optional()}))),de=c.z.object({blueId:c.z.string().optional(),name:c.z.string().optional(),description:c.z.string().optional(),type:Y.optional()}),nr=de.extend({value:c.z.string().optional()}),sr=de.extend({value:c.z.number().optional()}),ir=de.extend({value:c.z.boolean().optional()}),or=de.extend({items:c.z.array(c.z.string()).optional()}),lr=r=>Y.safeParse(r).success,ct=r=>d.isNonNullable(r)&&"blueId"in r&&d.isNonNullable(r.blueId),cr=r=>d.isNonNullable(r)&&"name"in r&&d.isNonNullable(r.name),at=r=>d.isNonNullable(r)&&"items"in r&&d.isNonNullable(r.items),ut=r=>d.isNonNullable(r)&&"type"in r&&d.isNonNullable(r.type),dt=r=>d.isNonNullable(r)&&"value"in r&&d.isNonNullable(r.value),ar=(r,e)=>r.required({type:!0}).safeParse(e).success,O=r=>r instanceof x,K=r=>O(r)&&r instanceof P,ht=r=>O(r)&&r instanceof C,ur=c.z.lazy(()=>c.z.record(le)),dr=c.z.lazy(()=>c.z.union([c.z.array(le),c.z.array(le).readonly()])),le=c.z.lazy(()=>c.z.union([d.jsonPrimitiveSchema,ur,dr,c.z.instanceof(x)])),Je=r=>v.isObject(r)&&!v.isArray(r)&&!d.isReadonlyArray(r)&&!O(r),Ge=r=>v.isArray(r)||d.isReadonlyArray(r),hr=r=>Ge(r)||Je(r)||O(r)||d.isJsonPrimitive(r);class p{static deserialize(e){return p.handleNode(e)}static handleNode(e){if(e===void 0)throw new Error("This is not a valid JSON-like value. Found 'undefined' as a value.");if(Je(e)){const t=new u,n={},s={};return Object.entries(e).forEach(([i,o])=>{switch(i){case J:if(o==null)t.setName(void 0);else{if(typeof o!="string")throw new Error(`The ${J} field must be a string.`);t.setName(o)}break;case G:if(o==null)t.setDescription(void 0);else{if(typeof o!="string")throw new Error(`The ${G} field must be a string.`);t.setDescription(o)}break;case pe:t.setType(p.handleNode(o));break;case ze:t.setItemType(p.handleNode(o));break;case Ze:t.setKeyType(p.handleNode(o));break;case Ue:t.setValueType(p.handleNode(o));break;case Ie:t.setValue(p.handleValue(o));break;case U:if(typeof o!="string")throw new Error(`The ${U} field must be a string.`);t.setBlueId(o);break;case Le:t.setItems(p.handleArray(o));break;case _e:t.setBlue(p.handleNode(o));break;case Te:v.isObject(o)&&!v.isArray(o)&&!d.isReadonlyArray(o)&&Object.entries(o).forEach(([l,a])=>{s[l]=p.handleNode(a)});break;default:n[i]=p.handleNode(o);break}}),Object.keys(n).length>0&&t.setProperties(n),Object.keys(s).length>0&&t.setContracts(s),t}else{if(Ge(e))return new u().setItems(p.handleArray(e));{const t=e;return new u().setValue(p.handleValue(t)).setInlineValue(!0)}}}static handleValue(e){if(e==null)return null;if(typeof e=="string")return e;if(typeof e=="number"||O(e))if(K(e)||Number.isSafeInteger(e)){const t=new P(e.toString()),n=Number.MIN_SAFE_INTEGER,s=Number.MAX_SAFE_INTEGER;return t.lt(n)?new P(n.toString()):t.gt(s)?new P(s.toString()):t}else{const t=parseFloat(e.toString());return new C(t.toString())}else if(typeof e=="boolean")return e;throw new Error(`Can't handle node: ${JSON.stringify(e)}`)}static handleArray(e){if(e!=null){if(v.isObject(e)&&!Array.isArray(e))return[p.handleNode(e)];if(Array.isArray(e))return e.map(p.handleNode);throw new Error("Expected an array node")}}}function fr(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var ve,Qe;function pr(){return Qe||(Qe=1,ve=function r(e){if(typeof e=="number"&&isNaN(e))throw new Error("NaN is not allowed");if(typeof e=="number"&&!isFinite(e))throw new Error("Infinity is not allowed");return e===null||typeof e!="object"?JSON.stringify(e):e.toJSON instanceof Function?r(e.toJSON()):Array.isArray(e)?`[${e.reduce((s,i,o)=>`${s}${o===0?"":","}${r(i===void 0||typeof i=="symbol"?null:i)}`,"")}]`:`{${Object.keys(e).sort().reduce((n,s)=>{if(e[s]===void 0||typeof e[s]=="symbol")return n;const i=n.length===0?"":",";return`${n}${i}${r(s)}:${r(e[s])}`},"")}}`}),ve}var yr=pr();const gr=fr(yr);class ft{static canonicalize(e){return gr(e)}}const Ee=typeof process<"u"&&process.versions!=null&&process.versions.node!=null,ge=class ge{constructor(){h(this,"browserCrypto");this.browserCrypto=this.initBrowserCrypto()}static getInstance(){return this.instance||(this.instance=new ge),this.instance}initBrowserCrypto(){return Ee?null:"crypto"in globalThis?globalThis.crypto:null}hasNodeCrypto(){return Ee&&!!we.default&&typeof we.default.createHash=="function"}getBrowserCrypto(){return this.browserCrypto}getNodeCrypto(){return Ee?we.default:null}};h(ge,"instance");let Ve=ge;class pt{constructor(){h(this,"cryptoEnv",Ve.getInstance())}applySync(e){const t=this.canonicalizeInput(e),n=this.cryptoEnv.hasNodeCrypto()?this.sha256Sync(t):this.sha256SyncBrowser(t);return oe.default.encode(new Uint8Array(n))}async apply(e){const t=this.canonicalizeInput(e),n=this.cryptoEnv.hasNodeCrypto()?this.sha256Sync(t):await this.sha256Async(t);return oe.default.encode(new Uint8Array(n))}canonicalizeInput(e){const t=ft.canonicalize(e);if(typeof t!="string")throw new Error("Canonized value must be a string");return t}sha256Sync(e){const t=this.cryptoEnv.getNodeCrypto();if(!t)throw new Error("Synchronous SHA-256 is not available in this environment");return t.createHash("sha256").update(e).digest()}sha256SyncBrowser(e){return kt.sha256.arrayBuffer(e)}async sha256Async(e){if(this.cryptoEnv.hasNodeCrypto())return this.sha256Sync(e);const t=this.cryptoEnv.getBrowserCrypto();if(!t)throw new Error("crypto is not available in this environment");const s=new TextEncoder().encode(e);return t.subtle.digest("SHA-256",s)}}class y{static get(e,t="official"){var fe;const n=e.getValue(),s=this.handleValue(n);if(s!==void 0&&t==="simple")return s;const i=(fe=e.getItems())==null?void 0:fe.map(F=>y.get(F,t));if(i!==void 0&&t==="simple")return i;const o=e.getName(),l=e.getDescription();if(t==="original"&&o===void 0&&l===void 0){if(s!==void 0)return s;if(i!==void 0)return i}const a={};o!==void 0&&(a[J]=o),l!==void 0&&(a[G]=l);const f=e.getType();if(t==="official"&&n!==void 0&&f===void 0){const F=this.inferTypeBlueId(n);F!==null&&(a[pe]={[U]:F})}else f!==void 0&&(a[pe]=y.get(f,t));const I=e.getItemType();I!==void 0&&(a[ze]=y.get(I,t));const T=e.getKeyType();T!==void 0&&(a[Ze]=y.get(T,t));const b=e.getValueType();b!==void 0&&(a[Ue]=y.get(b,t)),s!==void 0&&(a[Ie]=s),i!==void 0&&(a[Le]=i);const m=e.getBlueId();m!==void 0&&(a[U]=m);const g=e.getBlue();g!==void 0&&(a[_e]=g);const B=e.getContracts();if(B!==void 0){const F={};Object.entries(B).forEach(([Be,Zt])=>{F[Be]=y.get(Zt,t)}),a[Te]=F}const D=e.getProperties();return D!==void 0&&Object.entries(D).forEach(([F,Be])=>{a[F]=y.get(Be,t)}),a}static handleValue(e){if(O(e)){if(K(e)){const t=new x(Number.MIN_SAFE_INTEGER.toString()),n=new x(Number.MAX_SAFE_INTEGER.toString());if(e.lt(t)||e.gt(n))return e.toString()}return e.toNumber()}return e}static inferTypeBlueId(e){return typeof e=="string"?H:O(e)?K(e)?X:q:typeof e=="boolean"?Q:null}}const mr=r=>d.isJsonPrimitive(r)&&d.isNonNullable(r),M=class M{constructor(e){h(this,"hashProvider");this.hashProvider=e}static calculateBlueId(e){if(Array.isArray(e)){const n=e.map(s=>y.get(s));return M.INSTANCE.calculate(n)}const t=y.get(e);return M.INSTANCE.calculate(t)}static calculateBlueIdSync(e){if(Array.isArray(e)){const n=e.map(s=>y.get(s));return M.INSTANCE.calculateSync(n)}const t=y.get(e);return M.INSTANCE.calculateSync(t)}calculate(e){const t=this.cleanStructure(e);if(t===void 0)throw new Error("Object after cleaning cannot be null or undefined.");return this.internalCalculate(t,!1)}calculateSync(e){const t=this.cleanStructure(e);if(t===void 0)throw new Error("Object after cleaning cannot be null or undefined.");return this.internalCalculate(t,!0)}internalCalculate(e,t){return mr(e)||O(e)?this.applyHash(e.toString(),t):Array.isArray(e)||d.isReadonlyArray(e)?this.calculateList(e,t):this.calculateMap(e,t)}calculateMap(e,t){if(e[U]!==void 0)return e[U];const s=Object.keys(e).map(o=>{const l=e[o];if([J,Ie,G].includes(o))return t?[o,l]:Promise.resolve([o,l]);{const a=this.internalCalculate(l,t);return t?[o,{blueId:a}]:Promise.resolve(a).then(f=>[o,{blueId:f}])}}),i=o=>{const l={};for(const[a,f]of o)l[a]=f;return this.applyHash(l,t)};return t?i(s):Promise.all(s).then(i)}calculateList(e,t){if(e.length===0)throw new Error("Cannot calculate BlueId for an empty list.");let n=this.internalCalculate(e[0],t);const s=(i,o)=>t?this.applyHash([{blueId:i},{blueId:o}],!0):Promise.all([i,o]).then(([l,a])=>this.applyHash([{blueId:l},{blueId:a}],!1));for(let i=1;i<e.length;i++){const o=this.internalCalculate(e[i],t);n=s(n,o)}return n}applyHash(e,t){return t?this.hashProvider.applySync(e):this.hashProvider.apply(e)}cleanStructure(e){if(e!=null){if(d.isJsonPrimitive(e)||O(e))return e;if(Array.isArray(e)||d.isReadonlyArray(e)){const t=e.map(n=>this.cleanStructure(n)).filter(d.isNonNullable);return t.length>0?t:void 0}else if(typeof e=="object"){const t={};for(const n in e){const s=this.cleanStructure(e[n]);s!=null&&(t[n]=s)}return Object.keys(t).length>0?t:void 0}else return e}}};h(M,"INSTANCE",new M(new pt));let N=M;class br{static convert(e){const t=oe.default.decode(e),n=new Uint8Array(2+t.length);n[0]=18,n[1]=32,n.set(t,2);const s=new Uint8Array(2+n.length);return s[0]=1,s[1]=85,s.set(n,2),"b"+new Gt.Encoder({type:"rfc4648",lc:!0}).write(s).finalize().replace(/=/g,"")}}class V{static transform(e,t){const n=t(e.clone()),s=n.getType();s!==void 0&&n.setType(V.transform(s,t));const i=n.getItemType();i!==void 0&&n.setItemType(V.transform(i,t));const o=n.getKeyType();o!==void 0&&n.setKeyType(V.transform(o,t));const l=n.getValueType();l!==void 0&&n.setValueType(V.transform(l,t));const a=n.getItems();if(a!==void 0){const T=a.map(b=>V.transform(b,t));n.setItems(T)}const f=n.getProperties();if(f!==void 0){const T=Object.keys(f).reduce((b,m)=>(b[m]=V.transform(f[m],t),b),{});n.setProperties(T)}const I=n.getContracts();if(I!==void 0){const T=Object.keys(I).reduce((b,m)=>(b[m]=V.transform(I[m],t),b),{});n.setContracts(T)}return n}}const $=r=>!!r&&typeof r=="object"&&!Array.isArray(r)&&!(r instanceof u),R=r=>r instanceof P||r instanceof C,Ir=r=>r.replace(/~1/g,"/").replace(/~0/g,"~");function ee(r){if(r==="/")return[];if(!r.startsWith("/"))throw new Error(`Path must start with '/': ${r}`);return r.split("/").slice(1).map(Ir)}function W(r){if(r==="-")return-1;const e=typeof r=="number"?r:parseInt(r,10);if(isNaN(e))throw new Error(`Invalid array index (NaN) from '${r}'`);if(!Number.isFinite(e))throw new Error(`Invalid array index '${r}' results in non-finite number ${e}`);return e}function yt(r,e,t,n=!0){switch(e){case"name":return t?n?r.getName()??null:r:r.getName();case"description":return t?n?r.getDescription():r:r.getDescription();case"type":return r.getType();case"itemType":return r.getItemType();case"keyType":return r.getKeyType();case"valueType":return r.getValueType();case"value":return t?n?r.getValue()??null:r:r.getValue();case"blueId":return t?n?r.getBlueId()??null:r:r.getBlueId();case"blue":return r.getBlue();case"items":return r.getItems();case"properties":return r.getProperties();case"contracts":return r.getContracts();default:return}}function et(r,e,t=!0){if(r instanceof u){const n=yt(r,e,!0,t);if(n!==void 0||["name","description","type","itemType","keyType","valueType","value","blueId","blue","items","properties","contracts"].includes(e))return n;if(/^-?\d+$/.test(e)&&e!=="-"){const i=r.getItems(),o=parseInt(e,10);return i&&o>=0&&o<i.length?i[o]:void 0}const s=r.getProperties();return s&&e in s?s[e]:void 0}if(Array.isArray(r)){if(e==="-")return;const n=W(e);return n>=0&&n<r.length?r[n]:void 0}if($(r))return r[e]}function te(r,e){if(e.length===0)return{parent:r,key:"value",actualTarget:r.getValue()??r};let t=r;for(let s=0;s<e.length-1;++s){const i=e[s],o=et(t,i);if(o===void 0)throw new Error(`Cannot resolve '/${e.slice(0,s+1).join("/")}'`);t=o}const n=e[e.length-1];if(t instanceof u){const s=et(t,n,!1);if((typeof s!="object"||s===null||R(s))&&!(s instanceof u)&&!Array.isArray(s)&&["name","description","value","blueId"].includes(n))return{parent:t,key:n,actualTarget:s}}return Array.isArray(t)&&n==="-"?{parent:t,key:"-"}:t instanceof u&&t.getItems()&&n==="-"?{parent:t,key:"-"}:{parent:t,key:Array.isArray(t)?W(n):n}}function Ye(r,e){var t;if(r instanceof u){const n=e,s=yt(r,n,!1);if(s!==void 0||["name","description","type","itemType","keyType","valueType","value","blueId","blue","items","properties","contracts"].includes(n))return s;if(typeof e=="number"||typeof e=="string"&&/^\d+$/.test(e)){const i=r.getItems(),o=typeof e=="number"?e:parseInt(e,10);if(i&&o>=0&&o<i.length)return i[o]}return(t=r.getProperties())==null?void 0:t[n]}return Array.isArray(r)||$(r)?r[e]:r}function w(r){if(r instanceof u)return r;if(r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean"||R(r))return p.deserialize(r);const e=De(r);return p.deserialize(e)}function De(r){if(r===void 0)return null;if(r===null||typeof r!="object")return r;if(Array.isArray(r))return r.map(De);const e={};for(const[t,n]of Object.entries(r))e[t]=De(n);return e}function Ke(r,e,t){if(r instanceof u){const n=e;switch(n){case"name":r.setName(t);return;case"description":r.setDescription(t);return;case"type":r.setType(t instanceof u||typeof t=="string"||t===void 0?t:w(t));return;case"itemType":r.setItemType(t instanceof u||typeof t=="string"||t===void 0?t:w(t));return;case"keyType":r.setKeyType(t instanceof u||typeof t=="string"||t===void 0?t:w(t));return;case"valueType":r.setValueType(t instanceof u||typeof t=="string"||t===void 0?t:w(t));return;case"value":{const s=t;r.setValue(s===void 0?null:s);return}case"blueId":r.setBlueId(t);return;case"blue":r.setBlue(t instanceof u||t===void 0?t:w(t));return;case"items":r.setItems(t);return;case"properties":r.setProperties(t);return;case"contracts":r.setContracts(t);return;default:{if(t===void 0){const s=r.getProperties();s&&n in s&&delete s[n]}else r.getProperties()||r.setProperties({}),r.addProperty(n,t instanceof u?t:w(t));return}}}Array.isArray(r)?r.splice(W(e),1):$(r)&&(t===void 0?delete r[e]:r[e]=t)}function Tr(r,e,t,n){let s=-1;if(e!=="-"&&(s=typeof e=="number"?e:parseInt(e,10),isNaN(s)))throw new Error(`Invalid numeric key for BlueNode item operation: ${e}`);if(s<-1)throw new Error(`Invalid array index for BlueNode items: ${s}`);let i=r.getItems();if(i||(i=[],r.setItems(i)),!n&&s!==-1&&s>i.length)throw new Error(`ADD operation failed: Target array index '${s}' is greater than array length ${i.length}.`);if(e==="-")i.push(t);else if(n){if(s>=0)if(s<i.length)i[s]=t;else{for(let o=i.length;o<s;o++)i.push(p.deserialize(null));i.push(t)}}else i.splice(s,0,t)}function ye(r,e,t,n){if(Array.isArray(r)){const s=e==="-"?r.length:W(e);if(!n&&s>r.length)throw new Error(`ADD operation failed: Target array index '${s}' is greater than array length ${r.length}. Path involving key '${e}'.`);if(s<0&&e!=="-")throw new Error(`Invalid negative array index: ${e}`);const i=w(t);if(n){if(s>=0&&s<r.length)r[s]=i;else if(s>=r.length){for(let o=r.length;o<s;o++)r.push(p.deserialize(null));r.push(i)}}else r.splice(s,0,i);return}if(r instanceof u){e==="-"||typeof e=="number"&&!isNaN(e)||typeof e=="string"&&/^\d+$/.test(e)?Tr(r,e,w(t),n):Ke(r,e,t);return}if($(r)){r[e]=w(t);return}throw new Error(`Cannot insert into parent of type ${typeof r}`)}function Nr(r,e){if(Array.isArray(r)){const t=W(e);t===-1&&e==="-"?r.length>0&&r.pop():t>=0&&t<r.length&&r.splice(t,1);return}if(r instanceof u){if(typeof e=="number"||typeof e=="string"&&/^-?\d+$/.test(e)){const t=r.getItems();if(t){const n=W(e);n===-1&&e==="-"?t.length>0&&t.pop():n>=0&&n<t.length&&t.splice(n,1),t.length===0&&r.setItems(void 0);return}}Ke(r,e,void 0)}else $(r)&&delete r[e]}function Fe(r){if(r instanceof u)return r.clone();if(Array.isArray(r))return r.map(t=>Fe(t));if($(r)){const e={};return Object.keys(r).forEach(t=>{e[t]=Fe(r[t])}),e}return r}function z(r,e){if(r===e||r instanceof u&&(r.isInlineValue()||r.getValue()!==void 0)&&z(r.getValue()??null,e)||e instanceof u&&(e.isInlineValue()||e.getValue()!==void 0)&&z(r,e.getValue()??null))return!0;if(r instanceof u&&e instanceof u||R(r)&&R(e)||R(r)&&typeof e=="number"||typeof r=="number"&&R(e))return r.toString()===e.toString();if(Array.isArray(r)&&Array.isArray(e))return r.length===e.length&&r.every((t,n)=>z(t,e[n]));if($(r)&&$(e)){const t=Object.keys(r),n=Object.keys(e);return t.length===n.length&&t.every(s=>z(r[s],e[s]))}return!1}function gt(r,e){const{parent:t,key:n}=te(r,ee(e));return Ye(t,n)}function mt(r,e,t){const n=ee(e);if(n.length===0&&e==="/"){const o=w(t);r.setValue(o.getValue()??null),o.getItems()?r.setItems(o.getItems()):r.setItems(void 0);return}const{parent:s,key:i}=te(r,n);ye(s,i,t,!0)}function Br(r,e,t){const n=ee(e);if(n.length===0&&e==="/"){if(r.getItems()&&Array.isArray(t)){const o=w(t);o.getItems()?(r.setItems(o.getItems()),r.setValue(null)):(r.setValue(o.getValue()??null),r.setItems(void 0))}else{const o=w(t);r.setValue(o.getValue()??null),o.getItems()&&r.setItems(o.getItems())}return!0}const{parent:s,key:i}=te(r,n);return ye(s,i,t,!1),!0}function wr(r,e,t){const n=ee(e);if(n.length===0&&e==="/"){const l=w(t);return r.setValue(l.getValue()??null),l.getItems()?r.setItems(l.getItems()):r.setItems(void 0),!0}const{parent:s,key:i,actualTarget:o}=te(r,n);if(o!==void 0&&s instanceof u)Ke(s,i,t);else{const l=Ye(s,i),a=Array.isArray(s)||s instanceof u&&s.getItems()&&(typeof i=="number"||typeof i=="string"&&/^\d+$/.test(i));if(l===void 0){if(a)throw new Error(`REPLACE failed: Target array index '${i.toString()}' is out of bounds or does not exist at path '${e}'.`);ye(s,i,t,!0)}else ye(s,i,t,!0)}return!0}function bt(r,e){const t=ee(e);if(t.length===0&&e==="/")return r.setValue(null),r.setItems(void 0),r.setProperties(void 0),!0;const{parent:n,key:s}=te(r,t);return Nr(n,s),!0}function vr(r,e,t){const n=Fe(gt(r,e));return mt(r,t,n),!0}function Er(r,e,t){const n=ee(e),{parent:s,key:i}=te(r,n),o=Ye(s,i);if(o===void 0)throw new Error(`MOVE failed: 'from' location '${e}' does not exist.`);return bt(r,e)?(mt(r,t,o),!0):!1}function Sr(r,e,t){const n=gt(r,e);let s=t;if(n instanceof u)if((t===null||typeof t=="string"||typeof t=="number"||typeof t=="boolean"||R(t))&&(n.isInlineValue()||n.getValue()!==void 0)){if(!z(n.getValue()??null,t))throw new Error(`TEST failed at '${e}': Expected ${JSON.stringify(t)}, got ${JSON.stringify(n.getValue()??null)}`);return!0}else typeof t=="object"&&!(t instanceof u)&&(s=w(t));else if(R(n)&&typeof t=="number")n instanceof P?s=new P(t.toString()):n instanceof C&&(s=new C(t.toString()));else if((n===null||typeof n=="string"||typeof n=="number"||typeof n=="boolean")&&R(t)){const i=t;!z(n,i.toString())&&(typeof n=="number"&&parseFloat(i.toString()))}if(!z(n,s)){const i=n instanceof u?n.toString():JSON.stringify(n),o=s instanceof u?s.toString():JSON.stringify(s);throw new Error(`TEST failed at '${e}': Expected ${o}, got ${i}`)}return!0}function Pr(r,e){switch(e.op){case"add":return Br(r,e.path,e.val);case"replace":return wr(r,e.path,e.val);case"remove":return bt(r,e.path);case"copy":return vr(r,e.from,e.path);case"move":return Er(r,e.from,e.path);case"test":return Sr(r,e.path,e.val)}}function Ar(r,e,t=!1){const n=t?r:r.clone();return Pr(n,e),n}const Se=Symbol.for("zod-schema-annotations");function Cr(){if(typeof globalThis<"u")return globalThis;if(typeof global<"u")return global;if(typeof window<"u")return window;if(typeof self<"u")return self;throw new Error("Unable to locate global object")}function It(){const r=Cr();return Se in r||(r[Se]=new WeakMap),r[Se]}function re(r,e){const t=It(),n=t.get(r)||{};return t.set(r,{...n,...e}),r}const A=r=>It().get(r),Tt=r=>e=>{const t=A(e);return re(e,{...t,blueDescription:r})},Nt=r=>{const e=A(r);return d.isNonNullable(e)&&v.isString(e.blueDescription)?e.blueDescription:null},Or=r=>Tt(r)(c.z.string().optional()),Vr=c.z.union([c.z.string(),c.z.boolean()]),Bt=r=>e=>{const t=A(e);return re(e,{...t,blueId:r})},wt=r=>{const e=A(r),t=Vr.safeParse(e==null?void 0:e.blueId);return t.success?t.data:null},Dr=r=>Bt(r??!0)(c.z.string()),vt=r=>e=>{const t=A(e);return re(e,{...t,blueName:r})},Et=r=>{const e=A(r);return d.isNonNullable(e)&&v.isString(e.blueName)?e.blueName:null},Fr=r=>{const e=c.z.string().optional();return vt(r)(e)},St=()=>r=>{const e=A(r);return re(r,{...e,blueNode:!0})},Pt=r=>{const e=A(r);return d.isNonNullable(e)&&d.isNonNullable(e.blueNode)&&e.blueNode===!0?e.blueNode:null},We=r=>!!Pt(r),jr=()=>{const r=c.z.instanceof(u);return St()(r)},je="extendedFrom",At=({schema:r,baseSchema:e})=>{const t=A(r)||{};return re(r,{...t,[je]:e})},Ct=r=>{const e=A(r);return d.isNonNullable(e)&&e[je]?e[je]:null},He=(r,e)=>{const t=Ct(r);return d.isNullable(t)?!1:(t==null?void 0:t._def)===(e==null?void 0:e._def)?!0:He(t,e)},Rr=r=>new Proxy(r,{get(e,t,n){return t==="extend"?function(...s){const i=e.extend(...s);return At({schema:i,baseSchema:e})}:Reflect.get(e,t,n)}}),Mr=c.z.object({value:c.z.array(c.z.string()).optional(),defaultValue:c.z.string().optional()}),Ot=r=>{const e=A(r),t=Mr.passthrough().safeParse(e==null?void 0:e.typeBlueId);return t.success?t.data:null},xr=r=>e=>{const t=A(e),n=typeof r=="string"?{value:[r]}:r,s=Rr(e);return re(s,{...t,typeBlueId:{...(t==null?void 0:t.typeBlueId)||{},...n}})};class Ne{static resolveBlueId(e){var i;const t=Ot(e);if(d.isNullable(t))return null;const n=t.defaultValue;if(d.isNonNullable(n))return n;const s=(i=t.value)==null?void 0:i[0];return d.isNonNullable(s)?s:Ne.getRepositoryBlueId(t,e)}static getRepositoryBlueId(e,t){throw new Error("Not implemented")}}class S{static isTypeOf(e,t,n){var o;const s=Ne.resolveBlueId(t),i=(o=e.getType())==null?void 0:o.getBlueId();if(d.isNullable(s)||d.isNullable(i))return!1;if(s===i)return!0;if(n!=null&&n.checkSchemaExtensions&&d.isNonNullable(n.typeSchemaResolver)){const l=n.typeSchemaResolver.resolveSchema(e);return S.checkSchemaExtension(l,t)}return!1}static checkSchemaExtension(e,t){if(!d.isNonNullable(e))return!1;const n=S.unwrapSchema(e),s=S.unwrapSchema(t);return He(n,s)}static isWrapperType(e){return e instanceof c.ZodOptional||e instanceof c.ZodNullable||e instanceof c.ZodReadonly||e instanceof c.ZodBranded||e instanceof c.ZodEffects||e instanceof c.ZodLazy}static unwrapSchema(e){return We(e)?e:S.isWrapperType(e)?e instanceof c.ZodEffects?S.unwrapSchema(e.innerType()):e instanceof c.ZodLazy?S.unwrapSchema(e.schema):S.unwrapSchema(e.unwrap()):e}}class Vt{constructor(e){h(this,"blueIdMap",new Map);this.registerSchemas(e)}registerSchemas(e){for(const t of e)this.registerSchema(t)}registerSchema(e){const t=Ne.resolveBlueId(e);if(d.isNonNullable(t)){if(this.blueIdMap.has(t))throw new Error(`Duplicate BlueId value: ${t}`);this.blueIdMap.set(t,e)}}resolveSchema(e){const t=this.getEffectiveBlueId(e);return d.isNullable(t)?null:this.blueIdMap.get(t)}getEffectiveBlueId(e){const t=e.getType();return d.isNonNullable(t)&&d.isNonNullable(t.getBlueId())?t.getBlueId():d.isNonNullable(t)?N.calculateBlueIdSync(t):null}getBlueIdMap(){return new Map(this.blueIdMap)}}class Dt{static convertValue(e,t){var i;const n=(i=e.getType())==null?void 0:i.getBlueId(),s=e.getValue();return d.isNullable(s)?this.isPrimitive(t)?this.getDefaultPrimitiveValue(t):s:H===n?this.convertFromString(String(s),t):q===n||s instanceof C?this.convertFromBigDecimal(new C(s==null?void 0:s.toString()),t):X===n||s instanceof P?this.convertFromBigInteger(new P(s==null?void 0:s.toString()),t):Q===n||typeof s=="boolean"?this.convertFromBoolean(!!s,t):this.convertFromString(String(s),t)}static convertFromString(e,t){if(!t||t instanceof c.ZodString||t instanceof c.ZodEnum||t instanceof c.ZodNativeEnum)return e;if(t instanceof c.ZodNumber)return Number(e);if(t instanceof c.ZodBoolean)return e.toLowerCase()==="true";if(t instanceof c.ZodBigInt)return BigInt(e);throw new Error(`Cannot convert String to ${t._def.typeName}`)}static convertFromBigDecimal(e,t){if(t instanceof c.ZodNumber)return e.toNumber();if(t instanceof c.ZodString)return e.toString();throw new Error(`Cannot convert Number to ${t._def.typeName}`)}static convertFromBigInteger(e,t){if(t instanceof c.ZodNumber)return e.toNumber();if(t instanceof c.ZodBigInt)return BigInt(e.toString());if(t instanceof c.ZodString)return e.toString();throw new Error(`Cannot convert Number to ${t._def.typeName}`)}static convertFromBoolean(e,t){if(!t||t instanceof c.ZodBoolean)return e;if(t instanceof c.ZodString)return e.toString();if(t instanceof c.ZodNumber)return Number(e);if(t instanceof c.ZodBigInt)return BigInt(e);throw new Error(`Cannot convert Boolean to ${t._def.typeName}`)}static isPrimitive(e){return e?e instanceof c.ZodString||e instanceof c.ZodNumber||e instanceof c.ZodBoolean||e instanceof c.ZodBigInt:!1}static getDefaultPrimitiveValue(e){if(!e)return null;if(e instanceof c.ZodNumber)return 0;if(e instanceof c.ZodBoolean)return!1;if(e instanceof c.ZodString)return"";throw new Error(`Unsupported primitive type: ${e._def.typeName}`)}}class $r{convert(e,t){return Dt.convertValue(e,t)}}class zr{constructor(e){this.nodeToObjectConverter=e}canHandleStructuredData(e){return e instanceof c.ZodAny||e instanceof c.ZodObject||e instanceof c.ZodRecord||e instanceof c.ZodMap||e instanceof c.ZodUnknown}convert(e,t){return this.convertFields(e,t)}convertFields(e,t){if(t instanceof c.ZodIntersection){const n=t._def.left,s=t._def.right,i=this.convert(e,n),o=this.convert(e,s);return{...i,...o}}if(t instanceof c.ZodUnion)throw new Error("Union not supported");if(t instanceof c.ZodObject)return Object.keys(t.shape).reduce((s,i)=>{const o=e.getProperties(),l=t.shape[i],a=wt(l);if(d.isNonNullable(a)){const g=v.isString(a)?a:i,B=o==null?void 0:o[g],D=B?N.calculateBlueIdSync(B):void 0;return s[i]=D,s}const f=Et(l);if(d.isNonNullable(f)){const g=o==null?void 0:o[f];return s[i]=g==null?void 0:g.getName(),s}const I=Nt(l);if(d.isNonNullable(I)){const g=o==null?void 0:o[I];return s[i]=g==null?void 0:g.getDescription(),s}if(i==="name"){const g=e.getName();return s[i]=g,s}if(i==="description"){const g=e.getDescription();return s[i]=g,s}const T=e.getContracts();if(i==="contracts"&&d.isNonNullable(T)&&this.canHandleStructuredData(l)){const g=Object.fromEntries(Object.entries(T).map(([D,fe])=>[D,y.get(fe)])),B=p.deserialize(g);s[i]=this.nodeToObjectConverter.convert(B,l)}const b=o==null?void 0:o[i];if(d.isNullable(b))return s;const m=this.nodeToObjectConverter.convert(b,l);return s[i]=m,s},{});throw new Error("Unknown schema type, "+t._def.typeName)}}class Zr{constructor(e){this.nodeToObjectConverter=e}convert(e,t){const n=e.getItems();if(!n)return;const s=t.element;return n.map(o=>this.nodeToObjectConverter.convert(o,s))}}class Ur{constructor(e){this.nodeToObjectConverter=e}convert(e,t){const n=e.getItems();if(!n)return;const s=t._def.valueType,i=n.map(o=>this.nodeToObjectConverter.convert(o,s));return new Set(i)}}class Lr{constructor(e){this.nodeToObjectConverter=e}canHandleStructuredData(e){return e instanceof c.ZodAny||e instanceof c.ZodObject||e instanceof c.ZodRecord||e instanceof c.ZodMap||e instanceof c.ZodUnknown}convert(e,t){const n=t.keySchema,s=t.valueSchema,i=new Map,o=e.getName();d.isNonNullable(o)&&i.set(J,o);const l=e.getDescription();d.isNonNullable(l)&&i.set(G,l);const a=e.getContracts();if(d.isNonNullable(a)&&this.canHandleStructuredData(s)){let I=!1;const T=Object.entries(a).reduce((b,[m,g])=>{try{const B=this.nodeToObjectConverter.convert(g,s);B!=null&&!Number.isNaN(B)&&(b[m]=B,I=!0)}catch{}return b},{});I&&i.set(Te,T)}const f=e.getProperties();return d.isNonNullable(f)&&Object.entries(f).forEach(([I,T])=>{const b=new u().setValue(I);b.setType(new u().setBlueId(H));const m=Dt.convertValue(b,n),g=this.nodeToObjectConverter.convert(T,s);i.set(m,g)}),t instanceof c.ZodRecord?Object.fromEntries(i):i}}class _r{convert(e){return y.get(e)}}class kr{convert(e){return y.get(e)}}class Jr{constructor(e){this.nodeToObjectConverter=e}convert(e,t){const n=e.getItems();if(!n)return;const s=t.items;return n.map((o,l)=>this.nodeToObjectConverter.convert(o,s[l]))}}const Gr=c.z.union([c.z.literal("ZodString"),c.z.literal("ZodNumber"),c.z.literal("ZodBoolean"),c.z.literal("ZodBigInt"),c.z.literal("ZodArray"),c.z.literal("ZodSet"),c.z.literal("ZodMap"),c.z.literal("ZodRecord"),c.z.literal("ZodObject"),c.z.literal("ZodEnum"),c.z.literal("ZodNativeEnum"),c.z.literal("ZodUnknown"),c.z.literal("ZodAny"),c.z.literal("ZodTuple")]);class Yr{constructor(e){h(this,"converters",new Map);h(this,"complexObjectConverter");this.nodeToObjectConverter=e,this.registerConverters(),this.complexObjectConverter=new zr(this.nodeToObjectConverter)}registerConverters(){const e=new $r,t=new Zr(this.nodeToObjectConverter),n=new Jr(this.nodeToObjectConverter),s=new Ur(this.nodeToObjectConverter),i=new Lr(this.nodeToObjectConverter);this.converters.set("ZodString",e),this.converters.set("ZodNumber",e),this.converters.set("ZodBoolean",e),this.converters.set("ZodBigInt",e),this.converters.set("ZodEnum",e),this.converters.set("ZodNativeEnum",e),this.converters.set("ZodUnknown",new _r),this.converters.set("ZodAny",new kr),this.converters.set("ZodArray",t),this.converters.set("ZodTuple",n),this.converters.set("ZodSet",s),this.converters.set("ZodMap",i),this.converters.set("ZodRecord",i),this.converters.set("ZodObject",this.complexObjectConverter)}getConverter(e){const t=this.getSchemaTypeName(e);return this.converters.get(t)??this.complexObjectConverter}isWrapperType(e){return e instanceof c.ZodOptional||e instanceof c.ZodNullable||e instanceof c.ZodReadonly||e instanceof c.ZodBranded||e instanceof c.ZodEffects||e instanceof c.ZodLazy}getSchemaTypeName(e){if(this.isWrapperType(e))return e instanceof c.ZodEffects?this.getSchemaTypeName(e.innerType()):e instanceof c.ZodLazy?this.getSchemaTypeName(e.schema):this.getSchemaTypeName(e.unwrap());const t=e._def.typeName;try{return Gr.parse(t)}catch{throw new Error(`Schema type name ${t} is not supported`)}}}class Kr{constructor(e){h(this,"converterFactory");this.typeSchemaResolver=e,this.converterFactory=new Yr(this)}convert(e,t){var o;const n=(o=this.typeSchemaResolver)==null?void 0:o.resolveSchema(e),s=S.unwrapSchema(t);if(We(s))return e;let i=s;return S.checkSchemaExtension(n,s)&&d.isNonNullable(n)&&(i=n),this.convertWithType(e,i)}convertWithType(e,t){return this.converterFactory.getConverter(t).convert(e,t)}}class he{fetchFirstByBlueId(e){const t=this.fetchByBlueId(e);return t&&t.length>0?t[0]:null}}function Wr(r){return new class extends he{fetchByBlueId(e){return r(e)}}}class Hr extends he{constructor(t){super();h(this,"nodeProviders");this.nodeProviders=t}fetchByBlueId(t){for(const n of this.nodeProviders){const s=n.fetchByBlueId(t);if(s&&s.length>0)return s}return[]}fetchFirstByBlueId(t){for(const n of this.nodeProviders){const s=n.fetchFirstByBlueId(t);if(s)return s}return null}getNodeProviders(){return this.nodeProviders}}const Pe=_.types.float.options,qr={...Pe,construct:r=>{const e=r.replace(/_/g,"").toLowerCase();if(!d.isPreciseNumberString(e))return new C(e);if(Pe.construct)return Pe.construct(r)}},Xr=new _.Type("tag:yaml.org,2002:float",qr),Ae=_.types.int.options,Qr={...Ae,construct:r=>{let e=r;if(e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),!d.isPreciseNumberString(e))return new P(e);if(Ae.construct)return Ae.construct(r)}},en=new _.Type("tag:yaml.org,2002:int",Qr),Ft=_.CORE_SCHEMA.extend({implicit:[Xr,en]}),L=r=>{const e=_.load(r,{schema:Ft});return e===void 0?void 0:e},tn=r=>_.dump(r,{schema:Ft,replacer:(e,t)=>{if(O(t)){if(K(t)){const n=new x(Number.MIN_SAFE_INTEGER.toString()),s=new x(Number.MAX_SAFE_INTEGER.toString());if(t.lt(n)||t.gt(s))return t.toString()}return t.toNumber()}return t}}),jt=`- type:
|
|
2
2
|
blueId: 27B7fuxQCS1VAptiCPc2RMkKoutP5qxkh3uDxZ7dr6Eo
|
|
3
3
|
mappings:
|
|
4
4
|
Text: F92yo19rCcbBoBSpUA5LRxpfDejJDAaP1PRxxbWAraVP
|
|
@@ -9,19 +9,19 @@
|
|
|
9
9
|
Dictionary: 294NBTj2mFRL3RB4kDRUSckwGg7Kzj6T8CTAFeR1kcSA
|
|
10
10
|
- type:
|
|
11
11
|
blueId: FGYuTXwaoSKfZmpTysLTLsb8WzSqf43384rKZDkXhxD4
|
|
12
|
-
`,
|
|
13
|
-
description: TODO`,
|
|
12
|
+
`,rn=`name: Transformation
|
|
13
|
+
description: TODO`,nn=`name: Infer Basic Types For Untyped Values
|
|
14
14
|
type:
|
|
15
15
|
blueId: Ct1SGRGw1i47qjzm1ruiUdSZofeV6WevPTGuieVvbRS4
|
|
16
|
-
description: This transformation infers type details for Text, Integer, Number and Boolean.`,
|
|
16
|
+
description: This transformation infers type details for Text, Integer, Number and Boolean.`,sn=`name: Replace Inline Types with BlueIds
|
|
17
17
|
type:
|
|
18
18
|
blueId: Ct1SGRGw1i47qjzm1ruiUdSZofeV6WevPTGuieVvbRS4
|
|
19
|
-
description: This transformation replaces`,Xn=[wt,Wn,Kn,qn];class Qn extends me{constructor(){super();f(this,"blueIdToNodesMap",new Map);this.load()}fetchByBlueId(t){return this.blueIdToNodesMap.get(t)||[]}load(){for(const t of Xn){const r=J(t);if(r===void 0){console.error(`This content file is not valid YAML: ${t}`);continue}if(Array.isArray(r)){const s=r.map(o=>p.deserialize(o)),i=C.calculateBlueIdSync(s);this.blueIdToNodesMap.set(i,s)}else{const s=p.deserialize(r),i=C.calculateBlueIdSync(s);this.blueIdToNodesMap.set(i,[s])}}}}const fe=class fe extends me{constructor(){super();f(this,"nodeProvider");this.nodeProvider=new Qn}fetchByBlueId(t){return this.nodeProvider.fetchByBlueId(t)}};f(fe,"INSTANCE",new fe);let Ce=fe;class ae{static wrap(e){return new _n([Ce.INSTANCE,e])}}const vt=n=>n instanceof a||Array.isArray(n)&&n.every(e=>e instanceof a)?n:w.isArray(n)?n.map(e=>p.deserialize(e)):p.deserialize(n),Et=async n=>{const e=vt(n);return C.calculateBlueId(e)},er=n=>{const e=vt(n);return C.calculateBlueIdSync(e)},Oe=async n=>{if(qe(n))return n;try{const e=ee.parse(n),t=await Et(e);return{...n,blueId:t}}catch(e){throw new Error(`Failed enriching object with Blue ID: ${e}`)}},tr=n=>n==null?void 0:n.items,nr=n=>n==null?void 0:n.value,rr=n=>u.isNullable(n)?{}:w.omit(n,xt),sr=n=>Qe(n)?n.type.name??null:et(n)?w.pascal(typeof n.value):Xe(n)?"List":null,St=n=>u.isNonNullable(n)&&Object.keys(w.omit(n,["blueId"])).length>0,ir=n=>{try{const e=p.deserialize(n),t=T.get(e);return k.parse(t)}catch(e){throw new Error(`Failed transforming JSON-like value to BlueObject: ${e}`)}},De=async n=>{const{resolveFunction:e,signal:t=new AbortController().signal,omitItems:r}=n,s=n.count??n.items.length;let i=await w.map(n.items,async c=>await Oe(c));const o=Math.max((i==null?void 0:i.length)-s,0);for(let c=i.length-1;c>=o;c--)if(!St(i[c])){const d=await e(i[c],{signal:t});if(Array.isArray(d))return De({...n,items:[...i.slice(0,c),...d,...i.slice(c+1)]});const y=await Oe(d);if(r!=null&&r.includes(y.blueId))return De({...n,items:[...i.slice(0,c),...i.slice(c+1)]});i=[...i.slice(0,c),y,...i.slice(c+1)]}return i};function q(n){try{const e=new URL(n);return e.protocol==="http:"||e.protocol==="https:"}catch{return!1}}class or{process(e){return O.transform(e,this.inferType.bind(this))}inferType(e){const t=e.getType(),r=e.getValue();return u.isNullable(t)&&u.isNonNullable(r)&&(typeof r=="string"?e.setType(new a().setBlueId(te)):typeof r=="bigint"||G(r)?e.setType(new a().setBlueId(re)):tt(r)?e.setType(new a().setBlueId(ne)):typeof r=="boolean"&&e.setType(new a().setBlueId(se))),e}}const X=class X{constructor(e){f(this,"mappings",new Map);if(e instanceof a){const r=e.getProperties();if(r&&r[X.MAPPINGS]){const i=r[X.MAPPINGS].getProperties();i&&Object.entries(i).forEach(([o,c])=>{const d=c.getValue();typeof d=="string"&&this.mappings.set(o,d)})}}else this.mappings=e}process(e){return O.transform(e,this.transformNode.bind(this))}transformNode(e){const t=e.clone();return this.transformTypeField(t,t.getType()),this.transformTypeField(t,t.getItemType()),this.transformTypeField(t,t.getKeyType()),this.transformTypeField(t,t.getValueType()),t}transformTypeField(e,t){if(t&&t.isInlineValue()&&t.getValue()!==void 0){const r=String(t.getValue());if(this.mappings.has(r)){const s=this.mappings.get(r);if(s){const i=new a().setBlueId(s);t===e.getType()?e.setType(i):t===e.getItemType()?e.setItemType(i):t===e.getKeyType()?e.setKeyType(i):t===e.getValueType()&&e.setValueType(i)}}}}};f(X,"MAPPINGS","mappings");let Fe=X;class lr{constructor(e,t){f(this,"nodeProvider");f(this,"strategy");this.nodeProvider=ae.wrap(e),this.strategy=t||"THROW_EXCEPTION"}extend(e,t){this.extendNode(e,t,"")}extendNode(e,t,r,s=!1){if(!s){if(!t.shouldExtendPathSegment(r,e))return;t.enterPathSegment(r,e)}try{const i=e.getBlueId();if(i&&!(i in Ze)){const g=this.fetchNode(e);if(g&&g.length>0)if(g.length===1){const h=g[0];this.mergeNodes(e,h)}else{const h=g.map(D=>D.clone()),B=new a().setItems(h);this.mergeNodes(e,B)}}const o=e.getType();o&&this.extendNode(o,t,"type",!0);const c=e.getItemType();c&&this.extendNode(c,t,"itemType",!0);const d=e.getKeyType();d&&this.extendNode(d,t,"keyType",!0);const y=e.getValueType();y&&this.extendNode(y,t,"valueType",!0);const I=e.getProperties();I&&Object.entries(I).forEach(([g,h])=>{this.extendNode(h,t,g,!1)});const b=e.getContracts();b&&Object.entries(b).forEach(([g,h])=>{this.extendNode(h,t,g,!1)});const m=e.getItems();if(m&&m.length>0){this.reconstructList(m);for(let g=0;g<m.length;g++)this.extendNode(m[g],t,String(g),!1)}}finally{s||t.exitPathSegment()}}reconstructList(e){for(;e.length>0;){const t=e[0],r=t==null?void 0:t.getBlueId();if(!r)break;const s=this.nodeProvider.fetchByBlueId(r);if(!s||s.length===1)break;e.shift(),e.unshift(...s)}}fetchNode(e){const t=e.getBlueId();if(!t){if(this.strategy==="RETURN_EMPTY")return null;throw new Error(`No blueId found for node: ${e.getName()}`)}const r=this.nodeProvider.fetchByBlueId(t);if(!r||r.length===0){if(this.strategy==="RETURN_EMPTY")return null;throw new Error(`No content found for blueId: ${e.getBlueId()}`)}return r}mergeNodes(e,t){e.setName(t.getName()),e.setDescription(t.getDescription()),e.setType(t.getType()),e.setItemType(t.getItemType()),e.setKeyType(t.getKeyType()),e.setValueType(t.getValueType()),e.setValue(t.getValue()??null),e.setItems(t.getItems()),e.setProperties(t.getProperties()),e.setContracts(t.getContracts())}}class cr{}function Je(n,e){const t=n.split(e),r=[...t].reverse().findIndex(i=>i!==""),s=r===-1?0:t.length-r;return t.slice(0,s)}class Pt extends cr{constructor(t,r){super();f(this,"allowedPaths");f(this,"maxDepth");f(this,"currentPath",[]);this.allowedPaths=t,this.maxDepth=r}shouldExtendPathSegment(t){if(this.currentPath.length>=this.maxDepth)return!1;const r=this.normalizePath(this.getCurrentFullPath()+"/"+t);return this.isAllowedPath(r)}shouldMergePathSegment(t){return this.shouldExtendPathSegment(t)}isAllowedPath(t){for(const r of this.allowedPaths)if(this.matchesAllowedPath(r,t))return!0;return!1}matchesAllowedPath(t,r){const s=Je(t,"/"),i=Je(r,"/");if(i.length>s.length)return!1;for(let o=1;o<i.length;o++)if(s[o]!=="*"&&s[o]!==i[o])return!1;return!0}enterPathSegment(t){this.currentPath.push(t)}exitPathSegment(){this.currentPath.length>0&&this.currentPath.pop()}getCurrentFullPath(){return"/"+this.currentPath.join("/")}normalizePath(t){return"/"+t.split("/").filter(r=>r!=="").join("/")}static withMaxDepth(t){return new He().setMaxDepth(t).addPath("*").build()}static withSinglePath(t){return new He().addPath(t).build()}}class He{constructor(){f(this,"allowedPaths",new Set);f(this,"maxDepth",Number.MAX_SAFE_INTEGER)}addPath(e){return this.allowedPaths.add(e),this}setMaxDepth(e){return this.maxDepth=e,this}build(){return new Pt(this.allowedPaths,this.maxDepth)}}class At{constructor(){f(this,"blueIdsCollections",[])}initialize(...e){this.blueIdsCollections=[...e]}registerBlueIds(...e){this.blueIdsCollections.push(...e)}generateMappingsYaml(e="27B7fuxQCS1VAptiCPc2RMkKoutP5qxkh3uDxZ7dr6Eo"){const t={};for(const s of this.blueIdsCollections)Object.assign(t,s);const r=Object.entries(t).map(([s,i])=>` ${s}: ${i}`).join(`
|
|
19
|
+
description: This transformation replaces`,on=[jt,rn,nn,sn];class ln extends he{constructor(){super();h(this,"blueIdToNodesMap",new Map);this.load()}fetchByBlueId(t){return this.blueIdToNodesMap.get(t)||[]}load(){for(const t of on){const n=L(t);if(n===void 0){console.error(`This content file is not valid YAML: ${t}`);continue}if(Array.isArray(n)){const s=n.map(o=>p.deserialize(o)),i=N.calculateBlueIdSync(s);this.blueIdToNodesMap.set(i,s)}else{const s=p.deserialize(n),i=N.calculateBlueIdSync(s);this.blueIdToNodesMap.set(i,[s])}}}}const me=class me extends he{constructor(){super();h(this,"nodeProvider");this.nodeProvider=new ln}fetchByBlueId(t){return this.nodeProvider.fetchByBlueId(t)}};h(me,"INSTANCE",new me);let Re=me;class Ce{constructor(e,t,n){this.blueId=e,this.content=t,this.isMultipleDocuments=n}}class ne{static parseAndCalculateBlueId(e,t){let n;try{const l=L(e);if(l===void 0)throw new Error;n=l}catch{throw new Error("Failed to parse content as YAML or JSON")}let s,i;const o=Array.isArray(n)&&n.length>1;if(o){const l=n.map(a=>{const f=p.deserialize(a);return t(f)});s=N.calculateBlueIdSync(l),i=l.map(a=>y.get(a))}else{const l=p.deserialize(n),a=t(l);s=N.calculateBlueIdSync(a),i=y.get(a)}return new Ce(s,i,o)}static parseAndCalculateBlueIdForNode(e,t){const n=t(e),s=N.calculateBlueIdSync(n),i=y.get(n);return new Ce(s,i,!1)}static parseAndCalculateBlueIdForNodeList(e,t){if(!e||e.length===0)throw new Error("List of nodes cannot be null or empty");const n=e.map(t),s=N.calculateBlueIdSync(n),i=n.map(l=>y.get(l)),o=e.length>1;return new Ce(s,i,o)}static resolveThisReferences(e,t,n){return this.resolveThisReferencesRecursive(e,t,n)}static resolveThisReferencesRecursive(e,t,n){if(e&&typeof e=="object"&&!Array.isArray(e)){const s={};for(const[i,o]of Object.entries(e))typeof o=="string"?this.THIS_REFERENCE_PATTERN.test(o)?s[i]=this.resolveThisReference(o,t,n):s[i]=o:o&&typeof o=="object"?s[i]=this.resolveThisReferencesRecursive(o,t,n):s[i]=o;return s}else if(Array.isArray(e))return e.map(s=>typeof s=="string"?this.THIS_REFERENCE_PATTERN.test(s)?this.resolveThisReference(s,t,n):s:s&&typeof s=="object"?this.resolveThisReferencesRecursive(s,t,n):s);return e}static resolveThisReference(e,t,n){if(n){if(!e.startsWith("this#"))throw new Error("For multiple documents, 'this' references must include an index (e.g., 'this#0')");return t+e.substring(4)}else{if(e==="this")return t;throw new Error("For a single document, only 'this' is allowed as a reference, not 'this#<id>'")}}}h(ne,"THIS_REFERENCE_PATTERN",/^this(#\d+)?$/);class cn extends he{fetchByBlueId(e){const t=e.split("#")[0],n=this.fetchContentByBlueId(t);if(n==null)return null;const s=Array.isArray(n)&&n.length>1,i=ne.resolveThisReferences(n,t,s);if(e.includes("#")){const o=e.split("#");if(o.length>1){const l=parseInt(o[1]);if(Array.isArray(i)&&l<i.length){const a=i[l],f=p.deserialize(a);return f.setBlueId(e),[f]}else if(l===0){const a=p.deserialize(i);return a.setBlueId(e),[a]}else return null}}if(Array.isArray(i))return i.map(o=>p.deserialize(o));{const o=p.deserialize(i);return o.setBlueId(t),[o]}}}class an extends cn{constructor(){super(...arguments);h(this,"nameToBlueIdsMap",new Map)}findNodeByName(t){const n=this.nameToBlueIdsMap.get(t);if(!n)return;if(n.length>1)throw new Error(`Multiple nodes found with name: ${t}`);const s=this.fetchByBlueId(n[0]);return s&&s.length>0?s[0]:void 0}findAllNodesByName(t){const n=this.nameToBlueIdsMap.get(t);if(!n)return[];const s=[];for(const i of n){const o=this.fetchByBlueId(i);o&&s.push(...o)}return s}addToNameMap(t,n){this.nameToBlueIdsMap.set(t,[...this.nameToBlueIdsMap.get(t)||[],n])}}const Rt=r=>r instanceof u||Array.isArray(r)&&r.every(e=>e instanceof u)?r:v.isArray(r)?r.map(e=>p.deserialize(e)):p.deserialize(r),Mt=async r=>{const e=Rt(r);return N.calculateBlueId(e)},un=r=>{const e=Rt(r);return N.calculateBlueIdSync(e)},Me=async r=>{if(ct(r))return r;try{const e=le.parse(r),t=await Mt(e);return{...r,blueId:t}}catch(e){throw new Error(`Failed enriching object with Blue ID: ${e}`)}},dn=r=>r==null?void 0:r.items,hn=r=>r==null?void 0:r.value,fn=r=>d.isNullable(r)?{}:v.omit(r,Kt),pn=r=>ut(r)?r.type.name??null:dt(r)?v.pascal(typeof r.value):at(r)?"List":null,xt=r=>d.isNonNullable(r)&&Object.keys(v.omit(r,["blueId"])).length>0,yn=r=>{try{const e=p.deserialize(r),t=y.get(e);return Y.parse(t)}catch(e){throw new Error(`Failed transforming JSON-like value to BlueObject: ${e}`)}},xe=async r=>{const{resolveFunction:e,signal:t=new AbortController().signal,omitItems:n}=r,s=r.count??r.items.length;let i=await v.map(r.items,async l=>await Me(l));const o=Math.max((i==null?void 0:i.length)-s,0);for(let l=i.length-1;l>=o;l--)if(!xt(i[l])){const a=await e(i[l],{signal:t});if(Array.isArray(a))return xe({...r,items:[...i.slice(0,l),...a,...i.slice(l+1)]});const f=await Me(a);if(n!=null&&n.includes(f.blueId))return xe({...r,items:[...i.slice(0,l),...i.slice(l+1)]});i=[...i.slice(0,l),f,...i.slice(l+1)]}return i};function se(r){try{const e=new URL(r);return e.protocol==="http:"||e.protocol==="https:"}catch{return!1}}class gn{process(e){return V.transform(e,this.inferType.bind(this))}inferType(e){const t=e.getType(),n=e.getValue();return d.isNullable(t)&&d.isNonNullable(n)&&(typeof n=="string"?e.setType(new u().setBlueId(H)):typeof n=="bigint"||K(n)?e.setType(new u().setBlueId(X)):ht(n)?e.setType(new u().setBlueId(q)):typeof n=="boolean"&&e.setType(new u().setBlueId(Q))),e}}const ie=class ie{constructor(e){h(this,"mappings",new Map);if(e instanceof u){const n=e.getProperties();if(n&&n[ie.MAPPINGS]){const i=n[ie.MAPPINGS].getProperties();i&&Object.entries(i).forEach(([o,l])=>{const a=l.getValue();typeof a=="string"&&this.mappings.set(o,a)})}}else this.mappings=e}process(e){return V.transform(e,this.transformNode.bind(this))}transformNode(e){const t=e.clone();return this.transformTypeField(t,t.getType()),this.transformTypeField(t,t.getItemType()),this.transformTypeField(t,t.getKeyType()),this.transformTypeField(t,t.getValueType()),t}transformTypeField(e,t){if(t&&t.isInlineValue()&&t.getValue()!==void 0){const n=String(t.getValue());if(this.mappings.has(n)){const s=this.mappings.get(n);if(s){const i=new u().setBlueId(s);t===e.getType()?e.setType(i):t===e.getItemType()?e.setItemType(i):t===e.getKeyType()?e.setKeyType(i):t===e.getValueType()&&e.setValueType(i)}}}}};h(ie,"MAPPINGS","mappings");let $e=ie;class qe{constructor(e,t){h(this,"nodeProvider");h(this,"strategy");this.nodeProvider=ae.wrap(e),this.strategy=t||"THROW_EXCEPTION"}extend(e,t){this.extendNode(e,t,"")}extendNode(e,t,n,s=!1){if(!s){if(!t.shouldExtendPathSegment(n,e))return;t.enterPathSegment(n,e)}try{const i=e.getBlueId();if(i&&!ue.includes(i)){const m=this.fetchNode(e);if(m&&m.length>0)if(m.length===1){const g=m[0];this.mergeNodes(e,g)}else{const g=m.map(D=>D.clone()),B=new u().setItems(g);this.mergeNodes(e,B)}}const o=e.getType();o&&this.extendNode(o,t,"type",!0);const l=e.getItemType();l&&this.extendNode(l,t,"itemType",!0);const a=e.getKeyType();a&&this.extendNode(a,t,"keyType",!0);const f=e.getValueType();f&&this.extendNode(f,t,"valueType",!0);const I=e.getProperties();I&&Object.entries(I).forEach(([m,g])=>{this.extendNode(g,t,m,!1)});const T=e.getContracts();T&&Object.entries(T).forEach(([m,g])=>{this.extendNode(g,t,m,!1)});const b=e.getItems();if(b&&b.length>0){this.reconstructList(b);for(let m=0;m<b.length;m++)this.extendNode(b[m],t,String(m),!1)}}finally{s||t.exitPathSegment()}}reconstructList(e){for(;e.length>0;){const t=e[0],n=t==null?void 0:t.getBlueId();if(!n)break;const s=this.nodeProvider.fetchByBlueId(n);if(!s||s.length===1)break;e.shift(),e.unshift(...s)}}fetchNode(e){const t=e.getBlueId();if(!t){if(this.strategy==="RETURN_EMPTY")return null;throw new Error(`No blueId found for node: ${e.getName()}`)}const n=this.nodeProvider.fetchByBlueId(t);if(!n||n.length===0){if(this.strategy==="RETURN_EMPTY")return null;throw new Error(`No content found for blueId: ${e.getBlueId()}`)}return n}mergeNodes(e,t){e.setName(t.getName()),e.setDescription(t.getDescription()),e.setType(t.getType()),e.setItemType(t.getItemType()),e.setKeyType(t.getKeyType()),e.setValueType(t.getValueType());const n=t.getValue();d.isNonNullable(n)&&e.setValue(n),e.setItems(t.getItems()),e.setProperties(t.getProperties()),e.setContracts(t.getContracts())}}class $t{}function tt(r,e){const t=r.split(e),n=[...t].reverse().findIndex(i=>i!==""),s=n===-1?0:t.length-n;return t.slice(0,s)}class Xe extends $t{constructor(t,n){super();h(this,"allowedPaths");h(this,"maxDepth");h(this,"currentPath",[]);this.allowedPaths=t,this.maxDepth=n}shouldExtendPathSegment(t){if(this.currentPath.length>=this.maxDepth)return!1;const n=this.normalizePath(this.getCurrentFullPath()+"/"+t);return this.isAllowedPath(n)}shouldMergePathSegment(t){return this.shouldExtendPathSegment(t)}isAllowedPath(t){for(const n of this.allowedPaths)if(this.matchesAllowedPath(n,t))return!0;return!1}matchesAllowedPath(t,n){const s=tt(t,"/"),i=tt(n,"/");if(i.length>s.length)return!1;for(let o=1;o<i.length;o++)if(s[o]!=="*"&&s[o]!==i[o])return!1;return!0}enterPathSegment(t){this.currentPath.push(t)}exitPathSegment(){this.currentPath.length>0&&this.currentPath.pop()}getCurrentFullPath(){return"/"+this.currentPath.join("/")}normalizePath(t){return"/"+t.split("/").filter(n=>n!=="").join("/")}static withMaxDepth(t){return new rt().setMaxDepth(t).addPath("*").build()}static withSinglePath(t){return new rt().addPath(t).build()}}class rt{constructor(){h(this,"allowedPaths",new Set);h(this,"maxDepth",Number.MAX_SAFE_INTEGER)}addPath(e){return this.allowedPaths.add(e),this}setMaxDepth(e){return this.maxDepth=e,this}build(){return new Xe(this.allowedPaths,this.maxDepth)}}class mn extends $t{shouldExtendPathSegment(){return!0}shouldMergePathSegment(){return!0}enterPathSegment(){}exitPathSegment(){}}const k=new mn;class zt{constructor(){h(this,"blueIdsCollections",[])}initialize(...e){this.blueIdsCollections=[...e]}registerBlueIds(...e){this.blueIdsCollections.push(...e)}generateMappingsYaml(e="27B7fuxQCS1VAptiCPc2RMkKoutP5qxkh3uDxZ7dr6Eo"){const t={};for(const s of this.blueIdsCollections)Object.assign(t,s);const n=Object.entries(t).map(([s,i])=>` ${s}: ${i}`).join(`
|
|
20
20
|
`);return`- type:
|
|
21
21
|
blueId: ${e}
|
|
22
22
|
mappings:
|
|
23
|
-
${
|
|
23
|
+
${n}`}getAllBlueIds(){const e={};for(const t of this.blueIdsCollections)Object.assign(e,t);return e}getAllBlueIdNames(){return Object.keys(this.getAllBlueIds())}clear(){this.blueIdsCollections=[]}getCollectionCount(){return this.blueIdsCollections.length}getTotalBlueIdCount(){return Object.keys(this.getAllBlueIds()).length}}const be=class be{constructor(e={}){h(this,"processorProvider");h(this,"nodeProvider");h(this,"defaultSimpleBlue",null);h(this,"blueIdsMappingGenerator");const{nodeProvider:t,processorProvider:n,blueIdsMappingGenerator:s}=e;if(!t)throw new Error("NodeProvider is required");this.nodeProvider=ae.wrap(t),this.processorProvider=n||be.getStandardProvider(),this.blueIdsMappingGenerator=s||new zt,this.loadDefaultSimpleBlue()}preprocess(e){return this.preprocessWithOptions(e,null)}preprocessWithDefaultBlue(e){return this.preprocessWithOptions(e,this.defaultSimpleBlue)}preprocessWithOptions(e,t){let n=e.clone(),s=n.getBlue();if(!s&&t&&(s=t.clone()),s){new qe(this.nodeProvider).extend(s,Xe.withSinglePath("/*"));const i=s.getItems();if(i&&i.length>0){for(const o of i){const l=this.processorProvider.getProcessor(o);if(l)n=l.process(n);else throw new Error(`No processor found for transformation: ${o}`)}n.setBlue(void 0)}}return n}static getStandardProvider(){return{getProcessor(e){var i;const t="27B7fuxQCS1VAptiCPc2RMkKoutP5qxkh3uDxZ7dr6Eo",n="FGYuTXwaoSKfZmpTysLTLsb8WzSqf43384rKZDkXhxD4",s=(i=e.getType())==null?void 0:i.getBlueId();if(t===s)return new $e(e);if(n===s)return new gn}}}enrichDefaultBlue(e){const t=this.blueIdsMappingGenerator.generateMappingsYaml();return`
|
|
24
24
|
${e}
|
|
25
25
|
${t}
|
|
26
|
-
`}loadDefaultSimpleBlue(){const e=this.enrichDefaultBlue(
|
|
27
|
-
${s.message}`):s}else throw q(t)?new Error(`UrlContentFetcher not provided for URL: ${t}`):new Error(`Invalid blue value: ${t}`)}return e}getBlueNodeValue(e){const t=e.getBlue(),r=t==null?void 0:t.getValue();return r&&typeof r=="string"?r:null}handleAliasValue(e,t){return e.setBlue(new a().setBlueId(this.preprocessingAliases.get(t))),e}handleBlueId(e,t){return e.setBlue(new a().setBlueId(t)),e}async fetchFromUrl(e){if(!this.urlContentFetcher)throw new Error(`UrlContentFetcher not provided for URL: ${e}`);return await this.urlContentFetcher.fetchAndCache(e)}getPreprocessingAliases(){return new Map(this.preprocessingAliases)}setPreprocessingAliases(e){return this.preprocessingAliases=new Map(e),this}addPreprocessingAliases(e){return e.forEach((t,r)=>{this.preprocessingAliases.set(r,t)}),this}setUrlContentFetcher(e){return this.urlContentFetcher=e,this}getUrlContentFetcher(){return this.urlContentFetcher}}const ur={fetchUrl:async n=>{throw new Error(`You must provide a custom UrlFetchStrategy to fetch content from URL: ${n}`)}};class dr{constructor(e){f(this,"cache",new Map);f(this,"fetchStrategy");f(this,"enabled",!1);f(this,"allowedDomains",[]);this.fetchStrategy=e||ur}validateUrl(e){if(!q(e))throw new Error(`Invalid URL: ${e}`);return!0}isDomainAllowed(e){if(this.allowedDomains.length===0)return!0;try{const t=new URL(e);return this.allowedDomains.some(r=>t.hostname===r||t.hostname.endsWith(`.${r}`))}catch{return!1}}getFromCache(e){try{return this.validateUrl(e),this.cache.get(e)||[]}catch{return[]}}async fetchAndCache(e){if(this.validateUrl(e),!this.enabled)throw new Error("URL fetching is disabled. Enable it using the enableFetching method.");if(!this.isDomainAllowed(e))throw new Error(`Domain not allowed for URL: ${e}.`);let t;try{t=await this.fetchStrategy.fetchUrl(e)}catch(c){throw new Error(`Error fetching from URL: ${e}`,{cause:c})}const{data:r,contentType:s}=t;let i;if(s.includes("application/json")||s.includes("text/yaml")||s.includes("application/yaml")||s.includes("text/plain"))i=J(r);else throw new Error(`Unsupported content type from URL: ${s}`);if(i===void 0)throw new Error(`Failed to parse content from URL: ${e}`);let o;return Array.isArray(i)?o=i.map(c=>p.deserialize(c)):o=[p.deserialize(i)],this.cache.set(e,o),o}prefetchUrl(e,t){try{this.validateUrl(e),this.cache.set(e,t)}catch{}}clearCache(){this.cache.clear()}setFetchStrategy(e){return this.fetchStrategy=e,this}getFetchStrategy(){return this.fetchStrategy}enableFetching(){return this.enabled=!0,this.allowedDomains=[],this}enableFetchingForDomains(e){return this.enabled=!0,this.allowedDomains=[...e],this}disableFetching(){return this.enabled=!1,this}isFetchingEnabled(){return this.enabled}getAllowedDomains(){return[...this.allowedDomains]}allowDomain(e){return this.allowedDomains.includes(e)||this.allowedDomains.push(e),this}disallowDomain(e){return this.allowedDomains=this.allowedDomains.filter(t=>t!==e),this}clearAllowedDomains(){return this.allowedDomains=[],this}}class fr{constructor(e={}){f(this,"nodeProvider");f(this,"typeSchemaResolver");f(this,"blueDirectivePreprocessor");f(this,"urlContentFetcher");f(this,"blueIdsMappingGenerator");f(this,"prepareForBlueIdCalculation",async e=>e instanceof a||Array.isArray(e)&&e.every(t=>t instanceof a)?e:Array.isArray(e)?await Promise.all(e.map(r=>this.jsonValueToNodeAsync(r))):this.jsonValueToNodeAsync(e));f(this,"calculateBlueId",async e=>{const t=await this.prepareForBlueIdCalculation(e);return C.calculateBlueId(t)});f(this,"prepareForBlueIdCalculationSync",e=>e instanceof a||Array.isArray(e)&&e.every(t=>t instanceof a)?e:Array.isArray(e)?e.map(t=>this.jsonValueToNode(t)):this.jsonValueToNode(e));var c;const{nodeProvider:t,typeSchemaResolver:r=null,urlFetchStrategy:s,repositories:i}=e,o=Ln(()=>[]);if(this.nodeProvider=ae.wrap(t||o),this.typeSchemaResolver=r??new Tt([]),this.urlContentFetcher=new dr(s),this.blueDirectivePreprocessor=new ar(void 0,this.urlContentFetcher),this.blueIdsMappingGenerator=new At,i)for(const{schemas:d,blueIds:y}of i)(c=this.typeSchemaResolver)==null||c.registerSchemas(d),this.blueIdsMappingGenerator.registerBlueIds(y)}nodeToJson(e,t="official"){return T.get(e,t)}nodeToSchemaOutput(e,t){return new $n(this.typeSchemaResolver).convert(e,t)}jsonValueToNode(e){return this.preprocess(p.deserialize(e))}async jsonValueToNodeAsync(e){return this.preprocessAsync(p.deserialize(e))}yamlToNode(e){const t=J(e);if(!t)throw new Error("Failed to parse YAML to JSON");return this.jsonValueToNode(t)}async yamlToNodeAsync(e){const t=J(e);if(!t)throw new Error("Failed to parse YAML to JSON");return this.jsonValueToNodeAsync(t)}calculateBlueIdSync(e){const t=this.prepareForBlueIdCalculationSync(e);return C.calculateBlueIdSync(t)}addPreprocessingAliases(e){this.blueDirectivePreprocessor.addPreprocessingAliases(e)}preprocess(e){const t=this.blueDirectivePreprocessor.process(e);return new ue({nodeProvider:this.nodeProvider,blueIdsMappingGenerator:this.blueIdsMappingGenerator}).preprocessWithDefaultBlue(t)}async preprocessAsync(e){const t=await this.blueDirectivePreprocessor.processAsync(e);return new ue({nodeProvider:this.nodeProvider,blueIdsMappingGenerator:this.blueIdsMappingGenerator}).preprocessWithDefaultBlue(t)}getNodeProvider(){return this.nodeProvider}setNodeProvider(e){return this.nodeProvider=ae.wrap(e),this}getTypeSchemaResolver(){return this.typeSchemaResolver}setTypeSchemaResolver(e){return this.typeSchemaResolver=e,this}getUrlContentFetcher(){return this.urlContentFetcher}setUrlFetchStrategy(e){return this.urlContentFetcher.setFetchStrategy(e),this}enablePreprocessingDirectivesFetchForUrls(){return this.urlContentFetcher.enableFetching(),this}enablePreprocessingDirectivesFetchForDomains(e){return this.urlContentFetcher.enableFetchingForDomains(e),this}allowUrlFetchingForDomain(e){return this.urlContentFetcher.allowDomain(e),this}disallowUrlFetchingForDomain(e){return this.urlContentFetcher.disallowDomain(e),this}getAllowedUrlFetchingDomains(){return this.urlContentFetcher.getAllowedDomains()}disablePreprocessingDirectivesFetchForUrls(){return this.urlContentFetcher.disableFetching(),this}isPreprocessingDirectivesFetchForUrlsEnabled(){return this.urlContentFetcher.isFetchingEnabled()}getPreprocessingAliases(){return this.blueDirectivePreprocessor.getPreprocessingAliases()}setPreprocessingAliases(e){return this.blueDirectivePreprocessor.setPreprocessingAliases(e),this}registerBlueIds(...e){return this.blueIdsMappingGenerator.registerBlueIds(...e),this}getAllRegisteredBlueIds(){return this.blueIdsMappingGenerator.getAllBlueIds()}getAllBlueIdNames(){return this.blueIdsMappingGenerator.getAllBlueIdNames()}getBlueIdsMappingGenerator(){return this.blueIdsMappingGenerator}isTypeOf(e,t,r){return v.isTypeOf(e,t,{checkSchemaExtensions:r==null?void 0:r.checkSchemaExtensions,typeSchemaResolver:this.typeSchemaResolver})}}exports.Base58Sha256Provider=rt;exports.Blue=fr;exports.BlueIdCalculator=C;exports.BlueIdToCid=dn;exports.BlueNode=a;exports.BlueNodeTypeSchema=v;exports.JsonCanonicalizer=nt;exports.TypeSchemaResolver=Tt;exports.applyBlueNodePatch=Bn;exports.baseBlueObjectSchema=ie;exports.blueDescriptionField=wn;exports.blueIdField=En;exports.blueIdSchema=Ht;exports.blueNameField=Sn;exports.blueNodeField=Pn;exports.blueObjectBooleanValueSchema=qt;exports.blueObjectNumberValueSchema=Kt;exports.blueObjectSchema=k;exports.blueObjectStringListItemsSchema=Xt;exports.blueObjectStringValueSchema=Wt;exports.calculateBlueId=Et;exports.calculateBlueIdSync=er;exports.enrichWithBlueId=Oe;exports.getBlueDescriptionAnnotation=ut;exports.getBlueIdAnnotation=ft;exports.getBlueNameAnnotation=pt;exports.getBlueNodeAnnotation=gt;exports.getBlueObjectItems=tr;exports.getBlueObjectProperties=rr;exports.getBlueObjectTypeLabel=sr;exports.getBlueObjectValue=nr;exports.getExtendedFromSchemaAnnotation=bt;exports.getTypeBlueIdAnnotation=It;exports.hasBlueObjectBlueIdDefined=qe;exports.hasBlueObjectItemsDefined=Xe;exports.hasBlueObjectNameDefined=en;exports.hasBlueObjectTypeDefined=Qe;exports.hasBlueObjectValueDefined=et;exports.isBigDecimalNumber=tt;exports.isBigIntegerNumber=G;exports.isBigNumber=A;exports.isBlueNodeSchema=_e;exports.isBlueObject=Qt;exports.isBlueObjectResolved=St;exports.isGivenBlueObjectTypeSchema=tn;exports.isJsonBlueArray=Me;exports.isJsonBlueObject=Ue;exports.isJsonBlueValue=sn;exports.isSchemaExtendedFrom=ke;exports.isUrl=q;exports.jsonBlueValueSchema=ee;exports.normalizeToBlueObject=ir;exports.resolveBlueObjectItems=De;exports.withBlueDescription=at;exports.withBlueId=dt;exports.withBlueName=ht;exports.withBlueNode=yt;exports.withExtendedFromSchema=mt;exports.withTypeBlueId=On;exports.yamlBlueDump=Hn;exports.yamlBlueParse=J;
|
|
26
|
+
`}loadDefaultSimpleBlue(){const e=this.enrichDefaultBlue(jt);try{const t=L(e);if(t)this.defaultSimpleBlue=p.deserialize(t);else throw new Error("Failed to parse default Blue content")}catch(t){throw new Error(`Error loading default Blue: ${t}`)}}};h(be,"DEFAULT_BLUE_BLUE_ID","FREHAAGDZSzpnoTUoCQ86bBmxbVCULMjvx9JZM6fyqT1");let ce=be;class bn extends an{constructor(t){super();h(this,"blueIdToContentMap",new Map);h(this,"blueIdToMultipleDocumentsMap",new Map);h(this,"preprocessor");const n=new ce({nodeProvider:this});this.preprocessor=s=>n.preprocessWithDefaultBlue(s),this.loadRepositories(t)}loadRepositories(t){for(const n of t)if(n.contents)for(const[s,i]of Object.entries(n.contents))this.processContent(i,s)}processContent(t,n){Array.isArray(t)?this.processMultipleDocuments(t,n):this.processSingleDocument(t,n)}processSingleDocument(t,n){const s=p.deserialize(t),i=ne.parseAndCalculateBlueIdForNode(s,this.preprocessor),o=n||i.blueId;this.blueIdToContentMap.set(o,i.content),this.blueIdToMultipleDocumentsMap.set(o,!1);const l=s.getName();l&&this.addToNameMap(l,o)}processMultipleDocuments(t,n){const s=t.map(l=>{const a=p.deserialize(l);return this.preprocessor(a)}),i=ne.parseAndCalculateBlueIdForNodeList(s,l=>l),o=n||i.blueId;this.blueIdToContentMap.set(o,i.content),this.blueIdToMultipleDocumentsMap.set(o,!0),s.forEach((l,a)=>{const f=`${o}#${a}`,I=y.get(l),T=N.calculateBlueIdSync(l);this.blueIdToContentMap.set(T,I),this.blueIdToMultipleDocumentsMap.set(T,!1);const b=l.getName();b&&this.addToNameMap(b,f)})}fetchContentByBlueId(t){const n=this.blueIdToContentMap.get(t),s=this.blueIdToMultipleDocumentsMap.get(t);return n!==void 0&&s!==void 0?ne.resolveThisReferences(n,t,s):null}getBlueIds(){return Array.from(this.blueIdToContentMap.keys())}hasBlueId(t){const n=t.split("#")[0];return this.blueIdToContentMap.has(n)}}class ae{static wrap(e,t){const n=[Re.INSTANCE];if(t&&t.length>0){const s=new bn(t);n.push(s)}return n.push(e),new Hr(n)}}class In{constructor(e,t){h(this,"preprocessingAliases",new Map);h(this,"urlContentFetcher");e&&(this.preprocessingAliases=new Map(e)),this.urlContentFetcher=t}process(e){const t=this.getBlueNodeValue(e);if(t){const n=e.clone();if(this.preprocessingAliases.has(t))return this.handleAliasValue(n,t);if(Z.isPotentialBlueId(t))return this.handleBlueId(n,t);throw se(t)?new Error(`URL '${t}' detected. Use the async version of this method to fetch the content.`):new Error(`Invalid blue value: ${t}`)}return e}async processAsync(e){const t=this.getBlueNodeValue(e);if(t){const n=e.clone();if(this.preprocessingAliases.has(t))return this.handleAliasValue(n,t);if(Z.isPotentialBlueId(t))return this.handleBlueId(n,t);if(se(t)&&this.urlContentFetcher)try{const s=await this.fetchFromUrl(t);return s&&n.setBlue(new u().setItems(s)),n}catch(s){throw s instanceof Error?new Error(`Failed to fetch from URL '${t}'.
|
|
27
|
+
${s.message}`):s}else throw se(t)?new Error(`UrlContentFetcher not provided for URL: ${t}`):new Error(`Invalid blue value: ${t}`)}return e}getBlueNodeValue(e){const t=e.getBlue(),n=t==null?void 0:t.getValue();return n&&typeof n=="string"?n:null}handleAliasValue(e,t){return e.setBlue(new u().setBlueId(this.preprocessingAliases.get(t))),e}handleBlueId(e,t){return e.setBlue(new u().setBlueId(t)),e}async fetchFromUrl(e){if(!this.urlContentFetcher)throw new Error(`UrlContentFetcher not provided for URL: ${e}`);return await this.urlContentFetcher.fetchAndCache(e)}getPreprocessingAliases(){return new Map(this.preprocessingAliases)}setPreprocessingAliases(e){return this.preprocessingAliases=new Map(e),this}addPreprocessingAliases(e){return e.forEach((t,n)=>{this.preprocessingAliases.set(n,t)}),this}setUrlContentFetcher(e){return this.urlContentFetcher=e,this}getUrlContentFetcher(){return this.urlContentFetcher}}const Tn={fetchUrl:async r=>{throw new Error(`You must provide a custom UrlFetchStrategy to fetch content from URL: ${r}`)}};class Nn{constructor(e){h(this,"cache",new Map);h(this,"fetchStrategy");h(this,"enabled",!1);h(this,"allowedDomains",[]);this.fetchStrategy=e||Tn}validateUrl(e){if(!se(e))throw new Error(`Invalid URL: ${e}`);return!0}isDomainAllowed(e){if(this.allowedDomains.length===0)return!0;try{const t=new URL(e);return this.allowedDomains.some(n=>t.hostname===n||t.hostname.endsWith(`.${n}`))}catch{return!1}}getFromCache(e){try{return this.validateUrl(e),this.cache.get(e)||[]}catch{return[]}}async fetchAndCache(e){if(this.validateUrl(e),!this.enabled)throw new Error("URL fetching is disabled. Enable it using the enableFetching method.");if(!this.isDomainAllowed(e))throw new Error(`Domain not allowed for URL: ${e}.`);let t;try{t=await this.fetchStrategy.fetchUrl(e)}catch(l){throw new Error(`Error fetching from URL: ${e}`,{cause:l})}const{data:n,contentType:s}=t;let i;if(s.includes("application/json")||s.includes("text/yaml")||s.includes("application/yaml")||s.includes("text/plain"))i=L(n);else throw new Error(`Unsupported content type from URL: ${s}`);if(i===void 0)throw new Error(`Failed to parse content from URL: ${e}`);let o;return Array.isArray(i)?o=i.map(l=>p.deserialize(l)):o=[p.deserialize(i)],this.cache.set(e,o),o}prefetchUrl(e,t){try{this.validateUrl(e),this.cache.set(e,t)}catch{}}clearCache(){this.cache.clear()}setFetchStrategy(e){return this.fetchStrategy=e,this}getFetchStrategy(){return this.fetchStrategy}enableFetching(){return this.enabled=!0,this.allowedDomains=[],this}enableFetchingForDomains(e){return this.enabled=!0,this.allowedDomains=[...e],this}disableFetching(){return this.enabled=!1,this}isFetchingEnabled(){return this.enabled}getAllowedDomains(){return[...this.allowedDomains]}allowDomain(e){return this.allowedDomains.includes(e)||this.allowedDomains.push(e),this}disallowDomain(e){return this.allowedDomains=this.allowedDomains.filter(t=>t!==e),this}clearAllowedDomains(){return this.allowedDomains=[],this}}class Bn{resolveWithoutLimits(e){return this.resolve(e,k)}}class wn extends Bn{constructor(t,n){super();h(this,"mergingProcessor");h(this,"nodeProvider");this.mergingProcessor=t,this.nodeProvider=ae.wrap(n)}merge(t,n,s){if(d.isNonNullable(n.getBlue()))throw new Error('Document contains "blue" attribute. Preprocess document before merging.');const i=n.getType();if(d.isNonNullable(i)){d.isNonNullable(i.getBlueId())&&new qe(this.nodeProvider).extend(i,Xe.withSinglePath("/"));const o=this.resolve(i,s);n.setType(o),this.merge(t,i,s)}this.mergeObject(t,n,s)}mergeObject(t,n,s){this.mergingProcessor.process(t,n,this.nodeProvider,this);const i=n.getItems();d.isNonNullable(i)&&this.mergeChildren(t,i,s);const o=n.getProperties();d.isNonNullable(o)&&Object.entries(o).forEach(([l,a])=>{s.shouldMergePathSegment(l,a)&&(s.enterPathSegment(l,a),this.mergeProperty(t,l,a,s),s.exitPathSegment())}),d.isNonNullable(n.getBlueId())&&t.setBlueId(n.getBlueId()),this.mergingProcessor.postProcess&&this.mergingProcessor.postProcess(t,n,this.nodeProvider,this)}mergeChildren(t,n,s){const i=t.getItems();if(d.isNullable(i)){const o=n.filter((l,a)=>s.shouldMergePathSegment(String(a),t)).map(l=>{s.enterPathSegment(String(n.indexOf(l)),t);const a=this.resolve(l,s);return s.exitPathSegment(),a});t.setItems(o);return}else if(n.length<i.length)throw new Error(`Subtype of element must not have more items (${i.length}) than the element itself (${n.length}).`);for(let o=0;o<n.length;o++){if(!s.shouldMergePathSegment(String(o),n[o]))continue;if(s.enterPathSegment(String(o),n[o]),o>=i.length){i.push(n[o]),s.exitPathSegment();continue}const l=N.calculateBlueIdSync(n[o]),a=N.calculateBlueIdSync(i[o]);if(l!==a)throw new Error(`Mismatched items at index ${o}: source item has blueId '${l}', but target item has blueId '${a}'.`);s.exitPathSegment()}}mergeProperty(t,n,s,i){const o=this.resolve(s,i);d.isNullable(t.getProperties())&&t.setProperties({});const l=t.getProperties()[n];l===void 0?t.getProperties()[n]=o:this.mergeObject(l,o,i)}resolve(t,n){const s=new u;return this.merge(s,t,n),s.setName(t.getName()),s.setDescription(t.getDescription()),s.setBlueId(t.getBlueId()),s}}class vn{constructor(e){h(this,"mergingProcessors");this.mergingProcessors=e}process(e,t,n,s){this.mergingProcessors.forEach(i=>i.process(e,t,n,s))}postProcess(e,t,n,s){this.mergingProcessors.forEach(i=>{i.postProcess&&i.postProcess(e,t,n,s)})}}class En{process(e,t){const n=t.getValue();if(d.isNonNullable(n)){const s=e.getValue();if(d.isNullable(s))e.setValue(n);else if(n!==s)throw new Error(`Node values conflict. Source node value: ${n}, target node value: ${s}`)}}}function Oe(r,e){const t=r.getType();if(t===void 0)return;const n=t.getBlueId();if(n!==void 0){if(ue.includes(n)){const i=tr[n];return new u().setBlueId(n).setName(i)}const s=e.fetchByBlueId(n);if(!s||s.length===0)return;if(s.length>1)throw new Error(`Expected a single node for type with blueId '${n}', but found multiple.`);return s[0]}return t}function E(r,e,t){const n=N.calculateBlueIdSync(r),s=N.calculateBlueIdSync(e);if(n===s)return!0;if(n&&ue.includes(n)){let o=e;for(;o!==void 0;){if(N.calculateBlueIdSync(o)===n)return!0;o=Oe(o,t)}return!1}let i=Oe(r,t);for(;i!==void 0;){if(N.calculateBlueIdSync(i)===s)return!0;i=Oe(i,t)}return!1}function Sn(r,e){return lt.some(t=>{const n=new u().setBlueId(t);return E(r,n,e)})}function Pn(r,e){const t=new u().setBlueId(H);return E(r,t,e)}function An(r,e){const t=new u().setBlueId(X);return E(r,t,e)}function Cn(r,e){const t=new u().setBlueId(q);return E(r,t,e)}function On(r,e){const t=new u().setBlueId(Q);return E(r,t,e)}function Vn(r){return(r==null?void 0:r.getBlueId())===it}function Dn(r){return(r==null?void 0:r.getBlueId())===ot}function Fn(r,e){return ke.some(t=>{const n=new u().setName(t);return E(r,n,e)})}function jn(r,e){for(const t of ke){const n=new u().setName(t);if(E(r,n,e))return t}throw new Error(`Cannot determine the basic type for node of type "${r.getName()||"unknown"}".`)}class Rn{process(e,t,n){const s=e.getType(),i=t.getType();if(s===void 0)e.setType(i);else if(i!==void 0){if(!E(i,s,n)){const l=y.get(i),a=y.get(s);throw new Error(`The source type '${JSON.stringify(l)}' is not a subtype of the target type '${JSON.stringify(a)}'.`)}e.setType(i)}}}class Mn{process(e,t,n){if(t.getItemType()!==void 0&&!Vn(t.getType()))throw new Error("Source node with itemType must have a List type");const s=e.getItemType(),i=t.getItemType();if(s===void 0)i!==void 0&&e.setItemType(i);else if(i!==void 0){if(!E(i,s,n)){const f=y.get(i),I=y.get(s);throw new Error(`The source item type '${JSON.stringify(f)}' is not a subtype of the target item type '${JSON.stringify(I)}'.`)}e.setItemType(i)}const o=e.getItemType(),l=t.getItems();if(o!==void 0&&l!==void 0)for(const a of l){const f=a.getType();if(f!==void 0&&!E(f,o,n)){const I=y.get(f),T=y.get(o);throw new Error(`Item of type '${JSON.stringify(I)}' is not a subtype of the list's item type '${JSON.stringify(T)}'.`)}}}}class xn{process(e,t,n){if((t.getKeyType()!==void 0||t.getValueType()!==void 0)&&!Dn(t.getType()))throw new Error("Source node with keyType or valueType must have a Dictionary type");this.processKeyType(e,t,n),this.processValueType(e,t,n);const s=e.getKeyType(),i=e.getValueType(),o=t.getProperties();(s!==void 0||i!==void 0)&&o!==void 0&&Object.entries(o).forEach(([l,a])=>{s!==void 0&&this.validateKeyType(l,s,n),i!==void 0&&this.validateValueType(a,i,n)})}processKeyType(e,t,n){const s=e.getKeyType(),i=t.getKeyType();if(s===void 0)i!==void 0&&(this.validateBasicKeyType(i,n),e.setKeyType(i));else if(i!==void 0){if(this.validateBasicKeyType(i,n),!E(i,s,n)){const l=y.get(i),a=y.get(s);throw new Error(`The source key type '${JSON.stringify(l)}' is not a subtype of the target key type '${JSON.stringify(a)}'.`)}e.setKeyType(i)}}processValueType(e,t,n){const s=e.getValueType(),i=t.getValueType();if(s===void 0)i!==void 0&&e.setValueType(i);else if(i!==void 0){if(!E(i,s,n)){const l=y.get(i),a=y.get(s);throw new Error(`The source value type '${JSON.stringify(l)}' is not a subtype of the target value type '${JSON.stringify(a)}'.`)}e.setValueType(i)}}validateBasicKeyType(e,t){if(!Sn(e,t))throw new Error("Dictionary key type must be a basic type")}validateKeyType(e,t,n){if(!Pn(t,n))if(An(t,n)){const s=Number.parseInt(e,10);if(Number.isNaN(s)||s.toString()!==e)throw new Error(`Key '${e}' is not a valid Integer.`)}else if(Cn(t,n)){const s=Number.parseFloat(e);if(Number.isNaN(s))throw new Error(`Key '${e}' is not a valid Number.`)}else if(On(t,n)){if(e.toLowerCase()!=="true"&&e.toLowerCase()!=="false")throw new Error(`Key '${e}' is not a valid Boolean.`)}else throw new Error(`Unsupported key type: ${t.getName()||"unknown"}`)}validateValueType(e,t,n){const s=e.getType();if(s!==void 0&&!E(s,t,n)){const i=y.get(s),o=y.get(t);throw new Error(`Value of type '${JSON.stringify(i)}' is not a subtype of the dictionary's value type '${JSON.stringify(o)}'.`)}}}class $n{process(){}postProcess(e,t,n){const s=e.getType();if(s!==void 0&&Fn(s,n)){const i=e.getItems(),o=e.getProperties();if(i!==void 0&&i.length>0||o!==void 0&&Object.keys(o).length>0){const l=jn(s,n),a=s.getName()||"unknown";throw new Error(`Node of type "${a}" (which extends basic type "${l}") must not have items or properties.`)}}}}function zn(){return new vn([new En,new Rn,new Mn,new xn,new $n])}class Zn{constructor(e={}){h(this,"nodeProvider");h(this,"typeSchemaResolver");h(this,"blueDirectivePreprocessor");h(this,"urlContentFetcher");h(this,"blueIdsMappingGenerator");h(this,"globalLimits",k);h(this,"mergingProcessor");h(this,"repositories");h(this,"prepareForBlueIdCalculation",async e=>e instanceof u||Array.isArray(e)&&e.every(t=>t instanceof u)?e:Array.isArray(e)?await Promise.all(e.map(n=>this.jsonValueToNodeAsync(n))):this.jsonValueToNodeAsync(e));h(this,"calculateBlueId",async e=>{const t=await this.prepareForBlueIdCalculation(e);return N.calculateBlueId(t)});h(this,"prepareForBlueIdCalculationSync",e=>e instanceof u||Array.isArray(e)&&e.every(t=>t instanceof u)?e:Array.isArray(e)?e.map(t=>this.jsonValueToNode(t)):this.jsonValueToNode(e));var a;const{nodeProvider:t,typeSchemaResolver:n=null,urlFetchStrategy:s,repositories:i,mergingProcessor:o}=e;this.repositories=i;const l=Wr(()=>[]);if(this.nodeProvider=ae.wrap(t||l,i),this.typeSchemaResolver=n??new Vt([]),this.mergingProcessor=o??zn(),this.urlContentFetcher=new Nn(s),this.blueDirectivePreprocessor=new In(void 0,this.urlContentFetcher),this.blueIdsMappingGenerator=new zt,i)for(const{schemas:f,blueIds:I}of i)(a=this.typeSchemaResolver)==null||a.registerSchemas(f),this.blueIdsMappingGenerator.registerBlueIds(I)}nodeToJson(e,t="official"){return y.get(e,t)}nodeToSchemaOutput(e,t){return new Kr(this.typeSchemaResolver).convert(e,t)}resolve(e,t=k){const n=this.combineWithGlobalLimits(t);return new wn(this.mergingProcessor,this.nodeProvider).resolve(e,n)}extend(e,t){const n=this.combineWithGlobalLimits(t);new qe(this.nodeProvider).extend(e,n)}jsonValueToNode(e){return this.preprocess(p.deserialize(e))}async jsonValueToNodeAsync(e){return this.preprocessAsync(p.deserialize(e))}yamlToNode(e){const t=L(e);if(!t)throw new Error("Failed to parse YAML to JSON");return this.jsonValueToNode(t)}async yamlToNodeAsync(e){const t=L(e);if(!t)throw new Error("Failed to parse YAML to JSON");return this.jsonValueToNodeAsync(t)}calculateBlueIdSync(e){const t=this.prepareForBlueIdCalculationSync(e);return N.calculateBlueIdSync(t)}addPreprocessingAliases(e){this.blueDirectivePreprocessor.addPreprocessingAliases(e)}preprocess(e){const t=this.blueDirectivePreprocessor.process(e);return new ce({nodeProvider:this.nodeProvider,blueIdsMappingGenerator:this.blueIdsMappingGenerator}).preprocessWithDefaultBlue(t)}async preprocessAsync(e){const t=await this.blueDirectivePreprocessor.processAsync(e);return new ce({nodeProvider:this.nodeProvider,blueIdsMappingGenerator:this.blueIdsMappingGenerator}).preprocessWithDefaultBlue(t)}getNodeProvider(){return this.nodeProvider}setNodeProvider(e){return this.nodeProvider=ae.wrap(e,this.repositories),this}getTypeSchemaResolver(){return this.typeSchemaResolver}setTypeSchemaResolver(e){return this.typeSchemaResolver=e,this}getUrlContentFetcher(){return this.urlContentFetcher}setUrlFetchStrategy(e){return this.urlContentFetcher.setFetchStrategy(e),this}enablePreprocessingDirectivesFetchForUrls(){return this.urlContentFetcher.enableFetching(),this}enablePreprocessingDirectivesFetchForDomains(e){return this.urlContentFetcher.enableFetchingForDomains(e),this}allowUrlFetchingForDomain(e){return this.urlContentFetcher.allowDomain(e),this}disallowUrlFetchingForDomain(e){return this.urlContentFetcher.disallowDomain(e),this}getAllowedUrlFetchingDomains(){return this.urlContentFetcher.getAllowedDomains()}disablePreprocessingDirectivesFetchForUrls(){return this.urlContentFetcher.disableFetching(),this}isPreprocessingDirectivesFetchForUrlsEnabled(){return this.urlContentFetcher.isFetchingEnabled()}getPreprocessingAliases(){return this.blueDirectivePreprocessor.getPreprocessingAliases()}setPreprocessingAliases(e){return this.blueDirectivePreprocessor.setPreprocessingAliases(e),this}registerBlueIds(...e){return this.blueIdsMappingGenerator.registerBlueIds(...e),this}getAllRegisteredBlueIds(){return this.blueIdsMappingGenerator.getAllBlueIds()}getAllBlueIdNames(){return this.blueIdsMappingGenerator.getAllBlueIdNames()}getBlueIdsMappingGenerator(){return this.blueIdsMappingGenerator}isTypeOf(e,t,n){return S.isTypeOf(e,t,{checkSchemaExtensions:n==null?void 0:n.checkSchemaExtensions,typeSchemaResolver:this.typeSchemaResolver})}combineWithGlobalLimits(e){return this.globalLimits==k?e:e==k?this.globalLimits:k}}exports.Base58Sha256Provider=pt;exports.Blue=Zn;exports.BlueIdCalculator=N;exports.BlueIdToCid=br;exports.BlueNode=u;exports.BlueNodeTypeSchema=S;exports.JsonCanonicalizer=ft;exports.TypeSchemaResolver=Vt;exports.applyBlueNodePatch=Ar;exports.baseBlueObjectSchema=de;exports.blueDescriptionField=Or;exports.blueIdField=Dr;exports.blueIdSchema=rr;exports.blueNameField=Fr;exports.blueNodeField=jr;exports.blueObjectBooleanValueSchema=ir;exports.blueObjectNumberValueSchema=sr;exports.blueObjectSchema=Y;exports.blueObjectStringListItemsSchema=or;exports.blueObjectStringValueSchema=nr;exports.calculateBlueId=Mt;exports.calculateBlueIdSync=un;exports.enrichWithBlueId=Me;exports.getBlueDescriptionAnnotation=Nt;exports.getBlueIdAnnotation=wt;exports.getBlueNameAnnotation=Et;exports.getBlueNodeAnnotation=Pt;exports.getBlueObjectItems=dn;exports.getBlueObjectProperties=fn;exports.getBlueObjectTypeLabel=pn;exports.getBlueObjectValue=hn;exports.getExtendedFromSchemaAnnotation=Ct;exports.getTypeBlueIdAnnotation=Ot;exports.hasBlueObjectBlueIdDefined=ct;exports.hasBlueObjectItemsDefined=at;exports.hasBlueObjectNameDefined=cr;exports.hasBlueObjectTypeDefined=ut;exports.hasBlueObjectValueDefined=dt;exports.isBigDecimalNumber=ht;exports.isBigIntegerNumber=K;exports.isBigNumber=O;exports.isBlueNodeSchema=We;exports.isBlueObject=lr;exports.isBlueObjectResolved=xt;exports.isGivenBlueObjectTypeSchema=ar;exports.isJsonBlueArray=Ge;exports.isJsonBlueObject=Je;exports.isJsonBlueValue=hr;exports.isSchemaExtendedFrom=He;exports.isUrl=se;exports.jsonBlueValueSchema=le;exports.normalizeToBlueObject=yn;exports.resolveBlueObjectItems=xe;exports.withBlueDescription=Tt;exports.withBlueId=Bt;exports.withBlueName=vt;exports.withBlueNode=St;exports.withExtendedFromSchema=At;exports.withTypeBlueId=xr;exports.yamlBlueDump=tn;exports.yamlBlueParse=L;
|