@blue-labs/language 1.27.0 → 1.28.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.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -8
- package/dist/index.mjs +2177 -1744
- package/dist/lib/Blue.d.ts +15 -0
- 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/mapping/ComplexObjectConverter.d.ts +0 -4
- package/dist/lib/mapping/ComplexObjectConverter.d.ts.map +1 -1
- package/dist/lib/mapping/ConverterFactory.d.ts +0 -1
- package/dist/lib/mapping/ConverterFactory.d.ts.map +1 -1
- package/dist/lib/mapping/MapConverter.d.ts +0 -4
- package/dist/lib/mapping/MapConverter.d.ts.map +1 -1
- package/dist/lib/mapping/ValueConverter.d.ts +0 -1
- package/dist/lib/mapping/ValueConverter.d.ts.map +1 -1
- package/dist/lib/merge/Merger.d.ts +5 -9
- package/dist/lib/merge/Merger.d.ts.map +1 -1
- package/dist/lib/merge/MergingProcessor.d.ts +4 -9
- package/dist/lib/merge/MergingProcessor.d.ts.map +1 -1
- package/dist/lib/merge/index.d.ts +2 -2
- package/dist/lib/merge/index.d.ts.map +1 -1
- package/dist/lib/merge/processors/BasicTypesVerifier.d.ts +2 -2
- package/dist/lib/merge/processors/BasicTypesVerifier.d.ts.map +1 -1
- package/dist/lib/merge/processors/DictionaryProcessor.d.ts +1 -1
- package/dist/lib/merge/processors/DictionaryProcessor.d.ts.map +1 -1
- package/dist/lib/merge/processors/ListProcessor.d.ts +1 -1
- package/dist/lib/merge/processors/ListProcessor.d.ts.map +1 -1
- package/dist/lib/merge/processors/SequentialMergingProcessor.d.ts +2 -3
- package/dist/lib/merge/processors/SequentialMergingProcessor.d.ts.map +1 -1
- package/dist/lib/merge/processors/TypeAssigner.d.ts +1 -1
- package/dist/lib/merge/processors/TypeAssigner.d.ts.map +1 -1
- package/dist/lib/merge/processors/ValuePropagator.d.ts +2 -2
- package/dist/lib/merge/processors/ValuePropagator.d.ts.map +1 -1
- package/dist/lib/merge/processors/index.d.ts +0 -1
- package/dist/lib/merge/processors/index.d.ts.map +1 -1
- package/dist/lib/merge/utils/default.d.ts +7 -0
- package/dist/lib/merge/utils/default.d.ts.map +1 -0
- package/dist/lib/model/Node.d.ts +3 -1
- package/dist/lib/model/Node.d.ts.map +1 -1
- package/dist/lib/model/NodeDeserializer.d.ts.map +1 -1
- package/dist/lib/preprocess/Preprocessor.d.ts.map +1 -1
- package/dist/lib/preprocess/processor/ValidateInlineTypesReplaced.d.ts +17 -0
- package/dist/lib/preprocess/processor/ValidateInlineTypesReplaced.d.ts.map +1 -0
- package/dist/lib/preprocess/processor/index.d.ts +1 -0
- package/dist/lib/preprocess/processor/index.d.ts.map +1 -1
- package/dist/lib/utils/BlueIdCalculator.d.ts.map +1 -1
- package/dist/lib/utils/MergeReverser.d.ts +22 -0
- package/dist/lib/utils/MergeReverser.d.ts.map +1 -0
- package/dist/lib/utils/NodeExtender.d.ts.map +1 -1
- package/dist/lib/utils/NodePathAccessor.d.ts.map +1 -1
- package/dist/lib/utils/NodeToMapListOrValue.d.ts.map +1 -1
- package/dist/lib/utils/NodeTransformer.d.ts.map +1 -1
- package/dist/lib/{merge/processors/Types.d.ts → utils/NodeTypes.d.ts} +3 -3
- package/dist/lib/utils/NodeTypes.d.ts.map +1 -0
- package/dist/lib/utils/Nodes.d.ts +6 -1
- package/dist/lib/utils/Nodes.d.ts.map +1 -1
- package/dist/lib/utils/Properties.d.ts +1 -2
- package/dist/lib/utils/Properties.d.ts.map +1 -1
- package/dist/lib/utils/index.d.ts +2 -0
- package/dist/lib/utils/index.d.ts.map +1 -1
- package/dist/lib/utils/limits/CompositeLimits.d.ts +47 -0
- package/dist/lib/utils/limits/CompositeLimits.d.ts.map +1 -0
- package/dist/lib/utils/limits/Limits.d.ts +2 -2
- package/dist/lib/utils/limits/Limits.d.ts.map +1 -1
- package/dist/lib/utils/limits/PathLimits.d.ts.map +1 -1
- package/dist/lib/utils/limits/__tests__/TestLimits.d.ts +39 -0
- package/dist/lib/utils/limits/__tests__/TestLimits.d.ts.map +1 -0
- package/dist/lib/utils/limits/index.d.ts +1 -0
- package/dist/lib/utils/limits/index.d.ts.map +1 -1
- package/dist/schema/utils.d.ts +4 -0
- package/dist/schema/utils.d.ts.map +1 -0
- package/package.json +2 -2
- package/dist/lib/merge/createDefaultNodeProcessor.d.ts +0 -7
- package/dist/lib/merge/createDefaultNodeProcessor.d.ts.map +0 -1
- package/dist/lib/merge/processors/Types.d.ts.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { BlueNode, type UrlFetchStrategy, BlueIdCalculator, JsonCanonicalizer, BlueIdToCid, Base58Sha256Provider, TypeSchemaResolver, Blue, applyBlueNodePatch, type BlueNodePatch, BlueNodeTypeSchema, type BlueRepository, } from './lib';
|
|
1
|
+
export { BlueNode, type UrlFetchStrategy, BlueIdCalculator, JsonCanonicalizer, BlueIdToCid, Base58Sha256Provider, TypeSchemaResolver, Blue, applyBlueNodePatch, type BlueNodePatch, BlueNodeTypeSchema, type BlueRepository, Limits, Nodes, BasicNodeProvider, NodeResolver, type MergingProcessor, Merger, MergingProcessors, } from './lib';
|
|
2
2
|
export * from './schema';
|
|
3
3
|
export * from './schema/annotations';
|
|
4
4
|
export * from './utils';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,IAAI,EACJ,kBAAkB,EAClB,KAAK,aAAa,EAClB,kBAAkB,EAClB,KAAK,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,KAAK,gBAAgB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,WAAW,EACX,oBAAoB,EACpB,kBAAkB,EAClB,IAAI,EACJ,kBAAkB,EAClB,KAAK,aAAa,EAClB,kBAAkB,EAClB,KAAK,cAAc,EACnB,MAAM,EACN,KAAK,EACL,iBAAiB,EAGjB,YAAY,EACZ,KAAK,gBAAgB,EACrB,MAAM,EACN,iBAAiB,GAClB,MAAM,OAAO,CAAC;AACf,cAAc,UAAU,CAAC;AACzB,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var Ut=Object.defineProperty;var Lt=(n,e,t)=>e in n?Ut(n,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[e]=t;var h=(n,e,t)=>Lt(n,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("@blue-labs/shared-utils"),c=require("zod"),_t=require("bs58"),x=require("big.js"),v=require("radash"),Jt=require("js-sha256"),kt=require("crypto"),Gt=require("base32.js"),_=require("js-yaml"),rt=n=>n&&n.__esModule?n:{default:n},oe=rt(_t),we=rt(kt);class Yt{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 a=e.getValue();return i&&a!==void 0?a:e}const o=t[r],l=this.getNodeForSegment(e,o,s,!0);if(l)return this.getRecursive(l,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 l=e.getName();i=u.isNonNullable(l)?new d().setValue(l):new d;break}case"description":{const l=e.getDescription();i=u.isNonNullable(l)?new d().setValue(l):new d;break}case"type":i=e.getType()??new d;break;case"itemType":i=e.getItemType()??new d;break;case"keyType":i=e.getKeyType()??new d;break;case"valueType":i=e.getValueType()??new d;break;case"value":{const l=e.getValue();i=new d().setValue(l??null);break}case"blueId":{const l=e.getBlueId();i=u.isNonNullable(l)?new d().setValue(l):new d;break}case"blue":i=e.getBlue();break;case"items":{const l=e.getItems();i=new d().setItems(l);break}case"properties":{const l=e.getProperties();i=new d().setProperties(l);break}case"contracts":{const l=e.getContracts();i=new d().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&&r?this.link(i,r):i}static link(e,t){const r=t(e);return u.isNonNullable(r)?r:e}}class P extends x{constructor(e){super(e)}}class C extends x{constructor(e){super(e)}}const k="name",G="description",pe="type",ze="itemType",Ze="keyType",Ue="valueType",Ie="value",Le="items",U="blueId",_e="blue",Te="contracts",Kt=[k,G,pe,ze,Ze,Ue,Ie,Le,U,_e,Te],Wt="Text",Ht="Double",qt="Integer",Xt="Boolean",Qt="List",en="Dictionary",Je=[Wt,Ht,qt,Xt],st=[...Je,Qt,en],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((n,e)=>[n,ue[e]]));const tn=Object.fromEntries(ue.map((n,e)=>[n,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(u.isNonNullable(e)&&u.isNonNullable(this.value)){if(e===X&&typeof this.value=="string")return new P(this.value);if(e===q&&typeof this.value=="string"){const r=new C(this.value),s=parseFloat(r.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,r,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=(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(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 d=j;class Z{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(oe.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}}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 nn=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(n=>{try{return oe.default.decode(n),!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()}),rn=de.extend({value:c.z.string().optional()}),sn=de.extend({value:c.z.number().optional()}),on=de.extend({value:c.z.boolean().optional()}),ln=de.extend({items:c.z.array(c.z.string()).optional()}),cn=n=>Y.safeParse(n).success,ct=n=>u.isNonNullable(n)&&"blueId"in n&&u.isNonNullable(n.blueId),an=n=>u.isNonNullable(n)&&"name"in n&&u.isNonNullable(n.name),at=n=>u.isNonNullable(n)&&"items"in n&&u.isNonNullable(n.items),ut=n=>u.isNonNullable(n)&&"type"in n&&u.isNonNullable(n.type),dt=n=>u.isNonNullable(n)&&"value"in n&&u.isNonNullable(n.value),un=(n,e)=>n.required({type:!0}).safeParse(e).success,O=n=>n instanceof x,K=n=>O(n)&&n instanceof P,ht=n=>O(n)&&n instanceof C,dn=c.z.lazy(()=>c.z.record(le)),hn=c.z.lazy(()=>c.z.union([c.z.array(le),c.z.array(le).readonly()])),le=c.z.lazy(()=>c.z.union([u.jsonPrimitiveSchema,dn,hn,c.z.instanceof(x)])),ke=n=>v.isObject(n)&&!v.isArray(n)&&!u.isReadonlyArray(n)&&!O(n),Ge=n=>v.isArray(n)||u.isReadonlyArray(n),fn=n=>Ge(n)||ke(n)||O(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(ke(e)){const t=new d,r={},s={};return Object.entries(e).forEach(([i,o])=>{switch(i){case k:if(o==null)t.setName(void 0);else{if(typeof o!="string")throw new Error(`The ${k} 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)&&!u.isReadonlyArray(o)&&Object.entries(o).forEach(([l,a])=>{s[l]=p.handleNode(a)});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(Ge(e))return new d().setItems(p.handleArray(e));{const t=e;return new d().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()),r=Number.MIN_SAFE_INTEGER,s=Number.MAX_SAFE_INTEGER;return t.lt(r)?new P(r.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 pn(n){return n&&n.__esModule&&Object.prototype.hasOwnProperty.call(n,"default")?n.default:n}var ve,Qe;function yn(){return Qe||(Qe=1,ve=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])}`},"")}}`}),ve}var gn=yn();const mn=pn(gn);class ft{static canonicalize(e){return mn(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),r=this.cryptoEnv.hasNodeCrypto()?this.sha256Sync(t):this.sha256SyncBrowser(t);return oe.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 oe.default.encode(new Uint8Array(r))}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 Jt.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 r=e.getValue(),s=this.handleValue(r);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[k]=o),l!==void 0&&(a[G]=l);const f=e.getType();if(t==="official"&&r!==void 0&&f===void 0){const F=this.inferTypeBlueId(r);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()),r=new x(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"?H:O(e)?K(e)?X:q:typeof e=="boolean"?Q:null}}const bn=n=>u.isJsonPrimitive(n)&&u.isNonNullable(n),M=class M{constructor(e){h(this,"hashProvider");this.hashProvider=e}static calculateBlueId(e){if(Array.isArray(e)){const r=e.map(s=>y.get(s));return M.INSTANCE.calculate(r)}const t=y.get(e);return M.INSTANCE.calculate(t)}static calculateBlueIdSync(e){if(Array.isArray(e)){const r=e.map(s=>y.get(s));return M.INSTANCE.calculateSync(r)}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 bn(e)||O(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[U]!==void 0)return e[U];const s=Object.keys(e).map(o=>{const l=e[o];if([k,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 r=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);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)||O(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}}};h(M,"INSTANCE",new M(new pt));let N=M;class In{static convert(e){const t=oe.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 Gt.Encoder({type:"rfc4648",lc:!0}).write(s).finalize().replace(/=/g,"")}}class V{static transform(e,t){const r=t(e.clone()),s=r.getType();s!==void 0&&r.setType(V.transform(s,t));const i=r.getItemType();i!==void 0&&r.setItemType(V.transform(i,t));const o=r.getKeyType();o!==void 0&&r.setKeyType(V.transform(o,t));const l=r.getValueType();l!==void 0&&r.setValueType(V.transform(l,t));const a=r.getItems();if(a!==void 0){const T=a.map(b=>V.transform(b,t));r.setItems(T)}const f=r.getProperties();if(f!==void 0){const T=Object.keys(f).reduce((b,m)=>(b[m]=V.transform(f[m],t),b),{});r.setProperties(T)}const I=r.getContracts();if(I!==void 0){const T=Object.keys(I).reduce((b,m)=>(b[m]=V.transform(I[m],t),b),{});r.setContracts(T)}return r}}const $=n=>!!n&&typeof n=="object"&&!Array.isArray(n)&&!(n instanceof d),R=n=>n instanceof P||n instanceof C,Tn=n=>n.replace(/~1/g,"/").replace(/~0/g,"~");function ee(n){if(n==="/")return[];if(!n.startsWith("/"))throw new Error(`Path must start with '/': ${n}`);return n.split("/").slice(1).map(Tn)}function W(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 yt(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 et(n,e,t=!0){if(n instanceof d){const r=yt(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=W(e);return r>=0&&r<n.length?n[r]:void 0}if($(n))return n[e]}function te(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=et(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 d){const s=et(t,r,!1);if((typeof s!="object"||s===null||R(s))&&!(s instanceof d)&&!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 d&&t.getItems()&&r==="-"?{parent:t,key:"-"}:{parent:t,key:Array.isArray(t)?W(r):r}}function Ye(n,e){var t;if(n instanceof d){const r=e,s=yt(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)||$(n)?n[e]:n}function w(n){if(n instanceof d)return n;if(n===null||typeof n=="string"||typeof n=="number"||typeof n=="boolean"||R(n))return p.deserialize(n);const e=De(n);return p.deserialize(e)}function De(n){if(n===void 0)return null;if(n===null||typeof n!="object")return n;if(Array.isArray(n))return n.map(De);const e={};for(const[t,r]of Object.entries(n))e[t]=De(r);return e}function Ke(n,e,t){if(n instanceof d){const r=e;switch(r){case"name":n.setName(t);return;case"description":n.setDescription(t);return;case"type":n.setType(t instanceof d||typeof t=="string"||t===void 0?t:w(t));return;case"itemType":n.setItemType(t instanceof d||typeof t=="string"||t===void 0?t:w(t));return;case"keyType":n.setKeyType(t instanceof d||typeof t=="string"||t===void 0?t:w(t));return;case"valueType":n.setValueType(t instanceof d||typeof t=="string"||t===void 0?t:w(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 d||t===void 0?t:w(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 d?t:w(t));return}}}Array.isArray(n)?n.splice(W(e),1):$(n)&&(t===void 0?delete n[e]:n[e]=t)}function Nn(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 ye(n,e,t,r){if(Array.isArray(n)){const s=e==="-"?n.length:W(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=w(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 d){e==="-"||typeof e=="number"&&!isNaN(e)||typeof e=="string"&&/^\d+$/.test(e)?Nn(n,e,w(t),r):Ke(n,e,t);return}if($(n)){n[e]=w(t);return}throw new Error(`Cannot insert into parent of type ${typeof n}`)}function Bn(n,e){if(Array.isArray(n)){const t=W(e);t===-1&&e==="-"?n.length>0&&n.pop():t>=0&&t<n.length&&n.splice(t,1);return}if(n instanceof d){if(typeof e=="number"||typeof e=="string"&&/^-?\d+$/.test(e)){const t=n.getItems();if(t){const r=W(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}}Ke(n,e,void 0)}else $(n)&&delete n[e]}function Fe(n){if(n instanceof d)return n.clone();if(Array.isArray(n))return n.map(t=>Fe(t));if($(n)){const e={};return Object.keys(n).forEach(t=>{e[t]=Fe(n[t])}),e}return n}function z(n,e){if(n===e||n instanceof d&&(n.isInlineValue()||n.getValue()!==void 0)&&z(n.getValue()??null,e)||e instanceof d&&(e.isInlineValue()||e.getValue()!==void 0)&&z(n,e.getValue()??null))return!0;if(n instanceof d&&e instanceof d||R(n)&&R(e)||R(n)&&typeof e=="number"||typeof n=="number"&&R(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($(n)&&$(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 gt(n,e){const{parent:t,key:r}=te(n,ee(e));return Ye(t,r)}function mt(n,e,t){const r=ee(e);if(r.length===0&&e==="/"){const o=w(t);n.setValue(o.getValue()??null),o.getItems()?n.setItems(o.getItems()):n.setItems(void 0);return}const{parent:s,key:i}=te(n,r);ye(s,i,t,!0)}function wn(n,e,t){const r=ee(e);if(r.length===0&&e==="/"){if(n.getItems()&&Array.isArray(t)){const o=w(t);o.getItems()?(n.setItems(o.getItems()),n.setValue(null)):(n.setValue(o.getValue()??null),n.setItems(void 0))}else{const o=w(t);n.setValue(o.getValue()??null),o.getItems()&&n.setItems(o.getItems())}return!0}const{parent:s,key:i}=te(n,r);return ye(s,i,t,!1),!0}function vn(n,e,t){const r=ee(e);if(r.length===0&&e==="/"){const l=w(t);return n.setValue(l.getValue()??null),l.getItems()?n.setItems(l.getItems()):n.setItems(void 0),!0}const{parent:s,key:i,actualTarget:o}=te(n,r);if(o!==void 0&&s instanceof d)Ke(s,i,t);else{const l=Ye(s,i),a=Array.isArray(s)||s instanceof d&&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(n,e){const t=ee(e);if(t.length===0&&e==="/")return n.setValue(null),n.setItems(void 0),n.setProperties(void 0),!0;const{parent:r,key:s}=te(n,t);return Bn(r,s),!0}function En(n,e,t){const r=Fe(gt(n,e));return mt(n,t,r),!0}function Sn(n,e,t){const r=ee(e),{parent:s,key:i}=te(n,r),o=Ye(s,i);if(o===void 0)throw new Error(`MOVE failed: 'from' location '${e}' does not exist.`);return bt(n,e)?(mt(n,t,o),!0):!1}function Pn(n,e,t){const r=gt(n,e);let s=t;if(r instanceof d)if((t===null||typeof t=="string"||typeof t=="number"||typeof t=="boolean"||R(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 d)&&(s=w(t));else if(R(r)&&typeof t=="number")r instanceof P?s=new P(t.toString()):r instanceof C&&(s=new C(t.toString()));else if((r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean")&&R(t)){const i=t;!z(r,i.toString())&&(typeof r=="number"&&parseFloat(i.toString()))}if(!z(r,s)){const i=r instanceof d?r.toString():JSON.stringify(r),o=s instanceof d?s.toString():JSON.stringify(s);throw new Error(`TEST failed at '${e}': Expected ${o}, got ${i}`)}return!0}function An(n,e){switch(e.op){case"add":return wn(n,e.path,e.val);case"replace":return vn(n,e.path,e.val);case"remove":return bt(n,e.path);case"copy":return En(n,e.from,e.path);case"move":return Sn(n,e.from,e.path);case"test":return Pn(n,e.path,e.val)}}function Cn(n,e,t=!1){const r=t?n:n.clone();return An(r,e),r}const Se=Symbol.for("zod-schema-annotations");function On(){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 n=On();return Se in n||(n[Se]=new WeakMap),n[Se]}function ne(n,e){const t=It(),r=t.get(n)||{};return t.set(n,{...r,...e}),n}const A=n=>It().get(n),Tt=n=>e=>{const t=A(e);return ne(e,{...t,blueDescription:n})},Nt=n=>{const e=A(n);return u.isNonNullable(e)&&v.isString(e.blueDescription)?e.blueDescription:null},Vn=n=>Tt(n)(c.z.string().optional()),Dn=c.z.union([c.z.string(),c.z.boolean()]),Bt=n=>e=>{const t=A(e);return ne(e,{...t,blueId:n})},wt=n=>{const e=A(n),t=Dn.safeParse(e==null?void 0:e.blueId);return t.success?t.data:null},Fn=n=>Bt(n??!0)(c.z.string()),vt=n=>e=>{const t=A(e);return ne(e,{...t,blueName:n})},Et=n=>{const e=A(n);return u.isNonNullable(e)&&v.isString(e.blueName)?e.blueName:null},jn=n=>{const e=c.z.string().optional();return vt(n)(e)},St=()=>n=>{const e=A(n);return ne(n,{...e,blueNode:!0})},Pt=n=>{const e=A(n);return u.isNonNullable(e)&&u.isNonNullable(e.blueNode)&&e.blueNode===!0?e.blueNode:null},We=n=>!!Pt(n),Rn=()=>{const n=c.z.instanceof(d);return St()(n)},je="extendedFrom",At=({schema:n,baseSchema:e})=>{const t=A(n)||{};return ne(n,{...t,[je]:e})},Ct=n=>{const e=A(n);return u.isNonNullable(e)&&e[je]?e[je]:null},He=(n,e)=>{const t=Ct(n);return u.isNullable(t)?!1:(t==null?void 0:t._def)===(e==null?void 0:e._def)?!0:He(t,e)},Mn=n=>new Proxy(n,{get(e,t,r){return t==="extend"?function(...s){const i=e.extend(...s);return At({schema:i,baseSchema:e})}:Reflect.get(e,t,r)}}),xn=c.z.object({value:c.z.array(c.z.string()).optional(),defaultValue:c.z.string().optional()}),Ot=n=>{const e=A(n),t=xn.passthrough().safeParse(e==null?void 0:e.typeBlueId);return t.success?t.data:null},$n=n=>e=>{const t=A(e),r=typeof n=="string"?{value:[n]}:n,s=Mn(e);return ne(s,{...t,typeBlueId:{...(t==null?void 0:t.typeBlueId)||{},...r}})};class Ne{static resolveBlueId(e){var i;const t=Ot(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:Ne.getRepositoryBlueId(t,e)}static getRepositoryBlueId(e,t){throw new Error("Not implemented")}}class S{static isTypeOf(e,t,r){var o;const s=Ne.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 l=r.typeSchemaResolver.resolveSchema(e);return S.checkSchemaExtension(l,t)}return!1}static checkSchemaExtension(e,t){if(!u.isNonNullable(e))return!1;const r=S.unwrapSchema(e),s=S.unwrapSchema(t);return He(r,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(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)?N.calculateBlueIdSync(t):null}getBlueIdMap(){return new Map(this.blueIdMap)}}class Dt{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:H===r?this.convertFromString(String(s),t):q===r||s instanceof C?this.convertFromBigDecimal(new C(s==null?void 0:s.toString()),t):X===r||s instanceof P?this.convertFromBigInteger(new P(s==null?void 0:s.toString()),t):Q===r||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 zn{convert(e,t){return Dt.convertValue(e,t)}}class Zn{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 r=t._def.left,s=t._def.right,i=this.convert(e,r),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(u.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(u.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(u.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"&&u.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(u.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 Un{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 Ln{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 _n{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 r=t.keySchema,s=t.valueSchema,i=new Map,o=e.getName();u.isNonNullable(o)&&i.set(k,o);const l=e.getDescription();u.isNonNullable(l)&&i.set(G,l);const a=e.getContracts();if(u.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 u.isNonNullable(f)&&Object.entries(f).forEach(([I,T])=>{const b=new d().setValue(I);b.setType(new d().setBlueId(H));const m=Dt.convertValue(b,r),g=this.nodeToObjectConverter.convert(T,s);i.set(m,g)}),t instanceof c.ZodRecord?Object.fromEntries(i):i}}class Jn{convert(e){return y.get(e)}}class kn{convert(e){return y.get(e)}}class Gn{constructor(e){this.nodeToObjectConverter=e}convert(e,t){const r=e.getItems();if(!r)return;const s=t.items;return r.map((o,l)=>this.nodeToObjectConverter.convert(o,s[l]))}}const Yn=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 Kn{constructor(e){h(this,"converters",new Map);h(this,"complexObjectConverter");this.nodeToObjectConverter=e,this.registerConverters(),this.complexObjectConverter=new Zn(this.nodeToObjectConverter)}registerConverters(){const e=new zn,t=new Un(this.nodeToObjectConverter),r=new Gn(this.nodeToObjectConverter),s=new Ln(this.nodeToObjectConverter),i=new _n(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 Jn),this.converters.set("ZodAny",new kn),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 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 Yn.parse(t)}catch{throw new Error(`Schema type name ${t} is not supported`)}}}class Wn{constructor(e){h(this,"converterFactory");this.typeSchemaResolver=e,this.converterFactory=new Kn(this)}convert(e,t){var o;const r=(o=this.typeSchemaResolver)==null?void 0:o.resolveSchema(e),s=S.unwrapSchema(t);if(We(s))return e;let i=s;return S.checkSchemaExtension(r,s)&&u.isNonNullable(r)&&(i=r),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 Hn(n){return new class extends he{fetchByBlueId(e){return n(e)}}}class qn extends he{constructor(t){super();h(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 Pe=_.types.float.options,Xn={...Pe,construct:n=>{const e=n.replace(/_/g,"").toLowerCase();if(!u.isPreciseNumberString(e))return new C(e);if(Pe.construct)return Pe.construct(n)}},Qn=new _.Type("tag:yaml.org,2002:float",Xn),Ae=_.types.int.options,er={...Ae,construct:n=>{let e=n;if(e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),!u.isPreciseNumberString(e))return new P(e);if(Ae.construct)return Ae.construct(n)}},tr=new _.Type("tag:yaml.org,2002:int",er),Ft=_.CORE_SCHEMA.extend({implicit:[Qn,tr]}),L=n=>{const e=_.load(n,{schema:Ft});return e===void 0?void 0:e},nr=n=>_.dump(n,{schema:Ft,replacer:(e,t)=>{if(O(t)){if(K(t)){const r=new x(Number.MIN_SAFE_INTEGER.toString()),s=new x(Number.MAX_SAFE_INTEGER.toString());if(t.lt(r)||t.gt(s))return t.toString()}return t.toNumber()}return t}}),jt=`- type:
|
|
1
|
+
"use strict";var Ht=Object.defineProperty;var qt=(s,e,t)=>e in s?Ht(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var h=(s,e,t)=>qt(s,typeof e!="symbol"?e+"":e,t);Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("@blue-labs/shared-utils"),u=require("zod"),Xt=require("bs58"),j=require("big.js"),A=require("radash"),Qt=require("js-sha256"),er=require("crypto"),tr=require("base32.js"),Z=require("js-yaml"),it=s=>s&&s.__esModule?s:{default:s},le=it(Xt),we=it(er);class rr{static get(e,t,r,n=!0){if(c.isNullable(t)||!t.startsWith("/"))throw new Error(`Invalid path: ${t}`);if(t==="/"){const o=e.getValue();return n&&o!==void 0?o:e}const i=t.substring(1).split("/");return this.getRecursive(e,i,0,r,n)}static getRecursive(e,t,r,n,i){if(r===t.length-1&&!i)return this.getNodeForSegment(e,t[r],n,!1);if(r===t.length){const a=e.getValue();return i&&a!==void 0?a:e}const o=t[r],l=this.getNodeForSegment(e,o,n,!0);if(l)return this.getRecursive(l,t,r+1,n,i)}static getNodeForSegment(e,t,r,n){let i;const o=e.getProperties();if(o&&t in o)i=o[t];else switch(t){case"name":{const l=e.getName();i=new d().setValue(l??null);break}case"description":{const l=e.getDescription();i=new d().setValue(l??null);break}case"type":i=e.getType();break;case"itemType":i=e.getItemType();break;case"keyType":i=e.getKeyType();break;case"valueType":i=e.getValueType();break;case"value":{const l=e.getValue();i=new d().setValue(l??null);break}case"blueId":{const l=e.getBlueId();i=new d().setValue(l??null);break}case"blue":i=e.getBlue();break;case"items":{const l=e.getItems();i=new d().setItems(l);break}case"properties":{const l=e.getProperties();i=new d().setProperties(l);break}case"contracts":{const l=e.getContracts();i=new d().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 n&&r?this.link(i,r):i}static link(e,t){const r=t(e);return c.isNonNullable(r)?r:e}}class T extends j{constructor(e){super(e)}}class v extends j{constructor(e){super(e)}}const q="name",X="description",pe="type",Le="itemType",ze="keyType",Ue="valueType",be="value",_e="items",_="blueId",Ze="blue",sr=[q,X,pe,Le,ze,Ue,be,_e,_,Ze],nr="Text",ir="Double",or="Integer",lr="Boolean",ar="List",cr="Dictionary",ke=[nr,ir,or,lr],ot=[...ke,ar,cr],k="F92yo19rCcbBoBSpUA5LRxpfDejJDAaP1PRxxbWAraVP",Y="68ryJtnmui4j5rCZWUnkZ3DChtmEb7Z9F8atn1mBSM3L",J="DHmxTkFbXePZHCHCYmQr2dSzcNLcryFVjXVHkdQrrZr8",G="EL6AjrbJsxTWRTPzY8WR8Y2zAMXRbydQj83PcZwuAHbo",lt="G8wmfjEqugPEEXByMYWJXiEdbLToPRWNQEekNxrxfQWB",at="294NBTj2mFRL3RB4kDRUSckwGg7Kzj6T8CTAFeR1kcSA",ct=[k,Y,J,G],ue=[...ct,lt,at];Object.fromEntries(ot.map((s,e)=>[s,ue[e]]));const ur=Object.fromEntries(ue.map((s,e)=>[s,ot[e]])),P=class P{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,"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 P().setValue(e).setInlineValue(!0):this.type=e,this}getItemType(){return this.itemType}setItemType(e){return typeof e=="string"?this.itemType=new P().setValue(e).setInlineValue(!0):this.itemType=e,this}getKeyType(){return this.keyType}setKeyType(e){return typeof e=="string"?this.keyType=new P().setValue(e).setInlineValue(!0):this.keyType=e,this}getValueType(){return this.valueType}setValueType(e){return typeof e=="string"?this.valueType=new P().setValue(e).setInlineValue(!0):this.valueType=e,this}getValue(){var t;const e=(t=this.type)==null?void 0:t.getBlueId();if(c.isNonNullable(e)&&c.isNonNullable(this.value)){if(e===J&&typeof this.value=="string")return new T(this.value);if(e===Y&&typeof this.value=="string"){const r=new v(this.value),n=parseFloat(r.toString());return new v(n.toString())}else if(e===G&&typeof this.value=="string")return this.value.toLowerCase()==="true"}return this.value}setValue(e){return typeof e=="number"?e%1===0?this.value=new T(e.toString()):this.value=new v(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}getContractsProperty(){var e;return(e=this.properties)==null?void 0:e.contracts}getContracts(){var e;return(e=this.getContractsProperty())==null?void 0:e.getProperties()}setContracts(e){return c.isNullable(e)?this.removeProperty("contracts"):this.addProperty("contracts",new P().setProperties(e)),this}addContract(e,t){const r=this.getContractsProperty();return c.isNullable(r)?this.addProperty("contracts",new P().addProperty(e,t)):r.addProperty(e,t),this}removeContract(e){const t=this.getContractsProperty();if(t){t.removeProperty(e);const r=t.getProperties();r&&Object.keys(r).length===0&&this.removeProperty("contracts")}return 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 rr.get(this,e,t)}getAsNode(e){const t=this.get(e);if(t instanceof P)return t;throw new Error(`Value at path ${e} is not a BlueNode: ${t}`)}getAsInteger(e){const t=this.get(e);if(t instanceof T||t instanceof v)return t.toNumber();throw new Error(`Value at path ${e} is not a BigInteger or BigDecimal: ${t}`)}clone(){var t,r,n,i,o,l;const e=new P(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=(n=this.keyType)==null?void 0:n.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,p])=>[a,p.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}, blueId='${this.blueId}', blue=${this.blue}, inlineValue=${this.inlineValue}}`}};h(P,"INTEGER",new P("Integer"));let d=P;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],n=r.length;if(n<this.MIN_BLUE_ID_LENGTH||n>this.MAX_BLUE_ID_LENGTH)return!1;try{if(le.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}}h(U,"MIN_BLUE_ID_LENGTH",41),h(U,"MAX_BLUE_ID_LENGTH",45),h(U,"BLUE_ID_PATTERN",/^[1-9A-HJ-NP-Za-km-z]{41,45}(?:#\d+)?$/);const dr=u.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(s=>{try{return le.default.decode(s),!0}catch{return!1}},{message:"Blue Id must be a valid Base58 string"}),Q=u.z.lazy(()=>u.z.record(u.z.unknown()).and(u.z.object({blueId:u.z.string().optional(),name:u.z.string().optional(),description:u.z.string().optional(),type:Q.optional(),value:u.z.union([u.z.string(),u.z.number(),u.z.boolean()]).optional().nullable(),items:u.z.array(Q).optional()}))),de=u.z.object({blueId:u.z.string().optional(),name:u.z.string().optional(),description:u.z.string().optional(),type:Q.optional()}),hr=de.extend({value:u.z.string().optional()}),pr=de.extend({value:u.z.number().optional()}),fr=de.extend({value:u.z.boolean().optional()}),gr=de.extend({items:u.z.array(u.z.string()).optional()}),yr=s=>Q.safeParse(s).success,ut=s=>c.isNonNullable(s)&&"blueId"in s&&c.isNonNullable(s.blueId),mr=s=>c.isNonNullable(s)&&"name"in s&&c.isNonNullable(s.name),dt=s=>c.isNonNullable(s)&&"items"in s&&c.isNonNullable(s.items),ht=s=>c.isNonNullable(s)&&"type"in s&&c.isNonNullable(s.type),pt=s=>c.isNonNullable(s)&&"value"in s&&c.isNonNullable(s.value),Ir=(s,e)=>s.required({type:!0}).safeParse(e).success,V=s=>s instanceof j,x=s=>V(s)&&s instanceof T,fe=s=>V(s)&&s instanceof v,br=u.z.lazy(()=>u.z.record(ae)),Nr=u.z.lazy(()=>u.z.union([u.z.array(ae),u.z.array(ae).readonly()])),ae=u.z.lazy(()=>u.z.union([c.jsonPrimitiveSchema,br,Nr,u.z.instanceof(j)])),Ye=s=>A.isObject(s)&&!A.isArray(s)&&!c.isReadonlyArray(s)&&!V(s),Je=s=>A.isArray(s)||c.isReadonlyArray(s),Tr=s=>Je(s)||Ye(s)||V(s)||c.isJsonPrimitive(s);class f{static deserialize(e){return f.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(Ye(e)){const t=new d,r={};return Object.entries(e).forEach(([n,i])=>{switch(n){case q:if(i==null)t.setName(void 0);else{if(typeof i!="string")throw new Error(`The ${q} field must be a string.`);t.setName(i)}break;case X:if(i==null)t.setDescription(void 0);else{if(typeof i!="string")throw new Error(`The ${X} field must be a string.`);t.setDescription(i)}break;case pe:t.setType(f.handleNode(i));break;case Le:t.setItemType(f.handleNode(i));break;case ze:t.setKeyType(f.handleNode(i));break;case Ue:t.setValueType(f.handleNode(i));break;case be:t.setValue(f.handleValue(i));break;case _:if(typeof i!="string")throw new Error(`The ${_} field must be a string.`);t.setBlueId(i);break;case _e:t.setItems(f.handleArray(i));break;case Ze:t.setBlue(f.handleNode(i));break;default:r[n]=f.handleNode(i);break}}),Object.keys(r).length>0&&t.setProperties(r),t}else{if(Je(e))return new d().setItems(f.handleArray(e));{const t=e;return new d().setValue(f.handleValue(t)).setInlineValue(!0)}}}static handleValue(e){if(e==null)return null;if(typeof e=="string")return e;if(typeof e=="number"||V(e))if(x(e)||Number.isSafeInteger(e)){const t=new T(e.toString()),r=Number.MIN_SAFE_INTEGER,n=Number.MAX_SAFE_INTEGER;return t.lt(r)?new T(r.toString()):t.gt(n)?new T(n.toString()):t}else{const t=parseFloat(e.toString());return new v(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(A.isObject(e)&&!Array.isArray(e))return[f.handleNode(e)];if(Array.isArray(e))return e.map(f.handleNode);throw new Error("Expected an array node")}}}function Br(s){return s&&s.__esModule&&Object.prototype.hasOwnProperty.call(s,"default")?s.default:s}var ve,tt;function wr(){return tt||(tt=1,ve=function s(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?s(e.toJSON()):Array.isArray(e)?`[${e.reduce((n,i,o)=>`${n}${o===0?"":","}${s(i===void 0||typeof i=="symbol"?null:i)}`,"")}]`:`{${Object.keys(e).sort().reduce((r,n)=>{if(e[n]===void 0||typeof e[n]=="symbol")return r;const i=r.length===0?"":",";return`${r}${i}${s(n)}:${s(e[n])}`},"")}}`}),ve}var vr=wr();const Er=Br(vr);class ft{static canonicalize(e){return Er(e)}}const Ee=typeof process<"u"&&process.versions!=null&&process.versions.node!=null,ye=class ye{constructor(){h(this,"browserCrypto");this.browserCrypto=this.initBrowserCrypto()}static getInstance(){return this.instance||(this.instance=new ye),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(ye,"instance");let De=ye;class gt{constructor(){h(this,"cryptoEnv",De.getInstance())}applySync(e){const t=this.canonicalizeInput(e),r=this.cryptoEnv.hasNodeCrypto()?this.sha256Sync(t):this.sha256SyncBrowser(t);return le.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 le.default.encode(new Uint8Array(r))}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 Qt.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 n=new TextEncoder().encode(e);return t.subtle.digest("SHA-256",n)}}class g{static get(e,t="official"){var et;const r=e.getValue(),n=this.handleValue(r);if(n!==void 0&&t==="simple")return n;const i=(et=e.getItems())==null?void 0:et.map(W=>g.get(W,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(n!==void 0)return n;if(i!==void 0)return i}const a={};o!==void 0&&(a[q]=o),l!==void 0&&(a[X]=l);const p=e.getType();if(t==="official"&&r!==void 0&&p===void 0){const W=this.inferTypeBlueId(r);W!==null&&(a[pe]={[_]:W})}else p!==void 0&&(a[pe]=g.get(p,t));const I=e.getItemType();I!==void 0&&(a[Le]=g.get(I,t));const y=e.getKeyType();y!==void 0&&(a[ze]=g.get(y,t));const m=e.getValueType();m!==void 0&&(a[Ue]=g.get(m,t)),n!==void 0&&(a[be]=n),i!==void 0&&(a[_e]=i);const b=e.getBlueId();b!==void 0&&(a[_]=b);const L=e.getBlue();L!==void 0&&(a[Ze]=L);const K=e.getProperties();return K!==void 0&&Object.entries(K).forEach(([W,Wt])=>{a[W]=g.get(Wt,t)}),a}static handleValue(e){if(V(e)){if(x(e)){const t=new j(Number.MIN_SAFE_INTEGER.toString()),r=new j(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"?k:V(e)?x(e)?J:Y:typeof e=="boolean"?G:null}}const Pr=s=>c.isJsonPrimitive(s)&&c.isNonNullable(s),M=class M{constructor(e){h(this,"hashProvider");this.hashProvider=e}static calculateBlueId(e){if(Array.isArray(e)){const r=e.map(n=>g.get(n));return M.INSTANCE.calculate(r)}const t=g.get(e);return M.INSTANCE.calculate(t)}static calculateBlueIdSync(e){if(Array.isArray(e)){const r=e.map(n=>g.get(n));return M.INSTANCE.calculateSync(r)}const t=g.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 Pr(e)||V(e)?this.applyHash(e.toString(),t):Array.isArray(e)||c.isReadonlyArray(e)?this.calculateList(e,t):this.calculateMap(e,t)}calculateMap(e,t){if(e[_]!==void 0)return e[_];const n=Object.keys(e).map(o=>{const l=e[o];if([q,be,X].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(p=>[o,{blueId:p}])}}),i=o=>{const l={};for(const[a,p]of o)l[a]=p;return this.applyHash(l,t)};return t?i(n):Promise.all(n).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 n=(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);r=n(r,o)}return r}applyHash(e,t){return t?this.hashProvider.applySync(e):this.hashProvider.apply(e)}cleanStructure(e){if(e!=null){if(c.isJsonPrimitive(e)||V(e))return e;if(Array.isArray(e)||c.isReadonlyArray(e)){const t=e.map(r=>this.cleanStructure(r)).filter(c.isNonNullable);return t.length>0?t:void 0}else if(typeof e=="object"){const t={};for(const r in e){const n=this.cleanStructure(e[r]);n!=null&&(t[r]=n)}return Object.keys(t).length>0?t:void 0}else return e}}};h(M,"INSTANCE",new M(new gt));let N=M;class Sr{static convert(e){const t=le.default.decode(e),r=new Uint8Array(2+t.length);r[0]=18,r[1]=32,r.set(t,2);const n=new Uint8Array(2+r.length);return n[0]=1,n[1]=85,n.set(r,2),"b"+new tr.Encoder({type:"rfc4648",lc:!0}).write(n).finalize().replace(/=/g,"")}}class D{static transform(e,t){const r=t(e.clone()),n=r.getType();n!==void 0&&r.setType(D.transform(n,t));const i=r.getItemType();i!==void 0&&r.setItemType(D.transform(i,t));const o=r.getKeyType();o!==void 0&&r.setKeyType(D.transform(o,t));const l=r.getValueType();l!==void 0&&r.setValueType(D.transform(l,t));const a=r.getItems();if(a!==void 0){const I=a.map(y=>D.transform(y,t));r.setItems(I)}const p=r.getProperties();if(p!==void 0){const I=Object.keys(p).reduce((y,m)=>(y[m]=D.transform(p[m],t),y),{});r.setProperties(I)}return r}}const $=s=>!!s&&typeof s=="object"&&!Array.isArray(s)&&!(s instanceof d),O=s=>s instanceof T||s instanceof v,Ar=s=>s.replace(/~1/g,"/").replace(/~0/g,"~");function re(s){if(s==="/")return[];if(!s.startsWith("/"))throw new Error(`Path must start with '/': ${s}`);return s.split("/").slice(1).map(Ar)}function ee(s){if(s==="-")return-1;const e=typeof s=="number"?s:parseInt(s,10);if(isNaN(e))throw new Error(`Invalid array index (NaN) from '${s}'`);if(!Number.isFinite(e))throw new Error(`Invalid array index '${s}' results in non-finite number ${e}`);return e}function yt(s,e,t,r=!0){switch(e){case"name":return t?r?s.getName()??null:s:s.getName();case"description":return t?r?s.getDescription():s:s.getDescription();case"type":return s.getType();case"itemType":return s.getItemType();case"keyType":return s.getKeyType();case"valueType":return s.getValueType();case"value":return t?r?s.getValue()??null:s:s.getValue();case"blueId":return t?r?s.getBlueId()??null:s:s.getBlueId();case"blue":return s.getBlue();case"items":return s.getItems();case"properties":return s.getProperties();case"contracts":return s.getContracts();default:return}}function rt(s,e,t=!0){if(s instanceof d){const r=yt(s,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=s.getItems(),o=parseInt(e,10);return i&&o>=0&&o<i.length?i[o]:void 0}const n=s.getProperties();return n&&e in n?n[e]:void 0}if(Array.isArray(s)){if(e==="-")return;const r=ee(e);return r>=0&&r<s.length?s[r]:void 0}if($(s))return s[e]}function se(s,e){if(e.length===0)return{parent:s,key:"value",actualTarget:s.getValue()??s};let t=s;for(let n=0;n<e.length-1;++n){const i=e[n],o=rt(t,i);if(o===void 0)throw new Error(`Cannot resolve '/${e.slice(0,n+1).join("/")}'`);t=o}const r=e[e.length-1];if(t instanceof d){const n=rt(t,r,!1);if((typeof n!="object"||n===null||O(n))&&!(n instanceof d)&&!Array.isArray(n)&&["name","description","value","blueId"].includes(r))return{parent:t,key:r,actualTarget:n}}return Array.isArray(t)&&r==="-"?{parent:t,key:"-"}:t instanceof d&&t.getItems()&&r==="-"?{parent:t,key:"-"}:{parent:t,key:Array.isArray(t)?ee(r):r}}function Ge(s,e){var t;if(s instanceof d){const r=e,n=yt(s,r,!1);if(n!==void 0||["name","description","type","itemType","keyType","valueType","value","blueId","blue","items","properties","contracts"].includes(r))return n;if(typeof e=="number"||typeof e=="string"&&/^\d+$/.test(e)){const i=s.getItems(),o=typeof e=="number"?e:parseInt(e,10);if(i&&o>=0&&o<i.length)return i[o]}return(t=s.getProperties())==null?void 0:t[r]}return Array.isArray(s)||$(s)?s[e]:s}function w(s){if(s instanceof d)return s;if(s===null||typeof s=="string"||typeof s=="number"||typeof s=="boolean"||O(s))return f.deserialize(s);const e=Oe(s);return f.deserialize(e)}function Oe(s){if(s===void 0)return null;if(s===null||typeof s!="object")return s;if(Array.isArray(s))return s.map(Oe);const e={};for(const[t,r]of Object.entries(s))e[t]=Oe(r);return e}function Ke(s,e,t){if(s instanceof d){const r=e;switch(r){case"name":s.setName(t);return;case"description":s.setDescription(t);return;case"type":s.setType(t instanceof d||typeof t=="string"||t===void 0?t:w(t));return;case"itemType":s.setItemType(t instanceof d||typeof t=="string"||t===void 0?t:w(t));return;case"keyType":s.setKeyType(t instanceof d||typeof t=="string"||t===void 0?t:w(t));return;case"valueType":s.setValueType(t instanceof d||typeof t=="string"||t===void 0?t:w(t));return;case"value":{const n=t;s.setValue(n===void 0?null:n);return}case"blueId":s.setBlueId(t);return;case"blue":s.setBlue(t instanceof d||t===void 0?t:w(t));return;case"items":s.setItems(t);return;case"properties":s.setProperties(t);return;case"contracts":s.setContracts(t);return;default:{if(t===void 0){const n=s.getProperties();n&&r in n&&delete n[r]}else s.getProperties()||s.setProperties({}),s.addProperty(r,t instanceof d?t:w(t));return}}}Array.isArray(s)?s.splice(ee(e),1):$(s)&&(t===void 0?delete s[e]:s[e]=t)}function Cr(s,e,t,r){let n=-1;if(e!=="-"&&(n=typeof e=="number"?e:parseInt(e,10),isNaN(n)))throw new Error(`Invalid numeric key for BlueNode item operation: ${e}`);if(n<-1)throw new Error(`Invalid array index for BlueNode items: ${n}`);let i=s.getItems();if(i||(i=[],s.setItems(i)),!r&&n!==-1&&n>i.length)throw new Error(`ADD operation failed: Target array index '${n}' is greater than array length ${i.length}.`);if(e==="-")i.push(t);else if(r){if(n>=0)if(n<i.length)i[n]=t;else{for(let o=i.length;o<n;o++)i.push(f.deserialize(null));i.push(t)}}else i.splice(n,0,t)}function ge(s,e,t,r){if(Array.isArray(s)){const n=e==="-"?s.length:ee(e);if(!r&&n>s.length)throw new Error(`ADD operation failed: Target array index '${n}' is greater than array length ${s.length}. Path involving key '${e}'.`);if(n<0&&e!=="-")throw new Error(`Invalid negative array index: ${e}`);const i=w(t);if(r){if(n>=0&&n<s.length)s[n]=i;else if(n>=s.length){for(let o=s.length;o<n;o++)s.push(f.deserialize(null));s.push(i)}}else s.splice(n,0,i);return}if(s instanceof d){e==="-"||typeof e=="number"&&!isNaN(e)||typeof e=="string"&&/^\d+$/.test(e)?Cr(s,e,w(t),r):Ke(s,e,t);return}if($(s)){s[e]=w(t);return}throw new Error(`Cannot insert into parent of type ${typeof s}`)}function Vr(s,e){if(Array.isArray(s)){const t=ee(e);t===-1&&e==="-"?s.length>0&&s.pop():t>=0&&t<s.length&&s.splice(t,1);return}if(s instanceof d){if(typeof e=="number"||typeof e=="string"&&/^-?\d+$/.test(e)){const t=s.getItems();if(t){const r=ee(e);r===-1&&e==="-"?t.length>0&&t.pop():r>=0&&r<t.length&&t.splice(r,1),t.length===0&&s.setItems(void 0);return}}Ke(s,e,void 0)}else $(s)&&delete s[e]}function Fe(s){if(s instanceof d)return s.clone();if(Array.isArray(s))return s.map(t=>Fe(t));if($(s)){const e={};return Object.keys(s).forEach(t=>{e[t]=Fe(s[t])}),e}return s}function z(s,e){if(s===e||s instanceof d&&(s.isInlineValue()||s.getValue()!==void 0)&&z(s.getValue()??null,e)||e instanceof d&&(e.isInlineValue()||e.getValue()!==void 0)&&z(s,e.getValue()??null))return!0;if(s instanceof d&&e instanceof d||O(s)&&O(e)||O(s)&&typeof e=="number"||typeof s=="number"&&O(e))return s.toString()===e.toString();if(Array.isArray(s)&&Array.isArray(e))return s.length===e.length&&s.every((t,r)=>z(t,e[r]));if($(s)&&$(e)){const t=Object.keys(s),r=Object.keys(e);return t.length===r.length&&t.every(n=>z(s[n],e[n]))}return!1}function mt(s,e){const{parent:t,key:r}=se(s,re(e));return Ge(t,r)}function It(s,e,t){const r=re(e);if(r.length===0&&e==="/"){const o=w(t);s.setValue(o.getValue()??null),o.getItems()?s.setItems(o.getItems()):s.setItems(void 0);return}const{parent:n,key:i}=se(s,r);ge(n,i,t,!0)}function Dr(s,e,t){const r=re(e);if(r.length===0&&e==="/"){if(s.getItems()&&Array.isArray(t)){const o=w(t);o.getItems()?(s.setItems(o.getItems()),s.setValue(null)):(s.setValue(o.getValue()??null),s.setItems(void 0))}else{const o=w(t);s.setValue(o.getValue()??null),o.getItems()&&s.setItems(o.getItems())}return!0}const{parent:n,key:i}=se(s,r);return ge(n,i,t,!1),!0}function Or(s,e,t){const r=re(e);if(r.length===0&&e==="/"){const l=w(t);return s.setValue(l.getValue()??null),l.getItems()?s.setItems(l.getItems()):s.setItems(void 0),!0}const{parent:n,key:i,actualTarget:o}=se(s,r);if(o!==void 0&&n instanceof d)Ke(n,i,t);else{const l=Ge(n,i),a=Array.isArray(n)||n instanceof d&&n.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}'.`);ge(n,i,t,!0)}else ge(n,i,t,!0)}return!0}function bt(s,e){const t=re(e);if(t.length===0&&e==="/")return s.setValue(null),s.setItems(void 0),s.setProperties(void 0),!0;const{parent:r,key:n}=se(s,t);return Vr(r,n),!0}function Fr(s,e,t){const r=Fe(mt(s,e));return It(s,t,r),!0}function Mr(s,e,t){const r=re(e),{parent:n,key:i}=se(s,r),o=Ge(n,i);if(o===void 0)throw new Error(`MOVE failed: 'from' location '${e}' does not exist.`);return bt(s,e)?(It(s,t,o),!0):!1}function Rr(s,e,t){const r=mt(s,e);let n=t;if(r instanceof d)if((t===null||typeof t=="string"||typeof t=="number"||typeof t=="boolean"||O(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 d)&&(n=w(t));else if(O(r)&&typeof t=="number")r instanceof T?n=new T(t.toString()):r instanceof v&&(n=new v(t.toString()));else if((r===null||typeof r=="string"||typeof r=="number"||typeof r=="boolean")&&O(t)){const i=t;!z(r,i.toString())&&(typeof r=="number"&&parseFloat(i.toString()))}if(!z(r,n)){const i=r instanceof d?r.toString():JSON.stringify(r),o=n instanceof d?n.toString():JSON.stringify(n);throw new Error(`TEST failed at '${e}': Expected ${o}, got ${i}`)}return!0}function jr(s,e){switch(e.op){case"add":return Dr(s,e.path,e.val);case"replace":return Or(s,e.path,e.val);case"remove":return bt(s,e.path);case"copy":return Fr(s,e.from,e.path);case"move":return Mr(s,e.from,e.path);case"test":return Rr(s,e.path,e.val)}}function xr(s,e,t=!1){const r=t?s:s.clone();return jr(r,e),r}const Pe=Symbol.for("zod-schema-annotations");function $r(){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 Nt(){const s=$r();return Pe in s||(s[Pe]=new WeakMap),s[Pe]}function ne(s,e){const t=Nt(),r=t.get(s)||{};return t.set(s,{...r,...e}),s}const C=s=>Nt().get(s),Tt=s=>e=>{const t=C(e);return ne(e,{...t,blueDescription:s})},Bt=s=>{const e=C(s);return c.isNonNullable(e)&&A.isString(e.blueDescription)?e.blueDescription:null},Lr=s=>Tt(s)(u.z.string().optional()),zr=u.z.union([u.z.string(),u.z.boolean()]),wt=s=>e=>{const t=C(e);return ne(e,{...t,blueId:s})},vt=s=>{const e=C(s),t=zr.safeParse(e==null?void 0:e.blueId);return t.success?t.data:null},Ur=s=>wt(s??!0)(u.z.string()),Et=s=>e=>{const t=C(e);return ne(e,{...t,blueName:s})},Pt=s=>{const e=C(s);return c.isNonNullable(e)&&A.isString(e.blueName)?e.blueName:null},_r=s=>{const e=u.z.string().optional();return Et(s)(e)},St=()=>s=>{const e=C(s);return ne(s,{...e,blueNode:!0})},At=s=>{const e=C(s);return c.isNonNullable(e)&&c.isNonNullable(e.blueNode)&&e.blueNode===!0?e.blueNode:null},We=s=>!!At(s),Zr=()=>{const s=u.z.instanceof(d);return St()(s)},Me="extendedFrom",Ct=({schema:s,baseSchema:e})=>{const t=C(s)||{};return ne(s,{...t,[Me]:e})},Vt=s=>{const e=C(s);return c.isNonNullable(e)&&e[Me]?e[Me]:null},He=(s,e)=>{const t=Vt(s);return c.isNullable(t)?!1:(t==null?void 0:t._def)===(e==null?void 0:e._def)?!0:He(t,e)},kr=s=>new Proxy(s,{get(e,t,r){return t==="extend"?function(...n){const i=e.extend(...n);return Ct({schema:i,baseSchema:e})}:Reflect.get(e,t,r)}}),Yr=u.z.object({value:u.z.array(u.z.string()).optional(),defaultValue:u.z.string().optional()}),Dt=s=>{const e=C(s),t=Yr.passthrough().safeParse(e==null?void 0:e.typeBlueId);return t.success?t.data:null},Jr=s=>e=>{const t=C(e),r=typeof s=="string"?{value:[s]}:s,n=kr(e);return ne(n,{...t,typeBlueId:{...(t==null?void 0:t.typeBlueId)||{},...r}})};class Ne{static resolveBlueId(e){var i;const t=Dt(e);if(c.isNullable(t))return null;const r=t.defaultValue;if(c.isNonNullable(r))return r;const n=(i=t.value)==null?void 0:i[0];return c.isNonNullable(n)?n:Ne.getRepositoryBlueId(t,e)}static getRepositoryBlueId(e,t){throw new Error("Not implemented")}}class S{static isTypeOf(e,t,r){var o;const n=Ne.resolveBlueId(t),i=(o=e.getType())==null?void 0:o.getBlueId();if(c.isNullable(n)||c.isNullable(i))return!1;if(n===i)return!0;if(r!=null&&r.checkSchemaExtensions&&c.isNonNullable(r.typeSchemaResolver)){const l=r.typeSchemaResolver.resolveSchema(e);return S.checkSchemaExtension(l,t)}return!1}static checkSchemaExtension(e,t){if(!c.isNonNullable(e))return!1;const r=S.unwrapSchema(e),n=S.unwrapSchema(t);return He(r,n)}static isWrapperType(e){return e instanceof u.ZodOptional||e instanceof u.ZodNullable||e instanceof u.ZodReadonly||e instanceof u.ZodBranded||e instanceof u.ZodEffects||e instanceof u.ZodLazy}static unwrapSchema(e){return We(e)?e:S.isWrapperType(e)?e instanceof u.ZodEffects?S.unwrapSchema(e.innerType()):e instanceof u.ZodLazy?S.unwrapSchema(e.schema):S.unwrapSchema(e.unwrap()):e}}class Ot{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(c.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 c.isNullable(t)?null:this.blueIdMap.get(t)}getEffectiveBlueId(e){const t=e.getType();return c.isNonNullable(t)&&c.isNonNullable(t.getBlueId())?t.getBlueId():c.isNonNullable(t)?N.calculateBlueIdSync(t):null}getBlueIdMap(){return new Map(this.blueIdMap)}}const B={NAME:"name",DESCRIPTION:"description",TYPE:"type",BLUE_ID:"blue_id",KEY_TYPE:"key_type",VALUE_TYPE:"value_type",ITEM_TYPE:"item_type",VALUE:"value",PROPERTIES:"properties",BLUE:"blue",ITEMS:"items"};class Te{static isEmptyNode(e){return this.hasFieldsAndMayHaveFields(e)}static hasBlueIdOnly(e){return this.hasFieldsAndMayHaveFields(e,new Set([B.BLUE_ID]))}static hasItemsOnly(e){return this.hasFieldsAndMayHaveFields(e,new Set([B.ITEMS]))}static isValidValueNode(e){const t=e.getValue(),r=e.getProperties(),n=e.getItems();return c.isNonNullable(t)&&c.isNullable(r)&&c.isNullable(n)}static textNode(e){return new d().setType(new d().setBlueId(k)).setValue(e)}static integerNode(e){const t=e instanceof T?e:new T(e.toString());return new d().setType(new d().setBlueId(J)).setValue(t)}static doubleNode(e){const t=e instanceof v?e:new v(e.toString());return new d().setType(new d().setBlueId(Y)).setValue(t)}static booleanNode(e){return new d().setType(new d().setBlueId(G)).setValue(e)}static hasFieldsAndMayHaveFields(e,t=new Set,r=new Set){for(const n of Object.values(B)){const i=c.isNonNullable(this.getFieldValue(e,n));if(t.has(n)){if(!i)return!1}else if(!r.has(n)){if(i)return!1}}return!0}static getFieldValue(e,t){switch(t){case B.NAME:return e.getName();case B.TYPE:return e.getType();case B.VALUE:return e.getValue();case B.DESCRIPTION:return e.getDescription();case B.PROPERTIES:return e.getProperties();case B.BLUE:return e.getBlue();case B.ITEMS:return e.getItems();case B.KEY_TYPE:return e.getKeyType();case B.VALUE_TYPE:return e.getValueType();case B.ITEM_TYPE:return e.getItemType();case B.BLUE_ID:return e.getBlueId();default:throw new Error(`Unknown field: ${t}`)}}}class Be{}function st(s,e){const t=s.split(e),r=[...t].reverse().findIndex(i=>i!==""),n=r===-1?0:t.length-r;return t.slice(0,n)}class qe extends Be{constructor(t,r){super();h(this,"allowedPaths");h(this,"maxDepth");h(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 n=st(t,"/"),i=st(r,"/");if(i.length>n.length)return!1;for(let o=1;o<i.length;o++)if(n[o]!=="*"&&n[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){const r=new nt().setMaxDepth(t);for(let n=1;n<=t;n++){const i="/"+Array(n).fill("*").join("/");r.addPath(i)}return r.build()}static withSinglePath(t){return new nt().addPath(t).build()}}class nt{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 qe(this.allowedPaths,this.maxDepth)}}class Gr extends Be{shouldExtendPathSegment(){return!0}shouldMergePathSegment(){return!0}enterPathSegment(){}exitPathSegment(){}}class Xe extends Be{constructor(t){super();h(this,"limits");this.limits=t}shouldExtendPathSegment(t,r){return this.limits.every(n=>n.shouldExtendPathSegment(t,r))}shouldMergePathSegment(t,r){return this.limits.every(n=>n.shouldMergePathSegment(t,r))}enterPathSegment(t,r){this.limits.forEach(n=>{n.enterPathSegment(t,r)})}exitPathSegment(){this.limits.forEach(t=>{t.exitPathSegment()})}static of(...t){return new Xe(t)}}const H=new Gr;function Se(s,e){const t=s.getType();if(t===void 0)return;const r=t.getBlueId();if(r!==void 0){if(ue.includes(r)){const i=ur[r];return new d().setBlueId(r).setName(i)}const n=e.fetchByBlueId(r);if(!n||n.length===0)return;if(n.length>1)throw new Error(`Expected a single node for type with blueId '${r}', but found multiple.`);return n[0]}return t}function E(s,e,t){const r=N.calculateBlueIdSync(s),n=N.calculateBlueIdSync(e);if(r===n)return!0;if(r&&ue.includes(r)){let o=e;for(;o!==void 0;){if(N.calculateBlueIdSync(o)===r)return!0;o=Se(o,t)}return!1}let i=Se(s,t);for(;i!==void 0;){if(N.calculateBlueIdSync(i)===n)return!0;i=Se(i,t)}return!1}function Kr(s,e){return ct.some(t=>{const r=new d().setBlueId(t);return E(s,r,e)})}function Wr(s,e){const t=new d().setBlueId(k);return E(s,t,e)}function Hr(s,e){const t=new d().setBlueId(J);return E(s,t,e)}function qr(s,e){const t=new d().setBlueId(Y);return E(s,t,e)}function Xr(s,e){const t=new d().setBlueId(G);return E(s,t,e)}function Qr(s){return(s==null?void 0:s.getBlueId())===lt}function es(s){return(s==null?void 0:s.getBlueId())===at}function ts(s,e){return ke.some(t=>{const r=new d().setName(t);return E(s,r,e)})}function rs(s,e){for(const t of ke){const r=new d().setName(t);if(E(s,r,e))return t}throw new Error(`Cannot determine the basic type for node of type "${s.getName()||"unknown"}".`)}const ss=s=>s instanceof u.ZodOptional||s instanceof u.ZodNullable||s instanceof u.ZodReadonly||s instanceof u.ZodBranded||s instanceof u.ZodEffects||s instanceof u.ZodLazy,ns=s=>s instanceof u.ZodString||s instanceof u.ZodNumber||s instanceof u.ZodBoolean||s instanceof u.ZodBigInt;class Ft{static convertValue(e,t){var i;const r=(i=e.getType())==null?void 0:i.getBlueId(),n=e.getValue();return c.isNullable(n)?ns(t)&&Te.isValidValueNode(e)?this.getDefaultPrimitiveValue(t):n:k===r?this.convertFromString(String(n),t):Y===r||n instanceof v?this.convertFromBigDecimal(new v(n==null?void 0:n.toString()),t):J===r||n instanceof T?this.convertFromBigInteger(new T(n==null?void 0:n.toString()),t):G===r||typeof n=="boolean"?this.convertFromBoolean(!!n,t):this.convertFromString(String(n),t)}static convertFromString(e,t){if(!t||t instanceof u.ZodString||t instanceof u.ZodEnum||t instanceof u.ZodNativeEnum)return e;if(t instanceof u.ZodNumber)return Number(e);if(t instanceof u.ZodBoolean)return e.toLowerCase()==="true";if(t instanceof u.ZodBigInt)return BigInt(e);throw new Error(`Cannot convert String to ${t._def.typeName}`)}static convertFromBigDecimal(e,t){if(t instanceof u.ZodNumber)return e.toNumber();if(t instanceof u.ZodString)return e.toString();throw new Error(`Cannot convert Number to ${t._def.typeName}`)}static convertFromBigInteger(e,t){if(t instanceof u.ZodNumber)return e.toNumber();if(t instanceof u.ZodBigInt)return BigInt(e.toString());if(t instanceof u.ZodString)return e.toString();throw new Error(`Cannot convert Number to ${t._def.typeName}`)}static convertFromBoolean(e,t){if(!t||t instanceof u.ZodBoolean)return e;if(t instanceof u.ZodString)return e.toString();if(t instanceof u.ZodNumber)return Number(e);if(t instanceof u.ZodBigInt)return BigInt(e);throw new Error(`Cannot convert Boolean to ${t._def.typeName}`)}static getDefaultPrimitiveValue(e){if(!e)return null;if(e instanceof u.ZodNumber)return 0;if(e instanceof u.ZodBoolean)return!1;if(e instanceof u.ZodString)return"";throw new Error(`Unsupported primitive type: ${e._def.typeName}`)}}class is{convert(e,t){return Ft.convertValue(e,t)}}class os{constructor(e){this.nodeToObjectConverter=e}convert(e,t){return this.convertFields(e,t)}convertFields(e,t){if(t instanceof u.ZodIntersection){const r=t._def.left,n=t._def.right,i=this.convert(e,r),o=this.convert(e,n);return{...i,...o}}if(t instanceof u.ZodUnion)throw new Error("Union not supported");if(t instanceof u.ZodObject)return Object.keys(t.shape).reduce((n,i)=>{const o=e.getProperties(),l=t.shape[i],a=vt(l);if(c.isNonNullable(a)){const b=A.isString(a)?a:i,L=o==null?void 0:o[b],K=L?N.calculateBlueIdSync(L):void 0;return n[i]=K,n}const p=Pt(l);if(c.isNonNullable(p)){const b=o==null?void 0:o[p];return n[i]=b==null?void 0:b.getName(),n}const I=Bt(l);if(c.isNonNullable(I)){const b=o==null?void 0:o[I];return n[i]=b==null?void 0:b.getDescription(),n}if(i==="name"){const b=e.getName();return n[i]=b,n}if(i==="description"){const b=e.getDescription();return n[i]=b,n}const y=o==null?void 0:o[i];if(c.isNullable(y))return n;const m=this.nodeToObjectConverter.convert(y,l);return n[i]=m,n},{});throw new Error("Unknown schema type, "+t._def.typeName)}}class ls{constructor(e){this.nodeToObjectConverter=e}convert(e,t){const r=e.getItems();if(!r)return;const n=t.element;return r.map(o=>this.nodeToObjectConverter.convert(o,n))}}class as{constructor(e){this.nodeToObjectConverter=e}convert(e,t){const r=e.getItems();if(!r)return;const n=t._def.valueType,i=r.map(o=>this.nodeToObjectConverter.convert(o,n));return new Set(i)}}class cs{constructor(e){this.nodeToObjectConverter=e}convert(e,t){const r=t.keySchema,n=t.valueSchema,i=new Map,o=e.getName();c.isNonNullable(o)&&i.set(q,o);const l=e.getDescription();c.isNonNullable(l)&&i.set(X,l);const a=e.getProperties();return c.isNonNullable(a)&&Object.entries(a).forEach(([p,I])=>{const y=new d().setValue(p);y.setType(new d().setBlueId(k));const m=Ft.convertValue(y,r),b=this.nodeToObjectConverter.convert(I,n);i.set(m,b)}),t instanceof u.ZodRecord?Object.fromEntries(i):i}}class us{convert(e){return g.get(e)}}class ds{convert(e){return g.get(e)}}class hs{constructor(e){this.nodeToObjectConverter=e}convert(e,t){const r=e.getItems();if(!r)return;const n=t.items;return r.map((o,l)=>this.nodeToObjectConverter.convert(o,n[l]))}}const ps=u.z.union([u.z.literal("ZodString"),u.z.literal("ZodNumber"),u.z.literal("ZodBoolean"),u.z.literal("ZodBigInt"),u.z.literal("ZodArray"),u.z.literal("ZodSet"),u.z.literal("ZodMap"),u.z.literal("ZodRecord"),u.z.literal("ZodObject"),u.z.literal("ZodEnum"),u.z.literal("ZodNativeEnum"),u.z.literal("ZodUnknown"),u.z.literal("ZodAny"),u.z.literal("ZodTuple")]);class fs{constructor(e){h(this,"converters",new Map);h(this,"complexObjectConverter");this.nodeToObjectConverter=e,this.registerConverters(),this.complexObjectConverter=new os(this.nodeToObjectConverter)}registerConverters(){const e=new is,t=new ls(this.nodeToObjectConverter),r=new hs(this.nodeToObjectConverter),n=new as(this.nodeToObjectConverter),i=new cs(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 us),this.converters.set("ZodAny",new ds),this.converters.set("ZodArray",t),this.converters.set("ZodTuple",r),this.converters.set("ZodSet",n),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}getSchemaTypeName(e){if(ss(e))return e instanceof u.ZodEffects?this.getSchemaTypeName(e.innerType()):e instanceof u.ZodLazy?this.getSchemaTypeName(e.schema):this.getSchemaTypeName(e.unwrap());const t=e._def.typeName;try{return ps.parse(t)}catch{throw new Error(`Schema type name ${t} is not supported`)}}}class gs{constructor(e){h(this,"converterFactory");this.typeSchemaResolver=e,this.converterFactory=new fs(this)}convert(e,t){var o;const r=(o=this.typeSchemaResolver)==null?void 0:o.resolveSchema(e),n=S.unwrapSchema(t);if(We(n))return e;let i=n;return S.checkSchemaExtension(r,n)&&c.isNonNullable(r)&&(i=r),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 ys(s){return new class extends he{fetchByBlueId(e){return s(e)}}}class ms extends he{constructor(t){super();h(this,"nodeProviders");this.nodeProviders=t}fetchByBlueId(t){for(const r of this.nodeProviders){const n=r.fetchByBlueId(t);if(n&&n.length>0)return n}return[]}fetchFirstByBlueId(t){for(const r of this.nodeProviders){const n=r.fetchFirstByBlueId(t);if(n)return n}return null}getNodeProviders(){return this.nodeProviders}}const Ae=Z.types.float.options,Is={...Ae,construct:s=>{const e=s.replace(/_/g,"").toLowerCase();if(!c.isPreciseNumberString(e))return new v(e);if(Ae.construct)return Ae.construct(s)}},bs=new Z.Type("tag:yaml.org,2002:float",Is),Ce=Z.types.int.options,Ns={...Ce,construct:s=>{let e=s;if(e.indexOf("_")!==-1&&(e=e.replace(/_/g,"")),!c.isPreciseNumberString(e))return new T(e);if(Ce.construct)return Ce.construct(s)}},Ts=new Z.Type("tag:yaml.org,2002:int",Ns),Mt=Z.CORE_SCHEMA.extend({implicit:[bs,Ts]}),F=s=>{const e=Z.load(s,{schema:Mt});return e===void 0?void 0:e},Bs=s=>Z.dump(s,{schema:Mt,replacer:(e,t)=>{if(V(t)){if(x(t)){const r=new j(Number.MIN_SAFE_INTEGER.toString()),n=new j(Number.MAX_SAFE_INTEGER.toString());if(t.lt(r)||t.gt(n))return t.toString()}return t.toNumber()}return t}}),Rt=`- 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
|
+
`,ws=`name: Transformation
|
|
13
|
+
description: TODO`,vs=`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.`,Es=`name: Replace Inline Types with BlueIds
|
|
17
17
|
type:
|
|
18
18
|
blueId: Ct1SGRGw1i47qjzm1ruiUdSZofeV6WevPTGuieVvbRS4
|
|
19
|
-
description: This transformation replaces`,or=[jt,rr,sr,ir];class lr extends he{constructor(){super();h(this,"blueIdToNodesMap",new Map);this.load()}fetchByBlueId(t){return this.blueIdToNodesMap.get(t)||[]}load(){for(const t of or){const r=L(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=N.calculateBlueIdSync(s);this.blueIdToNodesMap.set(i,s)}else{const s=p.deserialize(r),i=N.calculateBlueIdSync(s);this.blueIdToNodesMap.set(i,[s])}}}}const me=class me extends he{constructor(){super();h(this,"nodeProvider");this.nodeProvider=new lr}fetchByBlueId(t){return this.nodeProvider.fetchByBlueId(t)}};h(me,"INSTANCE",new me);let Re=me;class Ce{constructor(e,t,r){this.blueId=e,this.content=t,this.isMultipleDocuments=r}}class re{static parseAndCalculateBlueId(e,t){let r;try{const l=L(e);if(l===void 0)throw new Error;r=l}catch{throw new Error("Failed to parse content as YAML or JSON")}let s,i;const o=Array.isArray(r)&&r.length>1;if(o){const l=r.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(r),a=t(l);s=N.calculateBlueIdSync(a),i=y.get(a)}return new Ce(s,i,o)}static parseAndCalculateBlueIdForNode(e,t){const r=t(e),s=N.calculateBlueIdSync(r),i=y.get(r);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 r=e.map(t),s=N.calculateBlueIdSync(r),i=r.map(l=>y.get(l)),o=e.length>1;return new Ce(s,i,o)}static resolveThisReferences(e,t,r){return this.resolveThisReferencesRecursive(e,t,r)}static resolveThisReferencesRecursive(e,t,r){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,r):s[i]=o:o&&typeof o=="object"?s[i]=this.resolveThisReferencesRecursive(o,t,r):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,r):s:s&&typeof s=="object"?this.resolveThisReferencesRecursive(s,t,r):s);return e}static resolveThisReference(e,t,r){if(r){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(re,"THIS_REFERENCE_PATTERN",/^this(#\d+)?$/);class cr extends he{fetchByBlueId(e){const t=e.split("#")[0],r=this.fetchContentByBlueId(t);if(r==null)return null;const s=Array.isArray(r)&&r.length>1,i=re.resolveThisReferences(r,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 ar extends cr{constructor(){super(...arguments);h(this,"nameToBlueIdsMap",new Map)}findNodeByName(t){const r=this.nameToBlueIdsMap.get(t);if(!r)return;if(r.length>1)throw new Error(`Multiple nodes found with name: ${t}`);const s=this.fetchByBlueId(r[0]);return s&&s.length>0?s[0]:void 0}findAllNodesByName(t){const r=this.nameToBlueIdsMap.get(t);if(!r)return[];const s=[];for(const i of r){const o=this.fetchByBlueId(i);o&&s.push(...o)}return s}addToNameMap(t,r){this.nameToBlueIdsMap.set(t,[...this.nameToBlueIdsMap.get(t)||[],r])}}const Rt=n=>n instanceof d||Array.isArray(n)&&n.every(e=>e instanceof d)?n:v.isArray(n)?n.map(e=>p.deserialize(e)):p.deserialize(n),Mt=async n=>{const e=Rt(n);return N.calculateBlueId(e)},ur=n=>{const e=Rt(n);return N.calculateBlueIdSync(e)},Me=async n=>{if(ct(n))return n;try{const e=le.parse(n),t=await Mt(e);return{...n,blueId:t}}catch(e){throw new Error(`Failed enriching object with Blue ID: ${e}`)}},dr=n=>n==null?void 0:n.items,hr=n=>n==null?void 0:n.value,fr=n=>u.isNullable(n)?{}:v.omit(n,Kt),pr=n=>ut(n)?n.type.name??null:dt(n)?v.pascal(typeof n.value):at(n)?"List":null,xt=n=>u.isNonNullable(n)&&Object.keys(v.omit(n,["blueId"])).length>0,yr=n=>{try{const e=p.deserialize(n),t=y.get(e);return Y.parse(t)}catch(e){throw new Error(`Failed transforming JSON-like value to BlueObject: ${e}`)}},xe=async n=>{const{resolveFunction:e,signal:t=new AbortController().signal,omitItems:r}=n,s=n.count??n.items.length;let i=await v.map(n.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({...n,items:[...i.slice(0,l),...a,...i.slice(l+1)]});const f=await Me(a);if(r!=null&&r.includes(f.blueId))return xe({...n,items:[...i.slice(0,l),...i.slice(l+1)]});i=[...i.slice(0,l),f,...i.slice(l+1)]}return i};function se(n){try{const e=new URL(n);return e.protocol==="http:"||e.protocol==="https:"}catch{return!1}}class gr{process(e){return V.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 d().setBlueId(H)):typeof r=="bigint"||K(r)?e.setType(new d().setBlueId(X)):ht(r)?e.setType(new d().setBlueId(q)):typeof r=="boolean"&&e.setType(new d().setBlueId(Q))),e}}const ie=class ie{constructor(e){h(this,"mappings",new Map);if(e instanceof d){const r=e.getProperties();if(r&&r[ie.MAPPINGS]){const i=r[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 r=String(t.getValue());if(this.mappings.has(r)){const s=this.mappings.get(r);if(s){const i=new d().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,r,s=!1){if(!s){if(!t.shouldExtendPathSegment(r,e))return;t.enterPathSegment(r,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 d().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],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());const r=t.getValue();u.isNonNullable(r)&&e.setValue(r),e.setItems(t.getItems()),e.setProperties(t.getProperties()),e.setContracts(t.getContracts())}}class $t{}function tt(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 Xe extends $t{constructor(t,r){super();h(this,"allowedPaths");h(this,"maxDepth");h(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=tt(t,"/"),i=tt(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 nt().setMaxDepth(t).addPath("*").build()}static withSinglePath(t){return new nt().addPath(t).build()}}class nt{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 mr extends $t{shouldExtendPathSegment(){return!0}shouldMergePathSegment(){return!0}enterPathSegment(){}exitPathSegment(){}}const J=new mr;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 r=Object.entries(t).map(([s,i])=>` ${s}: ${i}`).join(`
|
|
19
|
+
description: This transformation replaces`,Ps=[Rt,ws,vs,Es];class Ss extends he{constructor(){super();h(this,"blueIdToNodesMap",new Map);this.load()}fetchByBlueId(t){return this.blueIdToNodesMap.get(t)||[]}load(){for(const t of Ps){const r=F(t);if(r===void 0){console.error(`This content file is not valid YAML: ${t}`);continue}if(Array.isArray(r)){const n=r.map(o=>f.deserialize(o)),i=N.calculateBlueIdSync(n);this.blueIdToNodesMap.set(i,n)}else{const n=f.deserialize(r),i=N.calculateBlueIdSync(n);this.blueIdToNodesMap.set(i,[n])}}}}const me=class me extends he{constructor(){super();h(this,"nodeProvider");this.nodeProvider=new Ss}fetchByBlueId(t){return this.nodeProvider.fetchByBlueId(t)}};h(me,"INSTANCE",new me);let Re=me;class Ve{constructor(e,t,r){this.blueId=e,this.content=t,this.isMultipleDocuments=r}}class R{static parseAndCalculateBlueId(e,t){let r;try{const l=F(e);if(l===void 0)throw new Error;r=l}catch{throw new Error("Failed to parse content as YAML or JSON")}let n,i;const o=Array.isArray(r)&&r.length>1;if(o){const l=r.map(a=>{const p=f.deserialize(a);return t(p)});n=N.calculateBlueIdSync(l),i=l.map(a=>g.get(a))}else{const l=f.deserialize(r),a=t(l);n=N.calculateBlueIdSync(a),i=g.get(a)}return new Ve(n,i,o)}static parseAndCalculateBlueIdForNode(e,t){const r=t(e),n=N.calculateBlueIdSync(r),i=g.get(r);return new Ve(n,i,!1)}static parseAndCalculateBlueIdForNodeList(e,t){if(!e||e.length===0)throw new Error("List of nodes cannot be null or empty");const r=e.map(t),n=N.calculateBlueIdSync(r),i=r.map(l=>g.get(l)),o=e.length>1;return new Ve(n,i,o)}static resolveThisReferences(e,t,r){return this.resolveThisReferencesRecursive(e,t,r)}static resolveThisReferencesRecursive(e,t,r){if(e&&typeof e=="object"&&!Array.isArray(e)){const n={};for(const[i,o]of Object.entries(e))typeof o=="string"?this.THIS_REFERENCE_PATTERN.test(o)?n[i]=this.resolveThisReference(o,t,r):n[i]=o:o&&typeof o=="object"?n[i]=this.resolveThisReferencesRecursive(o,t,r):n[i]=o;return n}else if(Array.isArray(e))return e.map(n=>typeof n=="string"?this.THIS_REFERENCE_PATTERN.test(n)?this.resolveThisReference(n,t,r):n:n&&typeof n=="object"?this.resolveThisReferencesRecursive(n,t,r):n);return e}static resolveThisReference(e,t,r){if(r){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(R,"THIS_REFERENCE_PATTERN",/^this(#\d+)?$/);class As extends he{fetchByBlueId(e){const t=e.split("#")[0],r=this.fetchContentByBlueId(t);if(r==null)return null;const n=Array.isArray(r)&&r.length>1,i=R.resolveThisReferences(r,t,n);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],p=f.deserialize(a);return p.setBlueId(e),[p]}else if(l===0){const a=f.deserialize(i);return a.setBlueId(e),[a]}else return null}}if(Array.isArray(i))return i.map(o=>f.deserialize(o));{const o=f.deserialize(i);return o.setBlueId(t),[o]}}}class jt extends As{constructor(){super(...arguments);h(this,"nameToBlueIdsMap",new Map)}findNodeByName(t){const r=this.nameToBlueIdsMap.get(t);if(!r)return;if(r.length>1)throw new Error(`Multiple nodes found with name: ${t}`);const n=this.fetchByBlueId(r[0]);return n&&n.length>0?n[0]:void 0}findAllNodesByName(t){const r=this.nameToBlueIdsMap.get(t);if(!r)return[];const n=[];for(const i of r){const o=this.fetchByBlueId(i);o&&n.push(...o)}return n}addToNameMap(t,r){this.nameToBlueIdsMap.set(t,[...this.nameToBlueIdsMap.get(t)||[],r])}}const xt=s=>s instanceof d||Array.isArray(s)&&s.every(e=>e instanceof d)?s:A.isArray(s)?s.map(e=>f.deserialize(e)):f.deserialize(s),$t=async s=>{const e=xt(s);return N.calculateBlueId(e)},Cs=s=>{const e=xt(s);return N.calculateBlueIdSync(e)},je=async s=>{if(ut(s))return s;try{const e=ae.parse(s),t=await $t(e);return{...s,blueId:t}}catch(e){throw new Error(`Failed enriching object with Blue ID: ${e}`)}},Vs=s=>s==null?void 0:s.items,Ds=s=>s==null?void 0:s.value,Os=s=>c.isNullable(s)?{}:A.omit(s,sr),Fs=s=>ht(s)?s.type.name??null:pt(s)?A.pascal(typeof s.value):dt(s)?"List":null,Lt=s=>c.isNonNullable(s)&&Object.keys(A.omit(s,["blueId"])).length>0,Ms=s=>{try{const e=f.deserialize(s),t=g.get(e);return Q.parse(t)}catch(e){throw new Error(`Failed transforming JSON-like value to BlueObject: ${e}`)}},xe=async s=>{const{resolveFunction:e,signal:t=new AbortController().signal,omitItems:r}=s,n=s.count??s.items.length;let i=await A.map(s.items,async l=>await je(l));const o=Math.max((i==null?void 0:i.length)-n,0);for(let l=i.length-1;l>=o;l--)if(!Lt(i[l])){const a=await e(i[l],{signal:t});if(Array.isArray(a))return xe({...s,items:[...i.slice(0,l),...a,...i.slice(l+1)]});const p=await je(a);if(r!=null&&r.includes(p.blueId))return xe({...s,items:[...i.slice(0,l),...i.slice(l+1)]});i=[...i.slice(0,l),p,...i.slice(l+1)]}return i};function ie(s){try{const e=new URL(s);return e.protocol==="http:"||e.protocol==="https:"}catch{return!1}}class Rs{process(e){return D.transform(e,this.inferType.bind(this))}inferType(e){const t=e.getType(),r=e.getValue();return c.isNullable(t)&&c.isNonNullable(r)&&(typeof r=="string"?e.setType(new d().setBlueId(k)):typeof r=="bigint"||x(r)?e.setType(new d().setBlueId(J)):fe(r)?e.setType(new d().setBlueId(Y)):typeof r=="boolean"&&e.setType(new d().setBlueId(G))),e}}const oe=class oe{constructor(e){h(this,"mappings",new Map);if(e instanceof d){const r=e.getProperties();if(r&&r[oe.MAPPINGS]){const i=r[oe.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 D.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 n=this.mappings.get(r);if(n){const i=new d().setBlueId(n);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(oe,"MAPPINGS","mappings");let $e=oe;class js{process(e){return D.transform(e,this.validateNode.bind(this)),e}validateNode(e){return this.validateTypeField(e,e.getType(),"type"),this.validateTypeField(e,e.getItemType(),"itemType"),this.validateTypeField(e,e.getKeyType(),"keyType"),this.validateTypeField(e,e.getValueType(),"valueType"),e}validateTypeField(e,t,r){if(t&&t.isInlineValue()&&t.getValue()!==void 0){const n=String(t.getValue());throw new Error(`Unknown type "${n}" found in ${r} field. No BlueId mapping exists for this type.`)}}}class Qe{constructor(e,t){h(this,"nodeProvider");h(this,"strategy");this.nodeProvider=ce.wrap(e),this.strategy=t||"THROW_EXCEPTION"}extend(e,t){this.extendNode(e,t,"")}extendNode(e,t,r,n=!1){if(!n){if(!t.shouldExtendPathSegment(r,e))return;t.enterPathSegment(r,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 b=m[0];this.mergeNodes(e,b)}else{const b=m.map(K=>K.clone()),L=new d().setItems(b);this.mergeNodes(e,L)}}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 p=e.getValueType();p&&this.extendNode(p,t,"valueType",!0);const I=e.getProperties();I&&Object.entries(I).forEach(([m,b])=>{this.extendNode(b,t,m,!1)});const y=e.getItems();if(y&&y.length>0){this.reconstructList(y);for(let m=0;m<y.length;m++)this.extendNode(y[m],t,String(m),!1)}}finally{n||t.exitPathSegment()}}reconstructList(e){for(;e.length>0;){const t=e[0],r=t==null?void 0:t.getBlueId();if(!r)break;const n=this.nodeProvider.fetchByBlueId(r);if(!n||n.length===1)break;e.shift(),e.unshift(...n)}}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());const r=t.getValue();c.isNonNullable(r)&&e.setValue(r),e.setItems(t.getItems()),e.setProperties(t.getProperties())}}class zt{constructor(){h(this,"blueIdsCollections",[])}initialize(...e){this.blueIdsCollections=[...e]}registerBlueIds(...e){this.blueIdsCollections.push(...e)}generateMappingsYaml(e="27B7fuxQCS1VAptiCPc2RMkKoutP5qxkh3uDxZ7dr6Eo"){const t={};for(const n of this.blueIdsCollections)Object.assign(t,n);const r=Object.entries(t).map(([n,i])=>` ${n}: ${i}`).join(`
|
|
20
20
|
`);return`- type:
|
|
21
21
|
blueId: ${e}
|
|
22
22
|
mappings:
|
|
23
|
-
${r}`}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
|
|
23
|
+
${r}`}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 Ie=class Ie{constructor(e={}){h(this,"processorProvider");h(this,"nodeProvider");h(this,"defaultSimpleBlue",null);h(this,"blueIdsMappingGenerator");const{nodeProvider:t,processorProvider:r,blueIdsMappingGenerator:n}=e;if(!t)throw new Error("NodeProvider is required");this.nodeProvider=ce.wrap(t),this.processorProvider=r||Ie.getStandardProvider(),this.blueIdsMappingGenerator=n||new zt,this.loadDefaultSimpleBlue()}preprocess(e){return this.preprocessWithOptions(e,null)}preprocessWithDefaultBlue(e){return this.preprocessWithOptions(e,this.defaultSimpleBlue)}preprocessWithOptions(e,t){let r=e.clone(),n=r.getBlue();if(!n&&t&&(n=t.clone()),n){new Qe(this.nodeProvider).extend(n,qe.withSinglePath("/*"));const i=n.getItems();if(i&&i.length>0){for(const o of i){const l=this.processorProvider.getProcessor(o);if(l)r=l.process(r);else throw new Error(`No processor found for transformation: ${o}`)}r.setBlue(void 0)}r=new js().process(r)}return r}static getStandardProvider(){return{getProcessor(e){var i;const t="27B7fuxQCS1VAptiCPc2RMkKoutP5qxkh3uDxZ7dr6Eo",r="FGYuTXwaoSKfZmpTysLTLsb8WzSqf43384rKZDkXhxD4",n=(i=e.getType())==null?void 0:i.getBlueId();if(t===n)return new $e(e);if(r===n)return new Rs}}}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 se(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 d().setBlueId(this.preprocessingAliases.get(t))),e}handleBlueId(e,t){return e.setBlue(new d().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 Tr={fetchUrl:async n=>{throw new Error(`You must provide a custom UrlFetchStrategy to fetch content from URL: ${n}`)}};class Nr{constructor(e){h(this,"cache",new Map);h(this,"fetchStrategy");h(this,"enabled",!1);h(this,"allowedDomains",[]);this.fetchStrategy=e||Tr}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(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(l){throw new Error(`Error fetching from URL: ${e}`,{cause:l})}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=L(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(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 Br{resolveWithoutLimits(e){return this.resolve(e,J)}}class wr extends Br{constructor(t,r){super();h(this,"mergingProcessor");h(this,"nodeProvider");this.mergingProcessor=t,this.nodeProvider=ae.wrap(r)}merge(t,r,s){if(u.isNonNullable(r.getBlue()))throw new Error('Document contains "blue" attribute. Preprocess document before merging.');const i=r.getType();if(u.isNonNullable(i)){u.isNonNullable(i.getBlueId())&&new qe(this.nodeProvider).extend(i,Xe.withSinglePath("/"));const o=this.resolve(i,s);r.setType(o),this.merge(t,i,s)}this.mergeObject(t,r,s)}mergeObject(t,r,s){this.mergingProcessor.process(t,r,this.nodeProvider,this);const i=r.getItems();u.isNonNullable(i)&&this.mergeChildren(t,i,s);const o=r.getProperties();u.isNonNullable(o)&&Object.entries(o).forEach(([a,f])=>{s.shouldMergePathSegment(a,f)&&(s.enterPathSegment(a,f),this.mergeProperty(t,a,f,s),s.exitPathSegment())});const l=r.getContracts();u.isNonNullable(l)&&Object.entries(l).forEach(([a,f])=>{s.shouldMergePathSegment(a,f)&&(s.enterPathSegment(a,f),this.mergeContract(t,a,f,s),s.exitPathSegment())}),u.isNonNullable(r.getBlueId())&&t.setBlueId(r.getBlueId()),this.mergingProcessor.postProcess&&this.mergingProcessor.postProcess(t,r,this.nodeProvider,this)}mergeChildren(t,r,s){const i=t.getItems();if(u.isNullable(i)){const o=r.filter((l,a)=>s.shouldMergePathSegment(String(a),t)).map(l=>{s.enterPathSegment(String(r.indexOf(l)),t);const a=this.resolve(l,s);return s.exitPathSegment(),a});t.setItems(o);return}else if(r.length<i.length)throw new Error(`Subtype of element must not have more items (${i.length}) than the element itself (${r.length}).`);for(let o=0;o<r.length;o++){if(!s.shouldMergePathSegment(String(o),r[o]))continue;if(s.enterPathSegment(String(o),r[o]),o>=i.length){i.push(r[o]),s.exitPathSegment();continue}const l=N.calculateBlueIdSync(r[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,r,s,i){const o=this.resolve(s,i);u.isNullable(t.getProperties())&&t.setProperties({});const l=t.getProperties()[r];l===void 0?t.getProperties()[r]=o:this.mergeObject(l,o,i)}mergeContract(t,r,s,i){const o=this.resolve(s,i);u.isNullable(t.getContracts())&&t.setContracts({});const l=t.getContracts()[r];l===void 0?t.getContracts()[r]=o:this.mergeObject(l,o,i)}resolve(t,r){const s=new d;return this.merge(s,t,r),s.setName(t.getName()),s.setDescription(t.getDescription()),s.setBlueId(t.getBlueId()),s}}class vr{constructor(e){h(this,"mergingProcessors");this.mergingProcessors=e}process(e,t,r,s){this.mergingProcessors.forEach(i=>i.process(e,t,r,s))}postProcess(e,t,r,s){this.mergingProcessors.forEach(i=>{i.postProcess&&i.postProcess(e,t,r,s)})}}class Er{process(e,t){const r=t.getValue();if(u.isNonNullable(r)){const s=e.getValue();if(u.isNullable(s))e.setValue(r);else if(r!==s)throw new Error(`Node values conflict. Source node value: ${r}, target node value: ${s}`)}}}function Oe(n,e){const t=n.getType();if(t===void 0)return;const r=t.getBlueId();if(r!==void 0){if(ue.includes(r)){const i=tn[r];return new d().setBlueId(r).setName(i)}const s=e.fetchByBlueId(r);if(!s||s.length===0)return;if(s.length>1)throw new Error(`Expected a single node for type with blueId '${r}', but found multiple.`);return s[0]}return t}function E(n,e,t){const r=N.calculateBlueIdSync(n),s=N.calculateBlueIdSync(e);if(r===s)return!0;if(r&&ue.includes(r)){let o=e;for(;o!==void 0;){if(N.calculateBlueIdSync(o)===r)return!0;o=Oe(o,t)}return!1}let i=Oe(n,t);for(;i!==void 0;){if(N.calculateBlueIdSync(i)===s)return!0;i=Oe(i,t)}return!1}function Sr(n,e){return lt.some(t=>{const r=new d().setBlueId(t);return E(n,r,e)})}function Pr(n,e){const t=new d().setBlueId(H);return E(n,t,e)}function Ar(n,e){const t=new d().setBlueId(X);return E(n,t,e)}function Cr(n,e){const t=new d().setBlueId(q);return E(n,t,e)}function Or(n,e){const t=new d().setBlueId(Q);return E(n,t,e)}function Vr(n){return(n==null?void 0:n.getBlueId())===it}function Dr(n){return(n==null?void 0:n.getBlueId())===ot}function Fr(n,e){return Je.some(t=>{const r=new d().setName(t);return E(n,r,e)})}function jr(n,e){for(const t of Je){const r=new d().setName(t);if(E(n,r,e))return t}throw new Error(`Cannot determine the basic type for node of type "${n.getName()||"unknown"}".`)}class Rr{process(e,t,r){const s=e.getType(),i=t.getType();if(s===void 0)e.setType(i);else if(i!==void 0){if(!E(i,s,r)){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 Mr{process(e,t,r){if(t.getItemType()!==void 0&&!Vr(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,r)){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,r)){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 xr{process(e,t,r){if((t.getKeyType()!==void 0||t.getValueType()!==void 0)&&!Dr(t.getType()))throw new Error("Source node with keyType or valueType must have a Dictionary type");this.processKeyType(e,t,r),this.processValueType(e,t,r);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,r),i!==void 0&&this.validateValueType(a,i,r)})}processKeyType(e,t,r){const s=e.getKeyType(),i=t.getKeyType();if(s===void 0)i!==void 0&&(this.validateBasicKeyType(i,r),e.setKeyType(i));else if(i!==void 0){if(this.validateBasicKeyType(i,r),!E(i,s,r)){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,r){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,r)){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(!Sr(e,t))throw new Error("Dictionary key type must be a basic type")}validateKeyType(e,t,r){if(!Pr(t,r))if(Ar(t,r)){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(Cr(t,r)){const s=Number.parseFloat(e);if(Number.isNaN(s))throw new Error(`Key '${e}' is not a valid Number.`)}else if(Or(t,r)){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,r){const s=e.getType();if(s!==void 0&&!E(s,t,r)){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 $r{process(){}postProcess(e,t,r){const s=e.getType();if(s!==void 0&&Fr(s,r)){const i=e.getItems(),o=e.getProperties(),l=e.getContracts();if(i!==void 0&&i.length>0||o!==void 0&&Object.keys(o).length>0||l!==void 0&&Object.keys(l).length>0){const a=jr(s,r),f=s.getName()||"unknown";throw new Error(`Node of type "${f}" (which extends basic type "${a}") must not have items, properties or contracts.`)}}}}function zr(){return new vr([new Er,new Rr,new Mr,new xr,new $r])}class Zr{constructor(e={}){h(this,"nodeProvider");h(this,"typeSchemaResolver");h(this,"blueDirectivePreprocessor");h(this,"urlContentFetcher");h(this,"blueIdsMappingGenerator");h(this,"globalLimits",J);h(this,"mergingProcessor");h(this,"repositories");h(this,"prepareForBlueIdCalculation",async e=>e instanceof d||Array.isArray(e)&&e.every(t=>t instanceof d)?e:Array.isArray(e)?await Promise.all(e.map(r=>this.jsonValueToNodeAsync(r))):this.jsonValueToNodeAsync(e));h(this,"calculateBlueId",async e=>{const t=await this.prepareForBlueIdCalculation(e);return N.calculateBlueId(t)});h(this,"prepareForBlueIdCalculationSync",e=>e instanceof d||Array.isArray(e)&&e.every(t=>t instanceof d)?e:Array.isArray(e)?e.map(t=>this.jsonValueToNode(t)):this.jsonValueToNode(e));var a;const{nodeProvider:t,typeSchemaResolver:r=null,urlFetchStrategy:s,repositories:i,mergingProcessor:o}=e;this.repositories=i;const l=Hn(()=>[]);if(this.nodeProvider=ae.wrap(t||l,i),this.typeSchemaResolver=r??new Vt([]),this.mergingProcessor=o??zr(),this.urlContentFetcher=new Nr(s),this.blueDirectivePreprocessor=new Ir(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 Wn(this.typeSchemaResolver).convert(e,t)}resolve(e,t=J){const r=this.combineWithGlobalLimits(t);return new wr(this.mergingProcessor,this.nodeProvider).resolve(e,r)}extend(e,t){const r=this.combineWithGlobalLimits(t);new qe(this.nodeProvider).extend(e,r)}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,r){return S.isTypeOf(e,t,{checkSchemaExtensions:r==null?void 0:r.checkSchemaExtensions,typeSchemaResolver:this.typeSchemaResolver})}combineWithGlobalLimits(e){return this.globalLimits==J?e:e==J?this.globalLimits:J}}exports.Base58Sha256Provider=pt;exports.Blue=Zr;exports.BlueIdCalculator=N;exports.BlueIdToCid=In;exports.BlueNode=d;exports.BlueNodeTypeSchema=S;exports.JsonCanonicalizer=ft;exports.TypeSchemaResolver=Vt;exports.applyBlueNodePatch=Cn;exports.baseBlueObjectSchema=de;exports.blueDescriptionField=Vn;exports.blueIdField=Fn;exports.blueIdSchema=nn;exports.blueNameField=jn;exports.blueNodeField=Rn;exports.blueObjectBooleanValueSchema=on;exports.blueObjectNumberValueSchema=sn;exports.blueObjectSchema=Y;exports.blueObjectStringListItemsSchema=ln;exports.blueObjectStringValueSchema=rn;exports.calculateBlueId=Mt;exports.calculateBlueIdSync=ur;exports.enrichWithBlueId=Me;exports.getBlueDescriptionAnnotation=Nt;exports.getBlueIdAnnotation=wt;exports.getBlueNameAnnotation=Et;exports.getBlueNodeAnnotation=Pt;exports.getBlueObjectItems=dr;exports.getBlueObjectProperties=fr;exports.getBlueObjectTypeLabel=pr;exports.getBlueObjectValue=hr;exports.getExtendedFromSchemaAnnotation=Ct;exports.getTypeBlueIdAnnotation=Ot;exports.hasBlueObjectBlueIdDefined=ct;exports.hasBlueObjectItemsDefined=at;exports.hasBlueObjectNameDefined=an;exports.hasBlueObjectTypeDefined=ut;exports.hasBlueObjectValueDefined=dt;exports.isBigDecimalNumber=ht;exports.isBigIntegerNumber=K;exports.isBigNumber=O;exports.isBlueNodeSchema=We;exports.isBlueObject=cn;exports.isBlueObjectResolved=xt;exports.isGivenBlueObjectTypeSchema=un;exports.isJsonBlueArray=Ge;exports.isJsonBlueObject=ke;exports.isJsonBlueValue=fn;exports.isSchemaExtendedFrom=He;exports.isUrl=se;exports.jsonBlueValueSchema=le;exports.normalizeToBlueObject=yr;exports.resolveBlueObjectItems=xe;exports.withBlueDescription=Tt;exports.withBlueId=Bt;exports.withBlueName=vt;exports.withBlueNode=St;exports.withExtendedFromSchema=At;exports.withTypeBlueId=$n;exports.yamlBlueDump=nr;exports.yamlBlueParse=L;
|
|
26
|
+
`}loadDefaultSimpleBlue(){const e=this.enrichDefaultBlue(Rt);try{const t=F(e);if(t)this.defaultSimpleBlue=f.deserialize(t);else throw new Error("Failed to parse default Blue content")}catch(t){throw new Error(`Error loading default Blue: ${t}`)}}};h(Ie,"DEFAULT_BLUE_BLUE_ID","FREHAAGDZSzpnoTUoCQ86bBmxbVCULMjvx9JZM6fyqT1");let te=Ie;class xs extends jt{constructor(t){super();h(this,"blueIdToContentMap",new Map);h(this,"blueIdToMultipleDocumentsMap",new Map);h(this,"preprocessor");const r=new te({nodeProvider:this});this.preprocessor=n=>r.preprocessWithDefaultBlue(n),this.loadRepositories(t)}loadRepositories(t){for(const r of t)if(r.contents)for(const[n,i]of Object.entries(r.contents))this.processContent(i,n)}processContent(t,r){Array.isArray(t)?this.processMultipleDocuments(t,r):this.processSingleDocument(t,r)}processSingleDocument(t,r){const n=f.deserialize(t),i=R.parseAndCalculateBlueIdForNode(n,this.preprocessor),o=r||i.blueId;this.blueIdToContentMap.set(o,i.content),this.blueIdToMultipleDocumentsMap.set(o,!1);const l=n.getName();l&&this.addToNameMap(l,o)}processMultipleDocuments(t,r){const n=t.map(l=>{const a=f.deserialize(l);return this.preprocessor(a)}),i=R.parseAndCalculateBlueIdForNodeList(n,l=>l),o=r||i.blueId;this.blueIdToContentMap.set(o,i.content),this.blueIdToMultipleDocumentsMap.set(o,!0),n.forEach((l,a)=>{const p=`${o}#${a}`,I=g.get(l),y=N.calculateBlueIdSync(l);this.blueIdToContentMap.set(y,I),this.blueIdToMultipleDocumentsMap.set(y,!1);const m=l.getName();m&&this.addToNameMap(m,p)})}fetchContentByBlueId(t){const r=this.blueIdToContentMap.get(t),n=this.blueIdToMultipleDocumentsMap.get(t);return r!==void 0&&n!==void 0?R.resolveThisReferences(r,t,n):null}getBlueIds(){return Array.from(this.blueIdToContentMap.keys())}hasBlueId(t){const r=t.split("#")[0];return this.blueIdToContentMap.has(r)}}class ce{static wrap(e,t){const r=[Re.INSTANCE];if(t&&t.length>0){const n=new xs(t);r.push(n)}return r.push(e),new ms(r)}}class $s{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 r=e.clone();if(this.preprocessingAliases.has(t))return this.handleAliasValue(r,t);if(U.isPotentialBlueId(t))return this.handleBlueId(r,t);throw ie(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 r=e.clone();if(this.preprocessingAliases.has(t))return this.handleAliasValue(r,t);if(U.isPotentialBlueId(t))return this.handleBlueId(r,t);if(ie(t)&&this.urlContentFetcher)try{const n=await this.fetchFromUrl(t);return n&&r.setBlue(new d().setItems(n)),r}catch(n){throw n instanceof Error?new Error(`Failed to fetch from URL '${t}'.
|
|
27
|
+
${n.message}`):n}else throw ie(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 d().setBlueId(this.preprocessingAliases.get(t))),e}handleBlueId(e,t){return e.setBlue(new d().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 Ls={fetchUrl:async s=>{throw new Error(`You must provide a custom UrlFetchStrategy to fetch content from URL: ${s}`)}};class zs{constructor(e){h(this,"cache",new Map);h(this,"fetchStrategy");h(this,"enabled",!1);h(this,"allowedDomains",[]);this.fetchStrategy=e||Ls}validateUrl(e){if(!ie(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(l){throw new Error(`Error fetching from URL: ${e}`,{cause:l})}const{data:r,contentType:n}=t;let i;if(n.includes("application/json")||n.includes("text/yaml")||n.includes("application/yaml")||n.includes("text/plain"))i=F(r);else throw new Error(`Unsupported content type from URL: ${n}`);if(i===void 0)throw new Error(`Failed to parse content from URL: ${e}`);let o;return Array.isArray(i)?o=i.map(l=>f.deserialize(l)):o=[f.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 Ut{resolveWithoutLimits(e){return this.resolve(e,H)}}class _t extends Ut{constructor(t,r){super();h(this,"mergingProcessor");h(this,"nodeProvider");this.mergingProcessor=t,this.nodeProvider=ce.wrap(r)}merge(t,r,n){if(c.isNonNullable(r.getBlue()))throw new Error('Document contains "blue" attribute. Preprocess document before merging.');let i=t;const o=r.getType();if(c.isNonNullable(o)){const l=o.clone();c.isNonNullable(l.getBlueId())&&new Qe(this.nodeProvider).extend(l,qe.withSinglePath("/"));const a=this.resolve(l,n),p=r.clone().setType(a);return i=this.merge(i,l,n),this.mergeObject(i,p,n)}return this.mergeObject(i,r,n)}mergeObject(t,r,n){let i=this.mergingProcessor.process(t,r,this.nodeProvider);const o=r.getItems();c.isNonNullable(o)&&(i=this.mergeChildren(i,o,n));const l=r.getProperties();return c.isNonNullable(l)&&Object.entries(l).forEach(([a,p])=>{n.shouldMergePathSegment(a,p)&&(n.enterPathSegment(a,p),i=this.mergeProperty(i,a,p,n),n.exitPathSegment())}),c.isNonNullable(r.getBlueId())&&(i=i.clone().setBlueId(r.getBlueId())),this.mergingProcessor.postProcess&&(i=this.mergingProcessor.postProcess(i,r,this.nodeProvider)),i}mergeChildren(t,r,n){const i=t.getItems();if(c.isNullable(i)){const l=r.filter((a,p)=>n.shouldMergePathSegment(String(p),a)).map(a=>{n.enterPathSegment(String(r.indexOf(a)),a);const p=this.resolve(a,n);return n.exitPathSegment(),p});return t.clone().setItems(l)}else if(r.length<i.length)throw new Error(`Subtype of element must not have more items (${i.length}) than the element itself (${r.length}).`);const o=[...i];for(let l=0;l<r.length;l++){if(!n.shouldMergePathSegment(String(l),r[l]))continue;if(n.enterPathSegment(String(l),r[l]),l>=o.length){o.push(r[l]),n.exitPathSegment();continue}const a=N.calculateBlueIdSync(r[l]),p=N.calculateBlueIdSync(o[l]);if(a!==p)throw new Error(`Mismatched items at index ${l}: source item has blueId '${a}', but target item has blueId '${p}'.`);n.exitPathSegment()}return t.clone().setItems(o)}mergeProperty(t,r,n,i){const o=this.resolve(n,i),l=t.clone();c.isNullable(l.getProperties())&&l.setProperties({});const a=l.getProperties()[r];return a===void 0?l.getProperties()[r]=o:l.getProperties()[r]=this.mergeObject(a,o,i),l}resolve(t,r){const n=new d;return this.merge(n,t,r).clone().setName(t.getName()).setDescription(t.getDescription()).setBlueId(t.getBlueId())}}class Zt{constructor(e){h(this,"mergingProcessors");this.mergingProcessors=e}process(e,t,r){return this.mergingProcessors.reduce((n,i)=>i.process(n,t,r),e)}postProcess(e,t,r){return this.mergingProcessors.reduce((n,i)=>i.postProcess?i.postProcess(n,t,r):n,e)}}class kt{process(e,t){const r=t.getValue();if(c.isNonNullable(r)){const n=e.getValue();if(c.isNullable(n))return e.clone().setValue(r);if(!Us(r,n))throw new Error(`Node values conflict. Source node value: ${r}, target node value: ${n}`)}return e}}const Us=(s,e)=>x(s)&&x(e)||fe(s)&&fe(e)?s.eq(e):s===e;class Yt{process(e,t,r){const n=e.getType(),i=t.getType();let o=e;if(n===void 0)o=e.clone().setType(i);else if(i!==void 0){if(!E(i,n,r)){const a=g.get(i),p=g.get(n);throw new Error(`The source type '${JSON.stringify(a)}' is not a subtype of the target type '${JSON.stringify(p)}'.`)}o=e.clone().setType(i)}return o}}class Jt{process(e,t,r){if(t.getItemType()!==void 0&&!Qr(t.getType()))throw new Error("Source node with itemType must have a List type");const n=e.getItemType(),i=t.getItemType();let o=e;if(n===void 0)i!==void 0&&(o=e.clone().setItemType(i));else if(i!==void 0){if(!E(i,n,r)){const I=g.get(i),y=g.get(n);throw new Error(`The source item type '${JSON.stringify(I)}' is not a subtype of the target item type '${JSON.stringify(y)}'.`)}o=e.clone().setItemType(i)}const l=o.getItemType(),a=t.getItems();if(l!==void 0&&a!==void 0)for(const p of a){const I=p.getType();if(I!==void 0&&!E(I,l,r)){const y=g.get(I),m=g.get(l);throw new Error(`Item of type '${JSON.stringify(y)}' is not a subtype of the list's item type '${JSON.stringify(m)}'.`)}}return o}}class Gt{process(e,t,r){if((t.getKeyType()!==void 0||t.getValueType()!==void 0)&&!es(t.getType()))throw new Error("Source node with keyType or valueType must have a Dictionary type");let n=this.processKeyType(e,t,r);n=this.processValueType(n,t,r);const i=n.getKeyType(),o=n.getValueType(),l=t.getProperties();return(i!==void 0||o!==void 0)&&l!==void 0&&Object.entries(l).forEach(([a,p])=>{i!==void 0&&this.validateKeyType(a,i,r),o!==void 0&&this.validateValueType(p,o,r)}),n}processKeyType(e,t,r){const n=e.getKeyType(),i=t.getKeyType();if(n===void 0){if(i!==void 0)return this.validateBasicKeyType(i,r),e.clone().setKeyType(i)}else if(i!==void 0){if(this.validateBasicKeyType(i,r),!E(i,n,r)){const l=g.get(i),a=g.get(n);throw new Error(`The source key type '${JSON.stringify(l)}' is not a subtype of the target key type '${JSON.stringify(a)}'.`)}return e.clone().setKeyType(i)}return e}processValueType(e,t,r){const n=e.getValueType(),i=t.getValueType();if(n===void 0){if(i!==void 0)return e.clone().setValueType(i)}else if(i!==void 0){if(!E(i,n,r)){const l=g.get(i),a=g.get(n);throw new Error(`The source value type '${JSON.stringify(l)}' is not a subtype of the target value type '${JSON.stringify(a)}'.`)}return e.clone().setValueType(i)}return e}validateBasicKeyType(e,t){if(!Kr(e,t))throw new Error("Dictionary key type must be a basic type")}validateKeyType(e,t,r){if(!Wr(t,r))if(Hr(t,r)){const n=Number.parseInt(e,10);if(Number.isNaN(n)||n.toString()!==e)throw new Error(`Key '${e}' is not a valid Integer.`)}else if(qr(t,r)){const n=Number.parseFloat(e);if(Number.isNaN(n))throw new Error(`Key '${e}' is not a valid Number.`)}else if(Xr(t,r)){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,r){const n=e.getType();if(n!==void 0&&!E(n,t,r)){const i=g.get(n),o=g.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 Kt{process(e){return e}postProcess(e,t,r){const n=e.getType();if(n!==void 0&&ts(n,r)){const i=e.getItems(),o=e.getProperties();if(i!==void 0&&i.length>0||o!==void 0&&Object.keys(o).length>0){const l=rs(n,r),a=n.getName()||"unknown";throw new Error(`Node of type "${a}" (which extends basic type "${l}") must not have items, properties or contracts.`)}}return e}}const _s=Object.freeze(Object.defineProperty({__proto__:null,BasicTypesVerifier:Kt,DictionaryProcessor:Gt,ListProcessor:Jt,SequentialMergingProcessor:Zt,TypeAssigner:Yt,ValuePropagator:kt},Symbol.toStringTag,{value:"Module"}));function Zs(){return new Zt([new kt,new Yt,new Jt,new Gt,new Kt])}class ks{reverse(e){const t=new d;return this.reverseNode(t,e,e.getType()),t}reverseNode(e,t,r){this.isIdenticalToType(t,r)||(this.reverseBasicProperties(e,t,r),this.reverseTypeReferences(e,t,r),this.reverseItems(e,t,r),this.reverseProperties(e,t,r))}isIdenticalToType(e,t){return c.isNonNullable(e.getBlueId())&&c.isNonNullable(t==null?void 0:t.getBlueId())&&e.getBlueId()===t.getBlueId()}reverseBasicProperties(e,t,r){const n=t.getValue();c.isNonNullable(n)&&(c.isNullable(r)||c.isNullable(r.getValue()))&&e.setValue(n),c.isNonNullable(t.getName())&&(c.isNullable(r)||t.getName()!==r.getName())&&e.setName(t.getName()),c.isNonNullable(t.getDescription())&&(c.isNullable(r)||t.getDescription()!==r.getDescription())&&e.setDescription(t.getDescription()),c.isNonNullable(t.getBlueId())&&(c.isNullable(r)||t.getBlueId()!==r.getBlueId())&&e.setBlueId(t.getBlueId())}reverseTypeReferences(e,t,r){const n=(i,o)=>{const l=i(t),a=r?i(r):void 0,p=l==null?void 0:l.getBlueId();c.isNonNullable(p)&&(c.isNullable(a==null?void 0:a.getBlueId())||p!==a.getBlueId())&&o(e,new d().setBlueId(p))};n(i=>i.getType(),(i,o)=>i.setType(o)),n(i=>i.getItemType(),(i,o)=>i.setItemType(o)),n(i=>i.getKeyType(),(i,o)=>i.setKeyType(o)),n(i=>i.getValueType(),(i,o)=>i.setValueType(o))}reverseItems(e,t,r){const n=t.getItems();if(c.isNullable(n))return;const i=r==null?void 0:r.getItems(),o=[];if(c.isNonNullable(i)&&i.length>0){const a=N.calculateBlueIdSync(i);o.push(new d().setBlueId(a))}const l=(i==null?void 0:i.length)||0;for(let a=l;a<n.length;a++){const p=new d;this.reverseNode(p,n[a],void 0),o.push(p)}o.length>0&&e.setItems(o)}reverseProperties(e,t,r){const n=t.getProperties();if(c.isNullable(n))return;const i={};for(const[o,l]of Object.entries(n)){const a=this.getInheritedProperty(o,t,r),p=new d;this.reverseNode(p,l,a),Te.isEmptyNode(p)||(i[o]=p)}Object.keys(i).length>0&&e.setProperties(i)}getInheritedProperty(e,t,r){var o,l,a;const n=(o=r==null?void 0:r.getProperties())==null?void 0:o[e],i=(a=(l=t.getType())==null?void 0:l.getProperties())==null?void 0:a[e];if(!(c.isNullable(n)&&c.isNullable(i)))return c.isNullable(n)?i:c.isNullable(i)?n:this.mergeNodes(n,i)}mergeNodes(e,t){const r=e.clone(),n=t.getValue();c.isNonNullable(n)&&r.setValue(n);const i=t.getType();c.isNonNullable(i)&&r.setType(i.clone());const o=t.getItemType();c.isNonNullable(o)&&r.setItemType(o.clone());const l=t.getKeyType();c.isNonNullable(l)&&r.setKeyType(l.clone());const a=t.getValueType();c.isNonNullable(a)&&r.setValueType(a.clone());const p=t.getProperties();if(c.isNonNullable(p)){const y=r.getProperties()||{};for(const[m,b]of Object.entries(p))y[m]=b.clone();r.setProperties(y)}const I=t.getItems();return c.isNonNullable(I)&&r.setItems(I.map(y=>y.clone())),r}}class Ys{constructor(e={}){h(this,"nodeProvider");h(this,"typeSchemaResolver");h(this,"blueDirectivePreprocessor");h(this,"urlContentFetcher");h(this,"blueIdsMappingGenerator");h(this,"globalLimits",H);h(this,"mergingProcessor");h(this,"repositories");h(this,"prepareForBlueIdCalculation",async e=>e instanceof d||Array.isArray(e)&&e.every(t=>t instanceof d)?e:Array.isArray(e)?await Promise.all(e.map(r=>this.jsonValueToNodeAsync(r))):this.jsonValueToNodeAsync(e));h(this,"calculateBlueId",async e=>{const t=await this.prepareForBlueIdCalculation(e);return N.calculateBlueId(t)});h(this,"prepareForBlueIdCalculationSync",e=>e instanceof d||Array.isArray(e)&&e.every(t=>t instanceof d)?e:Array.isArray(e)?e.map(t=>this.jsonValueToNode(t)):this.jsonValueToNode(e));var a;const{nodeProvider:t,typeSchemaResolver:r=null,urlFetchStrategy:n,repositories:i,mergingProcessor:o}=e;this.repositories=i;const l=ys(()=>[]);if(this.nodeProvider=ce.wrap(t||l,i),this.typeSchemaResolver=r??new Ot([]),this.mergingProcessor=o??Zs(),this.urlContentFetcher=new zs(n),this.blueDirectivePreprocessor=new $s(void 0,this.urlContentFetcher),this.blueIdsMappingGenerator=new zt,i)for(const{schemas:p,blueIds:I}of i)(a=this.typeSchemaResolver)==null||a.registerSchemas(p),this.blueIdsMappingGenerator.registerBlueIds(I)}nodeToJson(e,t="official"){return g.get(e,t)}nodeToSchemaOutput(e,t){return new gs(this.typeSchemaResolver).convert(e,t)}resolve(e,t=H){const r=this.combineWithGlobalLimits(t);return new _t(this.mergingProcessor,this.nodeProvider).resolve(e,r)}reverse(e){return new ks().reverse(e)}extend(e,t){const r=this.combineWithGlobalLimits(t);new Qe(this.nodeProvider).extend(e,r)}jsonValueToNode(e){return this.preprocess(f.deserialize(e))}async jsonValueToNodeAsync(e){return this.preprocessAsync(f.deserialize(e))}yamlToNode(e){const t=F(e);if(!t)throw new Error("Failed to parse YAML to JSON");return this.jsonValueToNode(t)}async yamlToNodeAsync(e){const t=F(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 te({nodeProvider:this.nodeProvider,blueIdsMappingGenerator:this.blueIdsMappingGenerator}).preprocessWithDefaultBlue(t)}async preprocessAsync(e){const t=await this.blueDirectivePreprocessor.processAsync(e);return new te({nodeProvider:this.nodeProvider,blueIdsMappingGenerator:this.blueIdsMappingGenerator}).preprocessWithDefaultBlue(t)}getNodeProvider(){return this.nodeProvider}setNodeProvider(e){return this.nodeProvider=ce.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,r){return S.isTypeOf(e,t,{checkSchemaExtensions:r==null?void 0:r.checkSchemaExtensions,typeSchemaResolver:this.typeSchemaResolver})}setGlobalLimits(e){return this.globalLimits=e??H,this}getGlobalLimits(){return this.globalLimits}combineWithGlobalLimits(e){return this.globalLimits==H?e:e==H?this.globalLimits:Xe.of(this.globalLimits,e)}}class Js extends jt{constructor(t=[]){super();h(this,"blueIdToContentMap",new Map);h(this,"blueIdToMultipleDocumentsMap",new Map);h(this,"preprocessor");const r=new te({nodeProvider:this});this.preprocessor=n=>r.preprocessWithDefaultBlue(n),t.forEach(n=>this.processNode(n))}processNode(t){Te.hasItemsOnly(t)?this.processNodeWithItems(t):this.processSingleNode(t)}processSingleNode(t){const r=R.parseAndCalculateBlueIdForNode(t,this.preprocessor);this.blueIdToContentMap.set(r.blueId,r.content),this.blueIdToMultipleDocumentsMap.set(r.blueId,r.isMultipleDocuments);const n=t.getName();n&&this.addToNameMap(n,r.blueId)}processNodeWithItems(t){const r=t.getItems();if(!r)return;this.processNodeList(r);const n=R.parseAndCalculateBlueIdForNodeList(r,this.preprocessor);this.blueIdToContentMap.set(n.blueId,n.content),this.blueIdToMultipleDocumentsMap.set(n.blueId,!0),r.forEach((i,o)=>{const l=i.getName();l&&this.addToNameMap(l,`${n.blueId}#${o}`)})}processNodeList(t){const r=N.calculateBlueIdSync(t),n=t.map(i=>g.get(i));this.blueIdToContentMap.set(r,n),this.blueIdToMultipleDocumentsMap.set(r,!0)}fetchContentByBlueId(t){const r=this.blueIdToContentMap.get(t),n=this.blueIdToMultipleDocumentsMap.get(t);return r!==void 0&&n!==void 0?R.resolveThisReferences(r,t,n):null}addSingleNodes(...t){t.forEach(r=>this.processNode(r))}addSingleDocs(...t){t.forEach(r=>{const n=F(r);if(n!==void 0){const i=f.deserialize(n);this.processNode(i)}})}getBlueIdByName(t){const r=this.nameToBlueIdsMap.get(t);if(!r||r.length===0)throw new Error(`No node with name "${t}"`);return r[0]}getNodeByName(t){const r=this.findNodeByName(t);if(!r)throw new Error(`No node with name "${t}"`);return r}addListAndItsItemsFromNodes(t){this.processNodeList(t),t.forEach(r=>this.processNode(r))}addListAndItsItemsFromDoc(t){const r=F(t);if(r!==void 0){const i=f.deserialize(r).getItems();i&&this.addListAndItsItems(i)}}addListAndItsItems(t){Array.isArray(t)?this.addListAndItsItemsFromNodes(t):this.addListAndItsItemsFromDoc(t)}addList(t){this.processNodeList(t)}}exports.Base58Sha256Provider=gt;exports.BasicNodeProvider=Js;exports.Blue=Ys;exports.BlueIdCalculator=N;exports.BlueIdToCid=Sr;exports.BlueNode=d;exports.BlueNodeTypeSchema=S;exports.JsonCanonicalizer=ft;exports.Limits=Be;exports.Merger=_t;exports.MergingProcessors=_s;exports.NodeResolver=Ut;exports.Nodes=Te;exports.TypeSchemaResolver=Ot;exports.applyBlueNodePatch=xr;exports.baseBlueObjectSchema=de;exports.blueDescriptionField=Lr;exports.blueIdField=Ur;exports.blueIdSchema=dr;exports.blueNameField=_r;exports.blueNodeField=Zr;exports.blueObjectBooleanValueSchema=fr;exports.blueObjectNumberValueSchema=pr;exports.blueObjectSchema=Q;exports.blueObjectStringListItemsSchema=gr;exports.blueObjectStringValueSchema=hr;exports.calculateBlueId=$t;exports.calculateBlueIdSync=Cs;exports.enrichWithBlueId=je;exports.getBlueDescriptionAnnotation=Bt;exports.getBlueIdAnnotation=vt;exports.getBlueNameAnnotation=Pt;exports.getBlueNodeAnnotation=At;exports.getBlueObjectItems=Vs;exports.getBlueObjectProperties=Os;exports.getBlueObjectTypeLabel=Fs;exports.getBlueObjectValue=Ds;exports.getExtendedFromSchemaAnnotation=Vt;exports.getTypeBlueIdAnnotation=Dt;exports.hasBlueObjectBlueIdDefined=ut;exports.hasBlueObjectItemsDefined=dt;exports.hasBlueObjectNameDefined=mr;exports.hasBlueObjectTypeDefined=ht;exports.hasBlueObjectValueDefined=pt;exports.isBigDecimalNumber=fe;exports.isBigIntegerNumber=x;exports.isBigNumber=V;exports.isBlueNodeSchema=We;exports.isBlueObject=yr;exports.isBlueObjectResolved=Lt;exports.isGivenBlueObjectTypeSchema=Ir;exports.isJsonBlueArray=Je;exports.isJsonBlueObject=Ye;exports.isJsonBlueValue=Tr;exports.isSchemaExtendedFrom=He;exports.isUrl=ie;exports.jsonBlueValueSchema=ae;exports.normalizeToBlueObject=Ms;exports.resolveBlueObjectItems=xe;exports.withBlueDescription=Tt;exports.withBlueId=wt;exports.withBlueName=Et;exports.withBlueNode=St;exports.withExtendedFromSchema=Ct;exports.withTypeBlueId=Jr;exports.yamlBlueDump=Bs;exports.yamlBlueParse=F;
|